Chromium Code Reviews| Index: chrome/browser/geolocation/geolocation_browsertest.cc |
| diff --git a/chrome/browser/geolocation/geolocation_browsertest.cc b/chrome/browser/geolocation/geolocation_browsertest.cc |
| index 196f908310ea361922cf062845c9f8d23079d45d..3c3b738d70ddf0215f60fb419b03eecf15b164ea 100644 |
| --- a/chrome/browser/geolocation/geolocation_browsertest.cc |
| +++ b/chrome/browser/geolocation/geolocation_browsertest.cc |
| @@ -8,6 +8,8 @@ |
| #include "base/strings/string_number_conversions.h" |
| #include "base/strings/stringprintf.h" |
| #include "base/strings/utf_string_conversions.h" |
| +#include "base/test/simple_test_clock.h" |
| +#include "base/time/clock.h" |
| #include "chrome/browser/chrome_notification_types.h" |
| #include "chrome/browser/content_settings/content_settings_usages_state.h" |
| #include "chrome/browser/content_settings/host_content_settings_map.h" |
| @@ -769,3 +771,48 @@ IN_PROC_BROWSER_TEST_F(GeolocationBrowserTest, TabDestroyed) { |
| current_browser()->tab_strip_model()->GetActiveWebContents(), script); |
| EXPECT_EQ(result, true); |
| } |
| + |
| +IN_PROC_BROWSER_TEST_F(GeolocationBrowserTest, LastUsageUpdated) { |
| + ASSERT_TRUE(Initialize(INITIALIZATION_NONE)); |
| + base::SimpleTestClock* clock_ = new base::SimpleTestClock(); |
|
Bernhard Bauer
2014/07/17 09:11:48
Same here.
|
| + current_browser() |
| + ->profile() |
| + ->GetHostContentSettingsMap() |
| + ->SetPrefClockForTesting(scoped_ptr<base::Clock>(clock_)); |
| + clock_->SetNow(base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(10)); |
| + |
| + // Setting the permission should trigger the last usage. |
| + current_browser()->profile()->GetHostContentSettingsMap()->SetContentSetting( |
| + ContentSettingsPattern::FromURLNoWildcard(current_url()), |
| + ContentSettingsPattern::FromURLNoWildcard(current_url()), |
| + CONTENT_SETTINGS_TYPE_GEOLOCATION, |
| + std::string(), |
| + CONTENT_SETTING_ALLOW); |
| + |
| + // Permission has been used at the starting time. |
| + EXPECT_EQ(current_browser() |
| + ->profile() |
| + ->GetHostContentSettingsMap() |
| + ->GetLastUsage(current_url().GetOrigin(), |
| + current_url().GetOrigin(), |
| + CONTENT_SETTINGS_TYPE_GEOLOCATION) |
| + .ToDoubleT(), |
| + 10); |
| + |
| + clock_->Advance(base::TimeDelta::FromSeconds(3)); |
| + |
| + // Watching should trigger the last usage update. |
| + SetFrameHost(""); |
| + AddGeolocationWatch(false); |
| + CheckGeoposition(fake_latitude(), fake_longitude()); |
| + |
| + // Last usage has been updated. |
| + EXPECT_EQ(current_browser() |
| + ->profile() |
| + ->GetHostContentSettingsMap() |
| + ->GetLastUsage(current_url().GetOrigin(), |
| + current_url().GetOrigin(), |
| + CONTENT_SETTINGS_TYPE_GEOLOCATION) |
| + .ToDoubleT(), |
| + 13); |
| +} |