| 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 328a66473c26643fab502cb3db50c9d2e89b9a80..aa0e46f29936bdb3894db25693b74ff490a117a5 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,31 @@ class SiteEngagementServiceTest : public ChromeRenderViewHostTestHarness {
|
| EXPECT_NEAR(expected, actual, kMaxRoundingDeviation);
|
| }
|
|
|
| + void CheckScoreFromSettingsOnThread(
|
| + content::BrowserThread::ID thread_id,
|
| + HostContentSettingsMap* settings_map,
|
| + const GURL& url,
|
| + double expected_score) {
|
| + base::RunLoop run_loop;
|
| + content::BrowserThread::PostTask(
|
| + thread_id, FROM_HERE,
|
| + base::Bind(&SiteEngagementServiceTest::CheckScoreFromSettings,
|
| + base::Unretained(this), settings_map, url, expected_score,
|
| + run_loop.QuitClosure()));
|
| + run_loop.Run();
|
| + }
|
| +
|
| private:
|
| + void CheckScoreFromSettings(HostContentSettingsMap* settings_map,
|
| + const GURL& url,
|
| + double expected_score,
|
| + const base::Closure& quit_closure) {
|
| + EXPECT_EQ(expected_score,
|
| + SiteEngagementService::GetScoreFromSettings(settings_map, url));
|
| + content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE,
|
| + quit_closure);
|
| + }
|
| +
|
| base::ScopedTempDir temp_dir_;
|
| };
|
|
|
| @@ -1514,3 +1545,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.
|
| + CheckScoreFromSettingsOnThread(content::BrowserThread::IO, settings_map, url1,
|
| + 0);
|
| + CheckScoreFromSettingsOnThread(content::BrowserThread::FILE, settings_map,
|
| + url2, 0);
|
| + CheckScoreFromSettingsOnThread(content::BrowserThread::FILE,
|
| + incognito_settings_map, url1, 0);
|
| + CheckScoreFromSettingsOnThread(content::BrowserThread::IO,
|
| + incognito_settings_map, url2, 0);
|
| +
|
| + SiteEngagementService* service = SiteEngagementService::Get(profile());
|
| + ASSERT_TRUE(service);
|
| + service->AddPoints(url1, 1);
|
| + service->AddPoints(url2, 2);
|
| +
|
| + CheckScoreFromSettingsOnThread(content::BrowserThread::FILE, settings_map,
|
| + url1, 1);
|
| + CheckScoreFromSettingsOnThread(content::BrowserThread::IO, settings_map, url2,
|
| + 2);
|
| + CheckScoreFromSettingsOnThread(content::BrowserThread::FILE,
|
| + incognito_settings_map, url1, 1);
|
| + CheckScoreFromSettingsOnThread(content::BrowserThread::IO,
|
| + incognito_settings_map, url2, 2);
|
| +
|
| + SiteEngagementService* incognito_service =
|
| + SiteEngagementService::Get(profile()->GetOffTheRecordProfile());
|
| + ASSERT_TRUE(incognito_service);
|
| + incognito_service->AddPoints(url1, 3);
|
| + incognito_service->AddPoints(url2, 1);
|
| +
|
| + CheckScoreFromSettingsOnThread(content::BrowserThread::IO,
|
| + incognito_settings_map, url1, 4);
|
| + CheckScoreFromSettingsOnThread(content::BrowserThread::FILE,
|
| + incognito_settings_map, url2, 3);
|
| + CheckScoreFromSettingsOnThread(content::BrowserThread::FILE, settings_map,
|
| + url1, 1);
|
| + CheckScoreFromSettingsOnThread(content::BrowserThread::IO, settings_map, url2,
|
| + 2);
|
| +
|
| + service->AddPoints(url1, 2);
|
| + service->AddPoints(url2, 1);
|
| +
|
| + CheckScoreFromSettingsOnThread(content::BrowserThread::IO,
|
| + incognito_settings_map, url1, 4);
|
| + CheckScoreFromSettingsOnThread(content::BrowserThread::FILE,
|
| + incognito_settings_map, url2, 3);
|
| + CheckScoreFromSettingsOnThread(content::BrowserThread::IO, settings_map, url1,
|
| + 3);
|
| + CheckScoreFromSettingsOnThread(content::BrowserThread::FILE, settings_map,
|
| + url2, 3);
|
| +}
|
|
|