public void SetCspSandboxOverride_HasOverride_OverridesExistingOverride([Values(false, true)]bool reportOnly) { //There's an override for directive var currentDirectiveOverride = new CspSandboxDirectiveConfiguration(); var overrideConfig = new CspOverrideConfiguration {SandboxDirective = currentDirectiveOverride}; _contextHelper.Setup(h => h.GetCspConfigurationOverride(It.IsAny<HttpContextBase>(), reportOnly, false)).Returns(overrideConfig); //We need an override and a result. var directiveOverride = new CspSandboxOverride(); var directiveOverrideResult = new CspSandboxDirectiveConfiguration(); _directiveOverrideHelper.Setup(h => h.GetOverridenCspSandboxConfig(directiveOverride, currentDirectiveOverride)).Returns(directiveOverrideResult); CspConfigurationOverrideHelper.SetCspSandboxOverride(MockContext, directiveOverride, reportOnly); //Verify that the override result was set on the override config. Assert.AreSame(directiveOverrideResult, overrideConfig.SandboxDirective); }
public void SetCspSandboxOverride_NoCurrentOverride_ClonesConfigFromContextAndOverrides([Values(false, true)]bool reportOnly) { var contextConfig = new CspConfiguration(); var overrideConfig = new CspOverrideConfiguration(); //Returns CSP config from context _contextHelper.Setup(h => h.GetCspConfiguration(It.IsAny<HttpContextBase>(), reportOnly)).Returns(contextConfig); _contextHelper.Setup(h => h.GetCspConfigurationOverride(It.IsAny<HttpContextBase>(), reportOnly, false)).Returns(overrideConfig); //Returns cloned directive config from context config var clonedContextDirective = new CspSandboxDirectiveConfiguration(); _directiveConfigMapper.Setup(m => m.GetCspSandboxConfigCloned(contextConfig)).Returns(clonedContextDirective); //We need an override and a result. var directiveOverride = new CspSandboxOverride(); var directiveOverrideResult = new CspSandboxDirectiveConfiguration(); _directiveOverrideHelper.Setup(h => h.GetOverridenCspSandboxConfig(directiveOverride, clonedContextDirective)).Returns(directiveOverrideResult); CspConfigurationOverrideHelper.SetCspSandboxOverride(MockContext, directiveOverride, reportOnly); //Verify that the override result was set on the override config. Assert.AreSame(directiveOverrideResult, overrideConfig.SandboxDirective); }
public void GetCspSandboxConfigCloned_Configured_ClonesDirective() { var firstDirective = new CspSandboxDirectiveConfiguration { AllowForms = true, AllowPointerLock = true, AllowPopups = true }; var firstConfig = new CspConfiguration(false) { SandboxDirective = firstDirective }; var secondDirective = new CspSandboxDirectiveConfiguration() { AllowSameOrigin = true, AllowScripts = true, AllowTopNavigation = true, Enabled = true }; var secondConfig = new CspConfiguration(false) { SandboxDirective = secondDirective }; var mapper = new CspConfigMapper(); var firstResult = mapper.GetCspSandboxConfigCloned(firstConfig); var secondResult = mapper.GetCspSandboxConfigCloned(secondConfig); Assert.That(firstResult, Is.EqualTo(firstDirective).Using(new CspSandboxDirectiveConfigurationComparer())); Assert.That(secondResult, Is.EqualTo(secondDirective).Using(new CspSandboxDirectiveConfigurationComparer())); }
public void GetOverridenCspSandboxConfig_AllowTopNavigationNotSet_InheritsAllowTopNavigation([Values(true, false)] bool expectedResult) { var directiveConfig = new CspSandboxDirectiveConfiguration { AllowTopNavigation = expectedResult }; var directiveOverride = new CspSandboxOverride(); var newConfig = _overrideHelper.GetOverridenCspSandboxConfig(directiveOverride, directiveConfig); Assert.AreEqual(expectedResult, newConfig.AllowTopNavigation); }
public void GetOverridenCspSandboxConfig_AllowScriptsOverride_OverridesAllowScripts([Values(true, false)] bool expectedResult) { var directiveConfig = new CspSandboxDirectiveConfiguration { AllowScripts = !expectedResult }; var directiveOverride = new CspSandboxOverride { AllowScripts = expectedResult }; var newConfig = _overrideHelper.GetOverridenCspSandboxConfig(directiveOverride, directiveConfig); Assert.AreEqual(expectedResult, newConfig.AllowScripts); }
public void GetOverridenCspSandboxConfig_EnableOverride_OverridesEnabled([Values(true, false)] bool expectedResult) { var directiveConfig = new CspSandboxDirectiveConfiguration { Enabled = !expectedResult }; var directiveOverride = new CspSandboxOverride { Enabled = expectedResult }; var newConfig = _overrideHelper.GetOverridenCspSandboxConfig(directiveOverride, directiveConfig); Assert.AreEqual(expectedResult, newConfig.Enabled); }