Home | History | Annotate | Download | only in base
      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 #ifndef CHROME_TEST_BASE_TESTING_IO_THREAD_STATE_H_
      6 #define CHROME_TEST_BASE_TESTING_IO_THREAD_STATE_H_
      7 
      8 #include "base/callback_forward.h"
      9 #include "base/memory/scoped_ptr.h"
     10 
     11 class IOThread;
     12 
     13 namespace chrome {
     14 
     15 // Convenience class for creating an IOThread object in unittests.
     16 // Usual usage is to create one of these in the test fixture, after the
     17 // BrowserThreadBundle and TestingBrowserProcess have been initialized.
     18 //
     19 // If code requires the use of io thread globals, those can be set by
     20 // accessing io_thread_state()->globals() on the IO thread during test setup.
     21 class TestingIOThreadState {
     22  public:
     23   TestingIOThreadState();
     24   ~TestingIOThreadState();
     25   IOThread* io_thread_state() { return io_thread_state_.get(); }
     26 
     27  private:
     28   void Initialize(const base::Closure& done);
     29   void Shutdown(const base::Closure& done);
     30 
     31   scoped_ptr<IOThread> io_thread_state_;
     32 
     33   DISALLOW_COPY_AND_ASSIGN(TestingIOThreadState);
     34 };
     35 
     36 }  // namespace chrome
     37 
     38 #endif  // CHROME_TEST_BASE_TESTING_IO_THREAD_STATE_H_
     39