| Index: trunk/src/mojo/services/view_manager/view_manager_connection_unittest.cc
|
| ===================================================================
|
| --- trunk/src/mojo/services/view_manager/view_manager_connection_unittest.cc (revision 266161)
|
| +++ trunk/src/mojo/services/view_manager/view_manager_connection_unittest.cc (working copy)
|
| @@ -53,11 +53,6 @@
|
| return NodeIdToTransportId(NodeId(connection_id, node_id));
|
| }
|
|
|
| -// Creates an id used for transport from the specified parameters.
|
| -uint32_t CreateViewId(uint16_t connection_id, uint16_t view_id) {
|
| - return ViewIdToTransportId(ViewId(connection_id, view_id));
|
| -}
|
| -
|
| // Creates a node with the specified id. Returns true on success. Blocks until
|
| // we get back result from server.
|
| bool CreateNode(ViewManager* view_manager, uint16_t id) {
|
| @@ -67,19 +62,6 @@
|
| return result;
|
| }
|
|
|
| -// TODO(sky): make a macro for these functions, they are all the same.
|
| -
|
| -// Deletes a node, blocking until done.
|
| -bool DeleteNode(ViewManager* view_manager,
|
| - uint32_t node_id,
|
| - int32_t change_id) {
|
| - bool result = false;
|
| - view_manager->DeleteNode(node_id, change_id,
|
| - base::Bind(&BooleanCallback, &result));
|
| - DoRunLoop();
|
| - return result;
|
| -}
|
| -
|
| // Adds a node, blocking until done.
|
| bool AddNode(ViewManager* view_manager,
|
| uint32_t parent,
|
| @@ -103,28 +85,6 @@
|
| return result;
|
| }
|
|
|
| -// Creates a view with the specified id. Returns true on success. Blocks until
|
| -// we get back result from server.
|
| -bool CreateView(ViewManager* view_manager, uint16_t id) {
|
| - bool result = false;
|
| - view_manager->CreateView(id, base::Bind(&BooleanCallback, &result));
|
| - DoRunLoop();
|
| - return result;
|
| -}
|
| -
|
| -// Sets a view on the specified node. Returns true on success. Blocks until we
|
| -// get back result from server.
|
| -bool SetView(ViewManager* view_manager,
|
| - uint32_t node_id,
|
| - uint32_t view_id,
|
| - int32_t change_id) {
|
| - bool result = false;
|
| - view_manager->SetView(node_id, view_id, change_id,
|
| - base::Bind(&BooleanCallback, &result));
|
| - DoRunLoop();
|
| - return result;
|
| -}
|
| -
|
| } // namespace
|
|
|
| typedef std::vector<std::string> Changes;
|
| @@ -159,26 +119,12 @@
|
| change_id, NodeIdToString(node).c_str(),
|
| NodeIdToString(new_parent).c_str(),
|
| NodeIdToString(old_parent).c_str()));
|
| - QuitIfNecessary();
|
| + if (quit_count_ > 0) {
|
| + if (--quit_count_ == 0)
|
| + current_run_loop->Quit();
|
| + }
|
| }
|
| - virtual void OnNodeViewReplaced(uint32_t node,
|
| - uint32_t new_view_id,
|
| - uint32_t old_view_id,
|
| - int32_t change_id) OVERRIDE {
|
| - changes_.push_back(
|
| - base::StringPrintf(
|
| - "change_id=%d node=%s new_view=%s old_view=%s",
|
| - change_id, NodeIdToString(node).c_str(),
|
| - NodeIdToString(new_view_id).c_str(),
|
| - NodeIdToString(old_view_id).c_str()));
|
| - QuitIfNecessary();
|
| - }
|
|
|
| - void QuitIfNecessary() {
|
| - if (quit_count_ > 0 && --quit_count_ == 0)
|
| - current_run_loop->Quit();
|
| - }
|
| -
|
| uint16_t id_;
|
|
|
| // Used to determine when/if to quit the run loop.
|
| @@ -216,11 +162,6 @@
|
| DoRunLoop();
|
| }
|
|
|
| - void DestroySecondConnection() {
|
| - connection2_.reset();
|
| - view_manager2_.reset();
|
| - }
|
| -
|
| Environment env_;
|
| base::MessageLoop loop_;
|
| RootNodeManager root_node_manager_;
|
| @@ -238,9 +179,7 @@
|
|
|
| // Verifies client gets a valid id.
|
| TEST_F(ViewManagerConnectionTest, ValidId) {
|
| - // All these tests assume 1 for the client id. The only real assertion here is
|
| - // the client id is not zero, but adding this as rest of code here assumes 1.
|
| - EXPECT_EQ(1, client_.id());
|
| + EXPECT_NE(0, client_.id());
|
| }
|
|
|
| // Verifies two clients/connections get different ids.
|
| @@ -333,6 +272,7 @@
|
| TEST_F(ViewManagerConnectionTest, AddToRoot) {
|
| ASSERT_TRUE(CreateNode(view_manager_.get(), 21));
|
| ASSERT_TRUE(CreateNode(view_manager_.get(), 3));
|
| +
|
| EXPECT_TRUE(client_.GetAndClearChanges().empty());
|
|
|
| // Make 3 a child of 21.
|
| @@ -362,165 +302,6 @@
|
| }
|
| }
|
|
|
| -// Verifies DeleteNode works.
|
| -TEST_F(ViewManagerConnectionTest, DeleteNode) {
|
| - ASSERT_TRUE(CreateNode(view_manager_.get(), 1));
|
| - ASSERT_TRUE(CreateNode(view_manager_.get(), 2));
|
| - EXPECT_TRUE(client_.GetAndClearChanges().empty());
|
| -
|
| - // Make 2 a child of 1.
|
| - {
|
| - AllocationScope scope;
|
| - ASSERT_TRUE(AddNode(view_manager_.get(),
|
| - CreateNodeId(client_.id(), 1),
|
| - CreateNodeId(client_.id(), 2),
|
| - 11));
|
| - Changes changes(client_.GetAndClearChanges());
|
| - ASSERT_EQ(1u, changes.size());
|
| - EXPECT_EQ("change_id=11 node=1,2 new_parent=1,1 old_parent=null",
|
| - changes[0]);
|
| - }
|
| -
|
| - // Add 1 to the root
|
| - {
|
| - AllocationScope scope;
|
| - ASSERT_TRUE(AddNode(view_manager_.get(),
|
| - CreateNodeId(0, 1),
|
| - CreateNodeId(client_.id(), 1),
|
| - 101));
|
| - Changes changes(client_.GetAndClearChanges());
|
| - ASSERT_EQ(1u, changes.size());
|
| - EXPECT_EQ("change_id=101 node=1,1 new_parent=0,1 old_parent=null",
|
| - changes[0]);
|
| - }
|
| -
|
| - // Delete 1.
|
| - {
|
| - AllocationScope scope;
|
| - ASSERT_TRUE(DeleteNode(view_manager_.get(),
|
| - CreateNodeId(client_.id(), 1),
|
| - 121));
|
| - Changes changes(client_.GetAndClearChanges());
|
| - ASSERT_EQ(2u, changes.size());
|
| - EXPECT_EQ("change_id=121 node=1,1 new_parent=null old_parent=0,1",
|
| - changes[0]);
|
| - EXPECT_EQ("change_id=121 node=1,2 new_parent=null old_parent=1,1",
|
| - changes[1]);
|
| - }
|
| -}
|
| -
|
| -// Assertions around setting a view.
|
| -TEST_F(ViewManagerConnectionTest, SetView) {
|
| - ASSERT_TRUE(CreateNode(view_manager_.get(), 1));
|
| - ASSERT_TRUE(CreateNode(view_manager_.get(), 2));
|
| - ASSERT_TRUE(CreateView(view_manager_.get(), 11));
|
| - EXPECT_TRUE(client_.GetAndClearChanges().empty());
|
| -
|
| - // Set view 11 on node 1.
|
| - {
|
| - ASSERT_TRUE(SetView(view_manager_.get(),
|
| - CreateNodeId(client_.id(), 1),
|
| - CreateViewId(client_.id(), 11),
|
| - 21));
|
| - Changes changes(client_.GetAndClearChanges());
|
| - ASSERT_EQ(1u, changes.size());
|
| - EXPECT_EQ("change_id=21 node=1,1 new_view=1,11 old_view=null",
|
| - changes[0]);
|
| - }
|
| -
|
| - // Set view 11 on node 2.
|
| - {
|
| - ASSERT_TRUE(SetView(view_manager_.get(),
|
| - CreateNodeId(client_.id(), 2),
|
| - CreateViewId(client_.id(), 11),
|
| - 22));
|
| - Changes changes(client_.GetAndClearChanges());
|
| - ASSERT_EQ(2u, changes.size());
|
| - EXPECT_EQ("change_id=22 node=1,1 new_view=null old_view=1,11",
|
| - changes[0]);
|
| - EXPECT_EQ("change_id=22 node=1,2 new_view=1,11 old_view=null",
|
| - changes[1]);
|
| - }
|
| -}
|
| -
|
| -// Verifies deleting a node with a view sends correct notifications.
|
| -TEST_F(ViewManagerConnectionTest, DeleteNodeWithView) {
|
| - ASSERT_TRUE(CreateNode(view_manager_.get(), 1));
|
| - ASSERT_TRUE(CreateNode(view_manager_.get(), 2));
|
| - ASSERT_TRUE(CreateView(view_manager_.get(), 11));
|
| - EXPECT_TRUE(client_.GetAndClearChanges().empty());
|
| -
|
| - // Set view 11 on node 1.
|
| - ASSERT_TRUE(SetView(view_manager_.get(),
|
| - CreateNodeId(client_.id(), 1),
|
| - CreateViewId(client_.id(), 11),
|
| - 21));
|
| - client_.GetAndClearChanges();
|
| -
|
| - // Delete node 1.
|
| - {
|
| - ASSERT_TRUE(DeleteNode(view_manager_.get(),
|
| - CreateNodeId(client_.id(), 1),
|
| - 121));
|
| - Changes changes(client_.GetAndClearChanges());
|
| - ASSERT_EQ(1u, changes.size());
|
| - EXPECT_EQ("change_id=121 node=1,1 new_view=null old_view=1,11",
|
| - changes[0]);
|
| - }
|
| -
|
| - // Set view 11 on node 2.
|
| - {
|
| - ASSERT_TRUE(SetView(view_manager_.get(),
|
| - CreateNodeId(client_.id(), 2),
|
| - CreateViewId(client_.id(), 11),
|
| - 22));
|
| - Changes changes(client_.GetAndClearChanges());
|
| - ASSERT_EQ(1u, changes.size());
|
| - EXPECT_EQ("change_id=22 node=1,2 new_view=1,11 old_view=null", changes[0]);
|
| - }
|
| -}
|
| -
|
| -// Sets view from one connection on another.
|
| -TEST_F(ViewManagerConnectionTest, SetViewFromSecondConnection) {
|
| - EstablishSecondConnection();
|
| -
|
| - // Create two nodes in first connection.
|
| - ASSERT_TRUE(CreateNode(view_manager_.get(), 1));
|
| - ASSERT_TRUE(CreateNode(view_manager_.get(), 2));
|
| -
|
| - EXPECT_TRUE(client_.GetAndClearChanges().empty());
|
| - EXPECT_TRUE(client2_.GetAndClearChanges().empty());
|
| -
|
| - // Create a view in the second connection.
|
| - ASSERT_TRUE(CreateView(view_manager2_.get(), 51));
|
| -
|
| - // Attach view to node 1 in the first connection.
|
| - {
|
| - ASSERT_TRUE(SetView(view_manager2_.get(),
|
| - CreateNodeId(client_.id(), 1),
|
| - CreateViewId(client2_.id(), 51),
|
| - 22));
|
| - Changes changes(client_.GetAndClearChanges());
|
| - ASSERT_EQ(1u, changes.size());
|
| - EXPECT_EQ("change_id=0 node=1,1 new_view=2,51 old_view=null", changes[0]);
|
| -
|
| - changes = client2_.GetAndClearChanges();
|
| - ASSERT_EQ(1u, changes.size());
|
| - EXPECT_EQ("change_id=22 node=1,1 new_view=2,51 old_view=null", changes[0]);
|
| - }
|
| -
|
| - // Shutdown the second connection and verify view is removed.
|
| - {
|
| - DestroySecondConnection();
|
| - client_.set_quit_count(1);
|
| - DoRunLoop();
|
| -
|
| - Changes changes(client_.GetAndClearChanges());
|
| - ASSERT_EQ(1u, changes.size());
|
| - EXPECT_EQ("change_id=0 node=1,1 new_view=null old_view=2,51", changes[0]);
|
| - }
|
| -}
|
| -
|
| } // namespace view_manager
|
| } // namespace services
|
| } // namespace mojo
|
|
|