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 <stddef.h> | 5 #include <stddef.h> |
6 #include <stdint.h> | 6 #include <stdint.h> |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <memory> | 9 #include <memory> |
10 #include <queue> | 10 #include <queue> |
(...skipping 1738 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1749 net::BoundTestNetLog capturing_net_log; | 1749 net::BoundTestNetLog capturing_net_log; |
1750 net::NetLogWithSource net_log = capturing_net_log.bound(); | 1750 net::NetLogWithSource net_log = capturing_net_log.bound(); |
1751 WarningSet warning_set; | 1751 WarningSet warning_set; |
1752 std::string header_value; | 1752 std::string header_value; |
1753 EventResponseDeltas deltas; | 1753 EventResponseDeltas deltas; |
1754 | 1754 |
1755 // Check that we can handle not changing the headers. | 1755 // Check that we can handle not changing the headers. |
1756 linked_ptr<EventResponseDelta> d0( | 1756 linked_ptr<EventResponseDelta> d0( |
1757 new EventResponseDelta("extid0", base::Time::FromInternalValue(2500))); | 1757 new EventResponseDelta("extid0", base::Time::FromInternalValue(2500))); |
1758 deltas.push_back(d0); | 1758 deltas.push_back(d0); |
| 1759 bool request_headers_modified0; |
| 1760 bool request_cookies_modified0; |
1759 net::HttpRequestHeaders headers0; | 1761 net::HttpRequestHeaders headers0; |
1760 headers0.MergeFrom(base_headers); | 1762 headers0.MergeFrom(base_headers); |
1761 MergeOnBeforeSendHeadersResponses(deltas, &headers0, &warning_set, &net_log); | 1763 MergeOnBeforeSendHeadersResponses(deltas, &headers0, &warning_set, &net_log, |
| 1764 &request_headers_modified0, |
| 1765 &request_cookies_modified0); |
1762 ASSERT_TRUE(headers0.GetHeader("key1", &header_value)); | 1766 ASSERT_TRUE(headers0.GetHeader("key1", &header_value)); |
1763 EXPECT_EQ("value 1", header_value); | 1767 EXPECT_EQ("value 1", header_value); |
1764 ASSERT_TRUE(headers0.GetHeader("key2", &header_value)); | 1768 ASSERT_TRUE(headers0.GetHeader("key2", &header_value)); |
1765 EXPECT_EQ("value 2", header_value); | 1769 EXPECT_EQ("value 2", header_value); |
1766 EXPECT_EQ(0u, warning_set.size()); | 1770 EXPECT_EQ(0u, warning_set.size()); |
1767 EXPECT_EQ(0u, capturing_net_log.GetSize()); | 1771 EXPECT_EQ(0u, capturing_net_log.GetSize()); |
| 1772 EXPECT_FALSE(request_headers_modified0); |
| 1773 EXPECT_FALSE(request_cookies_modified0); |
1768 | 1774 |
1769 // Delete, modify and add a header. | 1775 // Delete, modify and add a header. |
1770 linked_ptr<EventResponseDelta> d1( | 1776 linked_ptr<EventResponseDelta> d1( |
1771 new EventResponseDelta("extid1", base::Time::FromInternalValue(2000))); | 1777 new EventResponseDelta("extid1", base::Time::FromInternalValue(2000))); |
1772 d1->deleted_request_headers.push_back("key1"); | 1778 d1->deleted_request_headers.push_back("key1"); |
1773 d1->modified_request_headers.SetHeader("key2", "value 3"); | 1779 d1->modified_request_headers.SetHeader("key2", "value 3"); |
1774 d1->modified_request_headers.SetHeader("key3", "value 3"); | 1780 d1->modified_request_headers.SetHeader("key3", "value 3"); |
1775 deltas.push_back(d1); | 1781 deltas.push_back(d1); |
1776 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); | 1782 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); |
1777 warning_set.clear(); | 1783 warning_set.clear(); |
1778 capturing_net_log.Clear(); | 1784 capturing_net_log.Clear(); |
| 1785 bool request_headers_modified1; |
| 1786 bool request_cookies_modified1; |
1779 net::HttpRequestHeaders headers1; | 1787 net::HttpRequestHeaders headers1; |
1780 headers1.MergeFrom(base_headers); | 1788 headers1.MergeFrom(base_headers); |
1781 MergeOnBeforeSendHeadersResponses(deltas, &headers1, &warning_set, &net_log); | 1789 MergeOnBeforeSendHeadersResponses(deltas, &headers1, &warning_set, &net_log, |
| 1790 &request_headers_modified1, |
| 1791 &request_cookies_modified1); |
1782 EXPECT_FALSE(headers1.HasHeader("key1")); | 1792 EXPECT_FALSE(headers1.HasHeader("key1")); |
1783 ASSERT_TRUE(headers1.GetHeader("key2", &header_value)); | 1793 ASSERT_TRUE(headers1.GetHeader("key2", &header_value)); |
1784 EXPECT_EQ("value 3", header_value); | 1794 EXPECT_EQ("value 3", header_value); |
1785 ASSERT_TRUE(headers1.GetHeader("key3", &header_value)); | 1795 ASSERT_TRUE(headers1.GetHeader("key3", &header_value)); |
1786 EXPECT_EQ("value 3", header_value); | 1796 EXPECT_EQ("value 3", header_value); |
1787 EXPECT_EQ(0u, warning_set.size()); | 1797 EXPECT_EQ(0u, warning_set.size()); |
1788 EXPECT_EQ(1u, capturing_net_log.GetSize()); | 1798 EXPECT_EQ(1u, capturing_net_log.GetSize()); |
| 1799 EXPECT_TRUE(request_headers_modified1); |
| 1800 EXPECT_FALSE(request_cookies_modified1); |
1789 | 1801 |
1790 // Check that conflicts are atomic, i.e. if one header modification | 1802 // Check that conflicts are atomic, i.e. if one header modification |
1791 // collides all other conflicts of the same extension are declined as well. | 1803 // collides all other conflicts of the same extension are declined as well. |
1792 linked_ptr<EventResponseDelta> d2( | 1804 linked_ptr<EventResponseDelta> d2( |
1793 new EventResponseDelta("extid2", base::Time::FromInternalValue(1500))); | 1805 new EventResponseDelta("extid2", base::Time::FromInternalValue(1500))); |
1794 // This one conflicts: | 1806 // This one conflicts: |
1795 d2->modified_request_headers.SetHeader("key3", "value 0"); | 1807 d2->modified_request_headers.SetHeader("key3", "value 0"); |
1796 d2->modified_request_headers.SetHeader("key4", "value 4"); | 1808 d2->modified_request_headers.SetHeader("key4", "value 4"); |
1797 deltas.push_back(d2); | 1809 deltas.push_back(d2); |
1798 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); | 1810 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); |
1799 warning_set.clear(); | 1811 warning_set.clear(); |
1800 capturing_net_log.Clear(); | 1812 capturing_net_log.Clear(); |
| 1813 bool request_headers_modified2; |
| 1814 bool request_cookies_modified2; |
1801 net::HttpRequestHeaders headers2; | 1815 net::HttpRequestHeaders headers2; |
1802 headers2.MergeFrom(base_headers); | 1816 headers2.MergeFrom(base_headers); |
1803 MergeOnBeforeSendHeadersResponses(deltas, &headers2, &warning_set, &net_log); | 1817 MergeOnBeforeSendHeadersResponses(deltas, &headers2, &warning_set, &net_log, |
| 1818 &request_headers_modified2, |
| 1819 &request_cookies_modified2); |
1804 EXPECT_FALSE(headers2.HasHeader("key1")); | 1820 EXPECT_FALSE(headers2.HasHeader("key1")); |
1805 ASSERT_TRUE(headers2.GetHeader("key2", &header_value)); | 1821 ASSERT_TRUE(headers2.GetHeader("key2", &header_value)); |
1806 EXPECT_EQ("value 3", header_value); | 1822 EXPECT_EQ("value 3", header_value); |
1807 ASSERT_TRUE(headers2.GetHeader("key3", &header_value)); | 1823 ASSERT_TRUE(headers2.GetHeader("key3", &header_value)); |
1808 EXPECT_EQ("value 3", header_value); | 1824 EXPECT_EQ("value 3", header_value); |
1809 EXPECT_FALSE(headers2.HasHeader("key4")); | 1825 EXPECT_FALSE(headers2.HasHeader("key4")); |
1810 EXPECT_EQ(1u, warning_set.size()); | 1826 EXPECT_EQ(1u, warning_set.size()); |
1811 EXPECT_TRUE(HasWarning(warning_set, "extid2")); | 1827 EXPECT_TRUE(HasWarning(warning_set, "extid2")); |
1812 EXPECT_EQ(2u, capturing_net_log.GetSize()); | 1828 EXPECT_EQ(2u, capturing_net_log.GetSize()); |
| 1829 EXPECT_TRUE(request_headers_modified2); |
| 1830 EXPECT_FALSE(request_cookies_modified2); |
1813 | 1831 |
1814 // Check that identical modifications don't conflict and operations | 1832 // Check that identical modifications don't conflict and operations |
1815 // can be merged. | 1833 // can be merged. |
1816 linked_ptr<EventResponseDelta> d3( | 1834 linked_ptr<EventResponseDelta> d3( |
1817 new EventResponseDelta("extid3", base::Time::FromInternalValue(1000))); | 1835 new EventResponseDelta("extid3", base::Time::FromInternalValue(1000))); |
1818 d3->deleted_request_headers.push_back("key1"); | 1836 d3->deleted_request_headers.push_back("key1"); |
1819 d3->modified_request_headers.SetHeader("key2", "value 3"); | 1837 d3->modified_request_headers.SetHeader("key2", "value 3"); |
1820 d3->modified_request_headers.SetHeader("key5", "value 5"); | 1838 d3->modified_request_headers.SetHeader("key5", "value 5"); |
1821 deltas.push_back(d3); | 1839 deltas.push_back(d3); |
1822 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); | 1840 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); |
1823 warning_set.clear(); | 1841 warning_set.clear(); |
1824 capturing_net_log.Clear(); | 1842 capturing_net_log.Clear(); |
| 1843 bool request_headers_modified3; |
| 1844 bool request_cookies_modified3; |
1825 net::HttpRequestHeaders headers3; | 1845 net::HttpRequestHeaders headers3; |
1826 headers3.MergeFrom(base_headers); | 1846 headers3.MergeFrom(base_headers); |
1827 MergeOnBeforeSendHeadersResponses(deltas, &headers3, &warning_set, &net_log); | 1847 MergeOnBeforeSendHeadersResponses(deltas, &headers3, &warning_set, &net_log, |
| 1848 &request_headers_modified3, |
| 1849 &request_cookies_modified3); |
1828 EXPECT_FALSE(headers3.HasHeader("key1")); | 1850 EXPECT_FALSE(headers3.HasHeader("key1")); |
1829 ASSERT_TRUE(headers3.GetHeader("key2", &header_value)); | 1851 ASSERT_TRUE(headers3.GetHeader("key2", &header_value)); |
1830 EXPECT_EQ("value 3", header_value); | 1852 EXPECT_EQ("value 3", header_value); |
1831 ASSERT_TRUE(headers3.GetHeader("key3", &header_value)); | 1853 ASSERT_TRUE(headers3.GetHeader("key3", &header_value)); |
1832 EXPECT_EQ("value 3", header_value); | 1854 EXPECT_EQ("value 3", header_value); |
1833 ASSERT_TRUE(headers3.GetHeader("key5", &header_value)); | 1855 ASSERT_TRUE(headers3.GetHeader("key5", &header_value)); |
1834 EXPECT_EQ("value 5", header_value); | 1856 EXPECT_EQ("value 5", header_value); |
1835 EXPECT_EQ(1u, warning_set.size()); | 1857 EXPECT_EQ(1u, warning_set.size()); |
1836 EXPECT_TRUE(HasWarning(warning_set, "extid2")); | 1858 EXPECT_TRUE(HasWarning(warning_set, "extid2")); |
1837 EXPECT_EQ(3u, capturing_net_log.GetSize()); | 1859 EXPECT_EQ(3u, capturing_net_log.GetSize()); |
| 1860 EXPECT_TRUE(request_headers_modified3); |
| 1861 EXPECT_FALSE(request_cookies_modified3); |
1838 } | 1862 } |
1839 | 1863 |
1840 TEST(ExtensionWebRequestHelpersTest, | 1864 TEST(ExtensionWebRequestHelpersTest, |
1841 TestMergeOnBeforeSendHeadersResponses_Cookies) { | 1865 TestMergeOnBeforeSendHeadersResponses_Cookies) { |
1842 net::HttpRequestHeaders base_headers; | 1866 net::HttpRequestHeaders base_headers; |
1843 base_headers.AddHeaderFromString( | 1867 base_headers.AddHeaderFromString( |
1844 "Cookie: name=value; name2=value2; name3=\"value3\""); | 1868 "Cookie: name=value; name2=value2; name3=\"value3\""); |
1845 net::BoundTestNetLog capturing_net_log; | 1869 net::BoundTestNetLog capturing_net_log; |
1846 net::NetLogWithSource net_log = capturing_net_log.bound(); | 1870 net::NetLogWithSource net_log = capturing_net_log.bound(); |
1847 WarningSet warning_set; | 1871 WarningSet warning_set; |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1880 add_cookie, add_cookie_2, edit_cookie, remove_cookie | 1904 add_cookie, add_cookie_2, edit_cookie, remove_cookie |
1881 }; | 1905 }; |
1882 | 1906 |
1883 for (size_t i = 0; i < arraysize(operations); ++i) { | 1907 for (size_t i = 0; i < arraysize(operations); ++i) { |
1884 linked_ptr<EventResponseDelta> delta( | 1908 linked_ptr<EventResponseDelta> delta( |
1885 new EventResponseDelta("extid0", base::Time::FromInternalValue(i * 5))); | 1909 new EventResponseDelta("extid0", base::Time::FromInternalValue(i * 5))); |
1886 delta->request_cookie_modifications.push_back(operations[i]); | 1910 delta->request_cookie_modifications.push_back(operations[i]); |
1887 deltas.push_back(delta); | 1911 deltas.push_back(delta); |
1888 } | 1912 } |
1889 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); | 1913 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); |
| 1914 bool request_headers_modified1; |
| 1915 bool request_cookies_modified1; |
1890 net::HttpRequestHeaders headers1; | 1916 net::HttpRequestHeaders headers1; |
1891 headers1.MergeFrom(base_headers); | 1917 headers1.MergeFrom(base_headers); |
1892 warning_set.clear(); | 1918 warning_set.clear(); |
1893 MergeOnBeforeSendHeadersResponses(deltas, &headers1, &warning_set, &net_log); | 1919 MergeOnBeforeSendHeadersResponses(deltas, &headers1, &warning_set, &net_log, |
| 1920 &request_headers_modified1, |
| 1921 &request_cookies_modified1); |
1894 EXPECT_TRUE(headers1.HasHeader("Cookie")); | 1922 EXPECT_TRUE(headers1.HasHeader("Cookie")); |
1895 ASSERT_TRUE(headers1.GetHeader("Cookie", &header_value)); | 1923 ASSERT_TRUE(headers1.GetHeader("Cookie", &header_value)); |
1896 EXPECT_EQ("name=new value; name2=new value; name4=\"value 4\"", header_value); | 1924 EXPECT_EQ("name=new value; name2=new value; name4=\"value 4\"", header_value); |
1897 EXPECT_EQ(0u, warning_set.size()); | 1925 EXPECT_EQ(0u, warning_set.size()); |
1898 EXPECT_EQ(0u, capturing_net_log.GetSize()); | 1926 EXPECT_EQ(0u, capturing_net_log.GetSize()); |
| 1927 EXPECT_FALSE(request_headers_modified1); |
| 1928 EXPECT_TRUE(request_cookies_modified1); |
1899 } | 1929 } |
1900 | 1930 |
1901 namespace { | 1931 namespace { |
1902 | 1932 |
1903 std::string GetCookieExpirationDate(int delta_secs) { | 1933 std::string GetCookieExpirationDate(int delta_secs) { |
1904 const char* const kWeekDays[] = { | 1934 const char* const kWeekDays[] = { |
1905 "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" | 1935 "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" |
1906 }; | 1936 }; |
1907 const char* const kMonthNames[] = { | 1937 const char* const kMonthNames[] = { |
1908 "Jan", "Feb", "Mar", "Apr", "May", "Jun", | 1938 "Jan", "Feb", "Mar", "Apr", "May", "Jun", |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1954 "\r\n"; | 1984 "\r\n"; |
1955 scoped_refptr<net::HttpResponseHeaders> base_headers( | 1985 scoped_refptr<net::HttpResponseHeaders> base_headers( |
1956 new net::HttpResponseHeaders( | 1986 new net::HttpResponseHeaders( |
1957 net::HttpUtil::AssembleRawHeaders( | 1987 net::HttpUtil::AssembleRawHeaders( |
1958 base_headers_string.c_str(), base_headers_string.size()))); | 1988 base_headers_string.c_str(), base_headers_string.size()))); |
1959 | 1989 |
1960 // Check that we can handle if not touching the response headers. | 1990 // Check that we can handle if not touching the response headers. |
1961 linked_ptr<EventResponseDelta> d0( | 1991 linked_ptr<EventResponseDelta> d0( |
1962 new EventResponseDelta("extid0", base::Time::FromInternalValue(3000))); | 1992 new EventResponseDelta("extid0", base::Time::FromInternalValue(3000))); |
1963 deltas.push_back(d0); | 1993 deltas.push_back(d0); |
| 1994 bool response_cookies_modified0; |
1964 scoped_refptr<net::HttpResponseHeaders> new_headers0; | 1995 scoped_refptr<net::HttpResponseHeaders> new_headers0; |
1965 MergeCookiesInOnHeadersReceivedResponses( | 1996 MergeCookiesInOnHeadersReceivedResponses( |
1966 deltas, base_headers.get(), &new_headers0, &warning_set, &net_log); | 1997 deltas, base_headers.get(), &new_headers0, &warning_set, &net_log, |
| 1998 &response_cookies_modified0); |
1967 EXPECT_FALSE(new_headers0.get()); | 1999 EXPECT_FALSE(new_headers0.get()); |
1968 EXPECT_EQ(0u, warning_set.size()); | 2000 EXPECT_EQ(0u, warning_set.size()); |
1969 EXPECT_EQ(0u, capturing_net_log.GetSize()); | 2001 EXPECT_EQ(0u, capturing_net_log.GetSize()); |
| 2002 EXPECT_FALSE(response_cookies_modified0); |
1970 | 2003 |
1971 linked_ptr<ResponseCookieModification> add_cookie = | 2004 linked_ptr<ResponseCookieModification> add_cookie = |
1972 make_linked_ptr(new ResponseCookieModification); | 2005 make_linked_ptr(new ResponseCookieModification); |
1973 add_cookie->type = helpers::ADD; | 2006 add_cookie->type = helpers::ADD; |
1974 add_cookie->modification.reset(new helpers::ResponseCookie); | 2007 add_cookie->modification.reset(new helpers::ResponseCookie); |
1975 add_cookie->modification->name.reset(new std::string("name4")); | 2008 add_cookie->modification->name.reset(new std::string("name4")); |
1976 add_cookie->modification->value.reset(new std::string("\"value4\"")); | 2009 add_cookie->modification->value.reset(new std::string("\"value4\"")); |
1977 | 2010 |
1978 linked_ptr<ResponseCookieModification> edit_cookie = | 2011 linked_ptr<ResponseCookieModification> edit_cookie = |
1979 make_linked_ptr(new ResponseCookieModification); | 2012 make_linked_ptr(new ResponseCookieModification); |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2118 remove_cookie_3, remove_cookie_4 | 2151 remove_cookie_3, remove_cookie_4 |
2119 }; | 2152 }; |
2120 | 2153 |
2121 for (size_t i = 0; i < arraysize(operations); ++i) { | 2154 for (size_t i = 0; i < arraysize(operations); ++i) { |
2122 linked_ptr<EventResponseDelta> delta( | 2155 linked_ptr<EventResponseDelta> delta( |
2123 new EventResponseDelta("extid0", base::Time::FromInternalValue(i * 5))); | 2156 new EventResponseDelta("extid0", base::Time::FromInternalValue(i * 5))); |
2124 delta->response_cookie_modifications.push_back(operations[i]); | 2157 delta->response_cookie_modifications.push_back(operations[i]); |
2125 deltas.push_back(delta); | 2158 deltas.push_back(delta); |
2126 } | 2159 } |
2127 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); | 2160 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); |
| 2161 bool response_cookies_modified1; |
2128 scoped_refptr<net::HttpResponseHeaders> headers1( | 2162 scoped_refptr<net::HttpResponseHeaders> headers1( |
2129 new net::HttpResponseHeaders( | 2163 new net::HttpResponseHeaders( |
2130 net::HttpUtil::AssembleRawHeaders( | 2164 net::HttpUtil::AssembleRawHeaders( |
2131 base_headers_string.c_str(), base_headers_string.size()))); | 2165 base_headers_string.c_str(), base_headers_string.size()))); |
2132 scoped_refptr<net::HttpResponseHeaders> new_headers1; | 2166 scoped_refptr<net::HttpResponseHeaders> new_headers1; |
2133 warning_set.clear(); | 2167 warning_set.clear(); |
2134 MergeCookiesInOnHeadersReceivedResponses( | 2168 MergeCookiesInOnHeadersReceivedResponses( |
2135 deltas, headers1.get(), &new_headers1, &warning_set, &net_log); | 2169 deltas, headers1.get(), &new_headers1, &warning_set, &net_log, |
| 2170 &response_cookies_modified1); |
2136 | 2171 |
2137 EXPECT_TRUE(new_headers1->HasHeader("Foo")); | 2172 EXPECT_TRUE(new_headers1->HasHeader("Foo")); |
2138 size_t iter = 0; | 2173 size_t iter = 0; |
2139 std::string cookie_string; | 2174 std::string cookie_string; |
2140 std::set<std::string> expected_cookies; | 2175 std::set<std::string> expected_cookies; |
2141 expected_cookies.insert("name=value; domain=google.com; secure"); | 2176 expected_cookies.insert("name=value; domain=google.com; secure"); |
2142 expected_cookies.insert("name2=value2; secure"); | 2177 expected_cookies.insert("name2=value2; secure"); |
2143 expected_cookies.insert("name4=\"value4\"; secure"); | 2178 expected_cookies.insert("name4=\"value4\"; secure"); |
2144 expected_cookies.insert( | 2179 expected_cookies.insert( |
2145 "lBound1=greater_1; expires=" + cookie_expiration + "; secure"); | 2180 "lBound1=greater_1; expires=" + cookie_expiration + "; secure"); |
2146 expected_cookies.insert("lBound2=greater_2; max-age=1200; secure"); | 2181 expected_cookies.insert("lBound2=greater_2; max-age=1200; secure"); |
2147 expected_cookies.insert("lBound3=equal_2; max-age=2000; secure"); | 2182 expected_cookies.insert("lBound3=equal_2; max-age=2000; secure"); |
2148 expected_cookies.insert( | 2183 expected_cookies.insert( |
2149 "uBound1=smaller_1; expires=" + cookie_expiration + "; secure"); | 2184 "uBound1=smaller_1; expires=" + cookie_expiration + "; secure"); |
2150 expected_cookies.insert("uBound2=smaller_2; max-age=1200; secure"); | 2185 expected_cookies.insert("uBound2=smaller_2; max-age=1200; secure"); |
2151 expected_cookies.insert("uBound3=equal_4; max-age=2000; secure"); | 2186 expected_cookies.insert("uBound3=equal_4; max-age=2000; secure"); |
2152 expected_cookies.insert("uBound4=value11; max-age=2500; secure"); | 2187 expected_cookies.insert("uBound4=value11; max-age=2500; secure"); |
2153 expected_cookies.insert( | 2188 expected_cookies.insert( |
2154 "uBound5=value12; max-age=600; expires=" + cookie_expiration+ "; secure"); | 2189 "uBound5=value12; max-age=600; expires=" + cookie_expiration+ "; secure"); |
2155 std::set<std::string> actual_cookies; | 2190 std::set<std::string> actual_cookies; |
2156 while (new_headers1->EnumerateHeader(&iter, "Set-Cookie", &cookie_string)) | 2191 while (new_headers1->EnumerateHeader(&iter, "Set-Cookie", &cookie_string)) |
2157 actual_cookies.insert(cookie_string); | 2192 actual_cookies.insert(cookie_string); |
2158 EXPECT_EQ(expected_cookies, actual_cookies); | 2193 EXPECT_EQ(expected_cookies, actual_cookies); |
2159 EXPECT_EQ(0u, warning_set.size()); | 2194 EXPECT_EQ(0u, warning_set.size()); |
2160 EXPECT_EQ(0u, capturing_net_log.GetSize()); | 2195 EXPECT_EQ(0u, capturing_net_log.GetSize()); |
| 2196 EXPECT_TRUE(response_cookies_modified1); |
2161 } | 2197 } |
2162 | 2198 |
2163 TEST(ExtensionWebRequestHelpersTest, TestMergeOnHeadersReceivedResponses) { | 2199 TEST(ExtensionWebRequestHelpersTest, TestMergeOnHeadersReceivedResponses) { |
2164 net::BoundTestNetLog capturing_net_log; | 2200 net::BoundTestNetLog capturing_net_log; |
2165 net::NetLogWithSource net_log = capturing_net_log.bound(); | 2201 net::NetLogWithSource net_log = capturing_net_log.bound(); |
2166 WarningSet warning_set; | 2202 WarningSet warning_set; |
2167 std::string header_value; | 2203 std::string header_value; |
2168 EventResponseDeltas deltas; | 2204 EventResponseDeltas deltas; |
2169 | 2205 |
2170 char base_headers_string[] = | 2206 char base_headers_string[] = |
2171 "HTTP/1.0 200 OK\r\n" | 2207 "HTTP/1.0 200 OK\r\n" |
2172 "Key1: Value1\r\n" | 2208 "Key1: Value1\r\n" |
2173 "Key2: Value2, Foo\r\n" | 2209 "Key2: Value2, Foo\r\n" |
2174 "\r\n"; | 2210 "\r\n"; |
2175 scoped_refptr<net::HttpResponseHeaders> base_headers( | 2211 scoped_refptr<net::HttpResponseHeaders> base_headers( |
2176 new net::HttpResponseHeaders( | 2212 new net::HttpResponseHeaders( |
2177 net::HttpUtil::AssembleRawHeaders( | 2213 net::HttpUtil::AssembleRawHeaders( |
2178 base_headers_string, sizeof(base_headers_string)))); | 2214 base_headers_string, sizeof(base_headers_string)))); |
2179 | 2215 |
2180 // Check that we can handle if not touching the response headers. | 2216 // Check that we can handle if not touching the response headers. |
2181 linked_ptr<EventResponseDelta> d0( | 2217 linked_ptr<EventResponseDelta> d0( |
2182 new EventResponseDelta("extid0", base::Time::FromInternalValue(3000))); | 2218 new EventResponseDelta("extid0", base::Time::FromInternalValue(3000))); |
2183 deltas.push_back(d0); | 2219 deltas.push_back(d0); |
| 2220 bool response_headers_modified0; |
| 2221 bool response_cookies_modified0; |
2184 scoped_refptr<net::HttpResponseHeaders> new_headers0; | 2222 scoped_refptr<net::HttpResponseHeaders> new_headers0; |
2185 GURL allowed_unsafe_redirect_url0; | 2223 GURL allowed_unsafe_redirect_url0; |
2186 MergeOnHeadersReceivedResponses(deltas, | 2224 MergeOnHeadersReceivedResponses(deltas, base_headers.get(), &new_headers0, |
2187 base_headers.get(), | 2225 &allowed_unsafe_redirect_url0, &warning_set, |
2188 &new_headers0, | 2226 &net_log, &response_headers_modified0, |
2189 &allowed_unsafe_redirect_url0, | 2227 &response_cookies_modified0); |
2190 &warning_set, | |
2191 &net_log); | |
2192 EXPECT_FALSE(new_headers0.get()); | 2228 EXPECT_FALSE(new_headers0.get()); |
2193 EXPECT_TRUE(allowed_unsafe_redirect_url0.is_empty()); | 2229 EXPECT_TRUE(allowed_unsafe_redirect_url0.is_empty()); |
2194 EXPECT_EQ(0u, warning_set.size()); | 2230 EXPECT_EQ(0u, warning_set.size()); |
2195 EXPECT_EQ(0u, capturing_net_log.GetSize()); | 2231 EXPECT_EQ(0u, capturing_net_log.GetSize()); |
| 2232 EXPECT_FALSE(response_headers_modified0); |
| 2233 EXPECT_FALSE(response_cookies_modified0); |
2196 | 2234 |
2197 linked_ptr<EventResponseDelta> d1( | 2235 linked_ptr<EventResponseDelta> d1( |
2198 new EventResponseDelta("extid1", base::Time::FromInternalValue(2000))); | 2236 new EventResponseDelta("extid1", base::Time::FromInternalValue(2000))); |
2199 d1->deleted_response_headers.push_back(ResponseHeader("KEY1", "Value1")); | 2237 d1->deleted_response_headers.push_back(ResponseHeader("KEY1", "Value1")); |
2200 d1->deleted_response_headers.push_back(ResponseHeader("KEY2", "Value2, Foo")); | 2238 d1->deleted_response_headers.push_back(ResponseHeader("KEY2", "Value2, Foo")); |
2201 d1->added_response_headers.push_back(ResponseHeader("Key2", "Value3")); | 2239 d1->added_response_headers.push_back(ResponseHeader("Key2", "Value3")); |
2202 deltas.push_back(d1); | 2240 deltas.push_back(d1); |
2203 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); | 2241 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); |
2204 warning_set.clear(); | 2242 warning_set.clear(); |
2205 capturing_net_log.Clear(); | 2243 capturing_net_log.Clear(); |
| 2244 bool response_headers_modified1; |
| 2245 bool response_cookies_modified1; |
2206 scoped_refptr<net::HttpResponseHeaders> new_headers1; | 2246 scoped_refptr<net::HttpResponseHeaders> new_headers1; |
2207 GURL allowed_unsafe_redirect_url1; | 2247 GURL allowed_unsafe_redirect_url1; |
2208 MergeOnHeadersReceivedResponses(deltas, | 2248 MergeOnHeadersReceivedResponses(deltas, base_headers.get(), &new_headers1, |
2209 base_headers.get(), | 2249 &allowed_unsafe_redirect_url1, &warning_set, |
2210 &new_headers1, | 2250 &net_log, &response_headers_modified1, |
2211 &allowed_unsafe_redirect_url1, | 2251 &response_cookies_modified1); |
2212 &warning_set, | |
2213 &net_log); | |
2214 ASSERT_TRUE(new_headers1.get()); | 2252 ASSERT_TRUE(new_headers1.get()); |
2215 EXPECT_TRUE(allowed_unsafe_redirect_url1.is_empty()); | 2253 EXPECT_TRUE(allowed_unsafe_redirect_url1.is_empty()); |
2216 std::multimap<std::string, std::string> expected1; | 2254 std::multimap<std::string, std::string> expected1; |
2217 expected1.insert(std::pair<std::string, std::string>("Key2", "Value3")); | 2255 expected1.insert(std::pair<std::string, std::string>("Key2", "Value3")); |
2218 size_t iter = 0; | 2256 size_t iter = 0; |
2219 std::string name; | 2257 std::string name; |
2220 std::string value; | 2258 std::string value; |
2221 std::multimap<std::string, std::string> actual1; | 2259 std::multimap<std::string, std::string> actual1; |
2222 while (new_headers1->EnumerateHeaderLines(&iter, &name, &value)) { | 2260 while (new_headers1->EnumerateHeaderLines(&iter, &name, &value)) { |
2223 actual1.insert(std::pair<std::string, std::string>(name, value)); | 2261 actual1.insert(std::pair<std::string, std::string>(name, value)); |
2224 } | 2262 } |
2225 EXPECT_EQ(expected1, actual1); | 2263 EXPECT_EQ(expected1, actual1); |
2226 EXPECT_EQ(0u, warning_set.size()); | 2264 EXPECT_EQ(0u, warning_set.size()); |
2227 EXPECT_EQ(1u, capturing_net_log.GetSize()); | 2265 EXPECT_EQ(1u, capturing_net_log.GetSize()); |
| 2266 EXPECT_TRUE(response_headers_modified1); |
| 2267 EXPECT_FALSE(response_cookies_modified1); |
2228 | 2268 |
2229 // Check that we replace response headers only once. | 2269 // Check that we replace response headers only once. |
2230 linked_ptr<EventResponseDelta> d2( | 2270 linked_ptr<EventResponseDelta> d2( |
2231 new EventResponseDelta("extid2", base::Time::FromInternalValue(1500))); | 2271 new EventResponseDelta("extid2", base::Time::FromInternalValue(1500))); |
2232 // Note that we use a different capitalization of KeY2. This should not | 2272 // Note that we use a different capitalization of KeY2. This should not |
2233 // matter. | 2273 // matter. |
2234 d2->deleted_response_headers.push_back(ResponseHeader("KeY2", "Value2, Foo")); | 2274 d2->deleted_response_headers.push_back(ResponseHeader("KeY2", "Value2, Foo")); |
2235 d2->added_response_headers.push_back(ResponseHeader("Key2", "Value4")); | 2275 d2->added_response_headers.push_back(ResponseHeader("Key2", "Value4")); |
2236 deltas.push_back(d2); | 2276 deltas.push_back(d2); |
2237 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); | 2277 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); |
2238 warning_set.clear(); | 2278 warning_set.clear(); |
2239 capturing_net_log.Clear(); | 2279 capturing_net_log.Clear(); |
| 2280 bool response_headers_modified2; |
| 2281 bool response_cookies_modified2; |
2240 scoped_refptr<net::HttpResponseHeaders> new_headers2; | 2282 scoped_refptr<net::HttpResponseHeaders> new_headers2; |
2241 GURL allowed_unsafe_redirect_url2; | 2283 GURL allowed_unsafe_redirect_url2; |
2242 MergeOnHeadersReceivedResponses(deltas, | 2284 MergeOnHeadersReceivedResponses(deltas, base_headers.get(), &new_headers2, |
2243 base_headers.get(), | 2285 &allowed_unsafe_redirect_url2, &warning_set, |
2244 &new_headers2, | 2286 &net_log, &response_headers_modified2, |
2245 &allowed_unsafe_redirect_url2, | 2287 &response_cookies_modified2); |
2246 &warning_set, | |
2247 &net_log); | |
2248 ASSERT_TRUE(new_headers2.get()); | 2288 ASSERT_TRUE(new_headers2.get()); |
2249 EXPECT_TRUE(allowed_unsafe_redirect_url2.is_empty()); | 2289 EXPECT_TRUE(allowed_unsafe_redirect_url2.is_empty()); |
2250 iter = 0; | 2290 iter = 0; |
2251 std::multimap<std::string, std::string> actual2; | 2291 std::multimap<std::string, std::string> actual2; |
2252 while (new_headers2->EnumerateHeaderLines(&iter, &name, &value)) { | 2292 while (new_headers2->EnumerateHeaderLines(&iter, &name, &value)) { |
2253 actual2.insert(std::pair<std::string, std::string>(name, value)); | 2293 actual2.insert(std::pair<std::string, std::string>(name, value)); |
2254 } | 2294 } |
2255 EXPECT_EQ(expected1, actual2); | 2295 EXPECT_EQ(expected1, actual2); |
2256 EXPECT_EQ(1u, warning_set.size()); | 2296 EXPECT_EQ(1u, warning_set.size()); |
2257 EXPECT_TRUE(HasWarning(warning_set, "extid2")); | 2297 EXPECT_TRUE(HasWarning(warning_set, "extid2")); |
2258 EXPECT_EQ(2u, capturing_net_log.GetSize()); | 2298 EXPECT_EQ(2u, capturing_net_log.GetSize()); |
| 2299 EXPECT_TRUE(response_headers_modified2); |
| 2300 EXPECT_FALSE(response_cookies_modified2); |
2259 } | 2301 } |
2260 | 2302 |
2261 // Check that we do not delete too much | 2303 // Check that we do not delete too much |
2262 TEST(ExtensionWebRequestHelpersTest, | 2304 TEST(ExtensionWebRequestHelpersTest, |
2263 TestMergeOnHeadersReceivedResponsesDeletion) { | 2305 TestMergeOnHeadersReceivedResponsesDeletion) { |
2264 net::BoundTestNetLog capturing_net_log; | 2306 net::BoundTestNetLog capturing_net_log; |
2265 net::NetLogWithSource net_log = capturing_net_log.bound(); | 2307 net::NetLogWithSource net_log = capturing_net_log.bound(); |
2266 WarningSet warning_set; | 2308 WarningSet warning_set; |
2267 std::string header_value; | 2309 std::string header_value; |
2268 EventResponseDeltas deltas; | 2310 EventResponseDeltas deltas; |
2269 | 2311 |
2270 char base_headers_string[] = | 2312 char base_headers_string[] = |
2271 "HTTP/1.0 200 OK\r\n" | 2313 "HTTP/1.0 200 OK\r\n" |
2272 "Key1: Value1\r\n" | 2314 "Key1: Value1\r\n" |
2273 "Key1: Value2\r\n" | 2315 "Key1: Value2\r\n" |
2274 "Key1: Value3\r\n" | 2316 "Key1: Value3\r\n" |
2275 "Key2: Value4\r\n" | 2317 "Key2: Value4\r\n" |
2276 "\r\n"; | 2318 "\r\n"; |
2277 scoped_refptr<net::HttpResponseHeaders> base_headers( | 2319 scoped_refptr<net::HttpResponseHeaders> base_headers( |
2278 new net::HttpResponseHeaders( | 2320 new net::HttpResponseHeaders( |
2279 net::HttpUtil::AssembleRawHeaders( | 2321 net::HttpUtil::AssembleRawHeaders( |
2280 base_headers_string, sizeof(base_headers_string)))); | 2322 base_headers_string, sizeof(base_headers_string)))); |
2281 | 2323 |
2282 linked_ptr<EventResponseDelta> d1( | 2324 linked_ptr<EventResponseDelta> d1( |
2283 new EventResponseDelta("extid1", base::Time::FromInternalValue(2000))); | 2325 new EventResponseDelta("extid1", base::Time::FromInternalValue(2000))); |
2284 d1->deleted_response_headers.push_back(ResponseHeader("KEY1", "Value2")); | 2326 d1->deleted_response_headers.push_back(ResponseHeader("KEY1", "Value2")); |
2285 deltas.push_back(d1); | 2327 deltas.push_back(d1); |
| 2328 bool response_headers_modified1; |
| 2329 bool response_cookies_modified1; |
2286 scoped_refptr<net::HttpResponseHeaders> new_headers1; | 2330 scoped_refptr<net::HttpResponseHeaders> new_headers1; |
2287 GURL allowed_unsafe_redirect_url1; | 2331 GURL allowed_unsafe_redirect_url1; |
2288 MergeOnHeadersReceivedResponses(deltas, | 2332 MergeOnHeadersReceivedResponses(deltas, base_headers.get(), &new_headers1, |
2289 base_headers.get(), | 2333 &allowed_unsafe_redirect_url1, &warning_set, |
2290 &new_headers1, | 2334 &net_log, &response_headers_modified1, |
2291 &allowed_unsafe_redirect_url1, | 2335 &response_cookies_modified1); |
2292 &warning_set, | |
2293 &net_log); | |
2294 ASSERT_TRUE(new_headers1.get()); | 2336 ASSERT_TRUE(new_headers1.get()); |
2295 EXPECT_TRUE(allowed_unsafe_redirect_url1.is_empty()); | 2337 EXPECT_TRUE(allowed_unsafe_redirect_url1.is_empty()); |
2296 std::multimap<std::string, std::string> expected1; | 2338 std::multimap<std::string, std::string> expected1; |
2297 expected1.insert(std::pair<std::string, std::string>("Key1", "Value1")); | 2339 expected1.insert(std::pair<std::string, std::string>("Key1", "Value1")); |
2298 expected1.insert(std::pair<std::string, std::string>("Key1", "Value3")); | 2340 expected1.insert(std::pair<std::string, std::string>("Key1", "Value3")); |
2299 expected1.insert(std::pair<std::string, std::string>("Key2", "Value4")); | 2341 expected1.insert(std::pair<std::string, std::string>("Key2", "Value4")); |
2300 size_t iter = 0; | 2342 size_t iter = 0; |
2301 std::string name; | 2343 std::string name; |
2302 std::string value; | 2344 std::string value; |
2303 std::multimap<std::string, std::string> actual1; | 2345 std::multimap<std::string, std::string> actual1; |
2304 while (new_headers1->EnumerateHeaderLines(&iter, &name, &value)) { | 2346 while (new_headers1->EnumerateHeaderLines(&iter, &name, &value)) { |
2305 actual1.insert(std::pair<std::string, std::string>(name, value)); | 2347 actual1.insert(std::pair<std::string, std::string>(name, value)); |
2306 } | 2348 } |
2307 EXPECT_EQ(expected1, actual1); | 2349 EXPECT_EQ(expected1, actual1); |
2308 EXPECT_EQ(0u, warning_set.size()); | 2350 EXPECT_EQ(0u, warning_set.size()); |
2309 EXPECT_EQ(1u, capturing_net_log.GetSize()); | 2351 EXPECT_EQ(1u, capturing_net_log.GetSize()); |
| 2352 EXPECT_TRUE(response_headers_modified1); |
| 2353 EXPECT_FALSE(response_cookies_modified1); |
2310 } | 2354 } |
2311 | 2355 |
2312 // Tests whether onHeadersReceived can initiate a redirect. | 2356 // Tests whether onHeadersReceived can initiate a redirect. |
2313 // The URL merge logic is shared with onBeforeRequest, so we only need to test | 2357 // The URL merge logic is shared with onBeforeRequest, so we only need to test |
2314 // whether the URLs are merged at all. | 2358 // whether the URLs are merged at all. |
2315 TEST(ExtensionWebRequestHelpersTest, | 2359 TEST(ExtensionWebRequestHelpersTest, |
2316 TestMergeOnHeadersReceivedResponsesRedirect) { | 2360 TestMergeOnHeadersReceivedResponsesRedirect) { |
2317 EventResponseDeltas deltas; | 2361 EventResponseDeltas deltas; |
2318 net::BoundTestNetLog capturing_net_log; | 2362 net::BoundTestNetLog capturing_net_log; |
2319 net::NetLogWithSource net_log = capturing_net_log.bound(); | 2363 net::NetLogWithSource net_log = capturing_net_log.bound(); |
2320 WarningSet warning_set; | 2364 WarningSet warning_set; |
2321 | 2365 |
2322 char base_headers_string[] = | 2366 char base_headers_string[] = |
2323 "HTTP/1.0 200 OK\r\n" | 2367 "HTTP/1.0 200 OK\r\n" |
2324 "\r\n"; | 2368 "\r\n"; |
2325 scoped_refptr<net::HttpResponseHeaders> base_headers( | 2369 scoped_refptr<net::HttpResponseHeaders> base_headers( |
2326 new net::HttpResponseHeaders(net::HttpUtil::AssembleRawHeaders( | 2370 new net::HttpResponseHeaders(net::HttpUtil::AssembleRawHeaders( |
2327 base_headers_string, sizeof(base_headers_string)))); | 2371 base_headers_string, sizeof(base_headers_string)))); |
2328 | 2372 |
2329 // No redirect | 2373 // No redirect |
2330 linked_ptr<EventResponseDelta> d0( | 2374 linked_ptr<EventResponseDelta> d0( |
2331 new EventResponseDelta("extid0", base::Time::FromInternalValue(0))); | 2375 new EventResponseDelta("extid0", base::Time::FromInternalValue(0))); |
2332 deltas.push_back(d0); | 2376 deltas.push_back(d0); |
| 2377 bool response_headers_modified0; |
| 2378 bool response_cookies_modified0; |
2333 scoped_refptr<net::HttpResponseHeaders> new_headers0; | 2379 scoped_refptr<net::HttpResponseHeaders> new_headers0; |
2334 GURL allowed_unsafe_redirect_url0; | 2380 GURL allowed_unsafe_redirect_url0; |
2335 MergeOnHeadersReceivedResponses(deltas, | 2381 MergeOnHeadersReceivedResponses(deltas, base_headers.get(), &new_headers0, |
2336 base_headers.get(), | 2382 &allowed_unsafe_redirect_url0, &warning_set, |
2337 &new_headers0, | 2383 &net_log, &response_headers_modified0, |
2338 &allowed_unsafe_redirect_url0, | 2384 &response_cookies_modified0); |
2339 &warning_set, | |
2340 &net_log); | |
2341 EXPECT_FALSE(new_headers0.get()); | 2385 EXPECT_FALSE(new_headers0.get()); |
2342 EXPECT_TRUE(allowed_unsafe_redirect_url0.is_empty()); | 2386 EXPECT_TRUE(allowed_unsafe_redirect_url0.is_empty()); |
2343 EXPECT_EQ(0u, warning_set.size()); | 2387 EXPECT_EQ(0u, warning_set.size()); |
2344 EXPECT_EQ(0u, capturing_net_log.GetSize()); | 2388 EXPECT_EQ(0u, capturing_net_log.GetSize()); |
| 2389 EXPECT_FALSE(response_headers_modified0); |
| 2390 EXPECT_FALSE(response_cookies_modified0); |
2345 | 2391 |
2346 // Single redirect. | 2392 // Single redirect. |
2347 GURL new_url_1("http://foo.com"); | 2393 GURL new_url_1("http://foo.com"); |
2348 linked_ptr<EventResponseDelta> d1( | 2394 linked_ptr<EventResponseDelta> d1( |
2349 new EventResponseDelta("extid1", base::Time::FromInternalValue(1000))); | 2395 new EventResponseDelta("extid1", base::Time::FromInternalValue(1000))); |
2350 d1->new_url = GURL(new_url_1); | 2396 d1->new_url = GURL(new_url_1); |
2351 deltas.push_back(d1); | 2397 deltas.push_back(d1); |
2352 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); | 2398 deltas.sort(&InDecreasingExtensionInstallationTimeOrder); |
2353 capturing_net_log.Clear(); | 2399 capturing_net_log.Clear(); |
| 2400 bool response_headers_modified1; |
| 2401 bool response_cookies_modified1; |
2354 scoped_refptr<net::HttpResponseHeaders> new_headers1; | 2402 scoped_refptr<net::HttpResponseHeaders> new_headers1; |
2355 GURL allowed_unsafe_redirect_url1; | 2403 GURL allowed_unsafe_redirect_url1; |
2356 MergeOnHeadersReceivedResponses(deltas, | 2404 MergeOnHeadersReceivedResponses(deltas, base_headers.get(), &new_headers1, |
2357 base_headers.get(), | 2405 &allowed_unsafe_redirect_url1, &warning_set, |
2358 &new_headers1, | 2406 &net_log, &response_headers_modified1, |
2359 &allowed_unsafe_redirect_url1, | 2407 &response_cookies_modified1); |
2360 &warning_set, | |
2361 &net_log); | |
2362 | |
2363 EXPECT_TRUE(new_headers1.get()); | 2408 EXPECT_TRUE(new_headers1.get()); |
2364 EXPECT_TRUE(new_headers1->HasHeaderValue("Location", new_url_1.spec())); | 2409 EXPECT_TRUE(new_headers1->HasHeaderValue("Location", new_url_1.spec())); |
2365 EXPECT_EQ(new_url_1, allowed_unsafe_redirect_url1); | 2410 EXPECT_EQ(new_url_1, allowed_unsafe_redirect_url1); |
2366 EXPECT_TRUE(warning_set.empty()); | 2411 EXPECT_TRUE(warning_set.empty()); |
2367 EXPECT_EQ(1u, capturing_net_log.GetSize()); | 2412 EXPECT_EQ(1u, capturing_net_log.GetSize()); |
| 2413 EXPECT_FALSE(response_headers_modified1); |
| 2414 EXPECT_FALSE(response_cookies_modified1); |
2368 } | 2415 } |
2369 | 2416 |
2370 TEST(ExtensionWebRequestHelpersTest, TestMergeOnAuthRequiredResponses) { | 2417 TEST(ExtensionWebRequestHelpersTest, TestMergeOnAuthRequiredResponses) { |
2371 net::BoundTestNetLog capturing_net_log; | 2418 net::BoundTestNetLog capturing_net_log; |
2372 net::NetLogWithSource net_log = capturing_net_log.bound(); | 2419 net::NetLogWithSource net_log = capturing_net_log.bound(); |
2373 WarningSet warning_set; | 2420 WarningSet warning_set; |
2374 EventResponseDeltas deltas; | 2421 EventResponseDeltas deltas; |
2375 base::string16 username = base::ASCIIToUTF16("foo"); | 2422 base::string16 username = base::ASCIIToUTF16("foo"); |
2376 base::string16 password = base::ASCIIToUTF16("bar"); | 2423 base::string16 password = base::ASCIIToUTF16("bar"); |
2377 base::string16 password2 = base::ASCIIToUTF16("baz"); | 2424 base::string16 password2 = base::ASCIIToUTF16("baz"); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2440 EXPECT_TRUE(credentials_set); | 2487 EXPECT_TRUE(credentials_set); |
2441 EXPECT_FALSE(auth3.Empty()); | 2488 EXPECT_FALSE(auth3.Empty()); |
2442 EXPECT_EQ(username, auth1.username()); | 2489 EXPECT_EQ(username, auth1.username()); |
2443 EXPECT_EQ(password, auth1.password()); | 2490 EXPECT_EQ(password, auth1.password()); |
2444 EXPECT_EQ(1u, warning_set.size()); | 2491 EXPECT_EQ(1u, warning_set.size()); |
2445 EXPECT_TRUE(HasWarning(warning_set, "extid2")); | 2492 EXPECT_TRUE(HasWarning(warning_set, "extid2")); |
2446 EXPECT_EQ(3u, capturing_net_log.GetSize()); | 2493 EXPECT_EQ(3u, capturing_net_log.GetSize()); |
2447 } | 2494 } |
2448 | 2495 |
2449 } // namespace extensions | 2496 } // namespace extensions |
OLD | NEW |