Home | History | Annotate | Download | only in test
      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
      3 // found in the LICENSE file.
      4 
      5 #ifndef ATHENA_TEST_ATHENA_TEST_BASE_H_
      6 #define ATHENA_TEST_ATHENA_TEST_BASE_H_
      7 
      8 #include "athena/test/athena_test_helper.h"
      9 #include "base/macros.h"
     10 #include "base/message_loop/message_loop.h"
     11 #include "testing/gtest/include/gtest/gtest.h"
     12 
     13 namespace aura {
     14 class Window;
     15 class WindowDelegate;
     16 }
     17 
     18 namespace athena {
     19 namespace test {
     20 
     21 // A base class for athena unit tests.
     22 class AthenaTestBase : public testing::Test {
     23  public:
     24   AthenaTestBase();
     25   virtual ~AthenaTestBase();
     26 
     27   // testing::Test:
     28   virtual void SetUp() OVERRIDE;
     29   virtual void TearDown() OVERRIDE;
     30 
     31  protected:
     32   void RunAllPendingInMessageLoop();
     33 
     34   scoped_ptr<aura::Window> CreateTestWindow(aura::WindowDelegate* delegate,
     35                                             const gfx::Rect& bounds);
     36 
     37   aura::Window* root_window() { return helper_->GetRootWindow(); }
     38   aura::WindowTreeHost* host() { return helper_->GetHost(); }
     39 
     40  private:
     41   bool setup_called_;
     42   bool teardown_called_;
     43 
     44   base::MessageLoopForUI message_loop_;
     45   scoped_ptr<AthenaTestHelper> helper_;
     46 
     47   DISALLOW_COPY_AND_ASSIGN(AthenaTestBase);
     48 };
     49 
     50 }  // namespace test
     51 }  // namespace athena
     52 
     53 #endif  // ATHENA_TEST_ATHENA_TEST_BASE_H_
     54