Home | History | Annotate | Download | only in search_engines
      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_
     93