OLD | NEW |
---|---|
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 Loading... | |
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&)); |
121 | 122 |
122 private: | 123 private: |
123 void OnPageTranslated(bool cancelled, | 124 void OnPageTranslated(bool cancelled, |
124 const std::string& original_lang, | 125 const std::string& original_lang, |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
177 // library. | 178 // library. |
178 EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable()) | 179 EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable()) |
179 .Times(AtLeast(1)) | 180 .Times(AtLeast(1)) |
180 .WillRepeatedly(Return(true)); | 181 .WillRepeatedly(Return(true)); |
181 | 182 |
182 EXPECT_CALL(*translate_helper_, IsTranslateLibReady()) | 183 EXPECT_CALL(*translate_helper_, IsTranslateLibReady()) |
183 .Times(AtLeast(5)) // See kMaxTranslateInitCheckAttempts in | 184 .Times(AtLeast(5)) // See kMaxTranslateInitCheckAttempts in |
184 // translate_helper.cc | 185 // translate_helper.cc |
185 .WillRepeatedly(Return(false)); | 186 .WillRepeatedly(Return(false)); |
186 | 187 |
188 EXPECT_CALL(*translate_helper_, GetErrorCode()) | |
189 .Times(AtLeast(5)) | |
190 .WillRepeatedly(Return(0)); | |
191 | |
187 translate_helper_->TranslatePage("en", "fr", std::string()); | 192 translate_helper_->TranslatePage("en", "fr", std::string()); |
188 base::RunLoop().RunUntilIdle(); | 193 base::RunLoop().RunUntilIdle(); |
189 | 194 |
190 translate::TranslateErrors::Type error; | 195 translate::TranslateErrors::Type error; |
191 ASSERT_TRUE(translate_helper_->GetPageTranslatedResult(NULL, NULL, &error)); | 196 ASSERT_TRUE(translate_helper_->GetPageTranslatedResult(NULL, NULL, &error)); |
192 EXPECT_EQ(translate::TranslateErrors::INITIALIZATION_ERROR, error); | 197 EXPECT_EQ(translate::TranslateErrors::TRANSLATION_TIMEOUT, error); |
193 } | 198 } |
194 | 199 |
195 // Tests that the browser gets notified of the translation success when the | 200 // Tests that the browser gets notified of the translation success when the |
196 // translation succeeds. | 201 // translation succeeds. |
197 TEST_F(TranslateHelperBrowserTest, TranslateSuccess) { | 202 TEST_F(TranslateHelperBrowserTest, TranslateSuccess) { |
198 // We make IsTranslateLibAvailable true so we don't attempt to inject the | 203 // We make IsTranslateLibAvailable true so we don't attempt to inject the |
199 // library. | 204 // library. |
200 EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable()) | 205 EXPECT_CALL(*translate_helper_, IsTranslateLibAvailable()) |
201 .Times(AtLeast(1)) | 206 .Times(AtLeast(1)) |
202 .WillRepeatedly(Return(true)); | 207 .WillRepeatedly(Return(true)); |
203 | 208 |
204 EXPECT_CALL(*translate_helper_, IsTranslateLibReady()) | 209 EXPECT_CALL(*translate_helper_, IsTranslateLibReady()) |
205 .WillOnce(Return(false)) | 210 .WillOnce(Return(false)) |
206 .WillOnce(Return(true)); | 211 .WillOnce(Return(true)); |
207 | 212 |
213 EXPECT_CALL(*translate_helper_, GetErrorCode()).WillOnce(Return(0)); | |
214 | |
208 EXPECT_CALL(*translate_helper_, StartTranslation()).WillOnce(Return(true)); | 215 EXPECT_CALL(*translate_helper_, StartTranslation()).WillOnce(Return(true)); |
209 | 216 |
210 // Succeed after few checks. | 217 // Succeed after few checks. |
211 EXPECT_CALL(*translate_helper_, HasTranslationFailed()) | 218 EXPECT_CALL(*translate_helper_, HasTranslationFailed()) |
212 .WillRepeatedly(Return(false)); | 219 .WillRepeatedly(Return(false)); |
213 EXPECT_CALL(*translate_helper_, HasTranslationFinished()) | 220 EXPECT_CALL(*translate_helper_, HasTranslationFinished()) |
214 .WillOnce(Return(false)) | 221 .WillOnce(Return(false)) |
215 .WillOnce(Return(false)) | 222 .WillOnce(Return(false)) |
216 .WillOnce(Return(true)); | 223 .WillOnce(Return(true)); |
217 | 224 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
252 EXPECT_CALL(*translate_helper_, HasTranslationFailed()) | 259 EXPECT_CALL(*translate_helper_, HasTranslationFailed()) |
253 .WillOnce(Return(false)) | 260 .WillOnce(Return(false)) |
254 .WillOnce(Return(false)) | 261 .WillOnce(Return(false)) |
255 .WillOnce(Return(false)) | 262 .WillOnce(Return(false)) |
256 .WillOnce(Return(true)); | 263 .WillOnce(Return(true)); |
257 | 264 |
258 EXPECT_CALL(*translate_helper_, HasTranslationFinished()) | 265 EXPECT_CALL(*translate_helper_, HasTranslationFinished()) |
259 .Times(AtLeast(1)) | 266 .Times(AtLeast(1)) |
260 .WillRepeatedly(Return(false)); | 267 .WillRepeatedly(Return(false)); |
261 | 268 |
269 EXPECT_CALL(*translate_helper_, GetErrorCode()) | |
270 .WillOnce(Return(6)); // TRANSLATION_ERROR = 6 | |
Takashi Toyoshima
2017/06/29 11:59:15
why don't you use translate::TranslationErrors::TR
| |
271 | |
262 // V8 call for performance monitoring should be ignored. | 272 // V8 call for performance monitoring should be ignored. |
263 EXPECT_CALL(*translate_helper_, | 273 EXPECT_CALL(*translate_helper_, |
264 ExecuteScriptAndGetDoubleResult(_)).Times(2); | 274 ExecuteScriptAndGetDoubleResult(_)).Times(2); |
265 | 275 |
266 translate_helper_->TranslatePage("en", "fr", std::string()); | 276 translate_helper_->TranslatePage("en", "fr", std::string()); |
267 base::RunLoop().RunUntilIdle(); | 277 base::RunLoop().RunUntilIdle(); |
268 | 278 |
269 translate::TranslateErrors::Type error; | 279 translate::TranslateErrors::Type error; |
270 ASSERT_TRUE(translate_helper_->GetPageTranslatedResult(NULL, NULL, &error)); | 280 ASSERT_TRUE(translate_helper_->GetPageTranslatedResult(NULL, NULL, &error)); |
271 EXPECT_EQ(translate::TranslateErrors::TRANSLATION_ERROR, error); | 281 EXPECT_EQ(translate::TranslateErrors::TRANSLATION_ERROR, error); |
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
498 | 508 |
499 GoBack(GURL("data:text/html;charset=utf-8,<html><head>" | 509 GoBack(GURL("data:text/html;charset=utf-8,<html><head>" |
500 "<meta http-equiv=\"content-language\" content=\"zh\">" | 510 "<meta http-equiv=\"content-language\" content=\"zh\">" |
501 "</head><body>This page is in Chinese.</body></html>"), | 511 "</head><body>This page is in Chinese.</body></html>"), |
502 back_state); | 512 back_state); |
503 | 513 |
504 base::RunLoop().RunUntilIdle(); | 514 base::RunLoop().RunUntilIdle(); |
505 ASSERT_TRUE(fake_translate_driver_.called_new_page_); | 515 ASSERT_TRUE(fake_translate_driver_.called_new_page_); |
506 EXPECT_EQ("zh", fake_translate_driver_.details_->adopted_language); | 516 EXPECT_EQ("zh", fake_translate_driver_.details_->adopted_language); |
507 } | 517 } |
OLD | NEW |