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

Side by Side Diff: components/view_manager/view_manager_service_unittest.cc

Issue 1166123005: Removes ServiceProviders from ViewManager::Embed (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: use is_headless rather than check for browser. Created 5 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
« no previous file with comments | « components/view_manager/view_manager_service_impl.cc ('k') | mandoline/tab/BUILD.gn » ('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 <string> 5 #include <string>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "components/view_manager/client_connection.h" 9 #include "components/view_manager/client_connection.h"
10 #include "components/view_manager/connection_manager.h" 10 #include "components/view_manager/connection_manager.h"
(...skipping 29 matching lines...) Expand all
40 class TestViewManagerClient : public mojo::ViewManagerClient { 40 class TestViewManagerClient : public mojo::ViewManagerClient {
41 public: 41 public:
42 TestViewManagerClient() {} 42 TestViewManagerClient() {}
43 ~TestViewManagerClient() override {} 43 ~TestViewManagerClient() override {}
44 44
45 TestChangeTracker* tracker() { return &tracker_; } 45 TestChangeTracker* tracker() { return &tracker_; }
46 46
47 private: 47 private:
48 // ViewManagerClient: 48 // ViewManagerClient:
49 void OnEmbed(uint16_t connection_id, 49 void OnEmbed(uint16_t connection_id,
50 const String& embedder_url,
51 ViewDataPtr root, 50 ViewDataPtr root,
52 mojo::ViewManagerServicePtr view_manager_service, 51 mojo::ViewManagerServicePtr view_manager_service,
53 InterfaceRequest<ServiceProvider> services,
54 ServiceProviderPtr exposed_services,
55 mojo::Id focused_view_id) override { 52 mojo::Id focused_view_id) override {
56 // TODO(sky): add test coverage of |focused_view_id|. 53 // TODO(sky): add test coverage of |focused_view_id|.
57 tracker_.OnEmbed(connection_id, embedder_url, root.Pass()); 54 tracker_.OnEmbed(connection_id, root.Pass());
58 } 55 }
59 void OnWillEmbed(uint32_t view, 56 void OnEmbedForDescendant(
60 mojo::InterfaceRequest<mojo::ServiceProvider> services, 57 uint32_t view,
61 mojo::ServiceProviderPtr exposed_services, 58 mojo::URLRequestPtr request,
62 const OnWillEmbedCallback& callback) override {} 59 const OnEmbedForDescendantCallback& callback) override {}
63 void OnEmbeddedAppDisconnected(uint32_t view) override { 60 void OnEmbeddedAppDisconnected(uint32_t view) override {
64 tracker_.OnEmbeddedAppDisconnected(view); 61 tracker_.OnEmbeddedAppDisconnected(view);
65 } 62 }
66 void OnViewBoundsChanged(uint32_t view, 63 void OnViewBoundsChanged(uint32_t view,
67 mojo::RectPtr old_bounds, 64 mojo::RectPtr old_bounds,
68 mojo::RectPtr new_bounds) override { 65 mojo::RectPtr new_bounds) override {
69 tracker_.OnViewBoundsChanged(view, old_bounds.Pass(), new_bounds.Pass()); 66 tracker_.OnViewBoundsChanged(view, old_bounds.Pass(), new_bounds.Pass());
70 } 67 }
71 void OnViewViewportMetricsChanged( 68 void OnViewViewportMetricsChanged(
72 mojo::ViewportMetricsPtr old_metrics, 69 mojo::ViewportMetricsPtr old_metrics,
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 TestClientConnection* last_connection() { return last_connection_; } 140 TestClientConnection* last_connection() { return last_connection_; }
144 141
145 private: 142 private:
146 // ConnectionManagerDelegate: 143 // ConnectionManagerDelegate:
147 void OnLostConnectionToWindowManager() override {} 144 void OnLostConnectionToWindowManager() override {}
148 145
149 ClientConnection* CreateClientConnectionForEmbedAtView( 146 ClientConnection* CreateClientConnectionForEmbedAtView(
150 ConnectionManager* connection_manager, 147 ConnectionManager* connection_manager,
151 mojo::InterfaceRequest<mojo::ViewManagerService> service_request, 148 mojo::InterfaceRequest<mojo::ViewManagerService> service_request,
152 mojo::ConnectionSpecificId creator_id, 149 mojo::ConnectionSpecificId creator_id,
153 const std::string& creator_url,
154 mojo::URLRequestPtr request, 150 mojo::URLRequestPtr request,
155 const ViewId& root_id) override { 151 const ViewId& root_id) override {
156 scoped_ptr<ViewManagerServiceImpl> service(new ViewManagerServiceImpl( 152 scoped_ptr<ViewManagerServiceImpl> service(
157 connection_manager, creator_id, creator_url, request->url, root_id)); 153 new ViewManagerServiceImpl(connection_manager, creator_id, root_id));
158 last_connection_ = new TestClientConnection(service.Pass()); 154 last_connection_ = new TestClientConnection(service.Pass());
159 return last_connection_; 155 return last_connection_;
160 } 156 }
161 ClientConnection* CreateClientConnectionForEmbedAtView( 157 ClientConnection* CreateClientConnectionForEmbedAtView(
162 ConnectionManager* connection_manager, 158 ConnectionManager* connection_manager,
163 mojo::InterfaceRequest<mojo::ViewManagerService> service_request, 159 mojo::InterfaceRequest<mojo::ViewManagerService> service_request,
164 mojo::ConnectionSpecificId creator_id, 160 mojo::ConnectionSpecificId creator_id,
165 const std::string& creator_url,
166 const ViewId& root_id, 161 const ViewId& root_id,
167 mojo::ViewManagerClientPtr client) override { 162 mojo::ViewManagerClientPtr client) override {
168 NOTIMPLEMENTED(); 163 NOTIMPLEMENTED();
169 return nullptr; 164 return nullptr;
170 } 165 }
171 166
172 TestClientConnection* last_connection_; 167 TestClientConnection* last_connection_;
173 168
174 DISALLOW_COPY_AND_ASSIGN(TestConnectionManagerDelegate); 169 DISALLOW_COPY_AND_ASSIGN(TestConnectionManagerDelegate);
175 }; 170 };
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 ConnectionManager* connection_manager() { return connection_manager_.get(); } 238 ConnectionManager* connection_manager() { return connection_manager_.get(); }
244 239
245 TestViewManagerClient* wm_client() { return wm_client_; } 240 TestViewManagerClient* wm_client() { return wm_client_; }
246 241
247 protected: 242 protected:
248 // testing::Test: 243 // testing::Test:
249 void SetUp() override { 244 void SetUp() override {
250 connection_manager_.reset(new ConnectionManager( 245 connection_manager_.reset(new ConnectionManager(
251 &delegate_, scoped_ptr<DisplayManager>(new TestDisplayManager))); 246 &delegate_, scoped_ptr<DisplayManager>(new TestDisplayManager)));
252 scoped_ptr<ViewManagerServiceImpl> service(new ViewManagerServiceImpl( 247 scoped_ptr<ViewManagerServiceImpl> service(new ViewManagerServiceImpl(
253 connection_manager_.get(), kInvalidConnectionId, std::string(), 248 connection_manager_.get(), kInvalidConnectionId, RootViewId()));
254 std::string("mojo:window_manager"), RootViewId()));
255 scoped_ptr<TestClientConnection> client_connection( 249 scoped_ptr<TestClientConnection> client_connection(
256 new TestClientConnection(service.Pass())); 250 new TestClientConnection(service.Pass()));
257 wm_client_ = client_connection->client(); 251 wm_client_ = client_connection->client();
258 ASSERT_TRUE(wm_client_ != nullptr); 252 ASSERT_TRUE(wm_client_ != nullptr);
259 connection_manager_->SetWindowManagerClientConnection( 253 connection_manager_->SetWindowManagerClientConnection(
260 client_connection.Pass()); 254 client_connection.Pass());
261 ASSERT_TRUE(wm_connection() != nullptr); 255 ASSERT_TRUE(wm_connection() != nullptr);
262 ASSERT_TRUE(wm_connection()->root() != nullptr); 256 ASSERT_TRUE(wm_connection()->root() != nullptr);
263 } 257 }
264 258
(...skipping 25 matching lines...) Expand all
290 // 2,2 bounds=2,3 6x7 284 // 2,2 bounds=2,3 6x7
291 // 2,3 bounds=3,4 6x7 285 // 2,3 bounds=3,4 6x7
292 // CloneAndAnimate() is invoked for 2,2. 286 // CloneAndAnimate() is invoked for 2,2.
293 void SetUpAnimate1(ViewManagerServiceTest* test, ViewId* embed_view_id) { 287 void SetUpAnimate1(ViewManagerServiceTest* test, ViewId* embed_view_id) {
294 *embed_view_id = ViewId(test->wm_connection()->id(), 1); 288 *embed_view_id = ViewId(test->wm_connection()->id(), 1);
295 EXPECT_EQ(ERROR_CODE_NONE, test->wm_connection()->CreateView(*embed_view_id)); 289 EXPECT_EQ(ERROR_CODE_NONE, test->wm_connection()->CreateView(*embed_view_id));
296 EXPECT_TRUE(test->wm_connection()->SetViewVisibility(*embed_view_id, true)); 290 EXPECT_TRUE(test->wm_connection()->SetViewVisibility(*embed_view_id, true));
297 EXPECT_TRUE(test->wm_connection()->AddView(*(test->wm_connection()->root()), 291 EXPECT_TRUE(test->wm_connection()->AddView(*(test->wm_connection()->root()),
298 *embed_view_id)); 292 *embed_view_id));
299 mojo::URLRequestPtr request(mojo::URLRequest::New()); 293 mojo::URLRequestPtr request(mojo::URLRequest::New());
300 test->wm_connection()->Embed(request.Pass(), *embed_view_id, 294 test->wm_connection()->EmbedAllowingReembed(*embed_view_id, request.Pass(),
301 ViewManagerServiceImpl::EmbedType::NO_REEMBED, 295 mojo::Callback<void(bool)>());
302 nullptr, nullptr, mojo::Callback<void(bool)>());
303 ViewManagerServiceImpl* connection1 = 296 ViewManagerServiceImpl* connection1 =
304 test->connection_manager()->GetConnectionWithRoot(*embed_view_id); 297 test->connection_manager()->GetConnectionWithRoot(*embed_view_id);
305 ASSERT_TRUE(connection1 != nullptr); 298 ASSERT_TRUE(connection1 != nullptr);
306 ASSERT_NE(connection1, test->wm_connection()); 299 ASSERT_NE(connection1, test->wm_connection());
307 300
308 const ViewId child1(connection1->id(), 1); 301 const ViewId child1(connection1->id(), 1);
309 EXPECT_EQ(ERROR_CODE_NONE, connection1->CreateView(child1)); 302 EXPECT_EQ(ERROR_CODE_NONE, connection1->CreateView(child1));
310 const ViewId child2(connection1->id(), 2); 303 const ViewId child2(connection1->id(), 2);
311 EXPECT_EQ(ERROR_CODE_NONE, connection1->CreateView(child2)); 304 EXPECT_EQ(ERROR_CODE_NONE, connection1->CreateView(child2));
312 const ViewId child3(connection1->id(), 3); 305 const ViewId child3(connection1->id(), 3);
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 422
430 // Clone and animate on a tree with more depth. Basically that of 423 // Clone and animate on a tree with more depth. Basically that of
431 // SetUpAnimate1() but cloning 2,1. 424 // SetUpAnimate1() but cloning 2,1.
432 TEST_F(ViewManagerServiceTest, CloneAndAnimateLargerDepth) { 425 TEST_F(ViewManagerServiceTest, CloneAndAnimateLargerDepth) {
433 const ViewId embed_view_id(wm_connection()->id(), 1); 426 const ViewId embed_view_id(wm_connection()->id(), 1);
434 EXPECT_EQ(ERROR_CODE_NONE, wm_connection()->CreateView(embed_view_id)); 427 EXPECT_EQ(ERROR_CODE_NONE, wm_connection()->CreateView(embed_view_id));
435 EXPECT_TRUE(wm_connection()->SetViewVisibility(embed_view_id, true)); 428 EXPECT_TRUE(wm_connection()->SetViewVisibility(embed_view_id, true));
436 EXPECT_TRUE( 429 EXPECT_TRUE(
437 wm_connection()->AddView(*(wm_connection()->root()), embed_view_id)); 430 wm_connection()->AddView(*(wm_connection()->root()), embed_view_id));
438 mojo::URLRequestPtr request(mojo::URLRequest::New()); 431 mojo::URLRequestPtr request(mojo::URLRequest::New());
439 wm_connection()->Embed(request.Pass(), embed_view_id, 432 wm_connection()->EmbedAllowingReembed(embed_view_id, request.Pass(),
440 ViewManagerServiceImpl::EmbedType::NO_REEMBED, nullptr, 433 mojo::Callback<void(bool)>());
441 nullptr, mojo::Callback<void(bool)>());
442 ViewManagerServiceImpl* connection1 = 434 ViewManagerServiceImpl* connection1 =
443 connection_manager()->GetConnectionWithRoot(embed_view_id); 435 connection_manager()->GetConnectionWithRoot(embed_view_id);
444 ASSERT_TRUE(connection1 != nullptr); 436 ASSERT_TRUE(connection1 != nullptr);
445 ASSERT_NE(connection1, wm_connection()); 437 ASSERT_NE(connection1, wm_connection());
446 438
447 const ViewId child1(connection1->id(), 1); 439 const ViewId child1(connection1->id(), 1);
448 EXPECT_EQ(ERROR_CODE_NONE, connection1->CreateView(child1)); 440 EXPECT_EQ(ERROR_CODE_NONE, connection1->CreateView(child1));
449 const ViewId child2(connection1->id(), 2); 441 const ViewId child2(connection1->id(), 2);
450 EXPECT_EQ(ERROR_CODE_NONE, connection1->CreateView(child2)); 442 EXPECT_EQ(ERROR_CODE_NONE, connection1->CreateView(child2));
451 const ViewId child3(connection1->id(), 3); 443 const ViewId child3(connection1->id(), 3);
(...skipping 27 matching lines...) Expand all
479 471
480 // Verifies focus correctly changes on pointer events. 472 // Verifies focus correctly changes on pointer events.
481 TEST_F(ViewManagerServiceTest, FocusOnPointer) { 473 TEST_F(ViewManagerServiceTest, FocusOnPointer) {
482 const ViewId embed_view_id(wm_connection()->id(), 1); 474 const ViewId embed_view_id(wm_connection()->id(), 1);
483 EXPECT_EQ(ERROR_CODE_NONE, wm_connection()->CreateView(embed_view_id)); 475 EXPECT_EQ(ERROR_CODE_NONE, wm_connection()->CreateView(embed_view_id));
484 EXPECT_TRUE(wm_connection()->SetViewVisibility(embed_view_id, true)); 476 EXPECT_TRUE(wm_connection()->SetViewVisibility(embed_view_id, true));
485 EXPECT_TRUE( 477 EXPECT_TRUE(
486 wm_connection()->AddView(*(wm_connection()->root()), embed_view_id)); 478 wm_connection()->AddView(*(wm_connection()->root()), embed_view_id));
487 connection_manager()->root()->SetBounds(gfx::Rect(0, 0, 100, 100)); 479 connection_manager()->root()->SetBounds(gfx::Rect(0, 0, 100, 100));
488 mojo::URLRequestPtr request(mojo::URLRequest::New()); 480 mojo::URLRequestPtr request(mojo::URLRequest::New());
489 wm_connection()->Embed(request.Pass(), embed_view_id, 481 wm_connection()->EmbedAllowingReembed(embed_view_id, request.Pass(),
490 ViewManagerServiceImpl::EmbedType::NO_REEMBED, nullptr, 482 mojo::Callback<void(bool)>());
491 nullptr, mojo::Callback<void(bool)>());
492 ViewManagerServiceImpl* connection1 = 483 ViewManagerServiceImpl* connection1 =
493 connection_manager()->GetConnectionWithRoot(embed_view_id); 484 connection_manager()->GetConnectionWithRoot(embed_view_id);
494 ASSERT_TRUE(connection1 != nullptr); 485 ASSERT_TRUE(connection1 != nullptr);
495 ASSERT_NE(connection1, wm_connection()); 486 ASSERT_NE(connection1, wm_connection());
496 487
497 connection_manager() 488 connection_manager()
498 ->GetView(embed_view_id) 489 ->GetView(embed_view_id)
499 ->SetBounds(gfx::Rect(0, 0, 50, 50)); 490 ->SetBounds(gfx::Rect(0, 0, 50, 50));
500 491
501 const ViewId child1(connection1->id(), 1); 492 const ViewId child1(connection1->id(), 1);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
549 EXPECT_EQ(connection_manager()->root(), 540 EXPECT_EQ(connection_manager()->root(),
550 connection_manager()->GetFocusedView()); 541 connection_manager()->GetFocusedView());
551 ASSERT_EQ(wm_client()->tracker()->changes()->size(), 1u); 542 ASSERT_EQ(wm_client()->tracker()->changes()->size(), 1u);
552 EXPECT_EQ("InputEvent view=0,1 event_action=4", 543 EXPECT_EQ("InputEvent view=0,1 event_action=4",
553 ChangesToDescription1(*wm_client()->tracker()->changes())[0]); 544 ChangesToDescription1(*wm_client()->tracker()->changes())[0]);
554 EXPECT_TRUE(connection1_client->tracker()->changes()->empty()); 545 EXPECT_TRUE(connection1_client->tracker()->changes()->empty());
555 ; 546 ;
556 } 547 }
557 548
558 } // namespace view_manager 549 } // namespace view_manager
OLDNEW
« no previous file with comments | « components/view_manager/view_manager_service_impl.cc ('k') | mandoline/tab/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698