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

Unified Diff: components/translate/core/browser/translate_manager_unittest.cc

Issue 2697703004: Allow TranslateRanker to override decisions taken by heuristics. (Closed)
Patch Set: Remove unused include. Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: components/translate/core/browser/translate_manager_unittest.cc
diff --git a/components/translate/core/browser/translate_manager_unittest.cc b/components/translate/core/browser/translate_manager_unittest.cc
index 7c4af1c1251c22ab14444273fb2e4d32e024bf44..c62846d7527290df48e7269d9acfa16a325e4ad2 100644
--- a/components/translate/core/browser/translate_manager_unittest.cc
+++ b/components/translate/core/browser/translate_manager_unittest.cc
@@ -11,6 +11,7 @@
#include "base/test/scoped_feature_list.h"
#include "build/build_config.h"
#include "components/infobars/core/infobar.h"
+#include "components/metrics/proto/translate_event.pb.h"
#include "components/pref_registry/pref_registry_syncable.h"
#include "components/sync_preferences/testing_pref_service_syncable.h"
#include "components/translate/core/browser/mock_translate_driver.h"
@@ -509,6 +510,97 @@ TEST_F(TranslateManagerTest,
EXPECT_FALSE(CallLanguageInULP("zh-TW"));
}
+TEST_F(TranslateManagerTest, TestRecordTranslateEvent) {
+ PrepareTranslateManager();
+ const std::string locale = "zh-TW";
+ const std::string page_lang = "zh-CN";
+
+ network_notifier_.SimulateOnline();
+ manager_->set_application_locale(locale);
+ ON_CALL(mock_translate_client_, IsTranslatableURL(_))
+ .WillByDefault(Return(true));
+ translate_manager_->GetLanguageState().LanguageDetermined(page_lang, true);
+
+ translate_manager_->InitiateTranslation(page_lang);
+
+ std::vector<metrics::TranslateEventProto> events_cache;
+ mock_translate_ranker_.FlushTranslateEvents(&events_cache);
+ EXPECT_EQ(0U, events_cache.size());
+
+ translate_manager_->RecordTranslateEvent(
+ metrics::TranslateEventProto::USER_ACCEPT);
+ mock_translate_ranker_.FlushTranslateEvents(&events_cache);
+ EXPECT_EQ(1U, events_cache.size());
+ const metrics::TranslateEventProto& tep = events_cache[0];
+ EXPECT_EQ(page_lang, tep.source_language());
+ EXPECT_EQ(locale, tep.target_language());
+ EXPECT_EQ(0L, tep.decision_overrides_size());
+ EXPECT_EQ(metrics::TranslateEventProto::USER_ACCEPT, tep.event_type());
+}
+
+TEST_F(TranslateManagerTest, TestShouldOverrideDecisionTrue) {
+ mock_translate_ranker_.set_is_decision_override_enabled(true);
+ PrepareTranslateManager();
+ const std::string locale = "zh-TW";
+ const std::string page_lang = "zh-CN";
+
+ network_notifier_.SimulateOnline();
+ manager_->set_application_locale(locale);
+ ON_CALL(mock_translate_client_, IsTranslatableURL(_))
+ .WillByDefault(Return(true));
+ translate_manager_->GetLanguageState().LanguageDetermined(page_lang, true);
+
+ translate_manager_->InitiateTranslation(page_lang);
+
+ std::vector<metrics::TranslateEventProto> events_cache;
+ EXPECT_TRUE(translate_manager_->ShouldOverrideDecision(
+ metrics::TranslateEventProto::MATCHES_PREVIOUS_LANGUAGE));
+ EXPECT_TRUE(translate_manager_->ShouldOverrideDecision(
+ metrics::TranslateEventProto::LANGUAGE_DISABLED_BY_AUTO_BLACKLIST));
+
+ translate_manager_->RecordTranslateEvent(
+ metrics::TranslateEventProto::USER_DECLINE);
+ mock_translate_ranker_.FlushTranslateEvents(&events_cache);
+ EXPECT_EQ(1U, events_cache.size());
+ const metrics::TranslateEventProto& tep = events_cache[0];
+ EXPECT_EQ(page_lang, tep.source_language());
+ EXPECT_EQ(locale, tep.target_language());
+ EXPECT_EQ(2L, tep.decision_overrides_size());
+ EXPECT_THAT(
+ tep.decision_overrides(),
+ ::testing::ElementsAre(
+ metrics::TranslateEventProto::MATCHES_PREVIOUS_LANGUAGE,
+ metrics::TranslateEventProto::LANGUAGE_DISABLED_BY_AUTO_BLACKLIST));
+ EXPECT_EQ(metrics::TranslateEventProto::USER_DECLINE, tep.event_type());
+}
+
+TEST_F(TranslateManagerTest, TestShouldOverrideDecisionFalse) {
+ mock_translate_ranker_.set_is_decision_override_enabled(false);
+ PrepareTranslateManager();
+ const std::string locale = "zh-TW";
+ const std::string page_lang = "zh-CN";
+
+ network_notifier_.SimulateOnline();
+ manager_->set_application_locale(locale);
+ ON_CALL(mock_translate_client_, IsTranslatableURL(_))
+ .WillByDefault(Return(true));
+ translate_manager_->GetLanguageState().LanguageDetermined(page_lang, true);
+
+ translate_manager_->InitiateTranslation(page_lang);
+ std::vector<metrics::TranslateEventProto> events_cache;
+ EXPECT_FALSE(translate_manager_->ShouldOverrideDecision(
+ metrics::TranslateEventProto::MATCHES_PREVIOUS_LANGUAGE));
+
+ mock_translate_ranker_.FlushTranslateEvents(&events_cache);
+ EXPECT_EQ(1U, events_cache.size());
+ const metrics::TranslateEventProto& tep = events_cache[0];
+ EXPECT_EQ(page_lang, tep.source_language());
+ EXPECT_EQ(locale, tep.target_language());
+ EXPECT_EQ(0L, tep.decision_overrides_size());
+ EXPECT_EQ(metrics::TranslateEventProto::MATCHES_PREVIOUS_LANGUAGE,
+ tep.event_type());
+}
+
} // namespace testing
} // namespace translate

Powered by Google App Engine
This is Rietveld 408576698