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

Side by Side Diff: chrome/renderer/translate/translate_helper_browsertest.cc

Issue 378253002: Fix translate namespace (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 5 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
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/time/time.h" 5 #include "base/time/time.h"
6 #include "chrome/renderer/translate/translate_helper.h" 6 #include "chrome/renderer/translate/translate_helper.h"
7 #include "chrome/test/base/chrome_render_view_test.h" 7 #include "chrome/test/base/chrome_render_view_test.h"
8 #include "components/translate/content/common/translate_messages.h" 8 #include "components/translate/content/common/translate_messages.h"
9 #include "components/translate/core/common/translate_constants.h" 9 #include "components/translate/core/common/translate_constants.h"
10 #include "content/public/renderer/render_view.h" 10 #include "content/public/renderer/render_view.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 translate_helper_ = new TestTranslateHelper(view_); 60 translate_helper_ = new TestTranslateHelper(view_);
61 } 61 }
62 62
63 virtual void TearDown() OVERRIDE { 63 virtual void TearDown() OVERRIDE {
64 delete translate_helper_; 64 delete translate_helper_;
65 ChromeRenderViewTest::TearDown(); 65 ChromeRenderViewTest::TearDown();
66 } 66 }
67 67
68 bool GetPageTranslatedMessage(std::string* original_lang, 68 bool GetPageTranslatedMessage(std::string* original_lang,
69 std::string* target_lang, 69 std::string* target_lang,
70 TranslateErrors::Type* error) { 70 translate::TranslateErrors::Type* error) {
71 const IPC::Message* message = render_thread_->sink(). 71 const IPC::Message* message = render_thread_->sink().
72 GetUniqueMessageMatching(ChromeViewHostMsg_PageTranslated::ID); 72 GetUniqueMessageMatching(ChromeViewHostMsg_PageTranslated::ID);
73 if (!message) 73 if (!message)
74 return false; 74 return false;
75 Tuple3<std::string, std::string, TranslateErrors::Type> translate_param; 75 Tuple3<std::string, std::string, translate::TranslateErrors::Type>
76 translate_param;
76 ChromeViewHostMsg_PageTranslated::Read(message, &translate_param); 77 ChromeViewHostMsg_PageTranslated::Read(message, &translate_param);
77 if (original_lang) 78 if (original_lang)
78 *original_lang = translate_param.a; 79 *original_lang = translate_param.a;
79 if (target_lang) 80 if (target_lang)
80 *target_lang = translate_param.b; 81 *target_lang = translate_param.b;
81 if (error) 82 if (error)
82 *error = translate_param.c; 83 *error = translate_param.c;
83 return true; 84 return true;
84 } 85 }
85 86
(...skipping 13 matching lines...) Expand all
99 .WillRepeatedly(Return(true)); 100 .WillRepeatedly(Return(true));
100 101
101 EXPECT_CALL(*translate_helper_, IsTranslateLibReady()) 102 EXPECT_CALL(*translate_helper_, IsTranslateLibReady())
102 .Times(AtLeast(5)) // See kMaxTranslateInitCheckAttempts in 103 .Times(AtLeast(5)) // See kMaxTranslateInitCheckAttempts in
103 // translate_helper.cc 104 // translate_helper.cc
104 .WillRepeatedly(Return(false)); 105 .WillRepeatedly(Return(false));
105 106
106 translate_helper_->TranslatePage("en", "fr", std::string()); 107 translate_helper_->TranslatePage("en", "fr", std::string());
107 base::MessageLoop::current()->RunUntilIdle(); 108 base::MessageLoop::current()->RunUntilIdle();
108 109
109 TranslateErrors::Type error; 110 translate::TranslateErrors::Type error;
110 ASSERT_TRUE(GetPageTranslatedMessage(NULL, NULL, &error)); 111 ASSERT_TRUE(GetPageTranslatedMessage(NULL, NULL, &error));
111 EXPECT_EQ(TranslateErrors::INITIALIZATION_ERROR, error); 112 EXPECT_EQ(translate::TranslateErrors::INITIALIZATION_ERROR, error);
112 } 113 }
113 114
114 // Tests that the browser gets notified of the translation success when the 115 // Tests that the browser gets notified of the translation success when the
115 // translation succeeds. 116 // translation succeeds.
116 TEST_F(TranslateHelperBrowserTest, TranslateSuccess) { 117 TEST_F(TranslateHelperBrowserTest, TranslateSuccess) {
117 // We make IsTranslateLibAvailable true so we don't attempt to inject the 118 // We make IsTranslateLibAvailable true so we don't attempt to inject the
118 // library. 119 // library.
119 EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable()) 120 EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable())
120 .Times(AtLeast(1)) 121 .Times(AtLeast(1))
121 .WillRepeatedly(Return(true)); 122 .WillRepeatedly(Return(true));
(...skipping 16 matching lines...) Expand all
138 EXPECT_CALL(*translate_helper_, 139 EXPECT_CALL(*translate_helper_,
139 ExecuteScriptAndGetDoubleResult(_)).Times(3); 140 ExecuteScriptAndGetDoubleResult(_)).Times(3);
140 141
141 std::string original_lang("en"); 142 std::string original_lang("en");
142 std::string target_lang("fr"); 143 std::string target_lang("fr");
143 translate_helper_->TranslatePage(original_lang, target_lang, std::string()); 144 translate_helper_->TranslatePage(original_lang, target_lang, std::string());
144 base::MessageLoop::current()->RunUntilIdle(); 145 base::MessageLoop::current()->RunUntilIdle();
145 146
146 std::string received_original_lang; 147 std::string received_original_lang;
147 std::string received_target_lang; 148 std::string received_target_lang;
148 TranslateErrors::Type error; 149 translate::TranslateErrors::Type error;
149 ASSERT_TRUE(GetPageTranslatedMessage(&received_original_lang, 150 ASSERT_TRUE(GetPageTranslatedMessage(&received_original_lang,
150 &received_target_lang, 151 &received_target_lang,
151 &error)); 152 &error));
152 EXPECT_EQ(original_lang, received_original_lang); 153 EXPECT_EQ(original_lang, received_original_lang);
153 EXPECT_EQ(target_lang, received_target_lang); 154 EXPECT_EQ(target_lang, received_target_lang);
154 EXPECT_EQ(TranslateErrors::NONE, error); 155 EXPECT_EQ(translate::TranslateErrors::NONE, error);
155 } 156 }
156 157
157 // Tests that the browser gets notified of the translation failure when the 158 // Tests that the browser gets notified of the translation failure when the
158 // translation fails. 159 // translation fails.
159 TEST_F(TranslateHelperBrowserTest, TranslateFailure) { 160 TEST_F(TranslateHelperBrowserTest, TranslateFailure) {
160 // We make IsTranslateLibAvailable true so we don't attempt to inject the 161 // We make IsTranslateLibAvailable true so we don't attempt to inject the
161 // library. 162 // library.
162 EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable()) 163 EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable())
163 .Times(AtLeast(1)) 164 .Times(AtLeast(1))
164 .WillRepeatedly(Return(true)); 165 .WillRepeatedly(Return(true));
(...skipping 14 matching lines...) Expand all
179 .Times(AtLeast(1)) 180 .Times(AtLeast(1))
180 .WillRepeatedly(Return(false)); 181 .WillRepeatedly(Return(false));
181 182
182 // V8 call for performance monitoring should be ignored. 183 // V8 call for performance monitoring should be ignored.
183 EXPECT_CALL(*translate_helper_, 184 EXPECT_CALL(*translate_helper_,
184 ExecuteScriptAndGetDoubleResult(_)).Times(2); 185 ExecuteScriptAndGetDoubleResult(_)).Times(2);
185 186
186 translate_helper_->TranslatePage("en", "fr", std::string()); 187 translate_helper_->TranslatePage("en", "fr", std::string());
187 base::MessageLoop::current()->RunUntilIdle(); 188 base::MessageLoop::current()->RunUntilIdle();
188 189
189 TranslateErrors::Type error; 190 translate::TranslateErrors::Type error;
190 ASSERT_TRUE(GetPageTranslatedMessage(NULL, NULL, &error)); 191 ASSERT_TRUE(GetPageTranslatedMessage(NULL, NULL, &error));
191 EXPECT_EQ(TranslateErrors::TRANSLATION_ERROR, error); 192 EXPECT_EQ(translate::TranslateErrors::TRANSLATION_ERROR, error);
192 } 193 }
193 194
194 // Tests that when the browser translate a page for which the language is 195 // Tests that when the browser translate a page for which the language is
195 // undefined we query the translate element to get the language. 196 // undefined we query the translate element to get the language.
196 TEST_F(TranslateHelperBrowserTest, UndefinedSourceLang) { 197 TEST_F(TranslateHelperBrowserTest, UndefinedSourceLang) {
197 // We make IsTranslateLibAvailable true so we don't attempt to inject the 198 // We make IsTranslateLibAvailable true so we don't attempt to inject the
198 // library. 199 // library.
199 EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable()) 200 EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable())
200 .Times(AtLeast(1)) 201 .Times(AtLeast(1))
201 .WillRepeatedly(Return(true)); 202 .WillRepeatedly(Return(true));
(...skipping 13 matching lines...) Expand all
215 216
216 // V8 call for performance monitoring should be ignored. 217 // V8 call for performance monitoring should be ignored.
217 EXPECT_CALL(*translate_helper_, 218 EXPECT_CALL(*translate_helper_,
218 ExecuteScriptAndGetDoubleResult(_)).Times(3); 219 ExecuteScriptAndGetDoubleResult(_)).Times(3);
219 220
220 translate_helper_->TranslatePage(translate::kUnknownLanguageCode, 221 translate_helper_->TranslatePage(translate::kUnknownLanguageCode,
221 "fr", 222 "fr",
222 std::string()); 223 std::string());
223 base::MessageLoop::current()->RunUntilIdle(); 224 base::MessageLoop::current()->RunUntilIdle();
224 225
225 TranslateErrors::Type error; 226 translate::TranslateErrors::Type error;
226 std::string original_lang; 227 std::string original_lang;
227 std::string target_lang; 228 std::string target_lang;
228 ASSERT_TRUE(GetPageTranslatedMessage(&original_lang, &target_lang, &error)); 229 ASSERT_TRUE(GetPageTranslatedMessage(&original_lang, &target_lang, &error));
229 EXPECT_EQ("de", original_lang); 230 EXPECT_EQ("de", original_lang);
230 EXPECT_EQ("fr", target_lang); 231 EXPECT_EQ("fr", target_lang);
231 EXPECT_EQ(TranslateErrors::NONE, error); 232 EXPECT_EQ(translate::TranslateErrors::NONE, error);
232 } 233 }
233 234
234 // Tests that starting a translation while a similar one is pending does not 235 // Tests that starting a translation while a similar one is pending does not
235 // break anything. 236 // break anything.
236 TEST_F(TranslateHelperBrowserTest, MultipleSimilarTranslations) { 237 TEST_F(TranslateHelperBrowserTest, MultipleSimilarTranslations) {
237 // We make IsTranslateLibAvailable true so we don't attempt to inject the 238 // We make IsTranslateLibAvailable true so we don't attempt to inject the
238 // library. 239 // library.
239 EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable()) 240 EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable())
240 .Times(AtLeast(1)) 241 .Times(AtLeast(1))
241 .WillRepeatedly(Return(true)); 242 .WillRepeatedly(Return(true));
(...skipping 14 matching lines...) Expand all
256 std::string original_lang("en"); 257 std::string original_lang("en");
257 std::string target_lang("fr"); 258 std::string target_lang("fr");
258 translate_helper_->TranslatePage(original_lang, target_lang, std::string()); 259 translate_helper_->TranslatePage(original_lang, target_lang, std::string());
259 // While this is running call again TranslatePage to make sure noting bad 260 // While this is running call again TranslatePage to make sure noting bad
260 // happens. 261 // happens.
261 translate_helper_->TranslatePage(original_lang, target_lang, std::string()); 262 translate_helper_->TranslatePage(original_lang, target_lang, std::string());
262 base::MessageLoop::current()->RunUntilIdle(); 263 base::MessageLoop::current()->RunUntilIdle();
263 264
264 std::string received_original_lang; 265 std::string received_original_lang;
265 std::string received_target_lang; 266 std::string received_target_lang;
266 TranslateErrors::Type error; 267 translate::TranslateErrors::Type error;
267 ASSERT_TRUE(GetPageTranslatedMessage(&received_original_lang, 268 ASSERT_TRUE(GetPageTranslatedMessage(&received_original_lang,
268 &received_target_lang, 269 &received_target_lang,
269 &error)); 270 &error));
270 EXPECT_EQ(original_lang, received_original_lang); 271 EXPECT_EQ(original_lang, received_original_lang);
271 EXPECT_EQ(target_lang, received_target_lang); 272 EXPECT_EQ(target_lang, received_target_lang);
272 EXPECT_EQ(TranslateErrors::NONE, error); 273 EXPECT_EQ(translate::TranslateErrors::NONE, error);
273 } 274 }
274 275
275 // Tests that starting a translation while a different one is pending works. 276 // Tests that starting a translation while a different one is pending works.
276 TEST_F(TranslateHelperBrowserTest, MultipleDifferentTranslations) { 277 TEST_F(TranslateHelperBrowserTest, MultipleDifferentTranslations) {
277 EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable()) 278 EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable())
278 .Times(AtLeast(1)) 279 .Times(AtLeast(1))
279 .WillRepeatedly(Return(true)); 280 .WillRepeatedly(Return(true));
280 EXPECT_CALL(*translate_helper_, IsTranslateLibReady()) 281 EXPECT_CALL(*translate_helper_, IsTranslateLibReady())
281 .WillRepeatedly(Return(true)); 282 .WillRepeatedly(Return(true));
282 EXPECT_CALL(*translate_helper_, StartTranslation()) 283 EXPECT_CALL(*translate_helper_, StartTranslation())
(...skipping 11 matching lines...) Expand all
294 std::string target_lang("fr"); 295 std::string target_lang("fr");
295 translate_helper_->TranslatePage(original_lang, target_lang, std::string()); 296 translate_helper_->TranslatePage(original_lang, target_lang, std::string());
296 // While this is running call again TranslatePage with a new target lang. 297 // While this is running call again TranslatePage with a new target lang.
297 std::string new_target_lang("de"); 298 std::string new_target_lang("de");
298 translate_helper_->TranslatePage( 299 translate_helper_->TranslatePage(
299 original_lang, new_target_lang, std::string()); 300 original_lang, new_target_lang, std::string());
300 base::MessageLoop::current()->RunUntilIdle(); 301 base::MessageLoop::current()->RunUntilIdle();
301 302
302 std::string received_original_lang; 303 std::string received_original_lang;
303 std::string received_target_lang; 304 std::string received_target_lang;
304 TranslateErrors::Type error; 305 translate::TranslateErrors::Type error;
305 ASSERT_TRUE(GetPageTranslatedMessage(&received_original_lang, 306 ASSERT_TRUE(GetPageTranslatedMessage(&received_original_lang,
306 &received_target_lang, 307 &received_target_lang,
307 &error)); 308 &error));
308 EXPECT_EQ(original_lang, received_original_lang); 309 EXPECT_EQ(original_lang, received_original_lang);
309 EXPECT_EQ(new_target_lang, received_target_lang); 310 EXPECT_EQ(new_target_lang, received_target_lang);
310 EXPECT_EQ(TranslateErrors::NONE, error); 311 EXPECT_EQ(translate::TranslateErrors::NONE, error);
311 } 312 }
312 313
313 // Tests that we send the right translate language message for a page and that 314 // Tests that we send the right translate language message for a page and that
314 // we respect the "no translate" meta-tag. 315 // we respect the "no translate" meta-tag.
315 TEST_F(ChromeRenderViewTest, TranslatablePage) { 316 TEST_F(ChromeRenderViewTest, TranslatablePage) {
316 // Suppress the normal delay that occurs when the page is loaded before which 317 // Suppress the normal delay that occurs when the page is loaded before which
317 // the renderer sends the page contents to the browser. 318 // the renderer sends the page contents to the browser.
318 SendContentStateImmediately(); 319 SendContentStateImmediately();
319 320
320 LoadHTML("<html><body>A random page with random content.</body></html>"); 321 LoadHTML("<html><body>A random page with random content.</body></html>");
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 448
448 GoBack(back_state); 449 GoBack(back_state);
449 450
450 message = render_thread_->sink().GetUniqueMessageMatching( 451 message = render_thread_->sink().GetUniqueMessageMatching(
451 ChromeViewHostMsg_TranslateLanguageDetermined::ID); 452 ChromeViewHostMsg_TranslateLanguageDetermined::ID);
452 ASSERT_NE(static_cast<IPC::Message*>(NULL), message); 453 ASSERT_NE(static_cast<IPC::Message*>(NULL), message);
453 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params); 454 ChromeViewHostMsg_TranslateLanguageDetermined::Read(message, &params);
454 EXPECT_EQ("zh", params.a.adopted_language); 455 EXPECT_EQ("zh", params.a.adopted_language);
455 render_thread_->sink().ClearMessages(); 456 render_thread_->sink().ClearMessages();
456 } 457 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698