| 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/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "chrome/browser/chrome_notification_types.h" | 9 #include "chrome/browser/chrome_notification_types.h" |
| 10 #include "chrome/browser/google/google_util.h" | 10 #include "chrome/browser/google/google_util.h" |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 211 #if defined(OS_WIN) | 211 #if defined(OS_WIN) |
| 212 void RlzLibTest::SetRegistryBrandValue(const wchar_t* name, | 212 void RlzLibTest::SetRegistryBrandValue(const wchar_t* name, |
| 213 const char* brand) { | 213 const char* brand) { |
| 214 BrowserDistribution* dist = BrowserDistribution::GetDistribution(); | 214 BrowserDistribution* dist = BrowserDistribution::GetDistribution(); |
| 215 base::string16 reg_path = dist->GetStateKey(); | 215 base::string16 reg_path = dist->GetStateKey(); |
| 216 RegKey key(HKEY_CURRENT_USER, reg_path.c_str(), KEY_SET_VALUE); | 216 RegKey key(HKEY_CURRENT_USER, reg_path.c_str(), KEY_SET_VALUE); |
| 217 if (*brand == 0) { | 217 if (*brand == 0) { |
| 218 LONG result = key.DeleteValue(name); | 218 LONG result = key.DeleteValue(name); |
| 219 ASSERT_TRUE(ERROR_SUCCESS == result || ERROR_FILE_NOT_FOUND == result); | 219 ASSERT_TRUE(ERROR_SUCCESS == result || ERROR_FILE_NOT_FOUND == result); |
| 220 } else { | 220 } else { |
| 221 base::string16 brand16 = ASCIIToUTF16(brand); | 221 base::string16 brand16 = base::ASCIIToUTF16(brand); |
| 222 ASSERT_EQ(ERROR_SUCCESS, key.WriteValue(name, brand16.c_str())); | 222 ASSERT_EQ(ERROR_SUCCESS, key.WriteValue(name, brand16.c_str())); |
| 223 } | 223 } |
| 224 } | 224 } |
| 225 #endif | 225 #endif |
| 226 | 226 |
| 227 void RlzLibTest::SimulateOmniboxUsage() { | 227 void RlzLibTest::SimulateOmniboxUsage() { |
| 228 tracker_.Observe(chrome::NOTIFICATION_OMNIBOX_OPENED_URL, | 228 tracker_.Observe(chrome::NOTIFICATION_OMNIBOX_OPENED_URL, |
| 229 content::NotificationService::AllSources(), | 229 content::NotificationService::AllSources(), |
| 230 content::Details<OmniboxLog>(NULL)); | 230 content::Details<OmniboxLog>(NULL)); |
| 231 } | 231 } |
| (...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 580 } | 580 } |
| 581 | 581 |
| 582 TEST_F(RlzLibTest, GetAccessPointRlzOnIoThread) { | 582 TEST_F(RlzLibTest, GetAccessPointRlzOnIoThread) { |
| 583 // Set dummy RLZ string. | 583 // Set dummy RLZ string. |
| 584 rlz_lib::SetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, kOmniboxRlzString); | 584 rlz_lib::SetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, kOmniboxRlzString); |
| 585 | 585 |
| 586 base::string16 rlz; | 586 base::string16 rlz; |
| 587 | 587 |
| 588 tracker_.set_assume_not_ui_thread(true); | 588 tracker_.set_assume_not_ui_thread(true); |
| 589 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz)); | 589 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz)); |
| 590 EXPECT_STREQ(kOmniboxRlzString, UTF16ToUTF8(rlz).c_str()); | 590 EXPECT_STREQ(kOmniboxRlzString, base::UTF16ToUTF8(rlz).c_str()); |
| 591 } | 591 } |
| 592 | 592 |
| 593 TEST_F(RlzLibTest, GetAccessPointRlzNotOnIoThread) { | 593 TEST_F(RlzLibTest, GetAccessPointRlzNotOnIoThread) { |
| 594 // Set dummy RLZ string. | 594 // Set dummy RLZ string. |
| 595 rlz_lib::SetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, kOmniboxRlzString); | 595 rlz_lib::SetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, kOmniboxRlzString); |
| 596 | 596 |
| 597 base::string16 rlz; | 597 base::string16 rlz; |
| 598 | 598 |
| 599 tracker_.set_assume_not_ui_thread(false); | 599 tracker_.set_assume_not_ui_thread(false); |
| 600 EXPECT_FALSE(RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz)); | 600 EXPECT_FALSE(RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz)); |
| 601 } | 601 } |
| 602 | 602 |
| 603 TEST_F(RlzLibTest, GetAccessPointRlzIsCached) { | 603 TEST_F(RlzLibTest, GetAccessPointRlzIsCached) { |
| 604 // Set dummy RLZ string. | 604 // Set dummy RLZ string. |
| 605 rlz_lib::SetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, kOmniboxRlzString); | 605 rlz_lib::SetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, kOmniboxRlzString); |
| 606 | 606 |
| 607 base::string16 rlz; | 607 base::string16 rlz; |
| 608 | 608 |
| 609 tracker_.set_assume_not_ui_thread(false); | 609 tracker_.set_assume_not_ui_thread(false); |
| 610 EXPECT_FALSE(RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz)); | 610 EXPECT_FALSE(RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz)); |
| 611 | 611 |
| 612 tracker_.set_assume_not_ui_thread(true); | 612 tracker_.set_assume_not_ui_thread(true); |
| 613 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz)); | 613 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz)); |
| 614 EXPECT_STREQ(kOmniboxRlzString, UTF16ToUTF8(rlz).c_str()); | 614 EXPECT_STREQ(kOmniboxRlzString, base::UTF16ToUTF8(rlz).c_str()); |
| 615 | 615 |
| 616 tracker_.set_assume_not_ui_thread(false); | 616 tracker_.set_assume_not_ui_thread(false); |
| 617 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz)); | 617 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz)); |
| 618 EXPECT_STREQ(kOmniboxRlzString, UTF16ToUTF8(rlz).c_str()); | 618 EXPECT_STREQ(kOmniboxRlzString, base::UTF16ToUTF8(rlz).c_str()); |
| 619 } | 619 } |
| 620 | 620 |
| 621 TEST_F(RlzLibTest, PingUpdatesRlzCache) { | 621 TEST_F(RlzLibTest, PingUpdatesRlzCache) { |
| 622 // Set dummy RLZ string. | 622 // Set dummy RLZ string. |
| 623 rlz_lib::SetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, kOmniboxRlzString); | 623 rlz_lib::SetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, kOmniboxRlzString); |
| 624 rlz_lib::SetAccessPointRlz(RLZTracker::CHROME_HOME_PAGE, kHomepageRlzString); | 624 rlz_lib::SetAccessPointRlz(RLZTracker::CHROME_HOME_PAGE, kHomepageRlzString); |
| 625 | 625 |
| 626 base::string16 rlz; | 626 base::string16 rlz; |
| 627 | 627 |
| 628 // Prime the cache. | 628 // Prime the cache. |
| 629 tracker_.set_assume_not_ui_thread(true); | 629 tracker_.set_assume_not_ui_thread(true); |
| 630 | 630 |
| 631 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz)); | 631 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz)); |
| 632 EXPECT_STREQ(kOmniboxRlzString, UTF16ToUTF8(rlz).c_str()); | 632 EXPECT_STREQ(kOmniboxRlzString, base::UTF16ToUTF8(rlz).c_str()); |
| 633 EXPECT_TRUE(RLZTracker::GetAccessPointRlz( | 633 EXPECT_TRUE(RLZTracker::GetAccessPointRlz( |
| 634 RLZTracker::CHROME_HOME_PAGE, &rlz)); | 634 RLZTracker::CHROME_HOME_PAGE, &rlz)); |
| 635 EXPECT_STREQ(kHomepageRlzString, UTF16ToUTF8(rlz).c_str()); | 635 EXPECT_STREQ(kHomepageRlzString, base::UTF16ToUTF8(rlz).c_str()); |
| 636 | 636 |
| 637 // Make sure cache is valid. | 637 // Make sure cache is valid. |
| 638 tracker_.set_assume_not_ui_thread(false); | 638 tracker_.set_assume_not_ui_thread(false); |
| 639 | 639 |
| 640 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz)); | 640 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz)); |
| 641 EXPECT_STREQ(kOmniboxRlzString, UTF16ToUTF8(rlz).c_str()); | 641 EXPECT_STREQ(kOmniboxRlzString, base::UTF16ToUTF8(rlz).c_str()); |
| 642 EXPECT_TRUE(RLZTracker::GetAccessPointRlz( | 642 EXPECT_TRUE(RLZTracker::GetAccessPointRlz( |
| 643 RLZTracker::CHROME_HOME_PAGE, &rlz)); | 643 RLZTracker::CHROME_HOME_PAGE, &rlz)); |
| 644 EXPECT_STREQ(kHomepageRlzString, UTF16ToUTF8(rlz).c_str()); | 644 EXPECT_STREQ(kHomepageRlzString, base::UTF16ToUTF8(rlz).c_str()); |
| 645 | 645 |
| 646 // Perform ping. | 646 // Perform ping. |
| 647 tracker_.set_assume_not_ui_thread(true); | 647 tracker_.set_assume_not_ui_thread(true); |
| 648 TestRLZTracker::InitRlzDelayed(true, false, kDelay, true, true, false); | 648 TestRLZTracker::InitRlzDelayed(true, false, kDelay, true, true, false); |
| 649 InvokeDelayedInit(); | 649 InvokeDelayedInit(); |
| 650 ExpectRlzPingSent(true); | 650 ExpectRlzPingSent(true); |
| 651 | 651 |
| 652 // Make sure cache is now updated. | 652 // Make sure cache is now updated. |
| 653 tracker_.set_assume_not_ui_thread(false); | 653 tracker_.set_assume_not_ui_thread(false); |
| 654 | 654 |
| 655 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz)); | 655 EXPECT_TRUE(RLZTracker::GetAccessPointRlz(RLZTracker::CHROME_OMNIBOX, &rlz)); |
| 656 EXPECT_STREQ(kNewOmniboxRlzString, UTF16ToUTF8(rlz).c_str()); | 656 EXPECT_STREQ(kNewOmniboxRlzString, base::UTF16ToUTF8(rlz).c_str()); |
| 657 EXPECT_TRUE(RLZTracker::GetAccessPointRlz( | 657 EXPECT_TRUE(RLZTracker::GetAccessPointRlz( |
| 658 RLZTracker::CHROME_HOME_PAGE, &rlz)); | 658 RLZTracker::CHROME_HOME_PAGE, &rlz)); |
| 659 EXPECT_STREQ(kNewHomepageRlzString, UTF16ToUTF8(rlz).c_str()); | 659 EXPECT_STREQ(kNewHomepageRlzString, base::UTF16ToUTF8(rlz).c_str()); |
| 660 } | 660 } |
| 661 | 661 |
| 662 TEST_F(RlzLibTest, ObserveHandlesBadArgs) { | 662 TEST_F(RlzLibTest, ObserveHandlesBadArgs) { |
| 663 scoped_ptr<NavigationEntry> entry(NavigationEntry::Create()); | 663 scoped_ptr<NavigationEntry> entry(NavigationEntry::Create()); |
| 664 entry->SetPageID(0); | 664 entry->SetPageID(0); |
| 665 entry->SetTransitionType(content::PAGE_TRANSITION_LINK); | 665 entry->SetTransitionType(content::PAGE_TRANSITION_LINK); |
| 666 tracker_.Observe(content::NOTIFICATION_NAV_ENTRY_PENDING, | 666 tracker_.Observe(content::NOTIFICATION_NAV_ENTRY_PENDING, |
| 667 content::NotificationService::AllSources(), | 667 content::NotificationService::AllSources(), |
| 668 content::Details<NavigationEntry>(NULL)); | 668 content::Details<NavigationEntry>(NULL)); |
| 669 tracker_.Observe(content::NOTIFICATION_NAV_ENTRY_PENDING, | 669 tracker_.Observe(content::NOTIFICATION_NAV_ENTRY_PENDING, |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 722 RLZTracker::RecordProductEvent(rlz_lib::CHROME, RLZTracker::CHROME_OMNIBOX, | 722 RLZTracker::RecordProductEvent(rlz_lib::CHROME, RLZTracker::CHROME_OMNIBOX, |
| 723 rlz_lib::FIRST_SEARCH); | 723 rlz_lib::FIRST_SEARCH); |
| 724 | 724 |
| 725 ExpectEventRecorded(kOmniboxFirstSearch, true); | 725 ExpectEventRecorded(kOmniboxFirstSearch, true); |
| 726 | 726 |
| 727 RLZTracker::ClearRlzState(); | 727 RLZTracker::ClearRlzState(); |
| 728 | 728 |
| 729 ExpectEventRecorded(kOmniboxFirstSearch, false); | 729 ExpectEventRecorded(kOmniboxFirstSearch, false); |
| 730 } | 730 } |
| 731 #endif // defined(OS_CHROMEOS) | 731 #endif // defined(OS_CHROMEOS) |
| OLD | NEW |