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

Side by Side Diff: chrome/browser/translate/translate_manager_unittest.cc

Issue 6249010: Cleanup: de-inline a bunch of classes, rename and move "PluginInstaller" to "... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 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
« no previous file with comments | « chrome/browser/translate/translate_manager.cc ('k') | chrome/browser/ui/browser.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/renderer_host/test/test_render_view_host.h" 5 #include "chrome/browser/renderer_host/test/test_render_view_host.h"
6 6
7 #include <set>
8
7 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
8 #include "chrome/app/chrome_command_ids.h" 10 #include "chrome/app/chrome_command_ids.h"
9 #include "chrome/browser/prefs/pref_service.h" 11 #include "chrome/browser/prefs/pref_service.h"
10 #include "chrome/browser/prefs/pref_change_registrar.h" 12 #include "chrome/browser/prefs/pref_change_registrar.h"
11 #include "chrome/browser/renderer_host/mock_render_process_host.h" 13 #include "chrome/browser/renderer_host/mock_render_process_host.h"
12 #include "chrome/browser/tab_contents/navigation_controller.h" 14 #include "chrome/browser/tab_contents/navigation_controller.h"
13 #include "chrome/browser/tab_contents/render_view_context_menu.h" 15 #include "chrome/browser/tab_contents/render_view_context_menu.h"
14 #include "chrome/browser/tab_contents/test_tab_contents.h" 16 #include "chrome/browser/tab_contents/test_tab_contents.h"
15 #include "chrome/browser/translate/translate_infobar_delegate.h" 17 #include "chrome/browser/translate/translate_infobar_delegate.h"
16 #include "chrome/browser/translate/translate_manager.h" 18 #include "chrome/browser/translate/translate_manager.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 if (original_lang) 79 if (original_lang)
78 *original_lang = translate_param.c; 80 *original_lang = translate_param.c;
79 if (target_lang) 81 if (target_lang)
80 *target_lang = translate_param.d; 82 *target_lang = translate_param.d;
81 return true; 83 return true;
82 } 84 }
83 85
84 // Returns the translate infobar if there is 1 infobar and it is a translate 86 // Returns the translate infobar if there is 1 infobar and it is a translate
85 // infobar. 87 // infobar.
86 TranslateInfoBarDelegate* GetTranslateInfoBar() { 88 TranslateInfoBarDelegate* GetTranslateInfoBar() {
87 if (contents()->infobar_delegate_count() != 1) 89 return (contents()->infobar_delegate_count() == 1) ?
88 return NULL; 90 contents()->GetInfoBarDelegateAt(0)->AsTranslateInfoBarDelegate() :
89 return contents()->GetInfoBarDelegateAt(0)->AsTranslateInfoBarDelegate(); 91 NULL;
90 } 92 }
91 93
92 // If there is 1 infobar and it is a translate infobar, closes it and returns 94 // If there is 1 infobar and it is a translate infobar, closes it and returns
93 // true. Returns false otherwise. 95 // true. Returns false otherwise.
94 bool CloseTranslateInfoBar() { 96 bool CloseTranslateInfoBar() {
95 TranslateInfoBarDelegate* infobar = GetTranslateInfoBar(); 97 InfoBarDelegate* infobar = GetTranslateInfoBar();
96 if (!infobar) 98 if (!infobar)
97 return false; 99 return false;
98 infobar->InfoBarDismissed(); // Simulates closing the infobar. 100 infobar->InfoBarDismissed(); // Simulates closing the infobar.
99 contents()->RemoveInfoBar(infobar); 101 contents()->RemoveInfoBar(infobar);
100 return true; 102 return true;
101 } 103 }
102 104
103 // Checks whether |infobar| has been removed and clears the removed infobar 105 // Checks whether |infobar| has been removed and clears the removed infobar
104 // list. 106 // list.
105 bool CheckInfoBarRemovedAndReset(InfoBarDelegate* infobar) { 107 bool CheckInfoBarRemovedAndReset(InfoBarDelegate* delegate) {
106 bool found = std::find(removed_infobars_.begin(), removed_infobars_.end(), 108 bool found = removed_infobars_.count(delegate) != 0;
107 infobar) != removed_infobars_.end();
108 removed_infobars_.clear(); 109 removed_infobars_.clear();
109 return found; 110 return found;
110 } 111 }
111 112
112 // Returns true if at least one infobar was closed. 113 // Returns true if at least one infobar was closed.
113 bool InfoBarRemoved() { 114 bool InfoBarRemoved() {
114 return !removed_infobars_.empty(); 115 return !removed_infobars_.empty();
115 } 116 }
116 117
117 // Clears the list of stored removed infobars. 118 // Clears the list of stored removed infobars.
(...skipping 12 matching lines...) Expand all
130 if (!infobar) 131 if (!infobar)
131 return false; 132 return false;
132 infobar->TranslationDeclined(); 133 infobar->TranslationDeclined();
133 contents()->RemoveInfoBar(infobar); 134 contents()->RemoveInfoBar(infobar);
134 return true; 135 return true;
135 } 136 }
136 137
137 virtual void Observe(NotificationType type, 138 virtual void Observe(NotificationType type,
138 const NotificationSource& source, 139 const NotificationSource& source,
139 const NotificationDetails& details) { 140 const NotificationDetails& details) {
140 DCHECK(type == NotificationType::TAB_CONTENTS_INFOBAR_REMOVED); 141 DCHECK_EQ(NotificationType::TAB_CONTENTS_INFOBAR_REMOVED, type.value);
141 removed_infobars_.push_back(Details<InfoBarDelegate>(details).ptr()); 142 removed_infobars_.insert(Details<InfoBarDelegate>(details).ptr());
142 } 143 }
143 144
144 protected: 145 protected:
145 virtual void SetUp() { 146 virtual void SetUp() {
146 URLFetcher::set_factory(&url_fetcher_factory_); 147 URLFetcher::set_factory(&url_fetcher_factory_);
147 148
148 // Access the TranslateManager singleton so it is created before we call 149 // Access the TranslateManager singleton so it is created before we call
149 // RenderViewHostTestHarness::SetUp() to match what's done in Chrome, where 150 // RenderViewHostTestHarness::SetUp() to match what's done in Chrome, where
150 // the TranslateManager is created before the TabContents. This matters as 151 // the TranslateManager is created before the TabContents. This matters as
151 // they both register for similar events and we want the notifications to 152 // they both register for similar events and we want the notifications to
152 // happen in the same sequence (TranslateManager first, TabContents second). 153 // happen in the same sequence (TranslateManager first, TabContents second).
153 // Also clears the translate script so it is fetched everytime and sets the 154 // Also clears the translate script so it is fetched everytime and sets the
154 // expiration delay to a large value by default (in case it was zeroed in 155 // expiration delay to a large value by default (in case it was zeroed in
155 // a previous test). 156 // a previous test).
156 TranslateManager::GetInstance()->ClearTranslateScript(); 157 TranslateManager::GetInstance()->ClearTranslateScript();
157 TranslateManager::GetInstance()-> 158 TranslateManager::GetInstance()->
158 set_translate_script_expiration_delay(60 * 60 * 1000); 159 set_translate_script_expiration_delay(60 * 60 * 1000);
159 160
160 RenderViewHostTestHarness::SetUp(); 161 RenderViewHostTestHarness::SetUp();
161 162
162 notification_registrar_.Add( 163 notification_registrar_.Add(this,
163 this,
164 NotificationType::TAB_CONTENTS_INFOBAR_REMOVED, 164 NotificationType::TAB_CONTENTS_INFOBAR_REMOVED,
165 Source<TabContents>(contents())); 165 Source<TabContents>(contents()));
166 } 166 }
167 167
168 virtual void TearDown() { 168 virtual void TearDown() {
169 process()->sink().ClearMessages(); 169 process()->sink().ClearMessages();
170 170
171 notification_registrar_.Remove( 171 notification_registrar_.Remove(this,
172 this,
173 NotificationType::TAB_CONTENTS_INFOBAR_REMOVED, 172 NotificationType::TAB_CONTENTS_INFOBAR_REMOVED,
174 Source<TabContents>(contents())); 173 Source<TabContents>(contents()));
175 174
176 RenderViewHostTestHarness::TearDown(); 175 RenderViewHostTestHarness::TearDown();
177 176
178 URLFetcher::set_factory(NULL); 177 URLFetcher::set_factory(NULL);
179 } 178 }
180 179
181 void SimulateURLFetch(bool success) { 180 void SimulateURLFetch(bool success) {
182 TestURLFetcher* fetcher = url_fetcher_factory_.GetFetcherByID(0); 181 TestURLFetcher* fetcher = url_fetcher_factory_.GetFetcherByID(0);
(...skipping 14 matching lines...) Expand all
197 _, 196 _,
198 Property(&Details<std::string>::ptr, Pointee(path)))); 197 Property(&Details<std::string>::ptr, Pointee(path))));
199 } 198 }
200 199
201 NotificationObserverMock pref_observer_; 200 NotificationObserverMock pref_observer_;
202 201
203 private: 202 private:
204 NotificationRegistrar notification_registrar_; 203 NotificationRegistrar notification_registrar_;
205 TestURLFetcherFactory url_fetcher_factory_; 204 TestURLFetcherFactory url_fetcher_factory_;
206 205
207 // The list of infobars that have been removed. 206 // The infobars that have been removed.
208 // WARNING: the pointers points to deleted objects, use only for comparison. 207 // WARNING: the pointers point to deleted objects, use only for comparison.
209 std::vector<InfoBarDelegate*> removed_infobars_; 208 std::set<InfoBarDelegate*> removed_infobars_;
210 209
211 DISALLOW_COPY_AND_ASSIGN(TranslateManagerTest); 210 DISALLOW_COPY_AND_ASSIGN(TranslateManagerTest);
212 }; 211 };
213 212
214 // An observer that keeps track of whether a navigation entry was committed. 213 // An observer that keeps track of whether a navigation entry was committed.
215 class NavEntryCommittedObserver : public NotificationObserver { 214 class NavEntryCommittedObserver : public NotificationObserver {
216 public: 215 public:
217 explicit NavEntryCommittedObserver(TabContents* tab_contents) { 216 explicit NavEntryCommittedObserver(TabContents* tab_contents) {
218 registrar_.Add(this, NotificationType::NAV_ENTRY_COMMITTED, 217 registrar_.Add(this, NotificationType::NAV_ENTRY_COMMITTED,
219 Source<NavigationController>(&tab_contents->controller())); 218 Source<NavigationController>(&tab_contents->controller()));
(...skipping 1002 matching lines...) Expand 10 before | Expand all | Expand 10 after
1222 NULL); 1221 NULL);
1223 // Now simulate the URL fetch. 1222 // Now simulate the URL fetch.
1224 SimulateURLFetch(true); 1223 SimulateURLFetch(true);
1225 // Now the message should have been sent. 1224 // Now the message should have been sent.
1226 int page_id = 0; 1225 int page_id = 0;
1227 std::string original_lang, target_lang; 1226 std::string original_lang, target_lang;
1228 EXPECT_TRUE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); 1227 EXPECT_TRUE(GetTranslateMessage(&page_id, &original_lang, &target_lang));
1229 EXPECT_EQ("es", original_lang); 1228 EXPECT_EQ("es", original_lang);
1230 EXPECT_EQ("en", target_lang); 1229 EXPECT_EQ("en", target_lang);
1231 } 1230 }
OLDNEW
« no previous file with comments | « chrome/browser/translate/translate_manager.cc ('k') | chrome/browser/ui/browser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698