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