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

Unified Diff: base/task_unittest.cc

Issue 7062013: Move media library AutoTaskRunner to base and rename ScopedTaskRunner. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments and add unit test. Created 9 years, 7 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
« base/task.h ('K') | « base/task.cc ('k') | media/base/callback.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/task_unittest.cc
diff --git a/base/task_unittest.cc b/base/task_unittest.cc
index 25c201d267b801c0008c2a3074b4fd84755fc253..d6f537738bd7c4c8310113f48f790f9d07917f5d 100644
--- a/base/task_unittest.cc
+++ b/base/task_unittest.cc
@@ -49,4 +49,58 @@ TEST(TaskTest, TestCancelInDestructor) {
delete cancelable_task;
}
+class DoneTask : public Task {
+ public:
+ DoneTask(int* run_count, bool* was_deleted)
+ : run_count_(run_count), was_deleted_(was_deleted) {}
awong 2011/05/26 19:01:01 Since you had to break for the initializer list, t
Wez 2011/05/26 20:53:46 Done.
+ ~DoneTask() {
awong 2011/05/26 19:01:01 virtual
Wez 2011/05/26 20:53:46 Done.
+ *was_deleted_ = true;
+ }
+
+ virtual void Run() {
+ ++(*run_count_);
+ }
+
+ int* run_count_;
+ bool* was_deleted_;
+};
+
+TEST(TaskTest, TestScopedTaskRunnerExitScope) {
+ int run_count = 0;
+ bool was_deleted = false;
+ {
+ base::ScopedTaskRunner runner(new DoneTask(&run_count, &was_deleted));
+ }
+ ASSERT_EQ(1, run_count);
awong 2011/05/26 19:01:01 Use EXPECT_* not ASSERT_* here and in the other ne
Wez 2011/05/26 20:53:46 Done.
+ ASSERT_EQ(true, was_deleted);
awong 2011/05/26 19:01:01 _TRUE, not _EQ
Wez 2011/05/26 20:53:46 Done.
+}
+
+TEST(TaskTest, TestScopedTaskRunnerRelease) {
+ int run_count = 0;
+ bool was_deleted = false;
+ {
+ base::ScopedTaskRunner runner(new DoneTask(&run_count, &was_deleted));
+ delete runner.Release();
+ ASSERT_EQ(true, was_deleted);
awong 2011/05/26 19:01:01 ASSERT_TRUE
Wez 2011/05/26 20:53:46 Done.
+ }
+ ASSERT_EQ(0, run_count);
+}
+
+TEST(TaskTest, TestScopedTaskRunnerManualRun) {
+ int run_count = 0;
+ Task* done_task = NULL;
+ bool was_deleted = false;
+ {
+ base::ScopedTaskRunner runner(new DoneTask(&run_count, &was_deleted));
+ done_task = runner.Release();
+ ASSERT_TRUE(NULL != done_task);
awong 2011/05/26 19:01:01 ASSERT_EQ?
Wez 2011/05/26 20:53:46 Would need to be ASSERT_NE(), which gets confused
+ ASSERT_EQ(false, was_deleted);
+ done_task->Run();
+ ASSERT_EQ(false, was_deleted);
+ }
+ ASSERT_EQ(1, run_count);
+ delete done_task;
+ ASSERT_EQ(true, was_deleted);
+}
+
} // namespace
« base/task.h ('K') | « base/task.cc ('k') | media/base/callback.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698