test_browser_thread.cc revision 9ab5563a3196760eb381d102cbb2bc0f7abc6a50
1// Copyright (c) 2011 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.h"
6
7#include "base/message_loop/message_loop.h"
8#include "base/threading/thread.h"
9#include "content/browser/browser_thread_impl.h"
10#include "content/browser/notification_service_impl.h"
11
12namespace content {
13
14class TestBrowserThreadImpl : public BrowserThreadImpl {
15 public:
16  explicit TestBrowserThreadImpl(BrowserThread::ID identifier)
17      : BrowserThreadImpl(identifier),
18        notification_service_(NULL) {
19  }
20
21  TestBrowserThreadImpl(BrowserThread::ID identifier,
22                        base::MessageLoop* message_loop)
23      : BrowserThreadImpl(identifier, message_loop),
24        notification_service_(NULL) {}
25
26  virtual ~TestBrowserThreadImpl() {
27    Stop();
28  }
29
30  virtual void Init() OVERRIDE {
31    notification_service_ = new NotificationServiceImpl;
32    BrowserThreadImpl::Init();
33  }
34
35  virtual void CleanUp() OVERRIDE {
36    delete notification_service_;
37    notification_service_ = NULL;
38    BrowserThreadImpl::CleanUp();
39  }
40
41 private:
42  NotificationService* notification_service_;
43
44  DISALLOW_COPY_AND_ASSIGN(TestBrowserThreadImpl);
45};
46
47TestBrowserThread::TestBrowserThread(BrowserThread::ID identifier)
48    : impl_(new TestBrowserThreadImpl(identifier)) {
49}
50
51TestBrowserThread::TestBrowserThread(BrowserThread::ID identifier,
52                                     base::MessageLoop* message_loop)
53    : impl_(new TestBrowserThreadImpl(identifier, message_loop)) {}
54
55TestBrowserThread::~TestBrowserThread() {
56  Stop();
57}
58
59bool TestBrowserThread::Start() {
60  return impl_->Start();
61}
62
63bool TestBrowserThread::StartIOThread() {
64  base::Thread::Options options;
65  options.message_loop_type = base::MessageLoop::TYPE_IO;
66  return impl_->StartWithOptions(options);
67}
68
69void TestBrowserThread::Stop() {
70  impl_->Stop();
71}
72
73bool TestBrowserThread::IsRunning() {
74  return impl_->IsRunning();
75}
76
77base::Thread* TestBrowserThread::DeprecatedGetThreadObject() {
78  return impl_.get();
79}
80
81}  // namespace content
82