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

Side by Side Diff: ui/aura/test/mus/test_window_tree.h

Issue 2445163002: Make aura work with mus (Closed)
Patch Set: NON_EXPORTED_BASE_CLASS Created 4 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « ui/aura/test/env_test_helper.h ('k') | ui/aura/test/mus/test_window_tree.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef SERVICES_UI_PUBLIC_CPP_TESTS_TEST_WINDOW_TREE_H_ 5 #ifndef UI_AURA_TEST_MUS_TEST_WINDOW_TREE_H_
6 #define SERVICES_UI_PUBLIC_CPP_TESTS_TEST_WINDOW_TREE_H_ 6 #define UI_AURA_TEST_MUS_TEST_WINDOW_TREE_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <set> 10 #include <set>
11 11
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "services/ui/public/interfaces/window_tree.mojom.h" 13 #include "services/ui/public/interfaces/window_tree.mojom.h"
14 14
15 namespace ui { 15 namespace aura {
16 16
17 // Testing WindowTree implementation. 17 enum class WindowTreeChangeType {
18 class TestWindowTree : public mojom::WindowTree { 18 BOUNDS,
19 // Used for both set and release capture.
20 CAPTURE,
21 FOCUS,
22 NEW_TOP_LEVEL,
23 NEW_WINDOW,
24 PROPERTY,
25 VISIBLE,
26
27 // This covers all cases that aren't used in tests.
28 OTHER,
29 };
30
31 // WindowTree implementation for tests. TestWindowTree maintains a list of all
32 // calls that take a change_id and are expected to be acked back to the client.
33 // Various functions are provided to respond to the changes.
34 class TestWindowTree : public ui::mojom::WindowTree {
19 public: 35 public:
20 TestWindowTree(); 36 TestWindowTree();
21 ~TestWindowTree() override; 37 ~TestWindowTree() override;
22 38
23 // Returns the most recent change_id supplied to one of the WindowTree 39 void set_client(ui::mojom::WindowTreeClient* client) { client_ = client; }
24 // functions. Returns false if one of the WindowTree functions has not been
25 // invoked since the last GetAndClearChangeId().
26 bool GetAndClearChangeId(uint32_t* change_id);
27 40
28 uint32_t window_id() const { return window_id_; } 41 uint32_t window_id() const { return window_id_; }
29 42
30 bool WasEventAcked(uint32_t event_id) const; 43 bool WasEventAcked(uint32_t event_id) const;
31 44
45 mojo::Array<uint8_t> GetLastPropertyValue();
46
47 mojo::Map<mojo::String, mojo::Array<uint8_t>> GetLastNewWindowProperties();
48
49 // True if at least one function has been called that takes a change id.
50 bool has_change() const { return !changes_.empty(); }
51
52 // Acks all changes with a value of true.
53 void AckAllChanges();
54
55 // Returns false if there are no, or more than one, changes of the specified
56 // type. If there is only one of the matching type it is acked with a result
57 // of |result| and true is returned.
58 bool AckSingleChangeOfType(WindowTreeChangeType type, bool result);
59
60 // Same as AckSingleChangeOfType(), but doesn't fail if there is more than
61 // one change of the specified type.
62 bool AckFirstChangeOfType(WindowTreeChangeType type, bool result);
63
64 void AckAllChangesOfType(WindowTreeChangeType type, bool result);
65
66 bool GetAndRemoveFirstChangeOfType(WindowTreeChangeType type,
67 uint32_t* change_id);
68
32 private: 69 private:
33 // mojom::WindowTree: 70 struct Change {
71 WindowTreeChangeType type;
72 uint32_t id;
73 };
74
75 void OnChangeReceived(
76 uint32_t change_id,
77 WindowTreeChangeType type = WindowTreeChangeType::OTHER);
78
79 // ui::mojom::WindowTree:
34 void NewWindow( 80 void NewWindow(
35 uint32_t change_id, 81 uint32_t change_id,
36 uint32_t window_id, 82 uint32_t window_id,
37 mojo::Map<mojo::String, mojo::Array<uint8_t>> properties) override; 83 mojo::Map<mojo::String, mojo::Array<uint8_t>> properties) override;
38 void NewTopLevelWindow( 84 void NewTopLevelWindow(
39 uint32_t change_id, 85 uint32_t change_id,
40 uint32_t window_id, 86 uint32_t window_id,
41 mojo::Map<mojo::String, mojo::Array<uint8_t>> properties) override; 87 mojo::Map<mojo::String, mojo::Array<uint8_t>> properties) override;
42 void DeleteWindow(uint32_t change_id, uint32_t window_id) override; 88 void DeleteWindow(uint32_t change_id, uint32_t window_id) override;
43 void SetWindowBounds(uint32_t change_id, 89 void SetWindowBounds(uint32_t change_id,
(...skipping 10 matching lines...) Expand all
54 bool visible) override; 100 bool visible) override;
55 void SetWindowProperty(uint32_t change_id, 101 void SetWindowProperty(uint32_t change_id,
56 uint32_t window_id, 102 uint32_t window_id,
57 const mojo::String& name, 103 const mojo::String& name,
58 mojo::Array<uint8_t> value) override; 104 mojo::Array<uint8_t> value) override;
59 void SetWindowOpacity(uint32_t change_id, 105 void SetWindowOpacity(uint32_t change_id,
60 uint32_t window_id, 106 uint32_t window_id,
61 float opacity) override; 107 float opacity) override;
62 void AttachCompositorFrameSink( 108 void AttachCompositorFrameSink(
63 uint32_t window_id, 109 uint32_t window_id,
64 mojom::CompositorFrameSinkType type, 110 ui::mojom::CompositorFrameSinkType type,
65 mojo::InterfaceRequest<cc::mojom::MojoCompositorFrameSink> surface, 111 mojo::InterfaceRequest<cc::mojom::MojoCompositorFrameSink> surface,
66 cc::mojom::MojoCompositorFrameSinkClientPtr client) override; 112 cc::mojom::MojoCompositorFrameSinkClientPtr client) override;
113 void OnWindowSurfaceDetached(uint32_t window_id,
114 const cc::SurfaceSequence& sequence) override;
67 void AddWindow(uint32_t change_id, uint32_t parent, uint32_t child) override; 115 void AddWindow(uint32_t change_id, uint32_t parent, uint32_t child) override;
68 void RemoveWindowFromParent(uint32_t change_id, uint32_t window_id) override; 116 void RemoveWindowFromParent(uint32_t change_id, uint32_t window_id) override;
69 void AddTransientWindow(uint32_t change_id, 117 void AddTransientWindow(uint32_t change_id,
70 uint32_t window_id, 118 uint32_t window_id,
71 uint32_t transient_window_id) override; 119 uint32_t transient_window_id) override;
72 void RemoveTransientWindowFromParent(uint32_t change_id, 120 void RemoveTransientWindowFromParent(uint32_t change_id,
73 uint32_t window_id) override; 121 uint32_t window_id) override;
74 void SetModal(uint32_t change_id, uint32_t window_id) override; 122 void SetModal(uint32_t change_id, uint32_t window_id) override;
75 void ReorderWindow(uint32_t change_id, 123 void ReorderWindow(uint32_t change_id,
76 uint32_t window_id, 124 uint32_t window_id,
77 uint32_t relative_window_id, 125 uint32_t relative_window_id,
78 mojom::OrderDirection direction) override; 126 ui::mojom::OrderDirection direction) override;
79 void GetWindowTree(uint32_t window_id, 127 void GetWindowTree(uint32_t window_id,
80 const GetWindowTreeCallback& callback) override; 128 const GetWindowTreeCallback& callback) override;
81 void SetCapture(uint32_t change_id, uint32_t window_id) override; 129 void SetCapture(uint32_t change_id, uint32_t window_id) override;
82 void ReleaseCapture(uint32_t change_id, uint32_t window_id) override; 130 void ReleaseCapture(uint32_t change_id, uint32_t window_id) override;
83 void StartPointerWatcher(bool want_moves) override; 131 void StartPointerWatcher(bool want_moves) override;
84 void StopPointerWatcher() override; 132 void StopPointerWatcher() override;
85 void Embed(uint32_t window_id, 133 void Embed(uint32_t window_id,
86 mojom::WindowTreeClientPtr client, 134 ui::mojom::WindowTreeClientPtr client,
87 uint32_t flags, 135 uint32_t flags,
88 const EmbedCallback& callback) override; 136 const EmbedCallback& callback) override;
89 void SetFocus(uint32_t change_id, uint32_t window_id) override; 137 void SetFocus(uint32_t change_id, uint32_t window_id) override;
90 void SetCanFocus(uint32_t window_id, bool can_focus) override; 138 void SetCanFocus(uint32_t window_id, bool can_focus) override;
91 void SetCanAcceptEvents(uint32_t window_id, bool can_accept_events) override; 139 void SetCanAcceptEvents(uint32_t window_id, bool can_accept_events) override;
92 void SetPredefinedCursor(uint32_t change_id, 140 void SetPredefinedCursor(uint32_t change_id,
93 uint32_t window_id, 141 uint32_t window_id,
94 ui::mojom::Cursor cursor_id) override; 142 ui::mojom::Cursor cursor_id) override;
95 void SetWindowTextInputState(uint32_t window_id, 143 void SetWindowTextInputState(uint32_t window_id,
96 mojo::TextInputStatePtr state) override; 144 mojo::TextInputStatePtr state) override;
97 void SetImeVisibility(uint32_t window_id, 145 void SetImeVisibility(uint32_t window_id,
98 bool visible, 146 bool visible,
99 mojo::TextInputStatePtr state) override; 147 mojo::TextInputStatePtr state) override;
100 void OnWindowInputEventAck(uint32_t event_id, 148 void OnWindowInputEventAck(uint32_t event_id,
101 ui::mojom::EventResult result) override; 149 ui::mojom::EventResult result) override;
102 void GetWindowManagerClient( 150 void GetWindowManagerClient(
103 mojo::AssociatedInterfaceRequest<mojom::WindowManagerClient> internal) 151 mojo::AssociatedInterfaceRequest<ui::mojom::WindowManagerClient> internal)
104 override; 152 override;
105 void GetCursorLocationMemory(const GetCursorLocationMemoryCallback& callback) 153 void GetCursorLocationMemory(
106 override; 154 const GetCursorLocationMemoryCallback& callback) override;
107 void PerformDragDrop(uint32_t change_id, 155 void PerformDragDrop(uint32_t change_id,
108 uint32_t source_window_id, 156 uint32_t source_window_id,
109 mojo::Map<mojo::String, mojo::Array<uint8_t>> drag_data, 157 mojo::Map<mojo::String, mojo::Array<uint8_t>> drag_data,
110 uint32_t drag_operation) override; 158 uint32_t drag_operation) override;
111 void CancelDragDrop(uint32_t window_id) override; 159 void CancelDragDrop(uint32_t window_id) override;
112 void PerformWindowMove(uint32_t change_id, 160 void PerformWindowMove(uint32_t change_id,
113 uint32_t window_id, 161 uint32_t window_id,
114 mojom::MoveLoopSource source, 162 ui::mojom::MoveLoopSource source,
115 const gfx::Point& cursor_location) override; 163 const gfx::Point& cursor_location) override;
116 void CancelWindowMove(uint32_t window_id) override; 164 void CancelWindowMove(uint32_t window_id) override;
117 void OnWindowSurfaceDetached(uint32_t window_id,
118 const cc::SurfaceSequence& sequence) override;
119 165
120 bool got_change_;
121 uint32_t change_id_;
122 std::set<uint32_t> acked_events_; 166 std::set<uint32_t> acked_events_;
123 uint32_t window_id_; 167 uint32_t window_id_ = 0u;
168
169 mojo::Array<uint8_t> last_property_value_;
170
171 std::vector<Change> changes_;
172
173 ui::mojom::WindowTreeClient* client_;
174
175 mojo::Map<mojo::String, mojo::Array<uint8_t>> last_new_window_properties_;
124 176
125 DISALLOW_COPY_AND_ASSIGN(TestWindowTree); 177 DISALLOW_COPY_AND_ASSIGN(TestWindowTree);
126 }; 178 };
127 179
128 } // namespace ui 180 } // namespace aura
129 181
130 #endif // SERVICES_UI_PUBLIC_CPP_TESTS_TEST_WINDOW_TREE_H_ 182 #endif // UI_AURA_TEST_MUS_TEST_WINDOW_TREE_H_
OLDNEW
« no previous file with comments | « ui/aura/test/env_test_helper.h ('k') | ui/aura/test/mus/test_window_tree.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698