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 "ash/test/ash_test_helper.h" 6 7 #include "testing/gtest/include/gtest/gtest.h" 8 #include "ui/aura/window_event_dispatcher.h" 9 #include "ui/views/widget/widget.h" 10 11 #if defined(OS_WIN) 12 #include "base/win/windows_version.h" 13 #endif 14 15 // Tests for AshTestHelper. Who will watch the watchers? And who will test 16 // the tests? 17 class AshTestHelperTest : public testing::Test { 18 public: AshTestHelperTest()19 AshTestHelperTest() {} ~AshTestHelperTest()20 virtual ~AshTestHelperTest() {} 21 SetUp()22 virtual void SetUp() OVERRIDE { 23 testing::Test::SetUp(); 24 ash_test_helper_.reset(new ash::test::AshTestHelper(&message_loop_)); 25 ash_test_helper_->SetUp(true); 26 } 27 TearDown()28 virtual void TearDown() OVERRIDE { 29 ash_test_helper_->TearDown(); 30 testing::Test::TearDown(); 31 } 32 ash_test_helper()33 ash::test::AshTestHelper* ash_test_helper() { 34 return ash_test_helper_.get(); 35 } 36 37 private: 38 base::MessageLoopForUI message_loop_; 39 scoped_ptr<ash::test::AshTestHelper> ash_test_helper_; 40 41 DISALLOW_COPY_AND_ASSIGN(AshTestHelperTest); 42 }; 43 44 // Ensure that we have initialized enough of Ash to create and show a window. TEST_F(AshTestHelperTest,AshTestHelper)45TEST_F(AshTestHelperTest, AshTestHelper) { 46 // Check initial state. 47 EXPECT_TRUE(ash_test_helper()->message_loop()); 48 EXPECT_TRUE(ash_test_helper()->test_shell_delegate()); 49 EXPECT_TRUE(ash_test_helper()->CurrentContext()); 50 51 // Enough state is initialized to create a window. 52 using views::Widget; 53 scoped_ptr<Widget> w1(new Widget); 54 Widget::InitParams params; 55 params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 56 params.context = ash_test_helper()->CurrentContext(); 57 w1->Init(params); 58 w1->Show(); 59 EXPECT_TRUE(w1->IsActive()); 60 EXPECT_TRUE(w1->IsVisible()); 61 } 62