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