summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync/profile_sync_service_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/sync/profile_sync_service_unittest.cc')
-rw-r--r--chrome/browser/sync/profile_sync_service_unittest.cc170
1 files changed, 34 insertions, 136 deletions
diff --git a/chrome/browser/sync/profile_sync_service_unittest.cc b/chrome/browser/sync/profile_sync_service_unittest.cc
index dd76d40..bd55a12 100644
--- a/chrome/browser/sync/profile_sync_service_unittest.cc
+++ b/chrome/browser/sync/profile_sync_service_unittest.cc
@@ -145,30 +145,19 @@ TEST_F(ProfileSyncServiceTest, AbortedByShutdown) {
service_.reset();
}
-TEST_F(ProfileSyncServiceTest, JsFrontendHandlersBasic) {
+TEST_F(ProfileSyncServiceTest, JsControllerHandlersBasic) {
StartSyncService();
-
- StrictMock<MockJsEventHandler> event_handler;
-
- SyncBackendHostForProfileSyncTest* test_backend =
- service_->GetBackendForTest();
-
EXPECT_TRUE(service_->sync_initialized());
- ASSERT_TRUE(test_backend != NULL);
- ASSERT_TRUE(test_backend->GetJsBackend() != NULL);
- EXPECT_EQ(NULL, test_backend->GetJsBackend()->GetParentJsEventRouter());
+ EXPECT_TRUE(service_->GetBackendForTest() != NULL);
- JsFrontend* js_backend = service_->GetJsFrontend();
- js_backend->AddHandler(&event_handler);
- ASSERT_TRUE(test_backend->GetJsBackend() != NULL);
- EXPECT_TRUE(test_backend->GetJsBackend()->GetParentJsEventRouter() != NULL);
-
- js_backend->RemoveHandler(&event_handler);
- EXPECT_EQ(NULL, test_backend->GetJsBackend()->GetParentJsEventRouter());
+ JsController* js_controller = service_->GetJsController();
+ StrictMock<MockJsEventHandler> event_handler;
+ js_controller->AddJsEventHandler(&event_handler);
+ js_controller->RemoveJsEventHandler(&event_handler);
}
TEST_F(ProfileSyncServiceTest,
- JsFrontendHandlersDelayedBackendInitialization) {
+ JsControllerHandlersDelayedBackendInitialization) {
StartSyncServiceAndSetInitialSyncEnded(true, false, false, true);
StrictMock<MockJsEventHandler> event_handler;
@@ -193,153 +182,62 @@ TEST_F(ProfileSyncServiceTest,
EXPECT_EQ(NULL, service_->GetBackendForTest());
EXPECT_FALSE(service_->sync_initialized());
- JsFrontend* js_backend = service_->GetJsFrontend();
- js_backend->AddHandler(&event_handler);
+ JsController* js_controller = service_->GetJsController();
+ js_controller->AddJsEventHandler(&event_handler);
// Since we're doing synchronous initialization, backend should be
// initialized by this call.
profile_->GetTokenService()->IssueAuthTokenForTest(
GaiaConstants::kSyncService, "token");
-
- SyncBackendHostForProfileSyncTest* test_backend =
- service_->GetBackendForTest();
-
EXPECT_TRUE(service_->sync_initialized());
- ASSERT_TRUE(test_backend != NULL);
- ASSERT_TRUE(test_backend->GetJsBackend() != NULL);
- EXPECT_TRUE(test_backend->GetJsBackend()->GetParentJsEventRouter() != NULL);
-
- js_backend->RemoveHandler(&event_handler);
- EXPECT_EQ(NULL, test_backend->GetJsBackend()->GetParentJsEventRouter());
+ js_controller->RemoveJsEventHandler(&event_handler);
}
-TEST_F(ProfileSyncServiceTest, JsFrontendProcessMessageBasic) {
+TEST_F(ProfileSyncServiceTest, JsControllerProcessJsMessageBasic) {
StartSyncService();
- StrictMock<MockJsEventHandler> event_handler;
- // For some reason, these events may or may not fire.
- EXPECT_CALL(event_handler, HandleJsEvent("onChangesApplied", _))
- .Times(AtMost(1));
- EXPECT_CALL(event_handler, HandleJsEvent("onChangesComplete", _))
- .Times(AtMost(1));
- EXPECT_CALL(event_handler, HandleJsEvent("onNotificationStateChange", _))
- .Times(AtMost(1));
+ StrictMock<MockJsReplyHandler> reply_handler;
ListValue arg_list1;
- arg_list1.Append(Value::CreateBooleanValue(true));
- arg_list1.Append(Value::CreateIntegerValue(5));
+ arg_list1.Append(Value::CreateBooleanValue(false));
JsArgList args1(&arg_list1);
- EXPECT_CALL(event_handler,
- HandleJsMessageReply("testMessage1", HasArgs(args1)));
-
- ListValue arg_list2;
- arg_list2.Append(Value::CreateStringValue("test"));
- arg_list2.Append(arg_list1.DeepCopy());
- JsArgList args2(&arg_list2);
- EXPECT_CALL(event_handler,
- HandleJsMessageReply("delayTestMessage2", HasArgs(args2)));
-
- ListValue arg_list3;
- arg_list3.Append(arg_list1.DeepCopy());
- arg_list3.Append(arg_list2.DeepCopy());
- JsArgList args3(&arg_list3);
-
- JsFrontend* js_backend = service_->GetJsFrontend();
-
- // Never replied to.
- js_backend->ProcessMessage("notRepliedTo", args3, &event_handler);
-
- // Replied to later.
- js_backend->ProcessMessage("delayTestMessage2", args2, &event_handler);
+ EXPECT_CALL(reply_handler,
+ HandleJsReply("getNotificationState", HasArgs(args1)));
- js_backend->AddHandler(&event_handler);
-
- // Replied to immediately.
- js_backend->ProcessMessage("testMessage1", args1, &event_handler);
-
- // Fires off reply for delayTestMessage2.
- ui_loop_.RunAllPending();
-
- // Never replied to.
- js_backend->ProcessMessage("delayNotRepliedTo", args3, &event_handler);
-
- js_backend->RemoveHandler(&event_handler);
+ {
+ JsController* js_controller = service_->GetJsController();
+ js_controller->ProcessJsMessage("getNotificationState", args1,
+ reply_handler.AsWeakHandle());
+ }
+ // This forces the sync thread to process the message and reply.
+ service_.reset();
ui_loop_.RunAllPending();
-
- // Never replied to.
- js_backend->ProcessMessage("notRepliedTo", args3, &event_handler);
}
TEST_F(ProfileSyncServiceTest,
- JsFrontendProcessMessageBasicDelayedBackendInitialization) {
+ JsControllerProcessJsMessageBasicDelayedBackendInitialization) {
StartSyncServiceAndSetInitialSyncEnded(true, false, false, true);
- StrictMock<MockJsEventHandler> event_handler;
- EXPECT_CALL(event_handler,
- HandleJsEvent("onTransactionStart", _)).Times(AnyNumber());
- EXPECT_CALL(event_handler,
- HandleJsEvent("onTransactionEnd", _)).Times(AnyNumber());
- // For some reason, these events may or may not fire.
- EXPECT_CALL(event_handler, HandleJsEvent("onChangesApplied", _))
- .Times(AtMost(1));
- EXPECT_CALL(event_handler, HandleJsEvent("onChangesComplete", _))
- .Times(AtMost(1));
- EXPECT_CALL(event_handler, HandleJsEvent("onNotificationStateChange", _))
- .Times(AtMost(1));
+ StrictMock<MockJsReplyHandler> reply_handler;
ListValue arg_list1;
- arg_list1.Append(Value::CreateBooleanValue(true));
- arg_list1.Append(Value::CreateIntegerValue(5));
+ arg_list1.Append(Value::CreateBooleanValue(false));
JsArgList args1(&arg_list1);
- EXPECT_CALL(event_handler,
- HandleJsMessageReply("testMessage1", HasArgs(args1)));
-
- ListValue arg_list2;
- arg_list2.Append(Value::CreateStringValue("test"));
- arg_list2.Append(arg_list1.DeepCopy());
- JsArgList args2(&arg_list2);
- EXPECT_CALL(event_handler,
- HandleJsMessageReply("testMessage2", HasArgs(args2)));
+ EXPECT_CALL(reply_handler,
+ HandleJsReply("getNotificationState", HasArgs(args1)));
- ListValue arg_list3;
- arg_list3.Append(arg_list1.DeepCopy());
- arg_list3.Append(arg_list2.DeepCopy());
- JsArgList args3(&arg_list3);
- EXPECT_CALL(event_handler,
- HandleJsMessageReply("delayTestMessage3", HasArgs(args3)));
-
- const JsEventDetails kNoDetails;
-
- EXPECT_CALL(event_handler, HandleJsEvent("onServiceStateChanged",
- HasDetails(kNoDetails))).Times(AtLeast(3));
-
- JsFrontend* js_backend = service_->GetJsFrontend();
-
- // We expect a reply for this message, even though its sent before
- // |event_handler| is added as a handler.
- js_backend->ProcessMessage("testMessage1", args1, &event_handler);
-
- js_backend->AddHandler(&event_handler);
-
- js_backend->ProcessMessage("testMessage2", args2, &event_handler);
- js_backend->ProcessMessage("delayTestMessage3", args3, &event_handler);
+ {
+ JsController* js_controller = service_->GetJsController();
+ js_controller->ProcessJsMessage("getNotificationState",
+ args1, reply_handler.AsWeakHandle());
+ }
- // Fires testMessage1 and testMessage2.
profile_->GetTokenService()->IssueAuthTokenForTest(
GaiaConstants::kSyncService, "token");
- // Fires delayTestMessage3.
- ui_loop_.RunAllPending();
-
- const JsArgList kNoArgs;
-
- js_backend->ProcessMessage("delayNotRepliedTo", kNoArgs, &event_handler);
-
- js_backend->RemoveHandler(&event_handler);
-
+ // This forces the sync thread to process the message and reply.
+ service_.reset();
ui_loop_.RunAllPending();
-
- js_backend->ProcessMessage("notRepliedTo", kNoArgs, &event_handler);
}
// Make sure that things still work if sync is not enabled, but some old sync