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

Side by Side Diff: mojo/services/public/cpp/view_manager/tests/view_manager_unittest.cc

Issue 311373005: Nesting (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 6 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
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/public/cpp/view_manager/view_manager.h" 5 #include "mojo/services/public/cpp/view_manager/view_manager.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "mojo/public/cpp/application/application.h" 10 #include "mojo/public/cpp/application/application.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 QuitRunLoop(); 43 QuitRunLoop();
44 } 44 }
45 45
46 void WaitForAllChangesToBeAcked(ViewManager* manager) { 46 void WaitForAllChangesToBeAcked(ViewManager* manager) {
47 ViewManagerPrivate(manager).synchronizer()->set_changes_acked_callback( 47 ViewManagerPrivate(manager).synchronizer()->set_changes_acked_callback(
48 base::Bind(&QuitRunLoopOnChangesAcked)); 48 base::Bind(&QuitRunLoopOnChangesAcked));
49 DoRunLoop(); 49 DoRunLoop();
50 ViewManagerPrivate(manager).synchronizer()->ClearChangesAckedCallback(); 50 ViewManagerPrivate(manager).synchronizer()->ClearChangesAckedCallback();
51 } 51 }
52 52
53 class ConnectServiceLoader : public ServiceLoader { 53 class ConnectServiceLoader : public ServiceLoader,
54 public ViewManagerDelegate {
54 public: 55 public:
55 explicit ConnectServiceLoader(const ViewManager::RootCallback& callback) 56 typedef base::Callback<void(ViewManager*, ViewTreeNode*)> LoadedCallback;
56 : callback_(callback) {} 57
58 explicit ConnectServiceLoader(const LoadedCallback& callback)
59 : callback_(callback) {
60 }
57 virtual ~ConnectServiceLoader() {} 61 virtual ~ConnectServiceLoader() {}
58 62
59 private: 63 private:
60 // Overridden from ServiceLoader: 64 // Overridden from ServiceLoader:
61 virtual void LoadService(ServiceManager* manager, 65 virtual void LoadService(ServiceManager* manager,
62 const GURL& url, 66 const GURL& url,
63 ScopedMessagePipeHandle shell_handle) OVERRIDE { 67 ScopedMessagePipeHandle shell_handle) OVERRIDE {
64 scoped_ptr<Application> app(new Application(shell_handle.Pass())); 68 scoped_ptr<Application> app(new Application(shell_handle.Pass()));
65 // TODO(beng): test removed callback. 69 ViewManager::Create(app.get(), this);
66 ViewManager::Create(app.get(), callback_, ViewManager::RootCallback());
67 apps_.push_back(app.release()); 70 apps_.push_back(app.release());
68 } 71 }
69 virtual void OnServiceError(ServiceManager* manager, 72 virtual void OnServiceError(ServiceManager* manager,
70 const GURL& url) OVERRIDE { 73 const GURL& url) OVERRIDE {
71 } 74 }
72 75
76 // Overridden from ViewManagerDelegate:
77 virtual void OnRootAdded(ViewManager* view_manager,
78 ViewTreeNode* root) OVERRIDE {
79 callback_.Run(view_manager, root);
80 }
81
73 ScopedVector<Application> apps_; 82 ScopedVector<Application> apps_;
74 ViewManager::RootCallback callback_; 83 LoadedCallback callback_;
75 84
76 DISALLOW_COPY_AND_ASSIGN(ConnectServiceLoader); 85 DISALLOW_COPY_AND_ASSIGN(ConnectServiceLoader);
77 }; 86 };
78 87
79 class ActiveViewChangedObserver : public ViewTreeNodeObserver { 88 class ActiveViewChangedObserver : public ViewTreeNodeObserver {
80 public: 89 public:
81 explicit ActiveViewChangedObserver(ViewTreeNode* node) 90 explicit ActiveViewChangedObserver(ViewTreeNode* node)
82 : node_(node) {} 91 : node_(node) {}
83 virtual ~ActiveViewChangedObserver() {} 92 virtual ~ActiveViewChangedObserver() {}
84 93
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 return view_manager; 330 return view_manager;
322 } 331 }
323 332
324 void UnloadApplication(const GURL& url) { 333 void UnloadApplication(const GURL& url) {
325 test_helper_.SetLoaderForURL(scoped_ptr<ServiceLoader>(), url); 334 test_helper_.SetLoaderForURL(scoped_ptr<ServiceLoader>(), url);
326 } 335 }
327 336
328 private: 337 private:
329 // Overridden from testing::Test: 338 // Overridden from testing::Test:
330 virtual void SetUp() OVERRIDE { 339 virtual void SetUp() OVERRIDE {
331 ViewManager::RootCallback ready_callback = 340 ConnectServiceLoader::LoadedCallback ready_callback =
332 base::Bind(&ViewManagerTest::OnViewManagerLoaded, 341 base::Bind(&ViewManagerTest::OnViewManagerLoaded,
333 base::Unretained(this)); 342 base::Unretained(this));
334 test_helper_.Init(); 343 test_helper_.Init();
335 test_helper_.SetLoaderForURL( 344 test_helper_.SetLoaderForURL(
336 scoped_ptr<ServiceLoader>(new ConnectServiceLoader(ready_callback)), 345 scoped_ptr<ServiceLoader>(new ConnectServiceLoader(ready_callback)),
337 GURL(kWindowManagerURL)); 346 GURL(kWindowManagerURL));
338 test_helper_.SetLoaderForURL( 347 test_helper_.SetLoaderForURL(
339 scoped_ptr<ServiceLoader>(new ConnectServiceLoader(ready_callback)), 348 scoped_ptr<ServiceLoader>(new ConnectServiceLoader(ready_callback)),
340 GURL(kEmbeddedApp1URL)); 349 GURL(kEmbeddedApp1URL));
341 350
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
692 window_manager()->roots().front()->AddChild(node1); 701 window_manager()->roots().front()->AddChild(node1);
693 ViewTreeNode* node2 = ViewTreeNode::Create(window_manager()); 702 ViewTreeNode* node2 = ViewTreeNode::Create(window_manager());
694 window_manager()->roots().front()->AddChild(node2); 703 window_manager()->roots().front()->AddChild(node2);
695 ViewManager* embedded1 = Embed(window_manager(), node1); 704 ViewManager* embedded1 = Embed(window_manager(), node1);
696 ViewManager* embedded2 = Embed(window_manager(), node2); 705 ViewManager* embedded2 = Embed(window_manager(), node2);
697 EXPECT_EQ(embedded1, embedded2); 706 EXPECT_EQ(embedded1, embedded2);
698 } 707 }
699 708
700 } // namespace view_manager 709 } // namespace view_manager
701 } // namespace mojo 710 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698