Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(785)

Side by Side Diff: chrome/browser/ui/search_engines/keyword_editor_controller_unittest.cc

Issue 10006037: Moved WebDataService to ProfileKeyedService (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed compile Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/message_loop.h" 5 #include "base/message_loop.h"
6 #include "base/string16.h" 6 #include "base/string16.h"
7 #include "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
8 #include "chrome/browser/profiles/profile.h" 8 #include "chrome/browser/profiles/profile.h"
9 #include "chrome/browser/search_engines/template_url.h" 9 #include "chrome/browser/search_engines/template_url.h"
10 #include "chrome/browser/search_engines/template_url_service.h" 10 #include "chrome/browser/search_engines/template_url_service.h"
11 #include "chrome/browser/search_engines/template_url_service_factory.h" 11 #include "chrome/browser/search_engines/template_url_service_factory.h"
12 #include "chrome/browser/ui/search_engines/keyword_editor_controller.h" 12 #include "chrome/browser/ui/search_engines/keyword_editor_controller.h"
13 #include "chrome/browser/ui/search_engines/template_url_table_model.h" 13 #include "chrome/browser/ui/search_engines/template_url_table_model.h"
14 #include "chrome/browser/webdata/web_data_service_factory.h"
14 #include "chrome/common/chrome_notification_types.h" 15 #include "chrome/common/chrome_notification_types.h"
15 #include "chrome/common/pref_names.h" 16 #include "chrome/common/pref_names.h"
16 #include "chrome/test/base/testing_pref_service.h" 17 #include "chrome/test/base/testing_pref_service.h"
17 #include "chrome/test/base/testing_profile.h" 18 #include "chrome/test/base/testing_profile.h"
18 #include "content/public/browser/notification_service.h" 19 #include "content/public/browser/notification_service.h"
19 #include "testing/gtest/include/gtest/gtest.h" 20 #include "testing/gtest/include/gtest/gtest.h"
20 #include "ui/base/models/table_model_observer.h" 21 #include "ui/base/models/table_model_observer.h"
21 22
22 static const string16 kA(ASCIIToUTF16("a")); 23 static const string16 kA(ASCIIToUTF16("a"));
23 static const string16 kA1(ASCIIToUTF16("a1")); 24 static const string16 kA1(ASCIIToUTF16("a1"));
24 static const string16 kB(ASCIIToUTF16("b")); 25 static const string16 kB(ASCIIToUTF16("b"));
25 static const string16 kB1(ASCIIToUTF16("b1")); 26 static const string16 kB1(ASCIIToUTF16("b1"));
26 27
27 // Base class for keyword editor tests. Creates a profile containing an 28 // Base class for keyword editor tests. Creates a profile containing an
28 // empty TemplateURLService. 29 // empty TemplateURLService.
29 class KeywordEditorControllerTest : public testing::Test, 30 class KeywordEditorControllerTest : public testing::Test,
30 public ui::TableModelObserver { 31 public ui::TableModelObserver {
31 public: 32 public:
32 // Initializes all of the state. 33 // Initializes all of the state.
33 void Init(bool simulate_load_failure); 34 void Init(bool simulate_load_failure);
34 35
35 virtual void SetUp() { 36 virtual void SetUp() OVERRIDE;
36 Init(false); 37 virtual void OnModelChanged() OVERRIDE;
37 } 38 virtual void OnItemsChanged(int start, int length) OVERRIDE;
38 39 virtual void OnItemsAdded(int start, int length) OVERRIDE;
39 virtual void OnModelChanged() { 40 virtual void OnItemsRemoved(int start, int length) OVERRIDE;
40 model_changed_count_++;
41 }
42
43 virtual void OnItemsChanged(int start, int length) {
44 items_changed_count_++;
45 }
46
47 virtual void OnItemsAdded(int start, int length) {
48 added_count_++;
49 }
50
51 virtual void OnItemsRemoved(int start, int length) {
52 removed_count_++;
53 }
54 41
55 void VerifyChangeCount(int model_changed_count, int item_changed_count, 42 void VerifyChangeCount(int model_changed_count, int item_changed_count,
56 int added_count, int removed_count) { 43 int added_count, int removed_count);
57 ASSERT_EQ(model_changed_count, model_changed_count_); 44 void ClearChangeCount();
58 ASSERT_EQ(item_changed_count, items_changed_count_); 45 void SimulateDefaultSearchIsManaged(const std::string& url);
59 ASSERT_EQ(added_count, added_count_); 46 TemplateURLTableModel* table_model() const;
60 ASSERT_EQ(removed_count, removed_count_);
61 ClearChangeCount();
62 }
63
64 void ClearChangeCount() {
65 model_changed_count_ = items_changed_count_ = added_count_ =
66 removed_count_ = 0;
67 }
68
69 void SimulateDefaultSearchIsManaged(const std::string& url) {
70 ASSERT_FALSE(url.empty());
71 TestingPrefService* service = profile_->GetTestingPrefService();
72 service->SetManagedPref(prefs::kDefaultSearchProviderEnabled,
73 Value::CreateBooleanValue(true));
74 service->SetManagedPref(prefs::kDefaultSearchProviderSearchURL,
75 Value::CreateStringValue(url));
76 service->SetManagedPref(prefs::kDefaultSearchProviderName,
77 Value::CreateStringValue("managed"));
78 // Clear the IDs that are not specified via policy.
79 service->SetManagedPref(prefs::kDefaultSearchProviderID,
80 new StringValue(std::string()));
81 service->SetManagedPref(prefs::kDefaultSearchProviderPrepopulateID,
82 new StringValue(std::string()));
83 model_->Observe(chrome::NOTIFICATION_DEFAULT_SEARCH_POLICY_CHANGED,
84 content::NotificationService::AllSources(),
85 content::NotificationService::NoDetails());
86 }
87
88 TemplateURLTableModel* table_model() const {
89 return controller_->table_model();
90 }
91 47
92 protected: 48 protected:
93 MessageLoopForUI message_loop_; 49 MessageLoopForUI message_loop_;
94 scoped_ptr<TestingProfile> profile_; 50 scoped_ptr<TestingProfile> profile_;
95 scoped_ptr<KeywordEditorController> controller_; 51 scoped_ptr<KeywordEditorController> controller_;
96 TemplateURLService* model_; 52 TemplateURLService* model_;
97 53
98 int model_changed_count_; 54 int model_changed_count_;
99 int items_changed_count_; 55 int items_changed_count_;
100 int added_count_; 56 int added_count_;
101 int removed_count_; 57 int removed_count_;
102 }; 58 };
103 59
104 void KeywordEditorControllerTest::Init(bool simulate_load_failure) { 60 void KeywordEditorControllerTest::Init(bool simulate_load_failure) {
105 ClearChangeCount(); 61 ClearChangeCount();
106 62
107 // If init is called twice, make sure that the controller is destroyed before 63 // If init is called twice, make sure that the controller is destroyed before
108 // the profile is. 64 // the profile is.
109 controller_.reset(); 65 controller_.reset();
110 profile_.reset(new TestingProfile()); 66 profile_.reset(new TestingProfile());
111 profile_->CreateTemplateURLService(); 67 profile_->CreateTemplateURLService();
112 68
69 WebDataServiceFactory::GetInstance()->SetTestingFactory(profile_.get(), NULL);
70
113 model_ = TemplateURLServiceFactory::GetForProfile(profile_.get()); 71 model_ = TemplateURLServiceFactory::GetForProfile(profile_.get());
114 if (simulate_load_failure) 72 if (simulate_load_failure)
115 model_->OnWebDataServiceRequestDone(0, NULL); 73 model_->OnWebDataServiceRequestDone(0, NULL);
116 74
117 controller_.reset(new KeywordEditorController(profile_.get())); 75 controller_.reset(new KeywordEditorController(profile_.get()));
118 controller_->table_model()->SetObserver(this); 76 controller_->table_model()->SetObserver(this);
119 } 77 }
120 78
79 void KeywordEditorControllerTest::SetUp() {
80 Init(false);
81 }
82
83 void KeywordEditorControllerTest::OnModelChanged() {
84 model_changed_count_++;
85 }
86
87 void KeywordEditorControllerTest::OnItemsChanged(int start, int length) {
88 items_changed_count_++;
89 }
90
91 void KeywordEditorControllerTest::OnItemsAdded(int start, int length) {
92 added_count_++;
93 }
94
95 void KeywordEditorControllerTest::OnItemsRemoved(int start, int length) {
96 removed_count_++;
97 }
98
99 void KeywordEditorControllerTest::VerifyChangeCount(int model_changed_count,
100 int item_changed_count,
101 int added_count,
102 int removed_count) {
103 ASSERT_EQ(model_changed_count, model_changed_count_);
104 ASSERT_EQ(item_changed_count, items_changed_count_);
105 ASSERT_EQ(added_count, added_count_);
106 ASSERT_EQ(removed_count, removed_count_);
107 ClearChangeCount();
108 }
109
110 void KeywordEditorControllerTest::ClearChangeCount() {
111 model_changed_count_ = items_changed_count_ = added_count_ =
112 removed_count_ = 0;
113 }
114
115 void KeywordEditorControllerTest::SimulateDefaultSearchIsManaged(
116 const std::string& url) {
117 ASSERT_FALSE(url.empty());
118 TestingPrefService* service = profile_->GetTestingPrefService();
119 service->SetManagedPref(prefs::kDefaultSearchProviderEnabled,
120 Value::CreateBooleanValue(true));
121 service->SetManagedPref(prefs::kDefaultSearchProviderSearchURL,
122 Value::CreateStringValue(url));
123 service->SetManagedPref(prefs::kDefaultSearchProviderName,
124 Value::CreateStringValue("managed"));
125 // Clear the IDs that are not specified via policy.
126 service->SetManagedPref(prefs::kDefaultSearchProviderID,
127 new StringValue(std::string()));
128 service->SetManagedPref(prefs::kDefaultSearchProviderPrepopulateID,
129 new StringValue(std::string()));
130 model_->Observe(chrome::NOTIFICATION_DEFAULT_SEARCH_POLICY_CHANGED,
131 content::NotificationService::AllSources(),
132 content::NotificationService::NoDetails());
133 }
134
135 TemplateURLTableModel* KeywordEditorControllerTest::table_model() const {
136 return controller_->table_model();
137 }
138
121 // Tests adding a TemplateURL. 139 // Tests adding a TemplateURL.
122 TEST_F(KeywordEditorControllerTest, Add) { 140 TEST_F(KeywordEditorControllerTest, Add) {
123 controller_->AddTemplateURL(kA, kB, "http://c"); 141 controller_->AddTemplateURL(kA, kB, "http://c");
124 142
125 // Verify the observer was notified. 143 // Verify the observer was notified.
126 VerifyChangeCount(0, 0, 1, 0); 144 VerifyChangeCount(0, 0, 1, 0);
127 if (HasFatalFailure()) 145 if (HasFatalFailure())
128 return; 146 return;
129 147
130 // Verify the TableModel has the new data. 148 // Verify the TableModel has the new data.
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 TemplateURL* turl = new TemplateURL(data); 264 TemplateURL* turl = new TemplateURL(data);
247 model_->Add(turl); 265 model_->Add(turl);
248 266
249 // Table model should have updated. 267 // Table model should have updated.
250 VerifyChangeCount(1, 0, 0, 0); 268 VerifyChangeCount(1, 0, 0, 0);
251 269
252 // And should contain the newly added TemplateURL. 270 // And should contain the newly added TemplateURL.
253 ASSERT_EQ(1, table_model()->RowCount()); 271 ASSERT_EQ(1, table_model()->RowCount());
254 ASSERT_EQ(0, table_model()->IndexOfTemplateURL(turl)); 272 ASSERT_EQ(0, table_model()->IndexOfTemplateURL(turl));
255 } 273 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/intents/web_intents_model_unittest.cc ('k') | chrome/browser/ui/views/first_run_bubble_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698