Home | History | Annotate | Download | only in base
      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