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.
5 #include "ui/ozone/platform/test/ozone_platform_test.h"
7 #include "base/command_line.h"
8 #include "base/files/file_path.h"
9 #include "ui/events/ozone/device/device_manager.h"
10 #include "ui/events/ozone/evdev/event_factory_evdev.h"
11 #include "ui/ozone/common/window/platform_window_compat.h"
12 #include "ui/ozone/platform/test/file_surface_factory.h"
13 #include "ui/ozone/platform/test/test_cursor_factory.h"
14 #include "ui/ozone/public/gpu_platform_support.h"
15 #include "ui/ozone/public/gpu_platform_support_host.h"
16 #include "ui/ozone/public/ozone_platform.h"
17 #include "ui/ozone/public/ozone_switches.h"
19 #if defined(OS_CHROMEOS)
20 #include "ui/ozone/common/chromeos/native_display_delegate_ozone.h"
21 #include "ui/ozone/common/chromeos/touchscreen_device_manager_ozone.h"
28 // OzonePlatform for testing
30 // This platform dumps images to a file for testing purposes.
31 class OzonePlatformTest
: public OzonePlatform
{
33 OzonePlatformTest(const base::FilePath
& dump_file
) : file_path_(dump_file
) {}
34 virtual ~OzonePlatformTest() {}
37 virtual ui::SurfaceFactoryOzone
* GetSurfaceFactoryOzone() OVERRIDE
{
38 return surface_factory_ozone_
.get();
40 virtual EventFactoryOzone
* GetEventFactoryOzone() OVERRIDE
{
41 return event_factory_ozone_
.get();
43 virtual CursorFactoryOzone
* GetCursorFactoryOzone() OVERRIDE
{
44 return cursor_factory_ozone_
.get();
46 virtual GpuPlatformSupport
* GetGpuPlatformSupport() OVERRIDE
{
47 return gpu_platform_support_
.get();
49 virtual GpuPlatformSupportHost
* GetGpuPlatformSupportHost() OVERRIDE
{
50 return gpu_platform_support_host_
.get();
52 virtual scoped_ptr
<PlatformWindow
> CreatePlatformWindow(
53 PlatformWindowDelegate
* delegate
,
54 const gfx::Rect
& bounds
) OVERRIDE
{
55 return make_scoped_ptr
<PlatformWindow
>(
56 new PlatformWindowCompat(delegate
, bounds
));
59 #if defined(OS_CHROMEOS)
60 virtual scoped_ptr
<NativeDisplayDelegate
> CreateNativeDisplayDelegate()
62 return scoped_ptr
<NativeDisplayDelegate
>(new NativeDisplayDelegateOzone());
64 virtual scoped_ptr
<TouchscreenDeviceManager
>
65 CreateTouchscreenDeviceManager() OVERRIDE
{
66 return scoped_ptr
<TouchscreenDeviceManager
>(
67 new TouchscreenDeviceManagerOzone());
71 virtual void InitializeUI() OVERRIDE
{
72 device_manager_
= CreateDeviceManager();
73 surface_factory_ozone_
.reset(new FileSurfaceFactory(file_path_
));
74 event_factory_ozone_
.reset(
75 new EventFactoryEvdev(NULL
, device_manager_
.get()));
76 cursor_factory_ozone_
.reset(new TestCursorFactory());
77 gpu_platform_support_host_
.reset(CreateStubGpuPlatformSupportHost());
80 virtual void InitializeGPU() OVERRIDE
{
81 gpu_platform_support_
.reset(CreateStubGpuPlatformSupport());
85 scoped_ptr
<DeviceManager
> device_manager_
;
86 scoped_ptr
<FileSurfaceFactory
> surface_factory_ozone_
;
87 scoped_ptr
<EventFactoryEvdev
> event_factory_ozone_
;
88 scoped_ptr
<CursorFactoryOzone
> cursor_factory_ozone_
;
89 scoped_ptr
<GpuPlatformSupport
> gpu_platform_support_
;
90 scoped_ptr
<GpuPlatformSupportHost
> gpu_platform_support_host_
;
91 base::FilePath file_path_
;
93 DISALLOW_COPY_AND_ASSIGN(OzonePlatformTest
);
98 OzonePlatform
* CreateOzonePlatformTest() {
99 CommandLine
* cmd
= CommandLine::ForCurrentProcess();
100 base::FilePath location
= base::FilePath("/dev/null");
101 if (cmd
->HasSwitch(switches::kOzoneDumpFile
))
102 location
= cmd
->GetSwitchValuePath(switches::kOzoneDumpFile
);
103 return new OzonePlatformTest(location
);