Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(122)

Side by Side Diff: net/http/http_cache_unittest.cc

Issue 885443002: Roll Chrome into Mojo. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Rebase to ToT mojo Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/http/http_auth_cache_unittest.cc ('k') | net/http/http_chunked_decoder_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/http/http_cache.h" 5 #include "net/http/http_cache.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 2305 matching lines...) Expand 10 before | Expand all | Expand 10 after
2316 // (4) loads |kUrl| from cache only -- expects |cached_response_2| to be 2316 // (4) loads |kUrl| from cache only -- expects |cached_response_2| to be
2317 // returned. 2317 // returned.
2318 static void ConditionalizedRequestUpdatesCacheHelper( 2318 static void ConditionalizedRequestUpdatesCacheHelper(
2319 const Response& net_response_1, 2319 const Response& net_response_1,
2320 const Response& net_response_2, 2320 const Response& net_response_2,
2321 const Response& cached_response_2, 2321 const Response& cached_response_2,
2322 const char* extra_request_headers) { 2322 const char* extra_request_headers) {
2323 MockHttpCache cache; 2323 MockHttpCache cache;
2324 2324
2325 // The URL we will be requesting. 2325 // The URL we will be requesting.
2326 const char* kUrl = "http://foobar.com/main.css"; 2326 const char kUrl[] = "http://foobar.com/main.css";
2327 2327
2328 // Junk network response. 2328 // Junk network response.
2329 static const Response kUnexpectedResponse = { 2329 static const Response kUnexpectedResponse = {
2330 "HTTP/1.1 500 Unexpected", 2330 "HTTP/1.1 500 Unexpected",
2331 "Server: unexpected_header", 2331 "Server: unexpected_header",
2332 "unexpected body" 2332 "unexpected body"
2333 }; 2333 };
2334 2334
2335 // We will control the network layer's responses for |kUrl| using 2335 // We will control the network layer's responses for |kUrl| using
2336 // |mock_network_response|. 2336 // |mock_network_response|.
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
2427 }; 2427 };
2428 2428
2429 // Second network response for |kUrl|. 2429 // Second network response for |kUrl|.
2430 static const Response kNetResponse2 = { 2430 static const Response kNetResponse2 = {
2431 "HTTP/1.1 200 OK", 2431 "HTTP/1.1 200 OK",
2432 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n" 2432 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n"
2433 "Last-Modified: Fri, 03 Jul 2009 02:14:27 GMT\n", 2433 "Last-Modified: Fri, 03 Jul 2009 02:14:27 GMT\n",
2434 "body2" 2434 "body2"
2435 }; 2435 };
2436 2436
2437 const char* extra_headers = 2437 const char extra_headers[] =
2438 "If-Modified-Since: Wed, 06 Feb 2008 22:38:21 GMT\r\n"; 2438 "If-Modified-Since: Wed, 06 Feb 2008 22:38:21 GMT\r\n";
2439 2439
2440 ConditionalizedRequestUpdatesCacheHelper( 2440 ConditionalizedRequestUpdatesCacheHelper(
2441 kNetResponse1, kNetResponse2, kNetResponse2, extra_headers); 2441 kNetResponse1, kNetResponse2, kNetResponse2, extra_headers);
2442 } 2442 }
2443 2443
2444 // Check that when an "if-none-match" header is attached 2444 // Check that when an "if-none-match" header is attached
2445 // to the request, the result updates the cached entry. 2445 // to the request, the result updates the cached entry.
2446 TEST(HttpCache, ConditionalizedRequestUpdatesCache2) { 2446 TEST(HttpCache, ConditionalizedRequestUpdatesCache2) {
2447 // First network response for |kUrl|. 2447 // First network response for |kUrl|.
2448 static const Response kNetResponse1 = { 2448 static const Response kNetResponse1 = {
2449 "HTTP/1.1 200 OK", 2449 "HTTP/1.1 200 OK",
2450 "Date: Fri, 12 Jun 2009 21:46:42 GMT\n" 2450 "Date: Fri, 12 Jun 2009 21:46:42 GMT\n"
2451 "Etag: \"ETAG1\"\n" 2451 "Etag: \"ETAG1\"\n"
2452 "Expires: Wed, 7 Sep 2033 21:46:42 GMT\n", // Should never expire. 2452 "Expires: Wed, 7 Sep 2033 21:46:42 GMT\n", // Should never expire.
2453 "body1" 2453 "body1"
2454 }; 2454 };
2455 2455
2456 // Second network response for |kUrl|. 2456 // Second network response for |kUrl|.
2457 static const Response kNetResponse2 = { 2457 static const Response kNetResponse2 = {
2458 "HTTP/1.1 200 OK", 2458 "HTTP/1.1 200 OK",
2459 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n" 2459 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n"
2460 "Etag: \"ETAG2\"\n" 2460 "Etag: \"ETAG2\"\n"
2461 "Expires: Wed, 7 Sep 2033 21:46:42 GMT\n", // Should never expire. 2461 "Expires: Wed, 7 Sep 2033 21:46:42 GMT\n", // Should never expire.
2462 "body2" 2462 "body2"
2463 }; 2463 };
2464 2464
2465 const char* extra_headers = "If-None-Match: \"ETAG1\"\r\n"; 2465 const char extra_headers[] = "If-None-Match: \"ETAG1\"\r\n";
2466 2466
2467 ConditionalizedRequestUpdatesCacheHelper( 2467 ConditionalizedRequestUpdatesCacheHelper(
2468 kNetResponse1, kNetResponse2, kNetResponse2, extra_headers); 2468 kNetResponse1, kNetResponse2, kNetResponse2, extra_headers);
2469 } 2469 }
2470 2470
2471 // Check that when an "if-modified-since" header is attached 2471 // Check that when an "if-modified-since" header is attached
2472 // to a request, the 304 (not modified result) result updates the cached 2472 // to a request, the 304 (not modified result) result updates the cached
2473 // headers, and the 304 response is returned rather than the cached response. 2473 // headers, and the 304 response is returned rather than the cached response.
2474 TEST(HttpCache, ConditionalizedRequestUpdatesCache3) { 2474 TEST(HttpCache, ConditionalizedRequestUpdatesCache3) {
2475 // First network response for |kUrl|. 2475 // First network response for |kUrl|.
(...skipping 15 matching lines...) Expand all
2491 }; 2491 };
2492 2492
2493 static const Response kCachedResponse2 = { 2493 static const Response kCachedResponse2 = {
2494 "HTTP/1.1 200 OK", 2494 "HTTP/1.1 200 OK",
2495 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n" 2495 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n"
2496 "Server: server2\n" 2496 "Server: server2\n"
2497 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n", 2497 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n",
2498 "body1" 2498 "body1"
2499 }; 2499 };
2500 2500
2501 const char* extra_headers = 2501 const char extra_headers[] =
2502 "If-Modified-Since: Wed, 06 Feb 2008 22:38:21 GMT\r\n"; 2502 "If-Modified-Since: Wed, 06 Feb 2008 22:38:21 GMT\r\n";
2503 2503
2504 ConditionalizedRequestUpdatesCacheHelper( 2504 ConditionalizedRequestUpdatesCacheHelper(
2505 kNetResponse1, kNetResponse2, kCachedResponse2, extra_headers); 2505 kNetResponse1, kNetResponse2, kCachedResponse2, extra_headers);
2506 } 2506 }
2507 2507
2508 // Test that when doing an externally conditionalized if-modified-since 2508 // Test that when doing an externally conditionalized if-modified-since
2509 // and there is no corresponding cache entry, a new cache entry is NOT 2509 // and there is no corresponding cache entry, a new cache entry is NOT
2510 // created (304 response). 2510 // created (304 response).
2511 TEST(HttpCache, ConditionalizedRequestUpdatesCache4) { 2511 TEST(HttpCache, ConditionalizedRequestUpdatesCache4) {
2512 MockHttpCache cache; 2512 MockHttpCache cache;
2513 2513
2514 const char* kUrl = "http://foobar.com/main.css"; 2514 const char kUrl[] = "http://foobar.com/main.css";
2515 2515
2516 static const Response kNetResponse = { 2516 static const Response kNetResponse = {
2517 "HTTP/1.1 304 Not Modified", 2517 "HTTP/1.1 304 Not Modified",
2518 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n" 2518 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n"
2519 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n", 2519 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n",
2520 "" 2520 ""
2521 }; 2521 };
2522 2522
2523 const char* kExtraRequestHeaders = 2523 const char kExtraRequestHeaders[] =
2524 "If-Modified-Since: Wed, 06 Feb 2008 22:38:21 GMT\r\n"; 2524 "If-Modified-Since: Wed, 06 Feb 2008 22:38:21 GMT\r\n";
2525 2525
2526 // We will control the network layer's responses for |kUrl| using 2526 // We will control the network layer's responses for |kUrl| using
2527 // |mock_network_response|. 2527 // |mock_network_response|.
2528 MockTransaction mock_network_response = { 0 }; 2528 MockTransaction mock_network_response = { 0 };
2529 mock_network_response.url = kUrl; 2529 mock_network_response.url = kUrl;
2530 AddMockTransaction(&mock_network_response); 2530 AddMockTransaction(&mock_network_response);
2531 2531
2532 MockTransaction request = { 0 }; 2532 MockTransaction request = { 0 };
2533 request.url = kUrl; 2533 request.url = kUrl;
(...skipping 14 matching lines...) Expand all
2548 2548
2549 RemoveMockTransaction(&mock_network_response); 2549 RemoveMockTransaction(&mock_network_response);
2550 } 2550 }
2551 2551
2552 // Test that when doing an externally conditionalized if-modified-since 2552 // Test that when doing an externally conditionalized if-modified-since
2553 // and there is no corresponding cache entry, a new cache entry is NOT 2553 // and there is no corresponding cache entry, a new cache entry is NOT
2554 // created (200 response). 2554 // created (200 response).
2555 TEST(HttpCache, ConditionalizedRequestUpdatesCache5) { 2555 TEST(HttpCache, ConditionalizedRequestUpdatesCache5) {
2556 MockHttpCache cache; 2556 MockHttpCache cache;
2557 2557
2558 const char* kUrl = "http://foobar.com/main.css"; 2558 const char kUrl[] = "http://foobar.com/main.css";
2559 2559
2560 static const Response kNetResponse = { 2560 static const Response kNetResponse = {
2561 "HTTP/1.1 200 OK", 2561 "HTTP/1.1 200 OK",
2562 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n" 2562 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n"
2563 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n", 2563 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n",
2564 "foobar!!!" 2564 "foobar!!!"
2565 }; 2565 };
2566 2566
2567 const char* kExtraRequestHeaders = 2567 const char kExtraRequestHeaders[] =
2568 "If-Modified-Since: Wed, 06 Feb 2008 22:38:21 GMT\r\n"; 2568 "If-Modified-Since: Wed, 06 Feb 2008 22:38:21 GMT\r\n";
2569 2569
2570 // We will control the network layer's responses for |kUrl| using 2570 // We will control the network layer's responses for |kUrl| using
2571 // |mock_network_response|. 2571 // |mock_network_response|.
2572 MockTransaction mock_network_response = { 0 }; 2572 MockTransaction mock_network_response = { 0 };
2573 mock_network_response.url = kUrl; 2573 mock_network_response.url = kUrl;
2574 AddMockTransaction(&mock_network_response); 2574 AddMockTransaction(&mock_network_response);
2575 2575
2576 MockTransaction request = { 0 }; 2576 MockTransaction request = { 0 };
2577 request.url = kUrl; 2577 request.url = kUrl;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
2610 static const Response kNetResponse2 = { 2610 static const Response kNetResponse2 = {
2611 "HTTP/1.1 304 Not Modified", 2611 "HTTP/1.1 304 Not Modified",
2612 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n" 2612 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n"
2613 "Server: server2\n" 2613 "Server: server2\n"
2614 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n", 2614 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n",
2615 "" 2615 ""
2616 }; 2616 };
2617 2617
2618 // This is two days in the future from the original response's last-modified 2618 // This is two days in the future from the original response's last-modified
2619 // date! 2619 // date!
2620 const char* kExtraRequestHeaders = 2620 const char kExtraRequestHeaders[] =
2621 "If-Modified-Since: Fri, 08 Feb 2008 22:38:21 GMT\r\n"; 2621 "If-Modified-Since: Fri, 08 Feb 2008 22:38:21 GMT\r\n";
2622 2622
2623 ConditionalizedRequestUpdatesCacheHelper( 2623 ConditionalizedRequestUpdatesCacheHelper(
2624 kNetResponse1, kNetResponse2, kNetResponse1, kExtraRequestHeaders); 2624 kNetResponse1, kNetResponse2, kNetResponse1, kExtraRequestHeaders);
2625 } 2625 }
2626 2626
2627 // Test that when doing an externally conditionalized if-none-match 2627 // Test that when doing an externally conditionalized if-none-match
2628 // if the etag does not match the cache entry's etag, then we do not use the 2628 // if the etag does not match the cache entry's etag, then we do not use the
2629 // response (304) to update the cache. 2629 // response (304) to update the cache.
2630 TEST(HttpCache, ConditionalizedRequestUpdatesCache7) { 2630 TEST(HttpCache, ConditionalizedRequestUpdatesCache7) {
2631 static const Response kNetResponse1 = { 2631 static const Response kNetResponse1 = {
2632 "HTTP/1.1 200 OK", 2632 "HTTP/1.1 200 OK",
2633 "Date: Fri, 12 Jun 2009 21:46:42 GMT\n" 2633 "Date: Fri, 12 Jun 2009 21:46:42 GMT\n"
2634 "Etag: \"Foo1\"\n" 2634 "Etag: \"Foo1\"\n"
2635 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n", 2635 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n",
2636 "body1" 2636 "body1"
2637 }; 2637 };
2638 2638
2639 // Second network response for |kUrl|. 2639 // Second network response for |kUrl|.
2640 static const Response kNetResponse2 = { 2640 static const Response kNetResponse2 = {
2641 "HTTP/1.1 304 Not Modified", 2641 "HTTP/1.1 304 Not Modified",
2642 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n" 2642 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n"
2643 "Etag: \"Foo2\"\n" 2643 "Etag: \"Foo2\"\n"
2644 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n", 2644 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n",
2645 "" 2645 ""
2646 }; 2646 };
2647 2647
2648 // Different etag from original response. 2648 // Different etag from original response.
2649 const char* kExtraRequestHeaders = "If-None-Match: \"Foo2\"\r\n"; 2649 const char kExtraRequestHeaders[] = "If-None-Match: \"Foo2\"\r\n";
2650 2650
2651 ConditionalizedRequestUpdatesCacheHelper( 2651 ConditionalizedRequestUpdatesCacheHelper(
2652 kNetResponse1, kNetResponse2, kNetResponse1, kExtraRequestHeaders); 2652 kNetResponse1, kNetResponse2, kNetResponse1, kExtraRequestHeaders);
2653 } 2653 }
2654 2654
2655 // Test that doing an externally conditionalized request with both if-none-match 2655 // Test that doing an externally conditionalized request with both if-none-match
2656 // and if-modified-since updates the cache. 2656 // and if-modified-since updates the cache.
2657 TEST(HttpCache, ConditionalizedRequestUpdatesCache8) { 2657 TEST(HttpCache, ConditionalizedRequestUpdatesCache8) {
2658 static const Response kNetResponse1 = { 2658 static const Response kNetResponse1 = {
2659 "HTTP/1.1 200 OK", 2659 "HTTP/1.1 200 OK",
2660 "Date: Fri, 12 Jun 2009 21:46:42 GMT\n" 2660 "Date: Fri, 12 Jun 2009 21:46:42 GMT\n"
2661 "Etag: \"Foo1\"\n" 2661 "Etag: \"Foo1\"\n"
2662 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n", 2662 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n",
2663 "body1" 2663 "body1"
2664 }; 2664 };
2665 2665
2666 // Second network response for |kUrl|. 2666 // Second network response for |kUrl|.
2667 static const Response kNetResponse2 = { 2667 static const Response kNetResponse2 = {
2668 "HTTP/1.1 200 OK", 2668 "HTTP/1.1 200 OK",
2669 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n" 2669 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n"
2670 "Etag: \"Foo2\"\n" 2670 "Etag: \"Foo2\"\n"
2671 "Last-Modified: Fri, 03 Jul 2009 02:14:27 GMT\n", 2671 "Last-Modified: Fri, 03 Jul 2009 02:14:27 GMT\n",
2672 "body2" 2672 "body2"
2673 }; 2673 };
2674 2674
2675 const char* kExtraRequestHeaders = 2675 const char kExtraRequestHeaders[] =
2676 "If-Modified-Since: Wed, 06 Feb 2008 22:38:21 GMT\r\n" 2676 "If-Modified-Since: Wed, 06 Feb 2008 22:38:21 GMT\r\n"
2677 "If-None-Match: \"Foo1\"\r\n"; 2677 "If-None-Match: \"Foo1\"\r\n";
2678 2678
2679 ConditionalizedRequestUpdatesCacheHelper( 2679 ConditionalizedRequestUpdatesCacheHelper(
2680 kNetResponse1, kNetResponse2, kNetResponse2, kExtraRequestHeaders); 2680 kNetResponse1, kNetResponse2, kNetResponse2, kExtraRequestHeaders);
2681 } 2681 }
2682 2682
2683 // Test that doing an externally conditionalized request with both if-none-match 2683 // Test that doing an externally conditionalized request with both if-none-match
2684 // and if-modified-since does not update the cache with only one match. 2684 // and if-modified-since does not update the cache with only one match.
2685 TEST(HttpCache, ConditionalizedRequestUpdatesCache9) { 2685 TEST(HttpCache, ConditionalizedRequestUpdatesCache9) {
2686 static const Response kNetResponse1 = { 2686 static const Response kNetResponse1 = {
2687 "HTTP/1.1 200 OK", 2687 "HTTP/1.1 200 OK",
2688 "Date: Fri, 12 Jun 2009 21:46:42 GMT\n" 2688 "Date: Fri, 12 Jun 2009 21:46:42 GMT\n"
2689 "Etag: \"Foo1\"\n" 2689 "Etag: \"Foo1\"\n"
2690 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n", 2690 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n",
2691 "body1" 2691 "body1"
2692 }; 2692 };
2693 2693
2694 // Second network response for |kUrl|. 2694 // Second network response for |kUrl|.
2695 static const Response kNetResponse2 = { 2695 static const Response kNetResponse2 = {
2696 "HTTP/1.1 200 OK", 2696 "HTTP/1.1 200 OK",
2697 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n" 2697 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n"
2698 "Etag: \"Foo2\"\n" 2698 "Etag: \"Foo2\"\n"
2699 "Last-Modified: Fri, 03 Jul 2009 02:14:27 GMT\n", 2699 "Last-Modified: Fri, 03 Jul 2009 02:14:27 GMT\n",
2700 "body2" 2700 "body2"
2701 }; 2701 };
2702 2702
2703 // The etag doesn't match what we have stored. 2703 // The etag doesn't match what we have stored.
2704 const char* kExtraRequestHeaders = 2704 const char kExtraRequestHeaders[] =
2705 "If-Modified-Since: Wed, 06 Feb 2008 22:38:21 GMT\r\n" 2705 "If-Modified-Since: Wed, 06 Feb 2008 22:38:21 GMT\r\n"
2706 "If-None-Match: \"Foo2\"\r\n"; 2706 "If-None-Match: \"Foo2\"\r\n";
2707 2707
2708 ConditionalizedRequestUpdatesCacheHelper( 2708 ConditionalizedRequestUpdatesCacheHelper(
2709 kNetResponse1, kNetResponse2, kNetResponse1, kExtraRequestHeaders); 2709 kNetResponse1, kNetResponse2, kNetResponse1, kExtraRequestHeaders);
2710 } 2710 }
2711 2711
2712 // Test that doing an externally conditionalized request with both if-none-match 2712 // Test that doing an externally conditionalized request with both if-none-match
2713 // and if-modified-since does not update the cache with only one match. 2713 // and if-modified-since does not update the cache with only one match.
2714 TEST(HttpCache, ConditionalizedRequestUpdatesCache10) { 2714 TEST(HttpCache, ConditionalizedRequestUpdatesCache10) {
2715 static const Response kNetResponse1 = { 2715 static const Response kNetResponse1 = {
2716 "HTTP/1.1 200 OK", 2716 "HTTP/1.1 200 OK",
2717 "Date: Fri, 12 Jun 2009 21:46:42 GMT\n" 2717 "Date: Fri, 12 Jun 2009 21:46:42 GMT\n"
2718 "Etag: \"Foo1\"\n" 2718 "Etag: \"Foo1\"\n"
2719 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n", 2719 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n",
2720 "body1" 2720 "body1"
2721 }; 2721 };
2722 2722
2723 // Second network response for |kUrl|. 2723 // Second network response for |kUrl|.
2724 static const Response kNetResponse2 = { 2724 static const Response kNetResponse2 = {
2725 "HTTP/1.1 200 OK", 2725 "HTTP/1.1 200 OK",
2726 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n" 2726 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n"
2727 "Etag: \"Foo2\"\n" 2727 "Etag: \"Foo2\"\n"
2728 "Last-Modified: Fri, 03 Jul 2009 02:14:27 GMT\n", 2728 "Last-Modified: Fri, 03 Jul 2009 02:14:27 GMT\n",
2729 "body2" 2729 "body2"
2730 }; 2730 };
2731 2731
2732 // The modification date doesn't match what we have stored. 2732 // The modification date doesn't match what we have stored.
2733 const char* kExtraRequestHeaders = 2733 const char kExtraRequestHeaders[] =
2734 "If-Modified-Since: Fri, 08 Feb 2008 22:38:21 GMT\r\n" 2734 "If-Modified-Since: Fri, 08 Feb 2008 22:38:21 GMT\r\n"
2735 "If-None-Match: \"Foo1\"\r\n"; 2735 "If-None-Match: \"Foo1\"\r\n";
2736 2736
2737 ConditionalizedRequestUpdatesCacheHelper( 2737 ConditionalizedRequestUpdatesCacheHelper(
2738 kNetResponse1, kNetResponse2, kNetResponse1, kExtraRequestHeaders); 2738 kNetResponse1, kNetResponse2, kNetResponse1, kExtraRequestHeaders);
2739 } 2739 }
2740 2740
2741 TEST(HttpCache, UrlContainingHash) { 2741 TEST(HttpCache, UrlContainingHash) {
2742 MockHttpCache cache; 2742 MockHttpCache cache;
2743 2743
(...skipping 3615 matching lines...) Expand 10 before | Expand all | Expand 10 after
6359 } 6359 }
6360 6360
6361 // Other tests check that the response headers of the cached response 6361 // Other tests check that the response headers of the cached response
6362 // get updated on 304. Here we specifically check that the 6362 // get updated on 304. Here we specifically check that the
6363 // HttpResponseHeaders::request_time and HttpResponseHeaders::response_time 6363 // HttpResponseHeaders::request_time and HttpResponseHeaders::response_time
6364 // fields also gets updated. 6364 // fields also gets updated.
6365 // http://crbug.com/20594. 6365 // http://crbug.com/20594.
6366 TEST(HttpCache, UpdatesRequestResponseTimeOn304) { 6366 TEST(HttpCache, UpdatesRequestResponseTimeOn304) {
6367 MockHttpCache cache; 6367 MockHttpCache cache;
6368 6368
6369 const char* kUrl = "http://foobar"; 6369 const char kUrl[] = "http://foobar";
6370 const char* kData = "body"; 6370 const char kData[] = "body";
6371 6371
6372 MockTransaction mock_network_response = { 0 }; 6372 MockTransaction mock_network_response = { 0 };
6373 mock_network_response.url = kUrl; 6373 mock_network_response.url = kUrl;
6374 6374
6375 AddMockTransaction(&mock_network_response); 6375 AddMockTransaction(&mock_network_response);
6376 6376
6377 // Request |kUrl|, causing |kNetResponse1| to be written to the cache. 6377 // Request |kUrl|, causing |kNetResponse1| to be written to the cache.
6378 6378
6379 MockTransaction request = { 0 }; 6379 MockTransaction request = { 0 };
6380 request.url = kUrl; 6380 request.url = kUrl;
(...skipping 1394 matching lines...) Expand 10 before | Expand all | Expand 10 after
7775 7775
7776 // Here the second transaction proceeds without reading the first body. 7776 // Here the second transaction proceeds without reading the first body.
7777 EXPECT_EQ(net::LOAD_STATE_WAITING_FOR_CACHE, second->trans->GetLoadState()); 7777 EXPECT_EQ(net::LOAD_STATE_WAITING_FOR_CACHE, second->trans->GetLoadState());
7778 base::MessageLoop::current()->RunUntilIdle(); 7778 base::MessageLoop::current()->RunUntilIdle();
7779 EXPECT_EQ(net::LOAD_STATE_IDLE, second->trans->GetLoadState()); 7779 EXPECT_EQ(net::LOAD_STATE_IDLE, second->trans->GetLoadState());
7780 ASSERT_TRUE(second->trans->GetResponseInfo()); 7780 ASSERT_TRUE(second->trans->GetResponseInfo());
7781 EXPECT_TRUE(second->trans->GetResponseInfo()->headers->HasHeaderValue( 7781 EXPECT_TRUE(second->trans->GetResponseInfo()->headers->HasHeaderValue(
7782 "Cache-Control", "no-store")); 7782 "Cache-Control", "no-store"));
7783 ReadAndVerifyTransaction(second->trans.get(), kSimpleGET_Transaction); 7783 ReadAndVerifyTransaction(second->trans.get(), kSimpleGET_Transaction);
7784 } 7784 }
OLDNEW
« no previous file with comments | « net/http/http_auth_cache_unittest.cc ('k') | net/http/http_chunked_decoder_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698