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

Side by Side Diff: mojo/services/view_manager/test_change_tracker.cc

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

Powered by Google App Engine
This is Rietveld 408576698