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 |