| Index: chrome/browser/engagement/site_engagement_service_unittest.cc
|
| diff --git a/chrome/browser/engagement/site_engagement_service_unittest.cc b/chrome/browser/engagement/site_engagement_service_unittest.cc
|
| index c2538dabb10d680fe7bbdd9593d74c0e6fa40797..3a38a1529680a448c9b13e254156d1a3d6131b02 100644
|
| --- a/chrome/browser/engagement/site_engagement_service_unittest.cc
|
| +++ b/chrome/browser/engagement/site_engagement_service_unittest.cc
|
| @@ -29,9 +29,11 @@
|
| #include "components/history/core/browser/history_service.h"
|
| #include "components/history/core/test/test_history_database.h"
|
| #include "components/prefs/pref_service.h"
|
| +#include "content/public/browser/browser_thread.h"
|
| #include "content/public/browser/navigation_entry.h"
|
| #include "content/public/browser/page_navigator.h"
|
| #include "content/public/browser/web_contents.h"
|
| +#include "content/public/test/test_browser_thread_bundle.h"
|
| #include "content/public/test/web_contents_tester.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| @@ -144,6 +146,11 @@ class ObserverTester : public SiteEngagementObserver {
|
|
|
| class SiteEngagementServiceTest : public ChromeRenderViewHostTestHarness {
|
| public:
|
| + SiteEngagementServiceTest() : ChromeRenderViewHostTestHarness() {
|
| + SetThreadBundleOptions(content::TestBrowserThreadBundle::REAL_IO_THREAD |
|
| + content::TestBrowserThreadBundle::REAL_DB_THREAD);
|
| + }
|
| +
|
| void SetUp() override {
|
| ChromeRenderViewHostTestHarness::SetUp();
|
| ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
|
| @@ -187,7 +194,28 @@ class SiteEngagementServiceTest : public ChromeRenderViewHostTestHarness {
|
| EXPECT_NEAR(expected, actual, kMaxRoundingDeviation);
|
| }
|
|
|
| + double CheckScoreFromSettingsOnThread(
|
| + content::BrowserThread::ID thread_id,
|
| + HostContentSettingsMap* settings_map,
|
| + const GURL& url) {
|
| + double score = 0;
|
| + base::RunLoop run_loop;
|
| + content::BrowserThread::PostTaskAndReply(
|
| + thread_id, FROM_HERE,
|
| + base::Bind(&SiteEngagementServiceTest::CheckScoreFromSettings,
|
| + base::Unretained(this), settings_map, url, &score),
|
| + run_loop.QuitClosure());
|
| + run_loop.Run();
|
| + return score;
|
| + }
|
| +
|
| private:
|
| + void CheckScoreFromSettings(HostContentSettingsMap* settings_map,
|
| + const GURL& url,
|
| + double *score) {
|
| + *score = SiteEngagementService::GetScoreFromSettings(settings_map, url);
|
| + }
|
| +
|
| base::ScopedTempDir temp_dir_;
|
| };
|
|
|
| @@ -1514,3 +1542,65 @@ TEST_F(SiteEngagementServiceTest, IncognitoEngagementService) {
|
| EXPECT_EQ(2, incognito_service->GetScore(url4));
|
| EXPECT_EQ(2, service->GetScore(url4));
|
| }
|
| +
|
| +TEST_F(SiteEngagementServiceTest, GetScoreFromSettings) {
|
| + GURL url1("http://www.google.com/");
|
| + GURL url2("https://www.google.com/");
|
| +
|
| + HostContentSettingsMap* settings_map =
|
| + HostContentSettingsMapFactory::GetForProfile(profile());
|
| + HostContentSettingsMap* incognito_settings_map =
|
| + HostContentSettingsMapFactory::GetForProfile(
|
| + profile()->GetOffTheRecordProfile());
|
| +
|
| + // All scores are 0 to start.
|
| + EXPECT_EQ(0, CheckScoreFromSettingsOnThread(content::BrowserThread::IO,
|
| + settings_map, url1));
|
| + EXPECT_EQ(0, CheckScoreFromSettingsOnThread(content::BrowserThread::FILE,
|
| + settings_map, url2));
|
| + EXPECT_EQ(0, CheckScoreFromSettingsOnThread(content::BrowserThread::FILE,
|
| + incognito_settings_map, url1));
|
| + EXPECT_EQ(0, CheckScoreFromSettingsOnThread(content::BrowserThread::IO,
|
| + incognito_settings_map, url2));
|
| +
|
| + SiteEngagementService* service = SiteEngagementService::Get(profile());
|
| + ASSERT_TRUE(service);
|
| + service->AddPoints(url1, 1);
|
| + service->AddPoints(url2, 2);
|
| +
|
| + EXPECT_EQ(1, CheckScoreFromSettingsOnThread(content::BrowserThread::FILE,
|
| + settings_map, url1));
|
| + EXPECT_EQ(2, CheckScoreFromSettingsOnThread(content::BrowserThread::IO,
|
| + settings_map, url2));
|
| + EXPECT_EQ(1, CheckScoreFromSettingsOnThread(content::BrowserThread::FILE,
|
| + incognito_settings_map, url1));
|
| + EXPECT_EQ(2, CheckScoreFromSettingsOnThread(content::BrowserThread::IO,
|
| + incognito_settings_map, url2));
|
| +
|
| + SiteEngagementService* incognito_service =
|
| + SiteEngagementService::Get(profile()->GetOffTheRecordProfile());
|
| + ASSERT_TRUE(incognito_service);
|
| + incognito_service->AddPoints(url1, 3);
|
| + incognito_service->AddPoints(url2, 1);
|
| +
|
| + EXPECT_EQ(1, CheckScoreFromSettingsOnThread(content::BrowserThread::IO,
|
| + settings_map, url1));
|
| + EXPECT_EQ(2, CheckScoreFromSettingsOnThread(content::BrowserThread::FILE,
|
| + settings_map, url2));
|
| + EXPECT_EQ(4, CheckScoreFromSettingsOnThread(content::BrowserThread::IO,
|
| + incognito_settings_map, url1));
|
| + EXPECT_EQ(3, CheckScoreFromSettingsOnThread(content::BrowserThread::FILE,
|
| + incognito_settings_map, url2));
|
| +
|
| + service->AddPoints(url1, 2);
|
| + service->AddPoints(url2, 1);
|
| +
|
| + EXPECT_EQ(3, CheckScoreFromSettingsOnThread(content::BrowserThread::IO,
|
| + settings_map, url1));
|
| + EXPECT_EQ(3, CheckScoreFromSettingsOnThread(content::BrowserThread::FILE,
|
| + settings_map, url2));
|
| + EXPECT_EQ(4, CheckScoreFromSettingsOnThread(content::BrowserThread::FILE,
|
| + incognito_settings_map, url1));
|
| + EXPECT_EQ(3, CheckScoreFromSettingsOnThread(content::BrowserThread::IO,
|
| + incognito_settings_map, url2));
|
| +}
|
|
|