test_browser_thread_bundle.cc revision 868fa2fe829687343ffae624259930155e16dbd8
1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "content/public/test/test_browser_thread_bundle.h" 6 7#include "base/message_loop.h" 8#include "base/run_loop.h" 9#include "content/public/test/test_browser_thread.h" 10 11namespace content { 12 13TestBrowserThreadBundle::TestBrowserThreadBundle() { 14 Init(DEFAULT); 15} 16 17TestBrowserThreadBundle::TestBrowserThreadBundle(int options) { 18 Init(options); 19} 20 21TestBrowserThreadBundle::~TestBrowserThreadBundle() { 22 base::RunLoop().RunUntilIdle(); 23} 24 25void TestBrowserThreadBundle::Init(int options) { 26 if (options & IO_MAINLOOP) { 27 message_loop_.reset(new base::MessageLoopForIO()); 28 } else { 29 message_loop_.reset(new base::MessageLoopForUI()); 30 } 31 32 ui_thread_.reset(new TestBrowserThread(BrowserThread::UI, 33 message_loop_.get())); 34 35 if (options & REAL_DB_THREAD) { 36 db_thread_.reset(new TestBrowserThread(BrowserThread::DB)); 37 db_thread_->Start(); 38 } else { 39 db_thread_.reset(new TestBrowserThread(BrowserThread::DB, 40 message_loop_.get())); 41 } 42 43 if (options & REAL_WEBKIT_DEPRECATED_THREAD) { 44 webkit_deprecated_thread_.reset( 45 new TestBrowserThread(BrowserThread::WEBKIT_DEPRECATED)); 46 webkit_deprecated_thread_->Start(); 47 } else { 48 webkit_deprecated_thread_.reset( 49 new TestBrowserThread(BrowserThread::WEBKIT_DEPRECATED, 50 message_loop_.get())); 51 } 52 53 if (options & REAL_FILE_THREAD) { 54 file_thread_.reset(new TestBrowserThread(BrowserThread::FILE)); 55 file_thread_->Start(); 56 } else { 57 file_thread_.reset(new TestBrowserThread(BrowserThread::FILE, 58 message_loop_.get())); 59 } 60 61 if (options & REAL_FILE_USER_BLOCKING_THREAD) { 62 file_user_blocking_thread_.reset( 63 new TestBrowserThread(BrowserThread::FILE_USER_BLOCKING)); 64 file_user_blocking_thread_->Start(); 65 } else { 66 file_user_blocking_thread_.reset( 67 new TestBrowserThread(BrowserThread::FILE_USER_BLOCKING, 68 message_loop_.get())); 69 } 70 71 if (options & REAL_PROCESS_LAUNCHER_THREAD) { 72 process_launcher_thread_.reset( 73 new TestBrowserThread(BrowserThread::PROCESS_LAUNCHER)); 74 process_launcher_thread_->Start(); 75 } else { 76 process_launcher_thread_.reset( 77 new TestBrowserThread(BrowserThread::PROCESS_LAUNCHER, 78 message_loop_.get())); 79 } 80 81 if (options & REAL_CACHE_THREAD) { 82 cache_thread_.reset(new TestBrowserThread(BrowserThread::CACHE)); 83 cache_thread_->Start(); 84 } else { 85 cache_thread_.reset(new TestBrowserThread(BrowserThread::CACHE, 86 message_loop_.get())); 87 } 88 89 if (options & REAL_IO_THREAD) { 90 io_thread_.reset(new TestBrowserThread(BrowserThread::IO)); 91 io_thread_->StartIOThread(); 92 } else { 93 io_thread_.reset( 94 new TestBrowserThread(BrowserThread::IO, message_loop_.get())); 95 } 96} 97 98} // namespace content 99