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 "chrome/browser/ui/search/instant_search_prerenderer.h" | 5 #include "chrome/browser/ui/search/instant_search_prerenderer.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/metrics/field_trial.h" | 10 #include "base/metrics/field_trial.h" |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 | 166 |
167 protected: | 167 protected: |
168 virtual void SetUp() OVERRIDE { | 168 virtual void SetUp() OVERRIDE { |
169 ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( | 169 ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( |
170 "EmbeddedSearch", "Group1 strk:20 prefetch_results:1")); | 170 "EmbeddedSearch", "Group1 strk:20 prefetch_results:1")); |
171 InstantUnitTestBase::SetUp(); | 171 InstantUnitTestBase::SetUp(); |
172 } | 172 } |
173 | 173 |
174 void Init(bool prerender_search_results_base_page, | 174 void Init(bool prerender_search_results_base_page, |
175 bool call_did_finish_load) { | 175 bool call_did_finish_load) { |
176 AddTab(browser(), GURL(content::kAboutBlankURL)); | 176 AddTab(browser(), GURL(url::kAboutBlankURL)); |
177 | 177 |
178 content::SessionStorageNamespaceMap session_storage_namespace_map; | 178 content::SessionStorageNamespaceMap session_storage_namespace_map; |
179 session_storage_namespace_map[std::string()] = | 179 session_storage_namespace_map[std::string()] = |
180 GetActiveWebContents()->GetController(). | 180 GetActiveWebContents()->GetController(). |
181 GetDefaultSessionStorageNamespace(); | 181 GetDefaultSessionStorageNamespace(); |
182 PrerenderManagerFactory::GetForProfile(browser()->profile())-> | 182 PrerenderManagerFactory::GetForProfile(browser()->profile())-> |
183 SetPrerenderContentsFactory( | 183 SetPrerenderContentsFactory( |
184 new DummyPrerenderContentsFactory(call_did_finish_load, | 184 new DummyPrerenderContentsFactory(call_did_finish_load, |
185 session_storage_namespace_map)); | 185 session_storage_namespace_map)); |
186 PrerenderManagerFactory::GetForProfile(browser()->profile())-> | 186 PrerenderManagerFactory::GetForProfile(browser()->profile())-> |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
297 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer(); | 297 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer(); |
298 prerenderer->Commit(query); | 298 prerenderer->Commit(query); |
299 EXPECT_TRUE(MessageWasSent(ChromeViewMsg_SearchBoxSubmit::ID)); | 299 EXPECT_TRUE(MessageWasSent(ChromeViewMsg_SearchBoxSubmit::ID)); |
300 } | 300 } |
301 | 301 |
302 TEST_F(InstantSearchPrerendererTest, CancelPrerenderRequestOnTabChangeEvent) { | 302 TEST_F(InstantSearchPrerendererTest, CancelPrerenderRequestOnTabChangeEvent) { |
303 Init(true, true); | 303 Init(true, true); |
304 EXPECT_NE(static_cast<PrerenderHandle*>(NULL), prerender_handle()); | 304 EXPECT_NE(static_cast<PrerenderHandle*>(NULL), prerender_handle()); |
305 | 305 |
306 // Add a new tab to deactivate the current tab. | 306 // Add a new tab to deactivate the current tab. |
307 AddTab(browser(), GURL(content::kAboutBlankURL)); | 307 AddTab(browser(), GURL(url::kAboutBlankURL)); |
308 EXPECT_EQ(2, browser()->tab_strip_model()->count()); | 308 EXPECT_EQ(2, browser()->tab_strip_model()->count()); |
309 | 309 |
310 // Make sure the pending prerender request is cancelled. | 310 // Make sure the pending prerender request is cancelled. |
311 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle()); | 311 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle()); |
312 } | 312 } |
313 | 313 |
314 TEST_F(InstantSearchPrerendererTest, CancelPendingPrerenderRequest) { | 314 TEST_F(InstantSearchPrerendererTest, CancelPendingPrerenderRequest) { |
315 Init(true, true); | 315 Init(true, true); |
316 EXPECT_NE(static_cast<PrerenderHandle*>(NULL), prerender_handle()); | 316 EXPECT_NE(static_cast<PrerenderHandle*>(NULL), prerender_handle()); |
317 | 317 |
318 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer(); | 318 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer(); |
319 prerenderer->Cancel(); | 319 prerenderer->Cancel(); |
320 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle()); | 320 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle()); |
321 } | 321 } |
322 | 322 |
323 TEST_F(InstantSearchPrerendererTest, PrerenderingAllowed) { | 323 TEST_F(InstantSearchPrerendererTest, PrerenderingAllowed) { |
324 Init(true, true); | 324 Init(true, true); |
325 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer(); | 325 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer(); |
326 content::WebContents* active_tab = GetActiveWebContents(); | 326 content::WebContents* active_tab = GetActiveWebContents(); |
327 EXPECT_EQ(GURL(content::kAboutBlankURL), active_tab->GetURL()); | 327 EXPECT_EQ(GURL(url::kAboutBlankURL), active_tab->GetURL()); |
328 | 328 |
329 // Allow prerendering only for search type AutocompleteMatch suggestions. | 329 // Allow prerendering only for search type AutocompleteMatch suggestions. |
330 AutocompleteMatch search_type_match(NULL, 1100, false, | 330 AutocompleteMatch search_type_match(NULL, 1100, false, |
331 AutocompleteMatchType::SEARCH_SUGGEST); | 331 AutocompleteMatchType::SEARCH_SUGGEST); |
332 EXPECT_TRUE(AutocompleteMatch::IsSearchType(search_type_match.type)); | 332 EXPECT_TRUE(AutocompleteMatch::IsSearchType(search_type_match.type)); |
333 EXPECT_TRUE(prerenderer->IsAllowed(search_type_match, active_tab)); | 333 EXPECT_TRUE(prerenderer->IsAllowed(search_type_match, active_tab)); |
334 | 334 |
335 AutocompleteMatch url_type_match(NULL, 1100, true, | 335 AutocompleteMatch url_type_match(NULL, 1100, true, |
336 AutocompleteMatchType::URL_WHAT_YOU_TYPED); | 336 AutocompleteMatchType::URL_WHAT_YOU_TYPED); |
337 EXPECT_FALSE(AutocompleteMatch::IsSearchType(url_type_match.type)); | 337 EXPECT_FALSE(AutocompleteMatch::IsSearchType(url_type_match.type)); |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
474 // key. Make sure UsePrerenderedPage() extracts the search terms from the URL | 474 // key. Make sure UsePrerenderedPage() extracts the search terms from the URL |
475 // and uses the prerendered page contents. | 475 // and uses the prerendered page contents. |
476 GURL url("https://www.google.com/alt#quux=foo"); | 476 GURL url("https://www.google.com/alt#quux=foo"); |
477 browser()->OpenURL(content::OpenURLParams(url, Referrer(), CURRENT_TAB, | 477 browser()->OpenURL(content::OpenURLParams(url, Referrer(), CURRENT_TAB, |
478 content::PAGE_TRANSITION_TYPED, | 478 content::PAGE_TRANSITION_TYPED, |
479 false)); | 479 false)); |
480 EXPECT_EQ(GetPrerenderURL(), GetActiveWebContents()->GetURL()); | 480 EXPECT_EQ(GetPrerenderURL(), GetActiveWebContents()->GetURL()); |
481 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle()); | 481 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle()); |
482 } | 482 } |
483 #endif | 483 #endif |
OLD | NEW |