예제 #1
0
        /// <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 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 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);
        }