OLD | NEW |
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 <queue> | 5 #include <queue> |
6 #include <map> | 6 #include <map> |
7 | 7 |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
(...skipping 1124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1135 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); | 1135 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); |
1136 event_log.clear(); | 1136 event_log.clear(); |
1137 MergeOnBeforeRequestResponses( | 1137 MergeOnBeforeRequestResponses( |
1138 deltas, &effective_new_url, &conflicting_extensions, &event_log); | 1138 deltas, &effective_new_url, &conflicting_extensions, &event_log); |
1139 EXPECT_EQ(new_url_1, effective_new_url); | 1139 EXPECT_EQ(new_url_1, effective_new_url); |
1140 EXPECT_EQ(1u, conflicting_extensions.size()); | 1140 EXPECT_EQ(1u, conflicting_extensions.size()); |
1141 EXPECT_TRUE(ContainsKey(conflicting_extensions, "extid3")); | 1141 EXPECT_TRUE(ContainsKey(conflicting_extensions, "extid3")); |
1142 EXPECT_EQ(3u, event_log.size()); | 1142 EXPECT_EQ(3u, event_log.size()); |
1143 } | 1143 } |
1144 | 1144 |
| 1145 // This tests that we can redirect to about:blank, which is considered |
| 1146 // a kind of cancelling requests. |
| 1147 TEST(ExtensionWebRequestHelpersTest, TestMergeOnBeforeRequestResponses3) { |
| 1148 EventResponseDeltas deltas; |
| 1149 EventLogEntries event_log; |
| 1150 std::set<std::string> conflicting_extensions; |
| 1151 GURL effective_new_url; |
| 1152 |
| 1153 // Single redirect. |
| 1154 GURL new_url_0("http://foo.com"); |
| 1155 linked_ptr<EventResponseDelta> d0( |
| 1156 new EventResponseDelta("extid0", base::Time::FromInternalValue(2000))); |
| 1157 d0->new_url = GURL(new_url_0); |
| 1158 deltas.push_back(d0); |
| 1159 MergeOnBeforeRequestResponses( |
| 1160 deltas, &effective_new_url, &conflicting_extensions, &event_log); |
| 1161 EXPECT_EQ(new_url_0, effective_new_url); |
| 1162 |
| 1163 // Cancel request by redirecting to about:blank. This shall override |
| 1164 // the other redirect but not cause any conflict warnings. |
| 1165 GURL new_url_1("about:blank"); |
| 1166 linked_ptr<EventResponseDelta> d1( |
| 1167 new EventResponseDelta("extid1", base::Time::FromInternalValue(1500))); |
| 1168 d1->new_url = GURL(new_url_1); |
| 1169 deltas.push_back(d1); |
| 1170 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); |
| 1171 event_log.clear(); |
| 1172 MergeOnBeforeRequestResponses( |
| 1173 deltas, &effective_new_url, &conflicting_extensions, &event_log); |
| 1174 EXPECT_EQ(new_url_1, effective_new_url); |
| 1175 EXPECT_TRUE(conflicting_extensions.empty()); |
| 1176 EXPECT_EQ(1u, event_log.size()); |
| 1177 } |
| 1178 |
1145 TEST(ExtensionWebRequestHelpersTest, TestMergeOnBeforeSendHeadersResponses) { | 1179 TEST(ExtensionWebRequestHelpersTest, TestMergeOnBeforeSendHeadersResponses) { |
1146 net::HttpRequestHeaders base_headers; | 1180 net::HttpRequestHeaders base_headers; |
1147 base_headers.AddHeaderFromString("key1: value 1"); | 1181 base_headers.AddHeaderFromString("key1: value 1"); |
1148 base_headers.AddHeaderFromString("key2: value 2"); | 1182 base_headers.AddHeaderFromString("key2: value 2"); |
1149 EventLogEntries event_log; | 1183 EventLogEntries event_log; |
1150 std::set<std::string> conflicting_extensions; | 1184 std::set<std::string> conflicting_extensions; |
1151 std::string header_value; | 1185 std::string header_value; |
1152 EventResponseDeltas deltas; | 1186 EventResponseDeltas deltas; |
1153 | 1187 |
1154 // Check that we can handle not changing the headers. | 1188 // Check that we can handle not changing the headers. |
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1435 credentials_set = MergeOnAuthRequiredResponses( | 1469 credentials_set = MergeOnAuthRequiredResponses( |
1436 deltas, &auth3, &conflicting_extensions, &event_log); | 1470 deltas, &auth3, &conflicting_extensions, &event_log); |
1437 EXPECT_TRUE(credentials_set); | 1471 EXPECT_TRUE(credentials_set); |
1438 EXPECT_FALSE(auth3.Empty()); | 1472 EXPECT_FALSE(auth3.Empty()); |
1439 EXPECT_EQ(username, auth1.username()); | 1473 EXPECT_EQ(username, auth1.username()); |
1440 EXPECT_EQ(password, auth1.password()); | 1474 EXPECT_EQ(password, auth1.password()); |
1441 EXPECT_EQ(1u, conflicting_extensions.size()); | 1475 EXPECT_EQ(1u, conflicting_extensions.size()); |
1442 EXPECT_TRUE(ContainsKey(conflicting_extensions, "extid2")); | 1476 EXPECT_TRUE(ContainsKey(conflicting_extensions, "extid2")); |
1443 EXPECT_EQ(3u, event_log.size()); | 1477 EXPECT_EQ(3u, event_log.size()); |
1444 } | 1478 } |
OLD | NEW |