OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <sstream> | 5 #include <sstream> |
6 | 6 |
7 #include "base/base_switches.h" | 7 #include "base/base_switches.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/metrics/histogram_base.h" | 9 #include "base/metrics/histogram_base.h" |
10 #include "base/metrics/histogram_samples.h" | 10 #include "base/metrics/histogram_samples.h" |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 #include "content/public/browser/render_process_host.h" | 66 #include "content/public/browser/render_process_host.h" |
67 #include "content/public/browser/render_view_host.h" | 67 #include "content/public/browser/render_view_host.h" |
68 #include "content/public/browser/site_instance.h" | 68 #include "content/public/browser/site_instance.h" |
69 #include "content/public/browser/url_data_source.h" | 69 #include "content/public/browser/url_data_source.h" |
70 #include "content/public/browser/web_contents.h" | 70 #include "content/public/browser/web_contents.h" |
71 #include "content/public/common/bindings_policy.h" | 71 #include "content/public/common/bindings_policy.h" |
72 #include "content/public/test/browser_test_utils.h" | 72 #include "content/public/test/browser_test_utils.h" |
73 #include "content/public/test/test_utils.h" | 73 #include "content/public/test/test_utils.h" |
74 #include "net/base/network_change_notifier.h" | 74 #include "net/base/network_change_notifier.h" |
75 #include "net/http/http_status_code.h" | 75 #include "net/http/http_status_code.h" |
| 76 #include "net/test/embedded_test_server/embedded_test_server.h" |
76 #include "net/url_request/test_url_fetcher_factory.h" | 77 #include "net/url_request/test_url_fetcher_factory.h" |
77 #include "net/url_request/url_fetcher_impl.h" | 78 #include "net/url_request/url_fetcher_impl.h" |
78 #include "net/url_request/url_request_status.h" | 79 #include "net/url_request/url_request_status.h" |
79 #include "testing/gmock/include/gmock/gmock.h" | 80 #include "testing/gmock/include/gmock/gmock.h" |
80 #include "third_party/skia/include/core/SkBitmap.h" | 81 #include "third_party/skia/include/core/SkBitmap.h" |
81 | 82 |
82 using base::ASCIIToUTF16; | 83 using base::ASCIIToUTF16; |
83 using testing::HasSubstr; | 84 using testing::HasSubstr; |
84 | 85 |
85 namespace { | 86 namespace { |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 on_change_calls_(0), | 139 on_change_calls_(0), |
139 submit_count_(0), | 140 submit_count_(0), |
140 on_esc_key_press_event_calls_(0), | 141 on_esc_key_press_event_calls_(0), |
141 on_focus_changed_calls_(0), | 142 on_focus_changed_calls_(0), |
142 is_focused_(false) {} | 143 is_focused_(false) {} |
143 | 144 |
144 protected: | 145 protected: |
145 void SetUpInProcessBrowserTestFixture() override { | 146 void SetUpInProcessBrowserTestFixture() override { |
146 search::EnableQueryExtractionForTesting(); | 147 search::EnableQueryExtractionForTesting(); |
147 ASSERT_TRUE(https_test_server().Start()); | 148 ASSERT_TRUE(https_test_server().Start()); |
148 GURL instant_url = https_test_server().GetURL( | 149 GURL instant_url = |
149 "files/instant_extended.html?strk=1&"); | 150 https_test_server().GetURL("/instant_extended.html?strk=1&"); |
150 GURL ntp_url = https_test_server().GetURL( | 151 GURL ntp_url = |
151 "files/instant_extended_ntp.html?strk=1&"); | 152 https_test_server().GetURL("/instant_extended_ntp.html?strk=1&"); |
152 InstantTestBase::Init(instant_url, ntp_url, false); | 153 InstantTestBase::Init(instant_url, ntp_url, false); |
153 } | 154 } |
154 | 155 |
155 int64 GetHistogramCount(const char* name) { | 156 int64 GetHistogramCount(const char* name) { |
156 base::HistogramBase* histogram = | 157 base::HistogramBase* histogram = |
157 base::StatisticsRecorder::FindHistogram(name); | 158 base::StatisticsRecorder::FindHistogram(name); |
158 if (!histogram) { | 159 if (!histogram) { |
159 // If no histogram is found, it's possible that no values have been | 160 // If no histogram is found, it's possible that no values have been |
160 // recorded yet. Assume that the value is zero. | 161 // recorded yet. Assume that the value is zero. |
161 return 0; | 162 return 0; |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 class InstantExtendedPrefetchTest : public InstantExtendedTest { | 251 class InstantExtendedPrefetchTest : public InstantExtendedTest { |
251 public: | 252 public: |
252 InstantExtendedPrefetchTest() | 253 InstantExtendedPrefetchTest() |
253 : factory_(new net::URLFetcherImplFactory()), | 254 : factory_(new net::URLFetcherImplFactory()), |
254 fake_factory_(new net::FakeURLFetcherFactory(factory_.get())) { | 255 fake_factory_(new net::FakeURLFetcherFactory(factory_.get())) { |
255 } | 256 } |
256 | 257 |
257 void SetUpInProcessBrowserTestFixture() override { | 258 void SetUpInProcessBrowserTestFixture() override { |
258 search::EnableQueryExtractionForTesting(); | 259 search::EnableQueryExtractionForTesting(); |
259 ASSERT_TRUE(https_test_server().Start()); | 260 ASSERT_TRUE(https_test_server().Start()); |
260 GURL instant_url = https_test_server().GetURL( | 261 GURL instant_url = |
261 "files/instant_extended.html?strk=1&"); | 262 https_test_server().GetURL("/instant_extended.html?strk=1&"); |
262 GURL ntp_url = https_test_server().GetURL( | 263 GURL ntp_url = |
263 "files/instant_extended_ntp.html?strk=1&"); | 264 https_test_server().GetURL("/instant_extended_ntp.html?strk=1&"); |
264 InstantTestBase::Init(instant_url, ntp_url, true); | 265 InstantTestBase::Init(instant_url, ntp_url, true); |
265 } | 266 } |
266 | 267 |
267 void SetUpCommandLine(base::CommandLine* command_line) override { | 268 void SetUpCommandLine(base::CommandLine* command_line) override { |
268 command_line->AppendSwitchASCII( | 269 command_line->AppendSwitchASCII( |
269 switches::kForceFieldTrials, | 270 switches::kForceFieldTrials, |
270 "EmbeddedSearch/Group11 prefetch_results_srp:1/"); | 271 "EmbeddedSearch/Group11 prefetch_results_srp:1/"); |
271 } | 272 } |
272 | 273 |
273 net::FakeURLFetcherFactory* fake_factory() { return fake_factory_.get(); } | 274 net::FakeURLFetcherFactory* fake_factory() { return fake_factory_.get(); } |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
308 // Test class used to verify chrome-search: scheme and access policy from the | 309 // Test class used to verify chrome-search: scheme and access policy from the |
309 // Instant overlay. This is a subclass of |ExtensionBrowserTest| because it | 310 // Instant overlay. This is a subclass of |ExtensionBrowserTest| because it |
310 // loads a theme that provides a background image. | 311 // loads a theme that provides a background image. |
311 class InstantPolicyTest : public ExtensionBrowserTest, public InstantTestBase { | 312 class InstantPolicyTest : public ExtensionBrowserTest, public InstantTestBase { |
312 public: | 313 public: |
313 InstantPolicyTest() {} | 314 InstantPolicyTest() {} |
314 | 315 |
315 protected: | 316 protected: |
316 void SetUpInProcessBrowserTestFixture() override { | 317 void SetUpInProcessBrowserTestFixture() override { |
317 ASSERT_TRUE(https_test_server().Start()); | 318 ASSERT_TRUE(https_test_server().Start()); |
318 GURL instant_url = https_test_server().GetURL( | 319 GURL instant_url = |
319 "files/instant_extended.html?strk=1&"); | 320 https_test_server().GetURL("/instant_extended.html?strk=1&"); |
320 GURL ntp_url = https_test_server().GetURL( | 321 GURL ntp_url = |
321 "files/instant_extended_ntp.html?strk=1&"); | 322 https_test_server().GetURL("/instant_extended_ntp.html?strk=1&"); |
322 InstantTestBase::Init(instant_url, ntp_url, false); | 323 InstantTestBase::Init(instant_url, ntp_url, false); |
323 } | 324 } |
324 | 325 |
325 void InstallThemeSource() { | 326 void InstallThemeSource() { |
326 ThemeSource* theme = new ThemeSource(profile()); | 327 ThemeSource* theme = new ThemeSource(profile()); |
327 content::URLDataSource::Add(profile(), theme); | 328 content::URLDataSource::Add(profile(), theme); |
328 } | 329 } |
329 | 330 |
330 void InstallThemeAndVerify(const std::string& theme_dir, | 331 void InstallThemeAndVerify(const std::string& theme_dir, |
331 const std::string& theme_name) { | 332 const std::string& theme_name) { |
(...skipping 644 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
976 omnibox()->ShowURL(); | 977 omnibox()->ShowURL(); |
977 EXPECT_FALSE(browser()->toolbar_model()->WouldPerformSearchTermReplacement( | 978 EXPECT_FALSE(browser()->toolbar_model()->WouldPerformSearchTermReplacement( |
978 false)); | 979 false)); |
979 // Don't bother looking for a specific URL; ensuring we're no longer showing | 980 // Don't bother looking for a specific URL; ensuring we're no longer showing |
980 // the search terms is sufficient. | 981 // the search terms is sufficient. |
981 EXPECT_NE(ASCIIToUTF16("foo"), omnibox()->GetText()); | 982 EXPECT_NE(ASCIIToUTF16("foo"), omnibox()->GetText()); |
982 } | 983 } |
983 | 984 |
984 // Check that clicking on a result sends the correct referrer. | 985 // Check that clicking on a result sends the correct referrer. |
985 IN_PROC_BROWSER_TEST_F(InstantExtendedTest, Referrer) { | 986 IN_PROC_BROWSER_TEST_F(InstantExtendedTest, Referrer) { |
986 ASSERT_TRUE(test_server()->Start()); | 987 ASSERT_TRUE(embedded_test_server()->Start()); |
987 GURL result_url = | 988 GURL result_url = embedded_test_server()->GetURL( |
988 test_server()->GetURL("files/referrer_policy/referrer-policy-log.html"); | 989 "/referrer_policy/referrer-policy-log.html"); |
989 ASSERT_NO_FATAL_FAILURE(SetupInstant(browser())); | 990 ASSERT_NO_FATAL_FAILURE(SetupInstant(browser())); |
990 FocusOmnibox(); | 991 FocusOmnibox(); |
991 | 992 |
992 // Type a query and press enter to get results. | 993 // Type a query and press enter to get results. |
993 SetOmniboxText("query"); | 994 SetOmniboxText("query"); |
994 PressEnterAndWaitForFrameLoad(); | 995 PressEnterAndWaitForFrameLoad(); |
995 | 996 |
996 // Simulate going to a result. | 997 // Simulate going to a result. |
997 content::WebContents* contents = | 998 content::WebContents* contents = |
998 browser()->tab_strip_model()->GetActiveWebContents(); | 999 browser()->tab_strip_model()->GetActiveWebContents(); |
999 std::ostringstream stream; | 1000 std::ostringstream stream; |
1000 stream << "var link = document.createElement('a');"; | 1001 stream << "var link = document.createElement('a');"; |
1001 stream << "link.href = \"" << result_url.spec() << "\";"; | 1002 stream << "link.href = \"" << result_url.spec() << "\";"; |
1002 stream << "document.body.appendChild(link);"; | 1003 stream << "document.body.appendChild(link);"; |
1003 stream << "link.click();"; | 1004 stream << "link.click();"; |
1004 EXPECT_TRUE(content::ExecuteScript(contents, stream.str())); | 1005 EXPECT_TRUE(content::ExecuteScript(contents, stream.str())); |
1005 | 1006 |
1006 content::WaitForLoadStop(contents); | 1007 content::WaitForLoadStop(contents); |
1007 std::string expected_title = | 1008 std::string expected_title = |
1008 "Referrer is " + instant_url().GetWithEmptyPath().spec(); | 1009 "Referrer is " + instant_url().GetWithEmptyPath().spec(); |
1009 EXPECT_EQ(ASCIIToUTF16(expected_title), contents->GetTitle()); | 1010 EXPECT_EQ(ASCIIToUTF16(expected_title), contents->GetTitle()); |
1010 } | 1011 } |
OLD | NEW |