예제 #1
0
        public void should_default_to_simple_contains()
        {
            var skv = new SimpleKeyValues((key) => _ajaxRequestInput[key], () => _ajaxRequestInput.Select(kvp => kvp.Key));

            skv.Has("X-Requested-With").ShouldBeTrue();
            skv.Has("x-requested-with").ShouldBeFalse();
        }
예제 #2
0
        public void should_use_custom_compare()
        {
            var skv = new SimpleKeyValues((key) => _ajaxRequestInput[key], () => _ajaxRequestInput.Select(kvp => kvp.Key), (key,keys) => keys.Contains(key,StringComparer.InvariantCultureIgnoreCase));

            skv.Has("X-Requested-With").ShouldBeTrue();
            skv.Has("x-requested-with").ShouldBeTrue();
        }
예제 #3
0
        private void addValues(RequestDataSource source, Func<string, object> finder, Func<IEnumerable<string>> findKeys)
        {
            var values = new SimpleKeyValues(finder, findKeys);
            var valueSource = new FlatValueSource(values, source.ToString());

            //var valueSource = new GenericValueSource(source.ToString(), finder, findKeys);
            AddValues(valueSource);
        }
예제 #4
0
        private void addValues(RequestDataSource source, Func <string, object> finder, Func <IEnumerable <string> > findKeys, Func <string, IEnumerable <string>, bool> keyFinder = null)
        {
            Func <string, IEnumerable <string>, bool> defaultKeyFinder = (key, keys) => keys.Contains(key);

            var values      = new SimpleKeyValues(finder, findKeys, keyFinder ?? defaultKeyFinder);
            var valueSource = new FlatValueSource <object>(values, source.ToString());

            AddValues(valueSource);
        }
예제 #5
0
        public SelfHostRequestData(RouteData routeData, HttpRequestMessage request, ICookies cookies)
        {
            AddValues(new RouteDataValues(routeData));

            var querystring = request.RequestUri.ParseQueryString();
            AddValues("Querystring", new NamedKeyValues(querystring));

            var formData = request.Content.IsFormData() ? request.Content.ReadAsFormDataAsync().Result : new NameValueCollection();

            AddValues(RequestDataSource.Request.ToString(), new NamedKeyValues(formData));

            var headers = AggregateKeyValues.For(new HeaderKeyValues(request.Headers),
                                                 new HeaderKeyValues(request.Content.Headers));
            AddValues(RequestDataSource.Header.ToString(), headers);

            Func<string, IEnumerable<string>, bool> ignoreCaseKeyFinder = (key, keys) => keys.Contains(key, StringComparer.InvariantCultureIgnoreCase);
            var values = new SimpleKeyValues(key => cookies.Get(key).Value, () => cookies.Request.Select(x => x.Name), ignoreCaseKeyFinder);
            var valueSource = new FlatValueSource<object>(values, RequestDataSource.Cookie.ToString());

            AddValues(valueSource);
        }