Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / search / instant_service_unittest.cc
index 418a1b6..bacd7ae 100644 (file)
 class MockInstantServiceObserver : public InstantServiceObserver {
  public:
   MOCK_METHOD0(DefaultSearchProviderChanged, void());
-  MOCK_METHOD0(GoogleURLUpdated, void());
   MOCK_METHOD1(OmniboxStartMarginChanged, void(int));
 };
 
 class InstantServiceTest : public InstantUnitTestBase {
  protected:
-  virtual void SetUp() OVERRIDE {
+  void SetUp() override {
     InstantUnitTestBase::SetUp();
 
     instant_service_observer_.reset(new MockInstantServiceObserver());
     instant_service_->AddObserver(instant_service_observer_.get());
   }
 
-  virtual void TearDown() OVERRIDE {
+  void TearDown() override {
     instant_service_->RemoveObserver(instant_service_observer_.get());
     InstantUnitTestBase::TearDown();
   }
@@ -58,24 +57,45 @@ class InstantServiceTest : public InstantUnitTestBase {
   scoped_ptr<MockInstantServiceObserver> instant_service_observer_;
 };
 
-TEST_F(InstantServiceTest, DispatchDefaultSearchProviderChanged) {
+class InstantServiceEnabledTest : public InstantServiceTest {
+ protected:
+  void SetUp() override {
+    ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial(
+        "EmbeddedSearch", "Group1 use_cacheable_ntp:1"));
+    InstantServiceTest::SetUp();
+  }
+};
+
+TEST_F(InstantServiceEnabledTest, DispatchDefaultSearchProviderChanged) {
   EXPECT_CALL(*instant_service_observer_.get(), DefaultSearchProviderChanged())
       .Times(1);
 
-  const std::string& new_base_url = "https://bar.com/";
-  SetDefaultSearchProvider(new_base_url);
+  const std::string new_base_url = "https://bar.com/";
+  SetUserSelectedDefaultSearchProvider(new_base_url);
+}
+
+TEST_F(InstantServiceTest, DontDispatchGoogleURLUpdatedForNonGoogleURLs) {
+  EXPECT_CALL(*instant_service_observer_.get(), DefaultSearchProviderChanged())
+      .Times(1);
+  const std::string new_dsp_url = "https://bar.com/";
+  SetUserSelectedDefaultSearchProvider(new_dsp_url);
+  testing::Mock::VerifyAndClearExpectations(instant_service_observer_.get());
+
+  EXPECT_CALL(*instant_service_observer_.get(), DefaultSearchProviderChanged())
+      .Times(0);
+  const std::string new_base_url = "https://www.google.es/";
+  NotifyGoogleBaseURLUpdate(new_base_url);
 }
 
 TEST_F(InstantServiceTest, DispatchGoogleURLUpdated) {
-  EXPECT_CALL(*instant_service_observer_.get(), GoogleURLUpdated()).Times(1);
+  EXPECT_CALL(*instant_service_observer_.get(), DefaultSearchProviderChanged())
+      .Times(1);
 
-  const std::string& new_base_url = "https://www.google.es/";
+  const std::string new_base_url = "https://www.google.es/";
   NotifyGoogleBaseURLUpdate(new_base_url);
 }
 
-TEST_F(InstantServiceTest, SendsSearchURLsToRenderer) {
-  ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial("EmbeddedSearch",
-      "Group1 use_cacheable_ntp:1"));
+TEST_F(InstantServiceEnabledTest, SendsSearchURLsToRenderer) {
   scoped_ptr<content::MockRenderProcessHost> rph(
       new content::MockRenderProcessHost(profile()));
   rph->sink().ClearMessages();
@@ -86,59 +106,53 @@ TEST_F(InstantServiceTest, SendsSearchURLsToRenderer) {
   EXPECT_EQ(1U, rph->sink().message_count());
   const IPC::Message* msg = rph->sink().GetMessageAt(0);
   ASSERT_TRUE(msg);
-  std::vector<GURL> search_urls;
-  GURL new_tab_page_url;
-  ChromeViewMsg_SetSearchURLs::Read(msg, &search_urls, &new_tab_page_url);
+  ChromeViewMsg_SetSearchURLs::Param params;
+  ChromeViewMsg_SetSearchURLs::Read(msg, &params);
+  std::vector<GURL> search_urls = params.a;
+  GURL new_tab_page_url = params.b;
   EXPECT_EQ(2U, search_urls.size());
   EXPECT_EQ("https://www.google.com/alt#quux=", search_urls[0].spec());
   EXPECT_EQ("https://www.google.com/url?bar=", search_urls[1].spec());
   EXPECT_EQ("https://www.google.com/newtab", new_tab_page_url.spec());
 }
 
-TEST_F(InstantServiceTest, InstantSearchDisabled) {
-  // 'prefetch_results' flag is not enabled in field trials. Make sure
-  // InstantSearchPrerenderer is not initialized.
-  EXPECT_EQ(static_cast<InstantSearchPrerenderer*>(NULL),
+TEST_F(InstantServiceTest, InstantSearchEnabled) {
+  EXPECT_NE(static_cast<InstantSearchPrerenderer*>(NULL),
             GetInstantSearchPrerenderer());
 }
 
-TEST_F(InstantServiceTest,
+TEST_F(InstantServiceEnabledTest,
        ResetInstantSearchPrerenderer_DefaultProviderChanged) {
-  ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial(
-      "EmbeddedSearch", "Group1 use_cacheable_ntp:1 prefetch_results:1"));
   EXPECT_CALL(*instant_service_observer_.get(), DefaultSearchProviderChanged())
       .Times(2);
 
   // Set a default search provider that doesn't support Instant.
   TemplateURLData data;
   data.SetURL("https://foobar.com/url?bar={searchTerms}");
-  TemplateURL* template_url = new TemplateURL(profile(), data);
+  TemplateURL* template_url = new TemplateURL(data);
   // Takes ownership of |template_url|.
   template_url_service_->Add(template_url);
-  template_url_service_->SetDefaultSearchProvider(template_url);
+  template_url_service_->SetUserSelectedDefaultSearchProvider(template_url);
 
   EXPECT_EQ(static_cast<InstantSearchPrerenderer*>(NULL),
             GetInstantSearchPrerenderer());
 
   // Set a default search provider that supports Instant and make sure
   // InstantSearchPrerenderer is valid.
-  SetDefaultSearchProvider("https://google.com/");
+  SetUserSelectedDefaultSearchProvider("https://google.com/");
   EXPECT_NE(static_cast<InstantSearchPrerenderer*>(NULL),
             GetInstantSearchPrerenderer());
 }
 
-TEST_F(InstantServiceTest, ResetInstantSearchPrerenderer_GoogleBaseURLUpdated) {
-  ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial(
-      "EmbeddedSearch", "Group1 use_cacheable_ntp:1 prefetch_results:1"));
+TEST_F(InstantServiceEnabledTest,
+       ResetInstantSearchPrerenderer_GoogleBaseURLUpdated) {
   EXPECT_CALL(*instant_service_observer_.get(), DefaultSearchProviderChanged())
       .Times(1);
-  EXPECT_CALL(*instant_service_observer_.get(), GoogleURLUpdated()).Times(1);
 
-  SetDefaultSearchProvider("https://google.com/");
   InstantSearchPrerenderer* old_prerenderer = GetInstantSearchPrerenderer();
-  EXPECT_NE(static_cast<InstantSearchPrerenderer*>(NULL), old_prerenderer);
+  EXPECT_TRUE(old_prerenderer != NULL);
 
-  const std::string& new_base_url = "https://www.google.es/";
+  const std::string new_base_url = "https://www.google.es/";
   NotifyGoogleBaseURLUpdate(new_base_url);
   EXPECT_NE(old_prerenderer, GetInstantSearchPrerenderer());
 }