Index: chrome/browser/google/google_url_tracker_unittest.cc |
diff --git a/chrome/browser/google/google_url_tracker_unittest.cc b/chrome/browser/google/google_url_tracker_unittest.cc |
index e77fb50424e4cf437b21612b4ffb260c83b41fac..1ebe61369cfad3fc5d09681fe5f7d55e12707313 100644 |
--- a/chrome/browser/google/google_url_tracker_unittest.cc |
+++ b/chrome/browser/google/google_url_tracker_unittest.cc |
@@ -63,46 +63,36 @@ |
// GoogleURLTrackerTest, so they can call members on it. |
-// TestCallbackListener --------------------------------------------------- |
- |
-class TestCallbackListener { |
+// TestNotificationObserver --------------------------------------------------- |
+ |
+class TestNotificationObserver : public content::NotificationObserver { |
public: |
- TestCallbackListener(); |
- virtual ~TestCallbackListener(); |
- |
- bool HasRegisteredCallback(); |
- void RegisterCallback(GoogleURLTracker* google_url_tracker); |
- |
+ TestNotificationObserver(); |
+ virtual ~TestNotificationObserver(); |
+ |
+ virtual void Observe(int type, |
+ const content::NotificationSource& source, |
+ const content::NotificationDetails& details) OVERRIDE; |
bool notified() const { return notified_; } |
void clear_notified() { notified_ = false; } |
private: |
- void OnGoogleURLUpdated(GURL old_url, GURL new_url); |
- |
bool notified_; |
- scoped_ptr<GoogleURLTracker::Subscription> google_url_updated_subscription_; |
}; |
-TestCallbackListener::TestCallbackListener() : notified_(false) { |
-} |
- |
-TestCallbackListener::~TestCallbackListener() { |
-} |
- |
-void TestCallbackListener::OnGoogleURLUpdated(GURL old_url, GURL new_url) { |
+TestNotificationObserver::TestNotificationObserver() : notified_(false) { |
+} |
+ |
+TestNotificationObserver::~TestNotificationObserver() { |
+} |
+ |
+void TestNotificationObserver::Observe( |
+ int type, |
+ const content::NotificationSource& source, |
+ const content::NotificationDetails& details) { |
notified_ = true; |
} |
-bool TestCallbackListener::HasRegisteredCallback() { |
- return google_url_updated_subscription_.get(); |
-} |
- |
-void TestCallbackListener::RegisterCallback( |
- GoogleURLTracker* google_url_tracker) { |
- google_url_updated_subscription_ = |
- google_url_tracker->RegisterCallback(base::Bind( |
- &TestCallbackListener::OnGoogleURLUpdated, base::Unretained(this))); |
-} |
// TestGoogleURLTrackerNavigationHelper ------------------------------------- |
@@ -242,8 +232,8 @@ |
GoogleURLTrackerInfoBarDelegate* GetInfoBarDelegate(intptr_t unique_id); |
void ExpectDefaultURLs() const; |
void ExpectListeningForCommit(intptr_t unique_id, bool listening); |
- bool listener_notified() const { return listener_.notified(); } |
- void clear_listener_notified() { listener_.clear_notified(); } |
+ bool observer_notified() const { return observer_.notified(); } |
+ void clear_observer_notified() { observer_.clear_notified(); } |
private: |
// Since |infobar_service| is really a magic number rather than an actual |
@@ -261,10 +251,11 @@ |
// net::NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests(). |
scoped_ptr<net::NetworkChangeNotifier> network_change_notifier_; |
net::TestURLFetcherFactory fetcher_factory_; |
+ content::NotificationRegistrar registrar_; |
+ TestNotificationObserver observer_; |
GoogleURLTrackerNavigationHelper* nav_helper_; |
TestingProfile profile_; |
scoped_ptr<GoogleURLTracker> google_url_tracker_; |
- TestCallbackListener listener_; |
// This tracks the different "tabs" a test has "opened", so we can close them |
// properly before shutting down |google_url_tracker_|, which expects that. |
std::set<int> unique_ids_seen_; |
@@ -316,6 +307,7 @@ |
CloseTab(*unique_ids_seen_.begin()); |
nav_helper_ = NULL; |
+ google_url_tracker_.reset(); |
network_change_notifier_.reset(); |
} |
@@ -339,8 +331,12 @@ |
} |
void GoogleURLTrackerTest::RequestServerCheck() { |
- if (!listener_.HasRegisteredCallback()) |
- listener_.RegisterCallback(google_url_tracker_.get()); |
+ if (!registrar_.IsRegistered(&observer_, |
+ chrome::NOTIFICATION_GOOGLE_URL_UPDATED, |
+ content::Source<Profile>(&profile_))) { |
+ registrar_.Add(&observer_, chrome::NOTIFICATION_GOOGLE_URL_UPDATED, |
+ content::Source<Profile>(&profile_)); |
+ } |
google_url_tracker_->SetNeedToFetch(); |
} |
@@ -511,21 +507,21 @@ |
EXPECT_FALSE(GetFetcher()); |
MockSearchDomainCheckResponse("http://www.google.co.uk/"); |
ExpectDefaultURLs(); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
} |
TEST_F(GoogleURLTrackerTest, UpdateOnFirstRun) { |
RequestServerCheck(); |
EXPECT_FALSE(GetFetcher()); |
ExpectDefaultURLs(); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
FinishSleep(); |
MockSearchDomainCheckResponse("http://www.google.co.uk/"); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), fetched_google_url()); |
// GoogleURL should be updated, becase there was no last prompted URL. |
EXPECT_EQ(GURL("http://www.google.co.uk/"), google_url()); |
- EXPECT_TRUE(listener_notified()); |
+ EXPECT_TRUE(observer_notified()); |
} |
TEST_F(GoogleURLTrackerTest, DontUpdateWhenUnchanged) { |
@@ -534,7 +530,7 @@ |
RequestServerCheck(); |
EXPECT_FALSE(GetFetcher()); |
ExpectDefaultURLs(); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
FinishSleep(); |
MockSearchDomainCheckResponse("http://www.google.co.uk/"); |
@@ -542,7 +538,7 @@ |
// GoogleURL should not be updated, because the fetched and prompted URLs |
// match. |
EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url()); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
} |
TEST_F(GoogleURLTrackerTest, DontPromptOnBadReplies) { |
@@ -551,14 +547,14 @@ |
RequestServerCheck(); |
EXPECT_FALSE(GetFetcher()); |
ExpectDefaultURLs(); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
// Old-style domain string. |
FinishSleep(); |
MockSearchDomainCheckResponse(".google.co.in"); |
EXPECT_EQ(GURL(), fetched_google_url()); |
EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url()); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
SetNavigationPending(1, true); |
CommitSearch(1, GURL("http://www.google.co.uk/search?q=test")); |
EXPECT_TRUE(GetMapEntry(1) == NULL); |
@@ -568,7 +564,7 @@ |
MockSearchDomainCheckResponse("http://mail.google.com/"); |
EXPECT_EQ(GURL(), fetched_google_url()); |
EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url()); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
SetNavigationPending(1, true); |
CommitSearch(1, GURL("http://www.google.co.uk/search?q=test")); |
EXPECT_TRUE(GetMapEntry(1) == NULL); |
@@ -578,7 +574,7 @@ |
MockSearchDomainCheckResponse("http://www.google.com/search"); |
EXPECT_EQ(GURL(), fetched_google_url()); |
EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url()); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
SetNavigationPending(1, true); |
CommitSearch(1, GURL("http://www.google.co.uk/search?q=test")); |
EXPECT_TRUE(GetMapEntry(1) == NULL); |
@@ -588,7 +584,7 @@ |
MockSearchDomainCheckResponse("http://www.google.com/?q=foo"); |
EXPECT_EQ(GURL(), fetched_google_url()); |
EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url()); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
SetNavigationPending(1, true); |
CommitSearch(1, GURL("http://www.google.co.uk/search?q=test")); |
EXPECT_TRUE(GetMapEntry(1) == NULL); |
@@ -598,7 +594,7 @@ |
MockSearchDomainCheckResponse("http://www.google.com/#anchor"); |
EXPECT_EQ(GURL(), fetched_google_url()); |
EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url()); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
SetNavigationPending(1, true); |
CommitSearch(1, GURL("http://www.google.co.uk/search?q=test")); |
EXPECT_TRUE(GetMapEntry(1) == NULL); |
@@ -608,7 +604,7 @@ |
MockSearchDomainCheckResponse("HJ)*qF)_*&@f1"); |
EXPECT_EQ(GURL(), fetched_google_url()); |
EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url()); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
SetNavigationPending(1, true); |
CommitSearch(1, GURL("http://www.google.co.uk/search?q=test")); |
EXPECT_TRUE(GetMapEntry(1) == NULL); |
@@ -623,7 +619,7 @@ |
EXPECT_EQ(GURL("http://www.google.co.uk/"), fetched_google_url()); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), google_url()); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), GetLastPromptedGoogleURL()); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
} |
TEST_F(GoogleURLTrackerTest, SilentlyAcceptSchemeChange) { |
@@ -637,14 +633,14 @@ |
EXPECT_EQ(GURL("https://www.google.co.uk/"), fetched_google_url()); |
EXPECT_EQ(GURL("https://www.google.co.uk/"), google_url()); |
EXPECT_EQ(GURL("https://www.google.co.uk/"), GetLastPromptedGoogleURL()); |
- EXPECT_TRUE(listener_notified()); |
+ EXPECT_TRUE(observer_notified()); |
NotifyIPAddressChanged(); |
MockSearchDomainCheckResponse("http://www.google.co.uk/"); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), fetched_google_url()); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), google_url()); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), GetLastPromptedGoogleURL()); |
- EXPECT_TRUE(listener_notified()); |
+ EXPECT_TRUE(observer_notified()); |
} |
TEST_F(GoogleURLTrackerTest, RefetchOnIPAddressChange) { |
@@ -653,15 +649,15 @@ |
MockSearchDomainCheckResponse("http://www.google.co.uk/"); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), fetched_google_url()); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), google_url()); |
- EXPECT_TRUE(listener_notified()); |
- clear_listener_notified(); |
+ EXPECT_TRUE(observer_notified()); |
+ clear_observer_notified(); |
NotifyIPAddressChanged(); |
MockSearchDomainCheckResponse("http://www.google.co.in/"); |
EXPECT_EQ(GURL("http://www.google.co.in/"), fetched_google_url()); |
// Just fetching a new URL shouldn't reset things without a prompt. |
EXPECT_EQ(GURL("http://www.google.co.uk/"), google_url()); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
} |
TEST_F(GoogleURLTrackerTest, DontRefetchWhenNoOneRequestsCheck) { |
@@ -671,7 +667,7 @@ |
EXPECT_FALSE(GetFetcher()); |
MockSearchDomainCheckResponse("http://www.google.co.uk/"); |
ExpectDefaultURLs(); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
} |
TEST_F(GoogleURLTrackerTest, FetchOnLateRequest) { |
@@ -685,7 +681,7 @@ |
MockSearchDomainCheckResponse("http://www.google.co.uk/"); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), fetched_google_url()); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), google_url()); |
- EXPECT_TRUE(listener_notified()); |
+ EXPECT_TRUE(observer_notified()); |
} |
TEST_F(GoogleURLTrackerTest, DontFetchTwiceOnLateRequests) { |
@@ -699,8 +695,8 @@ |
MockSearchDomainCheckResponse("http://www.google.co.uk/"); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), fetched_google_url()); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), google_url()); |
- EXPECT_TRUE(listener_notified()); |
- clear_listener_notified(); |
+ EXPECT_TRUE(observer_notified()); |
+ clear_observer_notified(); |
RequestServerCheck(); |
// The second request should be ignored. |
@@ -708,7 +704,7 @@ |
MockSearchDomainCheckResponse("http://www.google.co.in/"); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), fetched_google_url()); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), google_url()); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
} |
TEST_F(GoogleURLTrackerTest, SearchingDoesNothingIfNoNeedToPrompt) { |
@@ -718,8 +714,8 @@ |
EXPECT_EQ(GURL("http://www.google.co.uk/"), fetched_google_url()); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), google_url()); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), GetLastPromptedGoogleURL()); |
- EXPECT_TRUE(listener_notified()); |
- clear_listener_notified(); |
+ EXPECT_TRUE(observer_notified()); |
+ clear_observer_notified(); |
SetNavigationPending(1, true); |
CommitSearch(1, GURL("http://www.google.co.uk/search?q=test")); |
@@ -727,7 +723,7 @@ |
EXPECT_EQ(GURL("http://www.google.co.uk/"), fetched_google_url()); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), google_url()); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), GetLastPromptedGoogleURL()); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
} |
TEST_F(GoogleURLTrackerTest, TabClosedOnPendingSearch) { |
@@ -738,7 +734,7 @@ |
EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url()); |
EXPECT_EQ(GURL("http://www.google.co.jp/"), fetched_google_url()); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), GetLastPromptedGoogleURL()); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
SetNavigationPending(1, true); |
GoogleURLTrackerMapEntry* map_entry = GetMapEntry(1); |
@@ -746,13 +742,13 @@ |
EXPECT_FALSE(map_entry->has_infobar_delegate()); |
EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url()); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), GetLastPromptedGoogleURL()); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
CloseTab(1); |
EXPECT_TRUE(GetMapEntry(1) == NULL); |
EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url()); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), GetLastPromptedGoogleURL()); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
} |
TEST_F(GoogleURLTrackerTest, TabClosedOnCommittedSearch) { |
@@ -769,7 +765,7 @@ |
EXPECT_TRUE(GetMapEntry(1) == NULL); |
EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url()); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), GetLastPromptedGoogleURL()); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
} |
TEST_F(GoogleURLTrackerTest, InfoBarClosed) { |
@@ -787,7 +783,7 @@ |
EXPECT_TRUE(GetMapEntry(1) == NULL); |
EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url()); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), GetLastPromptedGoogleURL()); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
} |
TEST_F(GoogleURLTrackerTest, InfoBarRefused) { |
@@ -805,7 +801,7 @@ |
EXPECT_TRUE(GetMapEntry(1) == NULL); |
EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url()); |
EXPECT_EQ(GURL("http://www.google.co.jp/"), GetLastPromptedGoogleURL()); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
} |
TEST_F(GoogleURLTrackerTest, InfoBarAccepted) { |
@@ -823,7 +819,7 @@ |
EXPECT_TRUE(GetMapEntry(1) == NULL); |
EXPECT_EQ(GURL("http://www.google.co.jp/"), google_url()); |
EXPECT_EQ(GURL("http://www.google.co.jp/"), GetLastPromptedGoogleURL()); |
- EXPECT_TRUE(listener_notified()); |
+ EXPECT_TRUE(observer_notified()); |
} |
TEST_F(GoogleURLTrackerTest, FetchesCanAutomaticallyCloseInfoBars) { |
@@ -946,7 +942,7 @@ |
EXPECT_TRUE(map_entry->has_infobar_delegate()); |
EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url()); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), GetLastPromptedGoogleURL()); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
ASSERT_NO_FATAL_FAILURE(ExpectListeningForCommit(1, false)); |
} |
@@ -1018,7 +1014,7 @@ |
ASSERT_NO_FATAL_FAILURE(ExpectListeningForCommit(1, false)); |
EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url()); |
EXPECT_EQ(GURL("http://www.google.co.uk/"), GetLastPromptedGoogleURL()); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
} |
TEST_F(GoogleURLTrackerTest, MultipleMapEntries) { |
@@ -1056,7 +1052,7 @@ |
delegate2->Close(false); |
EXPECT_TRUE(GetMapEntry(2) == NULL); |
- EXPECT_FALSE(listener_notified()); |
+ EXPECT_FALSE(observer_notified()); |
delegate4->Accept(); |
EXPECT_TRUE(GetMapEntry(1) == NULL); |
@@ -1064,7 +1060,7 @@ |
EXPECT_TRUE(GetMapEntry(4) == NULL); |
EXPECT_EQ(GURL("http://www.google.co.jp/"), google_url()); |
EXPECT_EQ(GURL("http://www.google.co.jp/"), GetLastPromptedGoogleURL()); |
- EXPECT_TRUE(listener_notified()); |
+ EXPECT_TRUE(observer_notified()); |
} |
TEST_F(GoogleURLTrackerTest, IgnoreIrrelevantNavigation) { |