Commit 0f455018 authored by Alex Zhang's avatar Alex Zhang Committed by Commit Bot

Add TestFrameSinkManagerImpl and TestGpuHost classes

TestFrameSinkManagerImpl is an empty implementation of 
mojom::FrameSinkManager. It takes the place of
FrameSinkManagerClientBinding in WindowServer in unit tests.

TestGpuHost is an empty implementation of GpuHost. It takes the places
of DefaultGpuHost in WindowServer in unit tests.

TestWindowServerDelegate now creates a WindowServer with the test
implementations so that there is no mojo connections in ws unit tests.

Bug: 698026
Change-Id: Ie8682e15a624bcfca2856f07508051cfb4f19308
Reviewed-on: https://chromium-review.googlesource.com/594849
Commit-Queue: Xingyu Zhang <staraz@chromium.org>
Reviewed-by: default avatarFady Samuel <fsamuel@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#491213}
parent 6bf68dc3
...@@ -251,6 +251,8 @@ source_set("tests") { ...@@ -251,6 +251,8 @@ source_set("tests") {
"frame_generator_unittest.cc", "frame_generator_unittest.cc",
"gpu_host_unittest.cc", "gpu_host_unittest.cc",
"server_window_drawn_tracker_unittest.cc", "server_window_drawn_tracker_unittest.cc",
"test_frame_sink_manager.h",
"test_gpu_host.h",
"test_server_window_delegate.cc", "test_server_window_delegate.cc",
"test_server_window_delegate.h", "test_server_window_delegate.h",
"test_utils.cc", "test_utils.cc",
......
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SERVICES_UI_WS_TEST_FRAME_SINK_MANAGER_H_
#define SERVICES_UI_WS_TEST_FRAME_SINK_MANAGER_H_
#include "base/macros.h"
#include "services/viz/compositing/privileged/interfaces/frame_sink_manager.mojom.h"
namespace ui {
namespace ws {
class TestFrameSinkManagerImpl : public viz::mojom::FrameSinkManager {
public:
TestFrameSinkManagerImpl() = default;
~TestFrameSinkManagerImpl() override = default;
private:
// viz::mojom::FrameSinkManager:
void RegisterFrameSinkId(const viz::FrameSinkId& frame_sink_id) override {}
void InvalidateFrameSinkId(const viz::FrameSinkId& frame_sink_id) override {}
void CreateRootCompositorFrameSink(
const viz::FrameSinkId& frame_sink_id,
gpu::SurfaceHandle surface_handle,
const viz::RendererSettings& renderer_settings,
viz::mojom::CompositorFrameSinkAssociatedRequest request,
viz::mojom::CompositorFrameSinkClientPtr client,
viz::mojom::DisplayPrivateAssociatedRequest display_private_request)
override {}
void CreateCompositorFrameSink(
const viz::FrameSinkId& frame_sink_id,
viz::mojom::CompositorFrameSinkRequest request,
viz::mojom::CompositorFrameSinkClientPtr client) override {}
void RegisterFrameSinkHierarchy(
const viz::FrameSinkId& parent_frame_sink_id,
const viz::FrameSinkId& child_frame_sink_id) override {}
void UnregisterFrameSinkHierarchy(
const viz::FrameSinkId& parent_frame_sink_id,
const viz::FrameSinkId& child_frame_sink_id) override {}
void AssignTemporaryReference(const viz::SurfaceId& surface_id,
const viz::FrameSinkId& owner) override {}
void DropTemporaryReference(const viz::SurfaceId& surface_id) override {}
DISALLOW_COPY_AND_ASSIGN(TestFrameSinkManagerImpl);
};
} // namespace ws
} // namespace ui
#endif // SERVICES_UI_WS_TEST_FRAME_SINK_MANAGER_H_
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SERVICES_UI_WS_TEST_GPU_HOST_H_
#define SERVICES_UI_WS_TEST_GPU_HOST_H_
#include "base/macros.h"
#include "services/ui/ws/gpu_host.h"
namespace ui {
namespace ws {
class TestGpuHost : public GpuHost {
public:
TestGpuHost() = default;
~TestGpuHost() override = default;
private:
void Add(mojom::GpuRequest request) override {}
void OnAcceleratedWidgetAvailable(gfx::AcceleratedWidget widget) override {}
void OnAcceleratedWidgetDestroyed(gfx::AcceleratedWidget widget) override {}
void CreateFrameSinkManager(
viz::mojom::FrameSinkManagerRequest request,
viz::mojom::FrameSinkManagerClientPtr client) override {}
DISALLOW_COPY_AND_ASSIGN(TestGpuHost);
};
} // namespace ws
} // namespace ui
#endif // SERVICES_UI_WS_TEST_GPU_HOST_H_
...@@ -17,7 +17,8 @@ ...@@ -17,7 +17,8 @@
#include "services/ui/ws/display_creation_config.h" #include "services/ui/ws/display_creation_config.h"
#include "services/ui/ws/display_manager.h" #include "services/ui/ws/display_manager.h"
#include "services/ui/ws/frame_sink_manager_client_binding.h" #include "services/ui/ws/frame_sink_manager_client_binding.h"
#include "services/ui/ws/gpu_host.h" #include "services/ui/ws/test_frame_sink_manager.h"
#include "services/ui/ws/test_gpu_host.h"
#include "services/ui/ws/threaded_image_cursors.h" #include "services/ui/ws/threaded_image_cursors.h"
#include "services/ui/ws/threaded_image_cursors_factory.h" #include "services/ui/ws/threaded_image_cursors_factory.h"
#include "services/ui/ws/window_manager_access_policy.h" #include "services/ui/ws/window_manager_access_policy.h"
...@@ -549,14 +550,10 @@ WindowServerTestHelper::WindowServerTestHelper() ...@@ -549,14 +550,10 @@ WindowServerTestHelper::WindowServerTestHelper()
message_loop_ = base::MakeUnique<base::MessageLoop>(); message_loop_ = base::MakeUnique<base::MessageLoop>();
PlatformDisplay::set_factory_for_testing(&platform_display_factory_); PlatformDisplay::set_factory_for_testing(&platform_display_factory_);
window_server_ = base::MakeUnique<WindowServer>(&window_server_delegate_); window_server_ = base::MakeUnique<WindowServer>(&window_server_delegate_);
// TODO(staraz): Replace DefaultGpuHost and FrameSinkManagerClientBinding with std::unique_ptr<GpuHost> gpu_host = base::MakeUnique<TestGpuHost>();
// test implementations.
std::unique_ptr<GpuHost> gpu_host =
base::MakeUnique<DefaultGpuHost>(window_server_.get());
window_server_->SetGpuHost(std::move(gpu_host)); window_server_->SetGpuHost(std::move(gpu_host));
std::unique_ptr<FrameSinkManagerClientBinding> frame_sink_manager = std::unique_ptr<TestFrameSinkManagerImpl> frame_sink_manager =
base::MakeUnique<FrameSinkManagerClientBinding>( base::MakeUnique<TestFrameSinkManagerImpl>();
window_server_.get(), window_server_->gpu_host());
window_server_->SetFrameSinkManager(std::move(frame_sink_manager)); window_server_->SetFrameSinkManager(std::move(frame_sink_manager));
window_server_delegate_.set_window_server(window_server_.get()); window_server_delegate_.set_window_server(window_server_.get());
} }
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include "services/ui/ws/display_binding.h" #include "services/ui/ws/display_binding.h"
#include "services/ui/ws/drag_controller.h" #include "services/ui/ws/drag_controller.h"
#include "services/ui/ws/event_dispatcher.h" #include "services/ui/ws/event_dispatcher.h"
#include "services/ui/ws/gpu_host.h"
#include "services/ui/ws/platform_display.h" #include "services/ui/ws/platform_display.h"
#include "services/ui/ws/platform_display_factory.h" #include "services/ui/ws/platform_display_factory.h"
#include "services/ui/ws/test_change_tracker.h" #include "services/ui/ws/test_change_tracker.h"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment