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

Side by Side Diff: chrome/browser/ui/search/instant_search_prerenderer_unittest.cc

Issue 2248873002: Convert WindowOpenDisposition to an enum class. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 3 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
OLDNEW
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 <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <tuple> 10 #include <tuple>
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 EXPECT_FALSE(AutocompleteMatch::IsSearchType(url_type_match.type)); 348 EXPECT_FALSE(AutocompleteMatch::IsSearchType(url_type_match.type));
349 EXPECT_FALSE(prerenderer->IsAllowed(url_type_match, active_tab)); 349 EXPECT_FALSE(prerenderer->IsAllowed(url_type_match, active_tab));
350 } 350 }
351 351
352 TEST_F(InstantSearchPrerendererTest, UsePrerenderPage) { 352 TEST_F(InstantSearchPrerendererTest, UsePrerenderPage) {
353 PrerenderSearchQuery(ASCIIToUTF16("foo")); 353 PrerenderSearchQuery(ASCIIToUTF16("foo"));
354 354
355 // Open a search results page. A prerendered page exists for |url|. Make sure 355 // Open a search results page. A prerendered page exists for |url|. Make sure
356 // the browser swaps the current tab contents with the prerendered contents. 356 // the browser swaps the current tab contents with the prerendered contents.
357 GURL url("https://www.google.com/alt#quux=foo&strk"); 357 GURL url("https://www.google.com/alt#quux=foo&strk");
358 browser()->OpenURL(content::OpenURLParams(url, Referrer(), CURRENT_TAB, 358 browser()->OpenURL(content::OpenURLParams(url, Referrer(),
359 ui::PAGE_TRANSITION_TYPED, 359 WindowOpenDisposition::CURRENT_TAB,
360 false)); 360 ui::PAGE_TRANSITION_TYPED, false));
361 EXPECT_EQ(GetPrerenderURL(), GetActiveWebContents()->GetURL()); 361 EXPECT_EQ(GetPrerenderURL(), GetActiveWebContents()->GetURL());
362 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle()); 362 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle());
363 } 363 }
364 364
365 TEST_F(InstantSearchPrerendererTest, PrerenderRequestCancelled) { 365 TEST_F(InstantSearchPrerendererTest, PrerenderRequestCancelled) {
366 PrerenderSearchQuery(ASCIIToUTF16("foo")); 366 PrerenderSearchQuery(ASCIIToUTF16("foo"));
367 367
368 // Cancel the prerender request. 368 // Cancel the prerender request.
369 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer(); 369 InstantSearchPrerenderer* prerenderer = GetInstantSearchPrerenderer();
370 prerenderer->Cancel(); 370 prerenderer->Cancel();
371 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle()); 371 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle());
372 372
373 // Open a search results page. Prerendered page does not exists for |url|. 373 // Open a search results page. Prerendered page does not exists for |url|.
374 // Make sure the browser navigates the current tab to this |url|. 374 // Make sure the browser navigates the current tab to this |url|.
375 GURL url("https://www.google.com/alt#quux=foo&strk"); 375 GURL url("https://www.google.com/alt#quux=foo&strk");
376 browser()->OpenURL(content::OpenURLParams(url, Referrer(), CURRENT_TAB, 376 browser()->OpenURL(content::OpenURLParams(url, Referrer(),
377 ui::PAGE_TRANSITION_TYPED, 377 WindowOpenDisposition::CURRENT_TAB,
378 false)); 378 ui::PAGE_TRANSITION_TYPED, false));
379 EXPECT_NE(GetPrerenderURL(), GetActiveWebContents()->GetURL()); 379 EXPECT_NE(GetPrerenderURL(), GetActiveWebContents()->GetURL());
380 EXPECT_EQ(url, GetActiveWebContents()->GetURL()); 380 EXPECT_EQ(url, GetActiveWebContents()->GetURL());
381 } 381 }
382 382
383 TEST_F(InstantSearchPrerendererTest, 383 TEST_F(InstantSearchPrerendererTest,
384 UsePrerenderedPage_SearchQueryMistmatch) { 384 UsePrerenderedPage_SearchQueryMistmatch) {
385 PrerenderSearchQuery(ASCIIToUTF16("foo")); 385 PrerenderSearchQuery(ASCIIToUTF16("foo"));
386 386
387 // Open a search results page. Committed query("pen") doesn't match with the 387 // Open a search results page. Committed query("pen") doesn't match with the
388 // prerendered search query("foo"). Make sure the browser swaps the current 388 // prerendered search query("foo"). Make sure the browser swaps the current
389 // tab contents with the prerendered contents. 389 // tab contents with the prerendered contents.
390 GURL url("https://www.google.com/alt#quux=pen&strk"); 390 GURL url("https://www.google.com/alt#quux=pen&strk");
391 browser()->OpenURL(content::OpenURLParams(url, Referrer(), CURRENT_TAB, 391 browser()->OpenURL(content::OpenURLParams(url, Referrer(),
392 ui::PAGE_TRANSITION_TYPED, 392 WindowOpenDisposition::CURRENT_TAB,
393 false)); 393 ui::PAGE_TRANSITION_TYPED, false));
394 EXPECT_EQ(GetPrerenderURL(), GetActiveWebContents()->GetURL()); 394 EXPECT_EQ(GetPrerenderURL(), GetActiveWebContents()->GetURL());
395 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle()); 395 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle());
396 } 396 }
397 397
398 TEST_F(InstantSearchPrerendererTest, 398 TEST_F(InstantSearchPrerendererTest,
399 CancelPrerenderRequest_EmptySearchQueryCommitted) { 399 CancelPrerenderRequest_EmptySearchQueryCommitted) {
400 PrerenderSearchQuery(ASCIIToUTF16("foo")); 400 PrerenderSearchQuery(ASCIIToUTF16("foo"));
401 401
402 // Open a search results page. Make sure the InstantSearchPrerenderer cancels 402 // Open a search results page. Make sure the InstantSearchPrerenderer cancels
403 // the active prerender request upon the receipt of empty search query. 403 // the active prerender request upon the receipt of empty search query.
404 GURL url("https://www.google.com/alt#quux=&strk"); 404 GURL url("https://www.google.com/alt#quux=&strk");
405 browser()->OpenURL(content::OpenURLParams(url, Referrer(), CURRENT_TAB, 405 browser()->OpenURL(content::OpenURLParams(url, Referrer(),
406 ui::PAGE_TRANSITION_TYPED, 406 WindowOpenDisposition::CURRENT_TAB,
407 false)); 407 ui::PAGE_TRANSITION_TYPED, false));
408 EXPECT_NE(GetPrerenderURL(), GetActiveWebContents()->GetURL()); 408 EXPECT_NE(GetPrerenderURL(), GetActiveWebContents()->GetURL());
409 EXPECT_EQ(url, GetActiveWebContents()->GetURL()); 409 EXPECT_EQ(url, GetActiveWebContents()->GetURL());
410 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle()); 410 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle());
411 } 411 }
412 412
413 TEST_F(InstantSearchPrerendererTest, 413 TEST_F(InstantSearchPrerendererTest,
414 CancelPrerenderRequest_UnsupportedDispositions) { 414 CancelPrerenderRequest_UnsupportedDispositions) {
415 PrerenderSearchQuery(ASCIIToUTF16("pen")); 415 PrerenderSearchQuery(ASCIIToUTF16("pen"));
416 416
417 // Open a search results page. Make sure the InstantSearchPrerenderer cancels 417 // Open a search results page. Make sure the InstantSearchPrerenderer cancels
418 // the active prerender request for unsupported window dispositions. 418 // the active prerender request for unsupported window dispositions.
419 GURL url("https://www.google.com/alt#quux=pen&strk"); 419 GURL url("https://www.google.com/alt#quux=pen&strk");
420 browser()->OpenURL(content::OpenURLParams(url, Referrer(), NEW_FOREGROUND_TAB, 420 browser()->OpenURL(content::OpenURLParams(
421 ui::PAGE_TRANSITION_TYPED, 421 url, Referrer(), WindowOpenDisposition::NEW_FOREGROUND_TAB,
422 false)); 422 ui::PAGE_TRANSITION_TYPED, false));
423 content::WebContents* new_tab = 423 content::WebContents* new_tab =
424 browser()->tab_strip_model()->GetWebContentsAt(1); 424 browser()->tab_strip_model()->GetWebContentsAt(1);
425 EXPECT_NE(GetPrerenderURL(), new_tab->GetURL()); 425 EXPECT_NE(GetPrerenderURL(), new_tab->GetURL());
426 EXPECT_EQ(url, new_tab->GetURL()); 426 EXPECT_EQ(url, new_tab->GetURL());
427 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle()); 427 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle());
428 } 428 }
429 429
430 class ReuseInstantSearchBasePageTest : public InstantSearchPrerendererTest { 430 class ReuseInstantSearchBasePageTest : public InstantSearchPrerendererTest {
431 public: 431 public:
432 ReuseInstantSearchBasePageTest() {} 432 ReuseInstantSearchBasePageTest() {}
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 }; 475 };
476 476
477 TEST_F(TestUsePrerenderPage, ExtractSearchTermsAndUsePrerenderPage) { 477 TEST_F(TestUsePrerenderPage, ExtractSearchTermsAndUsePrerenderPage) {
478 PrerenderSearchQuery(ASCIIToUTF16("foo")); 478 PrerenderSearchQuery(ASCIIToUTF16("foo"));
479 479
480 // Open a search results page. Query extraction flag is disabled in field 480 // Open a search results page. Query extraction flag is disabled in field
481 // trials. Search results page URL does not contain search terms replacement 481 // trials. Search results page URL does not contain search terms replacement
482 // key. Make sure UsePrerenderedPage() extracts the search terms from the URL 482 // key. Make sure UsePrerenderedPage() extracts the search terms from the URL
483 // and uses the prerendered page contents. 483 // and uses the prerendered page contents.
484 GURL url("https://www.google.com/alt#quux=foo"); 484 GURL url("https://www.google.com/alt#quux=foo");
485 browser()->OpenURL(content::OpenURLParams(url, Referrer(), CURRENT_TAB, 485 browser()->OpenURL(content::OpenURLParams(url, Referrer(),
486 ui::PAGE_TRANSITION_TYPED, 486 WindowOpenDisposition::CURRENT_TAB,
487 false)); 487 ui::PAGE_TRANSITION_TYPED, false));
488 EXPECT_EQ(GetPrerenderURL(), GetActiveWebContents()->GetURL()); 488 EXPECT_EQ(GetPrerenderURL(), GetActiveWebContents()->GetURL());
489 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle()); 489 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle());
490 } 490 }
491 491
492 TEST_F(TestUsePrerenderPage, DoNotUsePrerenderPage) { 492 TEST_F(TestUsePrerenderPage, DoNotUsePrerenderPage) {
493 PrerenderSearchQuery(ASCIIToUTF16("foo")); 493 PrerenderSearchQuery(ASCIIToUTF16("foo"));
494 494
495 // Do not use prerendered page for renderer initiated search request. 495 // Do not use prerendered page for renderer initiated search request.
496 GURL url("https://www.google.com/alt#quux=foo"); 496 GURL url("https://www.google.com/alt#quux=foo");
497 browser()->OpenURL(content::OpenURLParams(url, Referrer(), CURRENT_TAB, 497 browser()->OpenURL(content::OpenURLParams(
498 ui::PAGE_TRANSITION_LINK, 498 url, Referrer(), WindowOpenDisposition::CURRENT_TAB,
499 true /* is_renderer_initiated */)); 499 ui::PAGE_TRANSITION_LINK, true /* is_renderer_initiated */));
500 EXPECT_NE(GetPrerenderURL(), GetActiveWebContents()->GetURL()); 500 EXPECT_NE(GetPrerenderURL(), GetActiveWebContents()->GetURL());
501 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle()); 501 EXPECT_EQ(static_cast<PrerenderHandle*>(NULL), prerender_handle());
502 } 502 }
503 503
504 TEST_F(TestUsePrerenderPage, SetEmbeddedSearchRequestParams) { 504 TEST_F(TestUsePrerenderPage, SetEmbeddedSearchRequestParams) {
505 PrerenderSearchQuery(ASCIIToUTF16("foo")); 505 PrerenderSearchQuery(ASCIIToUTF16("foo"));
506 EXPECT_TRUE(browser()->instant_controller()); 506 EXPECT_TRUE(browser()->instant_controller());
507 507
508 // Open a search results page. Query extraction flag is disabled in field 508 // Open a search results page. Query extraction flag is disabled in field
509 // trials. Search results page URL does not contain search terms replacement 509 // trials. Search results page URL does not contain search terms replacement
510 // key. 510 // key.
511 GURL url("https://www.google.com/url?bar=foo&aqs=chrome...0&ie=utf-8&oq=f"); 511 GURL url("https://www.google.com/url?bar=foo&aqs=chrome...0&ie=utf-8&oq=f");
512 browser()->instant_controller()->OpenInstant(CURRENT_TAB, url); 512 browser()->instant_controller()->OpenInstant(
513 WindowOpenDisposition::CURRENT_TAB, url);
513 content::MockRenderProcessHost* process = 514 content::MockRenderProcessHost* process =
514 static_cast<content::MockRenderProcessHost*>( 515 static_cast<content::MockRenderProcessHost*>(
515 prerender_contents()->GetRenderViewHost()->GetProcess()); 516 prerender_contents()->GetRenderViewHost()->GetProcess());
516 const IPC::Message* message = process->sink().GetFirstMessageMatching( 517 const IPC::Message* message = process->sink().GetFirstMessageMatching(
517 ChromeViewMsg_SearchBoxSubmit::ID); 518 ChromeViewMsg_SearchBoxSubmit::ID);
518 ASSERT_TRUE(message); 519 ASSERT_TRUE(message);
519 520
520 // Verify the IPC message params. 521 // Verify the IPC message params.
521 std::tuple<base::string16, EmbeddedSearchRequestParams> params; 522 std::tuple<base::string16, EmbeddedSearchRequestParams> params;
522 ChromeViewMsg_SearchBoxSubmit::Read(message, &params); 523 ChromeViewMsg_SearchBoxSubmit::Read(message, &params);
523 EXPECT_EQ("foo", base::UTF16ToASCII(std::get<0>(params))); 524 EXPECT_EQ("foo", base::UTF16ToASCII(std::get<0>(params)));
524 EXPECT_EQ("f", base::UTF16ToASCII(std::get<1>(params).original_query)); 525 EXPECT_EQ("f", base::UTF16ToASCII(std::get<1>(params).original_query));
525 EXPECT_EQ("utf-8", base::UTF16ToASCII(std::get<1>(params).input_encoding)); 526 EXPECT_EQ("utf-8", base::UTF16ToASCII(std::get<1>(params).input_encoding));
526 EXPECT_EQ("", base::UTF16ToASCII(std::get<1>(params).rlz_parameter_value)); 527 EXPECT_EQ("", base::UTF16ToASCII(std::get<1>(params).rlz_parameter_value));
527 EXPECT_EQ("chrome...0", 528 EXPECT_EQ("chrome...0",
528 base::UTF16ToASCII(std::get<1>(params).assisted_query_stats)); 529 base::UTF16ToASCII(std::get<1>(params).assisted_query_stats));
529 } 530 }
530 #endif 531 #endif
OLDNEW
« no previous file with comments | « chrome/browser/ui/search/instant_search_prerenderer.cc ('k') | chrome/browser/ui/search/local_ntp_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698