Index: chrome/browser/ui/webui/sync_internals_message_handler_unittest.cc |
diff --git a/chrome/browser/ui/webui/sync_internals_message_handler_unittest.cc b/chrome/browser/ui/webui/sync_internals_message_handler_unittest.cc |
index 41299ef02a59074186b85f54fe75239b3fb9629c..c0264788d64ded53433ed2d71cd6201abc885b7b 100644 |
--- a/chrome/browser/ui/webui/sync_internals_message_handler_unittest.cc |
+++ b/chrome/browser/ui/webui/sync_internals_message_handler_unittest.cc |
@@ -17,6 +17,7 @@ |
#include "components/sync/driver/fake_sync_service.h" |
#include "components/sync/driver/sync_service.h" |
#include "components/sync/js/js_test_util.h" |
+#include "components/sync/user_events/fake_user_event_service.h" |
#include "content/public/browser/site_instance.h" |
#include "content/public/browser/web_contents.h" |
#include "content/public/test/test_browser_thread_bundle.h" |
@@ -26,6 +27,7 @@ |
using base::DictionaryValue; |
using base::ListValue; |
using base::Value; |
+using syncer::FakeUserEventService; |
using syncer::SyncService; |
using syncer::SyncServiceObserver; |
using syncer::TypeDebugInfoObserver; |
@@ -97,6 +99,11 @@ static std::unique_ptr<KeyedService> BuildTestSyncService( |
return base::MakeUnique<TestSyncService>(); |
} |
+static std::unique_ptr<KeyedService> BuildFakeUserEventService( |
+ content::BrowserContext* context) { |
+ return base::MakeUnique<FakeUserEventService>(); |
+} |
+ |
class SyncInternalsMessageHandlerTest : public ::testing::Test { |
protected: |
SyncInternalsMessageHandlerTest() { |
@@ -107,6 +114,9 @@ class SyncInternalsMessageHandlerTest : public ::testing::Test { |
test_sync_service_ = static_cast<TestSyncService*>( |
ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse( |
&profile_, &BuildTestSyncService)); |
+ fake_user_event_service_ = static_cast<FakeUserEventService*>( |
+ browser_sync::UserEventServiceFactory::GetInstance() |
+ ->SetTestingFactoryAndUse(&profile_, &BuildFakeUserEventService)); |
handler_.reset(new TestableSyncInternalsMessageHandler( |
&web_ui_, |
base::BindRepeating( |
@@ -158,6 +168,10 @@ class SyncInternalsMessageHandlerTest : public ::testing::Test { |
TestSyncService* test_sync_service() { return test_sync_service_; } |
+ FakeUserEventService* fake_user_event_service() { |
+ return fake_user_event_service_; |
+ } |
+ |
TestableSyncInternalsMessageHandler* handler() { return handler_.get(); } |
int CallCountWithName(const std::string& function_name) { |
@@ -187,6 +201,7 @@ class SyncInternalsMessageHandlerTest : public ::testing::Test { |
std::unique_ptr<content::WebContents> web_contents_; |
content::TestWebUI web_ui_; |
TestSyncService* test_sync_service_; |
+ FakeUserEventService* fake_user_event_service_; |
std::unique_ptr<TestableSyncInternalsMessageHandler> handler_; |
int about_sync_data_delegate_call_count_ = 0; |
SyncService* last_delegate_sync_service_ = nullptr; |
@@ -315,4 +330,30 @@ TEST_F(SyncInternalsMessageHandlerTest, SendAboutInfoSyncDisabled) { |
ValidateAboutInfoCall(); |
} |
+TEST_F(SyncInternalsMessageHandlerTest, WriteUserEvent) { |
+ ListValue args; |
+ args.AppendString("1000000000000000000"); |
+ args.AppendString("-1"); |
+ handler()->HandleWriteUserEvent(&args); |
+ |
+ ASSERT_EQ(1u, fake_user_event_service()->GetRecordedUserEvents().size()); |
+ const sync_pb::UserEventSpecifics& event = |
+ *fake_user_event_service()->GetRecordedUserEvents().begin(); |
+ EXPECT_EQ(1000000000000000000, event.event_time_usec()); |
+ EXPECT_EQ(-1, event.navigation_id()); |
+} |
+ |
+TEST_F(SyncInternalsMessageHandlerTest, WriteUserEventBadParse) { |
+ ListValue args; |
+ args.AppendString("123abc"); |
+ args.AppendString(""); |
+ handler()->HandleWriteUserEvent(&args); |
+ |
+ ASSERT_EQ(1u, fake_user_event_service()->GetRecordedUserEvents().size()); |
+ const sync_pb::UserEventSpecifics& event = |
+ *fake_user_event_service()->GetRecordedUserEvents().begin(); |
+ EXPECT_EQ(0, event.event_time_usec()); |
+ EXPECT_EQ(0, event.navigation_id()); |
+} |
+ |
} // namespace |