1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file.
4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef CHROME_BROWSER_SEARCH_ENGINES_TEMPLATE_URL_SERVICE_FACTORY_TEST_UTIL_H_
6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define CHROME_BROWSER_SEARCH_ENGINES_TEMPLATE_URL_SERVICE_FACTORY_TEST_UTIL_H_
7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include <string>
9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/basictypes.h"
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
12116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass TemplateURLService;
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass TestingProfile;
14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// TemplateURLServiceFactoryTestUtil initializes TemplateURLServiceFactory to
16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// return a valid TemplateURLService instance for the given profile.
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass TemplateURLServiceFactoryTestUtil {
18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public:
19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  explicit TemplateURLServiceFactoryTestUtil(TestingProfile* profile);
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual ~TemplateURLServiceFactoryTestUtil();
21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // Makes sure the load was successful.
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  void VerifyLoad();
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // Set the managed preferences for the default search provider and trigger
26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // notification. If |alternate_url| is empty, uses an empty list of alternate
27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // URLs, otherwise use a list containing a single entry.
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  void SetManagedDefaultSearchPreferences(
29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      bool enabled,
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      const std::string& name,
31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      const std::string& keyword,
32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      const std::string& search_url,
33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      const std::string& suggest_url,
34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      const std::string& icon_url,
35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      const std::string& encodings,
36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      const std::string& alternate_url,
37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      const std::string& search_terms_replacement_key);
38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // Remove all the managed preferences for the default search provider and
40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // trigger notification.
41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  void RemoveManagedDefaultSearchPreferences();
42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // Returns the TemplateURLService.
44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  TemplateURLService* model() const;
45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private:
47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  TestingProfile* profile_;
48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  DISALLOW_COPY_AND_ASSIGN(TemplateURLServiceFactoryTestUtil);
50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch};
51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
52116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif  // CHROME_BROWSER_SEARCH_ENGINES_TEMPLATE_URL_SERVICE_FACTORY_TEST_UTIL_H_
53