OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 16 matching lines...) Expand all Loading... |
27 #include "chrome/browser/sync/profile_sync_service_harness.h" | 27 #include "chrome/browser/sync/profile_sync_service_harness.h" |
28 #include "chrome/browser/sync/protocol/sync.pb.h" | 28 #include "chrome/browser/sync/protocol/sync.pb.h" |
29 #include "chrome/browser/sync/test/integration/sync_datatype_helper.h" | 29 #include "chrome/browser/sync/test/integration/sync_datatype_helper.h" |
30 #include "chrome/browser/ui/browser.h" | 30 #include "chrome/browser/ui/browser.h" |
31 #include "chrome/browser/ui/browser_list.h" | 31 #include "chrome/browser/ui/browser_list.h" |
32 #include "chrome/common/chrome_paths.h" | 32 #include "chrome/common/chrome_paths.h" |
33 #include "chrome/common/chrome_switches.h" | 33 #include "chrome/common/chrome_switches.h" |
34 #include "chrome/common/net/gaia/gaia_urls.h" | 34 #include "chrome/common/net/gaia/gaia_urls.h" |
35 #include "chrome/test/base/testing_browser_process.h" | 35 #include "chrome/test/base/testing_browser_process.h" |
36 #include "chrome/test/base/ui_test_utils.h" | 36 #include "chrome/test/base/ui_test_utils.h" |
37 #include "content/browser/tab_contents/tab_contents.h" | 37 #include "content/public/browser/web_contents.h" |
38 #include "content/public/common/url_fetcher.h" | 38 #include "content/public/common/url_fetcher.h" |
39 #include "content/public/common/url_fetcher_delegate.h" | 39 #include "content/public/common/url_fetcher_delegate.h" |
40 #include "content/test/test_browser_thread.h" | 40 #include "content/test/test_browser_thread.h" |
41 #include "content/test/test_url_fetcher_factory.h" | 41 #include "content/test/test_url_fetcher_factory.h" |
42 #include "googleurl/src/gurl.h" | 42 #include "googleurl/src/gurl.h" |
43 #include "net/base/escape.h" | 43 #include "net/base/escape.h" |
44 #include "net/base/network_change_notifier.h" | 44 #include "net/base/network_change_notifier.h" |
45 #include "net/proxy/proxy_config.h" | 45 #include "net/proxy/proxy_config.h" |
46 #include "net/proxy/proxy_config_service_fixed.h" | 46 #include "net/proxy/proxy_config_service_fixed.h" |
47 #include "net/proxy/proxy_service.h" | 47 #include "net/proxy/proxy_service.h" |
(...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
547 | 547 |
548 // Supported only if we're using the python testserver. | 548 // Supported only if we're using the python testserver. |
549 return server_type_ == LOCAL_PYTHON_SERVER; | 549 return server_type_ == LOCAL_PYTHON_SERVER; |
550 } | 550 } |
551 | 551 |
552 void SyncTest::DisableNotifications() { | 552 void SyncTest::DisableNotifications() { |
553 ASSERT_TRUE(ServerSupportsNotificationControl()); | 553 ASSERT_TRUE(ServerSupportsNotificationControl()); |
554 std::string path = "chromiumsync/disablenotifications"; | 554 std::string path = "chromiumsync/disablenotifications"; |
555 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); | 555 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); |
556 ASSERT_EQ("Notifications disabled", | 556 ASSERT_EQ("Notifications disabled", |
557 UTF16ToASCII(browser()->GetSelectedTabContents()->GetTitle())); | 557 UTF16ToASCII(browser()->GetSelectedWebContents()->GetTitle())); |
558 } | 558 } |
559 | 559 |
560 void SyncTest::EnableNotifications() { | 560 void SyncTest::EnableNotifications() { |
561 ASSERT_TRUE(ServerSupportsNotificationControl()); | 561 ASSERT_TRUE(ServerSupportsNotificationControl()); |
562 std::string path = "chromiumsync/enablenotifications"; | 562 std::string path = "chromiumsync/enablenotifications"; |
563 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); | 563 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); |
564 ASSERT_EQ("Notifications enabled", | 564 ASSERT_EQ("Notifications enabled", |
565 UTF16ToASCII(browser()->GetSelectedTabContents()->GetTitle())); | 565 UTF16ToASCII(browser()->GetSelectedWebContents()->GetTitle())); |
566 } | 566 } |
567 | 567 |
568 void SyncTest::TriggerNotification( | 568 void SyncTest::TriggerNotification( |
569 syncable::ModelTypeSet changed_types) { | 569 syncable::ModelTypeSet changed_types) { |
570 ASSERT_TRUE(ServerSupportsNotificationControl()); | 570 ASSERT_TRUE(ServerSupportsNotificationControl()); |
571 const std::string& data = | 571 const std::string& data = |
572 sync_notifier::P2PNotificationData("from_server", | 572 sync_notifier::P2PNotificationData("from_server", |
573 sync_notifier::NOTIFY_ALL, | 573 sync_notifier::NOTIFY_ALL, |
574 changed_types).ToString(); | 574 changed_types).ToString(); |
575 const std::string& path = | 575 const std::string& path = |
576 std::string("chromiumsync/sendnotification?channel=") + | 576 std::string("chromiumsync/sendnotification?channel=") + |
577 sync_notifier::kSyncP2PNotificationChannel + "&data=" + data; | 577 sync_notifier::kSyncP2PNotificationChannel + "&data=" + data; |
578 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); | 578 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); |
579 ASSERT_EQ("Notification sent", | 579 ASSERT_EQ("Notification sent", |
580 UTF16ToASCII(browser()->GetSelectedTabContents()->GetTitle())); | 580 UTF16ToASCII(browser()->GetSelectedWebContents()->GetTitle())); |
581 } | 581 } |
582 | 582 |
583 bool SyncTest::ServerSupportsErrorTriggering() const { | 583 bool SyncTest::ServerSupportsErrorTriggering() const { |
584 EXPECT_NE(SERVER_TYPE_UNDECIDED, server_type_); | 584 EXPECT_NE(SERVER_TYPE_UNDECIDED, server_type_); |
585 | 585 |
586 // Supported only if we're using the python testserver. | 586 // Supported only if we're using the python testserver. |
587 return server_type_ == LOCAL_PYTHON_SERVER; | 587 return server_type_ == LOCAL_PYTHON_SERVER; |
588 } | 588 } |
589 | 589 |
590 void SyncTest::TriggerMigrationDoneError( | 590 void SyncTest::TriggerMigrationDoneError( |
591 syncable::ModelTypeSet model_types) { | 591 syncable::ModelTypeSet model_types) { |
592 ASSERT_TRUE(ServerSupportsErrorTriggering()); | 592 ASSERT_TRUE(ServerSupportsErrorTriggering()); |
593 std::string path = "chromiumsync/migrate"; | 593 std::string path = "chromiumsync/migrate"; |
594 char joiner = '?'; | 594 char joiner = '?'; |
595 for (syncable::ModelTypeSet::Iterator it = model_types.First(); | 595 for (syncable::ModelTypeSet::Iterator it = model_types.First(); |
596 it.Good(); it.Inc()) { | 596 it.Good(); it.Inc()) { |
597 path.append( | 597 path.append( |
598 base::StringPrintf( | 598 base::StringPrintf( |
599 "%ctype=%d", joiner, | 599 "%ctype=%d", joiner, |
600 syncable::GetExtensionFieldNumberFromModelType(it.Get()))); | 600 syncable::GetExtensionFieldNumberFromModelType(it.Get()))); |
601 joiner = '&'; | 601 joiner = '&'; |
602 } | 602 } |
603 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); | 603 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); |
604 ASSERT_EQ("Migration: 200", | 604 ASSERT_EQ("Migration: 200", |
605 UTF16ToASCII(browser()->GetSelectedTabContents()->GetTitle())); | 605 UTF16ToASCII(browser()->GetSelectedWebContents()->GetTitle())); |
606 } | 606 } |
607 | 607 |
608 void SyncTest::TriggerBirthdayError() { | 608 void SyncTest::TriggerBirthdayError() { |
609 ASSERT_TRUE(ServerSupportsErrorTriggering()); | 609 ASSERT_TRUE(ServerSupportsErrorTriggering()); |
610 std::string path = "chromiumsync/birthdayerror"; | 610 std::string path = "chromiumsync/birthdayerror"; |
611 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); | 611 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); |
612 ASSERT_EQ("Birthday error", | 612 ASSERT_EQ("Birthday error", |
613 UTF16ToASCII(browser()->GetSelectedTabContents()->GetTitle())); | 613 UTF16ToASCII(browser()->GetSelectedWebContents()->GetTitle())); |
614 } | 614 } |
615 | 615 |
616 void SyncTest::TriggerTransientError() { | 616 void SyncTest::TriggerTransientError() { |
617 ASSERT_TRUE(ServerSupportsErrorTriggering()); | 617 ASSERT_TRUE(ServerSupportsErrorTriggering()); |
618 std::string path = "chromiumsync/transienterror"; | 618 std::string path = "chromiumsync/transienterror"; |
619 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); | 619 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); |
620 ASSERT_EQ("Transient error", | 620 ASSERT_EQ("Transient error", |
621 UTF16ToASCII(browser()->GetSelectedTabContents()->GetTitle())); | 621 UTF16ToASCII(browser()->GetSelectedWebContents()->GetTitle())); |
622 } | 622 } |
623 | 623 |
624 void SyncTest::TriggerAuthError() { | 624 void SyncTest::TriggerAuthError() { |
625 ASSERT_TRUE(ServerSupportsErrorTriggering()); | 625 ASSERT_TRUE(ServerSupportsErrorTriggering()); |
626 std::string path = "chromiumsync/cred"; | 626 std::string path = "chromiumsync/cred"; |
627 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); | 627 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); |
628 } | 628 } |
629 | 629 |
630 namespace { | 630 namespace { |
631 | 631 |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
687 error.action)); | 687 error.action)); |
688 | 688 |
689 path.append(base::StringPrintf("?error=%d", error_type)); | 689 path.append(base::StringPrintf("?error=%d", error_type)); |
690 path.append(base::StringPrintf("&action=%d", action)); | 690 path.append(base::StringPrintf("&action=%d", action)); |
691 | 691 |
692 path += "&error_description=" + error.error_description; | 692 path += "&error_description=" + error.error_description; |
693 path += "&url=" + error.url; | 693 path += "&url=" + error.url; |
694 | 694 |
695 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); | 695 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); |
696 std::string output = UTF16ToASCII( | 696 std::string output = UTF16ToASCII( |
697 browser()->GetSelectedTabContents()->GetTitle()); | 697 browser()->GetSelectedWebContents()->GetTitle()); |
698 ASSERT_TRUE(output.find("SetError: 200") != string16::npos); | 698 ASSERT_TRUE(output.find("SetError: 200") != string16::npos); |
699 } | 699 } |
700 | 700 |
701 void SyncTest::TriggerSetSyncTabs() { | 701 void SyncTest::TriggerSetSyncTabs() { |
702 ASSERT_TRUE(ServerSupportsErrorTriggering()); | 702 ASSERT_TRUE(ServerSupportsErrorTriggering()); |
703 std::string path = "chromiumsync/synctabs"; | 703 std::string path = "chromiumsync/synctabs"; |
704 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); | 704 ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path)); |
705 ASSERT_EQ("Sync Tabs", | 705 ASSERT_EQ("Sync Tabs", |
706 UTF16ToASCII(browser()->GetSelectedTabContents()->GetTitle())); | 706 UTF16ToASCII(browser()->GetSelectedWebContents()->GetTitle())); |
707 } | 707 } |
708 | 708 |
709 int SyncTest::NumberOfDefaultSyncItems() const { | 709 int SyncTest::NumberOfDefaultSyncItems() const { |
710 // Just return the current number of basic sync items that are synced, | 710 // Just return the current number of basic sync items that are synced, |
711 // including preferences, themes, and search engines. | 711 // including preferences, themes, and search engines. |
712 // TODO(stevet): It would be nice if there was some mechanism for retrieving | 712 // TODO(stevet): It would be nice if there was some mechanism for retrieving |
713 // this sum from each data type without having to manually count and update | 713 // this sum from each data type without having to manually count and update |
714 // this value. | 714 // this value. |
715 return 9; | 715 return 9; |
716 } | 716 } |
717 | 717 |
718 void SyncTest::SetProxyConfig(net::URLRequestContextGetter* context_getter, | 718 void SyncTest::SetProxyConfig(net::URLRequestContextGetter* context_getter, |
719 const net::ProxyConfig& proxy_config) { | 719 const net::ProxyConfig& proxy_config) { |
720 base::WaitableEvent done(false, false); | 720 base::WaitableEvent done(false, false); |
721 BrowserThread::PostTask( | 721 BrowserThread::PostTask( |
722 BrowserThread::IO, FROM_HERE, | 722 BrowserThread::IO, FROM_HERE, |
723 base::Bind(&SetProxyConfigCallback, &done, | 723 base::Bind(&SetProxyConfigCallback, &done, |
724 make_scoped_refptr(context_getter), proxy_config)); | 724 make_scoped_refptr(context_getter), proxy_config)); |
725 done.Wait(); | 725 done.Wait(); |
726 } | 726 } |
OLD | NEW |