| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include <string> | 5 #include <string> | 
| 6 | 6 | 
| 7 #include "base/bind.h" | 7 #include "base/bind.h" | 
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" | 
| 9 #include "base/pickle.h" | 9 #include "base/pickle.h" | 
| 10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" | 
| (...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 310   SetupMockReader(true, true, false); | 310   SetupMockReader(true, true, false); | 
| 311   base::RunLoop().RunUntilIdle(); | 311   base::RunLoop().RunUntilIdle(); | 
| 312   EXPECT_EQ(0, CountPendingHelpers()); | 312   EXPECT_EQ(0, CountPendingHelpers()); | 
| 313   EXPECT_FALSE(IsGroupStored(kManifestUrl)); | 313   EXPECT_FALSE(IsGroupStored(kManifestUrl)); | 
| 314   ResetStorage(); | 314   ResetStorage(); | 
| 315 | 315 | 
| 316   service_.reset();  // Clean up. | 316   service_.reset();  // Clean up. | 
| 317   base::RunLoop().RunUntilIdle(); | 317   base::RunLoop().RunUntilIdle(); | 
| 318 } | 318 } | 
| 319 | 319 | 
|  | 320 // Just tests the backoff scheduling function, not the actual reinit function. | 
|  | 321 TEST_F(AppCacheServiceTest, ScheduleReinitialize) { | 
|  | 322   const base::TimeDelta kNoDelay; | 
|  | 323   const base::TimeDelta kOneSecond(base::TimeDelta::FromSeconds(1)); | 
|  | 324   const base::TimeDelta k30Seconds(base::TimeDelta::FromSeconds(30)); | 
|  | 325   const base::TimeDelta kOneHour(base::TimeDelta::FromHours(1)); | 
|  | 326 | 
|  | 327   // Do things get initialized as expected? | 
|  | 328   scoped_ptr<AppCacheService> service(new AppCacheService(NULL)); | 
|  | 329   EXPECT_TRUE(service->last_reinit_time_.is_null()); | 
|  | 330   EXPECT_FALSE(service->reinit_timer_.IsRunning()); | 
|  | 331   EXPECT_EQ(kNoDelay, service->next_reinit_delay_); | 
|  | 332 | 
|  | 333   // Do we see artifacts of the timer pending and such? | 
|  | 334   service->ScheduleReinitialize(); | 
|  | 335   EXPECT_TRUE(service->reinit_timer_.IsRunning()); | 
|  | 336   EXPECT_EQ(kNoDelay, service->reinit_timer_.GetCurrentDelay()); | 
|  | 337   EXPECT_EQ(k30Seconds, service->next_reinit_delay_); | 
|  | 338 | 
|  | 339   // Nothing should change if already scheduled | 
|  | 340   service->ScheduleReinitialize(); | 
|  | 341   EXPECT_TRUE(service->reinit_timer_.IsRunning()); | 
|  | 342   EXPECT_EQ(kNoDelay, service->reinit_timer_.GetCurrentDelay()); | 
|  | 343   EXPECT_EQ(k30Seconds, service->next_reinit_delay_); | 
|  | 344 | 
|  | 345   // Does the delay increase as expected? | 
|  | 346   service->reinit_timer_.Stop(); | 
|  | 347   service->last_reinit_time_ = base::Time::Now() - kOneSecond; | 
|  | 348   service->ScheduleReinitialize(); | 
|  | 349   EXPECT_TRUE(service->reinit_timer_.IsRunning()); | 
|  | 350   EXPECT_EQ(k30Seconds, service->reinit_timer_.GetCurrentDelay()); | 
|  | 351   EXPECT_EQ(k30Seconds + k30Seconds, service->next_reinit_delay_); | 
|  | 352 | 
|  | 353   // Does the delay reset as expected? | 
|  | 354   service->reinit_timer_.Stop(); | 
|  | 355   service->last_reinit_time_ = base::Time::Now() - | 
|  | 356                                base::TimeDelta::FromHours(2); | 
|  | 357   service->ScheduleReinitialize(); | 
|  | 358   EXPECT_TRUE(service->reinit_timer_.IsRunning()); | 
|  | 359   EXPECT_EQ(kNoDelay, service->reinit_timer_.GetCurrentDelay()); | 
|  | 360   EXPECT_EQ(k30Seconds, service->next_reinit_delay_); | 
|  | 361 | 
|  | 362   // Does the delay max out as expected? | 
|  | 363   service->reinit_timer_.Stop(); | 
|  | 364   service->last_reinit_time_ = base::Time::Now() - kOneSecond; | 
|  | 365   service->next_reinit_delay_ = kOneHour; | 
|  | 366   service->ScheduleReinitialize(); | 
|  | 367   EXPECT_TRUE(service->reinit_timer_.IsRunning()); | 
|  | 368   EXPECT_EQ(kOneHour, service->reinit_timer_.GetCurrentDelay()); | 
|  | 369   EXPECT_EQ(kOneHour, service->next_reinit_delay_); | 
|  | 370 | 
|  | 371   // Fine to delete while pending. | 
|  | 372   service.reset(NULL); | 
|  | 373 } | 
|  | 374 | 
|  | 375 | 
|  | 376 | 
| 320 }  // namespace appcache | 377 }  // namespace appcache | 
| OLD | NEW | 
|---|