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

Unified Diff: chrome/browser/translate/chrome_translate_client_unittest.cc

Issue 2954053002: Add a unit test for translation event logging. (Closed)
Patch Set: 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
« no previous file with comments | « chrome/browser/translate/chrome_translate_client.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/translate/chrome_translate_client_unittest.cc
diff --git a/chrome/browser/translate/chrome_translate_client_unittest.cc b/chrome/browser/translate/chrome_translate_client_unittest.cc
index 18f9cf9723143b832067d93aeff9003a6c7914a2..bc1531bc519cc830349cbc1513dff5554a6dbb60 100644
--- a/chrome/browser/translate/chrome_translate_client_unittest.cc
+++ b/chrome/browser/translate/chrome_translate_client_unittest.cc
@@ -5,6 +5,7 @@
#include "chrome/browser/translate/chrome_translate_client.h"
#include <memory>
+#include <string>
#include "base/command_line.h"
#include "base/memory/ref_counted.h"
@@ -13,6 +14,7 @@
#include "chrome/browser/sync/profile_sync_service_factory.h"
#include "chrome/browser/sync/user_event_service_factory.h"
#include "chrome/test/base/chrome_render_view_host_test_harness.h"
+#include "components/metrics/proto/translate_event.pb.h"
#include "components/sync/driver/sync_driver_switches.h"
#include "components/sync/user_events/fake_user_event_service.h"
#include "components/translate/core/common/language_detection_details.h"
@@ -20,11 +22,24 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
+using ::metrics::TranslateEventProto;
+
std::unique_ptr<KeyedService> BuildFakeUserEventService(
content::BrowserContext* context) {
return base::MakeUnique<syncer::FakeUserEventService>();
}
+TranslateEventProto BuildTranslateEventProto(
+ const std::string& from,
+ const std::string& to,
+ const TranslateEventProto::EventType type) {
+ TranslateEventProto event;
+ event.set_source_language(from);
+ event.set_target_language(to);
+ event.set_event_type(type);
+ return event;
+}
+
class ChromeTranslateClientTest : public ChromeRenderViewHostTestHarness {
public:
void SetUp() override {
@@ -34,8 +49,6 @@ class ChromeTranslateClientTest : public ChromeRenderViewHostTestHarness {
->SetTestingFactoryAndUse(browser_context(),
&BuildFakeUserEventService));
scoped_feature_list_ = base::MakeUnique<base::test::ScopedFeatureList>();
- scoped_feature_list_->InitAndEnableFeature(
- switches::kSyncUserLanguageDetectionEvents);
}
void TearDown() override { ChromeRenderViewHostTestHarness::TearDown(); }
@@ -45,12 +58,15 @@ class ChromeTranslateClientTest : public ChromeRenderViewHostTestHarness {
return fake_user_event_service_;
}
- private:
std::unique_ptr<base::test::ScopedFeatureList> scoped_feature_list_;
+
+ private:
syncer::FakeUserEventService* fake_user_event_service_;
};
TEST_F(ChromeTranslateClientTest, LanguageEventShouldRecord) {
+ scoped_feature_list_->InitAndEnableFeature(
+ switches::kSyncUserLanguageDetectionEvents);
GURL url("http://yahoo.com");
NavigateAndCommit(url);
ChromeTranslateClient client(web_contents());
@@ -63,6 +79,8 @@ TEST_F(ChromeTranslateClientTest, LanguageEventShouldRecord) {
}
TEST_F(ChromeTranslateClientTest, LanguageEventShouldNotRecord) {
+ scoped_feature_list_->InitAndEnableFeature(
+ switches::kSyncUserLanguageDetectionEvents);
GURL url("about://blank");
NavigateAndCommit(url);
ChromeTranslateClient client(web_contents());
@@ -73,3 +91,29 @@ TEST_F(ChromeTranslateClientTest, LanguageEventShouldNotRecord) {
client.OnLanguageDetermined(details);
EXPECT_EQ(0u, GetUserEventService()->GetRecordedUserEvents().size());
}
+
+TEST_F(ChromeTranslateClientTest, TranslationEventShouldRecord) {
+ scoped_feature_list_->InitAndEnableFeature(
napper 2017/06/26 00:32:04 Can't you just do this once in SetUp()?
renjieliu1 2017/06/26 01:04:42 Done.
+ switches::kSyncUserTranslationEvents);
+ GURL url("http://yahoo.com");
napper 2017/06/26 00:32:04 const?
renjieliu1 2017/06/26 01:04:42 Done.
+ NavigateAndCommit(url);
+ ChromeTranslateClient client(web_contents());
+ // Event we care.
+ const TranslateEventProto& event_proto =
+ BuildTranslateEventProto("ja", "en", TranslateEventProto::USER_ACCEPT);
+ client.RecordTranslateEvent(event_proto);
+ EXPECT_EQ(1ul, GetUserEventService()->GetRecordedUserEvents().size());
napper 2017/06/26 00:32:04 I think 1 instead of 1ul
renjieliu1 2017/06/26 01:04:42 .size() returns a unsigned long and it seems EXPEC
+}
napper 2017/06/26 00:32:04 Can you also test the content of the event?
renjieliu1 2017/06/26 01:04:42 Done.
+
+TEST_F(ChromeTranslateClientTest, TranslationEventShouldNotRecord) {
+ scoped_feature_list_->InitAndEnableFeature(
+ switches::kSyncUserTranslationEvents);
+ GURL url("http://yahoo.com");
+ NavigateAndCommit(url);
+ ChromeTranslateClient client(web_contents());
+ // Event we don't care.
+ const TranslateEventProto& event_proto = BuildTranslateEventProto(
+ "ja", "en", TranslateEventProto::UNSUPPORTED_URL);
+ client.RecordTranslateEvent(event_proto);
+ EXPECT_EQ(0u, GetUserEventService()->GetRecordedUserEvents().size());
+}
« no previous file with comments | « chrome/browser/translate/chrome_translate_client.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698