Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1438)

Unified Diff: chrome/browser/extensions/api/alarms/alarms_api_unittest.cc

Issue 23205008: Fix a bug where the minimum granular time for Alarms was not calculated properly. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Unit tests. Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/alarms/alarms_api_unittest.cc
diff --git a/chrome/browser/extensions/api/alarms/alarms_api_unittest.cc b/chrome/browser/extensions/api/alarms/alarms_api_unittest.cc
index 6c13b86d6d791007371c5ed84661adce8f8084b1..da8d99ea76211dc0f430896812d786759af5dce8 100644
--- a/chrome/browser/extensions/api/alarms/alarms_api_unittest.cc
+++ b/chrome/browser/extensions/api/alarms/alarms_api_unittest.cc
@@ -575,13 +575,13 @@ TEST_F(ExtensionAlarmsSchedulingTest, ReleasedExtensionPollsInfrequently) {
EXPECT_DOUBLE_EQ(300010, alarm_manager_->test_next_poll_time_.ToJsTime());
alarm_manager_->last_poll_time_ = base::Time::FromJsTime(290000);
- // In released extensions, we set the granularity to at least 5
- // minutes, which makes AddAlarm schedule the next poll after the
+ // In released extensions, we set the granularity to at least 1
+ // minute, which makes AddAlarm schedule the next poll after the
// extension requested.
alarm_manager_->ScheduleNextPoll();
EXPECT_DOUBLE_EQ((alarm_manager_->last_poll_time_ +
base::TimeDelta::FromMinutes(1)).ToJsTime(),
- alarm_manager_->test_next_poll_time_.ToJsTime());
+ alarm_manager_->test_next_poll_time_.ToJsTime());
}
TEST_F(ExtensionAlarmsSchedulingTest, TimerRunning) {
@@ -597,4 +597,23 @@ TEST_F(ExtensionAlarmsSchedulingTest, TimerRunning) {
EXPECT_FALSE(alarm_manager_->timer_.IsRunning());
}
+TEST_F(ExtensionAlarmsSchedulingTest, MinimumGranularity) {
+ extension_ = utils::CreateEmptyExtensionWithLocation(
+ extensions::Manifest::INTERNAL);
+ test_clock_->SetNow(base::Time::FromJsTime(0));
+ CreateAlarm("[\"a\", {\"periodInMinutes\": 2}]");
+ test_clock_->Advance(base::TimeDelta::FromSeconds(1));
+ CreateAlarm("[\"b\", {\"periodInMinutes\": 2}]");
+ test_clock_->Advance(base::TimeDelta::FromMinutes(2));
+
+ alarm_manager_->last_poll_time_ = base::Time::FromJsTime(2 * 60000);
+ // In released extensions, we set the granularity to at least 1
+ // minute, which makes scheduler set it to 1 minute, rather than
+ // 1 second later (when b is supposed to go off).
+ alarm_manager_->ScheduleNextPoll();
+ EXPECT_DOUBLE_EQ((alarm_manager_->last_poll_time_ +
+ base::TimeDelta::FromMinutes(1)).ToJsTime(),
+ alarm_manager_->test_next_poll_time_.ToJsTime());
+}
+
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698