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