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

Side by Side Diff: chrome/browser/autocomplete/search_provider_unittest.cc

Issue 12386019: Instant: Use only one hidden WebContents per profile. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 "chrome/browser/autocomplete/search_provider.h" 5 #include "chrome/browser/autocomplete/search_provider.h"
6 6
7 #include "base/metrics/field_trial.h" 7 #include "base/metrics/field_trial.h"
8 #include "base/prefs/pref_service.h" 8 #include "base/prefs/pref_service.h"
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
11 #include "base/time.h" 11 #include "base/time.h"
12 #include "base/utf_string_conversions.h" 12 #include "base/utf_string_conversions.h"
13 #include "build/build_config.h" 13 #include "build/build_config.h"
14 #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h" 14 #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h"
15 #include "chrome/browser/autocomplete/autocomplete_controller.h" 15 #include "chrome/browser/autocomplete/autocomplete_controller.h"
16 #include "chrome/browser/autocomplete/autocomplete_field_trial.h" 16 #include "chrome/browser/autocomplete/autocomplete_field_trial.h"
17 #include "chrome/browser/autocomplete/autocomplete_input.h" 17 #include "chrome/browser/autocomplete/autocomplete_input.h"
18 #include "chrome/browser/autocomplete/autocomplete_match.h" 18 #include "chrome/browser/autocomplete/autocomplete_match.h"
19 #include "chrome/browser/autocomplete/autocomplete_provider.h" 19 #include "chrome/browser/autocomplete/autocomplete_provider.h"
20 #include "chrome/browser/autocomplete/autocomplete_provider_listener.h" 20 #include "chrome/browser/autocomplete/autocomplete_provider_listener.h"
21 #include "chrome/browser/autocomplete/history_url_provider.h" 21 #include "chrome/browser/autocomplete/history_url_provider.h"
22 #include "chrome/browser/history/history_service.h" 22 #include "chrome/browser/history/history_service.h"
23 #include "chrome/browser/history/history_service_factory.h" 23 #include "chrome/browser/history/history_service_factory.h"
24 #include "chrome/browser/search_engines/template_url.h" 24 #include "chrome/browser/search_engines/template_url.h"
25 #include "chrome/browser/search_engines/template_url_service.h" 25 #include "chrome/browser/search_engines/template_url_service.h"
26 #include "chrome/browser/search_engines/template_url_service_factory.h" 26 #include "chrome/browser/search_engines/template_url_service_factory.h"
27 #include "chrome/browser/ui/browser_instant_controller.h" 27 #include "chrome/browser/ui/search/search.h"
28 #include "chrome/common/metrics/entropy_provider.h" 28 #include "chrome/common/metrics/entropy_provider.h"
29 #include "chrome/common/pref_names.h" 29 #include "chrome/common/pref_names.h"
30 #include "chrome/test/base/testing_browser_process.h" 30 #include "chrome/test/base/testing_browser_process.h"
31 #include "chrome/test/base/testing_profile.h" 31 #include "chrome/test/base/testing_profile.h"
32 #include "content/public/test/test_browser_thread.h" 32 #include "content/public/test/test_browser_thread.h"
33 #include "net/url_request/test_url_fetcher_factory.h" 33 #include "net/url_request/test_url_fetcher_factory.h"
34 #include "net/url_request/url_request_status.h" 34 #include "net/url_request/url_request_status.h"
35 #include "testing/gtest/include/gtest/gtest.h" 35 #include "testing/gtest/include/gtest/gtest.h"
36 36
37 using content::BrowserThread; 37 using content::BrowserThread;
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 // URLFetchers runs. 267 // URLFetchers runs.
268 message_loop_.RunUntilIdle(); 268 message_loop_.RunUntilIdle();
269 } 269 }
270 270
271 void SearchProviderTest::QueryForInputAndSetWYTMatch( 271 void SearchProviderTest::QueryForInputAndSetWYTMatch(
272 const string16& text, 272 const string16& text,
273 AutocompleteMatch* wyt_match) { 273 AutocompleteMatch* wyt_match) {
274 QueryForInput(text, string16(), false); 274 QueryForInput(text, string16(), false);
275 profile_.BlockUntilHistoryProcessesPendingRequests(); 275 profile_.BlockUntilHistoryProcessesPendingRequests();
276 ASSERT_NO_FATAL_FAILURE(FinishDefaultSuggestQuery()); 276 ASSERT_NO_FATAL_FAILURE(FinishDefaultSuggestQuery());
277 EXPECT_NE(chrome::BrowserInstantController::IsInstantEnabled(&profile_), 277 EXPECT_NE(chrome::search::IsInstantEnabled(&profile_), provider_->done());
278 provider_->done());
279 if (!wyt_match) 278 if (!wyt_match)
280 return; 279 return;
281 ASSERT_GE(provider_->matches().size(), 1u); 280 ASSERT_GE(provider_->matches().size(), 1u);
282 EXPECT_TRUE(FindMatchWithDestination(GURL( 281 EXPECT_TRUE(FindMatchWithDestination(GURL(
283 default_t_url_->url_ref().ReplaceSearchTerms( 282 default_t_url_->url_ref().ReplaceSearchTerms(
284 TemplateURLRef::SearchTermsArgs(text))), 283 TemplateURLRef::SearchTermsArgs(text))),
285 wyt_match)); 284 wyt_match));
286 } 285 }
287 286
288 void SearchProviderTest::TearDown() { 287 void SearchProviderTest::TearDown() {
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 } 498 }
500 499
501 // Make sure FinalizeInstantQuery works. 500 // Make sure FinalizeInstantQuery works.
502 TEST_F(SearchProviderTest, FinalizeInstantQuery) { 501 TEST_F(SearchProviderTest, FinalizeInstantQuery) {
503 PrefService* service = profile_.GetPrefs(); 502 PrefService* service = profile_.GetPrefs();
504 service->SetBoolean(prefs::kInstantEnabled, true); 503 service->SetBoolean(prefs::kInstantEnabled, true);
505 504
506 ASSERT_NO_FATAL_FAILURE(QueryForInputAndSetWYTMatch(ASCIIToUTF16("foo"), 505 ASSERT_NO_FATAL_FAILURE(QueryForInputAndSetWYTMatch(ASCIIToUTF16("foo"),
507 NULL)); 506 NULL));
508 507
509 // Tell the provider instant is done. 508 // Tell the provider Instant is done.
510 provider_->FinalizeInstantQuery(ASCIIToUTF16("foo"), 509 provider_->FinalizeInstantQuery(ASCIIToUTF16("foo"),
511 InstantSuggestion(ASCIIToUTF16("bar"), 510 InstantSuggestion(ASCIIToUTF16("bar"),
512 INSTANT_COMPLETE_NOW, 511 INSTANT_COMPLETE_NOW,
513 INSTANT_SUGGESTION_SEARCH)); 512 false));
514 513
515 // The provider should now be done. 514 // The provider should now be done.
516 EXPECT_TRUE(provider_->done()); 515 EXPECT_TRUE(provider_->done());
517 516
518 // There should be two matches, one for what you typed, the other for 517 // There should be two matches, one for what you typed, the other for
519 // 'foobar'. 518 // 'foobar'.
520 EXPECT_EQ(2u, provider_->matches().size()); 519 EXPECT_EQ(2u, provider_->matches().size());
521 GURL instant_url(default_t_url_->url_ref().ReplaceSearchTerms( 520 GURL instant_url(default_t_url_->url_ref().ReplaceSearchTerms(
522 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("foobar")))); 521 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("foobar"))));
523 AutocompleteMatch instant_match; 522 AutocompleteMatch instant_match;
524 EXPECT_TRUE(FindMatchWithDestination(instant_url, &instant_match)); 523 EXPECT_TRUE(FindMatchWithDestination(instant_url, &instant_match));
525 524
526 // And the 'foobar' match should not have a description, it'll be set later. 525 // And the 'foobar' match should not have a description, it'll be set later.
527 EXPECT_TRUE(instant_match.description.empty()); 526 EXPECT_TRUE(instant_match.description.empty());
528 527
529 // Make sure the what you typed match has no description. 528 // Make sure the what you typed match has no description.
530 AutocompleteMatch wyt_match; 529 AutocompleteMatch wyt_match;
531 EXPECT_TRUE(FindMatchWithDestination( 530 EXPECT_TRUE(FindMatchWithDestination(
532 GURL(default_t_url_->url_ref().ReplaceSearchTerms( 531 GURL(default_t_url_->url_ref().ReplaceSearchTerms(
533 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("foo")))), 532 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("foo")))),
534 &wyt_match)); 533 &wyt_match));
535 EXPECT_TRUE(wyt_match.description.empty()); 534 EXPECT_TRUE(wyt_match.description.empty());
536 535
537 // The instant search should be more relevant. 536 // The Instant search should be more relevant.
538 EXPECT_GT(instant_match.relevance, wyt_match.relevance); 537 EXPECT_GT(instant_match.relevance, wyt_match.relevance);
539 } 538 }
540 539
541 // Make sure FinalizeInstantQuery works with URL suggestions. 540 // Make sure FinalizeInstantQuery works with URL suggestions.
542 TEST_F(SearchProviderTest, FinalizeInstantURL) { 541 TEST_F(SearchProviderTest, FinalizeInstantURL) {
543 PrefService* service = profile_.GetPrefs(); 542 PrefService* service = profile_.GetPrefs();
544 service->SetBoolean(prefs::kInstantEnabled, true); 543 service->SetBoolean(prefs::kInstantEnabled, true);
545 544
546 ASSERT_NO_FATAL_FAILURE(QueryForInputAndSetWYTMatch(ASCIIToUTF16("ex"), 545 ASSERT_NO_FATAL_FAILURE(QueryForInputAndSetWYTMatch(ASCIIToUTF16("ex"),
547 NULL)); 546 NULL));
548 547
549 // Tell the provider instant is done. 548 // Tell the provider Instant is done.
550 provider_->FinalizeInstantQuery(ASCIIToUTF16("ex"), 549 provider_->FinalizeInstantQuery(ASCIIToUTF16("ex"),
551 InstantSuggestion( 550 InstantSuggestion(
552 ASCIIToUTF16("http://example.com/"), 551 ASCIIToUTF16("http://example.com/"),
553 INSTANT_COMPLETE_NOW, 552 INSTANT_COMPLETE_NOW,
554 INSTANT_SUGGESTION_URL)); 553 true));
555 554
556 // The provider should now be done. 555 // The provider should now be done.
557 EXPECT_TRUE(provider_->done()); 556 EXPECT_TRUE(provider_->done());
558 557
559 // There should be two matches, one for what you typed, the other for 558 // There should be two matches, one for what you typed, the other for
560 // "http://example.com/". 559 // "http://example.com/".
561 EXPECT_EQ(2u, provider_->matches().size()); 560 EXPECT_EQ(2u, provider_->matches().size());
562 GURL instant_url("http://example.com"); 561 GURL instant_url("http://example.com");
563 AutocompleteMatch instant_match; 562 AutocompleteMatch instant_match;
564 EXPECT_TRUE(FindMatchWithDestination(instant_url, &instant_match)); 563 EXPECT_TRUE(FindMatchWithDestination(instant_url, &instant_match));
565 564
566 // The instant match should not have a description, it'll be set later. 565 // The Instant match should not have a description, it'll be set later.
567 EXPECT_TRUE(instant_match.description.empty()); 566 EXPECT_TRUE(instant_match.description.empty());
568 567
569 // Make sure the what you typed match has no description. 568 // Make sure the what you typed match has no description.
570 AutocompleteMatch wyt_match; 569 AutocompleteMatch wyt_match;
571 EXPECT_TRUE(FindMatchWithDestination( 570 EXPECT_TRUE(FindMatchWithDestination(
572 GURL(default_t_url_->url_ref().ReplaceSearchTerms( 571 GURL(default_t_url_->url_ref().ReplaceSearchTerms(
573 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("ex")))), 572 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("ex")))),
574 &wyt_match)); 573 &wyt_match));
575 EXPECT_TRUE(wyt_match.description.empty()); 574 EXPECT_TRUE(wyt_match.description.empty());
576 575
577 // The instant URL should be more relevant. 576 // The Instant URL should be more relevant.
578 EXPECT_GT(instant_match.relevance, wyt_match.relevance); 577 EXPECT_GT(instant_match.relevance, wyt_match.relevance);
579 } 578 }
580 579
581 // An Instant URL suggestion should behave the same way whether the input text 580 // An Instant URL suggestion should behave the same way whether the input text
582 // is classified as UNKNOWN or as an URL. Otherwise if the user types 581 // is classified as UNKNOWN or as an URL. Otherwise if the user types
583 // "example.co" url-what-you-typed will displace the Instant suggestion for 582 // "example.co" url-what-you-typed will displace the Instant suggestion for
584 // "example.com". 583 // "example.com".
585 TEST_F(SearchProviderTest, FinalizeInstantURLWithURLText) { 584 TEST_F(SearchProviderTest, FinalizeInstantURLWithURLText) {
586 PrefService* service = profile_.GetPrefs(); 585 PrefService* service = profile_.GetPrefs();
587 service->SetBoolean(prefs::kInstantEnabled, true); 586 service->SetBoolean(prefs::kInstantEnabled, true);
588 587
589 ASSERT_NO_FATAL_FAILURE(QueryForInputAndSetWYTMatch( 588 ASSERT_NO_FATAL_FAILURE(QueryForInputAndSetWYTMatch(
590 ASCIIToUTF16("example.co"), NULL)); 589 ASCIIToUTF16("example.co"), NULL));
591 590
592 // Tell the provider instant is done. 591 // Tell the provider Instant is done.
593 provider_->FinalizeInstantQuery(ASCIIToUTF16("example.co"), 592 provider_->FinalizeInstantQuery(ASCIIToUTF16("example.co"),
594 InstantSuggestion( 593 InstantSuggestion(
595 ASCIIToUTF16("http://example.com/"), 594 ASCIIToUTF16("http://example.com/"),
596 INSTANT_COMPLETE_NOW, 595 INSTANT_COMPLETE_NOW,
597 INSTANT_SUGGESTION_URL)); 596 true));
598 597
599 // The provider should now be done. 598 // The provider should now be done.
600 EXPECT_TRUE(provider_->done()); 599 EXPECT_TRUE(provider_->done());
601 600
602 // There should be two matches, one for what you typed, the other for 601 // There should be two matches, one for what you typed, the other for
603 // "http://example.com/". 602 // "http://example.com/".
604 EXPECT_EQ(2u, provider_->matches().size()); 603 EXPECT_EQ(2u, provider_->matches().size());
605 GURL instant_url("http://example.com"); 604 GURL instant_url("http://example.com");
606 AutocompleteMatch instant_match; 605 AutocompleteMatch instant_match;
607 EXPECT_TRUE(FindMatchWithDestination(instant_url, &instant_match)); 606 EXPECT_TRUE(FindMatchWithDestination(instant_url, &instant_match));
608 607
609 // The instant match should not have a description, it'll be set later. 608 // The Instant match should not have a description, it'll be set later.
610 EXPECT_TRUE(instant_match.description.empty()); 609 EXPECT_TRUE(instant_match.description.empty());
611 610
612 // The instant URL should be more relevant than a URL_WHAT_YOU_TYPED match. 611 // The Instant URL should be more relevant than a URL_WHAT_YOU_TYPED match.
613 EXPECT_GT(instant_match.relevance, 612 EXPECT_GT(instant_match.relevance,
614 HistoryURLProvider::kScoreForWhatYouTypedResult); 613 HistoryURLProvider::kScoreForWhatYouTypedResult);
615 } 614 }
616 615
617 // Make sure that if FinalizeInstantQuery is invoked before suggest results 616 // Make sure that if FinalizeInstantQuery is invoked before suggest results
618 // return, the suggest text from FinalizeInstantQuery is remembered. 617 // return, the suggest text from FinalizeInstantQuery is remembered.
619 TEST_F(SearchProviderTest, RememberInstantQuery) { 618 TEST_F(SearchProviderTest, RememberInstantQuery) {
620 PrefService* service = profile_.GetPrefs(); 619 PrefService* service = profile_.GetPrefs();
621 service->SetBoolean(prefs::kInstantEnabled, true); 620 service->SetBoolean(prefs::kInstantEnabled, true);
622 621
623 QueryForInput(ASCIIToUTF16("foo"), string16(), false); 622 QueryForInput(ASCIIToUTF16("foo"), string16(), false);
624 623
625 // Finalize the instant query immediately. 624 // Finalize the Instant query immediately.
626 provider_->FinalizeInstantQuery(ASCIIToUTF16("foo"), 625 provider_->FinalizeInstantQuery(ASCIIToUTF16("foo"),
627 InstantSuggestion(ASCIIToUTF16("bar"), 626 InstantSuggestion(ASCIIToUTF16("bar"),
628 INSTANT_COMPLETE_NOW, 627 INSTANT_COMPLETE_NOW,
629 INSTANT_SUGGESTION_SEARCH)); 628 false));
630 629
631 // There should be two matches, one for what you typed, the other for 630 // There should be two matches, one for what you typed, the other for
632 // 'foobar'. 631 // 'foobar'.
633 EXPECT_EQ(2u, provider_->matches().size()); 632 EXPECT_EQ(2u, provider_->matches().size());
634 GURL instant_url(default_t_url_->url_ref().ReplaceSearchTerms( 633 GURL instant_url(default_t_url_->url_ref().ReplaceSearchTerms(
635 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("foobar")))); 634 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("foobar"))));
636 AutocompleteMatch instant_match; 635 AutocompleteMatch instant_match;
637 EXPECT_TRUE(FindMatchWithDestination(instant_url, &instant_match)); 636 EXPECT_TRUE(FindMatchWithDestination(instant_url, &instant_match));
638 637
639 // Wait until history and the suggest query complete. 638 // Wait until history and the suggest query complete.
(...skipping 14 matching lines...) Expand all
654 653
655 // Make sure that if trailing whitespace is added to the text supplied to 654 // Make sure that if trailing whitespace is added to the text supplied to
656 // AutocompleteInput the default suggest text is cleared. 655 // AutocompleteInput the default suggest text is cleared.
657 TEST_F(SearchProviderTest, DifferingText) { 656 TEST_F(SearchProviderTest, DifferingText) {
658 PrefService* service = profile_.GetPrefs(); 657 PrefService* service = profile_.GetPrefs();
659 service->SetBoolean(prefs::kInstantEnabled, true); 658 service->SetBoolean(prefs::kInstantEnabled, true);
660 659
661 ASSERT_NO_FATAL_FAILURE(QueryForInputAndSetWYTMatch(ASCIIToUTF16("foo"), 660 ASSERT_NO_FATAL_FAILURE(QueryForInputAndSetWYTMatch(ASCIIToUTF16("foo"),
662 NULL)); 661 NULL));
663 662
664 // Finalize the instant query immediately. 663 // Finalize the Instant query immediately.
665 provider_->FinalizeInstantQuery(ASCIIToUTF16("foo"), 664 provider_->FinalizeInstantQuery(ASCIIToUTF16("foo"),
666 InstantSuggestion(ASCIIToUTF16("bar"), 665 InstantSuggestion(ASCIIToUTF16("bar"),
667 INSTANT_COMPLETE_NOW, 666 INSTANT_COMPLETE_NOW,
668 INSTANT_SUGGESTION_SEARCH)); 667 false));
669 668
670 // Query with the same input text, but trailing whitespace. 669 // Query with the same input text, but trailing whitespace.
671 AutocompleteMatch instant_match; 670 AutocompleteMatch instant_match;
672 ASSERT_NO_FATAL_FAILURE(QueryForInputAndSetWYTMatch(ASCIIToUTF16("foo "), 671 ASSERT_NO_FATAL_FAILURE(QueryForInputAndSetWYTMatch(ASCIIToUTF16("foo "),
673 &instant_match)); 672 &instant_match));
674 673
675 // There should only one match, for what you typed. 674 // There should only one match, for what you typed.
676 EXPECT_EQ(1u, provider_->matches().size()); 675 EXPECT_EQ(1u, provider_->matches().size());
677 EXPECT_FALSE(instant_match.destination_url.is_empty()); 676 EXPECT_FALSE(instant_match.destination_url.is_empty());
678 } 677 }
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
954 // chrome/browser/extensions/api/omnibox/omnibox_apitest.cc. 953 // chrome/browser/extensions/api/omnibox/omnibox_apitest.cc.
955 }; 954 };
956 955
957 // Test not in keyword mode. 956 // Test not in keyword mode.
958 RunTest(cases, arraysize(cases), false); 957 RunTest(cases, arraysize(cases), false);
959 958
960 // Test in keyword mode. (Both modes should give the same result.) 959 // Test in keyword mode. (Both modes should give the same result.)
961 RunTest(cases, arraysize(cases), true); 960 RunTest(cases, arraysize(cases), true);
962 } 961 }
963 962
964 // Verifies Navsuggest results don't set a TemplateURL, which instant relies on. 963 // Verifies Navsuggest results don't set a TemplateURL, which Instant relies on.
965 // Also verifies that just the *first* navigational result is listed as a match 964 // Also verifies that just the *first* navigational result is listed as a match
966 // if suggested relevance scores were not sent. 965 // if suggested relevance scores were not sent.
967 TEST_F(SearchProviderTest, NavSuggestNoSuggestedRelevanceScores) { 966 TEST_F(SearchProviderTest, NavSuggestNoSuggestedRelevanceScores) {
968 QueryForInput(ASCIIToUTF16("a.c"), string16(), false); 967 QueryForInput(ASCIIToUTF16("a.c"), string16(), false);
969 968
970 // Make sure the default providers suggest service was queried. 969 // Make sure the default providers suggest service was queried.
971 net::TestURLFetcher* fetcher = test_factory_.GetFetcherByID( 970 net::TestURLFetcher* fetcher = test_factory_.GetFetcherByID(
972 SearchProvider::kDefaultProviderURLFetcherID); 971 SearchProvider::kDefaultProviderURLFetcherID);
973 ASSERT_TRUE(fetcher); 972 ASSERT_TRUE(fetcher);
974 973
(...skipping 591 matching lines...) Expand 10 before | Expand all | Expand 10 after
1566 EXPECT_EQ(AutocompleteMatch::ACMatchClassification::URL, 1565 EXPECT_EQ(AutocompleteMatch::ACMatchClassification::URL,
1567 match.contents_class[0].style); 1566 match.contents_class[0].style);
1568 EXPECT_EQ(4U, match.contents_class[1].offset); 1567 EXPECT_EQ(4U, match.contents_class[1].offset);
1569 EXPECT_EQ(AutocompleteMatch::ACMatchClassification::URL | 1568 EXPECT_EQ(AutocompleteMatch::ACMatchClassification::URL |
1570 AutocompleteMatch::ACMatchClassification::MATCH, 1569 AutocompleteMatch::ACMatchClassification::MATCH,
1571 match.contents_class[1].style); 1570 match.contents_class[1].style);
1572 EXPECT_EQ(5U, match.contents_class[2].offset); 1571 EXPECT_EQ(5U, match.contents_class[2].offset);
1573 EXPECT_EQ(AutocompleteMatch::ACMatchClassification::URL, 1572 EXPECT_EQ(AutocompleteMatch::ACMatchClassification::URL,
1574 match.contents_class[2].style); 1573 match.contents_class[2].style);
1575 } 1574 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698