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

Unified Diff: content/browser/cache_storage/cache_storage_scheduler_unittest.cc

Issue 1048053002: [BackgroundSync] Handle storage failure (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@background_sync
Patch Set: Address comments from PS5 Created 5 years, 9 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
« no previous file with comments | « content/browser/cache_storage/cache_storage_scheduler.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/cache_storage/cache_storage_scheduler_unittest.cc
diff --git a/content/browser/cache_storage/cache_storage_scheduler_unittest.cc b/content/browser/cache_storage/cache_storage_scheduler_unittest.cc
index 5557e06885be272eec22df89de216317d791b249..b04e8e7321f091197cae087cd7c4644e09b8907e 100644
--- a/content/browser/cache_storage/cache_storage_scheduler_unittest.cc
+++ b/content/browser/cache_storage/cache_storage_scheduler_unittest.cc
@@ -7,18 +7,20 @@
#include "base/bind.h"
#include "base/callback.h"
#include "base/run_loop.h"
+#include "content/public/test/test_browser_thread_bundle.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace content {
namespace {
-class JobStats {
+class TestTask {
public:
- JobStats(CacheStorageScheduler* scheduler)
+ TestTask(CacheStorageScheduler* scheduler)
: scheduler_(scheduler), callback_count_(0) {}
- virtual void Run() = 0;
+ virtual void Run() { callback_count_++; }
+ void Done() { scheduler_->CompleteOperationAndRunNext(); }
int callback_count() const { return callback_count_; }
@@ -27,59 +29,53 @@ class JobStats {
int callback_count_;
};
-class SyncJob : public JobStats {
- public:
- SyncJob(CacheStorageScheduler* scheduler) : JobStats(scheduler) {}
-
- void Run() override {
- callback_count_++;
- scheduler_->CompleteOperationAndRunNext();
- }
-};
-
-class AsyncJob : public JobStats {
- public:
- AsyncJob(CacheStorageScheduler* scheduler) : JobStats(scheduler) {}
-
- void Run() override { callback_count_++; }
- void Done() { scheduler_->CompleteOperationAndRunNext(); }
-};
-
} // namespace
class CacheStorageSchedulerTest : public testing::Test {
protected:
CacheStorageSchedulerTest()
- : async_job_(AsyncJob(&scheduler_)), sync_job_(SyncJob(&scheduler_)) {}
+ : browser_thread_bundle_(TestBrowserThreadBundle::IO_MAINLOOP),
+ task1_(TestTask(&scheduler_)),
+ task2_(TestTask(&scheduler_)) {}
+ TestBrowserThreadBundle browser_thread_bundle_;
CacheStorageScheduler scheduler_;
- AsyncJob async_job_;
- SyncJob sync_job_;
+ TestTask task1_;
+ TestTask task2_;
};
TEST_F(CacheStorageSchedulerTest, ScheduleOne) {
scheduler_.ScheduleOperation(
- base::Bind(&JobStats::Run, base::Unretained(&sync_job_)));
- EXPECT_EQ(1, sync_job_.callback_count());
+ base::Bind(&TestTask::Run, base::Unretained(&task1_)));
+ base::RunLoop().RunUntilIdle();
+ EXPECT_EQ(1, task1_.callback_count());
}
TEST_F(CacheStorageSchedulerTest, ScheduleTwo) {
scheduler_.ScheduleOperation(
- base::Bind(&JobStats::Run, base::Unretained(&sync_job_)));
+ base::Bind(&TestTask::Run, base::Unretained(&task1_)));
scheduler_.ScheduleOperation(
- base::Bind(&JobStats::Run, base::Unretained(&sync_job_)));
- EXPECT_EQ(2, sync_job_.callback_count());
+ base::Bind(&TestTask::Run, base::Unretained(&task2_)));
+ base::RunLoop().RunUntilIdle();
+ EXPECT_EQ(1, task1_.callback_count());
+ EXPECT_EQ(0, task2_.callback_count());
+
+ task1_.Done();
+ EXPECT_TRUE(scheduler_.ScheduledOperations());
+ base::RunLoop().RunUntilIdle();
+ EXPECT_EQ(1, task1_.callback_count());
+ EXPECT_EQ(1, task2_.callback_count());
}
-TEST_F(CacheStorageSchedulerTest, Block) {
- scheduler_.ScheduleOperation(
- base::Bind(&JobStats::Run, base::Unretained(&async_job_)));
- EXPECT_EQ(1, async_job_.callback_count());
+TEST_F(CacheStorageSchedulerTest, ScheduledOperations) {
scheduler_.ScheduleOperation(
- base::Bind(&JobStats::Run, base::Unretained(&sync_job_)));
- EXPECT_EQ(0, sync_job_.callback_count());
- async_job_.Done();
- EXPECT_EQ(1, sync_job_.callback_count());
+ base::Bind(&TestTask::Run, base::Unretained(&task1_)));
+ EXPECT_TRUE(scheduler_.ScheduledOperations());
+ base::RunLoop().RunUntilIdle();
+ EXPECT_EQ(1, task1_.callback_count());
+ EXPECT_TRUE(scheduler_.ScheduledOperations());
+ task1_.Done();
+ EXPECT_FALSE(scheduler_.ScheduledOperations());
}
} // namespace content
« no previous file with comments | « content/browser/cache_storage/cache_storage_scheduler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698