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

Side by Side Diff: components/view_manager/test_change_tracker.cc

Issue 1344573002: Mandoline: Rename components/view_manager to components/mus (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 5 years, 3 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 unified diff | Download patch
OLDNEW
(Empty)
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 "components/view_manager/test_change_tracker.h"
6
7 #include "base/strings/string_util.h"
8 #include "base/strings/stringprintf.h"
9 #include "components/view_manager/public/cpp/util.h"
10 #include "mojo/common/common_type_converters.h"
11
12 using mojo::Array;
13 using mojo::Id;
14 using mojo::ViewDataPtr;
15 using mojo::String;
16
17 namespace view_manager {
18
19 std::string ViewIdToString(Id id) {
20 return (id == 0) ? "null" : base::StringPrintf("%d,%d", mojo::HiWord(id),
21 mojo::LoWord(id));
22 }
23
24 namespace {
25
26 std::string RectToString(const mojo::Rect& rect) {
27 return base::StringPrintf("%d,%d %dx%d", rect.x, rect.y, rect.width,
28 rect.height);
29 }
30
31 std::string DirectionToString(mojo::OrderDirection direction) {
32 return direction == mojo::ORDER_DIRECTION_ABOVE ? "above" : "below";
33 }
34
35 std::string ChangeToDescription1(const Change& change) {
36 switch (change.type) {
37 case CHANGE_TYPE_EMBED:
38 return "OnEmbed";
39
40 case CHANGE_TYPE_EMBEDDED_APP_DISCONNECTED:
41 return base::StringPrintf("OnEmbeddedAppDisconnected view=%s",
42 ViewIdToString(change.view_id).c_str());
43
44 case CHANGE_TYPE_UNEMBED:
45 return "OnUnembed";
46
47 case CHANGE_TYPE_NODE_BOUNDS_CHANGED:
48 return base::StringPrintf(
49 "BoundsChanged view=%s old_bounds=%s new_bounds=%s",
50 ViewIdToString(change.view_id).c_str(),
51 RectToString(change.bounds).c_str(),
52 RectToString(change.bounds2).c_str());
53
54 case CHANGE_TYPE_NODE_VIEWPORT_METRICS_CHANGED:
55 // TODO(sky): Not implemented.
56 return "ViewportMetricsChanged";
57
58 case CHANGE_TYPE_NODE_HIERARCHY_CHANGED:
59 return base::StringPrintf(
60 "HierarchyChanged view=%s new_parent=%s old_parent=%s",
61 ViewIdToString(change.view_id).c_str(),
62 ViewIdToString(change.view_id2).c_str(),
63 ViewIdToString(change.view_id3).c_str());
64
65 case CHANGE_TYPE_NODE_REORDERED:
66 return base::StringPrintf("Reordered view=%s relative=%s direction=%s",
67 ViewIdToString(change.view_id).c_str(),
68 ViewIdToString(change.view_id2).c_str(),
69 DirectionToString(change.direction).c_str());
70
71 case CHANGE_TYPE_NODE_DELETED:
72 return base::StringPrintf("ViewDeleted view=%s",
73 ViewIdToString(change.view_id).c_str());
74
75 case CHANGE_TYPE_NODE_VISIBILITY_CHANGED:
76 return base::StringPrintf("VisibilityChanged view=%s visible=%s",
77 ViewIdToString(change.view_id).c_str(),
78 change.bool_value ? "true" : "false");
79
80 case CHANGE_TYPE_NODE_DRAWN_STATE_CHANGED:
81 return base::StringPrintf("DrawnStateChanged view=%s drawn=%s",
82 ViewIdToString(change.view_id).c_str(),
83 change.bool_value ? "true" : "false");
84
85 case CHANGE_TYPE_INPUT_EVENT:
86 return base::StringPrintf("InputEvent view=%s event_action=%d",
87 ViewIdToString(change.view_id).c_str(),
88 change.event_action);
89
90 case CHANGE_TYPE_PROPERTY_CHANGED:
91 return base::StringPrintf("PropertyChanged view=%s key=%s value=%s",
92 ViewIdToString(change.view_id).c_str(),
93 change.property_key.c_str(),
94 change.property_value.c_str());
95
96 case CHANGE_TYPE_DELEGATE_EMBED:
97 return base::StringPrintf("DelegateEmbed url=%s",
98 change.embed_url.data());
99
100 case CHANGE_TYPE_FOCUSED:
101 return base::StringPrintf("Focused id=%s",
102 ViewIdToString(change.view_id).c_str());
103 }
104 return std::string();
105 }
106
107 } // namespace
108
109 std::vector<std::string> ChangesToDescription1(
110 const std::vector<Change>& changes) {
111 std::vector<std::string> strings(changes.size());
112 for (size_t i = 0; i < changes.size(); ++i)
113 strings[i] = ChangeToDescription1(changes[i]);
114 return strings;
115 }
116
117 std::string SingleChangeToDescription(const std::vector<Change>& changes) {
118 std::string result;
119 for (auto& change : changes) {
120 if (!result.empty())
121 result += "\n";
122 result += ChangeToDescription1(change);
123 }
124 return result;
125 }
126
127 std::string SingleViewDescription(const std::vector<TestView>& views) {
128 if (views.size() != 1u)
129 return "more than one changes and expected only one";
130 return views[0].ToString();
131 }
132
133 std::string ChangeViewDescription(const std::vector<Change>& changes) {
134 if (changes.size() != 1)
135 return std::string();
136 std::vector<std::string> view_strings(changes[0].views.size());
137 for (size_t i = 0; i < changes[0].views.size(); ++i)
138 view_strings[i] = "[" + changes[0].views[i].ToString() + "]";
139 return base::JoinString(view_strings, ",");
140 }
141
142 TestView ViewDataToTestView(const ViewDataPtr& data) {
143 TestView view;
144 view.parent_id = data->parent_id;
145 view.view_id = data->view_id;
146 view.visible = data->visible;
147 view.drawn = data->drawn;
148 view.properties =
149 data->properties.To<std::map<std::string, std::vector<uint8_t>>>();
150 return view;
151 }
152
153 void ViewDatasToTestViews(const Array<ViewDataPtr>& data,
154 std::vector<TestView>* test_views) {
155 for (size_t i = 0; i < data.size(); ++i)
156 test_views->push_back(ViewDataToTestView(data[i]));
157 }
158
159 Change::Change()
160 : type(CHANGE_TYPE_EMBED),
161 connection_id(0),
162 view_id(0),
163 view_id2(0),
164 view_id3(0),
165 event_action(0),
166 direction(mojo::ORDER_DIRECTION_ABOVE),
167 bool_value(false) {
168 }
169
170 Change::~Change() {
171 }
172
173 TestChangeTracker::TestChangeTracker()
174 : delegate_(NULL) {
175 }
176
177 TestChangeTracker::~TestChangeTracker() {
178 }
179
180 void TestChangeTracker::OnEmbed(mojo::ConnectionSpecificId connection_id,
181 ViewDataPtr root) {
182 Change change;
183 change.type = CHANGE_TYPE_EMBED;
184 change.connection_id = connection_id;
185 change.views.push_back(ViewDataToTestView(root));
186 AddChange(change);
187 }
188
189 void TestChangeTracker::OnEmbeddedAppDisconnected(Id view_id) {
190 Change change;
191 change.type = CHANGE_TYPE_EMBEDDED_APP_DISCONNECTED;
192 change.view_id = view_id;
193 AddChange(change);
194 }
195
196 void TestChangeTracker::OnViewBoundsChanged(Id view_id,
197 mojo::RectPtr old_bounds,
198 mojo::RectPtr new_bounds) {
199 Change change;
200 change.type = CHANGE_TYPE_NODE_BOUNDS_CHANGED;
201 change.view_id = view_id;
202 change.bounds.x = old_bounds->x;
203 change.bounds.y = old_bounds->y;
204 change.bounds.width = old_bounds->width;
205 change.bounds.height = old_bounds->height;
206 change.bounds2.x = new_bounds->x;
207 change.bounds2.y = new_bounds->y;
208 change.bounds2.width = new_bounds->width;
209 change.bounds2.height = new_bounds->height;
210 AddChange(change);
211 }
212
213 void TestChangeTracker::OnUnembed() {
214 Change change;
215 change.type = CHANGE_TYPE_UNEMBED;
216 AddChange(change);
217 }
218
219 void TestChangeTracker::OnViewViewportMetricsChanged(
220 mojo::ViewportMetricsPtr old_metrics,
221 mojo::ViewportMetricsPtr new_metrics) {
222 Change change;
223 change.type = CHANGE_TYPE_NODE_VIEWPORT_METRICS_CHANGED;
224 // NOT IMPLEMENTED
225 AddChange(change);
226 }
227
228 void TestChangeTracker::OnViewHierarchyChanged(Id view_id,
229 Id new_parent_id,
230 Id old_parent_id,
231 Array<ViewDataPtr> views) {
232 Change change;
233 change.type = CHANGE_TYPE_NODE_HIERARCHY_CHANGED;
234 change.view_id = view_id;
235 change.view_id2 = new_parent_id;
236 change.view_id3 = old_parent_id;
237 ViewDatasToTestViews(views, &change.views);
238 AddChange(change);
239 }
240
241 void TestChangeTracker::OnViewReordered(Id view_id,
242 Id relative_view_id,
243 mojo::OrderDirection direction) {
244 Change change;
245 change.type = CHANGE_TYPE_NODE_REORDERED;
246 change.view_id = view_id;
247 change.view_id2 = relative_view_id;
248 change.direction = direction;
249 AddChange(change);
250 }
251
252 void TestChangeTracker::OnViewDeleted(Id view_id) {
253 Change change;
254 change.type = CHANGE_TYPE_NODE_DELETED;
255 change.view_id = view_id;
256 AddChange(change);
257 }
258
259 void TestChangeTracker::OnViewVisibilityChanged(Id view_id, bool visible) {
260 Change change;
261 change.type = CHANGE_TYPE_NODE_VISIBILITY_CHANGED;
262 change.view_id = view_id;
263 change.bool_value = visible;
264 AddChange(change);
265 }
266
267 void TestChangeTracker::OnViewDrawnStateChanged(Id view_id, bool drawn) {
268 Change change;
269 change.type = CHANGE_TYPE_NODE_DRAWN_STATE_CHANGED;
270 change.view_id = view_id;
271 change.bool_value = drawn;
272 AddChange(change);
273 }
274
275 void TestChangeTracker::OnViewInputEvent(Id view_id, mojo::EventPtr event) {
276 Change change;
277 change.type = CHANGE_TYPE_INPUT_EVENT;
278 change.view_id = view_id;
279 change.event_action = event->action;
280 AddChange(change);
281 }
282
283 void TestChangeTracker::OnViewSharedPropertyChanged(Id view_id,
284 String name,
285 Array<uint8_t> data) {
286 Change change;
287 change.type = CHANGE_TYPE_PROPERTY_CHANGED;
288 change.view_id = view_id;
289 change.property_key = name;
290 if (data.is_null())
291 change.property_value = "NULL";
292 else
293 change.property_value = data.To<std::string>();
294 AddChange(change);
295 }
296
297 void TestChangeTracker::OnViewFocused(mojo::Id view_id) {
298 Change change;
299 change.type = CHANGE_TYPE_FOCUSED;
300 change.view_id = view_id;
301 AddChange(change);
302 }
303
304 void TestChangeTracker::DelegateEmbed(const String& url) {
305 Change change;
306 change.type = CHANGE_TYPE_DELEGATE_EMBED;
307 change.embed_url = url;
308 AddChange(change);
309 }
310
311 void TestChangeTracker::AddChange(const Change& change) {
312 changes_.push_back(change);
313 if (delegate_)
314 delegate_->OnChangeAdded();
315 }
316
317 TestView::TestView() {}
318
319 TestView::~TestView() {}
320
321 std::string TestView::ToString() const {
322 return base::StringPrintf("view=%s parent=%s",
323 ViewIdToString(view_id).c_str(),
324 ViewIdToString(parent_id).c_str());
325 }
326
327 std::string TestView::ToString2() const {
328 return base::StringPrintf("view=%s parent=%s visible=%s drawn=%s",
329 ViewIdToString(view_id).c_str(),
330 ViewIdToString(parent_id).c_str(),
331 visible ? "true" : "false",
332 drawn ? "true" : "false");
333 }
334
335 } // namespace view_manager
OLDNEW
« no previous file with comments | « components/view_manager/test_change_tracker.h ('k') | components/view_manager/test_server_view_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698