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

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

Issue 2919343007: Check |errorCode| of translate.js and notify to Browser (Closed)
Patch Set: Addressed review comment. Proper order of enum variables in switch case. Created 3 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 <tuple> 5 #include <tuple>
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "base/time/time.h" 9 #include "base/time/time.h"
10 #include "chrome/common/chrome_isolated_world_ids.h" 10 #include "chrome/common/chrome_isolated_world_ids.h"
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 if (error) 105 if (error)
106 *error = trans_result_error_type_; 106 *error = trans_result_error_type_;
107 return true; 107 return true;
108 } 108 }
109 109
110 MOCK_METHOD0(IsTranslateLibAvailable, bool()); 110 MOCK_METHOD0(IsTranslateLibAvailable, bool());
111 MOCK_METHOD0(IsTranslateLibReady, bool()); 111 MOCK_METHOD0(IsTranslateLibReady, bool());
112 MOCK_METHOD0(HasTranslationFinished, bool()); 112 MOCK_METHOD0(HasTranslationFinished, bool());
113 MOCK_METHOD0(HasTranslationFailed, bool()); 113 MOCK_METHOD0(HasTranslationFailed, bool());
114 MOCK_METHOD0(GetOriginalPageLanguage, std::string()); 114 MOCK_METHOD0(GetOriginalPageLanguage, std::string());
115 MOCK_METHOD0(GetErrorCode, int64_t());
115 MOCK_METHOD0(StartTranslation, bool()); 116 MOCK_METHOD0(StartTranslation, bool());
116 MOCK_METHOD1(ExecuteScript, void(const std::string&)); 117 MOCK_METHOD1(ExecuteScript, void(const std::string&));
117 MOCK_METHOD2(ExecuteScriptAndGetBoolResult, bool(const std::string&, bool)); 118 MOCK_METHOD2(ExecuteScriptAndGetBoolResult, bool(const std::string&, bool));
118 MOCK_METHOD1(ExecuteScriptAndGetStringResult, 119 MOCK_METHOD1(ExecuteScriptAndGetStringResult,
119 std::string(const std::string&)); 120 std::string(const std::string&));
120 MOCK_METHOD1(ExecuteScriptAndGetDoubleResult, double(const std::string&)); 121 MOCK_METHOD1(ExecuteScriptAndGetDoubleResult, double(const std::string&));
122 MOCK_METHOD1(ExecuteScriptAndGetIntegerResult, int64_t(const std::string&));
121 123
122 private: 124 private:
123 void OnPageTranslated(bool cancelled, 125 void OnPageTranslated(bool cancelled,
124 const std::string& original_lang, 126 const std::string& original_lang,
125 const std::string& translated_lang, 127 const std::string& translated_lang,
126 translate::TranslateErrors::Type error_type) { 128 translate::TranslateErrors::Type error_type) {
127 page_translated_ = true; 129 page_translated_ = true;
128 trans_result_cancelled_ = cancelled; 130 trans_result_cancelled_ = cancelled;
129 trans_result_original_lang_ = original_lang; 131 trans_result_original_lang_ = original_lang;
130 trans_result_translated_lang_ = translated_lang; 132 trans_result_translated_lang_ = translated_lang;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 // library. 179 // library.
178 EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable()) 180 EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable())
179 .Times(AtLeast(1)) 181 .Times(AtLeast(1))
180 .WillRepeatedly(Return(true)); 182 .WillRepeatedly(Return(true));
181 183
182 EXPECT_CALL(*translate_helper_, IsTranslateLibReady()) 184 EXPECT_CALL(*translate_helper_, IsTranslateLibReady())
183 .Times(AtLeast(5)) // See kMaxTranslateInitCheckAttempts in 185 .Times(AtLeast(5)) // See kMaxTranslateInitCheckAttempts in
184 // translate_helper.cc 186 // translate_helper.cc
185 .WillRepeatedly(Return(false)); 187 .WillRepeatedly(Return(false));
186 188
189 EXPECT_CALL(*translate_helper_, GetErrorCode())
190 .Times(AtLeast(5))
191 .WillRepeatedly(Return(translate::TranslateErrors::NONE));
192
187 translate_helper_->TranslatePage("en", "fr", std::string()); 193 translate_helper_->TranslatePage("en", "fr", std::string());
188 base::RunLoop().RunUntilIdle(); 194 base::RunLoop().RunUntilIdle();
189 195
190 translate::TranslateErrors::Type error; 196 translate::TranslateErrors::Type error;
191 ASSERT_TRUE(translate_helper_->GetPageTranslatedResult(NULL, NULL, &error)); 197 ASSERT_TRUE(translate_helper_->GetPageTranslatedResult(NULL, NULL, &error));
192 EXPECT_EQ(translate::TranslateErrors::INITIALIZATION_ERROR, error); 198 EXPECT_EQ(translate::TranslateErrors::TRANSLATION_TIMEOUT, error);
193 } 199 }
194 200
195 // Tests that the browser gets notified of the translation success when the 201 // Tests that the browser gets notified of the translation success when the
196 // translation succeeds. 202 // translation succeeds.
197 TEST_F(TranslateHelperBrowserTest, TranslateSuccess) { 203 TEST_F(TranslateHelperBrowserTest, TranslateSuccess) {
198 // We make IsTranslateLibAvailable true so we don't attempt to inject the 204 // We make IsTranslateLibAvailable true so we don't attempt to inject the
199 // library. 205 // library.
200 EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable()) 206 EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable())
201 .Times(AtLeast(1)) 207 .Times(AtLeast(1))
202 .WillRepeatedly(Return(true)); 208 .WillRepeatedly(Return(true));
203 209
204 EXPECT_CALL(*translate_helper_, IsTranslateLibReady()) 210 EXPECT_CALL(*translate_helper_, IsTranslateLibReady())
205 .WillOnce(Return(false)) 211 .WillOnce(Return(false))
206 .WillOnce(Return(true)); 212 .WillOnce(Return(true));
207 213
214 EXPECT_CALL(*translate_helper_, GetErrorCode())
215 .WillOnce(Return(translate::TranslateErrors::NONE));
216
208 EXPECT_CALL(*translate_helper_, StartTranslation()).WillOnce(Return(true)); 217 EXPECT_CALL(*translate_helper_, StartTranslation()).WillOnce(Return(true));
209 218
210 // Succeed after few checks. 219 // Succeed after few checks.
211 EXPECT_CALL(*translate_helper_, HasTranslationFailed()) 220 EXPECT_CALL(*translate_helper_, HasTranslationFailed())
212 .WillRepeatedly(Return(false)); 221 .WillRepeatedly(Return(false));
213 EXPECT_CALL(*translate_helper_, HasTranslationFinished()) 222 EXPECT_CALL(*translate_helper_, HasTranslationFinished())
214 .WillOnce(Return(false)) 223 .WillOnce(Return(false))
215 .WillOnce(Return(false)) 224 .WillOnce(Return(false))
216 .WillOnce(Return(true)); 225 .WillOnce(Return(true));
217 226
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 EXPECT_CALL(*translate_helper_, HasTranslationFailed()) 261 EXPECT_CALL(*translate_helper_, HasTranslationFailed())
253 .WillOnce(Return(false)) 262 .WillOnce(Return(false))
254 .WillOnce(Return(false)) 263 .WillOnce(Return(false))
255 .WillOnce(Return(false)) 264 .WillOnce(Return(false))
256 .WillOnce(Return(true)); 265 .WillOnce(Return(true));
257 266
258 EXPECT_CALL(*translate_helper_, HasTranslationFinished()) 267 EXPECT_CALL(*translate_helper_, HasTranslationFinished())
259 .Times(AtLeast(1)) 268 .Times(AtLeast(1))
260 .WillRepeatedly(Return(false)); 269 .WillRepeatedly(Return(false));
261 270
271 EXPECT_CALL(*translate_helper_, GetErrorCode())
272 .WillOnce(Return(translate::TranslateErrors::TRANSLATION_ERROR));
273
262 // V8 call for performance monitoring should be ignored. 274 // V8 call for performance monitoring should be ignored.
263 EXPECT_CALL(*translate_helper_, 275 EXPECT_CALL(*translate_helper_,
264 ExecuteScriptAndGetDoubleResult(_)).Times(2); 276 ExecuteScriptAndGetDoubleResult(_)).Times(2);
265 277
266 translate_helper_->TranslatePage("en", "fr", std::string()); 278 translate_helper_->TranslatePage("en", "fr", std::string());
267 base::RunLoop().RunUntilIdle(); 279 base::RunLoop().RunUntilIdle();
268 280
269 translate::TranslateErrors::Type error; 281 translate::TranslateErrors::Type error;
270 ASSERT_TRUE(translate_helper_->GetPageTranslatedResult(NULL, NULL, &error)); 282 ASSERT_TRUE(translate_helper_->GetPageTranslatedResult(NULL, NULL, &error));
271 EXPECT_EQ(translate::TranslateErrors::TRANSLATION_ERROR, error); 283 EXPECT_EQ(translate::TranslateErrors::TRANSLATION_ERROR, error);
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 510
499 GoBack(GURL("data:text/html;charset=utf-8,<html><head>" 511 GoBack(GURL("data:text/html;charset=utf-8,<html><head>"
500 "<meta http-equiv=\"content-language\" content=\"zh\">" 512 "<meta http-equiv=\"content-language\" content=\"zh\">"
501 "</head><body>This page is in Chinese.</body></html>"), 513 "</head><body>This page is in Chinese.</body></html>"),
502 back_state); 514 back_state);
503 515
504 base::RunLoop().RunUntilIdle(); 516 base::RunLoop().RunUntilIdle();
505 ASSERT_TRUE(fake_translate_driver_.called_new_page_); 517 ASSERT_TRUE(fake_translate_driver_.called_new_page_);
506 EXPECT_EQ("zh", fake_translate_driver_.details_->adopted_language); 518 EXPECT_EQ("zh", fake_translate_driver_.details_->adopted_language);
507 } 519 }
OLDNEW
« no previous file with comments | « chrome/browser/translate/translate_manager_browsertest.cc ('k') | components/translate/content/renderer/translate_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698