| Index: chrome/browser/search_engines/search_provider_install_data_unittest.cc
|
| diff --git a/chrome/browser/search_engines/search_provider_install_data_unittest.cc b/chrome/browser/search_engines/search_provider_install_data_unittest.cc
|
| deleted file mode 100644
|
| index f3ef9a0461298a5421a93e3479bb62b7aec85aea..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/search_engines/search_provider_install_data_unittest.cc
|
| +++ /dev/null
|
| @@ -1,280 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/search_engines/search_provider_install_data.h"
|
| -
|
| -#include <memory>
|
| -#include <string>
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/macros.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/message_loop/message_loop.h"
|
| -#include "base/run_loop.h"
|
| -#include "base/strings/utf_string_conversions.h"
|
| -#include "chrome/browser/search_engines/template_url_service_test_util.h"
|
| -#include "chrome/test/base/testing_profile.h"
|
| -#include "components/search_engines/search_terms_data.h"
|
| -#include "components/search_engines/template_url.h"
|
| -#include "components/search_engines/template_url_service.h"
|
| -#include "components/syncable_prefs/testing_pref_service_syncable.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| -#include "content/public/test/mock_render_process_host.h"
|
| -#include "content/public/test/test_browser_thread_bundle.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -using content::BrowserThread;
|
| -
|
| -namespace {
|
| -
|
| -// TestGetInstallState --------------------------------------------------------
|
| -
|
| -// Test the SearchProviderInstallData::GetInstallState.
|
| -class TestGetInstallState {
|
| - public:
|
| - explicit TestGetInstallState(SearchProviderInstallData* install_data);
|
| -
|
| - // Runs all of the test cases.
|
| - void RunTests(const std::string& search_provider_host,
|
| - const std::string& default_search_provider_host);
|
| -
|
| - private:
|
| - // Callback for when SearchProviderInstallData is ready to have
|
| - // GetInstallState called. Runs all of the test cases.
|
| - void DoInstallStateTests(const std::string& search_provider_host,
|
| - const std::string& default_search_provider_host);
|
| -
|
| - // Does a verification for one url and its expected state.
|
| - void VerifyInstallState(SearchProviderInstallData::State expected_state,
|
| - const std::string& url);
|
| -
|
| - SearchProviderInstallData* install_data_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(TestGetInstallState);
|
| -};
|
| -
|
| -TestGetInstallState::TestGetInstallState(
|
| - SearchProviderInstallData* install_data)
|
| - : install_data_(install_data) {
|
| -}
|
| -
|
| -void TestGetInstallState::RunTests(
|
| - const std::string& search_provider_host,
|
| - const std::string& default_search_provider_host) {
|
| - install_data_->CallWhenLoaded(
|
| - base::Bind(&TestGetInstallState::DoInstallStateTests,
|
| - base::Unretained(this),
|
| - search_provider_host, default_search_provider_host));
|
| - base::RunLoop().RunUntilIdle();
|
| -}
|
| -
|
| -void TestGetInstallState::DoInstallStateTests(
|
| - const std::string& search_provider_host,
|
| - const std::string& default_search_provider_host) {
|
| - SCOPED_TRACE("search provider: " + search_provider_host +
|
| - ", default search provider: " + default_search_provider_host);
|
| - // Installed but not default.
|
| - VerifyInstallState(SearchProviderInstallData::INSTALLED_BUT_NOT_DEFAULT,
|
| - "http://" + search_provider_host + "/");
|
| - VerifyInstallState(SearchProviderInstallData::INSTALLED_BUT_NOT_DEFAULT,
|
| - "http://" + search_provider_host + ":80/");
|
| -
|
| - // Not installed.
|
| - VerifyInstallState(SearchProviderInstallData::NOT_INSTALLED,
|
| - "http://" + search_provider_host + ":96/");
|
| -
|
| - // Not installed due to different scheme.
|
| - VerifyInstallState(SearchProviderInstallData::NOT_INSTALLED,
|
| - "https://" + search_provider_host + "/");
|
| -
|
| - // Not installed.
|
| - VerifyInstallState(SearchProviderInstallData::NOT_INSTALLED,
|
| - "http://a" + search_provider_host + "/");
|
| -
|
| - // Installed as default.
|
| - if (!default_search_provider_host.empty()) {
|
| - VerifyInstallState(SearchProviderInstallData::INSTALLED_AS_DEFAULT,
|
| - "http://" + default_search_provider_host + "/");
|
| - }
|
| -}
|
| -
|
| -void TestGetInstallState::VerifyInstallState(
|
| - SearchProviderInstallData::State expected_state,
|
| - const std::string& url) {
|
| -
|
| - SearchProviderInstallData::State actual_state =
|
| - install_data_->GetInstallState(GURL(url));
|
| - EXPECT_EQ(expected_state, actual_state)
|
| - << "GetInstallState for " << url << " failed. Expected "
|
| - << expected_state << ". Actual " << actual_state << ".";
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -// SearchProviderInstallDataTest ----------------------------------------------
|
| -
|
| -// Provides basic test set-up/tear-down functionality needed by all tests
|
| -// that use TemplateURLServiceTestUtil.
|
| -class SearchProviderInstallDataTest : public testing::Test {
|
| - public:
|
| - SearchProviderInstallDataTest();
|
| -
|
| - void SetUp() override;
|
| - void TearDown() override;
|
| -
|
| - TemplateURL* AddNewTemplateURL(const std::string& url,
|
| - const base::string16& keyword);
|
| -
|
| - // Sets the Google base URL to |base_url| and runs the IO thread for
|
| - // |SearchProviderInstallData| to process the update.
|
| - void SetGoogleBaseURLAndProcessOnIOThread(GURL base_url);
|
| -
|
| - TemplateURLServiceTestUtil* util() { return &util_; }
|
| - SearchProviderInstallData* install_data() { return install_data_; }
|
| -
|
| - private:
|
| - content::TestBrowserThreadBundle thread_bundle_; // To set up BrowserThreads.
|
| - TemplateURLServiceTestUtil util_;
|
| -
|
| - // Provides the search provider install state on the I/O thread. It must be
|
| - // deleted on the I/O thread, which is why it isn't a scoped_ptr.
|
| - SearchProviderInstallData* install_data_;
|
| -
|
| - // A mock RenderProcessHost that the SearchProviderInstallData will scope its
|
| - // lifetime to.
|
| - std::unique_ptr<content::MockRenderProcessHost> process_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(SearchProviderInstallDataTest);
|
| -};
|
| -
|
| -SearchProviderInstallDataTest::SearchProviderInstallDataTest()
|
| - : install_data_(NULL) {
|
| -}
|
| -
|
| -void SearchProviderInstallDataTest::SetUp() {
|
| - testing::Test::SetUp();
|
| - process_.reset(new content::MockRenderProcessHost(util_.profile()));
|
| - install_data_ = new SearchProviderInstallData(
|
| - util_.model(), SearchTermsData().GoogleBaseURLValue(), NULL,
|
| - process_.get());
|
| -}
|
| -
|
| -void SearchProviderInstallDataTest::TearDown() {
|
| - BrowserThread::DeleteSoon(BrowserThread::IO, FROM_HERE, install_data_);
|
| - install_data_ = NULL;
|
| -
|
| - // Make sure that the install data class on the UI thread gets cleaned up.
|
| - // It doesn't matter that this happens after install_data_ is deleted.
|
| - process_.reset();
|
| -
|
| - testing::Test::TearDown();
|
| -}
|
| -
|
| -TemplateURL* SearchProviderInstallDataTest::AddNewTemplateURL(
|
| - const std::string& url,
|
| - const base::string16& keyword) {
|
| - TemplateURLData data;
|
| - data.SetShortName(keyword);
|
| - data.SetKeyword(keyword);
|
| - data.SetURL(url);
|
| - TemplateURL* t_url = new TemplateURL(data);
|
| - util_.model()->Add(t_url);
|
| - return t_url;
|
| -}
|
| -
|
| -void SearchProviderInstallDataTest::SetGoogleBaseURLAndProcessOnIOThread(
|
| - GURL base_url) {
|
| - util_.SetGoogleBaseURL(base_url);
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO,
|
| - FROM_HERE,
|
| - base::Bind(&SearchProviderInstallData::OnGoogleURLChange,
|
| - base::Unretained(install_data_),
|
| - base_url.spec()));
|
| -
|
| - // Wait for the I/O thread to process the update notification.
|
| - base::RunLoop().RunUntilIdle();
|
| -}
|
| -
|
| -// Actual tests ---------------------------------------------------------------
|
| -
|
| -TEST_F(SearchProviderInstallDataTest, GetInstallState) {
|
| - // Set up the database.
|
| - util()->ChangeModelToLoadState();
|
| - std::string host = "www.unittest.com";
|
| - AddNewTemplateURL("http://" + host + "/path", base::ASCIIToUTF16("unittest"));
|
| -
|
| - // Wait for the changes to be saved.
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - // Verify the search providers install state (with no default set).
|
| - TestGetInstallState test_get_install_state(install_data());
|
| - test_get_install_state.RunTests(host, std::string());
|
| -
|
| - // Set-up a default and try it all one more time.
|
| - std::string default_host = "www.mmm.com";
|
| - TemplateURL* default_url =
|
| - AddNewTemplateURL("http://" + default_host + "/",
|
| - base::ASCIIToUTF16("mmm"));
|
| - util()->model()->SetUserSelectedDefaultSearchProvider(default_url);
|
| - test_get_install_state.RunTests(host, default_host);
|
| -}
|
| -
|
| -TEST_F(SearchProviderInstallDataTest, ManagedDefaultSearch) {
|
| - // Set up the database.
|
| - util()->ChangeModelToLoadState();
|
| - std::string host = "www.unittest.com";
|
| - AddNewTemplateURL("http://" + host + "/path", base::ASCIIToUTF16("unittest"));
|
| -
|
| - // Set a managed preference that establishes a default search provider.
|
| - std::string host2 = "www.managedtest.com";
|
| - util()->SetManagedDefaultSearchPreferences(
|
| - true,
|
| - "managed",
|
| - "managed",
|
| - "http://" + host2 + "/p{searchTerms}",
|
| - std::string(),
|
| - std::string(),
|
| - std::string(),
|
| - std::string(),
|
| - std::string());
|
| -
|
| - EXPECT_TRUE(util()->model()->is_default_search_managed());
|
| -
|
| - // Wait for the changes to be saved.
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - // Verify the search providers install state. The default search should be
|
| - // the managed one we previously set.
|
| - TestGetInstallState test_get_install_state(install_data());
|
| - test_get_install_state.RunTests(host, host2);
|
| -}
|
| -
|
| -TEST_F(SearchProviderInstallDataTest, GoogleBaseUrlChange) {
|
| - TestGetInstallState test_get_install_state(install_data());
|
| -
|
| - // Set up the database.
|
| - util()->ChangeModelToLoadState();
|
| - std::string google_host = "w.com";
|
| - SetGoogleBaseURLAndProcessOnIOThread(GURL("http://" + google_host + "/"));
|
| -
|
| - AddNewTemplateURL("{google:baseURL}?q={searchTerms}",
|
| - base::ASCIIToUTF16("t"));
|
| - TemplateURL* default_url =
|
| - AddNewTemplateURL("http://d.com/", base::ASCIIToUTF16("d"));
|
| - util()->model()->SetUserSelectedDefaultSearchProvider(default_url);
|
| -
|
| - // Wait for the changes to be saved.
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - // Verify the search providers install state (with no default set).
|
| - test_get_install_state.RunTests(google_host, std::string());
|
| -
|
| - // Change the Google base url.
|
| - google_host = "foo.com";
|
| - SetGoogleBaseURLAndProcessOnIOThread(GURL("http://" + google_host + "/"));
|
| -
|
| - // Verify that the change got picked up.
|
| - test_get_install_state.RunTests(google_host, std::string());
|
| -}
|
|
|