public void Build_WhenNoValues_ReturnsNull() { var builder = new FeaturePolicyBuilder(); var result = builder.Build(); result.Should().BeNullOrEmpty(); }
/// <summary> /// Configure a feature policy. /// </summary> /// <param name="configure">Configure the Feature-Policy header</param> /// <returns>The complete Feature-Policy header</returns> public static FeaturePolicyHeader Build(Action <FeaturePolicyBuilder> configure) { var builder = new FeaturePolicyBuilder(); configure(builder); return(new FeaturePolicyHeader(builder.Build())); }
/// <summary> /// Adds a Feature Policy headerto the response. /// See https://github.com/WICG/feature-policy/blob/master/features.md for more information /// </summary> /// <param name="app">The <see cref="IApplicationBuilder"/></param> /// <param name="builderAction">Configuration action for the header.</param> /// <returns>The <see cref="IApplicationBuilder"/></returns> public static IApplicationBuilder UseFeaturePolicy(this IApplicationBuilder app, Action <FeaturePolicyBuilder> builderAction) { var builder = new FeaturePolicyBuilder(); builderAction(builder); var options = builder.BuildFeaturePolicyOptions(); return(app.UseMiddleware <FeaturePolicyMiddleware>(new OptionsWrapper <FeaturePolicyOptions>(options))); }
public void Build_AddAccelerometer_WhenIncludesAllAndNone_ThrowsInvalidOperationException() { var builder = new FeaturePolicyBuilder(); builder.AddAccelerometer() .None() .All(); Assert.Throws <InvalidOperationException>(() => builder.Build()); }
public void Build_AddSyncXHR_WhenIncludesSelf_WritesSelf() { var builder = new FeaturePolicyBuilder(); builder.AddSyncXHR().Self(); var result = builder.Build(); result.Should().Be("sync-xhr 'self'"); }
public void PaymentFromNowhere_SetsValue() { var builder = new FeaturePolicyBuilder(); builder.AllowPayment.FromNowhere(); var options = builder.BuildFeaturePolicyOptions(); string headerValue = options.ToString(); Assert.Equal("payment 'none'", headerValue); }
public void OtherNewFeatureFromSelf_SetsValue() { var builder = new FeaturePolicyBuilder(); builder.AllowOtherFeature("new-feature").FromSelf(); var options = builder.BuildFeaturePolicyOptions(); string headerValue = options.ToString(); Assert.Equal("new-feature 'self'", headerValue); }
public void PaymentFromSelfAndGoogle_SetsValue() { var builder = new FeaturePolicyBuilder(); builder.AllowPayment.FromSelf().From("https://www.google.com"); var options = builder.BuildFeaturePolicyOptions(); string headerValue = options.ToString(); Assert.Equal("payment 'self' https://www.google.com", headerValue); }
public void Build_CustomFeatureDirectiveBuilder_AddsValues() { var builder = new FeaturePolicyBuilder(); builder.AddCustomFeature("push").None(); builder.AddCustomFeature("vibrate").All(); var result = builder.Build(); result.Should().Be("push 'none'; vibrate *"); }
public void Build_AddingTheSameDirectiveTwice_OverwritesThePreviousCopy() { var builder = new FeaturePolicyBuilder(); builder.AddAccelerometer().Self(); builder.AddAccelerometer().None(); var result = builder.Build(); result.Should().Be("accelerometer 'none'"); }
public void PaymentFromNowhereAndFullScreenFromSelf_SetsValue() { var builder = new FeaturePolicyBuilder(); builder.AllowPayment.FromNowhere(); builder.AllowFullscreen.FromSelf(); var options = builder.BuildFeaturePolicyOptions(); string headerValue = options.ToString(); Assert.Equal("fullscreen 'self'; payment 'none'", headerValue); }
public void Build_CustomFeatureDirective_AddsValues() { var builder = new FeaturePolicyBuilder(); builder.AddCustomFeature("push", "'none'"); builder.AddCustomFeature("vibrate", "*"); builder.AddCustomFeature("something-else", string.Empty); var result = builder.Build(); result.Should().Be("push 'none'; vibrate *; something-else"); }
public void Build_AddAccelerometer_WhenAddsMultipleValue_ReturnsAllValues() { var builder = new FeaturePolicyBuilder(); builder.AddAccelerometer() .Self() .For("http://testUrl.com"); var result = builder.Build(); result.Should().Be("accelerometer 'self' http://testUrl.com"); }
public void Build_AddAccelerometer_WhenIncludesAll_OnlyWritesAll() { var builder = new FeaturePolicyBuilder(); builder.AddAccelerometer() .Self() .For("http://testUrl.com") .All(); var result = builder.Build(); result.Should().Be("accelerometer *"); }