예제 #1
0
        public async Task ServesFreshContent_If_PragmaNoCache(string method)
        {
            var builders = ResponseCachingTestUtils.CreateBuildersWithResponseCaching();

            foreach (var builder in builders)
            {
                using (var server = new TestServer(builder))
                {
                    var client = server.CreateClient();

                    var initialResponse = await client.SendAsync(ResponseCachingTestUtils.CreateRequest(method, ""));

                    // verify the response is cached
                    var cachedResponse = await client.SendAsync(ResponseCachingTestUtils.CreateRequest(method, ""));
                    await AssertCachedResponseAsync(initialResponse, cachedResponse);

                    // assert cached response no longer served
                    client.DefaultRequestHeaders.Pragma.Clear();
                    client.DefaultRequestHeaders.Pragma.Add(new System.Net.Http.Headers.NameValueHeaderValue("no-cache"));
                    var subsequentResponse = await client.SendAsync(ResponseCachingTestUtils.CreateRequest(method, ""));

                    await AssertFreshResponseAsync(initialResponse, subsequentResponse);
                }
            }
        }
예제 #2
0
        public async Task ServesFreshContent_IfNotAvailable(string method)
        {
            var builders = ResponseCachingTestUtils.CreateBuildersWithResponseCaching();

            foreach (var builder in builders)
            {
                using (var server = new TestServer(builder))
                {
                    var client          = server.CreateClient();
                    var initialResponse = await client.SendAsync(ResponseCachingTestUtils.CreateRequest(method, ""));

                    var subsequentResponse = await client.SendAsync(ResponseCachingTestUtils.CreateRequest(method, "different"));

                    await AssertFreshResponseAsync(initialResponse, subsequentResponse);
                }
            }
        }
예제 #3
0
        public async Task ServesCachedContent_If_PathCasingDiffers(string method)
        {
            var builders = ResponseCachingTestUtils.CreateBuildersWithResponseCaching();

            foreach (var builder in builders)
            {
                using (var server = new TestServer(builder))
                {
                    var client          = server.CreateClient();
                    var initialResponse = await client.SendAsync(ResponseCachingTestUtils.CreateRequest(method, "path"));

                    var subsequentResponse = await client.SendAsync(ResponseCachingTestUtils.CreateRequest(method, "PATH"));

                    await AssertCachedResponseAsync(initialResponse, subsequentResponse);
                }
            }
        }
예제 #4
0
        public async Task ServesFreshContent_If_Authorization_HeaderExists(string method)
        {
            var builders = ResponseCachingTestUtils.CreateBuildersWithResponseCaching();

            foreach (var builder in builders)
            {
                using (var server = new TestServer(builder))
                {
                    var client = server.CreateClient();
                    client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("abc");
                    var initialResponse = await client.SendAsync(ResponseCachingTestUtils.CreateRequest(method, ""));

                    var subsequentResponse = await client.SendAsync(ResponseCachingTestUtils.CreateRequest(method, ""));

                    await AssertFreshResponseAsync(initialResponse, subsequentResponse);
                }
            }
        }