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

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

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

Powered by Google App Engine
This is Rietveld 408576698