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

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

Issue 308803002: Change type of interface created by mojo:view_manager (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleanup 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/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
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
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
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
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
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
OLDNEW
« no previous file with comments | « mojo/mojo_services.gypi ('k') | mojo/services/public/interfaces/view_manager/view_manager.mojom » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698