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

Side by Side Diff: chrome/browser/chrome_thread_unittest.cc

Issue 1837003: Created a stock implementation of the MessageLoopProxy interface than can be ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Rearranged header files Created 10 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/chrome_thread.cc ('k') | chrome/browser/net/chrome_url_request_context.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/message_loop.h" 5 #include "base/message_loop.h"
6 #include "base/message_loop_proxy.h" 6 #include "base/message_loop_proxy.h"
7 #include "chrome/browser/chrome_thread.h" 7 #include "chrome/browser/chrome_thread.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "testing/platform_test.h" 9 #include "testing/platform_test.h"
10 10
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 new DeletedOnFile(MessageLoop::current())); 105 new DeletedOnFile(MessageLoop::current()));
106 } 106 }
107 MessageLoop::current()->Run(); 107 MessageLoop::current()->Run();
108 } 108 }
109 109
110 TEST_F(ChromeThreadTest, NotReleasedIfTargetThreadNonExistent) { 110 TEST_F(ChromeThreadTest, NotReleasedIfTargetThreadNonExistent) {
111 scoped_refptr<NeverDeleted> test(new NeverDeleted()); 111 scoped_refptr<NeverDeleted> test(new NeverDeleted());
112 } 112 }
113 113
114 TEST_F(ChromeThreadTest, PostTaskViaMessageLoopProxy) { 114 TEST_F(ChromeThreadTest, PostTaskViaMessageLoopProxy) {
115 scoped_refptr<MessageLoopProxy> message_loop_proxy = 115 scoped_refptr<base::MessageLoopProxy> message_loop_proxy =
116 ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE); 116 ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE);
117 message_loop_proxy->PostTask(FROM_HERE, 117 message_loop_proxy->PostTask(FROM_HERE,
118 NewRunnableFunction(&BasicFunction, 118 NewRunnableFunction(&BasicFunction,
119 MessageLoop::current())); 119 MessageLoop::current()));
120 MessageLoop::current()->Run(); 120 MessageLoop::current()->Run();
121 } 121 }
122 122
123 TEST_F(ChromeThreadTest, ReleaseViaMessageLoopProxy) { 123 TEST_F(ChromeThreadTest, ReleaseViaMessageLoopProxy) {
124 scoped_refptr<MessageLoopProxy> message_loop_proxy = 124 scoped_refptr<base::MessageLoopProxy> message_loop_proxy =
125 ChromeThread::GetMessageLoopProxyForThread(ChromeThread::UI); 125 ChromeThread::GetMessageLoopProxyForThread(ChromeThread::UI);
126 message_loop_proxy->ReleaseSoon(FROM_HERE, this); 126 message_loop_proxy->ReleaseSoon(FROM_HERE, this);
127 MessageLoop::current()->Run(); 127 MessageLoop::current()->Run();
128 } 128 }
129 129
130 TEST_F(ChromeThreadTest, TaskToNonExistentThreadIsDeletedViaMessageLoopProxy) { 130 TEST_F(ChromeThreadTest, TaskToNonExistentThreadIsDeletedViaMessageLoopProxy) {
131 bool deleted = false; 131 bool deleted = false;
132 scoped_refptr<MessageLoopProxy> message_loop_proxy = 132 scoped_refptr<base::MessageLoopProxy> message_loop_proxy =
133 ChromeThread::GetMessageLoopProxyForThread(ChromeThread::WEBKIT); 133 ChromeThread::GetMessageLoopProxyForThread(ChromeThread::WEBKIT);
134 message_loop_proxy->PostTask(FROM_HERE, new DummyTask(&deleted)); 134 message_loop_proxy->PostTask(FROM_HERE, new DummyTask(&deleted));
135 EXPECT_TRUE(deleted); 135 EXPECT_TRUE(deleted);
136 } 136 }
137 137
138 TEST_F(ChromeThreadTest, PostTaskViaMessageLoopProxyAfterThreadExits) { 138 TEST_F(ChromeThreadTest, PostTaskViaMessageLoopProxyAfterThreadExits) {
139 scoped_ptr<ChromeThread> io_thread(new ChromeThread(ChromeThread::IO)); 139 scoped_ptr<ChromeThread> io_thread(new ChromeThread(ChromeThread::IO));
140 io_thread->Start(); 140 io_thread->Start();
141 io_thread->Stop(); 141 io_thread->Stop();
142 142
143 bool deleted = false; 143 bool deleted = false;
144 scoped_refptr<MessageLoopProxy> message_loop_proxy = 144 scoped_refptr<base::MessageLoopProxy> message_loop_proxy =
145 ChromeThread::GetMessageLoopProxyForThread(ChromeThread::IO); 145 ChromeThread::GetMessageLoopProxyForThread(ChromeThread::IO);
146 bool ret = message_loop_proxy->PostTask(FROM_HERE, new DummyTask(&deleted)); 146 bool ret = message_loop_proxy->PostTask(FROM_HERE, new DummyTask(&deleted));
147 EXPECT_FALSE(ret); 147 EXPECT_FALSE(ret);
148 EXPECT_TRUE(deleted); 148 EXPECT_TRUE(deleted);
149 } 149 }
150 150
151 TEST_F(ChromeThreadTest, PostTaskViaMessageLoopProxyAfterThreadIsDeleted) { 151 TEST_F(ChromeThreadTest, PostTaskViaMessageLoopProxyAfterThreadIsDeleted) {
152 { 152 {
153 scoped_ptr<ChromeThread> io_thread(new ChromeThread(ChromeThread::IO)); 153 scoped_ptr<ChromeThread> io_thread(new ChromeThread(ChromeThread::IO));
154 io_thread->Start(); 154 io_thread->Start();
155 } 155 }
156 bool deleted = false; 156 bool deleted = false;
157 scoped_refptr<MessageLoopProxy> message_loop_proxy = 157 scoped_refptr<base::MessageLoopProxy> message_loop_proxy =
158 ChromeThread::GetMessageLoopProxyForThread(ChromeThread::IO); 158 ChromeThread::GetMessageLoopProxyForThread(ChromeThread::IO);
159 bool ret = message_loop_proxy->PostTask(FROM_HERE, new DummyTask(&deleted)); 159 bool ret = message_loop_proxy->PostTask(FROM_HERE, new DummyTask(&deleted));
160 EXPECT_FALSE(ret); 160 EXPECT_FALSE(ret);
161 EXPECT_TRUE(deleted); 161 EXPECT_TRUE(deleted);
162 } 162 }
163 163
OLDNEW
« no previous file with comments | « chrome/browser/chrome_thread.cc ('k') | chrome/browser/net/chrome_url_request_context.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698