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

Unified Diff: chrome/browser/rlz/rlz_unittest.cc

Issue 591483002: Only send C2F ping for a search through homepage. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix a bug. Created 6 years, 2 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: chrome/browser/rlz/rlz_unittest.cc
diff --git a/chrome/browser/rlz/rlz_unittest.cc b/chrome/browser/rlz/rlz_unittest.cc
index 6a2f26ec762bd11c8a0a583cff2bb7e157028901..2a8c89e3eb379d527011af8a21d22000925dacb7 100644
--- a/chrome/browser/rlz/rlz_unittest.cc
+++ b/chrome/browser/rlz/rlz_unittest.cc
@@ -14,19 +14,24 @@
#include "chrome/browser/profiles/profile.h"
#include "chrome/installer/util/browser_distribution.h"
#include "chrome/installer/util/google_update_constants.h"
+#include "chrome/test/base/chrome_render_view_host_test_harness.h"
#include "components/metrics/proto/omnibox_event.pb.h"
+#include "content/public/browser/navigation_details.h"
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_source.h"
+#include "content/test/test_render_frame_host.h"
#include "rlz/test/rlz_test_helpers.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
#if defined(OS_WIN)
#include "base/win/registry.h"
#endif
using content::NavigationEntry;
+using content::LoadCommittedDetails;
using testing::AssertionResult;
using testing::AssertionSuccess;
using testing::AssertionFailure;
@@ -106,40 +111,40 @@ class TestRLZTracker : public RLZTracker {
}
private:
- virtual void ScheduleDelayedInit(base::TimeDelta delay) override {
+ virtual void ScheduleDelayedInit(base::TimeDelta delay) OVERRIDE {
// If the delay is 0, invoke the delayed init now. Otherwise,
// don't schedule anything, it will be manually called during tests.
if (delay == base::TimeDelta())
DelayedInit();
}
- virtual void ScheduleFinancialPing() override {
+ virtual void ScheduleFinancialPing() OVERRIDE {
PingNowImpl();
}
virtual bool ScheduleRecordProductEvent(rlz_lib::Product product,
rlz_lib::AccessPoint point,
- rlz_lib::Event event_id) override {
+ rlz_lib::Event event_id) OVERRIDE {
return !assume_not_ui_thread_;
}
- virtual bool ScheduleGetAccessPointRlz(rlz_lib::AccessPoint point) override {
+ virtual bool ScheduleGetAccessPointRlz(rlz_lib::AccessPoint point) OVERRIDE {
return !assume_not_ui_thread_;
}
- virtual bool ScheduleRecordFirstSearch(rlz_lib::AccessPoint point) override {
+ virtual bool ScheduleRecordFirstSearch(rlz_lib::AccessPoint point) OVERRIDE {
return !assume_not_ui_thread_;
}
#if defined(OS_CHROMEOS)
- virtual bool ScheduleClearRlzState() override {
+ virtual bool ScheduleClearRlzState() OVERRIDE {
return !assume_not_ui_thread_;
}
#endif
virtual bool SendFinancialPing(const std::string& brand,
const base::string16& lang,
- const base::string16& referral) override {
+ const base::string16& referral) OVERRIDE {
// Don't ping the server during tests, just pretend as if we did.
EXPECT_FALSE(brand.empty());
pinged_brands_.insert(brand);
@@ -161,9 +166,10 @@ class TestRLZTracker : public RLZTracker {
DISALLOW_COPY_AND_ASSIGN(TestRLZTracker);
};
-class RlzLibTest : public RlzLibTestNoMachineState {
+class RlzLibTest : public ChromeRenderViewHostTestHarness {
protected:
- virtual void SetUp() override;
+ virtual void SetUp() OVERRIDE;
+ virtual void TearDown() OVERRIDE;
void SetMainBrand(const char* brand);
void SetReactivationBrand(const char* brand);
@@ -181,13 +187,12 @@ class RlzLibTest : public RlzLibTestNoMachineState {
void ExpectReactivationRlzPingSent(bool expected);
TestRLZTracker tracker_;
-#if defined(OS_POSIX)
- scoped_ptr<google_brand::BrandForTesting> brand_override_;
-#endif
+ RlzLibTestNoMachineStateHelper m_rlz_test_helper_;
};
void RlzLibTest::SetUp() {
- RlzLibTestNoMachineState::SetUp();
+ ChromeRenderViewHostTestHarness::SetUp();
+ m_rlz_test_helper_.SetUp();
// Make sure a non-organic brand code is set in the registry or the RLZTracker
// is pretty much a no-op.
@@ -195,6 +200,11 @@ void RlzLibTest::SetUp() {
SetReactivationBrand("");
}
+void RlzLibTest::TearDown() {
+ ChromeRenderViewHostTestHarness::TearDown();
+ m_rlz_test_helper_.TearDown();
+}
+
void RlzLibTest::SetMainBrand(const char* brand) {
#if defined(OS_WIN)
SetRegistryBrandValue(google_update::kRegRLZBrandField, brand);
@@ -250,12 +260,16 @@ void RlzLibTest::SimulateOmniboxUsage() {
}
void RlzLibTest::SimulateHomepageUsage() {
- scoped_ptr<NavigationEntry> entry(NavigationEntry::Create());
- entry->SetPageID(0);
- entry->SetTransitionType(ui::PAGE_TRANSITION_HOME_PAGE);
- tracker_.Observe(content::NOTIFICATION_NAV_ENTRY_PENDING,
- content::NotificationService::AllSources(),
- content::Details<NavigationEntry>(entry.get()));
+ GURL home_url = GURL("https://www.google.com/");
+ GURL search_url = GURL("https://www.google.com/#q=search");
+
+ content::TestRenderFrameHost* trfh =
+ static_cast<content::TestRenderFrameHost*>(main_rfh());
+
+ // Simulate a navigation to homepage first.
+ trfh->SendNavigateWithTransition(0, home_url, ui::PAGE_TRANSITION_HOME_PAGE);
+ // Then simulate a search from homepage.
+ trfh->SendNavigateWithTransition(1, search_url, ui::PAGE_TRANSITION_LINK);
}
void RlzLibTest::SimulateAppListUsage() {
@@ -825,15 +839,17 @@ TEST_F(RlzLibTest, PingUpdatesRlzCache) {
}
TEST_F(RlzLibTest, ObserveHandlesBadArgs) {
- scoped_ptr<NavigationEntry> entry(NavigationEntry::Create());
- entry->SetPageID(0);
- entry->SetTransitionType(ui::PAGE_TRANSITION_LINK);
- tracker_.Observe(content::NOTIFICATION_NAV_ENTRY_PENDING,
+ scoped_ptr<LoadCommittedDetails> details(new LoadCommittedDetails());
+ details->entry = NavigationEntry::Create();
+ details->entry->SetPageID(0);
+ details->entry->SetTransitionType(ui::PAGE_TRANSITION_LINK);
+
+ tracker_.Observe(content::NOTIFICATION_NAV_ENTRY_COMMITTED,
content::NotificationService::AllSources(),
content::Details<NavigationEntry>(NULL));
- tracker_.Observe(content::NOTIFICATION_NAV_ENTRY_PENDING,
+ tracker_.Observe(content::NOTIFICATION_NAV_ENTRY_COMMITTED,
content::NotificationService::AllSources(),
- content::Details<NavigationEntry>(entry.get()));
+ content::Details<LoadCommittedDetails>(details.get()));
}
// TODO(thakis): Reactivation doesn't exist on Mac yet.
« chrome/browser/DEPS ('K') | « chrome/browser/rlz/rlz.cc ('k') | rlz/lib/rlz_lib_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698