1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file. 4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#ifndef ATHENA_TEST_ATHENA_TEST_HELPER_H_ 6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define ATHENA_TEST_ATHENA_TEST_HELPER_H_ 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/basictypes.h" 9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "ui/aura/window_tree_host.h" 11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace base { 13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class MessageLoopForUI; 1403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)class Thread; 15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace ui { 18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class ContextFactory; 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class ScopedAnimationDurationScaleMode; 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace aura { 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class Window; 24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class TestScreen; 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class WindowTreeHost; 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace client { 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class FocusClient; 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace wm { 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class InputMethodEventFilter; 33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace athena { 36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace test { 37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// A helper class owned by tests that does common initialization required for 39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Athena use. This class creates a root window with clients and other objects 40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// that are necessary to run test on Athena. 41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class AthenaTestHelper { 42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public: 43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) explicit AthenaTestHelper(base::MessageLoopForUI* message_loop); 44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ~AthenaTestHelper(); 45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Creates and initializes (shows and sizes) the RootWindow for use in tests. 47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) void SetUp(ui::ContextFactory* context_factory); 48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Clean up objects that are created for tests. This also deletes the Env 50cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // object. 51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) void TearDown(); 52cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 53cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Flushes message loop. 54cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) void RunAllPendingInMessageLoop(); 55cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci aura::Window* GetRootWindow(); 571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci aura::WindowTreeHost* GetHost(); 58cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 59cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) private: 60cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) bool setup_called_; 61cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) bool teardown_called_; 62cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 63cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) base::MessageLoopForUI* message_loop_; 64cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 65cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) scoped_ptr<ui::ScopedAnimationDurationScaleMode> zero_duration_mode_; 6603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) scoped_ptr<base::Thread> file_thread_; 67cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 68cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(AthenaTestHelper); 69cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 70cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 71cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} // namespace test 72cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} // namespace athena 73cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 74cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif // ATHENA_TEST_ATHENA_TEST_HELPER_H_ 75