예제 #1
0
        public void Should_append_policy_source_plugin()
        {
            var getActionContext = new ActionConfigurationContext(null,
                                                                  null, ActionMethod.From <Handler>(x => x.Get()), null);
            var postActionContext = new ActionConfigurationContext(null,
                                                                   null, ActionMethod.From <Handler>(x => x.Post()), null);
            var overrideActionContext = new ActionConfigurationContext(null,
                                                                       null, ActionMethod.From <Handler>(x => x.Override()), null);
            var configuration = new CorsConfiguration();

            CorsPolicySource.AppendPolicy(configuration.PolicySources, x => x
                                          .PreflightMaxAge(1));
            CorsPolicySource.AppendPolicy(configuration.PolicySources, x => x
                                          .PreflightMaxAge(2)
                                          .AppliesWhen(a => a.ActionMethod.Name == "Get"));

            configuration.PolicySources.Count().ShouldEqual(2);

            var plugin = configuration.PolicySources.First();

            plugin.AppliesTo(getActionContext).ShouldBeTrue();
            plugin.AppliesTo(postActionContext).ShouldBeTrue();
            plugin.AppliesTo(overrideActionContext).ShouldBeFalse();
            plugin.Instance.CreatePolicy().PreflightMaxAge.ShouldEqual(1);

            plugin = configuration.PolicySources.Second();

            plugin.AppliesTo(getActionContext).ShouldBeTrue();
            plugin.AppliesTo(postActionContext).ShouldBeFalse();
            plugin.AppliesTo(overrideActionContext).ShouldBeFalse();
            plugin.Instance.CreatePolicy().PreflightMaxAge.ShouldEqual(2);
        }
예제 #2
0
        private CorsPolicySource AppendPolicySource(Action <CorsPolicySource> configure = null)
        {
            var policySource = CorsPolicySource.AppendPolicy(
                _corsConfiguration.PolicySources, configure);

            _policySources.Add(policySource);

            return(policySource);
        }