| 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)
|
|
|