Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(450)

Unified Diff: components/mus/ws/test_utils.h

Issue 2119963002: Move mus to //services/ui (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/mus/ws/test_server_window_delegate.cc ('k') | components/mus/ws/test_utils.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/mus/ws/test_utils.h
diff --git a/components/mus/ws/test_utils.h b/components/mus/ws/test_utils.h
deleted file mode 100644
index ede927722ecff2659c8b5f49fd4c190b134d7d17..0000000000000000000000000000000000000000
--- a/components/mus/ws/test_utils.h
+++ /dev/null
@@ -1,537 +0,0 @@
-// Copyright 2016 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 COMPONENTS_MUS_WS_TEST_UTILS_H_
-#define COMPONENTS_MUS_WS_TEST_UTILS_H_
-
-#include <stdint.h>
-
-#include <vector>
-
-#include "components/mus/public/interfaces/display.mojom.h"
-#include "components/mus/public/interfaces/window_tree.mojom.h"
-#include "components/mus/ws/display.h"
-#include "components/mus/ws/display_binding.h"
-#include "components/mus/ws/event_dispatcher.h"
-#include "components/mus/ws/platform_display.h"
-#include "components/mus/ws/platform_display_factory.h"
-#include "components/mus/ws/test_change_tracker.h"
-#include "components/mus/ws/user_activity_monitor.h"
-#include "components/mus/ws/user_display_manager.h"
-#include "components/mus/ws/user_id.h"
-#include "components/mus/ws/window_manager_state.h"
-#include "components/mus/ws/window_manager_window_tree_factory_set.h"
-#include "components/mus/ws/window_server_delegate.h"
-#include "components/mus/ws/window_tree.h"
-#include "components/mus/ws/window_tree_binding.h"
-
-namespace mus {
-namespace ws {
-namespace test {
-
-// Collection of utilities useful in creating mus tests.
-
-class WindowManagerWindowTreeFactorySetTestApi {
- public:
- explicit WindowManagerWindowTreeFactorySetTestApi(
- WindowManagerWindowTreeFactorySet*
- window_manager_window_tree_factory_set);
- ~WindowManagerWindowTreeFactorySetTestApi();
-
- void Add(const UserId& user_id);
-
- private:
- WindowManagerWindowTreeFactorySet* window_manager_window_tree_factory_set_;
-
- DISALLOW_COPY_AND_ASSIGN(WindowManagerWindowTreeFactorySetTestApi);
-};
-
-// -----------------------------------------------------------------------------
-
-class UserDisplayManagerTestApi {
- public:
- explicit UserDisplayManagerTestApi(UserDisplayManager* udm) : udm_(udm) {}
- ~UserDisplayManagerTestApi() {}
-
- void SetTestObserver(mojom::DisplayManagerObserver* observer) {
- udm_->test_observer_ = observer;
- if (observer)
- udm_->OnObserverAdded(observer);
- }
-
- private:
- UserDisplayManager* udm_;
-
- DISALLOW_COPY_AND_ASSIGN(UserDisplayManagerTestApi);
-};
-
-// -----------------------------------------------------------------------------
-
-class UserActivityMonitorTestApi {
- public:
- explicit UserActivityMonitorTestApi(UserActivityMonitor* monitor)
- : monitor_(monitor) {}
-
- void SetTimerTaskRunner(
- scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
- monitor_->idle_timer_.SetTaskRunner(task_runner);
- }
-
- private:
- UserActivityMonitor* monitor_;
- DISALLOW_COPY_AND_ASSIGN(UserActivityMonitorTestApi);
-};
-
-// -----------------------------------------------------------------------------
-
-class WindowTreeTestApi {
- public:
- explicit WindowTreeTestApi(WindowTree* tree);
- ~WindowTreeTestApi();
-
- void set_user_id(const UserId& user_id) { tree_->user_id_ = user_id; }
- void set_window_manager_internal(mojom::WindowManager* wm_internal) {
- tree_->window_manager_internal_ = wm_internal;
- }
- void AckOldestEvent() {
- tree_->OnWindowInputEventAck(tree_->event_ack_id_,
- mojom::EventResult::UNHANDLED);
- }
- void EnableCapture() { tree_->event_ack_id_ = 1u; }
- void AckLastEvent(mojom::EventResult result) {
- tree_->OnWindowInputEventAck(tree_->event_ack_id_, result);
- }
-
- void SetEventObserver(mojom::EventMatcherPtr matcher,
- uint32_t event_observer_id);
-
- private:
- WindowTree* tree_;
-
- DISALLOW_COPY_AND_ASSIGN(WindowTreeTestApi);
-};
-
-// -----------------------------------------------------------------------------
-
-class DisplayTestApi {
- public:
- explicit DisplayTestApi(Display* display);
- ~DisplayTestApi();
-
- void OnEvent(const ui::Event& event) { display_->OnEvent(event); }
-
- private:
- Display* display_;
-
- DISALLOW_COPY_AND_ASSIGN(DisplayTestApi);
-};
-
-// -----------------------------------------------------------------------------
-
-class EventDispatcherTestApi {
- public:
- explicit EventDispatcherTestApi(EventDispatcher* ed) : ed_(ed) {}
- ~EventDispatcherTestApi() {}
-
- bool AreAnyPointersDown() const { return ed_->AreAnyPointersDown(); }
- bool is_mouse_button_down() const { return ed_->mouse_button_down_; }
- bool IsWindowPointerTarget(const ServerWindow* window) const;
- int NumberPointerTargetsForWindow(ServerWindow* window);
- ModalWindowController* modal_window_controller() const {
- return &ed_->modal_window_controller_;
- }
- ServerWindow* capture_window() { return ed_->capture_window_; }
-
- private:
- EventDispatcher* ed_;
-
- DISALLOW_COPY_AND_ASSIGN(EventDispatcherTestApi);
-};
-
-// -----------------------------------------------------------------------------
-
-class ModalWindowControllerTestApi {
- public:
- explicit ModalWindowControllerTestApi(ModalWindowController* mwc)
- : mwc_(mwc) {}
- ~ModalWindowControllerTestApi() {}
-
- ServerWindow* GetActiveSystemModalWindow() const {
- return mwc_->GetActiveSystemModalWindow();
- }
-
- private:
- ModalWindowController* mwc_;
-
- DISALLOW_COPY_AND_ASSIGN(ModalWindowControllerTestApi);
-};
-
-// -----------------------------------------------------------------------------
-
-class WindowManagerStateTestApi {
- public:
- explicit WindowManagerStateTestApi(WindowManagerState* wms) : wms_(wms) {}
- ~WindowManagerStateTestApi() {}
-
- void DispatchInputEventToWindow(ServerWindow* target,
- ClientSpecificId client_id,
- const ui::Event& event,
- Accelerator* accelerator) {
- wms_->DispatchInputEventToWindow(target, client_id, event, accelerator);
- }
-
- ClientSpecificId GetEventTargetClientId(ServerWindow* window,
- bool in_nonclient_area) {
- return wms_->GetEventTargetClientId(window, in_nonclient_area);
- }
-
- void ProcessEvent(const ui::Event& event) { wms_->ProcessEvent(event); }
-
- void OnEventAckTimeout(ClientSpecificId client_id) {
- wms_->OnEventAckTimeout(client_id);
- }
-
- ClientSpecificId GetEventTargetClientId(const ServerWindow* window,
- bool in_nonclient_area) {
- return wms_->GetEventTargetClientId(window, in_nonclient_area);
- }
-
- mojom::WindowTree* tree_awaiting_input_ack() {
- return wms_->tree_awaiting_input_ack_;
- }
-
- private:
- WindowManagerState* wms_;
-
- DISALLOW_COPY_AND_ASSIGN(WindowManagerStateTestApi);
-};
-
-// -----------------------------------------------------------------------------
-
-// Factory that always embeds the new WindowTree as the root user id.
-class TestDisplayBinding : public DisplayBinding {
- public:
- explicit TestDisplayBinding(WindowServer* window_server)
- : window_server_(window_server) {}
- ~TestDisplayBinding() override {}
-
- private:
- // DisplayBinding:
- WindowTree* CreateWindowTree(ServerWindow* root) override;
-
- WindowServer* window_server_;
-
- DISALLOW_COPY_AND_ASSIGN(TestDisplayBinding);
-};
-
-// -----------------------------------------------------------------------------
-
-// Factory that dispenses TestPlatformDisplays.
-class TestPlatformDisplayFactory : public PlatformDisplayFactory {
- public:
- explicit TestPlatformDisplayFactory(int32_t* cursor_id_storage);
- ~TestPlatformDisplayFactory();
-
- // PlatformDisplayFactory:
- PlatformDisplay* CreatePlatformDisplay() override;
-
- private:
- int32_t* cursor_id_storage_;
-
- DISALLOW_COPY_AND_ASSIGN(TestPlatformDisplayFactory);
-};
-
-// -----------------------------------------------------------------------------
-
-class TestWindowManager : public mojom::WindowManager {
- public:
- TestWindowManager()
- : got_create_top_level_window_(false),
- change_id_(0u),
- on_accelerator_called_(false),
- on_accelerator_id_(0u) {}
- ~TestWindowManager() override {}
-
- bool did_call_create_top_level_window(uint32_t* change_id) {
- if (!got_create_top_level_window_)
- return false;
-
- got_create_top_level_window_ = false;
- *change_id = change_id_;
- return true;
- }
-
- bool on_accelerator_called() { return on_accelerator_called_; }
- uint32_t on_accelerator_id() { return on_accelerator_id_; }
-
- private:
- // WindowManager:
- void OnConnect(uint16_t client_id) override {}
- void WmNewDisplayAdded(mus::mojom::DisplayPtr display,
- mus::mojom::WindowDataPtr root,
- bool drawn) override {}
- void WmSetBounds(uint32_t change_id,
- uint32_t window_id,
- const gfx::Rect& bounds) override {}
- void WmSetProperty(uint32_t change_id,
- uint32_t window_id,
- const mojo::String& name,
- mojo::Array<uint8_t> value) override {}
- void WmCreateTopLevelWindow(
- uint32_t change_id,
- ClientSpecificId requesting_client_id,
- mojo::Map<mojo::String, mojo::Array<uint8_t>> properties) override;
- void WmClientJankinessChanged(ClientSpecificId client_id,
- bool janky) override;
- void OnAccelerator(uint32_t id, std::unique_ptr<ui::Event> event) override;
-
- bool got_create_top_level_window_;
- uint32_t change_id_;
-
- bool on_accelerator_called_;
- uint32_t on_accelerator_id_;
-
- DISALLOW_COPY_AND_ASSIGN(TestWindowManager);
-};
-
-// -----------------------------------------------------------------------------
-
-// WindowTreeClient implementation that logs all calls to a TestChangeTracker.
-class TestWindowTreeClient : public mus::mojom::WindowTreeClient {
- public:
- TestWindowTreeClient();
- ~TestWindowTreeClient() override;
-
- TestChangeTracker* tracker() { return &tracker_; }
-
- void Bind(mojo::InterfaceRequest<mojom::WindowTreeClient> request);
-
- void set_record_on_change_completed(bool value) {
- record_on_change_completed_ = value;
- }
-
- private:
- // WindowTreeClient:
- void OnEmbed(uint16_t client_id,
- mojom::WindowDataPtr root,
- mus::mojom::WindowTreePtr tree,
- int64_t display_id,
- Id focused_window_id,
- bool drawn) override;
- void OnEmbeddedAppDisconnected(uint32_t window) override;
- void OnUnembed(Id window_id) override;
- void OnLostCapture(Id window_id) override;
- void OnTopLevelCreated(uint32_t change_id,
- mojom::WindowDataPtr data,
- int64_t display_id,
- bool drawn) override;
- void OnWindowBoundsChanged(uint32_t window,
- const gfx::Rect& old_bounds,
- const gfx::Rect& new_bounds) override;
- void OnClientAreaChanged(
- uint32_t window_id,
- const gfx::Insets& new_client_area,
- mojo::Array<gfx::Rect> new_additional_client_areas) override;
- void OnTransientWindowAdded(uint32_t window_id,
- uint32_t transient_window_id) override;
- void OnTransientWindowRemoved(uint32_t window_id,
- uint32_t transient_window_id) override;
- void OnWindowHierarchyChanged(
- uint32_t window,
- uint32_t old_parent,
- uint32_t new_parent,
- mojo::Array<mojom::WindowDataPtr> windows) override;
- void OnWindowReordered(uint32_t window_id,
- uint32_t relative_window_id,
- mojom::OrderDirection direction) override;
- void OnWindowDeleted(uint32_t window) override;
- void OnWindowVisibilityChanged(uint32_t window, bool visible) override;
- void OnWindowOpacityChanged(uint32_t window,
- float old_opacity,
- float new_opacity) override;
- void OnWindowParentDrawnStateChanged(uint32_t window, bool drawn) override;
- void OnWindowSharedPropertyChanged(uint32_t window,
- const mojo::String& name,
- mojo::Array<uint8_t> new_data) override;
- void OnWindowInputEvent(uint32_t event_id,
- uint32_t window,
- std::unique_ptr<ui::Event> event,
- uint32_t event_observer_id) override;
- void OnEventObserved(std::unique_ptr<ui::Event> event,
- uint32_t event_observer_id) override;
- void OnWindowFocused(uint32_t focused_window_id) override;
- void OnWindowPredefinedCursorChanged(uint32_t window_id,
- mojom::Cursor cursor_id) override;
- void OnChangeCompleted(uint32_t change_id, bool success) override;
- void RequestClose(uint32_t window_id) override;
- void GetWindowManager(
- mojo::AssociatedInterfaceRequest<mojom::WindowManager> internal) override;
-
- TestChangeTracker tracker_;
- mojo::Binding<mojom::WindowTreeClient> binding_;
- bool record_on_change_completed_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(TestWindowTreeClient);
-};
-
-// -----------------------------------------------------------------------------
-
-// WindowTreeBinding implementation that vends TestWindowTreeBinding.
-class TestWindowTreeBinding : public WindowTreeBinding {
- public:
- explicit TestWindowTreeBinding(WindowTree* tree);
- ~TestWindowTreeBinding() override;
-
- WindowTree* tree() { return tree_; }
- TestWindowTreeClient* client() { return &client_; }
-
- bool is_paused() const { return is_paused_; }
-
- // WindowTreeBinding:
- mojom::WindowManager* GetWindowManager() override;
- void SetIncomingMethodCallProcessingPaused(bool paused) override;
-
- private:
- WindowTree* tree_;
- TestWindowTreeClient client_;
- bool is_paused_ = false;
- std::unique_ptr<TestWindowManager> window_manager_;
-
- DISALLOW_COPY_AND_ASSIGN(TestWindowTreeBinding);
-};
-
-// -----------------------------------------------------------------------------
-
-// WindowServerDelegate that creates TestWindowTreeClients.
-class TestWindowServerDelegate : public WindowServerDelegate {
- public:
- TestWindowServerDelegate();
- ~TestWindowServerDelegate() override;
-
- void set_window_server(WindowServer* window_server) {
- window_server_ = window_server;
- }
-
- void set_num_displays_to_create(int count) {
- num_displays_to_create_ = count;
- }
-
- TestWindowTreeClient* last_client() {
- return last_binding() ? last_binding()->client() : nullptr;
- }
- TestWindowTreeBinding* last_binding() {
- return bindings_.empty() ? nullptr : bindings_.back();
- }
-
- std::vector<TestWindowTreeBinding*>* bindings() { return &bindings_; }
-
- bool got_on_no_more_displays() const { return got_on_no_more_displays_; }
-
- Display* AddDisplay();
-
- // WindowServerDelegate:
- void OnNoMoreDisplays() override;
- std::unique_ptr<WindowTreeBinding> CreateWindowTreeBinding(
- BindingType type,
- ws::WindowServer* window_server,
- ws::WindowTree* tree,
- mojom::WindowTreeRequest* tree_request,
- mojom::WindowTreeClientPtr* client) override;
- void CreateDefaultDisplays() override;
- bool IsTestConfig() const override;
-
- private:
- // If CreateDefaultDisplays() this is the number of Displays that are
- // created. The default is 0, which results in a DCHECK.
- int num_displays_to_create_ = 0;
- WindowServer* window_server_ = nullptr;
- bool got_on_no_more_displays_ = false;
- // All TestWindowTreeBinding objects created via CreateWindowTreeBinding.
- // These are owned by the corresponding WindowTree.
- std::vector<TestWindowTreeBinding*> bindings_;
-
- DISALLOW_COPY_AND_ASSIGN(TestWindowServerDelegate);
-};
-
-// -----------------------------------------------------------------------------
-
-// Helper class which owns all of the necessary objects to test event targeting
-// of ServerWindow objects.
-class WindowEventTargetingHelper {
- public:
- WindowEventTargetingHelper();
- ~WindowEventTargetingHelper();
-
- // Creates |window| as an embeded window of the primary tree. This window is a
- // root window of its own tree, with bounds |window_bounds|. The bounds of the
- // root window of |display_| are defined by |root_window_bounds|.
- ServerWindow* CreatePrimaryTree(const gfx::Rect& root_window_bounds,
- const gfx::Rect& window_bounds);
- // Creates a secondary tree, embedded as a child of |embed_window|. The
- // resulting |window| is setup for event targeting, with bounds
- // |window_bounds|.
- void CreateSecondaryTree(ServerWindow* embed_window,
- const gfx::Rect& window_bounds,
- TestWindowTreeClient** out_client,
- WindowTree** window_tree,
- ServerWindow** window);
- // Sets the task runner for |message_loop_|
- void SetTaskRunner(scoped_refptr<base::SingleThreadTaskRunner> task_runner);
-
- int32_t cursor_id() { return cursor_id_; }
- Display* display() { return display_; }
- TestWindowTreeBinding* last_binding() {
- return window_server_delegate_.last_binding();
- }
- TestWindowTreeClient* last_window_tree_client() {
- return window_server_delegate_.last_client();
- }
- TestWindowTreeClient* wm_client() { return wm_client_; }
- WindowServer* window_server() { return window_server_.get(); }
-
- private:
- // TestWindowTreeClient that is used for the WM client. Owned by
- // |window_server_delegate_|
- TestWindowTreeClient* wm_client_;
- int32_t cursor_id_;
- TestPlatformDisplayFactory platform_display_factory_;
- TestWindowServerDelegate window_server_delegate_;
- // Owned by WindowServer
- TestDisplayBinding* display_binding_;
- // Owned by WindowServer's DisplayManager.
- Display* display_;
- scoped_refptr<SurfacesState> surfaces_state_;
- std::unique_ptr<WindowServer> window_server_;
- // Needed to Bind to |wm_client_|
- base::MessageLoop message_loop_;
-
- DISALLOW_COPY_AND_ASSIGN(WindowEventTargetingHelper);
-};
-
-// -----------------------------------------------------------------------------
-
-// Returns the first and only root of |tree|. If |tree| has zero or more than
-// one root returns null.
-ServerWindow* FirstRoot(WindowTree* tree);
-
-// Returns the ClientWindowId of the first root of |tree|, or an empty
-// ClientWindowId if |tree| has zero or more than one root.
-ClientWindowId FirstRootId(WindowTree* tree);
-
-// Returns |tree|s ClientWindowId for |window|.
-ClientWindowId ClientWindowIdForWindow(WindowTree* tree,
- const ServerWindow* window);
-
-// Creates a new visible window as a child of the single root of |tree|.
-// |client_id| set to the ClientWindowId of the new window.
-ServerWindow* NewWindowInTree(WindowTree* tree, ClientWindowId* client_id);
-ServerWindow* NewWindowInTreeWithParent(WindowTree* tree,
- ServerWindow* parent,
- ClientWindowId* client_id);
-
-} // namespace test
-} // namespace ws
-} // namespace mus
-
-#endif // COMPONENTS_MUS_WS_TEST_UTILS_H_
« no previous file with comments | « components/mus/ws/test_server_window_delegate.cc ('k') | components/mus/ws/test_utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698