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

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

Issue 2930433004: Send UMA recording state to TranslateRanker. (Closed)
Patch Set: Enable Logging in tests that use Flushing. Created 3 years, 6 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_ranker_impl_unittest.cc
diff --git a/components/translate/core/browser/translate_ranker_impl_unittest.cc b/components/translate/core/browser/translate_ranker_impl_unittest.cc
index 18543660ef85f691bafa42551aefe62a4de156a4..c4be1bbdf8a11e764fa0966d61df7df184af2847 100644
--- a/components/translate/core/browser/translate_ranker_impl_unittest.cc
+++ b/components/translate/core/browser/translate_ranker_impl_unittest.cc
@@ -319,6 +319,7 @@ TEST_F(TranslateRankerImplTest, ShouldOfferTranslation_NoModel) {
TEST_F(TranslateRankerImplTest, RecordAndFlushEvents) {
std::unique_ptr<translate::TranslateRanker> ranker = GetRankerForTest(0.0f);
+ ranker->EnableLogging(true);
std::vector<metrics::TranslateEventProto> flushed_events;
GURL url0("https://www.google.com");
@@ -358,38 +359,85 @@ TEST_F(TranslateRankerImplTest, RecordAndFlushEvents) {
GetTestUkmRecorder()->GetSourceForUrl(url1.spec().c_str())->url().spec());
}
-TEST_F(TranslateRankerImplTest, LoggingDisabledViaOverride) {
+TEST_F(TranslateRankerImplTest, EnableLogging) {
std::unique_ptr<translate::TranslateRankerImpl> ranker =
GetRankerForTest(0.0f);
std::vector<metrics::TranslateEventProto> flushed_events;
+ // Logging is disabled by default. No events will be cached.
+ ranker->RecordTranslateEvent(0, GURL(), &translate_event1_);
+ ranker->RecordTranslateEvent(1, GURL(), &translate_event2_);
+
ranker->FlushTranslateEvents(&flushed_events);
EXPECT_EQ(0U, flushed_events.size());
+ // Once we enable logging, events will be cached.
+ ranker->EnableLogging(true);
ranker->RecordTranslateEvent(0, GURL(), &translate_event1_);
ranker->RecordTranslateEvent(1, GURL(), &translate_event2_);
- ranker->RecordTranslateEvent(2, GURL(), &translate_event3_);
- // Logging is enabled by default, so events should be cached.
ranker->FlushTranslateEvents(&flushed_events);
- EXPECT_EQ(3U, flushed_events.size());
+ EXPECT_EQ(2U, flushed_events.size());
+ flushed_events.clear();
- // Override the feature setting to disable logging.
+ // Turning logging back off, caching is disabled once again.
ranker->EnableLogging(false);
-
ranker->RecordTranslateEvent(0, GURL(), &translate_event1_);
ranker->RecordTranslateEvent(1, GURL(), &translate_event2_);
- ranker->RecordTranslateEvent(2, GURL(), &translate_event3_);
// Logging is disabled, so no events should be cached.
ranker->FlushTranslateEvents(&flushed_events);
EXPECT_EQ(0U, flushed_events.size());
}
+TEST_F(TranslateRankerImplTest, EnableLoggingClearsCache) {
+ std::unique_ptr<translate::TranslateRankerImpl> ranker =
+ GetRankerForTest(0.0f);
+ std::vector<metrics::TranslateEventProto> flushed_events;
+ // Logging is disabled by default. No events will be cached.
+ ranker->RecordTranslateEvent(0, GURL(), &translate_event1_);
+ // Making sure that cache is still empty once logging is turned on.
+ ranker->EnableLogging(true);
+ ranker->FlushTranslateEvents(&flushed_events);
+ EXPECT_EQ(0U, flushed_events.size());
+
+ // These events will be cached.
+ ranker->RecordTranslateEvent(0, GURL(), &translate_event1_);
+ ranker->RecordTranslateEvent(1, GURL(), &translate_event2_);
+ // Cache will not be cleared if the logging state does not change.
+ ranker->EnableLogging(true);
+ ranker->FlushTranslateEvents(&flushed_events);
+ EXPECT_EQ(2U, flushed_events.size());
+ flushed_events.clear();
+ // Cache is now empty after being flushed.
+ ranker->FlushTranslateEvents(&flushed_events);
+ EXPECT_EQ(0U, flushed_events.size());
+
+ // Filling cache again.
+ ranker->EnableLogging(true);
+ ranker->RecordTranslateEvent(0, GURL(), &translate_event1_);
+ ranker->RecordTranslateEvent(1, GURL(), &translate_event2_);
+ // Switching logging off will clear the cache.
+ ranker->EnableLogging(false);
+ ranker->FlushTranslateEvents(&flushed_events);
+ EXPECT_EQ(0U, flushed_events.size());
+
+ // Filling cache again.
+ ranker->EnableLogging(true);
+ ranker->RecordTranslateEvent(0, GURL(), &translate_event1_);
+ ranker->RecordTranslateEvent(1, GURL(), &translate_event2_);
+ // Switching logging off and on again will clear the cache.
+ ranker->EnableLogging(false);
+ ranker->EnableLogging(true);
+ ranker->FlushTranslateEvents(&flushed_events);
+ EXPECT_EQ(0U, flushed_events.size());
+}
+
TEST_F(TranslateRankerImplTest, ShouldOverrideDecision_OverrideDisabled) {
InitFeatures({}, {kTranslateRankerDecisionOverride});
std::unique_ptr<translate::TranslateRankerImpl> ranker =
GetRankerForTest(0.0f);
+ ranker->EnableLogging(true);
const int kEventType = 12;
metrics::TranslateEventProto translate_event = CreateDefaultTranslateEvent();
@@ -409,6 +457,7 @@ TEST_F(TranslateRankerImplTest, ShouldOverrideDecision_OverrideEnabled) {
{kTranslateRankerQuery, kTranslateRankerEnforcement});
std::unique_ptr<translate::TranslateRankerImpl> ranker =
GetRankerForTest(0.0f);
+ ranker->EnableLogging(true);
metrics::TranslateEventProto translate_event = CreateDefaultTranslateEvent();
// DecisionOverride is decoupled from querying and enforcement. Enabling
// only DecisionOverride will not query the Ranker. Ranker returns its default
@@ -437,6 +486,7 @@ TEST_F(TranslateRankerImplTest,
// queried and a decision is overridden.
std::unique_ptr<translate::TranslateRankerImpl> ranker =
GetRankerForTest(0.0f);
+ ranker->EnableLogging(true);
metrics::TranslateEventProto translate_event = CreateDefaultTranslateEvent();
// Ranker's decision is DONT_SHOW, but we are in query mode only, so Ranker
// does not suppress the UI.

Powered by Google App Engine
This is Rietveld 408576698