1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/search_engines/template_url_service_factory_test_util.h"
6
7#include "base/run_loop.h"
8#include "chrome/browser/search_engines/template_url_service_factory.h"
9#include "chrome/test/base/testing_pref_service_syncable.h"
10#include "chrome/test/base/testing_profile.h"
11#include "components/search_engines/default_search_pref_test_util.h"
12#include "components/search_engines/template_url_service.h"
13
14TemplateURLServiceFactoryTestUtil::TemplateURLServiceFactoryTestUtil(
15    TestingProfile* profile)
16    : profile_(profile) {
17  profile_->CreateWebDataService();
18
19  TemplateURLServiceFactory::GetInstance()->SetTestingFactoryAndUse(
20      profile_, TemplateURLServiceFactory::BuildInstanceFor);
21}
22
23TemplateURLServiceFactoryTestUtil::~TemplateURLServiceFactoryTestUtil() {
24  // Flush the message loop to make application verifiers happy.
25  base::RunLoop().RunUntilIdle();
26}
27
28void TemplateURLServiceFactoryTestUtil::VerifyLoad() {
29  model()->Load();
30  base::RunLoop().RunUntilIdle();
31}
32
33void TemplateURLServiceFactoryTestUtil::SetManagedDefaultSearchPreferences(
34    bool enabled,
35    const std::string& name,
36    const std::string& keyword,
37    const std::string& search_url,
38    const std::string& suggest_url,
39    const std::string& icon_url,
40    const std::string& encodings,
41    const std::string& alternate_url,
42    const std::string& search_terms_replacement_key) {
43  DefaultSearchPrefTestUtil::SetManagedPref(
44      profile_->GetTestingPrefService(),
45      enabled, name, keyword, search_url, suggest_url, icon_url, encodings,
46      alternate_url, search_terms_replacement_key);
47}
48
49void
50TemplateURLServiceFactoryTestUtil::RemoveManagedDefaultSearchPreferences() {
51  DefaultSearchPrefTestUtil::RemoveManagedPref(
52      profile_->GetTestingPrefService());
53}
54
55TemplateURLService* TemplateURLServiceFactoryTestUtil::model() const {
56  return TemplateURLServiceFactory::GetForProfile(profile_);
57}
58