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

Side by Side Diff: content/common/database_connections_unittest.cc

Issue 1134113002: content/common: Remove use of MessageLoopProxy and deprecated MessageLoop APIs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix CrOS build. Created 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/message_loop/message_loop.h" 6 #include "base/message_loop/message_loop.h"
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "base/thread_task_runner_handle.h"
8 #include "base/threading/thread.h" 9 #include "base/threading/thread.h"
9 #include "storage/common/database/database_connections.h" 10 #include "storage/common/database/database_connections.h"
10 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
11 12
12 using base::ASCIIToUTF16; 13 using base::ASCIIToUTF16;
13 using storage::DatabaseConnections; 14 using storage::DatabaseConnections;
14 using storage::DatabaseConnectionsWrapper; 15 using storage::DatabaseConnectionsWrapper;
15 16
16 namespace content { 17 namespace content {
17 18
18 namespace { 19 namespace {
19 20
20 void RemoveConnectionTask( 21 void RemoveConnectionTask(
21 const std::string& origin_id, const base::string16& database_name, 22 const std::string& origin_id, const base::string16& database_name,
22 scoped_refptr<DatabaseConnectionsWrapper> obj, 23 scoped_refptr<DatabaseConnectionsWrapper> obj,
23 bool* did_task_execute) { 24 bool* did_task_execute) {
24 *did_task_execute = true; 25 *did_task_execute = true;
25 obj->RemoveOpenConnection(origin_id, database_name); 26 obj->RemoveOpenConnection(origin_id, database_name);
26 } 27 }
27 28
28 void ScheduleRemoveConnectionTask( 29 void ScheduleRemoveConnectionTask(
29 base::Thread* thread, const std::string& origin_id, 30 base::Thread* thread, const std::string& origin_id,
30 const base::string16& database_name, 31 const base::string16& database_name,
31 scoped_refptr<DatabaseConnectionsWrapper> obj, 32 scoped_refptr<DatabaseConnectionsWrapper> obj,
32 bool* did_task_execute) { 33 bool* did_task_execute) {
33 thread->message_loop()->PostTask( 34 thread->task_runner()->PostTask(
34 FROM_HERE, 35 FROM_HERE, base::Bind(&RemoveConnectionTask, origin_id, database_name,
35 base::Bind(&RemoveConnectionTask, origin_id, database_name, obj, 36 obj, did_task_execute));
36 did_task_execute));
37 } 37 }
38 38
39 } // anonymous namespace 39 } // anonymous namespace
40 40
41 TEST(DatabaseConnectionsTest, DatabaseConnectionsTest) { 41 TEST(DatabaseConnectionsTest, DatabaseConnectionsTest) {
42 const std::string kOriginId("origin_id"); 42 const std::string kOriginId("origin_id");
43 const base::string16 kName(ASCIIToUTF16("database_name")); 43 const base::string16 kName(ASCIIToUTF16("database_name"));
44 const base::string16 kName2(ASCIIToUTF16("database_name2")); 44 const base::string16 kName2(ASCIIToUTF16("database_name2"));
45 const int64 kSize = 1000; 45 const int64 kSize = 1000;
46 46
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 obj->RemoveOpenConnection(kOriginId, kName); 114 obj->RemoveOpenConnection(kOriginId, kName);
115 EXPECT_TRUE(obj->HasOpenConnections()); 115 EXPECT_TRUE(obj->HasOpenConnections());
116 obj->RemoveOpenConnection(kOriginId, kName); 116 obj->RemoveOpenConnection(kOriginId, kName);
117 EXPECT_FALSE(obj->HasOpenConnections()); 117 EXPECT_FALSE(obj->HasOpenConnections());
118 obj->WaitForAllDatabasesToClose(); // should return immediately 118 obj->WaitForAllDatabasesToClose(); // should return immediately
119 119
120 // Test WaitForAllDatabasesToClose with the last connection 120 // Test WaitForAllDatabasesToClose with the last connection
121 // being removed on the current thread. 121 // being removed on the current thread.
122 obj->AddOpenConnection(kOriginId, kName); 122 obj->AddOpenConnection(kOriginId, kName);
123 bool did_task_execute = false; 123 bool did_task_execute = false;
124 base::MessageLoop::current()->PostTask( 124 base::ThreadTaskRunnerHandle::Get()->PostTask(
125 FROM_HERE, 125 FROM_HERE, base::Bind(&RemoveConnectionTask, kOriginId, kName, obj,
126 base::Bind(&RemoveConnectionTask, kOriginId, kName, obj, 126 &did_task_execute));
127 &did_task_execute));
128 obj->WaitForAllDatabasesToClose(); // should return after the task executes 127 obj->WaitForAllDatabasesToClose(); // should return after the task executes
129 EXPECT_TRUE(did_task_execute); 128 EXPECT_TRUE(did_task_execute);
130 EXPECT_FALSE(obj->HasOpenConnections()); 129 EXPECT_FALSE(obj->HasOpenConnections());
131 130
132 // Test WaitForAllDatabasesToClose with the last connection 131 // Test WaitForAllDatabasesToClose with the last connection
133 // being removed on another thread. 132 // being removed on another thread.
134 obj->AddOpenConnection(kOriginId, kName); 133 obj->AddOpenConnection(kOriginId, kName);
135 base::Thread thread("WrapperTestThread"); 134 base::Thread thread("WrapperTestThread");
136 thread.Start(); 135 thread.Start();
137 did_task_execute = false; 136 did_task_execute = false;
138 base::MessageLoop::current()->PostTask( 137 base::ThreadTaskRunnerHandle::Get()->PostTask(
139 FROM_HERE, 138 FROM_HERE, base::Bind(&ScheduleRemoveConnectionTask, &thread, kOriginId,
140 base::Bind(&ScheduleRemoveConnectionTask, &thread, kOriginId, kName, obj, 139 kName, obj, &did_task_execute));
141 &did_task_execute));
142 obj->WaitForAllDatabasesToClose(); // should return after the task executes 140 obj->WaitForAllDatabasesToClose(); // should return after the task executes
143 EXPECT_TRUE(did_task_execute); 141 EXPECT_TRUE(did_task_execute);
144 EXPECT_FALSE(obj->HasOpenConnections()); 142 EXPECT_FALSE(obj->HasOpenConnections());
145 } 143 }
146 144
147 } // namespace content 145 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/gpu/browser_gpu_channel_host_factory.cc ('k') | content/common/gpu/client/gpu_channel_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698