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 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 on_toggle_voice_search_calls_(0) { | 144 on_toggle_voice_search_calls_(0) { |
144 } | 145 } |
145 protected: | 146 protected: |
146 void SetUpInProcessBrowserTestFixture() override { | 147 void SetUpInProcessBrowserTestFixture() override { |
147 search::EnableQueryExtractionForTesting(); | 148 search::EnableQueryExtractionForTesting(); |
148 ASSERT_TRUE(https_test_server().Start()); | 149 ASSERT_TRUE(https_test_server().Start()); |
149 GURL instant_url = https_test_server().GetURL( | 150 GURL instant_url = |
150 "files/instant_extended.html?strk=1&"); | 151 https_test_server().GetURL("/instant_extended.html?strk=1&"); |
151 GURL ntp_url = https_test_server().GetURL( | 152 GURL ntp_url = |
152 "files/instant_extended_ntp.html?strk=1&"); | 153 https_test_server().GetURL("/instant_extended_ntp.html?strk=1&"); |
153 InstantTestBase::Init(instant_url, ntp_url, false); | 154 InstantTestBase::Init(instant_url, ntp_url, false); |
154 } | 155 } |
155 | 156 |
156 int64 GetHistogramCount(const char* name) { | 157 int64 GetHistogramCount(const char* name) { |
157 base::HistogramBase* histogram = | 158 base::HistogramBase* histogram = |
158 base::StatisticsRecorder::FindHistogram(name); | 159 base::StatisticsRecorder::FindHistogram(name); |
159 if (!histogram) { | 160 if (!histogram) { |
160 // If no histogram is found, it's possible that no values have been | 161 // If no histogram is found, it's possible that no values have been |
161 // recorded yet. Assume that the value is zero. | 162 // recorded yet. Assume that the value is zero. |
162 return 0; | 163 return 0; |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 class InstantExtendedPrefetchTest : public InstantExtendedTest { | 255 class InstantExtendedPrefetchTest : public InstantExtendedTest { |
255 public: | 256 public: |
256 InstantExtendedPrefetchTest() | 257 InstantExtendedPrefetchTest() |
257 : factory_(new net::URLFetcherImplFactory()), | 258 : factory_(new net::URLFetcherImplFactory()), |
258 fake_factory_(new net::FakeURLFetcherFactory(factory_.get())) { | 259 fake_factory_(new net::FakeURLFetcherFactory(factory_.get())) { |
259 } | 260 } |
260 | 261 |
261 void SetUpInProcessBrowserTestFixture() override { | 262 void SetUpInProcessBrowserTestFixture() override { |
262 search::EnableQueryExtractionForTesting(); | 263 search::EnableQueryExtractionForTesting(); |
263 ASSERT_TRUE(https_test_server().Start()); | 264 ASSERT_TRUE(https_test_server().Start()); |
264 GURL instant_url = https_test_server().GetURL( | 265 GURL instant_url = |
265 "files/instant_extended.html?strk=1&"); | 266 https_test_server().GetURL("/instant_extended.html?strk=1&"); |
266 GURL ntp_url = https_test_server().GetURL( | 267 GURL ntp_url = |
267 "files/instant_extended_ntp.html?strk=1&"); | 268 https_test_server().GetURL("/instant_extended_ntp.html?strk=1&"); |
268 InstantTestBase::Init(instant_url, ntp_url, true); | 269 InstantTestBase::Init(instant_url, ntp_url, true); |
269 } | 270 } |
270 | 271 |
271 void SetUpCommandLine(base::CommandLine* command_line) override { | 272 void SetUpCommandLine(base::CommandLine* command_line) override { |
272 command_line->AppendSwitchASCII( | 273 command_line->AppendSwitchASCII( |
273 switches::kForceFieldTrials, | 274 switches::kForceFieldTrials, |
274 "EmbeddedSearch/Group11 prefetch_results_srp:1/"); | 275 "EmbeddedSearch/Group11 prefetch_results_srp:1/"); |
275 } | 276 } |
276 | 277 |
277 net::FakeURLFetcherFactory* fake_factory() { return fake_factory_.get(); } | 278 net::FakeURLFetcherFactory* fake_factory() { return fake_factory_.get(); } |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
312 // Test class used to verify chrome-search: scheme and access policy from the | 313 // Test class used to verify chrome-search: scheme and access policy from the |
313 // Instant overlay. This is a subclass of |ExtensionBrowserTest| because it | 314 // Instant overlay. This is a subclass of |ExtensionBrowserTest| because it |
314 // loads a theme that provides a background image. | 315 // loads a theme that provides a background image. |
315 class InstantPolicyTest : public ExtensionBrowserTest, public InstantTestBase { | 316 class InstantPolicyTest : public ExtensionBrowserTest, public InstantTestBase { |
316 public: | 317 public: |
317 InstantPolicyTest() {} | 318 InstantPolicyTest() {} |
318 | 319 |
319 protected: | 320 protected: |
320 void SetUpInProcessBrowserTestFixture() override { | 321 void SetUpInProcessBrowserTestFixture() override { |
321 ASSERT_TRUE(https_test_server().Start()); | 322 ASSERT_TRUE(https_test_server().Start()); |
322 GURL instant_url = https_test_server().GetURL( | 323 GURL instant_url = |
323 "files/instant_extended.html?strk=1&"); | 324 https_test_server().GetURL("/instant_extended.html?strk=1&"); |
324 GURL ntp_url = https_test_server().GetURL( | 325 GURL ntp_url = |
325 "files/instant_extended_ntp.html?strk=1&"); | 326 https_test_server().GetURL("/instant_extended_ntp.html?strk=1&"); |
326 InstantTestBase::Init(instant_url, ntp_url, false); | 327 InstantTestBase::Init(instant_url, ntp_url, false); |
327 } | 328 } |
328 | 329 |
329 void InstallThemeSource() { | 330 void InstallThemeSource() { |
330 ThemeSource* theme = new ThemeSource(profile()); | 331 ThemeSource* theme = new ThemeSource(profile()); |
331 content::URLDataSource::Add(profile(), theme); | 332 content::URLDataSource::Add(profile(), theme); |
332 } | 333 } |
333 | 334 |
334 void InstallThemeAndVerify(const std::string& theme_dir, | 335 void InstallThemeAndVerify(const std::string& theme_dir, |
335 const std::string& theme_name) { | 336 const std::string& theme_name) { |
(...skipping 644 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
980 omnibox()->ShowURL(); | 981 omnibox()->ShowURL(); |
981 EXPECT_FALSE(browser()->toolbar_model()->WouldPerformSearchTermReplacement( | 982 EXPECT_FALSE(browser()->toolbar_model()->WouldPerformSearchTermReplacement( |
982 false)); | 983 false)); |
983 // Don't bother looking for a specific URL; ensuring we're no longer showing | 984 // Don't bother looking for a specific URL; ensuring we're no longer showing |
984 // the search terms is sufficient. | 985 // the search terms is sufficient. |
985 EXPECT_NE(ASCIIToUTF16("foo"), omnibox()->GetText()); | 986 EXPECT_NE(ASCIIToUTF16("foo"), omnibox()->GetText()); |
986 } | 987 } |
987 | 988 |
988 // Check that clicking on a result sends the correct referrer. | 989 // Check that clicking on a result sends the correct referrer. |
989 IN_PROC_BROWSER_TEST_F(InstantExtendedTest, Referrer) { | 990 IN_PROC_BROWSER_TEST_F(InstantExtendedTest, Referrer) { |
990 ASSERT_TRUE(test_server()->Start()); | 991 ASSERT_TRUE(embedded_test_server()->Start()); |
991 GURL result_url = | 992 GURL result_url = embedded_test_server()->GetURL( |
992 test_server()->GetURL("files/referrer_policy/referrer-policy-log.html"); | 993 "/referrer_policy/referrer-policy-log.html"); |
993 ASSERT_NO_FATAL_FAILURE(SetupInstant(browser())); | 994 ASSERT_NO_FATAL_FAILURE(SetupInstant(browser())); |
994 FocusOmnibox(); | 995 FocusOmnibox(); |
995 | 996 |
996 // Type a query and press enter to get results. | 997 // Type a query and press enter to get results. |
997 SetOmniboxText("query"); | 998 SetOmniboxText("query"); |
998 PressEnterAndWaitForFrameLoad(); | 999 PressEnterAndWaitForFrameLoad(); |
999 | 1000 |
1000 // Simulate going to a result. | 1001 // Simulate going to a result. |
1001 content::WebContents* contents = | 1002 content::WebContents* contents = |
1002 browser()->tab_strip_model()->GetActiveWebContents(); | 1003 browser()->tab_strip_model()->GetActiveWebContents(); |
1003 std::ostringstream stream; | 1004 std::ostringstream stream; |
1004 stream << "var link = document.createElement('a');"; | 1005 stream << "var link = document.createElement('a');"; |
1005 stream << "link.href = \"" << result_url.spec() << "\";"; | 1006 stream << "link.href = \"" << result_url.spec() << "\";"; |
1006 stream << "document.body.appendChild(link);"; | 1007 stream << "document.body.appendChild(link);"; |
1007 stream << "link.click();"; | 1008 stream << "link.click();"; |
1008 EXPECT_TRUE(content::ExecuteScript(contents, stream.str())); | 1009 EXPECT_TRUE(content::ExecuteScript(contents, stream.str())); |
1009 | 1010 |
1010 content::WaitForLoadStop(contents); | 1011 content::WaitForLoadStop(contents); |
1011 std::string expected_title = | 1012 std::string expected_title = |
1012 "Referrer is " + instant_url().GetWithEmptyPath().spec(); | 1013 "Referrer is " + instant_url().GetWithEmptyPath().spec(); |
1013 EXPECT_EQ(ASCIIToUTF16(expected_title), contents->GetTitle()); | 1014 EXPECT_EQ(ASCIIToUTF16(expected_title), contents->GetTitle()); |
1014 } | 1015 } |
OLD | NEW |