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

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

Issue 253883005: Makes change_id unsigned (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merge to trunk Created 6 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « mojo/services/view_manager/view_manager_connection.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 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 #include "mojo/services/view_manager/view_manager_connection.h" 5 #include "mojo/services/view_manager/view_manager_connection.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/memory/scoped_ptr.h" 11 #include "base/memory/scoped_ptr.h"
12 #include "base/message_loop/message_loop.h" 12 #include "base/message_loop/message_loop.h"
13 #include "base/run_loop.h" 13 #include "base/run_loop.h"
14 #include "base/strings/stringprintf.h" 14 #include "base/strings/stringprintf.h"
15 #include "mojo/public/cpp/bindings/allocation_scope.h" 15 #include "mojo/public/cpp/bindings/allocation_scope.h"
16 #include "mojo/public/cpp/environment/environment.h" 16 #include "mojo/public/cpp/environment/environment.h"
17 #include "mojo/services/view_manager/root_node_manager.h" 17 #include "mojo/services/view_manager/root_node_manager.h"
18 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
19 19
20 namespace mojo { 20 namespace mojo {
21 namespace services { 21 namespace services {
22 namespace view_manager { 22 namespace view_manager {
23 23
24 namespace { 24 namespace {
25 25
26 // TODO(sky): move ids.h into common place and include that.
27 typedef uint32_t ChangeId;
28
26 base::RunLoop* current_run_loop = NULL; 29 base::RunLoop* current_run_loop = NULL;
27 30
28 // Sets |current_run_loop| and runs it. It is expected that someone else quits 31 // Sets |current_run_loop| and runs it. It is expected that someone else quits
29 // the loop. 32 // the loop.
30 void DoRunLoop() { 33 void DoRunLoop() {
31 base::RunLoop run_loop; 34 base::RunLoop run_loop;
32 current_run_loop = &run_loop; 35 current_run_loop = &run_loop;
33 current_run_loop->Run(); 36 current_run_loop->Run();
34 current_run_loop = NULL; 37 current_run_loop = NULL;
35 } 38 }
(...skipping 29 matching lines...) Expand all
65 view_manager->CreateNode(id, base::Bind(&BooleanCallback, &result)); 68 view_manager->CreateNode(id, base::Bind(&BooleanCallback, &result));
66 DoRunLoop(); 69 DoRunLoop();
67 return result; 70 return result;
68 } 71 }
69 72
70 // TODO(sky): make a macro for these functions, they are all the same. 73 // TODO(sky): make a macro for these functions, they are all the same.
71 74
72 // Deletes a node, blocking until done. 75 // Deletes a node, blocking until done.
73 bool DeleteNode(ViewManager* view_manager, 76 bool DeleteNode(ViewManager* view_manager,
74 uint32_t node_id, 77 uint32_t node_id,
75 int32_t change_id) { 78 ChangeId change_id) {
76 bool result = false; 79 bool result = false;
77 view_manager->DeleteNode(node_id, change_id, 80 view_manager->DeleteNode(node_id, change_id,
78 base::Bind(&BooleanCallback, &result)); 81 base::Bind(&BooleanCallback, &result));
79 DoRunLoop(); 82 DoRunLoop();
80 return result; 83 return result;
81 } 84 }
82 85
83 // Adds a node, blocking until done. 86 // Adds a node, blocking until done.
84 bool AddNode(ViewManager* view_manager, 87 bool AddNode(ViewManager* view_manager,
85 uint32_t parent, 88 uint32_t parent,
86 uint32_t child, 89 uint32_t child,
87 int32_t change_id) { 90 ChangeId change_id) {
88 bool result = false; 91 bool result = false;
89 view_manager->AddNode(parent, child, change_id, 92 view_manager->AddNode(parent, child, change_id,
90 base::Bind(&BooleanCallback, &result)); 93 base::Bind(&BooleanCallback, &result));
91 DoRunLoop(); 94 DoRunLoop();
92 return result; 95 return result;
93 } 96 }
94 97
95 // Removes a node, blocking until done. 98 // Removes a node, blocking until done.
96 bool RemoveNodeFromParent(ViewManager* view_manager, 99 bool RemoveNodeFromParent(ViewManager* view_manager,
97 uint32_t node_id, 100 uint32_t node_id,
98 int32_t change_id) { 101 ChangeId change_id) {
99 bool result = false; 102 bool result = false;
100 view_manager->RemoveNodeFromParent(node_id, change_id, 103 view_manager->RemoveNodeFromParent(node_id, change_id,
101 base::Bind(&BooleanCallback, &result)); 104 base::Bind(&BooleanCallback, &result));
102 DoRunLoop(); 105 DoRunLoop();
103 return result; 106 return result;
104 } 107 }
105 108
106 // Creates a view with the specified id. Returns true on success. Blocks until 109 // Creates a view with the specified id. Returns true on success. Blocks until
107 // we get back result from server. 110 // we get back result from server.
108 bool CreateView(ViewManager* view_manager, uint16_t id) { 111 bool CreateView(ViewManager* view_manager, uint16_t id) {
109 bool result = false; 112 bool result = false;
110 view_manager->CreateView(id, base::Bind(&BooleanCallback, &result)); 113 view_manager->CreateView(id, base::Bind(&BooleanCallback, &result));
111 DoRunLoop(); 114 DoRunLoop();
112 return result; 115 return result;
113 } 116 }
114 117
115 // Sets a view on the specified node. Returns true on success. Blocks until we 118 // Sets a view on the specified node. Returns true on success. Blocks until we
116 // get back result from server. 119 // get back result from server.
117 bool SetView(ViewManager* view_manager, 120 bool SetView(ViewManager* view_manager,
118 uint32_t node_id, 121 uint32_t node_id,
119 uint32_t view_id, 122 uint32_t view_id,
120 int32_t change_id) { 123 ChangeId change_id) {
121 bool result = false; 124 bool result = false;
122 view_manager->SetView(node_id, view_id, change_id, 125 view_manager->SetView(node_id, view_id, change_id,
123 base::Bind(&BooleanCallback, &result)); 126 base::Bind(&BooleanCallback, &result));
124 DoRunLoop(); 127 DoRunLoop();
125 return result; 128 return result;
126 } 129 }
127 130
128 } // namespace 131 } // namespace
129 132
130 typedef std::vector<std::string> Changes; 133 typedef std::vector<std::string> Changes;
(...skipping 14 matching lines...) Expand all
145 148
146 private: 149 private:
147 // ViewManagerClient overrides: 150 // ViewManagerClient overrides:
148 virtual void OnConnectionEstablished(uint16_t connection_id) OVERRIDE { 151 virtual void OnConnectionEstablished(uint16_t connection_id) OVERRIDE {
149 id_ = connection_id; 152 id_ = connection_id;
150 current_run_loop->Quit(); 153 current_run_loop->Quit();
151 } 154 }
152 virtual void OnNodeHierarchyChanged(uint32_t node, 155 virtual void OnNodeHierarchyChanged(uint32_t node,
153 uint32_t new_parent, 156 uint32_t new_parent,
154 uint32_t old_parent, 157 uint32_t old_parent,
155 int32_t change_id) OVERRIDE { 158 ChangeId change_id) OVERRIDE {
156 changes_.push_back( 159 changes_.push_back(
157 base::StringPrintf( 160 base::StringPrintf(
158 "change_id=%d node=%s new_parent=%s old_parent=%s", 161 "change_id=%d node=%s new_parent=%s old_parent=%s",
159 change_id, NodeIdToString(node).c_str(), 162 static_cast<int>(change_id), NodeIdToString(node).c_str(),
160 NodeIdToString(new_parent).c_str(), 163 NodeIdToString(new_parent).c_str(),
161 NodeIdToString(old_parent).c_str())); 164 NodeIdToString(old_parent).c_str()));
162 QuitIfNecessary(); 165 QuitIfNecessary();
163 } 166 }
164 virtual void OnNodeViewReplaced(uint32_t node, 167 virtual void OnNodeViewReplaced(uint32_t node,
165 uint32_t new_view_id, 168 uint32_t new_view_id,
166 uint32_t old_view_id, 169 uint32_t old_view_id,
167 int32_t change_id) OVERRIDE { 170 ChangeId change_id) OVERRIDE {
168 changes_.push_back( 171 changes_.push_back(
169 base::StringPrintf( 172 base::StringPrintf(
170 "change_id=%d node=%s new_view=%s old_view=%s", 173 "change_id=%d node=%s new_view=%s old_view=%s",
171 change_id, NodeIdToString(node).c_str(), 174 static_cast<int>(change_id), NodeIdToString(node).c_str(),
172 NodeIdToString(new_view_id).c_str(), 175 NodeIdToString(new_view_id).c_str(),
173 NodeIdToString(old_view_id).c_str())); 176 NodeIdToString(old_view_id).c_str()));
174 QuitIfNecessary(); 177 QuitIfNecessary();
175 } 178 }
176 179
177 void QuitIfNecessary() { 180 void QuitIfNecessary() {
178 if (quit_count_ > 0 && --quit_count_ == 0) 181 if (quit_count_ > 0 && --quit_count_ == 0)
179 current_run_loop->Quit(); 182 current_run_loop->Quit();
180 } 183 }
181 184
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
517 520
518 Changes changes(client_.GetAndClearChanges()); 521 Changes changes(client_.GetAndClearChanges());
519 ASSERT_EQ(1u, changes.size()); 522 ASSERT_EQ(1u, changes.size());
520 EXPECT_EQ("change_id=0 node=1,1 new_view=null old_view=2,51", changes[0]); 523 EXPECT_EQ("change_id=0 node=1,1 new_view=null old_view=2,51", changes[0]);
521 } 524 }
522 } 525 }
523 526
524 } // namespace view_manager 527 } // namespace view_manager
525 } // namespace services 528 } // namespace services
526 } // namespace mojo 529 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/services/view_manager/view_manager_connection.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698