Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1373)

Unified Diff: components/google/core/browser/google_url_tracker_unittest.cc

Issue 808253006: Remove the GoogleURLTracker infobar functionality entirely. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Resync Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/google/core/browser/google_url_tracker_unittest.cc
diff --git a/components/google/core/browser/google_url_tracker_unittest.cc b/components/google/core/browser/google_url_tracker_unittest.cc
index 184468a7977ae1319e0cd1a91de9516d3119ab41..a89ddedbb2877c29eac1a2b6dbe07a3a5cf1d648 100644
--- a/components/google/core/browser/google_url_tracker_unittest.cc
+++ b/components/google/core/browser/google_url_tracker_unittest.cc
@@ -4,7 +4,6 @@
#include "components/google/core/browser/google_url_tracker.h"
-#include <set>
#include <string>
#include "base/memory/scoped_ptr.h"
@@ -14,11 +13,6 @@
#include "base/prefs/testing_pref_service.h"
#include "components/google/core/browser/google_pref_names.h"
#include "components/google/core/browser/google_url_tracker_client.h"
-#include "components/google/core/browser/google_url_tracker_infobar_delegate.h"
-#include "components/google/core/browser/google_url_tracker_navigation_helper.h"
-#include "components/infobars/core/confirm_infobar_delegate.h"
-#include "components/infobars/core/infobar.h"
-#include "components/infobars/core/infobar_delegate.h"
#include "net/url_request/test_url_fetcher_factory.h"
#include "net/url_request/url_fetcher.h"
#include "net/url_request/url_request_test_util.h"
@@ -75,8 +69,6 @@ class TestGoogleURLTrackerClient : public GoogleURLTrackerClient {
explicit TestGoogleURLTrackerClient(PrefService* prefs_);
~TestGoogleURLTrackerClient() override;
- void SetListeningForNavigationStart(bool listen) override;
- bool IsListeningForNavigationStart() override;
bool IsBackgroundNetworkingEnabled() override;
PrefService* GetPrefs() override;
net::URLRequestContextGetter* GetRequestContext() override;
@@ -84,7 +76,6 @@ class TestGoogleURLTrackerClient : public GoogleURLTrackerClient {
private:
PrefService* prefs_;
scoped_refptr<net::TestURLRequestContextGetter> request_context_;
- bool observe_nav_start_;
DISALLOW_COPY_AND_ASSIGN(TestGoogleURLTrackerClient);
};
@@ -92,21 +83,12 @@ class TestGoogleURLTrackerClient : public GoogleURLTrackerClient {
TestGoogleURLTrackerClient::TestGoogleURLTrackerClient(PrefService* prefs)
: prefs_(prefs),
request_context_(new net::TestURLRequestContextGetter(
- base::MessageLoopProxy::current())),
- observe_nav_start_(false) {
+ base::MessageLoopProxy::current())) {
}
TestGoogleURLTrackerClient::~TestGoogleURLTrackerClient() {
}
-void TestGoogleURLTrackerClient::SetListeningForNavigationStart(bool listen) {
- observe_nav_start_ = listen;
-}
-
-bool TestGoogleURLTrackerClient::IsListeningForNavigationStart() {
- return observe_nav_start_;
-}
-
bool TestGoogleURLTrackerClient::IsBackgroundNetworkingEnabled() {
return true;
}
@@ -120,96 +102,6 @@ net::URLRequestContextGetter* TestGoogleURLTrackerClient::GetRequestContext() {
}
-// TestGoogleURLTrackerNavigationHelper ---------------------------------------
-
-class TestGoogleURLTrackerNavigationHelper
- : public GoogleURLTrackerNavigationHelper {
- public:
- explicit TestGoogleURLTrackerNavigationHelper(GoogleURLTracker* tracker);
- ~TestGoogleURLTrackerNavigationHelper() override;
-
- void SetListeningForNavigationCommit(bool listen) override;
- bool IsListeningForNavigationCommit() override;
- void SetListeningForTabDestruction(bool listen) override;
- bool IsListeningForTabDestruction() override;
- void OpenURL(GURL url,
- WindowOpenDisposition disposition,
- bool user_clicked_on_link) override;
-
- private:
- bool listening_for_nav_commit_;
- bool listening_for_tab_destruction_;
-
- DISALLOW_COPY_AND_ASSIGN(TestGoogleURLTrackerNavigationHelper);
-};
-
-TestGoogleURLTrackerNavigationHelper::TestGoogleURLTrackerNavigationHelper(
- GoogleURLTracker* tracker)
- : GoogleURLTrackerNavigationHelper(tracker),
- listening_for_nav_commit_(false),
- listening_for_tab_destruction_(false) {
-}
-
-TestGoogleURLTrackerNavigationHelper::~TestGoogleURLTrackerNavigationHelper() {
-}
-
-void TestGoogleURLTrackerNavigationHelper::SetListeningForNavigationCommit(
- bool listen) {
- listening_for_nav_commit_ = listen;
-}
-
-bool TestGoogleURLTrackerNavigationHelper::IsListeningForNavigationCommit() {
- return listening_for_nav_commit_;
-}
-
-void TestGoogleURLTrackerNavigationHelper::SetListeningForTabDestruction(
- bool listen) {
- listening_for_tab_destruction_ = listen;
-}
-
-bool TestGoogleURLTrackerNavigationHelper::IsListeningForTabDestruction() {
- return listening_for_tab_destruction_;
-}
-
-void TestGoogleURLTrackerNavigationHelper::OpenURL(
- GURL url,
- WindowOpenDisposition disposition,
- bool user_clicked_on_link) {
-}
-
-// TestInfoBarManager ---------------------------------------------------------
-
-class TestInfoBarManager : public infobars::InfoBarManager {
- public:
- explicit TestInfoBarManager(int unique_id);
- ~TestInfoBarManager() override;
- int GetActiveEntryID() override;
-
- private:
- // infobars::InfoBarManager:
- scoped_ptr<infobars::InfoBar> CreateConfirmInfoBar(
- scoped_ptr<ConfirmInfoBarDelegate> delegate) override;
-
- int unique_id_;
- DISALLOW_COPY_AND_ASSIGN(TestInfoBarManager);
-};
-
-TestInfoBarManager::TestInfoBarManager(int unique_id) : unique_id_(unique_id) {
-}
-
-TestInfoBarManager::~TestInfoBarManager() {
- ShutDown();
-}
-
-int TestInfoBarManager::GetActiveEntryID() {
- return unique_id_;
-}
-
-scoped_ptr<infobars::InfoBar> TestInfoBarManager::CreateConfirmInfoBar(
- scoped_ptr<ConfirmInfoBarDelegate> delegate) {
- return make_scoped_ptr(new infobars::InfoBar(delegate.Pass()));
-}
-
} // namespace
// GoogleURLTrackerTest -------------------------------------------------------
@@ -228,30 +120,10 @@ class GoogleURLTrackerTest : public testing::Test {
void RequestServerCheck();
void FinishSleep();
void NotifyNetworkChanged();
- GURL fetched_google_url() const {
- return google_url_tracker_->fetched_google_url();
- }
void set_google_url(const GURL& url) {
google_url_tracker_->google_url_ = url;
}
GURL google_url() const { return google_url_tracker_->google_url(); }
- void SetLastPromptedGoogleURL(const GURL& url);
- GURL GetLastPromptedGoogleURL();
- void SetNavigationPending(infobars::InfoBarManager* infobar_manager,
- bool is_search);
- void CommitNonSearch(infobars::InfoBarManager* infobar_manager);
- void CommitSearch(infobars::InfoBarManager* infobar_manager,
- const GURL& search_url);
- void CloseTab(infobars::InfoBarManager* infobar_manager);
- GoogleURLTrackerMapEntry* GetMapEntry(
- infobars::InfoBarManager* infobar_manager);
- GoogleURLTrackerInfoBarDelegate* GetInfoBarDelegate(
- infobars::InfoBarManager* infobar_manager);
- GoogleURLTrackerNavigationHelper* GetNavigationHelper(
- infobars::InfoBarManager* infobar_manager);
- void ExpectDefaultURLs() const;
- void ExpectListeningForCommit(infobars::InfoBarManager* infobar_manager,
- bool listening);
bool listener_notified() const { return listener_.notified(); }
void clear_listener_notified() { listener_.clear_notified(); }
@@ -266,18 +138,12 @@ class GoogleURLTrackerTest : public testing::Test {
GoogleURLTrackerClient* client_;
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<infobars::InfoBarManager*> infobar_managers_seen_;
};
GoogleURLTrackerTest::GoogleURLTrackerTest() {
prefs_.registry()->RegisterStringPref(
prefs::kLastKnownGoogleURL,
GoogleURLTracker::kDefaultGoogleHomepage);
- prefs_.registry()->RegisterStringPref(
- prefs::kLastPromptedGoogleURL,
- std::string());
}
GoogleURLTrackerTest::~GoogleURLTrackerTest() {
@@ -294,8 +160,6 @@ void GoogleURLTrackerTest::SetUp() {
}
void GoogleURLTrackerTest::TearDown() {
- while (!infobar_managers_seen_.empty())
- CloseTab(*infobar_managers_seen_.begin());
google_url_tracker_->Shutdown();
}
@@ -336,276 +200,104 @@ void GoogleURLTrackerTest::NotifyNetworkChanged() {
base::MessageLoop::current()->RunUntilIdle();
}
-void GoogleURLTrackerTest::SetLastPromptedGoogleURL(const GURL& url) {
- prefs_.SetString(prefs::kLastPromptedGoogleURL, url.spec());
-}
-
-GURL GoogleURLTrackerTest::GetLastPromptedGoogleURL() {
- return GURL(prefs_.GetString(prefs::kLastPromptedGoogleURL));
-}
-
-void GoogleURLTrackerTest::SetNavigationPending(
- infobars::InfoBarManager* infobar_manager,
- bool is_search) {
- if (is_search) {
- google_url_tracker_->SearchCommitted();
- // Note that the call above might not have actually registered a listener
- // for navigation starts if the searchdomaincheck response was bogus.
- }
- infobar_managers_seen_.insert(infobar_manager);
- if (client_->IsListeningForNavigationStart()) {
- google_url_tracker_->OnNavigationPending(
- scoped_ptr<GoogleURLTrackerNavigationHelper>(
- new TestGoogleURLTrackerNavigationHelper(
- google_url_tracker_.get())),
- infobar_manager,
- infobar_manager->GetActiveEntryID());
- }
-}
-
-void GoogleURLTrackerTest::CommitNonSearch(
- infobars::InfoBarManager* infobar_manager) {
- GoogleURLTrackerMapEntry* map_entry = GetMapEntry(infobar_manager);
- if (!map_entry)
- return;
-
- ExpectListeningForCommit(infobar_manager, false);
-
- // The infobar should be showing; otherwise the pending non-search should
- // have closed it.
- ASSERT_TRUE(map_entry->has_infobar_delegate());
-
- // The pending_id should have been reset to 0 when the non-search became
- // pending.
- EXPECT_EQ(0, map_entry->infobar_delegate()->pending_id());
-
- // Committing the navigation would close the infobar.
- map_entry->infobar_delegate()->Close(false);
-}
-
-void GoogleURLTrackerTest::CommitSearch(
- infobars::InfoBarManager* infobar_manager,
- const GURL& search_url) {
- DCHECK(search_url.is_valid());
- GoogleURLTrackerNavigationHelper* nav_helper =
- GetNavigationHelper(infobar_manager);
- if (nav_helper && nav_helper->IsListeningForNavigationCommit()) {
- google_url_tracker_->OnNavigationCommitted(infobar_manager, search_url);
- }
-}
-
-void GoogleURLTrackerTest::CloseTab(infobars::InfoBarManager* infobar_manager) {
- infobar_managers_seen_.erase(infobar_manager);
- GoogleURLTrackerNavigationHelper* nav_helper =
- GetNavigationHelper(infobar_manager);
- if (nav_helper && nav_helper->IsListeningForTabDestruction()) {
- google_url_tracker_->OnTabClosed(nav_helper);
- } else {
- // Closing a tab with an infobar showing would close the infobar.
- GoogleURLTrackerInfoBarDelegate* delegate =
- GetInfoBarDelegate(infobar_manager);
- if (delegate)
- delegate->Close(false);
- }
-}
-
-GoogleURLTrackerMapEntry* GoogleURLTrackerTest::GetMapEntry(
- infobars::InfoBarManager* infobar_manager) {
- GoogleURLTracker::EntryMap::const_iterator i =
- google_url_tracker_->entry_map_.find(infobar_manager);
- return (i == google_url_tracker_->entry_map_.end()) ? NULL : i->second;
-}
-
-GoogleURLTrackerInfoBarDelegate* GoogleURLTrackerTest::GetInfoBarDelegate(
- infobars::InfoBarManager* infobar_manager) {
- GoogleURLTrackerMapEntry* map_entry = GetMapEntry(infobar_manager);
- return map_entry ? map_entry->infobar_delegate() : NULL;
-}
-
-GoogleURLTrackerNavigationHelper* GoogleURLTrackerTest::GetNavigationHelper(
- infobars::InfoBarManager* infobar_manager) {
- GoogleURLTrackerMapEntry* map_entry = GetMapEntry(infobar_manager);
- return map_entry ? map_entry->navigation_helper() : NULL;
-}
-
-void GoogleURLTrackerTest::ExpectDefaultURLs() const {
- EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url());
- EXPECT_EQ(GURL(), fetched_google_url());
-}
-
-void GoogleURLTrackerTest::ExpectListeningForCommit(
- infobars::InfoBarManager* infobar_manager,
- bool listening) {
- GoogleURLTrackerMapEntry* map_entry = GetMapEntry(infobar_manager);
- if (map_entry) {
- EXPECT_EQ(listening,
- map_entry->navigation_helper()->IsListeningForNavigationCommit());
- } else {
- EXPECT_FALSE(listening);
- }
-}
-
// Tests ----------------------------------------------------------------------
TEST_F(GoogleURLTrackerTest, DontFetchWhenNoOneRequestsCheck) {
- ExpectDefaultURLs();
+ EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url());
FinishSleep();
// No one called RequestServerCheck() so nothing should have happened.
EXPECT_FALSE(GetFetcher());
MockSearchDomainCheckResponse("http://www.google.co.uk/");
- ExpectDefaultURLs();
+ EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url());
EXPECT_FALSE(listener_notified());
}
-TEST_F(GoogleURLTrackerTest, UpdateOnFirstRun) {
+TEST_F(GoogleURLTrackerTest, Update) {
RequestServerCheck();
EXPECT_FALSE(GetFetcher());
- ExpectDefaultURLs();
+ EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url());
EXPECT_FALSE(listener_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());
}
TEST_F(GoogleURLTrackerTest, DontUpdateWhenUnchanged) {
- SetLastPromptedGoogleURL(GURL("http://www.google.co.uk/"));
+ GURL original_google_url("http://www.google.co.uk/");
+ set_google_url(original_google_url);
RequestServerCheck();
EXPECT_FALSE(GetFetcher());
- ExpectDefaultURLs();
+ EXPECT_EQ(original_google_url, google_url());
EXPECT_FALSE(listener_notified());
FinishSleep();
- MockSearchDomainCheckResponse("http://www.google.co.uk/");
- EXPECT_EQ(GURL("http://www.google.co.uk/"), fetched_google_url());
- // GoogleURL should not be updated, because the fetched and prompted URLs
- // match.
- EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url());
+ MockSearchDomainCheckResponse(original_google_url.spec());
+ EXPECT_EQ(original_google_url, google_url());
+ // No one should be notified, because the new URL matches the old.
EXPECT_FALSE(listener_notified());
}
TEST_F(GoogleURLTrackerTest, DontPromptOnBadReplies) {
- TestInfoBarManager infobar_manager(1);
- SetLastPromptedGoogleURL(GURL("http://www.google.co.uk/"));
+ GURL original_google_url("http://www.google.co.uk/");
+ set_google_url(original_google_url);
RequestServerCheck();
EXPECT_FALSE(GetFetcher());
- ExpectDefaultURLs();
+ EXPECT_EQ(original_google_url, google_url());
EXPECT_FALSE(listener_notified());
// Old-style domain string.
FinishSleep();
MockSearchDomainCheckResponse(".google.co.in");
- EXPECT_EQ(GURL(), fetched_google_url());
- EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url());
+ EXPECT_EQ(original_google_url, google_url());
EXPECT_FALSE(listener_notified());
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.co.uk/search?q=test"));
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
// Bad subdomain.
NotifyNetworkChanged();
MockSearchDomainCheckResponse("http://mail.google.com/");
- EXPECT_EQ(GURL(), fetched_google_url());
- EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url());
+ EXPECT_EQ(original_google_url, google_url());
EXPECT_FALSE(listener_notified());
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.co.uk/search?q=test"));
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
// Non-empty path.
NotifyNetworkChanged();
MockSearchDomainCheckResponse("http://www.google.com/search");
- EXPECT_EQ(GURL(), fetched_google_url());
- EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url());
+ EXPECT_EQ(original_google_url, google_url());
EXPECT_FALSE(listener_notified());
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.co.uk/search?q=test"));
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
// Non-empty query.
NotifyNetworkChanged();
MockSearchDomainCheckResponse("http://www.google.com/?q=foo");
- EXPECT_EQ(GURL(), fetched_google_url());
- EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url());
+ EXPECT_EQ(original_google_url, google_url());
EXPECT_FALSE(listener_notified());
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.co.uk/search?q=test"));
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
// Non-empty ref.
NotifyNetworkChanged();
MockSearchDomainCheckResponse("http://www.google.com/#anchor");
- EXPECT_EQ(GURL(), fetched_google_url());
- EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url());
+ EXPECT_EQ(original_google_url, google_url());
EXPECT_FALSE(listener_notified());
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.co.uk/search?q=test"));
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
// Complete garbage.
NotifyNetworkChanged();
MockSearchDomainCheckResponse("HJ)*qF)_*&@f1");
- EXPECT_EQ(GURL(), fetched_google_url());
- EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url());
+ EXPECT_EQ(original_google_url, google_url());
EXPECT_FALSE(listener_notified());
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.co.uk/search?q=test"));
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
-}
-
-TEST_F(GoogleURLTrackerTest, UpdatePromptedURLOnReturnToPreviousLocation) {
- SetLastPromptedGoogleURL(GURL("http://www.google.co.jp/"));
- set_google_url(GURL("http://www.google.co.uk/"));
- RequestServerCheck();
- FinishSleep();
- 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_FALSE(listener_notified());
-}
-
-TEST_F(GoogleURLTrackerTest, SilentlyAcceptSchemeChange) {
- // We should auto-accept changes to the current Google URL that merely change
- // the scheme, regardless of what the last prompted URL was.
- SetLastPromptedGoogleURL(GURL("http://www.google.co.jp/"));
- set_google_url(GURL("http://www.google.co.uk/"));
- RequestServerCheck();
- FinishSleep();
- MockSearchDomainCheckResponse("https://www.google.co.uk/");
- 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());
-
- NotifyNetworkChanged();
- 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());
}
TEST_F(GoogleURLTrackerTest, RefetchOnNetworkChange) {
RequestServerCheck();
FinishSleep();
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();
NotifyNetworkChanged();
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_EQ(GURL("http://www.google.co.in/"), google_url());
+ EXPECT_TRUE(listener_notified());
}
TEST_F(GoogleURLTrackerTest, DontRefetchWhenNoOneRequestsCheck) {
@@ -614,7 +306,7 @@ TEST_F(GoogleURLTrackerTest, DontRefetchWhenNoOneRequestsCheck) {
// No one called RequestServerCheck() so nothing should have happened.
EXPECT_FALSE(GetFetcher());
MockSearchDomainCheckResponse("http://www.google.co.uk/");
- ExpectDefaultURLs();
+ EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url());
EXPECT_FALSE(listener_notified());
}
@@ -627,7 +319,6 @@ TEST_F(GoogleURLTrackerTest, FetchOnLateRequest) {
// The first request for a check should trigger a fetch if it hasn't happened
// already.
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());
}
@@ -641,7 +332,6 @@ TEST_F(GoogleURLTrackerTest, DontFetchTwiceOnLateRequests) {
// The first request for a check should trigger a fetch if it hasn't happened
// already.
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();
@@ -650,414 +340,6 @@ TEST_F(GoogleURLTrackerTest, DontFetchTwiceOnLateRequests) {
// The second request should be ignored.
EXPECT_FALSE(GetFetcher());
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());
}
-
-TEST_F(GoogleURLTrackerTest, SearchingDoesNothingIfNoNeedToPrompt) {
- TestInfoBarManager infobar_manager(1);
- RequestServerCheck();
- FinishSleep();
- 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());
- clear_listener_notified();
-
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.co.uk/search?q=test"));
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
- 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());
-}
-
-TEST_F(GoogleURLTrackerTest, TabClosedOnPendingSearch) {
- TestInfoBarManager infobar_manager(1);
- SetLastPromptedGoogleURL(GURL("http://www.google.co.uk/"));
- RequestServerCheck();
- FinishSleep();
- MockSearchDomainCheckResponse("http://www.google.co.jp/");
- 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());
-
- SetNavigationPending(&infobar_manager, true);
- GoogleURLTrackerMapEntry* map_entry = GetMapEntry(&infobar_manager);
- ASSERT_FALSE(map_entry == NULL);
- 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());
-
- CloseTab(&infobar_manager);
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
- EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url());
- EXPECT_EQ(GURL("http://www.google.co.uk/"), GetLastPromptedGoogleURL());
- EXPECT_FALSE(listener_notified());
-}
-
-TEST_F(GoogleURLTrackerTest, TabClosedOnCommittedSearch) {
- TestInfoBarManager infobar_manager(1);
- SetLastPromptedGoogleURL(GURL("http://www.google.co.uk/"));
- RequestServerCheck();
- FinishSleep();
- MockSearchDomainCheckResponse("http://www.google.co.jp/");
-
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.co.uk/search?q=test"));
- EXPECT_FALSE(GetInfoBarDelegate(&infobar_manager) == NULL);
-
- CloseTab(&infobar_manager);
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
- EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url());
- EXPECT_EQ(GURL("http://www.google.co.uk/"), GetLastPromptedGoogleURL());
- EXPECT_FALSE(listener_notified());
-}
-
-TEST_F(GoogleURLTrackerTest, InfoBarClosed) {
- TestInfoBarManager infobar_manager(1);
- SetLastPromptedGoogleURL(GURL("http://www.google.co.uk/"));
- RequestServerCheck();
- FinishSleep();
- MockSearchDomainCheckResponse("http://www.google.co.jp/");
-
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.co.uk/search?q=test"));
- GoogleURLTrackerInfoBarDelegate* infobar =
- GetInfoBarDelegate(&infobar_manager);
- ASSERT_FALSE(infobar == NULL);
-
- infobar->Close(false);
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
- EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url());
- EXPECT_EQ(GURL("http://www.google.co.uk/"), GetLastPromptedGoogleURL());
- EXPECT_FALSE(listener_notified());
-}
-
-TEST_F(GoogleURLTrackerTest, InfoBarRefused) {
- TestInfoBarManager infobar_manager(1);
- SetLastPromptedGoogleURL(GURL("http://www.google.co.uk/"));
- RequestServerCheck();
- FinishSleep();
- MockSearchDomainCheckResponse("http://www.google.co.jp/");
-
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.co.uk/search?q=test"));
- GoogleURLTrackerInfoBarDelegate* infobar =
- GetInfoBarDelegate(&infobar_manager);
- ASSERT_FALSE(infobar == NULL);
-
- infobar->Cancel();
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
- EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url());
- EXPECT_EQ(GURL("http://www.google.co.jp/"), GetLastPromptedGoogleURL());
- EXPECT_FALSE(listener_notified());
-}
-
-TEST_F(GoogleURLTrackerTest, InfoBarAccepted) {
- TestInfoBarManager infobar_manager(1);
- SetLastPromptedGoogleURL(GURL("http://www.google.co.uk/"));
- RequestServerCheck();
- FinishSleep();
- MockSearchDomainCheckResponse("http://www.google.co.jp/");
-
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.co.uk/search?q=test"));
- GoogleURLTrackerInfoBarDelegate* infobar =
- GetInfoBarDelegate(&infobar_manager);
- ASSERT_FALSE(infobar == NULL);
-
- infobar->Accept();
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
- EXPECT_EQ(GURL("http://www.google.co.jp/"), google_url());
- EXPECT_EQ(GURL("http://www.google.co.jp/"), GetLastPromptedGoogleURL());
- EXPECT_TRUE(listener_notified());
-}
-
-TEST_F(GoogleURLTrackerTest, FetchesCanAutomaticallyCloseInfoBars) {
- TestInfoBarManager infobar_manager(1);
- RequestServerCheck();
- FinishSleep();
- MockSearchDomainCheckResponse(google_url().spec());
-
- // Re-fetching the accepted URL after showing an infobar for another URL
- // should close the infobar.
- NotifyNetworkChanged();
- MockSearchDomainCheckResponse("http://www.google.co.uk/");
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.com/search?q=test"));
- EXPECT_FALSE(GetInfoBarDelegate(&infobar_manager) == NULL);
- NotifyNetworkChanged();
- MockSearchDomainCheckResponse(google_url().spec());
- EXPECT_EQ(google_url(), GetLastPromptedGoogleURL());
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
-
- // As should fetching a URL that differs from the accepted only by the scheme.
- NotifyNetworkChanged();
- MockSearchDomainCheckResponse("http://www.google.co.uk/");
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.com/search?q=test"));
- EXPECT_FALSE(GetInfoBarDelegate(&infobar_manager) == NULL);
- NotifyNetworkChanged();
- url::Replacements<char> replacements;
- const std::string& scheme("https");
- replacements.SetScheme(scheme.data(), url::Component(0, scheme.length()));
- GURL new_google_url(google_url().ReplaceComponents(replacements));
- MockSearchDomainCheckResponse(new_google_url.spec());
- EXPECT_EQ(new_google_url, GetLastPromptedGoogleURL());
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
-
- // As should re-fetching the last prompted URL.
- SetLastPromptedGoogleURL(GURL("http://www.google.co.uk/"));
- NotifyNetworkChanged();
- MockSearchDomainCheckResponse("http://www.google.co.jp/");
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.com/search?q=test"));
- EXPECT_FALSE(GetInfoBarDelegate(&infobar_manager) == NULL);
- NotifyNetworkChanged();
- MockSearchDomainCheckResponse("http://www.google.co.uk/");
- EXPECT_EQ(new_google_url, google_url());
- EXPECT_EQ(GURL("http://www.google.co.uk/"), GetLastPromptedGoogleURL());
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
-
- // And one that differs from the last prompted URL only by the scheme.
- NotifyNetworkChanged();
- MockSearchDomainCheckResponse("http://www.google.co.jp/");
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.com/search?q=test"));
- EXPECT_FALSE(GetInfoBarDelegate(&infobar_manager) == NULL);
- NotifyNetworkChanged();
- MockSearchDomainCheckResponse("https://www.google.co.uk/");
- EXPECT_EQ(new_google_url, google_url());
- EXPECT_EQ(GURL("https://www.google.co.uk/"), GetLastPromptedGoogleURL());
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
-
- // And fetching a different URL entirely.
- NotifyNetworkChanged();
- MockSearchDomainCheckResponse("http://www.google.co.jp/");
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.com/search?q=test"));
- EXPECT_FALSE(GetInfoBarDelegate(&infobar_manager) == NULL);
- NotifyNetworkChanged();
- MockSearchDomainCheckResponse("https://www.google.co.in/");
- EXPECT_EQ(new_google_url, google_url());
- EXPECT_EQ(GURL("https://www.google.co.uk/"), GetLastPromptedGoogleURL());
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
-}
-
-TEST_F(GoogleURLTrackerTest, ResetInfoBarGoogleURLs) {
- TestInfoBarManager infobar_manager(1);
- RequestServerCheck();
- FinishSleep();
- MockSearchDomainCheckResponse(google_url().spec());
-
- NotifyNetworkChanged();
- MockSearchDomainCheckResponse("http://www.google.co.uk/");
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.com/search?q=test"));
- GoogleURLTrackerInfoBarDelegate* delegate =
- GetInfoBarDelegate(&infobar_manager);
- ASSERT_FALSE(delegate == NULL);
- EXPECT_EQ(GURL("http://www.google.co.uk/"), fetched_google_url());
-
- // If while an infobar is showing we fetch a new URL that differs from the
- // infobar's only by scheme, the infobar should stay showing.
- NotifyNetworkChanged();
- MockSearchDomainCheckResponse("https://www.google.co.uk/");
- EXPECT_EQ(delegate, GetInfoBarDelegate(&infobar_manager));
- EXPECT_EQ(GURL("https://www.google.co.uk/"), fetched_google_url());
-}
-
-TEST_F(GoogleURLTrackerTest, NavigationsAfterPendingSearch) {
- TestInfoBarManager infobar_manager(1);
- SetLastPromptedGoogleURL(GURL("http://www.google.co.uk/"));
- RequestServerCheck();
- FinishSleep();
- MockSearchDomainCheckResponse("http://www.google.co.jp/");
-
- // A pending non-search after a pending search should delete the map entry.
- SetNavigationPending(&infobar_manager, true);
- GoogleURLTrackerMapEntry* map_entry = GetMapEntry(&infobar_manager);
- ASSERT_FALSE(map_entry == NULL);
- EXPECT_FALSE(map_entry->has_infobar_delegate());
- SetNavigationPending(&infobar_manager, false);
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
-
- // A pending search after a pending search should leave the map entry alive.
- SetNavigationPending(&infobar_manager, true);
- map_entry = GetMapEntry(&infobar_manager);
- ASSERT_FALSE(map_entry == NULL);
- EXPECT_FALSE(map_entry->has_infobar_delegate());
- SetNavigationPending(&infobar_manager, true);
- ASSERT_EQ(map_entry, GetMapEntry(&infobar_manager));
- EXPECT_FALSE(map_entry->has_infobar_delegate());
- ASSERT_NO_FATAL_FAILURE(ExpectListeningForCommit(&infobar_manager, true));
-
- // Committing this search should show an infobar.
- CommitSearch(&infobar_manager,
- GURL("http://www.google.co.uk/search?q=test2"));
- 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());
- ASSERT_NO_FATAL_FAILURE(ExpectListeningForCommit(&infobar_manager, false));
-}
-
-TEST_F(GoogleURLTrackerTest, NavigationsAfterCommittedSearch) {
- TestInfoBarManager infobar_manager(1);
- SetLastPromptedGoogleURL(GURL("http://www.google.co.uk/"));
- RequestServerCheck();
- FinishSleep();
- MockSearchDomainCheckResponse("http://www.google.co.jp/");
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.co.uk/search?q=test"));
- GoogleURLTrackerInfoBarDelegate* delegate =
- GetInfoBarDelegate(&infobar_manager);
- ASSERT_FALSE(delegate == NULL);
- ASSERT_NO_FATAL_FAILURE(ExpectListeningForCommit(&infobar_manager, false));
-
- // A pending non-search on a visible infobar should basically do nothing.
- SetNavigationPending(&infobar_manager, false);
- ASSERT_EQ(delegate, GetInfoBarDelegate(&infobar_manager));
- EXPECT_EQ(0, delegate->pending_id());
- ASSERT_NO_FATAL_FAILURE(ExpectListeningForCommit(&infobar_manager, false));
-
- // As should another pending non-search after the first.
- SetNavigationPending(&infobar_manager, false);
- ASSERT_EQ(delegate, GetInfoBarDelegate(&infobar_manager));
- EXPECT_EQ(0, delegate->pending_id());
- ASSERT_NO_FATAL_FAILURE(ExpectListeningForCommit(&infobar_manager, false));
-
- // Committing this non-search should close the infobar. The control flow in
- // these tests is not really comparable to in the real browser, but at least a
- // few sanity-checks will be performed.
- ASSERT_NO_FATAL_FAILURE(CommitNonSearch(&infobar_manager));
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
-
- // A pending search on a visible infobar should cause the infobar to listen
- // for the search to commit.
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.co.uk/search?q=test"));
- delegate = GetInfoBarDelegate(&infobar_manager);
- ASSERT_FALSE(delegate == NULL);
- SetNavigationPending(&infobar_manager, true);
- ASSERT_EQ(delegate, GetInfoBarDelegate(&infobar_manager));
- EXPECT_EQ(1, delegate->pending_id());
- ASSERT_NO_FATAL_FAILURE(ExpectListeningForCommit(&infobar_manager, true));
-
- // But a non-search after this should cancel that state.
- SetNavigationPending(&infobar_manager, false);
- ASSERT_EQ(delegate, GetInfoBarDelegate(&infobar_manager));
- EXPECT_EQ(0, delegate->pending_id());
- ASSERT_NO_FATAL_FAILURE(ExpectListeningForCommit(&infobar_manager, false));
-
- // Another pending search after the non-search should put us back into
- // "waiting for commit" mode.
- SetNavigationPending(&infobar_manager, true);
- ASSERT_EQ(delegate, GetInfoBarDelegate(&infobar_manager));
- EXPECT_EQ(1, delegate->pending_id());
- ASSERT_NO_FATAL_FAILURE(ExpectListeningForCommit(&infobar_manager, true));
-
- // A second pending search after the first should not really change anything.
- SetNavigationPending(&infobar_manager, true);
- ASSERT_EQ(delegate, GetInfoBarDelegate(&infobar_manager));
- EXPECT_EQ(1, delegate->pending_id());
- ASSERT_NO_FATAL_FAILURE(ExpectListeningForCommit(&infobar_manager, true));
-
- // Committing this search should change the visible infobar's search_url.
- CommitSearch(&infobar_manager,
- GURL("http://www.google.co.uk/search?q=test2"));
- ASSERT_EQ(delegate, GetInfoBarDelegate(&infobar_manager));
- EXPECT_EQ(GURL("http://www.google.co.uk/search?q=test2"),
- delegate->search_url());
- EXPECT_EQ(0, delegate->pending_id());
- ASSERT_NO_FATAL_FAILURE(ExpectListeningForCommit(&infobar_manager, false));
- EXPECT_EQ(GURL(GoogleURLTracker::kDefaultGoogleHomepage), google_url());
- EXPECT_EQ(GURL("http://www.google.co.uk/"), GetLastPromptedGoogleURL());
- EXPECT_FALSE(listener_notified());
-}
-
-TEST_F(GoogleURLTrackerTest, MultipleMapEntries) {
- TestInfoBarManager infobar_manager(1);
- TestInfoBarManager infobar_manager2(2);
- TestInfoBarManager infobar_manager3(3);
- TestInfoBarManager infobar_manager4(4);
- SetLastPromptedGoogleURL(GURL("http://www.google.co.uk/"));
- RequestServerCheck();
- FinishSleep();
- MockSearchDomainCheckResponse("http://www.google.co.jp/");
-
- SetNavigationPending(&infobar_manager, true);
- GoogleURLTrackerMapEntry* map_entry = GetMapEntry(&infobar_manager);
- ASSERT_FALSE(map_entry == NULL);
- EXPECT_FALSE(map_entry->has_infobar_delegate());
-
- SetNavigationPending(&infobar_manager2, true);
- CommitSearch(&infobar_manager2,
- GURL("http://www.google.co.uk/search?q=test2"));
- GoogleURLTrackerInfoBarDelegate* delegate2 =
- GetInfoBarDelegate(&infobar_manager2);
- ASSERT_FALSE(delegate2 == NULL);
- EXPECT_EQ(GURL("http://www.google.co.uk/search?q=test2"),
- delegate2->search_url());
-
- SetNavigationPending(&infobar_manager3, true);
- GoogleURLTrackerMapEntry* map_entry3 = GetMapEntry(&infobar_manager3);
- ASSERT_FALSE(map_entry3 == NULL);
- EXPECT_FALSE(map_entry3->has_infobar_delegate());
-
- SetNavigationPending(&infobar_manager4, true);
- CommitSearch(&infobar_manager4,
- GURL("http://www.google.co.uk/search?q=test4"));
- GoogleURLTrackerInfoBarDelegate* delegate4 =
- GetInfoBarDelegate(&infobar_manager4);
- ASSERT_FALSE(delegate4 == NULL);
- EXPECT_EQ(GURL("http://www.google.co.uk/search?q=test4"),
- delegate4->search_url());
-
- CommitSearch(&infobar_manager, GURL("http://www.google.co.uk/search?q=test"));
- EXPECT_TRUE(map_entry->has_infobar_delegate());
-
- delegate2->Close(false);
- EXPECT_TRUE(GetMapEntry(&infobar_manager2) == NULL);
- EXPECT_FALSE(listener_notified());
-
- delegate4->Accept();
- EXPECT_TRUE(GetMapEntry(&infobar_manager) == NULL);
- EXPECT_TRUE(GetMapEntry(&infobar_manager3) == NULL);
- EXPECT_TRUE(GetMapEntry(&infobar_manager4) == NULL);
- EXPECT_EQ(GURL("http://www.google.co.jp/"), google_url());
- EXPECT_EQ(GURL("http://www.google.co.jp/"), GetLastPromptedGoogleURL());
- EXPECT_TRUE(listener_notified());
-}
-
-TEST_F(GoogleURLTrackerTest, IgnoreIrrelevantNavigation) {
- TestInfoBarManager infobar_manager(1);
- TestInfoBarManager infobar_manager2(2);
- SetLastPromptedGoogleURL(GURL("http://www.google.co.uk/"));
- RequestServerCheck();
- FinishSleep();
- MockSearchDomainCheckResponse("http://www.google.co.jp/");
-
- // This tests a particularly gnarly sequence of events that used to cause us
- // to erroneously listen for a non-search navigation to commit.
- SetNavigationPending(&infobar_manager, true);
- CommitSearch(&infobar_manager, GURL("http://www.google.co.uk/search?q=test"));
- SetNavigationPending(&infobar_manager2, true);
- CommitSearch(&infobar_manager2,
- GURL("http://www.google.co.uk/search?q=test2"));
- EXPECT_FALSE(GetInfoBarDelegate(&infobar_manager) == NULL);
- GoogleURLTrackerInfoBarDelegate* delegate2 =
- GetInfoBarDelegate(&infobar_manager2);
- ASSERT_FALSE(delegate2 == NULL);
- SetNavigationPending(&infobar_manager, true);
- ASSERT_NO_FATAL_FAILURE(ExpectListeningForCommit(&infobar_manager, true));
- delegate2->Close(false);
- SetNavigationPending(&infobar_manager, false);
- ASSERT_NO_FATAL_FAILURE(ExpectListeningForCommit(&infobar_manager, false));
-}
« no previous file with comments | « components/google/core/browser/google_url_tracker_navigation_helper.cc ('k') | components/google/core/browser/google_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698