OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/rlz/rlz.h" | 5 #include "chrome/browser/rlz/rlz.h" |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/stringprintf.h" | 8 #include "base/stringprintf.h" |
9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
10 #include "base/test/test_reg_util_win.h" | 10 #include "base/scoped_temp_dir.h" |
11 #include "base/utf_string_conversions.h" | 11 #include "base/utf_string_conversions.h" |
12 #include "base/win/registry.h" | |
13 #include "chrome/browser/autocomplete/autocomplete.h" | 12 #include "chrome/browser/autocomplete/autocomplete.h" |
14 #include "chrome/browser/google/google_util.h" | 13 #include "chrome/browser/google/google_util.h" |
15 #include "chrome/browser/profiles/profile.h" | 14 #include "chrome/browser/profiles/profile.h" |
16 #include "chrome/common/chrome_notification_types.h" | 15 #include "chrome/common/chrome_notification_types.h" |
17 #include "chrome/common/env_vars.h" | 16 #include "chrome/common/env_vars.h" |
18 #include "chrome/installer/util/browser_distribution.h" | 17 #include "chrome/installer/util/browser_distribution.h" |
19 #include "chrome/installer/util/google_update_constants.h" | 18 #include "chrome/installer/util/google_update_constants.h" |
20 #include "content/public/browser/navigation_entry.h" | 19 #include "content/public/browser/navigation_entry.h" |
21 #include "content/public/browser/notification_service.h" | 20 #include "content/public/browser/notification_service.h" |
22 #include "content/public/browser/notification_details.h" | 21 #include "content/public/browser/notification_details.h" |
23 #include "content/public/browser/notification_source.h" | 22 #include "content/public/browser/notification_source.h" |
24 #include "rlz/win/lib/rlz_lib.h" // InitializeTempHivesForTesting | |
25 #include "testing/gtest/include/gtest/gtest.h" | 23 #include "testing/gtest/include/gtest/gtest.h" |
26 | 24 |
27 using base::win::RegKey; | 25 #if defined(OS_WIN) |
| 26 #include "base/test/test_reg_util_win.h" |
| 27 #include "base/win/registry.h" |
| 28 #include "rlz/win/lib/rlz_lib.h" // InitializeTempHivesForTesting |
| 29 #elif defined(OS_MACOSX) |
| 30 #include "rlz/lib/rlz_value_store.h" // SetRlzStoreDirectory |
| 31 #endif |
| 32 |
28 using content::NavigationEntry; | 33 using content::NavigationEntry; |
29 using registry_util::RegistryOverrideManager; | |
30 using testing::AssertionResult; | 34 using testing::AssertionResult; |
31 using testing::AssertionSuccess; | 35 using testing::AssertionSuccess; |
32 using testing::AssertionFailure; | 36 using testing::AssertionFailure; |
33 | 37 |
| 38 #if defined(OS_WIN) |
| 39 using base::win::RegKey; |
| 40 using registry_util::RegistryOverrideManager; |
| 41 #endif |
| 42 |
34 namespace { | 43 namespace { |
35 | 44 |
| 45 #if defined(OS_WIN) |
36 // Registry path to overridden hive. | 46 // Registry path to overridden hive. |
37 const wchar_t kRlzTempHkcu[] = L"rlz_hkcu"; | 47 const wchar_t kRlzTempHkcu[] = L"rlz_hkcu"; |
38 const wchar_t kRlzTempHklm[] = L"rlz_hklm"; | 48 const wchar_t kRlzTempHklm[] = L"rlz_hklm"; |
| 49 #endif |
39 | 50 |
40 // Dummy RLZ string for the access points. | 51 // Dummy RLZ string for the access points. |
41 const char kOmniboxRlzString[] = "test_omnibox"; | 52 const char kOmniboxRlzString[] = "test_omnibox"; |
42 const char kHomepageRlzString[] = "test_homepage"; | 53 const char kHomepageRlzString[] = "test_homepage"; |
43 const char kNewOmniboxRlzString[] = "new_omnibox"; | 54 const char kNewOmniboxRlzString[] = "new_omnibox"; |
44 const char kNewHomepageRlzString[] = "new_homepage"; | 55 const char kNewHomepageRlzString[] = "new_homepage"; |
45 | 56 |
46 // Some helper macros to test it a string contains/does not contain a substring. | 57 // Some helper macros to test it a string contains/does not contain a substring. |
47 | 58 |
48 AssertionResult CmpHelperSTRC(const char* str_expression, | 59 AssertionResult CmpHelperSTRC(const char* str_expression, |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 DISALLOW_COPY_AND_ASSIGN(TestRLZTracker); | 150 DISALLOW_COPY_AND_ASSIGN(TestRLZTracker); |
140 }; | 151 }; |
141 | 152 |
142 class RlzLibTest : public testing::Test { | 153 class RlzLibTest : public testing::Test { |
143 virtual void SetUp() OVERRIDE; | 154 virtual void SetUp() OVERRIDE; |
144 virtual void TearDown() OVERRIDE; | 155 virtual void TearDown() OVERRIDE; |
145 | 156 |
146 protected: | 157 protected: |
147 void SetMainBrand(const char* brand); | 158 void SetMainBrand(const char* brand); |
148 void SetReactivationBrand(const char* brand); | 159 void SetReactivationBrand(const char* brand); |
| 160 #if defined(OS_WIN) |
149 void SetRegistryBrandValue(const wchar_t* name, const char* brand); | 161 void SetRegistryBrandValue(const wchar_t* name, const char* brand); |
| 162 #endif |
150 | 163 |
151 void SimulateOmniboxUsage(); | 164 void SimulateOmniboxUsage(); |
152 void SimulateHomepageUsage(); | 165 void SimulateHomepageUsage(); |
153 void InvokeDelayedInit(); | 166 void InvokeDelayedInit(); |
154 | 167 |
155 void ExpectEventRecorded(const char* event_name, bool expected); | 168 void ExpectEventRecorded(const char* event_name, bool expected); |
156 void ExpectRlzPingSent(bool expected); | 169 void ExpectRlzPingSent(bool expected); |
157 void ExpectReactivationRlzPingSent(bool expected); | 170 void ExpectReactivationRlzPingSent(bool expected); |
158 | 171 |
159 TestRLZTracker tracker_; | 172 TestRLZTracker tracker_; |
| 173 #if defined(OS_WIN) |
160 RegistryOverrideManager override_manager_; | 174 RegistryOverrideManager override_manager_; |
| 175 #elif defined(OS_MACOSX) |
| 176 ScopedTempDir temp_dir_; |
| 177 scoped_ptr<google_util::BrandForTesting> brand_override_; |
| 178 #endif |
161 }; | 179 }; |
162 | 180 |
163 void RlzLibTest::SetUp() { | 181 void RlzLibTest::SetUp() { |
164 testing::Test::SetUp(); | 182 testing::Test::SetUp(); |
165 | 183 |
| 184 #if defined(OS_WIN) |
166 // Before overriding HKLM for the tests, we need to set it up correctly | 185 // Before overriding HKLM for the tests, we need to set it up correctly |
167 // so that the rlz_lib calls work. This needs to be done before we do the | 186 // so that the rlz_lib calls work. This needs to be done before we do the |
168 // override. | 187 // override. |
169 | 188 |
170 string16 temp_hklm_path = base::StringPrintf( | 189 string16 temp_hklm_path = base::StringPrintf( |
171 L"%ls\\%ls", | 190 L"%ls\\%ls", |
172 RegistryOverrideManager::kTempTestKeyPath, | 191 RegistryOverrideManager::kTempTestKeyPath, |
173 kRlzTempHklm); | 192 kRlzTempHklm); |
174 | 193 |
175 base::win::RegKey hklm; | 194 base::win::RegKey hklm; |
(...skipping 10 matching lines...) Expand all Loading... |
186 ASSERT_EQ(ERROR_SUCCESS, hkcu.Create(HKEY_CURRENT_USER, | 205 ASSERT_EQ(ERROR_SUCCESS, hkcu.Create(HKEY_CURRENT_USER, |
187 temp_hkcu_path.c_str(), | 206 temp_hkcu_path.c_str(), |
188 KEY_READ)); | 207 KEY_READ)); |
189 | 208 |
190 rlz_lib::InitializeTempHivesForTesting(hklm, hkcu); | 209 rlz_lib::InitializeTempHivesForTesting(hklm, hkcu); |
191 | 210 |
192 // Its important to override HKLM before HKCU because of the registry | 211 // Its important to override HKLM before HKCU because of the registry |
193 // initialization performed above. | 212 // initialization performed above. |
194 override_manager_.OverrideRegistry(HKEY_LOCAL_MACHINE, kRlzTempHklm); | 213 override_manager_.OverrideRegistry(HKEY_LOCAL_MACHINE, kRlzTempHklm); |
195 override_manager_.OverrideRegistry(HKEY_CURRENT_USER, kRlzTempHkcu); | 214 override_manager_.OverrideRegistry(HKEY_CURRENT_USER, kRlzTempHkcu); |
| 215 #elif defined(OS_MACOSX) |
| 216 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| 217 rlz_lib::testing::SetRlzStoreDirectory(temp_dir_.path()); |
| 218 #endif |
196 | 219 |
197 // Make sure a non-organic brand code is set in the registry or the RLZTracker | 220 // Make sure a non-organic brand code is set in the registry or the RLZTracker |
198 // is pretty much a no-op. | 221 // is pretty much a no-op. |
199 SetMainBrand("TEST"); | 222 SetMainBrand("TEST"); |
200 SetReactivationBrand(""); | 223 SetReactivationBrand(""); |
201 } | 224 } |
202 | 225 |
203 void RlzLibTest::TearDown() { | 226 void RlzLibTest::TearDown() { |
| 227 #if defined(OS_MACOSX) |
| 228 rlz_lib::testing::SetRlzStoreDirectory(FilePath()); |
| 229 #endif |
204 testing::Test::TearDown(); | 230 testing::Test::TearDown(); |
205 } | 231 } |
206 | 232 |
207 void RlzLibTest::SetMainBrand(const char* brand) { | 233 void RlzLibTest::SetMainBrand(const char* brand) { |
| 234 #if defined(OS_WIN) |
208 SetRegistryBrandValue(google_update::kRegRLZBrandField, brand); | 235 SetRegistryBrandValue(google_update::kRegRLZBrandField, brand); |
| 236 #elif defined(OS_MACOSX) |
| 237 brand_override_.reset(new google_util::BrandForTesting(brand)); |
| 238 #endif |
209 std::string check_brand; | 239 std::string check_brand; |
210 google_util::GetBrand(&check_brand); | 240 google_util::GetBrand(&check_brand); |
211 EXPECT_EQ(brand, check_brand); | 241 EXPECT_EQ(brand, check_brand); |
212 } | 242 } |
213 | 243 |
214 void RlzLibTest::SetReactivationBrand(const char* brand) { | 244 void RlzLibTest::SetReactivationBrand(const char* brand) { |
| 245 // TODO(thakis): Reactivation doesn't exist on Mac yet. |
| 246 #if defined(OS_WIN) |
215 SetRegistryBrandValue(google_update::kRegRLZReactivationBrandField, brand); | 247 SetRegistryBrandValue(google_update::kRegRLZReactivationBrandField, brand); |
216 std::string check_brand; | 248 std::string check_brand; |
217 google_util::GetReactivationBrand(&check_brand); | 249 google_util::GetReactivationBrand(&check_brand); |
218 EXPECT_EQ(brand, check_brand); | 250 EXPECT_EQ(brand, check_brand); |
| 251 #endif |
219 } | 252 } |
220 | 253 |
| 254 #if defined(OS_WIN) |
221 void RlzLibTest::SetRegistryBrandValue(const wchar_t* name, | 255 void RlzLibTest::SetRegistryBrandValue(const wchar_t* name, |
222 const char* brand) { | 256 const char* brand) { |
223 BrowserDistribution* dist = BrowserDistribution::GetDistribution(); | 257 BrowserDistribution* dist = BrowserDistribution::GetDistribution(); |
224 string16 reg_path = dist->GetStateKey(); | 258 string16 reg_path = dist->GetStateKey(); |
225 RegKey key(HKEY_CURRENT_USER, reg_path.c_str(), KEY_SET_VALUE); | 259 RegKey key(HKEY_CURRENT_USER, reg_path.c_str(), KEY_SET_VALUE); |
226 if (*brand == 0) { | 260 if (*brand == 0) { |
227 LONG result = key.DeleteValue(name); | 261 LONG result = key.DeleteValue(name); |
228 ASSERT_TRUE(ERROR_SUCCESS == result || ERROR_FILE_NOT_FOUND == result); | 262 ASSERT_TRUE(ERROR_SUCCESS == result || ERROR_FILE_NOT_FOUND == result); |
229 } else { | 263 } else { |
230 string16 brand16 = ASCIIToWide(brand); | 264 string16 brand16 = ASCIIToUTF16(brand); |
231 ASSERT_EQ(ERROR_SUCCESS, key.WriteValue(name, brand16.c_str())); | 265 ASSERT_EQ(ERROR_SUCCESS, key.WriteValue(name, brand16.c_str())); |
232 } | 266 } |
233 } | 267 } |
| 268 #endif |
234 | 269 |
235 void RlzLibTest::SimulateOmniboxUsage() { | 270 void RlzLibTest::SimulateOmniboxUsage() { |
236 tracker_.Observe(chrome::NOTIFICATION_OMNIBOX_OPENED_URL, | 271 tracker_.Observe(chrome::NOTIFICATION_OMNIBOX_OPENED_URL, |
237 content::NotificationService::AllSources(), | 272 content::NotificationService::AllSources(), |
238 content::Details<AutocompleteLog>(NULL)); | 273 content::Details<AutocompleteLog>(NULL)); |
239 } | 274 } |
240 | 275 |
241 void RlzLibTest::SimulateHomepageUsage() { | 276 void RlzLibTest::SimulateHomepageUsage() { |
242 scoped_ptr<NavigationEntry> entry(NavigationEntry::Create()); | 277 scoped_ptr<NavigationEntry> entry(NavigationEntry::Create()); |
243 entry->SetPageID(0); | 278 entry->SetPageID(0); |
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
506 } | 541 } |
507 | 542 |
508 TEST_F(RlzLibTest, GetAccessPointRlzOnIoThread) { | 543 TEST_F(RlzLibTest, GetAccessPointRlzOnIoThread) { |
509 // Set dummy RLZ string. | 544 // Set dummy RLZ string. |
510 rlz_lib::SetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, kOmniboxRlzString); | 545 rlz_lib::SetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, kOmniboxRlzString); |
511 | 546 |
512 string16 rlz; | 547 string16 rlz; |
513 | 548 |
514 tracker_.set_assume_not_ui_thread(true); | 549 tracker_.set_assume_not_ui_thread(true); |
515 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz)); | 550 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz)); |
516 EXPECT_STREQ(kOmniboxRlzString, WideToUTF8(rlz).c_str()); | 551 EXPECT_STREQ(kOmniboxRlzString, UTF16ToUTF8(rlz).c_str()); |
517 } | 552 } |
518 | 553 |
519 TEST_F(RlzLibTest, GetAccessPointRlzNotOnIoThread) { | 554 TEST_F(RlzLibTest, GetAccessPointRlzNotOnIoThread) { |
520 // Set dummy RLZ string. | 555 // Set dummy RLZ string. |
521 rlz_lib::SetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, kOmniboxRlzString); | 556 rlz_lib::SetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, kOmniboxRlzString); |
522 | 557 |
523 string16 rlz; | 558 string16 rlz; |
524 | 559 |
525 tracker_.set_assume_not_ui_thread(false); | 560 tracker_.set_assume_not_ui_thread(false); |
526 EXPECT_FALSE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz)); | 561 EXPECT_FALSE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz)); |
527 } | 562 } |
528 | 563 |
529 TEST_F(RlzLibTest, GetAccessPointRlzIsCached) { | 564 TEST_F(RlzLibTest, GetAccessPointRlzIsCached) { |
530 // Set dummy RLZ string. | 565 // Set dummy RLZ string. |
531 rlz_lib::SetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, kOmniboxRlzString); | 566 rlz_lib::SetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, kOmniboxRlzString); |
532 | 567 |
533 string16 rlz; | 568 string16 rlz; |
534 | 569 |
535 tracker_.set_assume_not_ui_thread(false); | 570 tracker_.set_assume_not_ui_thread(false); |
536 EXPECT_FALSE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz)); | 571 EXPECT_FALSE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz)); |
537 | 572 |
538 tracker_.set_assume_not_ui_thread(true); | 573 tracker_.set_assume_not_ui_thread(true); |
539 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz)); | 574 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz)); |
540 EXPECT_STREQ(kOmniboxRlzString, WideToUTF8(rlz).c_str()); | 575 EXPECT_STREQ(kOmniboxRlzString, UTF16ToUTF8(rlz).c_str()); |
541 | 576 |
542 tracker_.set_assume_not_ui_thread(false); | 577 tracker_.set_assume_not_ui_thread(false); |
543 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz)); | 578 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz)); |
544 EXPECT_STREQ(kOmniboxRlzString, WideToUTF8(rlz).c_str()); | 579 EXPECT_STREQ(kOmniboxRlzString, UTF16ToUTF8(rlz).c_str()); |
545 } | 580 } |
546 | 581 |
547 TEST_F(RlzLibTest, PingUpdatesRlzCache) { | 582 TEST_F(RlzLibTest, PingUpdatesRlzCache) { |
548 // Set dummy RLZ string. | 583 // Set dummy RLZ string. |
549 rlz_lib::SetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, kOmniboxRlzString); | 584 rlz_lib::SetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, kOmniboxRlzString); |
550 rlz_lib::SetAccessPointRlz(rlz_lib::CHROME_HOME_PAGE, kHomepageRlzString); | 585 rlz_lib::SetAccessPointRlz(rlz_lib::CHROME_HOME_PAGE, kHomepageRlzString); |
551 | 586 |
552 string16 rlz; | 587 string16 rlz; |
553 | 588 |
554 // Prime the cache. | 589 // Prime the cache. |
555 tracker_.set_assume_not_ui_thread(true); | 590 tracker_.set_assume_not_ui_thread(true); |
556 | 591 |
557 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz)); | 592 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz)); |
558 EXPECT_STREQ(kOmniboxRlzString, WideToUTF8(rlz).c_str()); | 593 EXPECT_STREQ(kOmniboxRlzString, UTF16ToUTF8(rlz).c_str()); |
559 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_HOME_PAGE, &rlz)); | 594 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_HOME_PAGE, &rlz)); |
560 EXPECT_STREQ(kHomepageRlzString, WideToUTF8(rlz).c_str()); | 595 EXPECT_STREQ(kHomepageRlzString, UTF16ToUTF8(rlz).c_str()); |
561 | 596 |
562 // Make sure cache is valid. | 597 // Make sure cache is valid. |
563 tracker_.set_assume_not_ui_thread(false); | 598 tracker_.set_assume_not_ui_thread(false); |
564 | 599 |
565 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz)); | 600 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz)); |
566 EXPECT_STREQ(kOmniboxRlzString, WideToUTF8(rlz).c_str()); | 601 EXPECT_STREQ(kOmniboxRlzString, UTF16ToUTF8(rlz).c_str()); |
567 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_HOME_PAGE, &rlz)); | 602 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_HOME_PAGE, &rlz)); |
568 EXPECT_STREQ(kHomepageRlzString, WideToUTF8(rlz).c_str()); | 603 EXPECT_STREQ(kHomepageRlzString, UTF16ToUTF8(rlz).c_str()); |
569 | 604 |
570 // Perform ping. | 605 // Perform ping. |
571 tracker_.set_assume_not_ui_thread(true); | 606 tracker_.set_assume_not_ui_thread(true); |
572 RLZTracker::InitRlzDelayed(true, 20, true, true); | 607 RLZTracker::InitRlzDelayed(true, 20, true, true); |
573 InvokeDelayedInit(); | 608 InvokeDelayedInit(); |
574 ExpectRlzPingSent(true); | 609 ExpectRlzPingSent(true); |
575 | 610 |
576 // Make sure cache is now updated. | 611 // Make sure cache is now updated. |
577 tracker_.set_assume_not_ui_thread(false); | 612 tracker_.set_assume_not_ui_thread(false); |
578 | 613 |
579 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz)); | 614 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz)); |
580 EXPECT_STREQ(kNewOmniboxRlzString, WideToUTF8(rlz).c_str()); | 615 EXPECT_STREQ(kNewOmniboxRlzString, UTF16ToUTF8(rlz).c_str()); |
581 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_HOME_PAGE, &rlz)); | 616 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_HOME_PAGE, &rlz)); |
582 EXPECT_STREQ(kNewHomepageRlzString, WideToUTF8(rlz).c_str()); | 617 EXPECT_STREQ(kNewHomepageRlzString, UTF16ToUTF8(rlz).c_str()); |
583 } | 618 } |
584 | 619 |
585 TEST_F(RlzLibTest, ObserveHandlesBadArgs) { | 620 TEST_F(RlzLibTest, ObserveHandlesBadArgs) { |
586 scoped_ptr<NavigationEntry> entry(NavigationEntry::Create()); | 621 scoped_ptr<NavigationEntry> entry(NavigationEntry::Create()); |
587 entry->SetPageID(0); | 622 entry->SetPageID(0); |
588 entry->SetTransitionType(content::PAGE_TRANSITION_LINK); | 623 entry->SetTransitionType(content::PAGE_TRANSITION_LINK); |
589 tracker_.Observe(content::NOTIFICATION_NAV_ENTRY_PENDING, | 624 tracker_.Observe(content::NOTIFICATION_NAV_ENTRY_PENDING, |
590 content::NotificationService::AllSources(), | 625 content::NotificationService::AllSources(), |
591 content::Details<NavigationEntry>(NULL)); | 626 content::Details<NavigationEntry>(NULL)); |
592 tracker_.Observe(content::NOTIFICATION_NAV_ENTRY_PENDING, | 627 tracker_.Observe(content::NOTIFICATION_NAV_ENTRY_PENDING, |
593 content::NotificationService::AllSources(), | 628 content::NotificationService::AllSources(), |
594 content::Details<NavigationEntry>(entry.get())); | 629 content::Details<NavigationEntry>(entry.get())); |
595 } | 630 } |
596 | 631 |
| 632 // TODO(thakis): Reactivation doesn't exist on Mac yet. |
| 633 #if defined(OS_WIN) |
597 TEST_F(RlzLibTest, ReactivationNonOrganicNonOrganic) { | 634 TEST_F(RlzLibTest, ReactivationNonOrganicNonOrganic) { |
598 SetReactivationBrand("REAC"); | 635 SetReactivationBrand("REAC"); |
599 | 636 |
600 RLZTracker::InitRlzDelayed(true, 20, true, true); | 637 RLZTracker::InitRlzDelayed(true, 20, true, true); |
601 InvokeDelayedInit(); | 638 InvokeDelayedInit(); |
602 | 639 |
603 ExpectRlzPingSent(true); | 640 ExpectRlzPingSent(true); |
604 ExpectReactivationRlzPingSent(true); | 641 ExpectReactivationRlzPingSent(true); |
605 } | 642 } |
606 | 643 |
(...skipping 22 matching lines...) Expand all Loading... |
629 TEST_F(RlzLibTest, ReactivationOrganicOrganic) { | 666 TEST_F(RlzLibTest, ReactivationOrganicOrganic) { |
630 SetMainBrand("GGLS"); | 667 SetMainBrand("GGLS"); |
631 SetReactivationBrand("GGRS"); | 668 SetReactivationBrand("GGRS"); |
632 | 669 |
633 RLZTracker::InitRlzDelayed(true, 20, true, true); | 670 RLZTracker::InitRlzDelayed(true, 20, true, true); |
634 InvokeDelayedInit(); | 671 InvokeDelayedInit(); |
635 | 672 |
636 ExpectRlzPingSent(false); | 673 ExpectRlzPingSent(false); |
637 ExpectReactivationRlzPingSent(false); | 674 ExpectReactivationRlzPingSent(false); |
638 } | 675 } |
639 | 676 #endif // defined(OS_WIN) |
OLD | NEW |