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

Side by Side Diff: chrome/browser/extensions/api/web_request/web_request_api_unittest.cc

Issue 503033002: Move ExtensionWarningService and ExtensionsWarningSet to extensions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@3_web_view_internal
Patch Set: Rename. Created 6 years, 3 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
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 <map> 5 #include <map>
6 #include <queue> 6 #include <queue>
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
11 #include "base/files/file_path.h" 11 #include "base/files/file_path.h"
12 #include "base/json/json_reader.h" 12 #include "base/json/json_reader.h"
13 #include "base/json/json_string_value_serializer.h" 13 #include "base/json/json_string_value_serializer.h"
14 #include "base/memory/scoped_ptr.h" 14 #include "base/memory/scoped_ptr.h"
15 #include "base/memory/weak_ptr.h" 15 #include "base/memory/weak_ptr.h"
16 #include "base/message_loop/message_loop.h" 16 #include "base/message_loop/message_loop.h"
17 #include "base/path_service.h" 17 #include "base/path_service.h"
18 #include "base/prefs/pref_member.h" 18 #include "base/prefs/pref_member.h"
19 #include "base/stl_util.h" 19 #include "base/stl_util.h"
20 #include "base/strings/string_piece.h" 20 #include "base/strings/string_piece.h"
21 #include "base/strings/stringprintf.h" 21 #include "base/strings/stringprintf.h"
22 #include "base/strings/utf_string_conversions.h" 22 #include "base/strings/utf_string_conversions.h"
23 #include "base/time/time.h" 23 #include "base/time/time.h"
24 #include "chrome/browser/content_settings/cookie_settings.h" 24 #include "chrome/browser/content_settings/cookie_settings.h"
25 #include "chrome/browser/extensions/api/web_request/upload_data_presenter.h" 25 #include "chrome/browser/extensions/api/web_request/upload_data_presenter.h"
26 #include "chrome/browser/extensions/api/web_request/web_request_api.h" 26 #include "chrome/browser/extensions/api/web_request/web_request_api.h"
27 #include "chrome/browser/extensions/api/web_request/web_request_api_constants.h" 27 #include "chrome/browser/extensions/api/web_request/web_request_api_constants.h"
28 #include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h" 28 #include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h"
29 #include "chrome/browser/extensions/event_router_forwarder.h" 29 #include "chrome/browser/extensions/event_router_forwarder.h"
30 #include "chrome/browser/extensions/extension_warning_set.h"
31 #include "chrome/browser/net/about_protocol_handler.h" 30 #include "chrome/browser/net/about_protocol_handler.h"
32 #include "chrome/browser/net/chrome_network_delegate.h" 31 #include "chrome/browser/net/chrome_network_delegate.h"
33 #include "chrome/common/extensions/api/web_request.h" 32 #include "chrome/common/extensions/api/web_request.h"
34 #include "chrome/common/pref_names.h" 33 #include "chrome/common/pref_names.h"
35 #include "chrome/test/base/testing_browser_process.h" 34 #include "chrome/test/base/testing_browser_process.h"
36 #include "chrome/test/base/testing_pref_service_syncable.h" 35 #include "chrome/test/base/testing_pref_service_syncable.h"
37 #include "chrome/test/base/testing_profile.h" 36 #include "chrome/test/base/testing_profile.h"
38 #include "chrome/test/base/testing_profile_manager.h" 37 #include "chrome/test/base/testing_profile_manager.h"
39 #include "content/public/common/url_constants.h" 38 #include "content/public/common/url_constants.h"
40 #include "content/public/test/test_browser_thread_bundle.h" 39 #include "content/public/test/test_browser_thread_bundle.h"
40 #include "extensions/browser/warning_set.h"
41 #include "extensions/common/extension_messages.h" 41 #include "extensions/common/extension_messages.h"
42 #include "extensions/common/features/feature.h" 42 #include "extensions/common/features/feature.h"
43 #include "net/base/auth.h" 43 #include "net/base/auth.h"
44 #include "net/base/capturing_net_log.h" 44 #include "net/base/capturing_net_log.h"
45 #include "net/base/net_util.h" 45 #include "net/base/net_util.h"
46 #include "net/base/request_priority.h" 46 #include "net/base/request_priority.h"
47 #include "net/base/upload_bytes_element_reader.h" 47 #include "net/base/upload_bytes_element_reader.h"
48 #include "net/base/upload_data_stream.h" 48 #include "net/base/upload_data_stream.h"
49 #include "net/base/upload_file_element_reader.h" 49 #include "net/base/upload_file_element_reader.h"
50 #include "net/dns/mock_host_resolver.h" 50 #include "net/dns/mock_host_resolver.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 98
99 // Searches |key| in |collection| by iterating over its elements and returns 99 // Searches |key| in |collection| by iterating over its elements and returns
100 // true if found. 100 // true if found.
101 template <typename Collection, typename Key> 101 template <typename Collection, typename Key>
102 bool Contains(const Collection& collection, const Key& key) { 102 bool Contains(const Collection& collection, const Key& key) {
103 return std::find(collection.begin(), collection.end(), key) != 103 return std::find(collection.begin(), collection.end(), key) !=
104 collection.end(); 104 collection.end();
105 } 105 }
106 106
107 // Returns whether |warnings| contains an extension for |extension_id|. 107 // Returns whether |warnings| contains an extension for |extension_id|.
108 bool HasWarning(const ExtensionWarningSet& warnings, 108 bool HasWarning(const WarningSet& warnings,
109 const std::string& extension_id) { 109 const std::string& extension_id) {
110 for (ExtensionWarningSet::const_iterator i = warnings.begin(); 110 for (WarningSet::const_iterator i = warnings.begin();
111 i != warnings.end(); ++i) { 111 i != warnings.end(); ++i) {
112 if (i->extension_id() == extension_id) 112 if (i->extension_id() == extension_id)
113 return true; 113 return true;
114 } 114 }
115 return false; 115 return false;
116 } 116 }
117 117
118 // Parses the JSON data attached to the |message| and tries to return it. 118 // Parses the JSON data attached to the |message| and tries to return it.
119 // |param| must outlive |out|. Returns NULL on failure. 119 // |param| must outlive |out|. Returns NULL on failure.
120 void GetPartOfMessageArguments(IPC::Message* message, 120 void GetPartOfMessageArguments(IPC::Message* message,
(...skipping 1219 matching lines...) Expand 10 before | Expand all | Expand 10 after
1340 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); 1340 deltas.sort(&InDecreasingExtensionInstallationTimeOrder);
1341 MergeCancelOfResponses(deltas, &canceled, &net_log); 1341 MergeCancelOfResponses(deltas, &canceled, &net_log);
1342 EXPECT_TRUE(canceled); 1342 EXPECT_TRUE(canceled);
1343 EXPECT_EQ(1u, capturing_net_log.GetSize()); 1343 EXPECT_EQ(1u, capturing_net_log.GetSize());
1344 } 1344 }
1345 1345
1346 TEST(ExtensionWebRequestHelpersTest, TestMergeOnBeforeRequestResponses) { 1346 TEST(ExtensionWebRequestHelpersTest, TestMergeOnBeforeRequestResponses) {
1347 EventResponseDeltas deltas; 1347 EventResponseDeltas deltas;
1348 net::CapturingBoundNetLog capturing_net_log; 1348 net::CapturingBoundNetLog capturing_net_log;
1349 net::BoundNetLog net_log = capturing_net_log.bound(); 1349 net::BoundNetLog net_log = capturing_net_log.bound();
1350 ExtensionWarningSet warning_set; 1350 WarningSet warning_set;
1351 GURL effective_new_url; 1351 GURL effective_new_url;
1352 1352
1353 // No redirect 1353 // No redirect
1354 linked_ptr<EventResponseDelta> d0( 1354 linked_ptr<EventResponseDelta> d0(
1355 new EventResponseDelta("extid0", base::Time::FromInternalValue(0))); 1355 new EventResponseDelta("extid0", base::Time::FromInternalValue(0)));
1356 deltas.push_back(d0); 1356 deltas.push_back(d0);
1357 MergeOnBeforeRequestResponses( 1357 MergeOnBeforeRequestResponses(
1358 deltas, &effective_new_url, &warning_set, &net_log); 1358 deltas, &effective_new_url, &warning_set, &net_log);
1359 EXPECT_TRUE(effective_new_url.is_empty()); 1359 EXPECT_TRUE(effective_new_url.is_empty());
1360 1360
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1421 EXPECT_TRUE(HasWarning(warning_set, "extid2")); 1421 EXPECT_TRUE(HasWarning(warning_set, "extid2"));
1422 EXPECT_EQ(4u, capturing_net_log.GetSize()); 1422 EXPECT_EQ(4u, capturing_net_log.GetSize());
1423 } 1423 }
1424 1424
1425 // This tests that we can redirect to data:// urls, which is considered 1425 // This tests that we can redirect to data:// urls, which is considered
1426 // a kind of cancelling requests. 1426 // a kind of cancelling requests.
1427 TEST(ExtensionWebRequestHelpersTest, TestMergeOnBeforeRequestResponses2) { 1427 TEST(ExtensionWebRequestHelpersTest, TestMergeOnBeforeRequestResponses2) {
1428 EventResponseDeltas deltas; 1428 EventResponseDeltas deltas;
1429 net::CapturingBoundNetLog capturing_net_log; 1429 net::CapturingBoundNetLog capturing_net_log;
1430 net::BoundNetLog net_log = capturing_net_log.bound(); 1430 net::BoundNetLog net_log = capturing_net_log.bound();
1431 ExtensionWarningSet warning_set; 1431 WarningSet warning_set;
1432 GURL effective_new_url; 1432 GURL effective_new_url;
1433 1433
1434 // Single redirect. 1434 // Single redirect.
1435 GURL new_url_0("http://foo.com"); 1435 GURL new_url_0("http://foo.com");
1436 linked_ptr<EventResponseDelta> d0( 1436 linked_ptr<EventResponseDelta> d0(
1437 new EventResponseDelta("extid0", base::Time::FromInternalValue(2000))); 1437 new EventResponseDelta("extid0", base::Time::FromInternalValue(2000)));
1438 d0->new_url = GURL(new_url_0); 1438 d0->new_url = GURL(new_url_0);
1439 deltas.push_back(d0); 1439 deltas.push_back(d0);
1440 MergeOnBeforeRequestResponses( 1440 MergeOnBeforeRequestResponses(
1441 deltas, &effective_new_url, &warning_set, &net_log); 1441 deltas, &effective_new_url, &warning_set, &net_log);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1490 EXPECT_TRUE(HasWarning(warning_set, "extid3")); 1490 EXPECT_TRUE(HasWarning(warning_set, "extid3"));
1491 EXPECT_EQ(3u, capturing_net_log.GetSize()); 1491 EXPECT_EQ(3u, capturing_net_log.GetSize());
1492 } 1492 }
1493 1493
1494 // This tests that we can redirect to about:blank, which is considered 1494 // This tests that we can redirect to about:blank, which is considered
1495 // a kind of cancelling requests. 1495 // a kind of cancelling requests.
1496 TEST(ExtensionWebRequestHelpersTest, TestMergeOnBeforeRequestResponses3) { 1496 TEST(ExtensionWebRequestHelpersTest, TestMergeOnBeforeRequestResponses3) {
1497 EventResponseDeltas deltas; 1497 EventResponseDeltas deltas;
1498 net::CapturingBoundNetLog capturing_net_log; 1498 net::CapturingBoundNetLog capturing_net_log;
1499 net::BoundNetLog net_log = capturing_net_log.bound(); 1499 net::BoundNetLog net_log = capturing_net_log.bound();
1500 ExtensionWarningSet warning_set; 1500 WarningSet warning_set;
1501 GURL effective_new_url; 1501 GURL effective_new_url;
1502 1502
1503 // Single redirect. 1503 // Single redirect.
1504 GURL new_url_0("http://foo.com"); 1504 GURL new_url_0("http://foo.com");
1505 linked_ptr<EventResponseDelta> d0( 1505 linked_ptr<EventResponseDelta> d0(
1506 new EventResponseDelta("extid0", base::Time::FromInternalValue(2000))); 1506 new EventResponseDelta("extid0", base::Time::FromInternalValue(2000)));
1507 d0->new_url = GURL(new_url_0); 1507 d0->new_url = GURL(new_url_0);
1508 deltas.push_back(d0); 1508 deltas.push_back(d0);
1509 MergeOnBeforeRequestResponses( 1509 MergeOnBeforeRequestResponses(
1510 deltas, &effective_new_url, &warning_set, &net_log); 1510 deltas, &effective_new_url, &warning_set, &net_log);
(...skipping 15 matching lines...) Expand all
1526 EXPECT_TRUE(warning_set.empty()); 1526 EXPECT_TRUE(warning_set.empty());
1527 EXPECT_EQ(1u, capturing_net_log.GetSize()); 1527 EXPECT_EQ(1u, capturing_net_log.GetSize());
1528 } 1528 }
1529 1529
1530 TEST(ExtensionWebRequestHelpersTest, TestMergeOnBeforeSendHeadersResponses) { 1530 TEST(ExtensionWebRequestHelpersTest, TestMergeOnBeforeSendHeadersResponses) {
1531 net::HttpRequestHeaders base_headers; 1531 net::HttpRequestHeaders base_headers;
1532 base_headers.AddHeaderFromString("key1: value 1"); 1532 base_headers.AddHeaderFromString("key1: value 1");
1533 base_headers.AddHeaderFromString("key2: value 2"); 1533 base_headers.AddHeaderFromString("key2: value 2");
1534 net::CapturingBoundNetLog capturing_net_log; 1534 net::CapturingBoundNetLog capturing_net_log;
1535 net::BoundNetLog net_log = capturing_net_log.bound(); 1535 net::BoundNetLog net_log = capturing_net_log.bound();
1536 ExtensionWarningSet warning_set; 1536 WarningSet warning_set;
1537 std::string header_value; 1537 std::string header_value;
1538 EventResponseDeltas deltas; 1538 EventResponseDeltas deltas;
1539 1539
1540 // Check that we can handle not changing the headers. 1540 // Check that we can handle not changing the headers.
1541 linked_ptr<EventResponseDelta> d0( 1541 linked_ptr<EventResponseDelta> d0(
1542 new EventResponseDelta("extid0", base::Time::FromInternalValue(2500))); 1542 new EventResponseDelta("extid0", base::Time::FromInternalValue(2500)));
1543 deltas.push_back(d0); 1543 deltas.push_back(d0);
1544 net::HttpRequestHeaders headers0; 1544 net::HttpRequestHeaders headers0;
1545 headers0.MergeFrom(base_headers); 1545 headers0.MergeFrom(base_headers);
1546 MergeOnBeforeSendHeadersResponses(deltas, &headers0, &warning_set, &net_log); 1546 MergeOnBeforeSendHeadersResponses(deltas, &headers0, &warning_set, &net_log);
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
1622 EXPECT_EQ(3u, capturing_net_log.GetSize()); 1622 EXPECT_EQ(3u, capturing_net_log.GetSize());
1623 } 1623 }
1624 1624
1625 TEST(ExtensionWebRequestHelpersTest, 1625 TEST(ExtensionWebRequestHelpersTest,
1626 TestMergeOnBeforeSendHeadersResponses_Cookies) { 1626 TestMergeOnBeforeSendHeadersResponses_Cookies) {
1627 net::HttpRequestHeaders base_headers; 1627 net::HttpRequestHeaders base_headers;
1628 base_headers.AddHeaderFromString( 1628 base_headers.AddHeaderFromString(
1629 "Cookie: name=value; name2=value2; name3=\"value3\""); 1629 "Cookie: name=value; name2=value2; name3=\"value3\"");
1630 net::CapturingBoundNetLog capturing_net_log; 1630 net::CapturingBoundNetLog capturing_net_log;
1631 net::BoundNetLog net_log = capturing_net_log.bound(); 1631 net::BoundNetLog net_log = capturing_net_log.bound();
1632 ExtensionWarningSet warning_set; 1632 WarningSet warning_set;
1633 std::string header_value; 1633 std::string header_value;
1634 EventResponseDeltas deltas; 1634 EventResponseDeltas deltas;
1635 1635
1636 linked_ptr<RequestCookieModification> add_cookie = 1636 linked_ptr<RequestCookieModification> add_cookie =
1637 make_linked_ptr(new RequestCookieModification); 1637 make_linked_ptr(new RequestCookieModification);
1638 add_cookie->type = helpers::ADD; 1638 add_cookie->type = helpers::ADD;
1639 add_cookie->modification.reset(new helpers::RequestCookie); 1639 add_cookie->modification.reset(new helpers::RequestCookie);
1640 add_cookie->modification->name.reset(new std::string("name4")); 1640 add_cookie->modification->name.reset(new std::string("name4"));
1641 add_cookie->modification->value.reset(new std::string("\"value 4\"")); 1641 add_cookie->modification->value.reset(new std::string("\"value 4\""));
1642 1642
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1706 exploded_time.minute, 1706 exploded_time.minute,
1707 exploded_time.second); 1707 exploded_time.second);
1708 } 1708 }
1709 1709
1710 } // namespace 1710 } // namespace
1711 1711
1712 TEST(ExtensionWebRequestHelpersTest, 1712 TEST(ExtensionWebRequestHelpersTest,
1713 TestMergeCookiesInOnHeadersReceivedResponses) { 1713 TestMergeCookiesInOnHeadersReceivedResponses) {
1714 net::CapturingBoundNetLog capturing_net_log; 1714 net::CapturingBoundNetLog capturing_net_log;
1715 net::BoundNetLog net_log = capturing_net_log.bound(); 1715 net::BoundNetLog net_log = capturing_net_log.bound();
1716 ExtensionWarningSet warning_set; 1716 WarningSet warning_set;
1717 std::string header_value; 1717 std::string header_value;
1718 EventResponseDeltas deltas; 1718 EventResponseDeltas deltas;
1719 1719
1720 std::string cookie_expiration = GetCookieExpirationDate(1200); 1720 std::string cookie_expiration = GetCookieExpirationDate(1200);
1721 std::string base_headers_string = 1721 std::string base_headers_string =
1722 "HTTP/1.0 200 OK\r\n" 1722 "HTTP/1.0 200 OK\r\n"
1723 "Foo: Bar\r\n" 1723 "Foo: Bar\r\n"
1724 "Set-Cookie: name=value; DOMAIN=google.com; Secure\r\n" 1724 "Set-Cookie: name=value; DOMAIN=google.com; Secure\r\n"
1725 "Set-Cookie: name2=value2\r\n" 1725 "Set-Cookie: name2=value2\r\n"
1726 "Set-Cookie: name3=value3\r\n" 1726 "Set-Cookie: name3=value3\r\n"
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
1941 while (new_headers1->EnumerateHeader(&iter, "Set-Cookie", &cookie_string)) 1941 while (new_headers1->EnumerateHeader(&iter, "Set-Cookie", &cookie_string))
1942 actual_cookies.insert(cookie_string); 1942 actual_cookies.insert(cookie_string);
1943 EXPECT_EQ(expected_cookies, actual_cookies); 1943 EXPECT_EQ(expected_cookies, actual_cookies);
1944 EXPECT_EQ(0u, warning_set.size()); 1944 EXPECT_EQ(0u, warning_set.size());
1945 EXPECT_EQ(0u, capturing_net_log.GetSize()); 1945 EXPECT_EQ(0u, capturing_net_log.GetSize());
1946 } 1946 }
1947 1947
1948 TEST(ExtensionWebRequestHelpersTest, TestMergeOnHeadersReceivedResponses) { 1948 TEST(ExtensionWebRequestHelpersTest, TestMergeOnHeadersReceivedResponses) {
1949 net::CapturingBoundNetLog capturing_net_log; 1949 net::CapturingBoundNetLog capturing_net_log;
1950 net::BoundNetLog net_log = capturing_net_log.bound(); 1950 net::BoundNetLog net_log = capturing_net_log.bound();
1951 ExtensionWarningSet warning_set; 1951 WarningSet warning_set;
1952 std::string header_value; 1952 std::string header_value;
1953 EventResponseDeltas deltas; 1953 EventResponseDeltas deltas;
1954 1954
1955 char base_headers_string[] = 1955 char base_headers_string[] =
1956 "HTTP/1.0 200 OK\r\n" 1956 "HTTP/1.0 200 OK\r\n"
1957 "Key1: Value1\r\n" 1957 "Key1: Value1\r\n"
1958 "Key2: Value2, Foo\r\n" 1958 "Key2: Value2, Foo\r\n"
1959 "\r\n"; 1959 "\r\n";
1960 scoped_refptr<net::HttpResponseHeaders> base_headers( 1960 scoped_refptr<net::HttpResponseHeaders> base_headers(
1961 new net::HttpResponseHeaders( 1961 new net::HttpResponseHeaders(
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
2041 EXPECT_EQ(1u, warning_set.size()); 2041 EXPECT_EQ(1u, warning_set.size());
2042 EXPECT_TRUE(HasWarning(warning_set, "extid2")); 2042 EXPECT_TRUE(HasWarning(warning_set, "extid2"));
2043 EXPECT_EQ(2u, capturing_net_log.GetSize()); 2043 EXPECT_EQ(2u, capturing_net_log.GetSize());
2044 } 2044 }
2045 2045
2046 // Check that we do not delete too much 2046 // Check that we do not delete too much
2047 TEST(ExtensionWebRequestHelpersTest, 2047 TEST(ExtensionWebRequestHelpersTest,
2048 TestMergeOnHeadersReceivedResponsesDeletion) { 2048 TestMergeOnHeadersReceivedResponsesDeletion) {
2049 net::CapturingBoundNetLog capturing_net_log; 2049 net::CapturingBoundNetLog capturing_net_log;
2050 net::BoundNetLog net_log = capturing_net_log.bound(); 2050 net::BoundNetLog net_log = capturing_net_log.bound();
2051 ExtensionWarningSet warning_set; 2051 WarningSet warning_set;
2052 std::string header_value; 2052 std::string header_value;
2053 EventResponseDeltas deltas; 2053 EventResponseDeltas deltas;
2054 2054
2055 char base_headers_string[] = 2055 char base_headers_string[] =
2056 "HTTP/1.0 200 OK\r\n" 2056 "HTTP/1.0 200 OK\r\n"
2057 "Key1: Value1\r\n" 2057 "Key1: Value1\r\n"
2058 "Key1: Value2\r\n" 2058 "Key1: Value2\r\n"
2059 "Key1: Value3\r\n" 2059 "Key1: Value3\r\n"
2060 "Key2: Value4\r\n" 2060 "Key2: Value4\r\n"
2061 "\r\n"; 2061 "\r\n";
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
2095 } 2095 }
2096 2096
2097 // Tests whether onHeadersReceived can initiate a redirect. 2097 // Tests whether onHeadersReceived can initiate a redirect.
2098 // The URL merge logic is shared with onBeforeRequest, so we only need to test 2098 // The URL merge logic is shared with onBeforeRequest, so we only need to test
2099 // whether the URLs are merged at all. 2099 // whether the URLs are merged at all.
2100 TEST(ExtensionWebRequestHelpersTest, 2100 TEST(ExtensionWebRequestHelpersTest,
2101 TestMergeOnHeadersReceivedResponsesRedirect) { 2101 TestMergeOnHeadersReceivedResponsesRedirect) {
2102 EventResponseDeltas deltas; 2102 EventResponseDeltas deltas;
2103 net::CapturingBoundNetLog capturing_net_log; 2103 net::CapturingBoundNetLog capturing_net_log;
2104 net::BoundNetLog net_log = capturing_net_log.bound(); 2104 net::BoundNetLog net_log = capturing_net_log.bound();
2105 ExtensionWarningSet warning_set; 2105 WarningSet warning_set;
2106 2106
2107 char base_headers_string[] = 2107 char base_headers_string[] =
2108 "HTTP/1.0 200 OK\r\n" 2108 "HTTP/1.0 200 OK\r\n"
2109 "\r\n"; 2109 "\r\n";
2110 scoped_refptr<net::HttpResponseHeaders> base_headers( 2110 scoped_refptr<net::HttpResponseHeaders> base_headers(
2111 new net::HttpResponseHeaders(net::HttpUtil::AssembleRawHeaders( 2111 new net::HttpResponseHeaders(net::HttpUtil::AssembleRawHeaders(
2112 base_headers_string, sizeof(base_headers_string)))); 2112 base_headers_string, sizeof(base_headers_string))));
2113 2113
2114 // No redirect 2114 // No redirect
2115 linked_ptr<EventResponseDelta> d0( 2115 linked_ptr<EventResponseDelta> d0(
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
2148 EXPECT_TRUE(new_headers1.get()); 2148 EXPECT_TRUE(new_headers1.get());
2149 EXPECT_TRUE(new_headers1->HasHeaderValue("Location", new_url_1.spec())); 2149 EXPECT_TRUE(new_headers1->HasHeaderValue("Location", new_url_1.spec()));
2150 EXPECT_EQ(new_url_1, allowed_unsafe_redirect_url1); 2150 EXPECT_EQ(new_url_1, allowed_unsafe_redirect_url1);
2151 EXPECT_TRUE(warning_set.empty()); 2151 EXPECT_TRUE(warning_set.empty());
2152 EXPECT_EQ(1u, capturing_net_log.GetSize()); 2152 EXPECT_EQ(1u, capturing_net_log.GetSize());
2153 } 2153 }
2154 2154
2155 TEST(ExtensionWebRequestHelpersTest, TestMergeOnAuthRequiredResponses) { 2155 TEST(ExtensionWebRequestHelpersTest, TestMergeOnAuthRequiredResponses) {
2156 net::CapturingBoundNetLog capturing_net_log; 2156 net::CapturingBoundNetLog capturing_net_log;
2157 net::BoundNetLog net_log = capturing_net_log.bound(); 2157 net::BoundNetLog net_log = capturing_net_log.bound();
2158 ExtensionWarningSet warning_set; 2158 WarningSet warning_set;
2159 EventResponseDeltas deltas; 2159 EventResponseDeltas deltas;
2160 base::string16 username = base::ASCIIToUTF16("foo"); 2160 base::string16 username = base::ASCIIToUTF16("foo");
2161 base::string16 password = base::ASCIIToUTF16("bar"); 2161 base::string16 password = base::ASCIIToUTF16("bar");
2162 base::string16 password2 = base::ASCIIToUTF16("baz"); 2162 base::string16 password2 = base::ASCIIToUTF16("baz");
2163 2163
2164 // Check that we can handle if not returning credentials. 2164 // Check that we can handle if not returning credentials.
2165 linked_ptr<EventResponseDelta> d0( 2165 linked_ptr<EventResponseDelta> d0(
2166 new EventResponseDelta("extid0", base::Time::FromInternalValue(3000))); 2166 new EventResponseDelta("extid0", base::Time::FromInternalValue(3000)));
2167 deltas.push_back(d0); 2167 deltas.push_back(d0);
2168 net::AuthCredentials auth0; 2168 net::AuthCredentials auth0;
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
2225 EXPECT_TRUE(credentials_set); 2225 EXPECT_TRUE(credentials_set);
2226 EXPECT_FALSE(auth3.Empty()); 2226 EXPECT_FALSE(auth3.Empty());
2227 EXPECT_EQ(username, auth1.username()); 2227 EXPECT_EQ(username, auth1.username());
2228 EXPECT_EQ(password, auth1.password()); 2228 EXPECT_EQ(password, auth1.password());
2229 EXPECT_EQ(1u, warning_set.size()); 2229 EXPECT_EQ(1u, warning_set.size());
2230 EXPECT_TRUE(HasWarning(warning_set, "extid2")); 2230 EXPECT_TRUE(HasWarning(warning_set, "extid2"));
2231 EXPECT_EQ(3u, capturing_net_log.GetSize()); 2231 EXPECT_EQ(3u, capturing_net_log.GetSize());
2232 } 2232 }
2233 2233
2234 } // namespace extensions 2234 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698