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

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

Issue 10809011: Fix removal of headers (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Nit Created 8 years, 5 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 | Annotate | Revision Log
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 <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 910 matching lines...) Expand 10 before | Expand all | Expand 10 after
921 ASSERT_TRUE( 921 ASSERT_TRUE(
922 delta_modified2->modified_request_headers.GetHeader("key2", &value)); 922 delta_modified2->modified_request_headers.GetHeader("key2", &value));
923 EXPECT_EQ("value3", value); 923 EXPECT_EQ("value3", value);
924 } 924 }
925 925
926 TEST(ExtensionWebRequestHelpersTest, TestCalculateOnHeadersReceivedDelta) { 926 TEST(ExtensionWebRequestHelpersTest, TestCalculateOnHeadersReceivedDelta) {
927 const bool cancel = true; 927 const bool cancel = true;
928 char base_headers_string[] = 928 char base_headers_string[] =
929 "HTTP/1.0 200 OK\r\n" 929 "HTTP/1.0 200 OK\r\n"
930 "Key1: Value1\r\n" 930 "Key1: Value1\r\n"
931 "Key2: Value2\r\n" 931 "Key2: Value2, Bar\r\n"
932 "Key3: Value3\r\n" 932 "Key3: Value3\r\n"
933 "\r\n"; 933 "\r\n";
934 scoped_refptr<net::HttpResponseHeaders> base_headers( 934 scoped_refptr<net::HttpResponseHeaders> base_headers(
935 new net::HttpResponseHeaders( 935 new net::HttpResponseHeaders(
936 net::HttpUtil::AssembleRawHeaders( 936 net::HttpUtil::AssembleRawHeaders(
937 base_headers_string, sizeof(base_headers_string)))); 937 base_headers_string, sizeof(base_headers_string))));
938 938
939 ResponseHeaders new_headers; 939 ResponseHeaders new_headers;
940 new_headers.push_back(ResponseHeader("kEy1", "Value1")); // Unchanged 940 new_headers.push_back(ResponseHeader("kEy1", "Value1")); // Unchanged
941 new_headers.push_back(ResponseHeader("Key2", "Value1")); // Modified 941 new_headers.push_back(ResponseHeader("Key2", "Value1")); // Modified
942 // Key3 is deleted 942 // Key3 is deleted
943 new_headers.push_back(ResponseHeader("Key4", "Value4")); // Added 943 new_headers.push_back(ResponseHeader("Key4", "Value4")); // Added
944 944
945 scoped_ptr<EventResponseDelta> delta( 945 scoped_ptr<EventResponseDelta> delta(
946 CalculateOnHeadersReceivedDelta("extid", base::Time::Now(), cancel, 946 CalculateOnHeadersReceivedDelta("extid", base::Time::Now(), cancel,
947 base_headers, &new_headers)); 947 base_headers, &new_headers));
948 ASSERT_TRUE(delta.get()); 948 ASSERT_TRUE(delta.get());
949 EXPECT_TRUE(delta->cancel); 949 EXPECT_TRUE(delta->cancel);
950 EXPECT_EQ(2u, delta->added_response_headers.size()); 950 EXPECT_EQ(2u, delta->added_response_headers.size());
951 EXPECT_TRUE(Contains(delta->added_response_headers, 951 EXPECT_TRUE(Contains(delta->added_response_headers,
952 ResponseHeader("Key2", "Value1"))); 952 ResponseHeader("Key2", "Value1")));
953 EXPECT_TRUE(Contains(delta->added_response_headers, 953 EXPECT_TRUE(Contains(delta->added_response_headers,
954 ResponseHeader("Key4", "Value4"))); 954 ResponseHeader("Key4", "Value4")));
955 EXPECT_EQ(2u, delta->deleted_response_headers.size()); 955 EXPECT_EQ(2u, delta->deleted_response_headers.size());
956 EXPECT_TRUE(Contains(delta->deleted_response_headers, 956 EXPECT_TRUE(Contains(delta->deleted_response_headers,
957 ResponseHeader("Key2", "Value2"))); 957 ResponseHeader("Key2", "Value2, Bar")));
958 EXPECT_TRUE(Contains(delta->deleted_response_headers, 958 EXPECT_TRUE(Contains(delta->deleted_response_headers,
959 ResponseHeader("Key3", "Value3"))); 959 ResponseHeader("Key3", "Value3")));
960 } 960 }
961 961
962 TEST(ExtensionWebRequestHelpersTest, TestCalculateOnAuthRequiredDelta) { 962 TEST(ExtensionWebRequestHelpersTest, TestCalculateOnAuthRequiredDelta) {
963 const bool cancel = true; 963 const bool cancel = true;
964 964
965 string16 username = ASCIIToUTF16("foo"); 965 string16 username = ASCIIToUTF16("foo");
966 string16 password = ASCIIToUTF16("bar"); 966 string16 password = ASCIIToUTF16("bar");
967 scoped_ptr<net::AuthCredentials> credentials( 967 scoped_ptr<net::AuthCredentials> credentials(
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
1282 TEST(ExtensionWebRequestHelpersTest, TestMergeOnHeadersReceivedResponses) { 1282 TEST(ExtensionWebRequestHelpersTest, TestMergeOnHeadersReceivedResponses) {
1283 net::CapturingBoundNetLog capturing_net_log; 1283 net::CapturingBoundNetLog capturing_net_log;
1284 net::BoundNetLog net_log = capturing_net_log.bound(); 1284 net::BoundNetLog net_log = capturing_net_log.bound();
1285 std::set<std::string> conflicting_extensions; 1285 std::set<std::string> conflicting_extensions;
1286 std::string header_value; 1286 std::string header_value;
1287 EventResponseDeltas deltas; 1287 EventResponseDeltas deltas;
1288 1288
1289 char base_headers_string[] = 1289 char base_headers_string[] =
1290 "HTTP/1.0 200 OK\r\n" 1290 "HTTP/1.0 200 OK\r\n"
1291 "Key1: Value1\r\n" 1291 "Key1: Value1\r\n"
1292 "Key2: Value2\r\n" 1292 "Key2: Value2, Foo\r\n"
1293 "\r\n"; 1293 "\r\n";
1294 scoped_refptr<net::HttpResponseHeaders> base_headers( 1294 scoped_refptr<net::HttpResponseHeaders> base_headers(
1295 new net::HttpResponseHeaders( 1295 new net::HttpResponseHeaders(
1296 net::HttpUtil::AssembleRawHeaders( 1296 net::HttpUtil::AssembleRawHeaders(
1297 base_headers_string, sizeof(base_headers_string)))); 1297 base_headers_string, sizeof(base_headers_string))));
1298 1298
1299 // Check that we can handle if not touching the response headers. 1299 // Check that we can handle if not touching the response headers.
1300 linked_ptr<EventResponseDelta> d0( 1300 linked_ptr<EventResponseDelta> d0(
1301 new EventResponseDelta("extid0", base::Time::FromInternalValue(3000))); 1301 new EventResponseDelta("extid0", base::Time::FromInternalValue(3000)));
1302 deltas.push_back(d0); 1302 deltas.push_back(d0);
1303 scoped_refptr<net::HttpResponseHeaders> new_headers0; 1303 scoped_refptr<net::HttpResponseHeaders> new_headers0;
1304 MergeOnHeadersReceivedResponses( 1304 MergeOnHeadersReceivedResponses(
1305 deltas, base_headers.get(), &new_headers0, &conflicting_extensions, 1305 deltas, base_headers.get(), &new_headers0, &conflicting_extensions,
1306 &net_log); 1306 &net_log);
1307 EXPECT_FALSE(new_headers0.get()); 1307 EXPECT_FALSE(new_headers0.get());
1308 EXPECT_EQ(0u, conflicting_extensions.size()); 1308 EXPECT_EQ(0u, conflicting_extensions.size());
1309 EXPECT_EQ(0u, capturing_net_log.GetSize()); 1309 EXPECT_EQ(0u, capturing_net_log.GetSize());
1310 1310
1311 linked_ptr<EventResponseDelta> d1( 1311 linked_ptr<EventResponseDelta> d1(
1312 new EventResponseDelta("extid1", base::Time::FromInternalValue(2000))); 1312 new EventResponseDelta("extid1", base::Time::FromInternalValue(2000)));
1313 d1->deleted_response_headers.push_back(ResponseHeader("KEY1", "Value1")); 1313 d1->deleted_response_headers.push_back(ResponseHeader("KEY1", "Value1"));
1314 d1->deleted_response_headers.push_back(ResponseHeader("KEY2", "Value2")); 1314 d1->deleted_response_headers.push_back(ResponseHeader("KEY2", "Value2, Foo"));
1315 d1->added_response_headers.push_back(ResponseHeader("Key2", "Value3")); 1315 d1->added_response_headers.push_back(ResponseHeader("Key2", "Value3"));
1316 deltas.push_back(d1); 1316 deltas.push_back(d1);
1317 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); 1317 deltas.sort(&InDecreasingExtensionInstallationTimeOrder);
1318 conflicting_extensions.clear(); 1318 conflicting_extensions.clear();
1319 capturing_net_log.Clear(); 1319 capturing_net_log.Clear();
1320 scoped_refptr<net::HttpResponseHeaders> new_headers1; 1320 scoped_refptr<net::HttpResponseHeaders> new_headers1;
1321 MergeOnHeadersReceivedResponses( 1321 MergeOnHeadersReceivedResponses(
1322 deltas, base_headers.get(), &new_headers1, &conflicting_extensions, 1322 deltas, base_headers.get(), &new_headers1, &conflicting_extensions,
1323 &net_log); 1323 &net_log);
1324 ASSERT_TRUE(new_headers1.get()); 1324 ASSERT_TRUE(new_headers1.get());
1325 std::multimap<std::string, std::string> expected1; 1325 std::multimap<std::string, std::string> expected1;
1326 expected1.insert(std::pair<std::string, std::string>("Key2", "Value3")); 1326 expected1.insert(std::pair<std::string, std::string>("Key2", "Value3"));
1327 void* iter = NULL; 1327 void* iter = NULL;
1328 std::string name; 1328 std::string name;
1329 std::string value; 1329 std::string value;
1330 std::multimap<std::string, std::string> actual1; 1330 std::multimap<std::string, std::string> actual1;
1331 while (new_headers1->EnumerateHeaderLines(&iter, &name, &value)) { 1331 while (new_headers1->EnumerateHeaderLines(&iter, &name, &value)) {
1332 actual1.insert(std::pair<std::string, std::string>(name, value)); 1332 actual1.insert(std::pair<std::string, std::string>(name, value));
1333 } 1333 }
1334 EXPECT_EQ(expected1, actual1); 1334 EXPECT_EQ(expected1, actual1);
1335 EXPECT_EQ(0u, conflicting_extensions.size()); 1335 EXPECT_EQ(0u, conflicting_extensions.size());
1336 EXPECT_EQ(1u, capturing_net_log.GetSize()); 1336 EXPECT_EQ(1u, capturing_net_log.GetSize());
1337 1337
1338 // Check that we replace response headers only once. 1338 // Check that we replace response headers only once.
1339 linked_ptr<EventResponseDelta> d2( 1339 linked_ptr<EventResponseDelta> d2(
1340 new EventResponseDelta("extid2", base::Time::FromInternalValue(1500))); 1340 new EventResponseDelta("extid2", base::Time::FromInternalValue(1500)));
1341 // Note that we use a different capitalization of KeY2. This should not 1341 // Note that we use a different capitalization of KeY2. This should not
1342 // matter. 1342 // matter.
1343 d2->deleted_response_headers.push_back(ResponseHeader("KeY2", "Value2")); 1343 d2->deleted_response_headers.push_back(ResponseHeader("KeY2", "Value2, Foo"));
1344 d2->added_response_headers.push_back(ResponseHeader("Key2", "Value4")); 1344 d2->added_response_headers.push_back(ResponseHeader("Key2", "Value4"));
1345 deltas.push_back(d2); 1345 deltas.push_back(d2);
1346 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); 1346 deltas.sort(&InDecreasingExtensionInstallationTimeOrder);
1347 conflicting_extensions.clear(); 1347 conflicting_extensions.clear();
1348 capturing_net_log.Clear(); 1348 capturing_net_log.Clear();
1349 scoped_refptr<net::HttpResponseHeaders> new_headers2; 1349 scoped_refptr<net::HttpResponseHeaders> new_headers2;
1350 MergeOnHeadersReceivedResponses( 1350 MergeOnHeadersReceivedResponses(
1351 deltas, base_headers.get(), &new_headers2, &conflicting_extensions, 1351 deltas, base_headers.get(), &new_headers2, &conflicting_extensions,
1352 &net_log); 1352 &net_log);
1353 ASSERT_TRUE(new_headers2.get()); 1353 ASSERT_TRUE(new_headers2.get());
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
1525 // Check that requests are rejected if their first party url is sensitive. 1525 // Check that requests are rejected if their first party url is sensitive.
1526 ASSERT_GE(arraysize(non_sensitive_urls), 1u); 1526 ASSERT_GE(arraysize(non_sensitive_urls), 1u);
1527 GURL non_sensitive_url(non_sensitive_urls[0]); 1527 GURL non_sensitive_url(non_sensitive_urls[0]);
1528 for (size_t i = 0; i < arraysize(sensitive_urls); ++i) { 1528 for (size_t i = 0; i < arraysize(sensitive_urls); ++i) {
1529 TestURLRequest request(non_sensitive_url, NULL, &context); 1529 TestURLRequest request(non_sensitive_url, NULL, &context);
1530 GURL sensitive_url(sensitive_urls[i]); 1530 GURL sensitive_url(sensitive_urls[i]);
1531 request.set_first_party_for_cookies(sensitive_url); 1531 request.set_first_party_for_cookies(sensitive_url);
1532 EXPECT_TRUE(helpers::HideRequest(&request)) << sensitive_urls[i]; 1532 EXPECT_TRUE(helpers::HideRequest(&request)) << sensitive_urls[i];
1533 } 1533 }
1534 } 1534 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/web_request/web_request_api_helpers.cc ('k') | net/http/http_response_headers.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698