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

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

Issue 8726041: Add support for reactivating a chrome install that originally used an (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Add to unit tests, opened bug for background thread Created 9 years 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
« chrome/browser/rlz/rlz.cc ('K') | « chrome/browser/rlz/rlz.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/rlz/rlz_unittest.cc
===================================================================
--- chrome/browser/rlz/rlz_unittest.cc (revision 112677)
+++ chrome/browser/rlz/rlz_unittest.cc (working copy)
@@ -11,6 +11,7 @@
#include "base/utf_string_conversions.h"
#include "base/win/registry.h"
#include "chrome/browser/autocomplete/autocomplete.h"
+#include "chrome/browser/google/google_util.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/chrome_notification_types.h"
#include "chrome/common/env_vars.h"
@@ -83,7 +84,7 @@
using RLZTracker::DelayedInit;
using RLZTracker::Observe;
- TestRLZTracker() : pingnow_called_(false), assume_not_ui_thread_(false) {
+ TestRLZTracker() : assume_not_ui_thread_(false) {
set_tracker(this);
}
@@ -91,8 +92,8 @@
set_tracker(NULL);
}
- bool pingnow_called() const {
- return pingnow_called_;
+ 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) {
@@ -118,8 +119,9 @@
virtual bool SendFinancialPing(const std::string& brand,
const string16& lang,
const string16& referral) OVERRIDE {
- // Don't ping the server during tests.
- pingnow_called_ = true;
+ // 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.
@@ -129,7 +131,7 @@
return true;
}
- bool pingnow_called_;
+ std::set<std::string> pinged_brands_;
bool assume_not_ui_thread_;
DISALLOW_COPY_AND_ASSIGN(TestRLZTracker);
@@ -140,12 +142,17 @@
virtual void TearDown() OVERRIDE;
protected:
+ void SetMainBrand(const char* brand);
+ void SetReactivationBrand(const char* brand);
+ void SetRegistryBrandValue(const wchar_t* name, const char* brand);
+
void SimulateOmniboxUsage();
void SimulateHomepageUsage();
void InvokeDelayedInit();
void ExpectEventRecorded(const char* event_name, bool expected);
void ExpectRlzPingSent(bool expected);
+ void ExpectReactivationRlzPingSent(bool expected);
TestRLZTracker tracker_;
RegistryOverrideManager override_manager_;
@@ -187,17 +194,42 @@
// Make sure a non-organic brand code is set in the registry or the RLZTracker
// is pretty much a no-op.
- BrowserDistribution* dist = BrowserDistribution::GetDistribution();
- string16 reg_path = dist->GetStateKey();
- RegKey key(HKEY_CURRENT_USER, reg_path.c_str(), KEY_SET_VALUE);
- ASSERT_EQ(ERROR_SUCCESS, key.WriteValue(google_update::kRegRLZBrandField,
- L"TEST"));
+ SetMainBrand("TEST");
+ SetReactivationBrand("");
}
void RlzLibTest::TearDown() {
testing::Test::TearDown();
}
+void RlzLibTest::SetMainBrand(const char* brand) {
+ SetRegistryBrandValue(google_update::kRegRLZBrandField, brand);
+ std::string check_brand;
+ google_util::GetBrand(&check_brand);
+ EXPECT_EQ(brand, check_brand);
+}
+
+void RlzLibTest::SetReactivationBrand(const char* brand) {
+ SetRegistryBrandValue(google_update::kRegRLZReactivationBrandField, brand);
+ std::string check_brand;
+ google_util::GetReactivationBrand(&check_brand);
+ EXPECT_EQ(brand, check_brand);
+}
+
+void RlzLibTest::SetRegistryBrandValue(const wchar_t* name,
+ const char* brand) {
+ BrowserDistribution* dist = BrowserDistribution::GetDistribution();
+ string16 reg_path = dist->GetStateKey();
+ RegKey key(HKEY_CURRENT_USER, reg_path.c_str(), KEY_SET_VALUE);
+ if (*brand == 0) {
+ LONG result = key.DeleteValue(name);
+ ASSERT_TRUE(ERROR_SUCCESS == result || ERROR_FILE_NOT_FOUND == result);
+ } else {
+ string16 brand16 = ASCIIToWide(brand);
+ ASSERT_EQ(ERROR_SUCCESS, key.WriteValue(name, brand16.c_str()));
+ }
+}
+
void RlzLibTest::SimulateOmniboxUsage() {
tracker_.Observe(chrome::NOTIFICATION_OMNIBOX_OPENED_URL,
content::NotificationService::AllSources(),
@@ -227,9 +259,17 @@
}
void RlzLibTest::ExpectRlzPingSent(bool expected) {
- EXPECT_EQ(expected, tracker_.pingnow_called());
+ std::string brand;
+ google_util::GetBrand(&brand);
+ EXPECT_EQ(expected, tracker_.was_ping_sent_for_brand(brand.c_str()));
}
+void RlzLibTest::ExpectReactivationRlzPingSent(bool expected) {
+ std::string brand;
+ google_util::GetReactivationBrand(&brand);
+ EXPECT_EQ(expected, tracker_.was_ping_sent_for_brand(brand.c_str()));
+}
+
TEST_F(RlzLibTest, RecordProductEvent) {
RLZTracker::RecordProductEvent(rlz_lib::CHROME, rlz_lib::CHROME_OMNIBOX,
rlz_lib::FIRST_SEARCH);
@@ -549,3 +589,47 @@
content::NotificationService::AllSources(),
content::Details<NavigationEntry>(&entry));
}
+
+TEST_F(RlzLibTest, ReactivationNonOrganicNonOrganic) {
+ SetReactivationBrand("REAC");
+
+ RLZTracker::InitRlzDelayed(true, 20, true, true);
+ InvokeDelayedInit();
+
+ ExpectRlzPingSent(true);
+ ExpectReactivationRlzPingSent(true);
+}
+
+TEST_F(RlzLibTest, ReactivationOrganicNonOrganic) {
+ SetMainBrand("GGLS");
+ SetReactivationBrand("REAC");
+
+ RLZTracker::InitRlzDelayed(true, 20, true, true);
+ InvokeDelayedInit();
+
+ ExpectRlzPingSent(false);
+ ExpectReactivationRlzPingSent(true);
+}
+
+TEST_F(RlzLibTest, ReactivationNonOrganicOrganic) {
+ SetMainBrand("TEST");
+ SetReactivationBrand("GGLS");
+
+ RLZTracker::InitRlzDelayed(true, 20, true, true);
+ InvokeDelayedInit();
+
+ ExpectRlzPingSent(true);
+ ExpectReactivationRlzPingSent(false);
+}
+
+TEST_F(RlzLibTest, ReactivationOrganicOrganic) {
+ SetMainBrand("GGLS");
+ SetReactivationBrand("GGRS");
+
+ RLZTracker::InitRlzDelayed(true, 20, true, true);
+ InvokeDelayedInit();
+
+ ExpectRlzPingSent(false);
+ ExpectReactivationRlzPingSent(false);
+}
+
« chrome/browser/rlz/rlz.cc ('K') | « chrome/browser/rlz/rlz.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698