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

Side by Side Diff: mojo/services/window_manager/window_manager_api_unittest.cc

Issue 466273002: Remove OpenWindow from the WindowManager interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 4 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/window_manager/main.cc ('k') | mojo/services/window_manager/window_manager_app.h » ('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 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/memory/scoped_vector.h" 6 #include "base/memory/scoped_vector.h"
7 #include "mojo/application_manager/application_manager.h" 7 #include "mojo/application_manager/application_manager.h"
8 #include "mojo/public/cpp/application/application_delegate.h" 8 #include "mojo/public/cpp/application/application_delegate.h"
9 #include "mojo/public/cpp/application/application_impl.h" 9 #include "mojo/public/cpp/application/application_impl.h"
10 #include "mojo/public/cpp/application/service_provider_impl.h" 10 #include "mojo/public/cpp/application/service_provider_impl.h"
(...skipping 29 matching lines...) Expand all
40 bool result = false; 40 bool result = false;
41 base::RunLoop run_loop; 41 base::RunLoop run_loop;
42 ServiceProviderPtr sp; 42 ServiceProviderPtr sp;
43 BindToProxy(new ServiceProviderImpl, &sp); 43 BindToProxy(new ServiceProviderImpl, &sp);
44 view_manager_init->Embed(url, sp.Pass(), 44 view_manager_init->Embed(url, sp.Pass(),
45 base::Bind(&ResultCallback, &result, &run_loop)); 45 base::Bind(&ResultCallback, &result, &run_loop));
46 run_loop.Run(); 46 run_loop.Run();
47 return result; 47 return result;
48 } 48 }
49 49
50 void OpenWindowCallback(Id* id,
51 base::RunLoop* run_loop,
52 Id window_id) {
53 *id = window_id;
54 run_loop->Quit();
55 }
56
57 Id OpenWindow(WindowManagerService* window_manager) {
58 base::RunLoop run_loop;
59 Id id;
60 window_manager->OpenWindow(
61 base::Bind(&OpenWindowCallback, &id, &run_loop));
62 run_loop.Run();
63 return id;
64 }
65
66 Id OpenWindowWithURL(WindowManagerService* window_manager,
67 const std::string& url) {
68 base::RunLoop run_loop;
69 Id id;
70 window_manager->OpenWindowWithURL(
71 url,
72 base::Bind(&OpenWindowCallback, &id, &run_loop));
73 run_loop.Run();
74 return id;
75 }
76
77 class TestWindowManagerClient : public WindowManagerClient { 50 class TestWindowManagerClient : public WindowManagerClient {
78 public: 51 public:
79 typedef base::Callback<void(Id, Id)> 52 typedef base::Callback<void(Id, Id)>
80 TwoNodeCallback; 53 TwoNodeCallback;
81 54
82 explicit TestWindowManagerClient(base::RunLoop* run_loop) 55 explicit TestWindowManagerClient(base::RunLoop* run_loop)
83 : run_loop_(run_loop) {} 56 : run_loop_(run_loop) {}
84 virtual ~TestWindowManagerClient() {} 57 virtual ~TestWindowManagerClient() {}
85 58
86 void set_focus_changed_callback(const TwoNodeCallback& callback) { 59 void set_focus_changed_callback(const TwoNodeCallback& callback) {
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 TwoIds WaitForActiveWindowChange() { 177 TwoIds WaitForActiveWindowChange() {
205 TwoIds old_and_new; 178 TwoIds old_and_new;
206 base::RunLoop run_loop; 179 base::RunLoop run_loop;
207 window_manager_client()->set_active_window_changed_callback( 180 window_manager_client()->set_active_window_changed_callback(
208 base::Bind(&WindowManagerApiTest::OnActiveWindowChanged, 181 base::Bind(&WindowManagerApiTest::OnActiveWindowChanged,
209 base::Unretained(this), &old_and_new, &run_loop)); 182 base::Unretained(this), &old_and_new, &run_loop));
210 run_loop.Run(); 183 run_loop.Run();
211 return old_and_new; 184 return old_and_new;
212 } 185 }
213 186
187 Id OpenWindow() {
188 return OpenWindowWithURL(kTestServiceURL);
189 }
190
191 Id OpenWindowWithURL(const std::string& url) {
192 InitEmbed(view_manager_init_.get(), url);
193 return WaitForEmbed();
194 }
195
214 TestWindowManagerClient* window_manager_client() { 196 TestWindowManagerClient* window_manager_client() {
215 return window_manager_client_.get(); 197 return window_manager_client_.get();
216 } 198 }
217 199
218 WindowManagerServicePtr window_manager_; 200 WindowManagerServicePtr window_manager_;
219 201
220 private: 202 private:
221 // Overridden from testing::Test: 203 // Overridden from testing::Test:
222 virtual void SetUp() MOJO_OVERRIDE { 204 virtual void SetUp() MOJO_OVERRIDE {
223 test_helper_.Init(); 205 test_helper_.Init();
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 } 257 }
276 258
277 shell::ShellTestHelper test_helper_; 259 shell::ShellTestHelper test_helper_;
278 ViewManagerInitServicePtr view_manager_init_; 260 ViewManagerInitServicePtr view_manager_init_;
279 scoped_ptr<TestWindowManagerClient> window_manager_client_; 261 scoped_ptr<TestWindowManagerClient> window_manager_client_;
280 TestApplicationLoader::RootAddedCallback root_added_callback_; 262 TestApplicationLoader::RootAddedCallback root_added_callback_;
281 263
282 DISALLOW_COPY_AND_ASSIGN(WindowManagerApiTest); 264 DISALLOW_COPY_AND_ASSIGN(WindowManagerApiTest);
283 }; 265 };
284 266
285 TEST_F(WindowManagerApiTest, OpenWindow) {
286 OpenWindow(window_manager_.get());
287 Id created_node =
288 OpenWindowWithURL(window_manager_.get(), kTestServiceURL);
289 Id embed_node = WaitForEmbed();
290 EXPECT_EQ(created_node, embed_node);
291 }
292
293 TEST_F(WindowManagerApiTest, FocusAndActivateWindow) { 267 TEST_F(WindowManagerApiTest, FocusAndActivateWindow) {
294 Id first_window = OpenWindow(window_manager_.get()); 268 Id first_window = OpenWindow();
295 window_manager_->FocusWindow(first_window, 269 window_manager_->FocusWindow(first_window,
296 base::Bind(&EmptyResultCallback)); 270 base::Bind(&EmptyResultCallback));
297 TwoIds ids = WaitForFocusChange(); 271 TwoIds ids = WaitForFocusChange();
298 EXPECT_TRUE(ids.first == 0); 272 EXPECT_TRUE(ids.first == 0);
299 EXPECT_EQ(ids.second, first_window); 273 EXPECT_EQ(ids.second, first_window);
300 274
301 Id second_window = OpenWindow(window_manager_.get()); 275 Id second_window = OpenWindow();
302 window_manager_->ActivateWindow(second_window, 276 window_manager_->ActivateWindow(second_window,
303 base::Bind(&EmptyResultCallback)); 277 base::Bind(&EmptyResultCallback));
304 ids = WaitForActiveWindowChange(); 278 ids = WaitForActiveWindowChange();
305 EXPECT_EQ(ids.first, first_window); 279 EXPECT_EQ(ids.first, first_window);
306 EXPECT_EQ(ids.second, second_window); 280 EXPECT_EQ(ids.second, second_window);
307 } 281 }
308 282
309 } // namespace mojo 283 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/services/window_manager/main.cc ('k') | mojo/services/window_manager/window_manager_app.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698