Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / search_engines / template_url_service_test_util.h
1 // Copyright (c) 2012 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 #ifndef CHROME_BROWSER_SEARCH_ENGINES_TEMPLATE_URL_SERVICE_TEST_UTIL_H_
6 #define CHROME_BROWSER_SEARCH_ENGINES_TEMPLATE_URL_SERVICE_TEST_UTIL_H_
7
8 #include <string>
9
10 #include "base/basictypes.h"
11 #include "base/files/scoped_temp_dir.h"
12 #include "base/memory/ref_counted.h"
13 #include "base/memory/scoped_ptr.h"
14 #include "base/strings/string16.h"
15 #include "components/search_engines/template_url_service_observer.h"
16
17 class GURL;
18 class KeywordWebDataService;
19 class TemplateURLService;
20 class TestingProfile;
21 class TestingSearchTermsData;
22
23 class TemplateURLServiceTestUtil : public TemplateURLServiceObserver {
24  public:
25   TemplateURLServiceTestUtil();
26   virtual ~TemplateURLServiceTestUtil();
27
28   // TemplateURLServiceObserver implemementation.
29   virtual void OnTemplateURLServiceChanged() OVERRIDE;
30
31   // Gets the observer count.
32   int GetObserverCount();
33
34   // Sets the observer count to 0.
35   void ResetObserverCount();
36
37   // Makes sure the load was successful and sent the correct notification.
38   void VerifyLoad();
39
40   // Makes the model believe it has been loaded (without actually doing the
41   // load). Since this avoids setting the built-in keyword version, the next
42   // load will do a merge from prepopulated data.
43   void ChangeModelToLoadState();
44
45   // Deletes the current model (and doesn't create a new one).
46   void ClearModel();
47
48   // Creates a new TemplateURLService.
49   void ResetModel(bool verify_load);
50
51   // Returns the search term from the last invocation of
52   // TemplateURLService::SetKeywordSearchTermsForURL and clears the search term.
53   base::string16 GetAndClearSearchTerm();
54
55   // Sets the google base url.  |base_url| must be valid.
56   void SetGoogleBaseURL(const GURL& base_url);
57
58   // Sets the managed preferences for the default search provider and trigger
59   // notification. If |alternate_url| is empty, uses an empty list of alternate
60   // URLs, otherwise uses a list containing a single entry.
61   void SetManagedDefaultSearchPreferences(
62       bool enabled,
63       const std::string& name,
64       const std::string& keyword,
65       const std::string& search_url,
66       const std::string& suggest_url,
67       const std::string& icon_url,
68       const std::string& encodings,
69       const std::string& alternate_url,
70       const std::string& search_terms_replacement_key);
71
72   // Removes all the managed preferences for the default search provider and
73   // triggers notification.
74   void RemoveManagedDefaultSearchPreferences();
75
76   KeywordWebDataService* web_data_service() { return web_data_service_.get(); }
77   TemplateURLService* model() { return model_.get(); }
78   TestingProfile* profile() { return profile_.get(); }
79
80  private:
81   scoped_ptr<TestingProfile> profile_;
82   base::ScopedTempDir temp_dir_;
83   int changed_count_;
84   base::string16 search_term_;
85   scoped_refptr<KeywordWebDataService> web_data_service_;
86   TestingSearchTermsData* search_terms_data_;
87   scoped_ptr<TemplateURLService> model_;
88
89   DISALLOW_COPY_AND_ASSIGN(TemplateURLServiceTestUtil);
90 };
91
92 #endif  // CHROME_BROWSER_SEARCH_ENGINES_TEMPLATE_URL_SERVICE_TEST_UTIL_H_