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

Unified Diff: components/rlz/rlz_tracker_unittest.cc

Issue 1229933005: Revert "Componentize chrome/browser/rlz" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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
« no previous file with comments | « components/rlz/rlz_tracker_mac.cc ('k') | components/rlz/rlz_tracker_win.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/rlz/rlz_tracker_unittest.cc
diff --git a/components/rlz/rlz_tracker_unittest.cc b/components/rlz/rlz_tracker_unittest.cc
deleted file mode 100644
index eb33d891b612ffaefd8741d981f8ecde2455d4cc..0000000000000000000000000000000000000000
--- a/components/rlz/rlz_tracker_unittest.cc
+++ /dev/null
@@ -1,1009 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/rlz/rlz_tracker.h"
-
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/message_loop/message_loop.h"
-#include "base/strings/utf_string_conversions.h"
-#include "base/thread_task_runner_handle.h"
-#include "base/threading/sequenced_worker_pool.h"
-#include "base/time/time.h"
-#include "components/rlz/rlz_tracker_delegate.h"
-#include "net/url_request/url_request_test_util.h"
-#include "rlz/test/rlz_test_helpers.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-#if defined(OS_IOS)
-#include "ui/base/device_form_factor.h"
-#endif
-
-using testing::AssertionResult;
-using testing::AssertionSuccess;
-using testing::AssertionFailure;
-
-namespace rlz {
-namespace {
-
-class TestRLZTrackerDelegate : public RLZTrackerDelegate {
- public:
- TestRLZTrackerDelegate()
- : worker_pool_(new base::SequencedWorkerPool(1, "TestRLZTracker")),
- request_context_getter_(new net::TestURLRequestContextGetter(
- base::ThreadTaskRunnerHandle::Get())) {}
-
- ~TestRLZTrackerDelegate() override { worker_pool_->Shutdown(); }
-
- void set_brand(const char* brand) { brand_override_ = brand; }
-
- void set_reactivation_brand(const char* reactivation_brand) {
- // TODO(thakis): Reactivation doesn't exist on Mac yet.
- reactivation_brand_override_ = reactivation_brand;
- }
-
- void SimulateOmniboxUsage() {
- using std::swap;
- base::Closure callback;
- swap(callback, on_omnibox_search_callback_);
- if (!callback.is_null())
- callback.Run();
- }
-
- void SimulateHomepageUsage() {
- using std::swap;
- base::Closure callback;
- swap(callback, on_homepage_search_callback_);
- if (!callback.is_null())
- callback.Run();
- }
-
- // RLZTrackerDelegate implementation.
- void Cleanup() override {
- on_omnibox_search_callback_.Reset();
- on_homepage_search_callback_.Reset();
- }
-
- bool IsOnUIThread() override { return true; }
-
- base::SequencedWorkerPool* GetBlockingPool() override {
- return worker_pool_.get();
- }
-
- net::URLRequestContextGetter* GetRequestContext() override {
- return request_context_getter_.get();
- }
-
- bool GetBrand(std::string* brand) override {
- *brand = brand_override_;
- return true;
- }
-
- bool IsBrandOrganic(const std::string& brand) override {
- return brand.empty() || brand == "GGLS" || brand == "GGRS";
- }
-
- bool GetReactivationBrand(std::string* brand) override {
- *brand = reactivation_brand_override_;
- return true;
- }
-
- bool ShouldEnableZeroDelayForTesting() override { return true; }
-
- bool GetLanguage(base::string16* language) override { return true; }
-
- bool GetReferral(base::string16* referral) override { return true; }
-
- bool ClearReferral() override { return true; }
-
- void SetOmniboxSearchCallback(const base::Closure& callback) override {
- DCHECK(!callback.is_null());
- on_omnibox_search_callback_ = callback;
- }
-
- void SetHomepageSearchCallback(const base::Closure& callback) override {
- DCHECK(!callback.is_null());
- on_homepage_search_callback_ = callback;
- }
-
- private:
- scoped_refptr<base::SequencedWorkerPool> worker_pool_;
- scoped_refptr<net::URLRequestContextGetter> request_context_getter_;
-
- std::string brand_override_;
- std::string reactivation_brand_override_;
- base::Closure on_omnibox_search_callback_;
- base::Closure on_homepage_search_callback_;
-
- DISALLOW_COPY_AND_ASSIGN(TestRLZTrackerDelegate);
-};
-
-// Dummy RLZ string for the access points.
-const char kOmniboxRlzString[] = "test_omnibox";
-const char kNewOmniboxRlzString[] = "new_omnibox";
-#if !defined(OS_IOS)
-const char kHomepageRlzString[] = "test_homepage";
-const char kNewHomepageRlzString[] = "new_homepage";
-const char kAppListRlzString[] = "test_applist";
-const char kNewAppListRlzString[] = "new_applist";
-#endif // !defined(OS_IOS)
-
-// Some helper macros to test it a string contains/does not contain a substring.
-
-AssertionResult CmpHelperSTRC(const char* str_expression,
- const char* substr_expression,
- const char* str,
- const char* substr) {
- if (nullptr != strstr(str, substr)) {
- return AssertionSuccess();
- }
-
- return AssertionFailure() << "Expected: (" << substr_expression << ") in ("
- << str_expression << "), actual: '"
- << substr << "' not in '" << str << "'";
-}
-
-AssertionResult CmpHelperSTRNC(const char* str_expression,
- const char* substr_expression,
- const char* str,
- const char* substr) {
- if (nullptr == strstr(str, substr)) {
- return AssertionSuccess();
- }
-
- return AssertionFailure() << "Expected: (" << substr_expression
- << ") not in (" << str_expression << "), actual: '"
- << substr << "' in '" << str << "'";
-}
-
-#define EXPECT_STR_CONTAINS(str, substr) \
- EXPECT_PRED_FORMAT2(CmpHelperSTRC, str, substr)
-
-#define EXPECT_STR_NOT_CONTAIN(str, substr) \
- EXPECT_PRED_FORMAT2(CmpHelperSTRNC, str, substr)
-
-} // namespace
-
-// Test class for RLZ tracker. Makes some member functions public and
-// overrides others to make it easier to test.
-class TestRLZTracker : public RLZTracker {
- public:
- using RLZTracker::InitRlzDelayed;
- using RLZTracker::DelayedInit;
-
- TestRLZTracker() : assume_not_ui_thread_(true) { set_tracker(this); }
-
- ~TestRLZTracker() override { set_tracker(nullptr); }
-
- bool was_ping_sent_for_brand(const std::string& brand) const {
- return pinged_brands_.count(brand) > 0;
- }
-
- void set_assume_not_ui_thread(bool assume_not_ui_thread) {
- assume_not_ui_thread_ = assume_not_ui_thread;
- }
-
- private:
- 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();
- }
-
- void ScheduleFinancialPing() override { PingNowImpl(); }
-
- bool ScheduleRecordProductEvent(rlz_lib::Product product,
- rlz_lib::AccessPoint point,
- rlz_lib::Event event_id) override {
- return !assume_not_ui_thread_;
- }
-
- bool ScheduleGetAccessPointRlz(rlz_lib::AccessPoint point) override {
- return !assume_not_ui_thread_;
- }
-
- bool ScheduleRecordFirstSearch(rlz_lib::AccessPoint point) override {
- return !assume_not_ui_thread_;
- }
-
-#if defined(OS_CHROMEOS)
- bool ScheduleClearRlzState() override { return !assume_not_ui_thread_; }
-#endif
-
- bool SendFinancialPing(const std::string& brand,
- const base::string16& lang,
- 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);
-
- // Set new access points RLZ string, like the actual server ping would have
- // done.
- rlz_lib::SetAccessPointRlz(RLZTracker::ChromeOmnibox(),
- kNewOmniboxRlzString);
-#if !defined(OS_IOS)
- rlz_lib::SetAccessPointRlz(RLZTracker::ChromeHomePage(),
- kNewHomepageRlzString);
- rlz_lib::SetAccessPointRlz(RLZTracker::ChromeAppList(),
- kNewAppListRlzString);
-#endif // !defined(OS_IOS)
- return true;
- }
-
- std::set<std::string> pinged_brands_;
- bool assume_not_ui_thread_;
-
- DISALLOW_COPY_AND_ASSIGN(TestRLZTracker);
-};
-
-class RlzLibTest : public testing::Test {
- protected:
- void SetUp() override;
- void TearDown() override;
-
- void SetMainBrand(const char* brand);
- void SetReactivationBrand(const char* brand);
-
- void SimulateOmniboxUsage();
- void SimulateHomepageUsage();
- void SimulateAppListUsage();
- void InvokeDelayedInit();
-
- void ExpectEventRecorded(const char* event_name, bool expected);
- void ExpectRlzPingSent(bool expected);
- void ExpectReactivationRlzPingSent(bool expected);
-
- base::MessageLoop message_loop_;
- TestRLZTrackerDelegate* delegate_;
- scoped_ptr<TestRLZTracker> tracker_;
- RlzLibTestNoMachineStateHelper m_rlz_test_helper_;
-};
-
-void RlzLibTest::SetUp() {
- testing::Test::SetUp();
- m_rlz_test_helper_.SetUp();
-
- delegate_ = new TestRLZTrackerDelegate;
- tracker_.reset(new TestRLZTracker());
- RLZTracker::SetRlzDelegate(make_scoped_ptr(delegate_));
-
- // Make sure a non-organic brand code is set in the registry or the RLZTracker
- // is pretty much a no-op.
- SetMainBrand("TEST");
- SetReactivationBrand("");
-}
-
-void RlzLibTest::TearDown() {
- delegate_ = nullptr;
- tracker_.reset();
- testing::Test::TearDown();
- m_rlz_test_helper_.TearDown();
-}
-
-void RlzLibTest::SetMainBrand(const char* brand) {
- delegate_->set_brand(brand);
-}
-
-void RlzLibTest::SetReactivationBrand(const char* brand) {
- delegate_->set_reactivation_brand(brand);
-}
-
-void RlzLibTest::SimulateOmniboxUsage() {
- delegate_->SimulateOmniboxUsage();
-}
-
-void RlzLibTest::SimulateHomepageUsage() {
- delegate_->SimulateHomepageUsage();
-}
-
-void RlzLibTest::SimulateAppListUsage() {
-#if !defined(OS_IOS)
- RLZTracker::RecordAppListSearch();
-#endif // !defined(OS_IOS)
-}
-
-void RlzLibTest::InvokeDelayedInit() {
- tracker_->DelayedInit();
-}
-
-void RlzLibTest::ExpectEventRecorded(const char* event_name, bool expected) {
- char cgi[rlz_lib::kMaxCgiLength];
- GetProductEventsAsCgi(rlz_lib::CHROME, cgi, arraysize(cgi));
- if (expected) {
- EXPECT_STR_CONTAINS(cgi, event_name);
- } else {
- EXPECT_STR_NOT_CONTAIN(cgi, event_name);
- }
-}
-
-void RlzLibTest::ExpectRlzPingSent(bool expected) {
- std::string brand;
- delegate_->GetBrand(&brand);
- EXPECT_EQ(expected, tracker_->was_ping_sent_for_brand(brand.c_str()));
-}
-
-void RlzLibTest::ExpectReactivationRlzPingSent(bool expected) {
- std::string brand;
- delegate_->GetReactivationBrand(&brand);
- EXPECT_EQ(expected, tracker_->was_ping_sent_for_brand(brand.c_str()));
-}
-
-// The events that affect the different RLZ scenarios are the following:
-//
-// A: the user starts chrome for the first time
-// B: the user stops chrome
-// C: the user start a subsequent time
-// D: the user stops chrome again
-// I: the RLZTracker::DelayedInit() method is invoked
-// X: the user performs a search using the omnibox
-// Y: the user performs a search using the home page
-// Z: the user performs a search using the app list
-//
-// The events A to D happen in chronological order, but the other events
-// may happen at any point between A-B or C-D, in no particular order.
-//
-// The visible results of the scenarios on Win are:
-//
-// C1I event is recorded
-// C2I event is recorded
-// C7I event is recorded
-// C1F event is recorded
-// C2F event is recorded
-// C7F event is recorded
-// C1S event is recorded
-// C2S event is recorded
-// C7S event is recorded
-// RLZ ping sent
-//
-// On Mac, C5 / C6 / C8 are sent instead of C1 / C2 / C7.
-// On ChromeOS, CA / CB / CC are sent, respectively.
-//
-// On iOS, only the omnibox events are recorded, and the value send depends
-// on the device form factor (phone or tablet).
-//
-// Variations on the above scenarios:
-//
-// - if the delay specified to InitRlzDelayed() is negative, then the RLZ
-// ping should be sent out at the time of event X and not wait for I
-//
-// Also want to test that pre-warming the RLZ string cache works correctly.
-
-#if defined(OS_WIN)
-const char kOmniboxInstall[] = "C1I";
-const char kOmniboxSetToGoogle[] = "C1S";
-const char kOmniboxFirstSearch[] = "C1F";
-
-const char kHomepageInstall[] = "C2I";
-const char kHomepageSetToGoogle[] = "C2S";
-const char kHomepageFirstSearch[] = "C2F";
-
-const char kAppListInstall[] = "C7I";
-const char kAppListSetToGoogle[] = "C7S";
-const char kAppListFirstSearch[] = "C7F";
-#elif defined(OS_IOS)
-const char kOmniboxInstallPhone[] = "CDI";
-const char kOmniboxSetToGooglePhone[] = "CDS";
-const char kOmniboxFirstSearchPhone[] = "CDF";
-
-const char kOmniboxInstallTablet[] = "C9I";
-const char kOmniboxSetToGoogleTablet[] = "C9S";
-const char kOmniboxFirstSearchTablet[] = "C9F";
-#elif defined(OS_MACOSX)
-const char kOmniboxInstall[] = "C5I";
-const char kOmniboxSetToGoogle[] = "C5S";
-const char kOmniboxFirstSearch[] = "C5F";
-
-const char kHomepageInstall[] = "C6I";
-const char kHomepageSetToGoogle[] = "C6S";
-const char kHomepageFirstSearch[] = "C6F";
-
-const char kAppListInstall[] = "C8I";
-const char kAppListSetToGoogle[] = "C8S";
-const char kAppListFirstSearch[] = "C8F";
-#elif defined(OS_CHROMEOS)
-const char kOmniboxInstall[] = "CAI";
-const char kOmniboxSetToGoogle[] = "CAS";
-const char kOmniboxFirstSearch[] = "CAF";
-
-const char kHomepageInstall[] = "CBI";
-const char kHomepageSetToGoogle[] = "CBS";
-const char kHomepageFirstSearch[] = "CBF";
-
-const char kAppListInstall[] = "CCI";
-const char kAppListSetToGoogle[] = "CCS";
-const char kAppListFirstSearch[] = "CCF";
-#endif
-
-const char* OmniboxInstall() {
-#if defined(OS_IOS)
- return ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET
- ? kOmniboxInstallTablet
- : kOmniboxInstallPhone;
-#else
- return kOmniboxInstall;
-#endif
-}
-
-const char* OmniboxSetToGoogle() {
-#if defined(OS_IOS)
- return ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET
- ? kOmniboxSetToGoogleTablet
- : kOmniboxSetToGooglePhone;
-#else
- return kOmniboxSetToGoogle;
-#endif
-}
-
-const char* OmniboxFirstSearch() {
-#if defined(OS_IOS)
- return ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET
- ? kOmniboxFirstSearchTablet
- : kOmniboxFirstSearchPhone;
-#else
- return kOmniboxFirstSearch;
-#endif
-}
-
-const base::TimeDelta kDelay = base::TimeDelta::FromMilliseconds(20);
-
-TEST_F(RlzLibTest, RecordProductEvent) {
- RLZTracker::RecordProductEvent(rlz_lib::CHROME, RLZTracker::ChromeOmnibox(),
- rlz_lib::FIRST_SEARCH);
-
- ExpectEventRecorded(OmniboxFirstSearch(), true);
-}
-
-TEST_F(RlzLibTest, QuickStopAfterStart) {
- TestRLZTracker::InitRlzDelayed(true, false, kDelay, true, true, true);
-
- // Omnibox events.
- ExpectEventRecorded(OmniboxInstall(), false);
- ExpectEventRecorded(OmniboxSetToGoogle(), false);
- ExpectEventRecorded(OmniboxFirstSearch(), false);
-
-#if !defined(OS_IOS)
- // Home page events.
- ExpectEventRecorded(kHomepageInstall, false);
- ExpectEventRecorded(kHomepageSetToGoogle, false);
- ExpectEventRecorded(kHomepageFirstSearch, false);
-
- // App list events.
- ExpectEventRecorded(kAppListInstall, false);
- ExpectEventRecorded(kAppListSetToGoogle, false);
- ExpectEventRecorded(kAppListFirstSearch, false);
-#endif // !defined(OS_IOS)
-
- ExpectRlzPingSent(false);
-}
-
-TEST_F(RlzLibTest, DelayedInitOnly) {
- TestRLZTracker::InitRlzDelayed(true, false, kDelay, true, true, false);
- InvokeDelayedInit();
-
- // Omnibox events.
- ExpectEventRecorded(OmniboxInstall(), true);
- ExpectEventRecorded(OmniboxSetToGoogle(), true);
- ExpectEventRecorded(OmniboxFirstSearch(), false);
-
-#if !defined(OS_IOS)
- // Home page events.
- ExpectEventRecorded(kHomepageInstall, true);
- ExpectEventRecorded(kHomepageSetToGoogle, true);
- ExpectEventRecorded(kHomepageFirstSearch, false);
-
- // App list events.
- ExpectEventRecorded(kAppListInstall, true);
- ExpectEventRecorded(kAppListSetToGoogle, true);
- ExpectEventRecorded(kAppListFirstSearch, false);
-#endif // !defined(OS_IOS)
-
- ExpectRlzPingSent(true);
-}
-
-TEST_F(RlzLibTest, DelayedInitOnlyGoogleAsStartup) {
- TestRLZTracker::InitRlzDelayed(true, false, kDelay, false, false, true);
- InvokeDelayedInit();
-
- // Omnibox events.
- ExpectEventRecorded(OmniboxInstall(), true);
- ExpectEventRecorded(OmniboxSetToGoogle(), false);
- ExpectEventRecorded(OmniboxFirstSearch(), false);
-
-#if !defined(OS_IOS)
- // Home page events.
- ExpectEventRecorded(kHomepageInstall, true);
- ExpectEventRecorded(kHomepageSetToGoogle, true);
- ExpectEventRecorded(kHomepageFirstSearch, true);
-
- // App list events.
- ExpectEventRecorded(kAppListInstall, true);
- ExpectEventRecorded(kAppListSetToGoogle, false);
- ExpectEventRecorded(kAppListFirstSearch, false);
-#endif // !defined(OS_IOS)
-
- ExpectRlzPingSent(true);
-}
-
-TEST_F(RlzLibTest, DelayedInitOnlyNoFirstRunNoRlzStrings) {
- TestRLZTracker::InitRlzDelayed(false, false, kDelay, true, true, false);
- InvokeDelayedInit();
-
- // Omnibox events.
- ExpectEventRecorded(OmniboxInstall(), true);
- ExpectEventRecorded(OmniboxSetToGoogle(), true);
- ExpectEventRecorded(OmniboxFirstSearch(), false);
-
-#if !defined(OS_IOS)
- // Home page events.
- ExpectEventRecorded(kHomepageInstall, true);
- ExpectEventRecorded(kHomepageSetToGoogle, true);
- ExpectEventRecorded(kHomepageFirstSearch, false);
-
- // App list events.
- ExpectEventRecorded(kAppListInstall, true);
- ExpectEventRecorded(kAppListSetToGoogle, true);
- ExpectEventRecorded(kAppListFirstSearch, false);
-#endif // !defined(OS_IOS)
-
- ExpectRlzPingSent(true);
-}
-
-TEST_F(RlzLibTest, DelayedInitOnlyNoFirstRunNoRlzStringsGoogleAsStartup) {
- TestRLZTracker::InitRlzDelayed(false, false, kDelay, false, false, true);
- InvokeDelayedInit();
-
- // Omnibox events.
- ExpectEventRecorded(OmniboxInstall(), true);
- ExpectEventRecorded(OmniboxSetToGoogle(), false);
- ExpectEventRecorded(OmniboxFirstSearch(), false);
-
-#if !defined(OS_IOS)
- // Home page events.
- ExpectEventRecorded(kHomepageInstall, true);
- ExpectEventRecorded(kHomepageSetToGoogle, true);
- ExpectEventRecorded(kHomepageFirstSearch, true);
-
- // App list events.
- ExpectEventRecorded(kAppListInstall, true);
- ExpectEventRecorded(kAppListSetToGoogle, false);
- ExpectEventRecorded(kAppListFirstSearch, false);
-#endif // !defined(OS_IOS)
-
- ExpectRlzPingSent(true);
-}
-
-TEST_F(RlzLibTest, DelayedInitOnlyNoFirstRun) {
- // Set some dummy RLZ strings to simulate that we already ran before and
- // performed a successful ping to the RLZ server.
- rlz_lib::SetAccessPointRlz(RLZTracker::ChromeOmnibox(), kOmniboxRlzString);
-#if !defined(OS_IOS)
- rlz_lib::SetAccessPointRlz(RLZTracker::ChromeHomePage(), kHomepageRlzString);
- rlz_lib::SetAccessPointRlz(RLZTracker::ChromeAppList(), kAppListRlzString);
-#endif // !defined(OS_IOS)
-
- TestRLZTracker::InitRlzDelayed(false, false, kDelay, true, true, true);
- InvokeDelayedInit();
-
- // Omnibox events.
- ExpectEventRecorded(OmniboxInstall(), true);
- ExpectEventRecorded(OmniboxSetToGoogle(), false);
- ExpectEventRecorded(OmniboxFirstSearch(), false);
-
-#if !defined(OS_IOS)
- // Home page events.
- ExpectEventRecorded(kHomepageInstall, true);
- ExpectEventRecorded(kHomepageSetToGoogle, false);
- ExpectEventRecorded(kHomepageFirstSearch, true);
-
- // App list events.
- ExpectEventRecorded(kAppListInstall, true);
- ExpectEventRecorded(kAppListSetToGoogle, false);
- ExpectEventRecorded(kAppListFirstSearch, false);
-#endif // !defined(OS_IOS)
-
- ExpectRlzPingSent(true);
-}
-
-TEST_F(RlzLibTest, DelayedInitOnlyNoGoogleDefaultSearchOrHomepageOrStartup) {
- TestRLZTracker::InitRlzDelayed(true, false, kDelay, false, false, false);
- InvokeDelayedInit();
-
- // Omnibox events.
- ExpectEventRecorded(OmniboxInstall(), true);
- ExpectEventRecorded(OmniboxSetToGoogle(), false);
- ExpectEventRecorded(OmniboxFirstSearch(), false);
-
-#if !defined(OS_IOS)
- // Home page events.
- ExpectEventRecorded(kHomepageInstall, true);
- ExpectEventRecorded(kHomepageSetToGoogle, false);
- ExpectEventRecorded(kHomepageFirstSearch, false);
-
- // App list events.
- ExpectEventRecorded(kAppListInstall, true);
- ExpectEventRecorded(kAppListSetToGoogle, false);
- ExpectEventRecorded(kAppListFirstSearch, false);
-#endif // !defined(OS_IOS)
-
- ExpectRlzPingSent(true);
-}
-
-TEST_F(RlzLibTest, OmniboxUsageOnly) {
- TestRLZTracker::InitRlzDelayed(true, false, kDelay, true, true, false);
- SimulateOmniboxUsage();
-
- // Omnibox events.
- ExpectEventRecorded(OmniboxInstall(), false);
- ExpectEventRecorded(OmniboxSetToGoogle(), false);
- ExpectEventRecorded(OmniboxFirstSearch(), true);
-
-#if !defined(OS_IOS)
- // Home page events.
- ExpectEventRecorded(kHomepageInstall, false);
- ExpectEventRecorded(kHomepageSetToGoogle, false);
- ExpectEventRecorded(kHomepageFirstSearch, false);
-
- // App list events.
- ExpectEventRecorded(kAppListInstall, false);
- ExpectEventRecorded(kAppListSetToGoogle, false);
- ExpectEventRecorded(kAppListFirstSearch, false);
-#endif // !defined(OS_IOS)
-
- ExpectRlzPingSent(false);
-}
-
-TEST_F(RlzLibTest, HomepageUsageOnly) {
- TestRLZTracker::InitRlzDelayed(true, false, kDelay, true, true, false);
- SimulateHomepageUsage();
-
- // Omnibox events.
- ExpectEventRecorded(OmniboxInstall(), false);
- ExpectEventRecorded(OmniboxSetToGoogle(), false);
- ExpectEventRecorded(OmniboxFirstSearch(), false);
-
-#if !defined(OS_IOS)
- // Home page events.
- ExpectEventRecorded(kHomepageInstall, false);
- ExpectEventRecorded(kHomepageSetToGoogle, false);
- ExpectEventRecorded(kHomepageFirstSearch, true);
-
- // App list events.
- ExpectEventRecorded(kAppListInstall, false);
- ExpectEventRecorded(kAppListSetToGoogle, false);
- ExpectEventRecorded(kAppListFirstSearch, false);
-#endif // !defined(OS_IOS)
-
- ExpectRlzPingSent(false);
-}
-
-TEST_F(RlzLibTest, AppListUsageOnly) {
- TestRLZTracker::InitRlzDelayed(true, false, kDelay, true, true, false);
- SimulateAppListUsage();
-
- // Omnibox events.
- ExpectEventRecorded(OmniboxInstall(), false);
- ExpectEventRecorded(OmniboxSetToGoogle(), false);
- ExpectEventRecorded(OmniboxFirstSearch(), false);
-
-#if !defined(OS_IOS)
- // Home page events.
- ExpectEventRecorded(kHomepageInstall, false);
- ExpectEventRecorded(kHomepageSetToGoogle, false);
- ExpectEventRecorded(kHomepageFirstSearch, false);
-
- // App list events.
- ExpectEventRecorded(kAppListInstall, false);
- ExpectEventRecorded(kAppListSetToGoogle, false);
- ExpectEventRecorded(kAppListFirstSearch, true);
-#endif // !defined(OS_IOS)
-
- ExpectRlzPingSent(false);
-}
-
-TEST_F(RlzLibTest, UsageBeforeDelayedInit) {
- TestRLZTracker::InitRlzDelayed(true, false, kDelay, true, true, false);
- SimulateOmniboxUsage();
- SimulateHomepageUsage();
- SimulateAppListUsage();
- InvokeDelayedInit();
-
- // Omnibox events.
- ExpectEventRecorded(OmniboxInstall(), true);
- ExpectEventRecorded(OmniboxSetToGoogle(), true);
- ExpectEventRecorded(OmniboxFirstSearch(), true);
-
-#if !defined(OS_IOS)
- // Home page events.
- ExpectEventRecorded(kHomepageInstall, true);
- ExpectEventRecorded(kHomepageSetToGoogle, true);
- ExpectEventRecorded(kHomepageFirstSearch, true);
-
- // App list events.
- ExpectEventRecorded(kAppListInstall, true);
- ExpectEventRecorded(kAppListSetToGoogle, true);
- ExpectEventRecorded(kAppListFirstSearch, true);
-#endif // !defined(OS_IOS)
-
- ExpectRlzPingSent(true);
-}
-
-TEST_F(RlzLibTest, UsageAfterDelayedInit) {
- TestRLZTracker::InitRlzDelayed(true, false, kDelay, true, true, false);
- InvokeDelayedInit();
- SimulateOmniboxUsage();
- SimulateHomepageUsage();
- SimulateAppListUsage();
-
- // Omnibox events.
- ExpectEventRecorded(OmniboxInstall(), true);
- ExpectEventRecorded(OmniboxSetToGoogle(), true);
- ExpectEventRecorded(OmniboxFirstSearch(), true);
-
-#if !defined(OS_IOS)
- // Home page events.
- ExpectEventRecorded(kHomepageInstall, true);
- ExpectEventRecorded(kHomepageSetToGoogle, true);
- ExpectEventRecorded(kHomepageFirstSearch, true);
-
- // App list events.
- ExpectEventRecorded(kAppListInstall, true);
- ExpectEventRecorded(kAppListSetToGoogle, true);
- ExpectEventRecorded(kAppListFirstSearch, true);
-#endif // !defined(OS_IOS)
-
- ExpectRlzPingSent(true);
-}
-
-TEST_F(RlzLibTest, OmniboxUsageSendsPingWhenSendPingImmediately) {
- TestRLZTracker::InitRlzDelayed(true, true, kDelay, true, true, false);
- SimulateOmniboxUsage();
-
- // Omnibox events.
- ExpectEventRecorded(OmniboxInstall(), true);
- ExpectEventRecorded(OmniboxSetToGoogle(), true);
- ExpectEventRecorded(OmniboxFirstSearch(), true);
-
-#if !defined(OS_IOS)
- // Home page events.
- ExpectEventRecorded(kHomepageInstall, true);
- ExpectEventRecorded(kHomepageSetToGoogle, true);
- ExpectEventRecorded(kHomepageFirstSearch, false);
-
- // App list events.
- ExpectEventRecorded(kAppListInstall, true);
- ExpectEventRecorded(kAppListSetToGoogle, true);
- ExpectEventRecorded(kAppListFirstSearch, false);
-#endif // !defined(OS_IOS)
-
- ExpectRlzPingSent(true);
-}
-
-TEST_F(RlzLibTest, HomepageUsageDoesNotSendPingWhenSendPingImmediately) {
- TestRLZTracker::InitRlzDelayed(true, true, kDelay, true, true, false);
- SimulateHomepageUsage();
-
- // Omnibox events.
- ExpectEventRecorded(OmniboxInstall(), false);
- ExpectEventRecorded(OmniboxSetToGoogle(), false);
- ExpectEventRecorded(OmniboxFirstSearch(), false);
-
-#if !defined(OS_IOS)
- // Home page events.
- ExpectEventRecorded(kHomepageInstall, false);
- ExpectEventRecorded(kHomepageSetToGoogle, false);
- ExpectEventRecorded(kHomepageFirstSearch, true);
-
- // App list events.
- ExpectEventRecorded(kAppListInstall, false);
- ExpectEventRecorded(kAppListSetToGoogle, false);
- ExpectEventRecorded(kAppListFirstSearch, false);
-#endif // !defined(OS_IOS)
-
- ExpectRlzPingSent(false);
-}
-
-TEST_F(RlzLibTest, StartupUsageDoesNotSendPingWhenSendPingImmediately) {
- TestRLZTracker::InitRlzDelayed(true, true, kDelay, true, false, true);
- SimulateHomepageUsage();
-
- // Omnibox events.
- ExpectEventRecorded(OmniboxInstall(), false);
- ExpectEventRecorded(OmniboxSetToGoogle(), false);
- ExpectEventRecorded(OmniboxFirstSearch(), false);
-
-#if !defined(OS_IOS)
- // Home page events.
- ExpectEventRecorded(kHomepageInstall, false);
- ExpectEventRecorded(kHomepageSetToGoogle, false);
- ExpectEventRecorded(kHomepageFirstSearch, true);
-
- // App list events.
- ExpectEventRecorded(kAppListInstall, false);
- ExpectEventRecorded(kAppListSetToGoogle, false);
- ExpectEventRecorded(kAppListFirstSearch, false);
-#endif // !defined(OS_IOS)
-
- ExpectRlzPingSent(false);
-}
-
-TEST_F(RlzLibTest, AppListUsageDoesNotSendPingWhenSendPingImmediately) {
- TestRLZTracker::InitRlzDelayed(true, true, kDelay, true, false, false);
- SimulateAppListUsage();
-
- // Omnibox events.
- ExpectEventRecorded(OmniboxInstall(), false);
- ExpectEventRecorded(OmniboxSetToGoogle(), false);
- ExpectEventRecorded(OmniboxFirstSearch(), false);
-
-#if !defined(OS_IOS)
- // Home page events.
- ExpectEventRecorded(kHomepageInstall, false);
- ExpectEventRecorded(kHomepageSetToGoogle, false);
- ExpectEventRecorded(kHomepageFirstSearch, false);
-
- // App list events.
- ExpectEventRecorded(kAppListInstall, false);
- ExpectEventRecorded(kAppListSetToGoogle, false);
- ExpectEventRecorded(kAppListFirstSearch, true);
-#endif // !defined(OS_IOS)
-
- ExpectRlzPingSent(false);
-}
-
-TEST_F(RlzLibTest, GetAccessPointRlzOnIoThread) {
- // Set dummy RLZ string.
- rlz_lib::SetAccessPointRlz(RLZTracker::ChromeOmnibox(), kOmniboxRlzString);
-
- base::string16 rlz;
-
- tracker_->set_assume_not_ui_thread(true);
- EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::ChromeOmnibox(), &rlz));
- EXPECT_STREQ(kOmniboxRlzString, base::UTF16ToUTF8(rlz).c_str());
-}
-
-TEST_F(RlzLibTest, GetAccessPointRlzNotOnIoThread) {
- // Set dummy RLZ string.
- rlz_lib::SetAccessPointRlz(RLZTracker::ChromeOmnibox(), kOmniboxRlzString);
-
- base::string16 rlz;
-
- tracker_->set_assume_not_ui_thread(false);
- EXPECT_FALSE(
- RLZTracker::GetAccessPointRlz(RLZTracker::ChromeOmnibox(), &rlz));
-}
-
-TEST_F(RlzLibTest, GetAccessPointRlzIsCached) {
- // Set dummy RLZ string.
- rlz_lib::SetAccessPointRlz(RLZTracker::ChromeOmnibox(), kOmniboxRlzString);
-
- base::string16 rlz;
-
- tracker_->set_assume_not_ui_thread(false);
- EXPECT_FALSE(
- RLZTracker::GetAccessPointRlz(RLZTracker::ChromeOmnibox(), &rlz));
-
- tracker_->set_assume_not_ui_thread(true);
- EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::ChromeOmnibox(), &rlz));
- EXPECT_STREQ(kOmniboxRlzString, base::UTF16ToUTF8(rlz).c_str());
-
- tracker_->set_assume_not_ui_thread(false);
- EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::ChromeOmnibox(), &rlz));
- EXPECT_STREQ(kOmniboxRlzString, base::UTF16ToUTF8(rlz).c_str());
-}
-
-TEST_F(RlzLibTest, PingUpdatesRlzCache) {
- // Set dummy RLZ string.
- rlz_lib::SetAccessPointRlz(RLZTracker::ChromeOmnibox(), kOmniboxRlzString);
-#if !defined(OS_IOS)
- rlz_lib::SetAccessPointRlz(RLZTracker::ChromeHomePage(), kHomepageRlzString);
- rlz_lib::SetAccessPointRlz(RLZTracker::ChromeAppList(), kAppListRlzString);
-#endif // !defined(OS_IOS)
-
- base::string16 rlz;
-
- // Prime the cache.
- tracker_->set_assume_not_ui_thread(true);
-
- EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::ChromeOmnibox(), &rlz));
- EXPECT_STREQ(kOmniboxRlzString, base::UTF16ToUTF8(rlz).c_str());
-#if !defined(OS_IOS)
- EXPECT_TRUE(RLZTracker::GetAccessPointRlz(
- RLZTracker::ChromeHomePage(), &rlz));
- EXPECT_STREQ(kHomepageRlzString, base::UTF16ToUTF8(rlz).c_str());
- EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::ChromeAppList(), &rlz));
- EXPECT_STREQ(kAppListRlzString, base::UTF16ToUTF8(rlz).c_str());
-#endif // !defined(OS_IOS)
-
- // Make sure cache is valid.
- tracker_->set_assume_not_ui_thread(false);
-
- EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::ChromeOmnibox(), &rlz));
- EXPECT_STREQ(kOmniboxRlzString, base::UTF16ToUTF8(rlz).c_str());
-#if !defined(OS_IOS)
- EXPECT_TRUE(RLZTracker::GetAccessPointRlz(
- RLZTracker::ChromeHomePage(), &rlz));
- EXPECT_STREQ(kHomepageRlzString, base::UTF16ToUTF8(rlz).c_str());
- EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::ChromeAppList(), &rlz));
- EXPECT_STREQ(kAppListRlzString, base::UTF16ToUTF8(rlz).c_str());
-#endif // !defined(OS_IOS)
-
- // Perform ping.
- tracker_->set_assume_not_ui_thread(true);
- TestRLZTracker::InitRlzDelayed(true, false, kDelay, true, true, false);
- InvokeDelayedInit();
- ExpectRlzPingSent(true);
-
- // Make sure cache is now updated.
- tracker_->set_assume_not_ui_thread(false);
-
- EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::ChromeOmnibox(), &rlz));
- EXPECT_STREQ(kNewOmniboxRlzString, base::UTF16ToUTF8(rlz).c_str());
-#if !defined(OS_IOS)
- EXPECT_TRUE(RLZTracker::GetAccessPointRlz(
- RLZTracker::ChromeHomePage(), &rlz));
- EXPECT_STREQ(kNewHomepageRlzString, base::UTF16ToUTF8(rlz).c_str());
- EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::ChromeAppList(), &rlz));
- EXPECT_STREQ(kNewAppListRlzString, base::UTF16ToUTF8(rlz).c_str());
-#endif // !defined(OS_IOS)
-}
-
-// TODO(thakis): Reactivation doesn't exist on Mac yet.
-TEST_F(RlzLibTest, ReactivationNonOrganicNonOrganic) {
- SetReactivationBrand("REAC");
-
- TestRLZTracker::InitRlzDelayed(true, false, kDelay, true, true, false);
- InvokeDelayedInit();
-
- ExpectRlzPingSent(true);
- ExpectReactivationRlzPingSent(true);
-}
-
-TEST_F(RlzLibTest, ReactivationOrganicNonOrganic) {
- SetMainBrand("GGLS");
- SetReactivationBrand("REAC");
-
- TestRLZTracker::InitRlzDelayed(true, false, kDelay, true, true, false);
- InvokeDelayedInit();
-
- ExpectRlzPingSent(false);
- ExpectReactivationRlzPingSent(true);
-}
-
-TEST_F(RlzLibTest, ReactivationNonOrganicOrganic) {
- SetMainBrand("TEST");
- SetReactivationBrand("GGLS");
-
- TestRLZTracker::InitRlzDelayed(true, false, kDelay, true, true, false);
- InvokeDelayedInit();
-
- ExpectRlzPingSent(true);
- ExpectReactivationRlzPingSent(false);
-}
-
-TEST_F(RlzLibTest, ReactivationOrganicOrganic) {
- SetMainBrand("GGLS");
- SetReactivationBrand("GGRS");
-
- TestRLZTracker::InitRlzDelayed(true, false, kDelay, true, true, false);
- InvokeDelayedInit();
-
- ExpectRlzPingSent(false);
- ExpectReactivationRlzPingSent(false);
-}
-
-#if defined(OS_CHROMEOS)
-TEST_F(RlzLibTest, ClearRlzState) {
- RLZTracker::RecordProductEvent(rlz_lib::CHROME, RLZTracker::ChromeOmnibox(),
- rlz_lib::FIRST_SEARCH);
-
- ExpectEventRecorded(OmniboxFirstSearch(), true);
-
- RLZTracker::ClearRlzState();
-
- ExpectEventRecorded(OmniboxFirstSearch(), false);
-}
-#endif // defined(OS_CHROMEOS)
-
-} // namespace rlz
« no previous file with comments | « components/rlz/rlz_tracker_mac.cc ('k') | components/rlz/rlz_tracker_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698