OLD | NEW |
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/bind.h" | 7 #include "base/bind.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "mojo/services/public/cpp/view_manager/lib/view_manager_private.h" | 9 #include "mojo/services/public/cpp/view_manager/lib/view_manager_private.h" |
10 #include "mojo/services/public/cpp/view_manager/lib/view_manager_synchronizer.h" | 10 #include "mojo/services/public/cpp/view_manager/lib/view_manager_synchronizer.h" |
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
331 if (params.phase != ViewTreeNodeObserver::DISPOSITION_CHANGED) | 331 if (params.phase != ViewTreeNodeObserver::DISPOSITION_CHANGED) |
332 return false; | 332 return false; |
333 return params.receiver == view_manager()->tree() && | 333 return params.receiver == view_manager()->tree() && |
334 !params.old_parent && | 334 !params.old_parent && |
335 params.new_parent == view_manager()->tree(); | 335 params.new_parent == view_manager()->tree(); |
336 } | 336 } |
337 | 337 |
338 DISALLOW_COPY_AND_ASSIGN(HierarchyChanged_NodeCreatedObserver); | 338 DISALLOW_COPY_AND_ASSIGN(HierarchyChanged_NodeCreatedObserver); |
339 }; | 339 }; |
340 | 340 |
341 TEST_F(ViewManagerTest, HierarchyChanged_NodeCreated) { | 341 // TODO(beng): reenable these once converted to new way of connecting. |
| 342 |
| 343 TEST_F(ViewManagerTest, DISABLED_HierarchyChanged_NodeCreated) { |
342 HierarchyChanged_NodeCreatedObserver observer(view_manager_2()); | 344 HierarchyChanged_NodeCreatedObserver observer(view_manager_2()); |
343 ViewTreeNode* node1 = ViewTreeNode::Create(view_manager_1()); | 345 ViewTreeNode* node1 = ViewTreeNode::Create(view_manager_1()); |
344 view_manager_1()->tree()->AddChild(node1); | 346 view_manager_1()->tree()->AddChild(node1); |
345 DoRunLoop(); | 347 DoRunLoop(); |
346 | 348 |
347 EXPECT_EQ(view_manager_2()->tree()->children().front()->id(), node1->id()); | 349 EXPECT_EQ(view_manager_2()->tree()->children().front()->id(), node1->id()); |
348 } | 350 } |
349 | 351 |
350 // Quits the current runloop when the root is notified about a node moved from | 352 // Quits the current runloop when the root is notified about a node moved from |
351 // |old_parent_id| to |new_parent_id|. | 353 // |old_parent_id| to |new_parent_id|. |
(...skipping 16 matching lines...) Expand all Loading... |
368 params.old_parent->id() == old_parent_id_&& | 370 params.old_parent->id() == old_parent_id_&& |
369 params.new_parent->id() == new_parent_id_; | 371 params.new_parent->id() == new_parent_id_; |
370 } | 372 } |
371 | 373 |
372 TransportNodeId old_parent_id_; | 374 TransportNodeId old_parent_id_; |
373 TransportNodeId new_parent_id_; | 375 TransportNodeId new_parent_id_; |
374 | 376 |
375 DISALLOW_COPY_AND_ASSIGN(HierarchyChanged_NodeMovedObserver); | 377 DISALLOW_COPY_AND_ASSIGN(HierarchyChanged_NodeMovedObserver); |
376 }; | 378 }; |
377 | 379 |
378 TEST_F(ViewManagerTest, HierarchyChanged_NodeMoved) { | 380 TEST_F(ViewManagerTest, DISABLED_HierarchyChanged_NodeMoved) { |
379 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); | 381 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); |
380 ViewTreeNode* node2 = CreateNodeInParent(view_manager_1()->tree()); | 382 ViewTreeNode* node2 = CreateNodeInParent(view_manager_1()->tree()); |
381 ViewTreeNode* node21 = CreateNodeInParent(node2); | 383 ViewTreeNode* node21 = CreateNodeInParent(node2); |
382 WaitForTreeSizeToMatch(view_manager_2()->tree(), 4); | 384 WaitForTreeSizeToMatch(view_manager_2()->tree(), 4); |
383 | 385 |
384 HierarchyChanged_NodeMovedObserver observer(view_manager_2(), | 386 HierarchyChanged_NodeMovedObserver observer(view_manager_2(), |
385 node2->id(), | 387 node2->id(), |
386 node1->id()); | 388 node1->id()); |
387 | 389 |
388 node1->AddChild(node21); | 390 node1->AddChild(node21); |
(...skipping 22 matching lines...) Expand all Loading... |
411 if (params.phase != ViewTreeNodeObserver::DISPOSITION_CHANGING) | 413 if (params.phase != ViewTreeNodeObserver::DISPOSITION_CHANGING) |
412 return false; | 414 return false; |
413 return params.receiver == view_manager()->tree() && | 415 return params.receiver == view_manager()->tree() && |
414 params.old_parent->id() == params.receiver->id() && | 416 params.old_parent->id() == params.receiver->id() && |
415 params.new_parent == 0; | 417 params.new_parent == 0; |
416 } | 418 } |
417 | 419 |
418 DISALLOW_COPY_AND_ASSIGN(HierarchyChanged_NodeRemovedObserver); | 420 DISALLOW_COPY_AND_ASSIGN(HierarchyChanged_NodeRemovedObserver); |
419 }; | 421 }; |
420 | 422 |
421 TEST_F(ViewManagerTest, HierarchyChanged_NodeRemoved) { | 423 TEST_F(ViewManagerTest, DISABLED_HierarchyChanged_NodeRemoved) { |
422 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); | 424 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); |
423 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); | 425 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); |
424 | 426 |
425 HierarchyChanged_NodeRemovedObserver observer(view_manager_2()); | 427 HierarchyChanged_NodeRemovedObserver observer(view_manager_2()); |
426 | 428 |
427 view_manager_1()->tree()->RemoveChild(node1); | 429 view_manager_1()->tree()->RemoveChild(node1); |
428 DoRunLoop(); | 430 DoRunLoop(); |
429 | 431 |
430 ViewTreeNode* tree2 = view_manager_2()->tree(); | 432 ViewTreeNode* tree2 = view_manager_2()->tree(); |
431 | 433 |
432 EXPECT_TRUE(tree2->children().empty()); | 434 EXPECT_TRUE(tree2->children().empty()); |
433 } | 435 } |
434 | 436 |
435 TEST_F(ViewManagerTest, NodeDestroyed) { | 437 TEST_F(ViewManagerTest, DISABLED_NodeDestroyed) { |
436 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); | 438 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); |
437 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); | 439 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); |
438 | 440 |
439 // |node1| will be deleted after calling Destroy() below. | 441 // |node1| will be deleted after calling Destroy() below. |
440 TransportNodeId id = node1->id(); | 442 TransportNodeId id = node1->id(); |
441 node1->Destroy(); | 443 node1->Destroy(); |
442 | 444 |
443 std::set<TransportNodeId> nodes; | 445 std::set<TransportNodeId> nodes; |
444 nodes.insert(id); | 446 nodes.insert(id); |
445 WaitForDestruction(view_manager_2(), &nodes, NULL); | 447 WaitForDestruction(view_manager_2(), &nodes, NULL); |
446 | 448 |
447 EXPECT_TRUE(view_manager_2()->tree()->children().empty()); | 449 EXPECT_TRUE(view_manager_2()->tree()->children().empty()); |
448 EXPECT_EQ(NULL, view_manager_2()->GetNodeById(id)); | 450 EXPECT_EQ(NULL, view_manager_2()->GetNodeById(id)); |
449 } | 451 } |
450 | 452 |
451 TEST_F(ViewManagerTest, ViewManagerDestroyed_CleanupNode) { | 453 TEST_F(ViewManagerTest, DISABLED_ViewManagerDestroyed_CleanupNode) { |
452 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); | 454 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); |
453 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); | 455 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); |
454 | 456 |
455 TransportNodeId id = node1->id(); | 457 TransportNodeId id = node1->id(); |
456 DestroyViewManager1(); | 458 DestroyViewManager1(); |
457 std::set<TransportNodeId> nodes; | 459 std::set<TransportNodeId> nodes; |
458 nodes.insert(id); | 460 nodes.insert(id); |
459 WaitForDestruction(view_manager_2(), &nodes, NULL); | 461 WaitForDestruction(view_manager_2(), &nodes, NULL); |
460 | 462 |
461 // tree() should still be valid, since it's owned by neither connection. | 463 // tree() should still be valid, since it's owned by neither connection. |
462 EXPECT_TRUE(view_manager_2()->tree()->children().empty()); | 464 EXPECT_TRUE(view_manager_2()->tree()->children().empty()); |
463 } | 465 } |
464 | 466 |
465 TEST_F(ViewManagerTest, SetActiveView) { | 467 TEST_F(ViewManagerTest, DISABLED_SetActiveView) { |
466 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); | 468 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); |
467 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); | 469 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); |
468 | 470 |
469 View* view1 = View::Create(view_manager_1()); | 471 View* view1 = View::Create(view_manager_1()); |
470 node1->SetActiveView(view1); | 472 node1->SetActiveView(view1); |
471 | 473 |
472 ViewTreeNode* node1_2 = view_manager_2()->tree()->GetChildById(node1->id()); | 474 ViewTreeNode* node1_2 = view_manager_2()->tree()->GetChildById(node1->id()); |
473 WaitForActiveViewToChange(node1_2); | 475 WaitForActiveViewToChange(node1_2); |
474 | 476 |
475 EXPECT_EQ(node1_2->active_view()->id(), view1->id()); | 477 EXPECT_EQ(node1_2->active_view()->id(), view1->id()); |
476 } | 478 } |
477 | 479 |
478 TEST_F(ViewManagerTest, DestroyView) { | 480 TEST_F(ViewManagerTest, DISABLED_DestroyView) { |
479 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); | 481 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); |
480 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); | 482 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); |
481 | 483 |
482 View* view1 = View::Create(view_manager_1()); | 484 View* view1 = View::Create(view_manager_1()); |
483 node1->SetActiveView(view1); | 485 node1->SetActiveView(view1); |
484 | 486 |
485 ViewTreeNode* node1_2 = view_manager_2()->tree()->GetChildById(node1->id()); | 487 ViewTreeNode* node1_2 = view_manager_2()->tree()->GetChildById(node1->id()); |
486 WaitForActiveViewToChange(node1_2); | 488 WaitForActiveViewToChange(node1_2); |
487 | 489 |
488 TransportViewId view1_id = view1->id(); | 490 TransportViewId view1_id = view1->id(); |
489 view1->Destroy(); | 491 view1->Destroy(); |
490 | 492 |
491 std::set<TransportViewId> views; | 493 std::set<TransportViewId> views; |
492 views.insert(view1_id); | 494 views.insert(view1_id); |
493 WaitForDestruction(view_manager_2(), NULL, &views); | 495 WaitForDestruction(view_manager_2(), NULL, &views); |
494 EXPECT_EQ(NULL, node1_2->active_view()); | 496 EXPECT_EQ(NULL, node1_2->active_view()); |
495 EXPECT_EQ(NULL, view_manager_2()->GetViewById(view1_id)); | 497 EXPECT_EQ(NULL, view_manager_2()->GetViewById(view1_id)); |
496 } | 498 } |
497 | 499 |
498 // Destroying the connection that created a node and view should result in that | 500 // Destroying the connection that created a node and view should result in that |
499 // node and view disappearing from all connections that see them. | 501 // node and view disappearing from all connections that see them. |
500 TEST_F(ViewManagerTest, ViewManagerDestroyed_CleanupNodeAndView) { | 502 TEST_F(ViewManagerTest, DISABLED_ViewManagerDestroyed_CleanupNodeAndView) { |
501 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); | 503 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); |
502 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); | 504 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); |
503 | 505 |
504 View* view1 = View::Create(view_manager_1()); | 506 View* view1 = View::Create(view_manager_1()); |
505 node1->SetActiveView(view1); | 507 node1->SetActiveView(view1); |
506 | 508 |
507 ViewTreeNode* node1_2 = view_manager_2()->tree()->GetChildById(node1->id()); | 509 ViewTreeNode* node1_2 = view_manager_2()->tree()->GetChildById(node1->id()); |
508 WaitForActiveViewToChange(node1_2); | 510 WaitForActiveViewToChange(node1_2); |
509 | 511 |
510 TransportNodeId node1_id = node1->id(); | 512 TransportNodeId node1_id = node1->id(); |
(...skipping 12 matching lines...) Expand all Loading... |
523 EXPECT_EQ(NULL, view_manager_2()->GetViewById(view1_id)); | 525 EXPECT_EQ(NULL, view_manager_2()->GetViewById(view1_id)); |
524 } | 526 } |
525 | 527 |
526 // This test validates the following scenario: | 528 // This test validates the following scenario: |
527 // - a node originating from one connection | 529 // - a node originating from one connection |
528 // - a view originating from a second connection | 530 // - a view originating from a second connection |
529 // + the connection originating the node is destroyed | 531 // + the connection originating the node is destroyed |
530 // -> the view should still exist (since the second connection is live) but | 532 // -> the view should still exist (since the second connection is live) but |
531 // should be disconnected from any nodes. | 533 // should be disconnected from any nodes. |
532 TEST_F(ViewManagerTest, | 534 TEST_F(ViewManagerTest, |
533 ViewManagerDestroyed_CleanupNodeAndViewFromDifferentConnections) { | 535 DISABLED_ViewManagerDestroyed_CleanupNodeAndViewFromDifferentConnections) { |
534 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); | 536 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); |
535 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); | 537 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); |
536 | 538 |
537 View* view1_2 = View::Create(view_manager_2()); | 539 View* view1_2 = View::Create(view_manager_2()); |
538 ViewTreeNode* node1_2 = view_manager_2()->tree()->GetChildById(node1->id()); | 540 ViewTreeNode* node1_2 = view_manager_2()->tree()->GetChildById(node1->id()); |
539 node1_2->SetActiveView(view1_2); | 541 node1_2->SetActiveView(view1_2); |
540 WaitForActiveViewToChange(node1); | 542 WaitForActiveViewToChange(node1); |
541 | 543 |
542 TransportNodeId node1_id = node1->id(); | 544 TransportNodeId node1_id = node1->id(); |
543 TransportViewId view1_2_id = view1_2->id(); | 545 TransportViewId view1_2_id = view1_2->id(); |
(...skipping 11 matching lines...) Expand all Loading... |
555 // disconnected from the node tree. | 557 // disconnected from the node tree. |
556 View* another_view1_2 = view_manager_2()->GetViewById(view1_2_id); | 558 View* another_view1_2 = view_manager_2()->GetViewById(view1_2_id); |
557 EXPECT_EQ(view1_2, another_view1_2); | 559 EXPECT_EQ(view1_2, another_view1_2); |
558 EXPECT_EQ(NULL, view1_2->node()); | 560 EXPECT_EQ(NULL, view1_2->node()); |
559 } | 561 } |
560 | 562 |
561 // This test verifies that it is not possible to set the active view to a view | 563 // This test verifies that it is not possible to set the active view to a view |
562 // defined in a different connection. | 564 // defined in a different connection. |
563 // TODO(beng): write these tests for ViewTreeNode::AddChild(), RemoveChild() and | 565 // TODO(beng): write these tests for ViewTreeNode::AddChild(), RemoveChild() and |
564 // Contains(). | 566 // Contains(). |
565 TEST_F(ViewManagerTest, SetActiveViewAcrossConnection) { | 567 TEST_F(ViewManagerTest, DISABLED_SetActiveViewAcrossConnection) { |
566 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); | 568 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); |
567 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); | 569 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); |
568 | 570 |
569 View* view1_2 = View::Create(view_manager_2()); | 571 View* view1_2 = View::Create(view_manager_2()); |
570 EXPECT_DEATH(node1->SetActiveView(view1_2), ""); | 572 EXPECT_DEATH(node1->SetActiveView(view1_2), ""); |
571 } | 573 } |
572 | 574 |
573 // This test verifies that a node hierarchy constructed in one connection | 575 // This test verifies that a node hierarchy constructed in one connection |
574 // becomes entirely visible to the second connection when the hierarchy is | 576 // becomes entirely visible to the second connection when the hierarchy is |
575 // attached. | 577 // attached. |
576 TEST_F(ViewManagerTest, MapSubtreeOnAttach) { | 578 TEST_F(ViewManagerTest, DISABLED_MapSubtreeOnAttach) { |
577 ViewTreeNode* node1 = ViewTreeNode::Create(view_manager_1()); | 579 ViewTreeNode* node1 = ViewTreeNode::Create(view_manager_1()); |
578 ViewTreeNode* node11 = CreateNodeInParent(node1); | 580 ViewTreeNode* node11 = CreateNodeInParent(node1); |
579 View* view11 = View::Create(view_manager_1()); | 581 View* view11 = View::Create(view_manager_1()); |
580 node11->SetActiveView(view11); | 582 node11->SetActiveView(view11); |
581 gfx::Rect node11_bounds(800, 600); | 583 gfx::Rect node11_bounds(800, 600); |
582 node11->SetBounds(node11_bounds); | 584 node11->SetBounds(node11_bounds); |
583 WaitForAllChangesToBeAcked(view_manager_1()); | 585 WaitForAllChangesToBeAcked(view_manager_1()); |
584 | 586 |
585 // Now attach this node tree to the root & wait for it to show up in the | 587 // Now attach this node tree to the root & wait for it to show up in the |
586 // second connection. | 588 // second connection. |
587 view_manager_1()->tree()->AddChild(node1); | 589 view_manager_1()->tree()->AddChild(node1); |
588 WaitForTreeSizeToMatch(view_manager_2()->tree(), 3); | 590 WaitForTreeSizeToMatch(view_manager_2()->tree(), 3); |
589 | 591 |
590 ViewTreeNode* node11_2 = view_manager_2()->GetNodeById(node11->id()); | 592 ViewTreeNode* node11_2 = view_manager_2()->GetNodeById(node11->id()); |
591 View* view11_2 = view_manager_2()->GetViewById(view11->id()); | 593 View* view11_2 = view_manager_2()->GetViewById(view11->id()); |
592 EXPECT_TRUE(node11_2 != NULL); | 594 EXPECT_TRUE(node11_2 != NULL); |
593 EXPECT_EQ(view11_2, node11_2->active_view()); | 595 EXPECT_EQ(view11_2, node11_2->active_view()); |
594 EXPECT_EQ(node11_bounds, node11_2->bounds()); | 596 EXPECT_EQ(node11_bounds, node11_2->bounds()); |
595 } | 597 } |
596 | 598 |
597 // Verifies that bounds changes applied to a node hierarchy in one connection | 599 // Verifies that bounds changes applied to a node hierarchy in one connection |
598 // are reflected to another. | 600 // are reflected to another. |
599 TEST_F(ViewManagerTest, SetBounds) { | 601 TEST_F(ViewManagerTest, DISABLED_SetBounds) { |
600 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); | 602 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); |
601 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); | 603 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); |
602 | 604 |
603 ViewTreeNode* node1_2 = view_manager_2()->GetNodeById(node1->id()); | 605 ViewTreeNode* node1_2 = view_manager_2()->GetNodeById(node1->id()); |
604 EXPECT_EQ(node1->bounds(), node1_2->bounds()); | 606 EXPECT_EQ(node1->bounds(), node1_2->bounds()); |
605 | 607 |
606 node1->SetBounds(gfx::Rect(0, 0, 100, 100)); | 608 node1->SetBounds(gfx::Rect(0, 0, 100, 100)); |
607 WaitForBoundsToChange(node1_2); | 609 WaitForBoundsToChange(node1_2); |
608 EXPECT_EQ(node1->bounds(), node1_2->bounds()); | 610 EXPECT_EQ(node1->bounds(), node1_2->bounds()); |
609 } | 611 } |
610 | 612 |
611 // Verifies that bounds changes applied to a node owned by a different | 613 // Verifies that bounds changes applied to a node owned by a different |
612 // connection are refused. | 614 // connection are refused. |
613 TEST_F(ViewManagerTest, SetBoundsSecurity) { | 615 TEST_F(ViewManagerTest, DISABLED_SetBoundsSecurity) { |
614 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); | 616 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); |
615 node1->SetBounds(gfx::Rect(800, 600)); | 617 node1->SetBounds(gfx::Rect(800, 600)); |
616 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); | 618 WaitForTreeSizeToMatch(view_manager_2()->tree(), 2); |
617 | 619 |
618 ViewTreeNode* node1_2 = view_manager_2()->GetNodeById(node1->id()); | 620 ViewTreeNode* node1_2 = view_manager_2()->GetNodeById(node1->id()); |
619 node1_2->SetBounds(gfx::Rect(1024, 768)); | 621 node1_2->SetBounds(gfx::Rect(1024, 768)); |
620 // Bounds change should have been rejected. | 622 // Bounds change should have been rejected. |
621 EXPECT_EQ(node1->bounds(), node1_2->bounds()); | 623 EXPECT_EQ(node1->bounds(), node1_2->bounds()); |
622 } | 624 } |
623 | 625 |
624 // Verifies that a node can only be destroyed by the connection that created it. | 626 // Verifies that a node can only be destroyed by the connection that created it. |
625 TEST_F(ViewManagerTest, DestroySecurity) { | 627 TEST_F(ViewManagerTest, DISABLED_DestroySecurity) { |
626 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); | 628 ViewTreeNode* node1 = CreateNodeInParent(view_manager_1()->tree()); |
627 WaitForTreeSizeToMatch(view_manager_2()->tree(), 3); | 629 WaitForTreeSizeToMatch(view_manager_2()->tree(), 3); |
628 | 630 |
629 ViewTreeNode* node1_2 = view_manager_2()->GetNodeById(node1->id()); | 631 ViewTreeNode* node1_2 = view_manager_2()->GetNodeById(node1->id()); |
630 NodeTracker tracker2(node1_2); | 632 NodeTracker tracker2(node1_2); |
631 node1_2->Destroy(); | 633 node1_2->Destroy(); |
632 // Node should not have been destroyed. | 634 // Node should not have been destroyed. |
633 EXPECT_TRUE(tracker2.is_valid()); | 635 EXPECT_TRUE(tracker2.is_valid()); |
634 | 636 |
635 NodeTracker tracker1(node1); | 637 NodeTracker tracker1(node1); |
636 node1->Destroy(); | 638 node1->Destroy(); |
637 EXPECT_FALSE(tracker1.is_valid()); | 639 EXPECT_FALSE(tracker1.is_valid()); |
638 } | 640 } |
639 | 641 |
640 } // namespace view_manager | 642 } // namespace view_manager |
641 } // namespace mojo | 643 } // namespace mojo |
OLD | NEW |