OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/data_reduction_proxy/common/data_reduction_proxy_headers.h" | 5 #include "components/data_reduction_proxy/common/data_reduction_proxy_headers.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "net/http/http_response_headers.h" | 9 #include "net/http/http_response_headers.h" |
10 #include "net/proxy/proxy_service.h" | 10 #include "net/proxy/proxy_service.h" |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 }, | 105 }, |
106 }; | 106 }; |
107 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { | 107 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { |
108 std::string headers(tests[i].headers); | 108 std::string headers(tests[i].headers); |
109 HeadersToRaw(&headers); | 109 HeadersToRaw(&headers); |
110 scoped_refptr<net::HttpResponseHeaders> parsed( | 110 scoped_refptr<net::HttpResponseHeaders> parsed( |
111 new net::HttpResponseHeaders(headers)); | 111 new net::HttpResponseHeaders(headers)); |
112 | 112 |
113 std::string action_value; | 113 std::string action_value; |
114 bool has_action_key = GetDataReductionProxyActionValue( | 114 bool has_action_key = GetDataReductionProxyActionValue( |
115 parsed, tests[i].action_key, &action_value); | 115 parsed.get(), tests[i].action_key, &action_value); |
116 EXPECT_EQ(tests[i].expected_result, has_action_key); | 116 EXPECT_EQ(tests[i].expected_result, has_action_key); |
117 if (has_action_key) { | 117 if (has_action_key) { |
118 EXPECT_EQ(tests[i].expected_action_value, action_value); | 118 EXPECT_EQ(tests[i].expected_action_value, action_value); |
119 } | 119 } |
120 } | 120 } |
121 } | 121 } |
122 | 122 |
123 TEST_F(DataReductionProxyHeadersTest, GetProxyBypassInfo) { | 123 TEST_F(DataReductionProxyHeadersTest, GetProxyBypassInfo) { |
124 const struct { | 124 const struct { |
125 const char* headers; | 125 const char* headers; |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
354 false, | 354 false, |
355 }, | 355 }, |
356 }; | 356 }; |
357 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { | 357 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { |
358 std::string headers(tests[i].headers); | 358 std::string headers(tests[i].headers); |
359 HeadersToRaw(&headers); | 359 HeadersToRaw(&headers); |
360 scoped_refptr<net::HttpResponseHeaders> parsed( | 360 scoped_refptr<net::HttpResponseHeaders> parsed( |
361 new net::HttpResponseHeaders(headers)); | 361 new net::HttpResponseHeaders(headers)); |
362 | 362 |
363 DataReductionProxyInfo data_reduction_proxy_info; | 363 DataReductionProxyInfo data_reduction_proxy_info; |
364 EXPECT_EQ(tests[i].expected_result, | 364 EXPECT_EQ( |
365 ParseHeadersAndSetProxyInfo(parsed, &data_reduction_proxy_info)); | 365 tests[i].expected_result, |
| 366 ParseHeadersAndSetProxyInfo(parsed.get(), &data_reduction_proxy_info)); |
366 EXPECT_EQ(tests[i].expected_retry_delay, | 367 EXPECT_EQ(tests[i].expected_retry_delay, |
367 data_reduction_proxy_info.bypass_duration.InSeconds()); | 368 data_reduction_proxy_info.bypass_duration.InSeconds()); |
368 EXPECT_EQ(tests[i].expected_bypass_all, | 369 EXPECT_EQ(tests[i].expected_bypass_all, |
369 data_reduction_proxy_info.bypass_all); | 370 data_reduction_proxy_info.bypass_all); |
370 EXPECT_EQ(tests[i].expected_mark_proxies_as_bad, | 371 EXPECT_EQ(tests[i].expected_mark_proxies_as_bad, |
371 data_reduction_proxy_info.mark_proxies_as_bad); | 372 data_reduction_proxy_info.mark_proxies_as_bad); |
372 } | 373 } |
373 } | 374 } |
374 | 375 |
375 TEST_F(DataReductionProxyHeadersTest, ParseHeadersAndSetProxyInfo) { | 376 TEST_F(DataReductionProxyHeadersTest, ParseHeadersAndSetProxyInfo) { |
376 std::string headers = | 377 std::string headers = |
377 "HTTP/1.1 200 OK\n" | 378 "HTTP/1.1 200 OK\n" |
378 "connection: keep-alive\n" | 379 "connection: keep-alive\n" |
379 "Chrome-Proxy: bypass=0\n" | 380 "Chrome-Proxy: bypass=0\n" |
380 "Content-Length: 999\n"; | 381 "Content-Length: 999\n"; |
381 HeadersToRaw(&headers); | 382 HeadersToRaw(&headers); |
382 scoped_refptr<net::HttpResponseHeaders> parsed( | 383 scoped_refptr<net::HttpResponseHeaders> parsed( |
383 new net::HttpResponseHeaders(headers)); | 384 new net::HttpResponseHeaders(headers)); |
384 | 385 |
385 DataReductionProxyInfo data_reduction_proxy_info; | 386 DataReductionProxyInfo data_reduction_proxy_info; |
386 EXPECT_TRUE(ParseHeadersAndSetProxyInfo(parsed, &data_reduction_proxy_info)); | 387 EXPECT_TRUE( |
| 388 ParseHeadersAndSetProxyInfo(parsed.get(), &data_reduction_proxy_info)); |
387 EXPECT_LE(60, data_reduction_proxy_info.bypass_duration.InSeconds()); | 389 EXPECT_LE(60, data_reduction_proxy_info.bypass_duration.InSeconds()); |
388 EXPECT_GE(5 * 60, data_reduction_proxy_info.bypass_duration.InSeconds()); | 390 EXPECT_GE(5 * 60, data_reduction_proxy_info.bypass_duration.InSeconds()); |
389 EXPECT_FALSE(data_reduction_proxy_info.bypass_all); | 391 EXPECT_FALSE(data_reduction_proxy_info.bypass_all); |
390 } | 392 } |
391 | 393 |
392 TEST_F(DataReductionProxyHeadersTest, HasDataReductionProxyViaHeader) { | 394 TEST_F(DataReductionProxyHeadersTest, HasDataReductionProxyViaHeader) { |
393 const struct { | 395 const struct { |
394 const char* headers; | 396 const char* headers; |
395 bool expected_result; | 397 bool expected_result; |
396 bool expected_has_intermediary; | 398 bool expected_has_intermediary; |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
506 }; | 508 }; |
507 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { | 509 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { |
508 std::string headers(tests[i].headers); | 510 std::string headers(tests[i].headers); |
509 HeadersToRaw(&headers); | 511 HeadersToRaw(&headers); |
510 scoped_refptr<net::HttpResponseHeaders> parsed( | 512 scoped_refptr<net::HttpResponseHeaders> parsed( |
511 new net::HttpResponseHeaders(headers)); | 513 new net::HttpResponseHeaders(headers)); |
512 | 514 |
513 bool has_chrome_proxy_via_header, has_intermediary; | 515 bool has_chrome_proxy_via_header, has_intermediary; |
514 if (tests[i].ignore_intermediary) { | 516 if (tests[i].ignore_intermediary) { |
515 has_chrome_proxy_via_header = | 517 has_chrome_proxy_via_header = |
516 HasDataReductionProxyViaHeader(parsed, NULL); | 518 HasDataReductionProxyViaHeader(parsed.get(), NULL); |
517 } | 519 } |
518 else { | 520 else { |
519 has_chrome_proxy_via_header = | 521 has_chrome_proxy_via_header = |
520 HasDataReductionProxyViaHeader(parsed, &has_intermediary); | 522 HasDataReductionProxyViaHeader(parsed.get(), &has_intermediary); |
521 } | 523 } |
522 EXPECT_EQ(tests[i].expected_result, has_chrome_proxy_via_header); | 524 EXPECT_EQ(tests[i].expected_result, has_chrome_proxy_via_header); |
523 if (has_chrome_proxy_via_header && !tests[i].ignore_intermediary) { | 525 if (has_chrome_proxy_via_header && !tests[i].ignore_intermediary) { |
524 EXPECT_EQ(tests[i].expected_has_intermediary, has_intermediary); | 526 EXPECT_EQ(tests[i].expected_has_intermediary, has_intermediary); |
525 } | 527 } |
526 } | 528 } |
527 } | 529 } |
528 | 530 |
529 TEST_F(DataReductionProxyHeadersTest, GetDataReductionProxyBypassEventType) { | 531 TEST_F(DataReductionProxyHeadersTest, GetDataReductionProxyBypassEventType) { |
530 const struct { | 532 const struct { |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
626 "Via: 1.1 Chrome-Compression-Proxy\n", | 628 "Via: 1.1 Chrome-Compression-Proxy\n", |
627 BYPASS_EVENT_TYPE_MAX, | 629 BYPASS_EVENT_TYPE_MAX, |
628 } | 630 } |
629 }; | 631 }; |
630 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { | 632 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { |
631 std::string headers(tests[i].headers); | 633 std::string headers(tests[i].headers); |
632 HeadersToRaw(&headers); | 634 HeadersToRaw(&headers); |
633 scoped_refptr<net::HttpResponseHeaders> parsed( | 635 scoped_refptr<net::HttpResponseHeaders> parsed( |
634 new net::HttpResponseHeaders(headers)); | 636 new net::HttpResponseHeaders(headers)); |
635 DataReductionProxyInfo chrome_proxy_info; | 637 DataReductionProxyInfo chrome_proxy_info; |
636 EXPECT_EQ(tests[i].expected_result, | 638 EXPECT_EQ( |
637 GetDataReductionProxyBypassType(parsed, &chrome_proxy_info)); | 639 tests[i].expected_result, |
| 640 GetDataReductionProxyBypassType(parsed.get(), &chrome_proxy_info)); |
638 } | 641 } |
639 } | 642 } |
640 | 643 |
641 TEST_F(DataReductionProxyHeadersTest, | 644 TEST_F(DataReductionProxyHeadersTest, |
642 GetDataReductionProxyActionFingerprintChromeProxy) { | 645 GetDataReductionProxyActionFingerprintChromeProxy) { |
643 const struct { | 646 const struct { |
644 std::string label; | 647 std::string label; |
645 const char* headers; | 648 const char* headers; |
646 bool expected_fingerprint_exist; | 649 bool expected_fingerprint_exist; |
647 std::string expected_fingerprint; | 650 std::string expected_fingerprint; |
(...skipping 18 matching lines...) Expand all Loading... |
666 }, | 669 }, |
667 }; | 670 }; |
668 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { | 671 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { |
669 std::string headers(tests[i].headers); | 672 std::string headers(tests[i].headers); |
670 HeadersToRaw(&headers); | 673 HeadersToRaw(&headers); |
671 scoped_refptr<net::HttpResponseHeaders> parsed( | 674 scoped_refptr<net::HttpResponseHeaders> parsed( |
672 new net::HttpResponseHeaders(headers)); | 675 new net::HttpResponseHeaders(headers)); |
673 | 676 |
674 std::string fingerprint; | 677 std::string fingerprint; |
675 bool fingerprint_exist = GetDataReductionProxyActionFingerprintChromeProxy( | 678 bool fingerprint_exist = GetDataReductionProxyActionFingerprintChromeProxy( |
676 parsed, &fingerprint); | 679 parsed.get(), &fingerprint); |
677 EXPECT_EQ(tests[i].expected_fingerprint_exist, fingerprint_exist) | 680 EXPECT_EQ(tests[i].expected_fingerprint_exist, fingerprint_exist) |
678 << tests[i].label; | 681 << tests[i].label; |
679 | 682 |
680 if (fingerprint_exist) | 683 if (fingerprint_exist) |
681 EXPECT_EQ(tests[i].expected_fingerprint, fingerprint) << tests[i].label; | 684 EXPECT_EQ(tests[i].expected_fingerprint, fingerprint) << tests[i].label; |
682 } | 685 } |
683 } | 686 } |
684 | 687 |
685 TEST_F(DataReductionProxyHeadersTest, | 688 TEST_F(DataReductionProxyHeadersTest, |
686 GetDataReductionProxyActionFingerprintVia) { | 689 GetDataReductionProxyActionFingerprintVia) { |
(...skipping 23 matching lines...) Expand all Loading... |
710 }, | 713 }, |
711 }; | 714 }; |
712 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { | 715 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { |
713 std::string headers(tests[i].headers); | 716 std::string headers(tests[i].headers); |
714 HeadersToRaw(&headers); | 717 HeadersToRaw(&headers); |
715 scoped_refptr<net::HttpResponseHeaders> parsed( | 718 scoped_refptr<net::HttpResponseHeaders> parsed( |
716 new net::HttpResponseHeaders(headers)); | 719 new net::HttpResponseHeaders(headers)); |
717 | 720 |
718 std::string fingerprint; | 721 std::string fingerprint; |
719 bool fingerprint_exist = | 722 bool fingerprint_exist = |
720 GetDataReductionProxyActionFingerprintVia(parsed, &fingerprint); | 723 GetDataReductionProxyActionFingerprintVia(parsed.get(), &fingerprint); |
721 EXPECT_EQ(tests[i].expected_fingerprint_exist, fingerprint_exist) | 724 EXPECT_EQ(tests[i].expected_fingerprint_exist, fingerprint_exist) |
722 << tests[i].label; | 725 << tests[i].label; |
723 | 726 |
724 if (fingerprint_exist) | 727 if (fingerprint_exist) |
725 EXPECT_EQ(tests[i].expected_fingerprint, fingerprint) << tests[i].label; | 728 EXPECT_EQ(tests[i].expected_fingerprint, fingerprint) << tests[i].label; |
726 } | 729 } |
727 } | 730 } |
728 | 731 |
729 TEST_F(DataReductionProxyHeadersTest, | 732 TEST_F(DataReductionProxyHeadersTest, |
730 GetDataReductionProxyActionFingerprintOtherHeaders) { | 733 GetDataReductionProxyActionFingerprintOtherHeaders) { |
(...skipping 22 matching lines...) Expand all Loading... |
753 "foh1", | 756 "foh1", |
754 }, | 757 }, |
755 }; | 758 }; |
756 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { | 759 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { |
757 std::string headers(tests[i].headers); | 760 std::string headers(tests[i].headers); |
758 HeadersToRaw(&headers); | 761 HeadersToRaw(&headers); |
759 scoped_refptr<net::HttpResponseHeaders> parsed( | 762 scoped_refptr<net::HttpResponseHeaders> parsed( |
760 new net::HttpResponseHeaders(headers)); | 763 new net::HttpResponseHeaders(headers)); |
761 | 764 |
762 std::string fingerprint; | 765 std::string fingerprint; |
763 bool fingerprint_exist = | 766 bool fingerprint_exist = GetDataReductionProxyActionFingerprintOtherHeaders( |
764 GetDataReductionProxyActionFingerprintOtherHeaders( | 767 parsed.get(), &fingerprint); |
765 parsed, &fingerprint); | |
766 EXPECT_EQ(tests[i].expected_fingerprint_exist, fingerprint_exist) | 768 EXPECT_EQ(tests[i].expected_fingerprint_exist, fingerprint_exist) |
767 << tests[i].label; | 769 << tests[i].label; |
768 | 770 |
769 if (fingerprint_exist) | 771 if (fingerprint_exist) |
770 EXPECT_EQ(tests[i].expected_fingerprint, fingerprint) << tests[i].label; | 772 EXPECT_EQ(tests[i].expected_fingerprint, fingerprint) << tests[i].label; |
771 } | 773 } |
772 } | 774 } |
773 | 775 |
774 TEST_F(DataReductionProxyHeadersTest, | 776 TEST_F(DataReductionProxyHeadersTest, |
775 GetDataReductionProxyActionFingerprintContentLength) { | 777 GetDataReductionProxyActionFingerprintContentLength) { |
(...skipping 23 matching lines...) Expand all Loading... |
799 }, | 801 }, |
800 }; | 802 }; |
801 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { | 803 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { |
802 std::string headers(tests[i].headers); | 804 std::string headers(tests[i].headers); |
803 HeadersToRaw(&headers); | 805 HeadersToRaw(&headers); |
804 scoped_refptr<net::HttpResponseHeaders> parsed( | 806 scoped_refptr<net::HttpResponseHeaders> parsed( |
805 new net::HttpResponseHeaders(headers)); | 807 new net::HttpResponseHeaders(headers)); |
806 | 808 |
807 std::string fingerprint; | 809 std::string fingerprint; |
808 bool fingerprint_exist = | 810 bool fingerprint_exist = |
809 GetDataReductionProxyActionFingerprintContentLength( | 811 GetDataReductionProxyActionFingerprintContentLength(parsed.get(), |
810 parsed, &fingerprint); | 812 &fingerprint); |
811 EXPECT_EQ(tests[i].expected_fingerprint_exist, fingerprint_exist) | 813 EXPECT_EQ(tests[i].expected_fingerprint_exist, fingerprint_exist) |
812 << tests[i].label; | 814 << tests[i].label; |
813 | 815 |
814 if (fingerprint_exist) | 816 if (fingerprint_exist) |
815 EXPECT_EQ(tests[i].expected_fingerprint, fingerprint) << tests[i].label; | 817 EXPECT_EQ(tests[i].expected_fingerprint, fingerprint) << tests[i].label; |
816 } | 818 } |
817 } | 819 } |
818 | 820 |
819 TEST_F(DataReductionProxyHeadersTest, | 821 TEST_F(DataReductionProxyHeadersTest, |
820 GetDataReductionProxyHeaderWithFingerprintRemoved) { | 822 GetDataReductionProxyHeaderWithFingerprintRemoved) { |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
863 }, | 865 }, |
864 }; | 866 }; |
865 | 867 |
866 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test); ++i) { | 868 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test); ++i) { |
867 std::string headers(test[i].headers); | 869 std::string headers(test[i].headers); |
868 HeadersToRaw(&headers); | 870 HeadersToRaw(&headers); |
869 scoped_refptr<net::HttpResponseHeaders> parsed( | 871 scoped_refptr<net::HttpResponseHeaders> parsed( |
870 new net::HttpResponseHeaders(headers)); | 872 new net::HttpResponseHeaders(headers)); |
871 | 873 |
872 std::vector<std::string> output_values; | 874 std::vector<std::string> output_values; |
873 GetDataReductionProxyHeaderWithFingerprintRemoved(parsed, &output_values); | 875 GetDataReductionProxyHeaderWithFingerprintRemoved(parsed.get(), |
| 876 &output_values); |
874 | 877 |
875 std::string output_values_string; | 878 std::string output_values_string; |
876 for (size_t j = 0; j < output_values.size(); ++j) | 879 for (size_t j = 0; j < output_values.size(); ++j) |
877 output_values_string += output_values[j] + ","; | 880 output_values_string += output_values[j] + ","; |
878 | 881 |
879 EXPECT_EQ(test[i].expected_output_values_string, output_values_string) | 882 EXPECT_EQ(test[i].expected_output_values_string, output_values_string) |
880 << test[i].label; | 883 << test[i].label; |
881 } | 884 } |
882 } | 885 } |
883 | 886 |
884 } // namespace data_reduction_proxy | 887 } // namespace data_reduction_proxy |
OLD | NEW |