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

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

Issue 9699054: rlz: Hook up on mac, switch to chrome's network stack on win. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 9 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 33f04e33adb4fa1a4bcccf1cfdf858fa245335ac..cc19aa103be9b14a653379e58e8a46468c3f6cb8 100644
--- a/chrome/browser/rlz/rlz_unittest.cc
+++ b/chrome/browser/rlz/rlz_unittest.cc
@@ -7,9 +7,8 @@
#include "base/memory/scoped_ptr.h"
#include "base/stringprintf.h"
#include "base/path_service.h"
-#include "base/test/test_reg_util_win.h"
+#include "base/scoped_temp_dir.h"
#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"
@@ -21,21 +20,33 @@
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_source.h"
-#include "rlz/win/lib/rlz_lib.h" // InitializeTempHivesForTesting
#include "testing/gtest/include/gtest/gtest.h"
-using base::win::RegKey;
+#if defined(OS_WIN)
+#include "base/test/test_reg_util_win.h"
+#include "base/win/registry.h"
+#include "rlz/win/lib/rlz_lib.h" // InitializeTempHivesForTesting
+#elif defined(OS_MACOSX)
+#include "rlz/lib/rlz_value_store.h" // SetRlzStoreDirectory
+#endif
+
using content::NavigationEntry;
-using registry_util::RegistryOverrideManager;
using testing::AssertionResult;
using testing::AssertionSuccess;
using testing::AssertionFailure;
+#if defined(OS_WIN)
+using base::win::RegKey;
+using registry_util::RegistryOverrideManager;
+#endif
+
namespace {
+#if defined(OS_WIN)
// Registry path to overridden hive.
const wchar_t kRlzTempHkcu[] = L"rlz_hkcu";
const wchar_t kRlzTempHklm[] = L"rlz_hklm";
+#endif
// Dummy RLZ string for the access points.
const char kOmniboxRlzString[] = "test_omnibox";
@@ -146,7 +157,9 @@ class RlzLibTest : public testing::Test {
protected:
void SetMainBrand(const char* brand);
void SetReactivationBrand(const char* brand);
+#if defined(OS_WIN)
void SetRegistryBrandValue(const wchar_t* name, const char* brand);
+#endif
void SimulateOmniboxUsage();
void SimulateHomepageUsage();
@@ -157,12 +170,18 @@ class RlzLibTest : public testing::Test {
void ExpectReactivationRlzPingSent(bool expected);
TestRLZTracker tracker_;
+#if defined(OS_WIN)
RegistryOverrideManager override_manager_;
+#elif defined(OS_MACOSX)
+ ScopedTempDir temp_dir_;
+ scoped_ptr<google_util::BrandForTesting> brand_override_;
+#endif
};
void RlzLibTest::SetUp() {
testing::Test::SetUp();
+#if defined(OS_WIN)
// Before overriding HKLM for the tests, we need to set it up correctly
// so that the rlz_lib calls work. This needs to be done before we do the
// override.
@@ -193,6 +212,10 @@ void RlzLibTest::SetUp() {
// initialization performed above.
override_manager_.OverrideRegistry(HKEY_LOCAL_MACHINE, kRlzTempHklm);
override_manager_.OverrideRegistry(HKEY_CURRENT_USER, kRlzTempHkcu);
+#elif defined(OS_MACOSX)
+ ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
+ rlz_lib::testing::SetRlzStoreDirectory(temp_dir_.path());
+#endif
// Make sure a non-organic brand code is set in the registry or the RLZTracker
// is pretty much a no-op.
@@ -201,23 +224,34 @@ void RlzLibTest::SetUp() {
}
void RlzLibTest::TearDown() {
+#if defined(OS_MACOSX)
+ rlz_lib::testing::SetRlzStoreDirectory(FilePath());
+#endif
testing::Test::TearDown();
}
void RlzLibTest::SetMainBrand(const char* brand) {
+#if defined(OS_WIN)
SetRegistryBrandValue(google_update::kRegRLZBrandField, brand);
+#elif defined(OS_MACOSX)
+ brand_override_.reset(new google_util::BrandForTesting(brand));
+#endif
std::string check_brand;
google_util::GetBrand(&check_brand);
EXPECT_EQ(brand, check_brand);
}
void RlzLibTest::SetReactivationBrand(const char* brand) {
+ // TODO(thakis): Reactivation doesn't exist on Mac yet.
+#if defined(OS_WIN)
SetRegistryBrandValue(google_update::kRegRLZReactivationBrandField, brand);
std::string check_brand;
google_util::GetReactivationBrand(&check_brand);
EXPECT_EQ(brand, check_brand);
+#endif
}
+#if defined(OS_WIN)
void RlzLibTest::SetRegistryBrandValue(const wchar_t* name,
const char* brand) {
BrowserDistribution* dist = BrowserDistribution::GetDistribution();
@@ -227,10 +261,11 @@ void RlzLibTest::SetRegistryBrandValue(const wchar_t* name,
LONG result = key.DeleteValue(name);
ASSERT_TRUE(ERROR_SUCCESS == result || ERROR_FILE_NOT_FOUND == result);
} else {
- string16 brand16 = ASCIIToWide(brand);
+ string16 brand16 = ASCIIToUTF16(brand);
ASSERT_EQ(ERROR_SUCCESS, key.WriteValue(name, brand16.c_str()));
}
}
+#endif
void RlzLibTest::SimulateOmniboxUsage() {
tracker_.Observe(chrome::NOTIFICATION_OMNIBOX_OPENED_URL,
@@ -513,7 +548,7 @@ TEST_F(RlzLibTest, GetAccessPointRlzOnIoThread) {
tracker_.set_assume_not_ui_thread(true);
EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz));
- EXPECT_STREQ(kOmniboxRlzString, WideToUTF8(rlz).c_str());
+ EXPECT_STREQ(kOmniboxRlzString, UTF16ToUTF8(rlz).c_str());
}
TEST_F(RlzLibTest, GetAccessPointRlzNotOnIoThread) {
@@ -537,11 +572,11 @@ TEST_F(RlzLibTest, GetAccessPointRlzIsCached) {
tracker_.set_assume_not_ui_thread(true);
EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz));
- EXPECT_STREQ(kOmniboxRlzString, WideToUTF8(rlz).c_str());
+ EXPECT_STREQ(kOmniboxRlzString, UTF16ToUTF8(rlz).c_str());
tracker_.set_assume_not_ui_thread(false);
EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz));
- EXPECT_STREQ(kOmniboxRlzString, WideToUTF8(rlz).c_str());
+ EXPECT_STREQ(kOmniboxRlzString, UTF16ToUTF8(rlz).c_str());
}
TEST_F(RlzLibTest, PingUpdatesRlzCache) {
@@ -555,17 +590,17 @@ TEST_F(RlzLibTest, PingUpdatesRlzCache) {
tracker_.set_assume_not_ui_thread(true);
EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz));
- EXPECT_STREQ(kOmniboxRlzString, WideToUTF8(rlz).c_str());
+ EXPECT_STREQ(kOmniboxRlzString, UTF16ToUTF8(rlz).c_str());
EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_HOME_PAGE, &rlz));
- EXPECT_STREQ(kHomepageRlzString, WideToUTF8(rlz).c_str());
+ EXPECT_STREQ(kHomepageRlzString, UTF16ToUTF8(rlz).c_str());
// Make sure cache is valid.
tracker_.set_assume_not_ui_thread(false);
EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz));
- EXPECT_STREQ(kOmniboxRlzString, WideToUTF8(rlz).c_str());
+ EXPECT_STREQ(kOmniboxRlzString, UTF16ToUTF8(rlz).c_str());
EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_HOME_PAGE, &rlz));
- EXPECT_STREQ(kHomepageRlzString, WideToUTF8(rlz).c_str());
+ EXPECT_STREQ(kHomepageRlzString, UTF16ToUTF8(rlz).c_str());
// Perform ping.
tracker_.set_assume_not_ui_thread(true);
@@ -577,9 +612,9 @@ TEST_F(RlzLibTest, PingUpdatesRlzCache) {
tracker_.set_assume_not_ui_thread(false);
EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz));
- EXPECT_STREQ(kNewOmniboxRlzString, WideToUTF8(rlz).c_str());
+ EXPECT_STREQ(kNewOmniboxRlzString, UTF16ToUTF8(rlz).c_str());
EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_HOME_PAGE, &rlz));
- EXPECT_STREQ(kNewHomepageRlzString, WideToUTF8(rlz).c_str());
+ EXPECT_STREQ(kNewHomepageRlzString, UTF16ToUTF8(rlz).c_str());
}
TEST_F(RlzLibTest, ObserveHandlesBadArgs) {
@@ -594,6 +629,8 @@ TEST_F(RlzLibTest, ObserveHandlesBadArgs) {
content::Details<NavigationEntry>(entry.get()));
}
+// TODO(thakis): Reactivation doesn't exist on Mac yet.
+#if defined(OS_WIN)
TEST_F(RlzLibTest, ReactivationNonOrganicNonOrganic) {
SetReactivationBrand("REAC");
@@ -636,4 +673,4 @@ TEST_F(RlzLibTest, ReactivationOrganicOrganic) {
ExpectRlzPingSent(false);
ExpectReactivationRlzPingSent(false);
}
-
+#endif // defined(OS_WIN)

Powered by Google App Engine
This is Rietveld 408576698