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

Side by Side Diff: components/translate/core/browser/translate_manager_unittest.cc

Issue 2736853004: Revert "[Translate] Add translate ranker model loader." (Closed)
Patch Set: merge Created 3 years, 9 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "components/translate/core/browser/translate_manager.h" 5 #include "components/translate/core/browser/translate_manager.h"
6 6
7 #include "base/json/json_reader.h" 7 #include "base/json/json_reader.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "base/test/histogram_tester.h" 10 #include "base/test/histogram_tester.h"
11 #include "base/test/scoped_feature_list.h" 11 #include "base/test/scoped_feature_list.h"
12 #include "build/build_config.h" 12 #include "build/build_config.h"
13 #include "components/infobars/core/infobar.h" 13 #include "components/infobars/core/infobar.h"
14 #include "components/pref_registry/pref_registry_syncable.h" 14 #include "components/pref_registry/pref_registry_syncable.h"
15 #include "components/sync_preferences/testing_pref_service_syncable.h" 15 #include "components/sync_preferences/testing_pref_service_syncable.h"
16 #include "components/translate/core/browser/mock_translate_driver.h" 16 #include "components/translate/core/browser/mock_translate_driver.h"
17 #include "components/translate/core/browser/mock_translate_ranker.h"
18 #include "components/translate/core/browser/translate_browser_metrics.h" 17 #include "components/translate/core/browser/translate_browser_metrics.h"
19 #include "components/translate/core/browser/translate_client.h" 18 #include "components/translate/core/browser/translate_client.h"
20 #include "components/translate/core/browser/translate_download_manager.h" 19 #include "components/translate/core/browser/translate_download_manager.h"
21 #include "components/translate/core/browser/translate_prefs.h" 20 #include "components/translate/core/browser/translate_prefs.h"
22 #include "components/translate/core/common/translate_pref_names.h" 21 #include "components/translate/core/common/translate_pref_names.h"
23 #include "components/variations/variations_associated_data.h" 22 #include "components/variations/variations_associated_data.h"
24 #include "net/base/network_change_notifier.h" 23 #include "net/base/network_change_notifier.h"
25 #include "testing/gmock/include/gmock/gmock.h" 24 #include "testing/gmock/include/gmock/gmock.h"
26 #include "testing/gtest/include/gtest/gtest.h" 25 #include "testing/gtest/include/gtest/gtest.h"
27 26
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 157
159 void TearDown() override { 158 void TearDown() override {
160 manager_->ResetForTesting(); 159 manager_->ResetForTesting();
161 variations::testing::ClearAllVariationParams(); 160 variations::testing::ClearAllVariationParams();
162 } 161 }
163 162
164 // Utility function to prepare translate_manager_ for testing. 163 // Utility function to prepare translate_manager_ for testing.
165 void PrepareTranslateManager() { 164 void PrepareTranslateManager() {
166 TranslateManager::SetIgnoreMissingKeyForTesting(true); 165 TranslateManager::SetIgnoreMissingKeyForTesting(true);
167 translate_manager_.reset(new translate::TranslateManager( 166 translate_manager_.reset(new translate::TranslateManager(
168 &mock_translate_client_, &mock_translate_ranker_, kAcceptLanguages)); 167 &mock_translate_client_, kAcceptLanguages));
169 } 168 }
170 169
171 // Prepare the test for ULP related tests. 170 // Prepare the test for ULP related tests.
172 // Put the ulp json into profile. 171 // Put the ulp json into profile.
173 void PrepareULPTest(const char* ulp_json, bool turn_on_feature) { 172 void PrepareULPTest(const char* ulp_json, bool turn_on_feature) {
174 PrepareTranslateManager(); 173 PrepareTranslateManager();
175 std::unique_ptr<base::Value> profile(CreateProfileFromJSON(ulp_json)); 174 std::unique_ptr<base::Value> profile(CreateProfileFromJSON(ulp_json));
176 prefs_.SetUserPref(TranslatePrefs::kPrefLanguageProfile, profile.release()); 175 prefs_.SetUserPref(TranslatePrefs::kPrefLanguageProfile, profile.release());
177 if (turn_on_feature) 176 if (turn_on_feature)
178 TurnOnTranslateByULP(); 177 TurnOnTranslateByULP();
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 } 223 }
225 224
226 sync_preferences::TestingPrefServiceSyncable prefs_; 225 sync_preferences::TestingPrefServiceSyncable prefs_;
227 226
228 // TODO(groby): request TranslatePrefs from |mock_translate_client_| instead. 227 // TODO(groby): request TranslatePrefs from |mock_translate_client_| instead.
229 TranslatePrefs translate_prefs_; 228 TranslatePrefs translate_prefs_;
230 TranslateDownloadManager* manager_; 229 TranslateDownloadManager* manager_;
231 230
232 TestNetworkChangeNotifier network_notifier_; 231 TestNetworkChangeNotifier network_notifier_;
233 translate::testing::MockTranslateDriver driver_; 232 translate::testing::MockTranslateDriver driver_;
234 translate::testing::MockTranslateRanker mock_translate_ranker_;
235 ::testing::NiceMock<MockTranslateClient> mock_translate_client_; 233 ::testing::NiceMock<MockTranslateClient> mock_translate_client_;
236 std::unique_ptr<TranslateManager> translate_manager_; 234 std::unique_ptr<TranslateManager> translate_manager_;
237 std::unique_ptr<base::FieldTrialList> field_trial_list_; 235 std::unique_ptr<base::FieldTrialList> field_trial_list_;
238 base::test::ScopedFeatureList scoped_feature_list_; 236 base::test::ScopedFeatureList scoped_feature_list_;
239 }; 237 };
240 238
241 239
242 // Target language comes from application locale if the locale's language 240 // Target language comes from application locale if the locale's language
243 // is supported. 241 // is supported.
244 TEST_F(TranslateManagerTest, GetTargetLanguageDefaultsToAppLocale) { 242 TEST_F(TranslateManagerTest, GetTargetLanguageDefaultsToAppLocale) {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 // First supported language is the fallback language. 274 // First supported language is the fallback language.
277 ASSERT_TRUE(TranslateDownloadManager::IsSupportedLanguage("en")); 275 ASSERT_TRUE(TranslateDownloadManager::IsSupportedLanguage("en"));
278 accept_language_list.push_back("en"); 276 accept_language_list.push_back("en");
279 translate_prefs_.UpdateLanguageList(accept_language_list); 277 translate_prefs_.UpdateLanguageList(accept_language_list);
280 EXPECT_EQ("en", TranslateManager::GetTargetLanguage(&translate_prefs_)); 278 EXPECT_EQ("en", TranslateManager::GetTargetLanguage(&translate_prefs_));
281 } 279 }
282 280
283 TEST_F(TranslateManagerTest, DontTranslateOffline) { 281 TEST_F(TranslateManagerTest, DontTranslateOffline) {
284 TranslateManager::SetIgnoreMissingKeyForTesting(true); 282 TranslateManager::SetIgnoreMissingKeyForTesting(true);
285 translate_manager_.reset(new translate::TranslateManager( 283 translate_manager_.reset(new translate::TranslateManager(
286 &mock_translate_client_, &mock_translate_ranker_, kAcceptLanguages)); 284 &mock_translate_client_, kAcceptLanguages));
287 285
288 // The test measures that the "Translate was disabled" exit can only be 286 // The test measures that the "Translate was disabled" exit can only be
289 // reached after the early-out tests including IsOffline() passed. 287 // reached after the early-out tests including IsOffline() passed.
290 const char kMetricName[] = "Translate.InitiationStatus.v2"; 288 const char kMetricName[] = "Translate.InitiationStatus.v2";
291 base::HistogramTester histogram_tester; 289 base::HistogramTester histogram_tester;
292 290
293 prefs_.SetBoolean(prefs::kEnableTranslate, false); 291 prefs_.SetBoolean(prefs::kEnableTranslate, false);
294 292
295 translate_manager_->GetLanguageState().LanguageDetermined("de", true); 293 translate_manager_->GetLanguageState().LanguageDetermined("de", true);
296 294
(...skipping 11 matching lines...) Expand all
308 translate::TranslateBrowserMetrics::INITIATION_STATUS_DISABLED_BY_PREFS, 306 translate::TranslateBrowserMetrics::INITIATION_STATUS_DISABLED_BY_PREFS,
309 1); 307 1);
310 } 308 }
311 309
312 // The test measures that Translate is not triggered for a zh-TW page for a 310 // The test measures that Translate is not triggered for a zh-TW page for a
313 // zh-CN user. 311 // zh-CN user.
314 TEST_F(TranslateManagerTest, 312 TEST_F(TranslateManagerTest,
315 DontTranslateZhTraditionalPageForZhSimplifiedLocale) { 313 DontTranslateZhTraditionalPageForZhSimplifiedLocale) {
316 TranslateManager::SetIgnoreMissingKeyForTesting(true); 314 TranslateManager::SetIgnoreMissingKeyForTesting(true);
317 translate_manager_.reset(new translate::TranslateManager( 315 translate_manager_.reset(new translate::TranslateManager(
318 &mock_translate_client_, &mock_translate_ranker_, kAcceptLanguages)); 316 &mock_translate_client_, kAcceptLanguages));
319 317
320 const char kMetricName[] = "Translate.InitiationStatus.v2"; 318 const char kMetricName[] = "Translate.InitiationStatus.v2";
321 base::HistogramTester histogram_tester; 319 base::HistogramTester histogram_tester;
322 320
323 const std::string locale = "zh-TW"; 321 const std::string locale = "zh-TW";
324 const std::string page_lang = "zh-CN"; 322 const std::string page_lang = "zh-CN";
325 323
326 network_notifier_.SimulateOnline(); 324 network_notifier_.SimulateOnline();
327 manager_->set_application_locale(locale); 325 manager_->set_application_locale(locale);
328 ON_CALL(mock_translate_client_, IsTranslatableURL(_)) 326 ON_CALL(mock_translate_client_, IsTranslatableURL(_))
329 .WillByDefault(Return(true)); 327 .WillByDefault(Return(true));
330 328
331 EXPECT_EQ("zh-TW", translate_manager_->GetTargetLanguage(&translate_prefs_)); 329 EXPECT_EQ("zh-TW", translate_manager_->GetTargetLanguage(&translate_prefs_));
332 translate_manager_->GetLanguageState().LanguageDetermined(page_lang, true); 330 translate_manager_->GetLanguageState().LanguageDetermined(page_lang, true);
333 translate_manager_->InitiateTranslation(page_lang); 331 translate_manager_->InitiateTranslation(page_lang);
334 332
335 histogram_tester.ExpectUniqueSample( 333 histogram_tester.ExpectUniqueSample(
336 kMetricName, 334 kMetricName,
337 translate::TranslateBrowserMetrics::INITIATION_STATUS_SIMILAR_LANGUAGES, 335 translate::TranslateBrowserMetrics::INITIATION_STATUS_SIMILAR_LANGUAGES,
338 1); 336 1);
339 } 337 }
340 338
341 // The test measures that Translate is not triggered for a zh-CN page for a 339 // The test measures that Translate is not triggered for a zh-CN page for a
342 // zh-TW user. 340 // zh-TW user.
343 TEST_F(TranslateManagerTest, 341 TEST_F(TranslateManagerTest,
344 DontTranslateZhSimplifiedPageForZhTraditionalLocale) { 342 DontTranslateZhSimplifiedPageForZhTraditionalLocale) {
345 TranslateManager::SetIgnoreMissingKeyForTesting(true); 343 TranslateManager::SetIgnoreMissingKeyForTesting(true);
346 translate_manager_.reset(new translate::TranslateManager( 344 translate_manager_.reset(new translate::TranslateManager(
347 &mock_translate_client_, &mock_translate_ranker_, kAcceptLanguages)); 345 &mock_translate_client_, kAcceptLanguages));
348 346
349 const char kMetricName[] = "Translate.InitiationStatus.v2"; 347 const char kMetricName[] = "Translate.InitiationStatus.v2";
350 base::HistogramTester histogram_tester; 348 base::HistogramTester histogram_tester;
351 349
352 const std::string locale = "zh-CN"; 350 const std::string locale = "zh-CN";
353 const std::string page_lang = "zh-TW"; 351 const std::string page_lang = "zh-TW";
354 352
355 network_notifier_.SimulateOnline(); 353 network_notifier_.SimulateOnline();
356 manager_->set_application_locale(locale); 354 manager_->set_application_locale(locale);
357 ON_CALL(mock_translate_client_, IsTranslatableURL(_)) 355 ON_CALL(mock_translate_client_, IsTranslatableURL(_))
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 // 0.79 and lower than 0.8 and the probability threshold is lower than both 503 // 0.79 and lower than 0.8 and the probability threshold is lower than both
506 // the one with "fr" (0.6) and "pt-PT" (0.4). 504 // the one with "fr" (0.6) and "pt-PT" (0.4).
507 EXPECT_TRUE(CallLanguageInULP("fr")); 505 EXPECT_TRUE(CallLanguageInULP("fr"));
508 EXPECT_TRUE(CallLanguageInULP("pt")); 506 EXPECT_TRUE(CallLanguageInULP("pt"));
509 EXPECT_FALSE(CallLanguageInULP("zh-TW")); 507 EXPECT_FALSE(CallLanguageInULP("zh-TW"));
510 } 508 }
511 509
512 } // namespace testing 510 } // namespace testing
513 511
514 } // namespace translate 512 } // namespace translate
OLDNEW
« no previous file with comments | « components/translate/core/browser/translate_manager.cc ('k') | components/translate/core/browser/translate_ranker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698