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 #include "chrome/test/base/view_event_test_platform_part.h" 6 7 #include "ui/aura/env.h" 8 #include "ui/gfx/screen.h" 9 #include "ui/views/widget/desktop_aura/desktop_screen.h" 10 #include "ui/wm/core/wm_state.h" 11 12 namespace { 13 14 // ChromeViewsTestHelper implementation for non-ChromeOS environments, where the 15 // Ash desktop environment is available (use_ash=1, chromeos=0). 16 class ViewEventTestPlatformPartAsh : public ViewEventTestPlatformPart { 17 public: 18 explicit ViewEventTestPlatformPartAsh(ui::ContextFactory* context_factory); 19 virtual ~ViewEventTestPlatformPartAsh(); 20 21 // Overridden from ViewEventTestPlatformPart: 22 virtual gfx::NativeWindow GetContext() OVERRIDE { 23 return NULL; // No context, so that desktop tree hosts are used by default. 24 } 25 26 private: 27 wm::WMState wm_state_; 28 29 DISALLOW_COPY_AND_ASSIGN(ViewEventTestPlatformPartAsh); 30 }; 31 32 ViewEventTestPlatformPartAsh::ViewEventTestPlatformPartAsh( 33 ui::ContextFactory* context_factory) { 34 // http://crbug.com/154081 use ash::Shell code path below on win_ash bots when 35 // interactive_ui_tests is brought up on that platform. 36 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, 37 views::CreateDesktopScreen()); 38 aura::Env::CreateInstance(true); 39 aura::Env::GetInstance()->set_context_factory(context_factory); 40 } 41 42 ViewEventTestPlatformPartAsh::~ViewEventTestPlatformPartAsh() { 43 aura::Env::DeleteInstance(); 44 } 45 46 } // namespace 47 48 // static 49 ViewEventTestPlatformPart* ViewEventTestPlatformPart::Create( 50 ui::ContextFactory* context_factory) { 51 return new ViewEventTestPlatformPartAsh(context_factory); 52 } 53