| Index: chrome/test/live_sync/live_sync_test.cc
|
| diff --git a/chrome/test/live_sync/live_sync_test.cc b/chrome/test/live_sync/live_sync_test.cc
|
| index b609fc251a0f8a0be5c30c8e9679cc265d34035a..52e1311e87b12de76a743f35685e2a82655b808e 100644
|
| --- a/chrome/test/live_sync/live_sync_test.cc
|
| +++ b/chrome/test/live_sync/live_sync_test.cc
|
| @@ -21,6 +21,7 @@
|
| #include "chrome/browser/password_manager/encryptor.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/profiles/profile_manager.h"
|
| +#include "chrome/browser/sync/notifier/p2p_notifier.h"
|
| #include "chrome/browser/sync/profile_sync_service_harness.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/browser_list.h"
|
| @@ -113,8 +114,7 @@ LiveSyncTest::LiveSyncTest(TestType test_type)
|
| server_type_(SERVER_TYPE_UNDECIDED),
|
| num_clients_(-1),
|
| use_verifier_(true),
|
| - test_server_handle_(base::kNullProcessHandle),
|
| - enable_notifications_(true) {
|
| + test_server_handle_(base::kNullProcessHandle) {
|
| InProcessBrowserTest::set_show_window(true);
|
| sync_datatype_helper::AssociateWithTest(this);
|
| switch (test_type_) {
|
| @@ -287,8 +287,7 @@ bool LiveSyncTest::SetupClients() {
|
| EXPECT_FALSE(GetBrowser(i) == NULL) << "GetBrowser(" << i << ") failed.";
|
|
|
| clients_.push_back(
|
| - new ProfileSyncServiceHarness(GetProfile(i), username_, password_,
|
| - enable_notifications_));
|
| + new ProfileSyncServiceHarness(GetProfile(i), username_, password_));
|
| EXPECT_FALSE(GetClient(i) == NULL) << "GetClient(" << i << ") failed.";
|
|
|
| ui_test_utils::WaitForBookmarkModelToLoad(
|
| @@ -407,27 +406,25 @@ bool LiveSyncTest::SetUpLocalPythonTestServer() {
|
| cl->AppendSwitchASCII(switches::kSyncServiceURL, sync_service_url);
|
| VLOG(1) << "Started local python test server at " << sync_service_url;
|
|
|
| - if (enable_notifications_) {
|
| - int xmpp_port = 0;
|
| - if (!sync_server_.server_data().GetInteger("xmpp_port", &xmpp_port)) {
|
| - LOG(ERROR) << "Could not find valid xmpp_port value";
|
| - return false;
|
| - }
|
| - if ((xmpp_port <= 0) || (xmpp_port > kuint16max)) {
|
| - LOG(ERROR) << "Invalid xmpp port: " << xmpp_port;
|
| - return false;
|
| - }
|
| + int xmpp_port = 0;
|
| + if (!sync_server_.server_data().GetInteger("xmpp_port", &xmpp_port)) {
|
| + LOG(ERROR) << "Could not find valid xmpp_port value";
|
| + return false;
|
| + }
|
| + if ((xmpp_port <= 0) || (xmpp_port > kuint16max)) {
|
| + LOG(ERROR) << "Invalid xmpp port: " << xmpp_port;
|
| + return false;
|
| + }
|
|
|
| - net::HostPortPair xmpp_host_port_pair(sync_server_.host_port_pair());
|
| - xmpp_host_port_pair.set_port(xmpp_port);
|
| - xmpp_port_.reset(new net::ScopedPortException(xmpp_port));
|
| + net::HostPortPair xmpp_host_port_pair(sync_server_.host_port_pair());
|
| + xmpp_host_port_pair.set_port(xmpp_port);
|
| + xmpp_port_.reset(new net::ScopedPortException(xmpp_port));
|
|
|
| - if (!cl->HasSwitch(switches::kSyncNotificationHost)) {
|
| - cl->AppendSwitchASCII(switches::kSyncNotificationHost,
|
| - xmpp_host_port_pair.ToString());
|
| - // The local XMPP server only supports insecure connections.
|
| - cl->AppendSwitch(switches::kSyncAllowInsecureXmppConnection);
|
| - }
|
| + if (!cl->HasSwitch(switches::kSyncNotificationHost)) {
|
| + cl->AppendSwitchASCII(switches::kSyncNotificationHost,
|
| + xmpp_host_port_pair.ToString());
|
| + // The local XMPP server only supports insecure connections.
|
| + cl->AppendSwitch(switches::kSyncAllowInsecureXmppConnection);
|
| }
|
|
|
| return true;
|
| @@ -526,21 +523,42 @@ bool LiveSyncTest::IsEncrypted(int index, syncable::ModelType type) {
|
| return GetClient(index)->IsTypeEncrypted(type);
|
| }
|
|
|
| +bool LiveSyncTest::AwaitQuiescence() {
|
| + return ProfileSyncServiceHarness::AwaitQuiescence(clients());
|
| +}
|
| +
|
| +bool LiveSyncTest::ServerSupportsNotificationControl() {
|
| + EXPECT_NE(SERVER_TYPE_UNDECIDED, server_type_);
|
| +
|
| + // Supported only if we're using the python testserver.
|
| + return server_type_ == LOCAL_PYTHON_SERVER;
|
| +}
|
| +
|
| void LiveSyncTest::DisableNotifications() {
|
| - // TODO(akalin): It would be better to assert that the test server
|
| - // hasn't been started yet. That would require adding an
|
| - // IsStarted() method to TestServer.
|
| - ASSERT_TRUE(profiles_.empty());
|
| - ASSERT_TRUE(clients_.empty());
|
| - enable_notifications_ = false;
|
| + ASSERT_TRUE(ServerSupportsNotificationControl());
|
| + std::string path = "chromiumsync/disablenotifications";
|
| + ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path));
|
| + ASSERT_EQ("Notifications disabled",
|
| + UTF16ToASCII(browser()->GetSelectedTabContents()->GetTitle()));
|
| }
|
|
|
| -bool LiveSyncTest::AwaitQuiescence() {
|
| - return ProfileSyncServiceHarness::AwaitQuiescence(clients());
|
| +void LiveSyncTest::TriggerNotification(
|
| + const syncable::ModelTypeSet& changed_types) {
|
| + ASSERT_TRUE(ServerSupportsNotificationControl());
|
| + const std::string& data =
|
| + sync_notifier::P2PNotificationData("from_server",
|
| + sync_notifier::NOTIFY_ALL,
|
| + changed_types).ToString();
|
| + const std::string& path =
|
| + std::string("chromiumsync/sendnotification?channel=") +
|
| + sync_notifier::kSyncP2PNotificationChannel + "&data=" + data;
|
| + ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path));
|
| + ASSERT_EQ("Notification sent",
|
| + UTF16ToASCII(browser()->GetSelectedTabContents()->GetTitle()));
|
| }
|
|
|
| bool LiveSyncTest::ServerSupportsErrorTriggering() {
|
| - EXPECT_TRUE(server_type_ != SERVER_TYPE_UNDECIDED);
|
| + EXPECT_NE(SERVER_TYPE_UNDECIDED, server_type_);
|
|
|
| // Supported only if we're using the python testserver.
|
| return server_type_ == LOCAL_PYTHON_SERVER;
|
|
|