| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/sync/test/integration/sync_test.h" | 5 #include "chrome/browser/sync/test/integration/sync_test.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 667 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 678 | 678 |
| 679 // Supported only if we're using the python testserver. | 679 // Supported only if we're using the python testserver. |
| 680 return server_type_ == LOCAL_PYTHON_SERVER; | 680 return server_type_ == LOCAL_PYTHON_SERVER; |
| 681 } | 681 } |
| 682 | 682 |
| 683 void SyncTest::DisableNotificationsImpl() { | 683 void SyncTest::DisableNotificationsImpl() { |
| 684 ASSERT_TRUE(ServerSupportsNotificationControl()); | 684 ASSERT_TRUE(ServerSupportsNotificationControl()); |
| 685 std::string path = "chromiumsync/disablenotifications"; | 685 std::string path = "chromiumsync/disablenotifications"; |
| 686 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); | 686 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); |
| 687 ASSERT_EQ("Notifications disabled", | 687 ASSERT_EQ("Notifications disabled", |
| 688 UTF16ToASCII(browser()->tab_strip_model()->GetActiveWebContents()-> | 688 base::UTF16ToASCII( |
| 689 GetTitle())); | 689 browser()->tab_strip_model()->GetActiveWebContents()-> |
| 690 GetTitle())); |
| 690 } | 691 } |
| 691 | 692 |
| 692 void SyncTest::DisableNotifications() { | 693 void SyncTest::DisableNotifications() { |
| 693 DisableNotificationsImpl(); | 694 DisableNotificationsImpl(); |
| 694 notifications_enabled_ = false; | 695 notifications_enabled_ = false; |
| 695 } | 696 } |
| 696 | 697 |
| 697 void SyncTest::EnableNotificationsImpl() { | 698 void SyncTest::EnableNotificationsImpl() { |
| 698 ASSERT_TRUE(ServerSupportsNotificationControl()); | 699 ASSERT_TRUE(ServerSupportsNotificationControl()); |
| 699 std::string path = "chromiumsync/enablenotifications"; | 700 std::string path = "chromiumsync/enablenotifications"; |
| 700 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); | 701 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); |
| 701 ASSERT_EQ("Notifications enabled", | 702 ASSERT_EQ("Notifications enabled", |
| 702 UTF16ToASCII(browser()->tab_strip_model()->GetActiveWebContents()-> | 703 base::UTF16ToASCII( |
| 703 GetTitle())); | 704 browser()->tab_strip_model()->GetActiveWebContents()-> |
| 705 GetTitle())); |
| 704 } | 706 } |
| 705 | 707 |
| 706 void SyncTest::EnableNotifications() { | 708 void SyncTest::EnableNotifications() { |
| 707 EnableNotificationsImpl(); | 709 EnableNotificationsImpl(); |
| 708 notifications_enabled_ = true; | 710 notifications_enabled_ = true; |
| 709 } | 711 } |
| 710 | 712 |
| 711 void SyncTest::TriggerNotification(syncer::ModelTypeSet changed_types) { | 713 void SyncTest::TriggerNotification(syncer::ModelTypeSet changed_types) { |
| 712 ASSERT_TRUE(ServerSupportsNotificationControl()); | 714 ASSERT_TRUE(ServerSupportsNotificationControl()); |
| 713 const std::string& data = | 715 const std::string& data = |
| 714 syncer::P2PNotificationData( | 716 syncer::P2PNotificationData( |
| 715 "from_server", | 717 "from_server", |
| 716 syncer::NOTIFY_ALL, | 718 syncer::NOTIFY_ALL, |
| 717 syncer::ObjectIdInvalidationMap::InvalidateAll( | 719 syncer::ObjectIdInvalidationMap::InvalidateAll( |
| 718 syncer::ModelTypeSetToObjectIdSet(changed_types))).ToString(); | 720 syncer::ModelTypeSetToObjectIdSet(changed_types))).ToString(); |
| 719 const std::string& path = | 721 const std::string& path = |
| 720 std::string("chromiumsync/sendnotification?channel=") + | 722 std::string("chromiumsync/sendnotification?channel=") + |
| 721 syncer::kSyncP2PNotificationChannel + "&data=" + data; | 723 syncer::kSyncP2PNotificationChannel + "&data=" + data; |
| 722 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); | 724 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); |
| 723 ASSERT_EQ("Notification sent", | 725 ASSERT_EQ("Notification sent", |
| 724 UTF16ToASCII(browser()->tab_strip_model()->GetActiveWebContents()-> | 726 base::UTF16ToASCII( |
| 725 GetTitle())); | 727 browser()->tab_strip_model()->GetActiveWebContents()-> |
| 728 GetTitle())); |
| 726 } | 729 } |
| 727 | 730 |
| 728 bool SyncTest::ServerSupportsErrorTriggering() const { | 731 bool SyncTest::ServerSupportsErrorTriggering() const { |
| 729 EXPECT_NE(SERVER_TYPE_UNDECIDED, server_type_); | 732 EXPECT_NE(SERVER_TYPE_UNDECIDED, server_type_); |
| 730 | 733 |
| 731 // Supported only if we're using the python testserver. | 734 // Supported only if we're using the python testserver. |
| 732 return server_type_ == LOCAL_PYTHON_SERVER; | 735 return server_type_ == LOCAL_PYTHON_SERVER; |
| 733 } | 736 } |
| 734 | 737 |
| 735 void SyncTest::TriggerMigrationDoneError(syncer::ModelTypeSet model_types) { | 738 void SyncTest::TriggerMigrationDoneError(syncer::ModelTypeSet model_types) { |
| 736 ASSERT_TRUE(ServerSupportsErrorTriggering()); | 739 ASSERT_TRUE(ServerSupportsErrorTriggering()); |
| 737 std::string path = "chromiumsync/migrate"; | 740 std::string path = "chromiumsync/migrate"; |
| 738 char joiner = '?'; | 741 char joiner = '?'; |
| 739 for (syncer::ModelTypeSet::Iterator it = model_types.First(); | 742 for (syncer::ModelTypeSet::Iterator it = model_types.First(); |
| 740 it.Good(); it.Inc()) { | 743 it.Good(); it.Inc()) { |
| 741 path.append( | 744 path.append( |
| 742 base::StringPrintf( | 745 base::StringPrintf( |
| 743 "%ctype=%d", joiner, | 746 "%ctype=%d", joiner, |
| 744 syncer::GetSpecificsFieldNumberFromModelType(it.Get()))); | 747 syncer::GetSpecificsFieldNumberFromModelType(it.Get()))); |
| 745 joiner = '&'; | 748 joiner = '&'; |
| 746 } | 749 } |
| 747 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); | 750 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); |
| 748 ASSERT_EQ("Migration: 200", | 751 ASSERT_EQ("Migration: 200", |
| 749 UTF16ToASCII(browser()->tab_strip_model()->GetActiveWebContents()-> | 752 base::UTF16ToASCII( |
| 750 GetTitle())); | 753 browser()->tab_strip_model()->GetActiveWebContents()-> |
| 754 GetTitle())); |
| 751 } | 755 } |
| 752 | 756 |
| 753 void SyncTest::TriggerBirthdayError() { | 757 void SyncTest::TriggerBirthdayError() { |
| 754 ASSERT_TRUE(ServerSupportsErrorTriggering()); | 758 ASSERT_TRUE(ServerSupportsErrorTriggering()); |
| 755 std::string path = "chromiumsync/birthdayerror"; | 759 std::string path = "chromiumsync/birthdayerror"; |
| 756 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); | 760 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); |
| 757 ASSERT_EQ("Birthday error", | 761 ASSERT_EQ("Birthday error", |
| 758 UTF16ToASCII(browser()->tab_strip_model()->GetActiveWebContents()-> | 762 base::UTF16ToASCII( |
| 759 GetTitle())); | 763 browser()->tab_strip_model()->GetActiveWebContents()-> |
| 764 GetTitle())); |
| 760 } | 765 } |
| 761 | 766 |
| 762 void SyncTest::TriggerTransientError() { | 767 void SyncTest::TriggerTransientError() { |
| 763 ASSERT_TRUE(ServerSupportsErrorTriggering()); | 768 ASSERT_TRUE(ServerSupportsErrorTriggering()); |
| 764 std::string path = "chromiumsync/transienterror"; | 769 std::string path = "chromiumsync/transienterror"; |
| 765 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); | 770 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); |
| 766 ASSERT_EQ("Transient error", | 771 ASSERT_EQ("Transient error", |
| 767 UTF16ToASCII(browser()->tab_strip_model()->GetActiveWebContents()-> | 772 base::UTF16ToASCII( |
| 768 GetTitle())); | 773 browser()->tab_strip_model()->GetActiveWebContents()-> |
| 774 GetTitle())); |
| 769 } | 775 } |
| 770 | 776 |
| 771 void SyncTest::TriggerAuthState(PythonServerAuthState auth_state) { | 777 void SyncTest::TriggerAuthState(PythonServerAuthState auth_state) { |
| 772 ASSERT_TRUE(ServerSupportsErrorTriggering()); | 778 ASSERT_TRUE(ServerSupportsErrorTriggering()); |
| 773 std::string path = "chromiumsync/cred"; | 779 std::string path = "chromiumsync/cred"; |
| 774 path.append(auth_state == AUTHENTICATED_TRUE ? "?valid=True" : | 780 path.append(auth_state == AUTHENTICATED_TRUE ? "?valid=True" : |
| 775 "?valid=False"); | 781 "?valid=False"); |
| 776 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); | 782 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); |
| 777 } | 783 } |
| 778 | 784 |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 843 | 849 |
| 844 path.append(base::StringPrintf("?error=%d", error_type)); | 850 path.append(base::StringPrintf("?error=%d", error_type)); |
| 845 path.append(base::StringPrintf("&action=%d", action)); | 851 path.append(base::StringPrintf("&action=%d", action)); |
| 846 | 852 |
| 847 path.append(base::StringPrintf("&error_description=%s", | 853 path.append(base::StringPrintf("&error_description=%s", |
| 848 error.error_description.c_str())); | 854 error.error_description.c_str())); |
| 849 path.append(base::StringPrintf("&url=%s", error.url.c_str())); | 855 path.append(base::StringPrintf("&url=%s", error.url.c_str())); |
| 850 path.append(base::StringPrintf("&frequency=%d", frequency)); | 856 path.append(base::StringPrintf("&frequency=%d", frequency)); |
| 851 | 857 |
| 852 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); | 858 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); |
| 853 std::string output = UTF16ToASCII( | 859 std::string output = base::UTF16ToASCII( |
| 854 browser()->tab_strip_model()->GetActiveWebContents()->GetTitle()); | 860 browser()->tab_strip_model()->GetActiveWebContents()->GetTitle()); |
| 855 ASSERT_TRUE(output.find("SetError: 200") != base::string16::npos); | 861 ASSERT_TRUE(output.find("SetError: 200") != base::string16::npos); |
| 856 } | 862 } |
| 857 | 863 |
| 858 void SyncTest::TriggerCreateSyncedBookmarks() { | 864 void SyncTest::TriggerCreateSyncedBookmarks() { |
| 859 ASSERT_TRUE(ServerSupportsErrorTriggering()); | 865 ASSERT_TRUE(ServerSupportsErrorTriggering()); |
| 860 std::string path = "chromiumsync/createsyncedbookmarks"; | 866 std::string path = "chromiumsync/createsyncedbookmarks"; |
| 861 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); | 867 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); |
| 862 ASSERT_EQ("Synced Bookmarks", | 868 ASSERT_EQ("Synced Bookmarks", |
| 863 UTF16ToASCII(browser()->tab_strip_model()->GetActiveWebContents()-> | 869 base::UTF16ToASCII( |
| 864 GetTitle())); | 870 browser()->tab_strip_model()->GetActiveWebContents()-> |
| 871 GetTitle())); |
| 865 } | 872 } |
| 866 | 873 |
| 867 void SyncTest::SetProxyConfig(net::URLRequestContextGetter* context_getter, | 874 void SyncTest::SetProxyConfig(net::URLRequestContextGetter* context_getter, |
| 868 const net::ProxyConfig& proxy_config) { | 875 const net::ProxyConfig& proxy_config) { |
| 869 base::WaitableEvent done(false, false); | 876 base::WaitableEvent done(false, false); |
| 870 BrowserThread::PostTask( | 877 BrowserThread::PostTask( |
| 871 BrowserThread::IO, FROM_HERE, | 878 BrowserThread::IO, FROM_HERE, |
| 872 base::Bind(&SetProxyConfigCallback, &done, | 879 base::Bind(&SetProxyConfigCallback, &done, |
| 873 make_scoped_refptr(context_getter), proxy_config)); | 880 make_scoped_refptr(context_getter), proxy_config)); |
| 874 done.Wait(); | 881 done.Wait(); |
| 875 } | 882 } |
| 876 | 883 |
| 877 void SyncTest::UseFakeServer() { | 884 void SyncTest::UseFakeServer() { |
| 878 DCHECK_EQ(SERVER_TYPE_UNDECIDED, server_type_); | 885 DCHECK_EQ(SERVER_TYPE_UNDECIDED, server_type_); |
| 879 server_type_ = IN_PROCESS_FAKE_SERVER; | 886 server_type_ = IN_PROCESS_FAKE_SERVER; |
| 880 } | 887 } |
| OLD | NEW |