diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-17 19:08:15 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-17 19:08:15 +0000 |
commit | c785414184a625167d66155a6943d9e86f5f6e63 (patch) | |
tree | 70be8582f7e8215dd91f333cf1a378310b0fd9cc | |
parent | 925eb5037abd06906478d6662f1d276214825f5f (diff) | |
download | chromium_src-c785414184a625167d66155a6943d9e86f5f6e63.zip chromium_src-c785414184a625167d66155a6943d9e86f5f6e63.tar.gz chromium_src-c785414184a625167d66155a6943d9e86f5f6e63.tar.bz2 |
Nukes change_ids from view manager
change_ids are more trouble then they are worth. I'm going to try
something else for resolving conflicts.
BUG=389339
TEST=covered by tests
R=ben@chromium.org
Review URL: https://codereview.chromium.org/397263004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@283830 0039d316-1c4b-4281-b951-d872f2087c98
10 files changed, 186 insertions, 504 deletions
diff --git a/mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.cc b/mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.cc index 4a69ff0..76bf054 100644 --- a/mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.cc +++ b/mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.cc @@ -133,10 +133,6 @@ class ViewManagerTransaction { ViewManagerService* service() { return client_->service_; } - Id GetAndAdvanceNextServerChangeId() { - return client_->next_server_change_id_++; - } - // TODO(sky): nuke this and covert all to new one, then rename // ActionCompletedCallbackWithErrorCode to ActionCompletedCallback. base::Callback<void(bool)> ActionCompletedCallback() { @@ -246,9 +242,7 @@ class DestroyNodeTransaction : public ViewManagerTransaction { private: // Overridden from ViewManagerTransaction: virtual void DoCommit() OVERRIDE { - service()->DeleteNode(node_id_, - GetAndAdvanceNextServerChangeId(), - ActionCompletedCallback()); + service()->DeleteNode(node_id_, ActionCompletedCallback()); } virtual void DoActionCompleted(bool success) OVERRIDE { // TODO(beng): recovery? @@ -272,10 +266,7 @@ class AddChildTransaction : public ViewManagerTransaction { private: // Overridden from ViewManagerTransaction: virtual void DoCommit() OVERRIDE { - service()->AddNode(parent_id_, - child_id_, - GetAndAdvanceNextServerChangeId(), - ActionCompletedCallback()); + service()->AddNode(parent_id_, child_id_, ActionCompletedCallback()); } virtual void DoActionCompleted(bool success) OVERRIDE { @@ -299,10 +290,7 @@ class RemoveChildTransaction : public ViewManagerTransaction { private: // Overridden from ViewManagerTransaction: virtual void DoCommit() OVERRIDE { - service()->RemoveNodeFromParent( - child_id_, - GetAndAdvanceNextServerChangeId(), - ActionCompletedCallback()); + service()->RemoveNodeFromParent(child_id_, ActionCompletedCallback()); } virtual void DoActionCompleted(bool success) OVERRIDE { @@ -333,7 +321,6 @@ class ReorderNodeTransaction : public ViewManagerTransaction { service()->ReorderNode(node_id_, relative_id_, direction_, - GetAndAdvanceNextServerChangeId(), ActionCompletedCallback()); } @@ -478,7 +465,6 @@ class EmbedTransaction : public ViewManagerTransaction { private: // Overridden from ViewManagerTransaction: virtual void DoCommit() OVERRIDE { - GetAndAdvanceNextServerChangeId(); service()->Embed(url_, node_id_, ActionCompletedCallback()); } virtual void DoActionCompleted(bool success) OVERRIDE { @@ -542,7 +528,6 @@ ViewManagerClientImpl::ViewManagerClientImpl(ApplicationConnection* connection, : connected_(false), connection_id_(0), next_id_(1), - next_server_change_id_(0), delegate_(delegate), dispatcher_(NULL) {} @@ -733,12 +718,10 @@ void ViewManagerClientImpl::OnConnectionEstablished() { void ViewManagerClientImpl::OnViewManagerConnectionEstablished( ConnectionSpecificId connection_id, const String& creator_url, - Id next_server_change_id, Array<NodeDataPtr> nodes) { connected_ = true; connection_id_ = connection_id; creator_url_ = TypeConverter<String, std::string>::ConvertFrom(creator_url); - next_server_change_id_ = next_server_change_id; DCHECK(pending_transactions_.empty()); AddRoot(BuildNodeTree(this, nodes)); @@ -748,11 +731,6 @@ void ViewManagerClientImpl::OnRootAdded(Array<NodeDataPtr> nodes) { AddRoot(BuildNodeTree(this, nodes)); } -void ViewManagerClientImpl::OnServerChangeIdAdvanced( - Id next_server_change_id) { - next_server_change_id_ = next_server_change_id; -} - void ViewManagerClientImpl::OnNodeBoundsChanged(Id node_id, RectPtr old_bounds, RectPtr new_bounds) { @@ -765,10 +743,7 @@ void ViewManagerClientImpl::OnNodeHierarchyChanged( Id node_id, Id new_parent_id, Id old_parent_id, - Id server_change_id, mojo::Array<NodeDataPtr> nodes) { - next_server_change_id_ = server_change_id + 1; - BuildNodeTree(this, nodes); Node* new_parent = GetNodeById(new_parent_id); @@ -782,20 +757,14 @@ void ViewManagerClientImpl::OnNodeHierarchyChanged( void ViewManagerClientImpl::OnNodeReordered(Id node_id, Id relative_node_id, - OrderDirection direction, - Id server_change_id) { - next_server_change_id_ = server_change_id + 1; - + OrderDirection direction) { Node* node = GetNodeById(node_id); Node* relative_node = GetNodeById(relative_node_id); - if (node && relative_node) { + if (node && relative_node) NodePrivate(node).LocalReorder(relative_node, direction); - } } -void ViewManagerClientImpl::OnNodeDeleted(Id node_id, Id server_change_id) { - next_server_change_id_ = server_change_id + 1; - +void ViewManagerClientImpl::OnNodeDeleted(Id node_id) { Node* node = GetNodeById(node_id); if (node) NodePrivate(node).LocalDestroy(); diff --git a/mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.h b/mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.h index 8383648..69715b0 100644 --- a/mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.h +++ b/mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.h @@ -102,23 +102,19 @@ class ViewManagerClientImpl : public ViewManager, virtual void OnViewManagerConnectionEstablished( ConnectionSpecificId connection_id, const String& creator_url, - Id next_server_change_id, Array<NodeDataPtr> nodes) OVERRIDE; virtual void OnRootAdded(Array<NodeDataPtr> nodes) OVERRIDE; - virtual void OnServerChangeIdAdvanced(Id next_server_change_id) OVERRIDE; virtual void OnNodeBoundsChanged(Id node_id, RectPtr old_bounds, RectPtr new_bounds) OVERRIDE; virtual void OnNodeHierarchyChanged(Id node_id, Id new_parent_id, Id old_parent_id, - Id server_change_id, Array<NodeDataPtr> nodes) OVERRIDE; virtual void OnNodeReordered(Id node_id, Id relative_node_id, - OrderDirection direction, - Id server_change_id) OVERRIDE; - virtual void OnNodeDeleted(Id node_id, Id server_change_id) OVERRIDE; + OrderDirection direction) OVERRIDE; + virtual void OnNodeDeleted(Id node_id) OVERRIDE; virtual void OnNodeViewReplaced(Id node, Id new_view_id, Id old_view_id) OVERRIDE; @@ -143,7 +139,6 @@ class ViewManagerClientImpl : public ViewManager, bool connected_; ConnectionSpecificId connection_id_; ConnectionSpecificId next_id_; - Id next_server_change_id_; std::string creator_url_; diff --git a/mojo/services/public/interfaces/view_manager/view_manager.mojom b/mojo/services/public/interfaces/view_manager/view_manager.mojom index e65cc6c..caf57a9 100644 --- a/mojo/services/public/interfaces/view_manager/view_manager.mojom +++ b/mojo/services/public/interfaces/view_manager/view_manager.mojom @@ -20,7 +20,6 @@ enum ErrorCode { NONE, VALUE_IN_USE, ILLEGAL_ARGUMENT, - UNEXPECTED_CHANGE_ID, }; // ViewManagerInitService is responsible for launching the client that controls @@ -30,12 +29,6 @@ interface ViewManagerInitService { EmbedRoot(string url) => (bool success); }; -// Functions that mutate the hierarchy take a change id. This is an ever -// increasing integer used to identify the change. Every hierarchy change -// increases this value. The server only accepts changes where the supplied -// |server_change_id| matches the expected next value. This ensures changes are -// made in a well defined order. -// // Nodes and Views are identified by a uint32. The upper 16 bits are the // connection id, and the lower 16 the id assigned by the client. // @@ -55,7 +48,7 @@ interface ViewManagerService { // Deletes a node. This does not recurse. No hierarchy change notifications // are sent as a result of this. Only the connection that created the node can // delete it. - DeleteNode(uint32 node_id, uint32 change_id) => (bool success); + DeleteNode(uint32 node_id) => (bool success); // Sets the specified bounds of the specified node. SetNodeBounds(uint32 node_id, mojo.Rect bounds) => (bool success); @@ -65,30 +58,25 @@ interface ViewManagerService { // any of their roots. SetNodeVisibility(uint32 node_id, bool visible) => (bool success); - // Reparents a node. See description above class for details of |change_id|. + // Reparents a node. // This fails for any of the following reasons: - // . |server_change_id| is not the expected id. // . |parent| or |child| does not identify a valid node. // . |child| is an ancestor of |parent|. // . |child| is already a child of |parent|. // // This may result in a connection getting OnNodeDeleted(). See // RemoveNodeFromParent for details. - AddNode(uint32 parent, - uint32 child, - uint32 server_change_id) => (bool success); + AddNode(uint32 parent, uint32 child) => (bool success); - // Removes a view from its current parent. See description above class for - // details of |change_id|. This fails if the node is not valid, - // |server_change_id| doesn't match, or the node already has no parent. + // Removes a view from its current parent. This fails if the node is not + // valid, |server_change_id| doesn't match, or the node already has no parent. // // Removing a node from a parent may result in OnNodeDeleted() being sent to // other connections. For example, connection A has nodes 1 and 2, with 2 a // child of 1. Connection B has a root 1. If 2 is removed from 1 then B gets // OnNodeDeleted(). This is done as node 2 is effectively no longer visible to // connection B. - RemoveNodeFromParent(uint32 node_id, - uint32 server_change_id) => (bool success); + RemoveNodeFromParent(uint32 node_id) => (bool success); // Reorders a node in its parent, relative to |relative_node_id| according to // |direction|. @@ -96,8 +84,7 @@ interface ViewManagerService { // children. ReorderNode(uint32 node_id, uint32 relative_node_id, - OrderDirection direction, - uint32 server_change_id) => (bool success); + OrderDirection direction) => (bool success); // Returns the nodes comprising the tree starting at |node_id|. |node_id| is // the first result in the return value, unless |node_id| is invalid, in which @@ -155,26 +142,16 @@ interface ViewManagerService { [Client=ViewManagerService] interface ViewManagerClient { // Invoked once the connection has been established. |connection_id| is the id - // that uniquely identifies this connection. |next_server_change_id| is the - // id of the next change the server is expecting. |nodes| are the nodes - // parented to the root. + // that uniquely identifies this connection. |nodes| are the nodes parented to + // the root. OnViewManagerConnectionEstablished(uint16 connection_id, string creator_url, - uint32 next_server_change_id, NodeData[] nodes); // See description of ViewManagerService::Embed() for details as to when // this is invoked. OnRootAdded(NodeData[] nodes); - // This is sent to clients when a change is made to the server that results - // in the |server_change_id| changing but the client isn't notified. This is - // not sent if the client receives a callback giving a new - // |server_change_id|. For example, if a client 1 changes the hierarchy in - // some way but client 2 isn't notified of the change, then client 2 gets - // OnServerChangeIdAdvanced(). - OnServerChangeIdAdvanced(uint32 next_server_change_id); - // Invoked when a node's bounds have changed. OnNodeBoundsChanged(uint32 node, mojo.Rect old_bounds, mojo.Rect new_bounds); @@ -187,17 +164,15 @@ interface ViewManagerClient { OnNodeHierarchyChanged(uint32 node, uint32 new_parent, uint32 old_parent, - uint32 server_change_id, NodeData[] nodes); // Invoked when the order of nodes within a parent changes. OnNodeReordered(uint32 node_id, uint32 relative_node_id, - OrderDirection direction, - uint32 server_change_id); + OrderDirection direction); // Invoked when a node is deleted. - OnNodeDeleted(uint32 node, uint32 server_change_id); + OnNodeDeleted(uint32 node); // Invoked when the view associated with a node is replaced by another view. // 0 is used to identify a null view. diff --git a/mojo/services/view_manager/root_node_manager.cc b/mojo/services/view_manager/root_node_manager.cc index 1b19bf5..fe608e8 100644 --- a/mojo/services/view_manager/root_node_manager.cc +++ b/mojo/services/view_manager/root_node_manager.cc @@ -20,11 +20,9 @@ namespace service { RootNodeManager::ScopedChange::ScopedChange( ViewManagerServiceImpl* connection, RootNodeManager* root, - RootNodeManager::ChangeType change_type, bool is_delete_node) : root_(root), connection_id_(connection->id()), - change_type_(change_type), is_delete_node_(is_delete_node) { root_->PrepareForChange(this); } @@ -33,10 +31,6 @@ RootNodeManager::ScopedChange::~ScopedChange() { root_->FinishChange(); } -void RootNodeManager::ScopedChange::SendServerChangeIdAdvanced() { - root_->SendServerChangeIdAdvanced(); -} - RootNodeManager::Context::Context() { // Pass in false as native viewport creates the PlatformEventSource. aura::Env::CreateInstance(false); @@ -52,7 +46,6 @@ RootNodeManager::RootNodeManager( const Callback<void()>& native_viewport_closed_callback) : app_connection_(app_connection), next_connection_id_(1), - next_server_change_id_(1), root_view_manager_(app_connection, this, view_manager_delegate, @@ -184,8 +177,7 @@ void RootNodeManager::ProcessNodeHierarchyChanged(const Node* node, for (ConnectionMap::iterator i = connection_map_.begin(); i != connection_map_.end(); ++i) { i->second->ProcessNodeHierarchyChanged( - node, new_parent, old_parent, next_server_change_id_, - IsChangeSource(i->first)); + node, new_parent, old_parent, IsChangeSource(i->first)); } } @@ -195,8 +187,7 @@ void RootNodeManager::ProcessNodeReorder(const Node* node, for (ConnectionMap::iterator i = connection_map_.begin(); i != connection_map_.end(); ++i) { i->second->ProcessNodeReorder( - node, relative_node, direction, next_server_change_id_, - IsChangeSource(i->first)); + node, relative_node, direction, IsChangeSource(i->first)); } } @@ -213,8 +204,7 @@ void RootNodeManager::ProcessNodeViewReplaced(const Node* node, void RootNodeManager::ProcessNodeDeleted(const NodeId& node) { for (ConnectionMap::iterator i = connection_map_.begin(); i != connection_map_.end(); ++i) { - i->second->ProcessNodeDeleted(node, next_server_change_id_, - IsChangeSource(i->first)); + i->second->ProcessNodeDeleted(node, IsChangeSource(i->first)); } } @@ -245,20 +235,9 @@ void RootNodeManager::PrepareForChange(ScopedChange* change) { void RootNodeManager::FinishChange() { // PrepareForChange/FinishChange should be balanced. CHECK(current_change_); - if (current_change_->change_type() == CHANGE_TYPE_ADVANCE_SERVER_CHANGE_ID) - next_server_change_id_++; current_change_ = NULL; } -void RootNodeManager::SendServerChangeIdAdvanced() { - CHECK(current_change_); - for (ConnectionMap::iterator i = connection_map_.begin(); - i != connection_map_.end(); ++i) { - if (!DidConnectionMessageClient(i->first)) - i->second->client()->OnServerChangeIdAdvanced(next_server_change_id_ + 1); - } -} - ViewManagerServiceImpl* RootNodeManager::EmbedImpl( const ConnectionSpecificId creator_id, const String& url, diff --git a/mojo/services/view_manager/root_node_manager.h b/mojo/services/view_manager/root_node_manager.h index 0b20fdc..d0a4b2f 100644 --- a/mojo/services/view_manager/root_node_manager.h +++ b/mojo/services/view_manager/root_node_manager.h @@ -38,25 +38,16 @@ class MOJO_VIEW_MANAGER_EXPORT RootNodeManager : public NodeDelegate, public aura::client::FocusChangeObserver { public: - // Used to indicate if the server id should be incremented after notifiying - // clients of the change. - enum ChangeType { - CHANGE_TYPE_ADVANCE_SERVER_CHANGE_ID, - CHANGE_TYPE_DONT_ADVANCE_SERVER_CHANGE_ID, - }; - // Create when a ViewManagerServiceImpl is about to make a change. Ensures // clients are notified of the correct change id. class ScopedChange { public: ScopedChange(ViewManagerServiceImpl* connection, RootNodeManager* root, - RootNodeManager::ChangeType change_type, bool is_delete_node); ~ScopedChange(); ConnectionSpecificId connection_id() const { return connection_id_; } - ChangeType change_type() const { return change_type_; } bool is_delete_node() const { return is_delete_node_; } // Marks the connection with the specified id as having seen a message. @@ -69,14 +60,9 @@ class MOJO_VIEW_MANAGER_EXPORT RootNodeManager return message_ids_.count(connection_id) > 0; } - // Sends OnServerChangeIdAdvanced() to all connections that have not yet - // been messaged. - void SendServerChangeIdAdvanced(); - private: RootNodeManager* root_; const ConnectionSpecificId connection_id_; - const ChangeType change_type_; const bool is_delete_node_; // See description of MarkConnectionAsMessaged/DidMessageConnection. @@ -93,10 +79,6 @@ class MOJO_VIEW_MANAGER_EXPORT RootNodeManager // Returns the id for the next ViewManagerServiceImpl. ConnectionSpecificId GetAndAdvanceNextConnectionId(); - Id next_server_change_id() const { - return next_server_change_id_; - } - void AddConnection(ViewManagerServiceImpl* connection); void RemoveConnection(ViewManagerServiceImpl* connection); @@ -185,9 +167,6 @@ class MOJO_VIEW_MANAGER_EXPORT RootNodeManager // Balances a call to PrepareForChange(). void FinishChange(); - // See description in ScopedChange. - void SendServerChangeIdAdvanced(); - // Returns true if the specified connection originated the current change. bool IsChangeSource(ConnectionSpecificId connection_id) const { return current_change_ && current_change_->connection_id() == connection_id; @@ -219,8 +198,6 @@ class MOJO_VIEW_MANAGER_EXPORT RootNodeManager // ID to use for next ViewManagerServiceImpl. ConnectionSpecificId next_connection_id_; - Id next_server_change_id_; - // Set of ViewManagerServiceImpls. ConnectionMap connection_map_; diff --git a/mojo/services/view_manager/test_change_tracker.cc b/mojo/services/view_manager/test_change_tracker.cc index 381e7e6..827a77d 100644 --- a/mojo/services/view_manager/test_change_tracker.cc +++ b/mojo/services/view_manager/test_change_tracker.cc @@ -39,11 +39,6 @@ std::string ChangeToDescription1(const Change& change) { case CHANGE_TYPE_ROOTS_ADDED: return "OnRootAdded"; - case CHANGE_TYPE_SERVER_CHANGE_ID_ADVANCED: - return base::StringPrintf( - "ServerChangeIdAdvanced %d", static_cast<int>(change.change_id)); - - case CHANGE_TYPE_NODE_BOUNDS_CHANGED: return base::StringPrintf( "BoundsChanged node=%s old_bounds=%s new_bounds=%s", @@ -53,23 +48,20 @@ std::string ChangeToDescription1(const Change& change) { case CHANGE_TYPE_NODE_HIERARCHY_CHANGED: return base::StringPrintf( - "HierarchyChanged change_id=%d node=%s new_parent=%s old_parent=%s", - static_cast<int>(change.change_id), + "HierarchyChanged node=%s new_parent=%s old_parent=%s", NodeIdToString(change.node_id).c_str(), NodeIdToString(change.node_id2).c_str(), NodeIdToString(change.node_id3).c_str()); case CHANGE_TYPE_NODE_REORDERED: return base::StringPrintf( - "Reordered change_id=%d node=%s relative=%s direction=%s", - static_cast<int>(change.change_id), + "Reordered node=%s relative=%s direction=%s", NodeIdToString(change.node_id).c_str(), NodeIdToString(change.node_id2).c_str(), DirectionToString(change.direction).c_str()); case CHANGE_TYPE_NODE_DELETED: - return base::StringPrintf("NodeDeleted change_id=%d node=%s", - static_cast<int>(change.change_id), + return base::StringPrintf("NodeDeleted node=%s", NodeIdToString(change.node_id).c_str()); case CHANGE_TYPE_VIEW_DELETED: @@ -125,7 +117,6 @@ void NodeDatasToTestNodes(const Array<NodeDataPtr>& data, Change::Change() : type(CHANGE_TYPE_CONNECTION_ESTABLISHED), connection_id(0), - change_id(0), node_id(0), node_id2(0), node_id3(0), @@ -148,12 +139,10 @@ TestChangeTracker::~TestChangeTracker() { void TestChangeTracker::OnViewManagerConnectionEstablished( ConnectionSpecificId connection_id, const String& creator_url, - Id next_server_change_id, Array<NodeDataPtr> nodes) { Change change; change.type = CHANGE_TYPE_CONNECTION_ESTABLISHED; change.connection_id = connection_id; - change.change_id = next_server_change_id; change.creator_url = creator_url; NodeDatasToTestNodes(nodes, &change.nodes); AddChange(change); @@ -166,13 +155,6 @@ void TestChangeTracker::OnRootAdded(Array<NodeDataPtr> nodes) { AddChange(change); } -void TestChangeTracker::OnServerChangeIdAdvanced(Id change_id) { - Change change; - change.type = CHANGE_TYPE_SERVER_CHANGE_ID_ADVANCED; - change.change_id = change_id; - AddChange(change); -} - void TestChangeTracker::OnNodeBoundsChanged(Id node_id, RectPtr old_bounds, RectPtr new_bounds) { @@ -187,36 +169,31 @@ void TestChangeTracker::OnNodeBoundsChanged(Id node_id, void TestChangeTracker::OnNodeHierarchyChanged(Id node_id, Id new_parent_id, Id old_parent_id, - Id server_change_id, Array<NodeDataPtr> nodes) { Change change; change.type = CHANGE_TYPE_NODE_HIERARCHY_CHANGED; change.node_id = node_id; change.node_id2 = new_parent_id; change.node_id3 = old_parent_id; - change.change_id = server_change_id; NodeDatasToTestNodes(nodes, &change.nodes); AddChange(change); } void TestChangeTracker::OnNodeReordered(Id node_id, Id relative_node_id, - OrderDirection direction, - Id server_change_id) { + OrderDirection direction) { Change change; change.type = CHANGE_TYPE_NODE_REORDERED; change.node_id = node_id; change.node_id2 = relative_node_id; change.direction = direction; - change.change_id = server_change_id; AddChange(change); } -void TestChangeTracker::OnNodeDeleted(Id node_id, Id server_change_id) { +void TestChangeTracker::OnNodeDeleted(Id node_id) { Change change; change.type = CHANGE_TYPE_NODE_DELETED; change.node_id = node_id; - change.change_id = server_change_id; AddChange(change); } diff --git a/mojo/services/view_manager/test_change_tracker.h b/mojo/services/view_manager/test_change_tracker.h index 6021611..d597c6f 100644 --- a/mojo/services/view_manager/test_change_tracker.h +++ b/mojo/services/view_manager/test_change_tracker.h @@ -20,7 +20,6 @@ namespace service { enum ChangeType { CHANGE_TYPE_CONNECTION_ESTABLISHED, CHANGE_TYPE_ROOTS_ADDED, - CHANGE_TYPE_SERVER_CHANGE_ID_ADVANCED, CHANGE_TYPE_NODE_BOUNDS_CHANGED, CHANGE_TYPE_NODE_HIERARCHY_CHANGED, CHANGE_TYPE_NODE_REORDERED, @@ -48,7 +47,6 @@ struct Change { ChangeType type; ConnectionSpecificId connection_id; - Id change_id; std::vector<TestNode> nodes; Id node_id; Id node_id2; @@ -99,21 +97,17 @@ class TestChangeTracker { // ViewManagerClient function. void OnViewManagerConnectionEstablished(ConnectionSpecificId connection_id, const String& creator_url, - Id next_server_change_id, Array<NodeDataPtr> nodes); void OnRootAdded(Array<NodeDataPtr> nodes); - void OnServerChangeIdAdvanced(Id change_id); void OnNodeBoundsChanged(Id node_id, RectPtr old_bounds, RectPtr new_bounds); void OnNodeHierarchyChanged(Id node_id, Id new_parent_id, Id old_parent_id, - Id server_change_id, Array<NodeDataPtr> nodes); void OnNodeReordered(Id node_id, Id relative_node_id, - OrderDirection direction, - Id server_change_id); - void OnNodeDeleted(Id node_id, Id server_change_id); + OrderDirection direction); + void OnNodeDeleted(Id node_id); void OnViewDeleted(Id view_id); void OnNodeViewReplaced(Id node_id, Id new_view_id, Id old_view_id); void OnViewInputEvent(Id view_id, EventPtr event); diff --git a/mojo/services/view_manager/view_manager_service_impl.cc b/mojo/services/view_manager/view_manager_service_impl.cc index 793a4543..ee2c795 100644 --- a/mojo/services/view_manager/view_manager_service_impl.cc +++ b/mojo/services/view_manager/view_manager_service_impl.cc @@ -60,9 +60,7 @@ ViewManagerServiceImpl::~ViewManagerServiceImpl() { // Ditto the nodes. if (!node_map_.empty()) { - RootNodeManager::ScopedChange change( - this, root_node_manager_, - RootNodeManager::CHANGE_TYPE_ADVANCE_SERVER_CHANGE_ID, true); + RootNodeManager::ScopedChange change(this, root_node_manager_, true); while (!node_map_.empty()) delete node_map_.begin()->second; } @@ -115,7 +113,6 @@ void ViewManagerServiceImpl::ProcessNodeHierarchyChanged( const Node* node, const Node* new_parent, const Node* old_parent, - Id server_change_id, bool originated_change) { if (known_nodes_.count(NodeIdToTransportId(node->id())) > 0) { if (originated_change) @@ -124,8 +121,7 @@ void ViewManagerServiceImpl::ProcessNodeHierarchyChanged( // Node was a descendant of roots and is no longer, treat it as though the // node was deleted. RemoveFromKnown(node, NULL); - client()->OnNodeDeleted(NodeIdToTransportId(node->id()), - server_change_id); + client()->OnNodeDeleted(NodeIdToTransportId(node->id())); root_node_manager_->OnConnectionMessagedClient(id_); return; } @@ -136,10 +132,6 @@ void ViewManagerServiceImpl::ProcessNodeHierarchyChanged( std::vector<const Node*> to_send; if (!ShouldNotifyOnHierarchyChange(node, &new_parent, &old_parent, &to_send)) { - if (root_node_manager_->IsProcessingChange()) { - client()->OnServerChangeIdAdvanced( - root_node_manager_->next_server_change_id() + 1); - } return; } const NodeId new_parent_id(new_parent ? new_parent->id() : NodeId()); @@ -151,14 +143,12 @@ void ViewManagerServiceImpl::ProcessNodeHierarchyChanged( client()->OnNodeHierarchyChanged(NodeIdToTransportId(node->id()), NodeIdToTransportId(new_parent_id), NodeIdToTransportId(old_parent_id), - server_change_id, NodesToNodeDatas(to_send)); } void ViewManagerServiceImpl::ProcessNodeReorder(const Node* node, const Node* relative_node, OrderDirection direction, - Id server_change_id, bool originated_change) { if (originated_change || !known_nodes_.count(NodeIdToTransportId(node->id())) || @@ -168,8 +158,7 @@ void ViewManagerServiceImpl::ProcessNodeReorder(const Node* node, client()->OnNodeReordered(NodeIdToTransportId(node->id()), NodeIdToTransportId(relative_node->id()), - direction, - server_change_id); + direction); } void ViewManagerServiceImpl::ProcessNodeViewReplaced( @@ -188,7 +177,6 @@ void ViewManagerServiceImpl::ProcessNodeViewReplaced( } void ViewManagerServiceImpl::ProcessNodeDeleted(const NodeId& node, - Id server_change_id, bool originated_change) { node_map_.erase(node.node_id); @@ -202,12 +190,10 @@ void ViewManagerServiceImpl::ProcessNodeDeleted(const NodeId& node, return; if (in_known) { - client()->OnNodeDeleted(NodeIdToTransportId(node), server_change_id); + client()->OnNodeDeleted(NodeIdToTransportId(node)); root_node_manager_->OnConnectionMessagedClient(id_); } else if (root_node_manager_->IsProcessingChange() && !root_node_manager_->DidConnectionMessageClient(id_)) { - client()->OnServerChangeIdAdvanced( - root_node_manager_->next_server_change_id() + 1); root_node_manager_->OnConnectionMessagedClient(id_); } } @@ -361,9 +347,7 @@ bool ViewManagerServiceImpl::DeleteNodeImpl(ViewManagerServiceImpl* source, Node* node = GetNode(node_id); if (!node) return false; - RootNodeManager::ScopedChange change( - source, root_node_manager_, - RootNodeManager::CHANGE_TYPE_ADVANCE_SERVER_CHANGE_ID, true); + RootNodeManager::ScopedChange change(source, root_node_manager_, true); delete node; return true; } @@ -374,9 +358,7 @@ bool ViewManagerServiceImpl::DeleteViewImpl(ViewManagerServiceImpl* source, View* view = GetView(view_id); if (!view) return false; - RootNodeManager::ScopedChange change( - source, root_node_manager_, - RootNodeManager::CHANGE_TYPE_DONT_ADVANCE_SERVER_CHANGE_ID, false); + RootNodeManager::ScopedChange change(source, root_node_manager_, false); if (view->node()) view->node()->SetView(NULL); view_map_.erase(view_id.view_id); @@ -391,9 +373,7 @@ bool ViewManagerServiceImpl::DeleteViewImpl(ViewManagerServiceImpl* source, bool ViewManagerServiceImpl::SetViewImpl(Node* node, const ViewId& view_id) { DCHECK(node); // CanSetView() should have verified node exists. View* view = GetView(view_id); - RootNodeManager::ScopedChange change( - this, root_node_manager_, - RootNodeManager::CHANGE_TYPE_DONT_ADVANCE_SERVER_CHANGE_ID, false); + RootNodeManager::ScopedChange change(this, root_node_manager_, false); node->SetView(view); return true; } @@ -457,8 +437,7 @@ void ViewManagerServiceImpl::RemoveRoot(const NodeId& node_id) { if (node_id.connection_id == id_) return; - client()->OnNodeDeleted(transport_node_id, - root_node_manager_->next_server_change_id()); + client()->OnNodeDeleted(transport_node_id); root_node_manager_->OnConnectionMessagedClient(id_); // This connection no longer knows about the node. Unparent any nodes that @@ -572,12 +551,10 @@ void ViewManagerServiceImpl::CreateNode( void ViewManagerServiceImpl::DeleteNode( Id transport_node_id, - Id server_change_id, const Callback<void(bool)>& callback) { const NodeId node_id(NodeIdFromTransportId(transport_node_id)); bool success = false; - if (server_change_id == root_node_manager_->next_server_change_id() && - CanDeleteNode(node_id)) { + if (CanDeleteNode(node_id)) { ViewManagerServiceImpl* connection = root_node_manager_->GetConnection( node_id.connection_id); success = connection && connection->DeleteNodeImpl(this, node_id); @@ -588,37 +565,27 @@ void ViewManagerServiceImpl::DeleteNode( void ViewManagerServiceImpl::AddNode( Id parent_id, Id child_id, - Id server_change_id, const Callback<void(bool)>& callback) { bool success = false; - if (server_change_id == root_node_manager_->next_server_change_id()) { - Node* parent = GetNode(NodeIdFromTransportId(parent_id)); - Node* child = GetNode(NodeIdFromTransportId(child_id)); - if (CanAddNode(parent, child)) { - success = true; - RootNodeManager::ScopedChange change( - this, root_node_manager_, - RootNodeManager::CHANGE_TYPE_ADVANCE_SERVER_CHANGE_ID, false); - parent->Add(child); - } + Node* parent = GetNode(NodeIdFromTransportId(parent_id)); + Node* child = GetNode(NodeIdFromTransportId(child_id)); + if (CanAddNode(parent, child)) { + success = true; + RootNodeManager::ScopedChange change(this, root_node_manager_, false); + parent->Add(child); } callback.Run(success); } void ViewManagerServiceImpl::RemoveNodeFromParent( Id node_id, - Id server_change_id, const Callback<void(bool)>& callback) { bool success = false; - if (server_change_id == root_node_manager_->next_server_change_id()) { - Node* node = GetNode(NodeIdFromTransportId(node_id)); - if (CanRemoveNodeFromParent(node)) { - success = true; - RootNodeManager::ScopedChange change( - this, root_node_manager_, - RootNodeManager::CHANGE_TYPE_ADVANCE_SERVER_CHANGE_ID, false); - node->GetParent()->Remove(node); - } + Node* node = GetNode(NodeIdFromTransportId(node_id)); + if (CanRemoveNodeFromParent(node)) { + success = true; + RootNodeManager::ScopedChange change(this, root_node_manager_, false); + node->GetParent()->Remove(node); } callback.Run(success); } @@ -626,20 +593,15 @@ void ViewManagerServiceImpl::RemoveNodeFromParent( void ViewManagerServiceImpl::ReorderNode(Id node_id, Id relative_node_id, OrderDirection direction, - Id server_change_id, const Callback<void(bool)>& callback) { bool success = false; - if (server_change_id == root_node_manager_->next_server_change_id()) { - Node* node = GetNode(NodeIdFromTransportId(node_id)); - Node* relative_node = GetNode(NodeIdFromTransportId(relative_node_id)); - if (CanReorderNode(node, relative_node, direction)) { - success = true; - RootNodeManager::ScopedChange change( - this, root_node_manager_, - RootNodeManager::CHANGE_TYPE_ADVANCE_SERVER_CHANGE_ID, false); - node->GetParent()->Reorder(node, relative_node, direction); - root_node_manager_->ProcessNodeReorder(node, relative_node, direction); - } + Node* node = GetNode(NodeIdFromTransportId(node_id)); + Node* relative_node = GetNode(NodeIdFromTransportId(relative_node_id)); + if (CanReorderNode(node, relative_node, direction)) { + success = true; + RootNodeManager::ScopedChange change(this, root_node_manager_, false); + node->GetParent()->Reorder(node, relative_node, direction); + root_node_manager_->ProcessNodeReorder(node, relative_node, direction); } callback.Run(success); } @@ -740,9 +702,7 @@ void ViewManagerServiceImpl::SetNodeBounds( return; } - RootNodeManager::ScopedChange change( - this, root_node_manager_, - RootNodeManager::CHANGE_TYPE_DONT_ADVANCE_SERVER_CHANGE_ID, false); + RootNodeManager::ScopedChange change(this, root_node_manager_, false); gfx::Rect old_bounds = node->window()->bounds(); node->window()->SetBounds(bounds.To<gfx::Rect>()); callback.Run(true); @@ -777,9 +737,7 @@ void ViewManagerServiceImpl::Embed(const String& url, if ((connection_by_url != connection_with_node_as_root || (!connection_by_url && !connection_with_node_as_root)) && (!connection_by_url || !connection_by_url->HasRoot(node_id))) { - RootNodeManager::ScopedChange change( - this, root_node_manager_, - RootNodeManager::CHANGE_TYPE_ADVANCE_SERVER_CHANGE_ID, true); + RootNodeManager::ScopedChange change(this, root_node_manager_, true); // Never message the originating connection. root_node_manager_->OnConnectionMessagedClient(id_); if (connection_with_node_as_root) @@ -788,7 +746,6 @@ void ViewManagerServiceImpl::Embed(const String& url, connection_by_url->AddRoot(node_id); else root_node_manager_->Embed(id_, url, transport_node_id); - change.SendServerChangeIdAdvanced(); } else { success = false; } @@ -828,7 +785,6 @@ void ViewManagerServiceImpl::OnConnectionEstablished() { client()->OnViewManagerConnectionEstablished( id_, creator_url_, - root_node_manager_->next_server_change_id(), NodesToNodeDatas(to_send)); } diff --git a/mojo/services/view_manager/view_manager_service_impl.h b/mojo/services/view_manager/view_manager_service_impl.h index b9b6de27..00b61cb 100644 --- a/mojo/services/view_manager/view_manager_service_impl.h +++ b/mojo/services/view_manager/view_manager_service_impl.h @@ -84,20 +84,16 @@ class MOJO_VIEW_MANAGER_EXPORT ViewManagerServiceImpl void ProcessNodeHierarchyChanged(const Node* node, const Node* new_parent, const Node* old_parent, - Id server_change_id, bool originated_change); void ProcessNodeReorder(const Node* node, const Node* relative_node, OrderDirection direction, - Id server_change_id, bool originated_change); void ProcessNodeViewReplaced(const Node* node, const View* new_view, const View* old_view, bool originated_change); - void ProcessNodeDeleted(const NodeId& node, - Id server_change_id, - bool originated_change); + void ProcessNodeDeleted(const NodeId& node, bool originated_change); void ProcessViewDeleted(const ViewId& view, bool originated_change); void ProcessFocusChanged(const Node* focused_node, const Node* blurred_node, @@ -176,20 +172,16 @@ class MOJO_VIEW_MANAGER_EXPORT ViewManagerServiceImpl virtual void CreateNode(Id transport_node_id, const Callback<void(ErrorCode)>& callback) OVERRIDE; virtual void DeleteNode(Id transport_node_id, - Id server_change_id, const Callback<void(bool)>& callback) OVERRIDE; virtual void AddNode(Id parent_id, Id child_id, - Id server_change_id, const Callback<void(bool)>& callback) OVERRIDE; virtual void RemoveNodeFromParent( Id node_id, - Id server_change_id, const Callback<void(bool)>& callback) OVERRIDE; virtual void ReorderNode(Id node_id, Id relative_node_id, OrderDirection direction, - Id server_change_id, const Callback<void(bool)>& callback) OVERRIDE; virtual void GetNodeTree( Id node_id, diff --git a/mojo/services/view_manager/view_manager_unittest.cc b/mojo/services/view_manager/view_manager_unittest.cc index e630147..73153737 100644 --- a/mojo/services/view_manager/view_manager_unittest.cc +++ b/mojo/services/view_manager/view_manager_unittest.cc @@ -117,19 +117,19 @@ class ViewManagerProxy : public TestChangeTracker::Delegate { RunMainLoop(); return result; } - bool AddNode(Id parent, Id child, Id server_change_id) { + bool AddNode(Id parent, Id child) { changes_.clear(); bool result = false; - view_manager_->AddNode(parent, child, server_change_id, + view_manager_->AddNode(parent, child, base::Bind(&ViewManagerProxy::GotResult, base::Unretained(this), &result)); RunMainLoop(); return result; } - bool RemoveNodeFromParent(Id node_id, Id server_change_id) { + bool RemoveNodeFromParent(Id node_id) { changes_.clear(); bool result = false; - view_manager_->RemoveNodeFromParent(node_id, server_change_id, + view_manager_->RemoveNodeFromParent(node_id, base::Bind(&ViewManagerProxy::GotResult, base::Unretained(this), &result)); RunMainLoop(); @@ -137,12 +137,10 @@ class ViewManagerProxy : public TestChangeTracker::Delegate { } bool ReorderNode(Id node_id, Id relative_node_id, - OrderDirection direction, - Id server_change_id) { + OrderDirection direction) { changes_.clear(); bool result = false; view_manager_->ReorderNode(node_id, relative_node_id, direction, - server_change_id, base::Bind(&ViewManagerProxy::GotResult, base::Unretained(this), &result)); RunMainLoop(); @@ -183,11 +181,10 @@ class ViewManagerProxy : public TestChangeTracker::Delegate { RunMainLoop(); return result; } - bool DeleteNode(Id node_id, Id server_change_id) { + bool DeleteNode(Id node_id) { changes_.clear(); bool result = false; view_manager_->DeleteNode(node_id, - server_change_id, base::Bind(&ViewManagerProxy::GotResult, base::Unretained(this), &result)); RunMainLoop(); @@ -325,18 +322,13 @@ class TestViewManagerClientConnection virtual void OnViewManagerConnectionEstablished( ConnectionSpecificId connection_id, const String& creator_url, - Id next_server_change_id, Array<NodeDataPtr> nodes) OVERRIDE { tracker_.OnViewManagerConnectionEstablished( - connection_id, creator_url, next_server_change_id, nodes.Pass()); + connection_id, creator_url, nodes.Pass()); } virtual void OnRootAdded(Array<NodeDataPtr> nodes) OVERRIDE { tracker_.OnRootAdded(nodes.Pass()); } - virtual void OnServerChangeIdAdvanced( - Id next_server_change_id) OVERRIDE { - tracker_.OnServerChangeIdAdvanced(next_server_change_id); - } virtual void OnNodeBoundsChanged(Id node_id, RectPtr old_bounds, RectPtr new_bounds) OVERRIDE { @@ -345,20 +337,16 @@ class TestViewManagerClientConnection virtual void OnNodeHierarchyChanged(Id node, Id new_parent, Id old_parent, - Id server_change_id, Array<NodeDataPtr> nodes) OVERRIDE { - tracker_.OnNodeHierarchyChanged(node, new_parent, old_parent, - server_change_id, nodes.Pass()); + tracker_.OnNodeHierarchyChanged(node, new_parent, old_parent, nodes.Pass()); } virtual void OnNodeReordered(Id node_id, Id relative_node_id, - OrderDirection direction, - Id server_change_id) OVERRIDE { - tracker_.OnNodeReordered(node_id, relative_node_id, direction, - server_change_id); + OrderDirection direction) OVERRIDE { + tracker_.OnNodeReordered(node_id, relative_node_id, direction); } - virtual void OnNodeDeleted(Id node, Id server_change_id) OVERRIDE { - tracker_.OnNodeDeleted(node, server_change_id); + virtual void OnNodeDeleted(Id node) OVERRIDE { + tracker_.OnNodeDeleted(node); } virtual void OnViewDeleted(Id view) OVERRIDE { tracker_.OnViewDeleted(view); @@ -539,9 +527,6 @@ TEST_F(ViewManagerTest, 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, connection_->changes()[0].connection_id); - - // Change ids start at 1 as well. - EXPECT_EQ(static_cast<Id>(1), connection_->changes()[0].change_id); } // Verifies two clients/connections get different ids. @@ -554,9 +539,6 @@ TEST_F(ViewManagerTest, TwoClientsGetDifferentConnectionIds) { // tests are written assuming that is the case. The key thing is the // connection ids of |connection_| and |connection2_| differ. EXPECT_EQ(2, connection2_->changes()[0].connection_id); - - // Change ids start at 1 as well. - EXPECT_EQ(static_cast<Id>(1), connection2_->changes()[0].change_id); } // Verifies client gets a valid id. @@ -570,9 +552,8 @@ TEST_F(ViewManagerTest, CreateNode) { EXPECT_TRUE(connection_->changes().empty()); // Can't create a node with a bogus connection id. - EXPECT_EQ( - ERROR_CODE_ILLEGAL_ARGUMENT, - connection_->CreateNodeWithErrorCode(BuildNodeId(2, 1))); + EXPECT_EQ(ERROR_CODE_ILLEGAL_ARGUMENT, + connection_->CreateNodeWithErrorCode(BuildNodeId(2, 1))); EXPECT_TRUE(connection_->changes().empty()); } @@ -581,36 +562,6 @@ TEST_F(ViewManagerTest, CreateViewFailsWithBogusConnectionId) { EXPECT_TRUE(connection_->changes().empty()); } -// Verifies hierarchy changes. -TEST_F(ViewManagerTest, AddRemoveNotify) { - ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); - ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 3))); - - ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); - - // Make 3 a child of 2. - { - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 3), 2)); - EXPECT_TRUE(connection_->changes().empty()); - - connection2_->DoRunLoopUntilChangesCount(1); - const Changes changes(ChangesToDescription1(connection2_->changes())); - ASSERT_EQ(1u, changes.size()); - EXPECT_EQ("ServerChangeIdAdvanced 3", changes[0]); - } - - // Remove 3 from its parent. - { - ASSERT_TRUE(connection_->RemoveNodeFromParent(BuildNodeId(1, 3), 3)); - EXPECT_TRUE(connection_->changes().empty()); - - connection2_->DoRunLoopUntilChangesCount(1); - const Changes changes(ChangesToDescription1(connection2_->changes())); - ASSERT_EQ(1u, changes.size()); - EXPECT_EQ("ServerChangeIdAdvanced 4", changes[0]); - } -} - // Verifies AddNode fails when node is already in position. TEST_F(ViewManagerTest, AddNodeWithNoChange) { ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); @@ -619,19 +570,10 @@ TEST_F(ViewManagerTest, AddNodeWithNoChange) { ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); // Make 3 a child of 2. - { - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 3), 2)); - - connection2_->DoRunLoopUntilChangesCount(1); - const Changes changes(ChangesToDescription1(connection2_->changes())); - ASSERT_EQ(1u, changes.size()); - EXPECT_EQ("ServerChangeIdAdvanced 3", changes[0]); - } + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 3))); // Try again, this should fail. - { - EXPECT_FALSE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 3), 3)); - } + EXPECT_FALSE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 3))); } // Verifies AddNode fails when node is already in position. @@ -642,28 +584,10 @@ TEST_F(ViewManagerTest, AddAncestorFails) { ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); // Make 3 a child of 2. - { - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 3), 2)); - connection2_->DoRunLoopUntilChangesCount(1); - const Changes changes(ChangesToDescription1(connection2_->changes())); - ASSERT_EQ(1u, changes.size()); - EXPECT_EQ("ServerChangeIdAdvanced 3", changes[0]); - } + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 3))); // Try to make 2 a child of 3, this should fail since 2 is an ancestor of 3. - { - EXPECT_FALSE(connection_->AddNode(BuildNodeId(1, 3), BuildNodeId(1, 2), 3)); - } -} - -// Verifies adding with an invalid id fails. -TEST_F(ViewManagerTest, AddWithInvalidServerId) { - // Create two nodes. - ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); - ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); - - // Make 2 a child of 1. Supply an invalid change id, which should fail. - ASSERT_FALSE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 0)); + EXPECT_FALSE(connection_->AddNode(BuildNodeId(1, 3), BuildNodeId(1, 2))); } // Verifies adding to root sends right notifications. @@ -674,25 +598,17 @@ TEST_F(ViewManagerTest, AddToRoot) { ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); // Make 3 a child of 21. - { - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 21), BuildNodeId(1, 3), 2)); - - connection2_->DoRunLoopUntilChangesCount(1); - const Changes changes(ChangesToDescription1(connection2_->changes())); - ASSERT_EQ(1u, changes.size()); - EXPECT_EQ("ServerChangeIdAdvanced 3", changes[0]); - } + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 21), BuildNodeId(1, 3))); // Make 21 a child of 1. { - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 21), 3)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 21))); connection2_->DoRunLoopUntilChangesCount(1); const Changes changes(ChangesToDescription1(connection2_->changes())); ASSERT_EQ(1u, changes.size()); - EXPECT_EQ( - "HierarchyChanged change_id=3 node=1,21 new_parent=1,1 old_parent=null", - changes[0]); + EXPECT_EQ("HierarchyChanged node=1,21 new_parent=1,1 old_parent=null", + changes[0]); } } @@ -701,13 +617,13 @@ TEST_F(ViewManagerTest, NodeHierarchyChangedNodes) { ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 11))); // Make 11 a child of 2. - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 11), 1)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 11))); ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); // Make 2 a child of 1. { - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 3)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2))); // Client 2 should get a hierarchy change that includes the new nodes as it // has not yet seen them. @@ -715,8 +631,7 @@ TEST_F(ViewManagerTest, NodeHierarchyChangedNodes) { const Changes changes(ChangesToDescription1(connection2_->changes())); ASSERT_EQ(1u, changes.size()); EXPECT_EQ( - "HierarchyChanged change_id=3 node=1,2 new_parent=1,1 old_parent=null", - changes[0]); + "HierarchyChanged node=1,2 new_parent=1,1 old_parent=null", changes[0]); EXPECT_EQ("[node=1,2 parent=1,1 view=null]," "[node=1,11 parent=1,2 view=null]", ChangeNodeDescription(connection2_->changes())); @@ -724,58 +639,53 @@ TEST_F(ViewManagerTest, NodeHierarchyChangedNodes) { // Add 1 to the root. { - ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 4)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1))); // Client 2 should get a hierarchy change that includes the new nodes as it // has not yet seen them. connection2_->DoRunLoopUntilChangesCount(1); const Changes changes(ChangesToDescription1(connection2_->changes())); ASSERT_EQ(1u, changes.size()); - EXPECT_EQ( - "HierarchyChanged change_id=4 node=1,1 new_parent=null old_parent=null", - changes[0]); + EXPECT_EQ("HierarchyChanged node=1,1 new_parent=null old_parent=null", + changes[0]); EXPECT_EQ(std::string(), ChangeNodeDescription(connection2_->changes())); } // Remove 1 from its parent. { - ASSERT_TRUE(connection_->RemoveNodeFromParent(BuildNodeId(1, 1), 5)); + ASSERT_TRUE(connection_->RemoveNodeFromParent(BuildNodeId(1, 1))); EXPECT_TRUE(connection_->changes().empty()); connection2_->DoRunLoopUntilChangesCount(1); const Changes changes(ChangesToDescription1(connection2_->changes())); ASSERT_EQ(1u, changes.size()); - EXPECT_EQ( - "HierarchyChanged change_id=5 node=1,1 new_parent=null old_parent=null", - changes[0]); + EXPECT_EQ("HierarchyChanged node=1,1 new_parent=null old_parent=null", + changes[0]); } // Create another node, 111, parent it to 11. ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 111))); { - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 11), BuildNodeId(1, 111), - 6)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 11), BuildNodeId(1, 111))); connection2_->DoRunLoopUntilChangesCount(1); const Changes changes(ChangesToDescription1(connection2_->changes())); ASSERT_EQ(1u, changes.size()); - EXPECT_EQ( - "HierarchyChanged change_id=6 node=1,111 new_parent=1,11 " - "old_parent=null", changes[0]); + EXPECT_EQ("HierarchyChanged node=1,111 new_parent=1,11 old_parent=null", + changes[0]); EXPECT_EQ("[node=1,111 parent=1,11 view=null]", ChangeNodeDescription(connection2_->changes())); } // Reattach 1 to the root. { - ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 7)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1))); connection2_->DoRunLoopUntilChangesCount(1); const Changes changes(ChangesToDescription1(connection2_->changes())); ASSERT_EQ(1u, changes.size()); - EXPECT_EQ( - "HierarchyChanged change_id=7 node=1,1 new_parent=null old_parent=null", - changes[0]); + EXPECT_EQ("HierarchyChanged node=1,1 new_parent=null old_parent=null", + changes[0]); EXPECT_EQ(std::string(), ChangeNodeDescription(connection2_->changes())); } } @@ -789,38 +699,35 @@ TEST_F(ViewManagerTest, NodeHierarchyChangedAddingKnownToUnknown) { ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 21))); // Set up the hierarchy. - ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 11), 2)); - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 21), 3)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1))); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 11))); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 21))); ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); - { - EXPECT_EQ("[node=1,1 parent=null view=null]," - "[node=1,11 parent=1,1 view=null]", - ChangeNodeDescription(connection2_->changes())); - } + EXPECT_EQ("[node=1,1 parent=null view=null]," + "[node=1,11 parent=1,1 view=null]", + ChangeNodeDescription(connection2_->changes())); // Remove 11, should result in a delete (since 11 is no longer in connection // 2's root). { - ASSERT_TRUE(connection_->RemoveNodeFromParent(BuildNodeId(1, 11), 5)); + ASSERT_TRUE(connection_->RemoveNodeFromParent(BuildNodeId(1, 11))); connection2_->DoRunLoopUntilChangesCount(1); const Changes changes(ChangesToDescription1(connection2_->changes())); ASSERT_EQ(1u, changes.size()); - EXPECT_EQ("NodeDeleted change_id=5 node=1,11", changes[0]); + EXPECT_EQ("NodeDeleted node=1,11", changes[0]); } // Add 2 to 1. { - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 6)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2))); connection2_->DoRunLoopUntilChangesCount(1); const Changes changes(ChangesToDescription1(connection2_->changes())); ASSERT_EQ(1u, changes.size()); - EXPECT_EQ( - "HierarchyChanged change_id=6 node=1,2 new_parent=1,1 old_parent=null", - changes[0]); + EXPECT_EQ("HierarchyChanged node=1,2 new_parent=1,1 old_parent=null", + changes[0]); EXPECT_EQ("[node=1,2 parent=1,1 view=null]," "[node=1,21 parent=1,2 view=null]", ChangeNodeDescription(connection2_->changes())); @@ -844,67 +751,55 @@ TEST_F(ViewManagerTest, ReorderNode) { ASSERT_TRUE(connection_->CreateNode(node6_id)); ASSERT_TRUE(connection_->CreateNode(node7_id)); ASSERT_TRUE(connection_->CreateNode(node8_id)); - ASSERT_TRUE(connection_->AddNode(node1_id, node2_id, 1)); - ASSERT_TRUE(connection_->AddNode(node2_id, node6_id, 2)); - ASSERT_TRUE(connection_->AddNode(node1_id, node3_id, 3)); + ASSERT_TRUE(connection_->AddNode(node1_id, node2_id)); + ASSERT_TRUE(connection_->AddNode(node2_id, node6_id)); + ASSERT_TRUE(connection_->AddNode(node1_id, node3_id)); ASSERT_TRUE(connection_->AddNode( - NodeIdToTransportId(RootNodeId()), node4_id, 4)); + NodeIdToTransportId(RootNodeId()), node4_id)); ASSERT_TRUE(connection_->AddNode( - NodeIdToTransportId(RootNodeId()), node5_id, 5)); + NodeIdToTransportId(RootNodeId()), node5_id)); ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); { - connection_->ReorderNode(node2_id, node3_id, ORDER_DIRECTION_ABOVE, 7); + connection_->ReorderNode(node2_id, node3_id, ORDER_DIRECTION_ABOVE); connection2_->DoRunLoopUntilChangesCount(1); const Changes changes(ChangesToDescription1(connection2_->changes())); ASSERT_EQ(1u, changes.size()); - EXPECT_EQ( - "Reordered change_id=7 node=1,2 relative=1,3 direction=above", - changes[0]); + EXPECT_EQ("Reordered node=1,2 relative=1,3 direction=above", + changes[0]); } { - connection_->ReorderNode(node2_id, node3_id, ORDER_DIRECTION_BELOW, 8); + connection_->ReorderNode(node2_id, node3_id, ORDER_DIRECTION_BELOW); connection2_->DoRunLoopUntilChangesCount(1); const Changes changes(ChangesToDescription1(connection2_->changes())); ASSERT_EQ(1u, changes.size()); - EXPECT_EQ( - "Reordered change_id=8 node=1,2 relative=1,3 direction=below", - changes[0]); + EXPECT_EQ("Reordered node=1,2 relative=1,3 direction=below", + changes[0]); } - { - // node2 is already below node3. - EXPECT_FALSE( - connection_->ReorderNode(node2_id, node3_id, ORDER_DIRECTION_BELOW, 9)); - } + // node2 is already below node3. + EXPECT_FALSE( + connection_->ReorderNode(node2_id, node3_id, ORDER_DIRECTION_BELOW)); - { - // node4 & 5 are unknown to connection2_. - EXPECT_FALSE(connection2_->ReorderNode( - node4_id, node5_id, ORDER_DIRECTION_ABOVE, 9)); - } + // node4 & 5 are unknown to connection2_. + EXPECT_FALSE(connection2_->ReorderNode( + node4_id, node5_id, ORDER_DIRECTION_ABOVE)); - { - // node6 & node3 have different parents. - EXPECT_FALSE( - connection_->ReorderNode(node3_id, node6_id, ORDER_DIRECTION_ABOVE, 9)); - } + // node6 & node3 have different parents. + EXPECT_FALSE( + connection_->ReorderNode(node3_id, node6_id, ORDER_DIRECTION_ABOVE)); - { - // Non-existent node-ids - EXPECT_FALSE(connection_->ReorderNode( - BuildNodeId(1, 27), BuildNodeId(1, 28), ORDER_DIRECTION_ABOVE, 9)); - } + // Non-existent node-ids + EXPECT_FALSE(connection_->ReorderNode( + BuildNodeId(1, 27), BuildNodeId(1, 28), ORDER_DIRECTION_ABOVE)); - { - // node7 & node8 are un-parented. - EXPECT_FALSE( - connection_->ReorderNode(node7_id, node8_id, ORDER_DIRECTION_ABOVE, 9)); - } + // node7 & node8 are un-parented. + EXPECT_FALSE( + connection_->ReorderNode(node7_id, node8_id, ORDER_DIRECTION_ABOVE)); } // Verifies DeleteNode works. @@ -915,30 +810,30 @@ TEST_F(ViewManagerTest, DeleteNode) { // Make 2 a child of 1. { - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 2)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2))); connection2_->DoRunLoopUntilChangesCount(1); const Changes changes(ChangesToDescription1(connection2_->changes())); ASSERT_EQ(1u, changes.size()); - EXPECT_EQ("HierarchyChanged change_id=2 node=1,2 new_parent=1,1 " - "old_parent=null", changes[0]); + EXPECT_EQ("HierarchyChanged node=1,2 new_parent=1,1 old_parent=null", + changes[0]); } // Delete 2. { - ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 2), 3)); + ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 2))); EXPECT_TRUE(connection_->changes().empty()); connection2_->DoRunLoopUntilChangesCount(1); const Changes changes(ChangesToDescription1(connection2_->changes())); ASSERT_EQ(1u, changes.size()); - EXPECT_EQ("NodeDeleted change_id=3 node=1,2", changes[0]); + EXPECT_EQ("NodeDeleted node=1,2", changes[0]); } } // Verifies DeleteNode isn't allowed from a separate connection. TEST_F(ViewManagerTest, DeleteNodeFromAnotherConnectionDisallowed) { ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); - EXPECT_FALSE(connection2_->DeleteNode(BuildNodeId(1, 1), 1)); + EXPECT_FALSE(connection2_->DeleteNode(BuildNodeId(1, 1))); } // Verifies DeleteView isn't allowed from a separate connection. @@ -956,37 +851,35 @@ TEST_F(ViewManagerTest, ReuseDeletedNodeId) { // Add 2 to 1. { - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 2)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2))); connection2_->DoRunLoopUntilChangesCount(1); const Changes changes(ChangesToDescription1(connection2_->changes())); - EXPECT_EQ( - "HierarchyChanged change_id=2 node=1,2 new_parent=1,1 old_parent=null", - changes[0]); + EXPECT_EQ("HierarchyChanged node=1,2 new_parent=1,1 old_parent=null", + changes[0]); EXPECT_EQ("[node=1,2 parent=1,1 view=null]", ChangeNodeDescription(connection2_->changes())); } // Delete 2. { - ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 2), 3)); + ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 2))); connection2_->DoRunLoopUntilChangesCount(1); const Changes changes(ChangesToDescription1(connection2_->changes())); ASSERT_EQ(1u, changes.size()); - EXPECT_EQ("NodeDeleted change_id=3 node=1,2", changes[0]); + EXPECT_EQ("NodeDeleted node=1,2", changes[0]); } // Create 2 again, and add it back to 1. Should get the same notification. ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); { - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 4)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2))); connection2_->DoRunLoopUntilChangesCount(1); const Changes changes(ChangesToDescription1(connection2_->changes())); - EXPECT_EQ( - "HierarchyChanged change_id=4 node=1,2 new_parent=1,1 old_parent=null", - changes[0]); + EXPECT_EQ("HierarchyChanged node=1,2 new_parent=1,1 old_parent=null", + changes[0]); EXPECT_EQ("[node=1,2 parent=1,1 view=null]", ChangeNodeDescription(connection2_->changes())); } @@ -999,8 +892,8 @@ TEST_F(ViewManagerTest, SetView) { ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 3))); ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 11))); - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 1)); - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 3), 2)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2))); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 3))); ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); @@ -1044,17 +937,10 @@ TEST_F(ViewManagerTest, DeleteNodeWithView) { // Delete node 2. The second connection should not see this because the node // was not known to it. - { - ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 2), 2)); - - connection2_->DoRunLoopUntilChangesCount(1); - const Changes changes(ChangesToDescription1(connection2_->changes())); - ASSERT_EQ(1u, changes.size()); - EXPECT_EQ("ServerChangeIdAdvanced 3", changes[0]); - } + ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 2))); // Parent 3 to 1. - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 3), 3)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 3))); connection2_->DoRunLoopUntilChangesCount(1); // Set view 11 on node 3. @@ -1069,12 +955,12 @@ TEST_F(ViewManagerTest, DeleteNodeWithView) { // Delete 3. { - ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 3), 4)); + ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 3))); connection2_->DoRunLoopUntilChangesCount(1); const Changes changes(ChangesToDescription1(connection2_->changes())); ASSERT_EQ(1u, changes.size()); - EXPECT_EQ("NodeDeleted change_id=4 node=1,3", changes[0]); + EXPECT_EQ("NodeDeleted node=1,3", changes[0]); } } @@ -1113,14 +999,14 @@ TEST_F(ViewManagerTest, GetNodeTree) { // Create 11 in first connection and make it a child of 1. ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 11))); - ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 2)); - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 11), 3)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1))); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 11))); // Create two nodes in second connection, 2 and 3, both children of 1. ASSERT_TRUE(connection2_->CreateNode(BuildNodeId(2, 2))); ASSERT_TRUE(connection2_->CreateNode(BuildNodeId(2, 3))); - ASSERT_TRUE(connection2_->AddNode(BuildNodeId(1, 1), BuildNodeId(2, 2), 4)); - ASSERT_TRUE(connection2_->AddNode(BuildNodeId(1, 1), BuildNodeId(2, 3), 5)); + ASSERT_TRUE(connection2_->AddNode(BuildNodeId(1, 1), BuildNodeId(2, 2))); + ASSERT_TRUE(connection2_->AddNode(BuildNodeId(1, 1), BuildNodeId(2, 3))); // Attach view to node 11 in the first connection. ASSERT_TRUE(connection_->CreateView(BuildViewId(1, 51))); @@ -1159,7 +1045,7 @@ TEST_F(ViewManagerTest, GetNodeTree) { TEST_F(ViewManagerTest, SetNodeBounds) { ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); - ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1))); ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); @@ -1186,7 +1072,7 @@ TEST_F(ViewManagerTest, SetRoots) { ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 3))); // Parent 1 to the root. - ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1))); // Establish the second connection with roots 1 and 3. { @@ -1201,48 +1087,37 @@ TEST_F(ViewManagerTest, SetRoots) { ChangeNodeDescription(connection2_->changes())); } - // Create 4 and add it to the root, connection 2 should only get id advanced. + // Create 4 and add it to the root, connection 2 should not getting anything. { ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 4))); - ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 4), 4)); - - connection2_->DoRunLoopUntilChangesCount(1); - const Changes changes(ChangesToDescription1(connection2_->changes())); - ASSERT_EQ(1u, changes.size()); - EXPECT_EQ("ServerChangeIdAdvanced 5", changes[0]); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 4))); } // Move 4 under 3, this should expose 4 to the client. { - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 3), BuildNodeId(1, 4), 5)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 3), BuildNodeId(1, 4))); connection2_->DoRunLoopUntilChangesCount(1); const Changes changes(ChangesToDescription1(connection2_->changes())); ASSERT_EQ(1u, changes.size()); EXPECT_EQ( - "HierarchyChanged change_id=5 node=1,4 new_parent=1,3 " - "old_parent=null", changes[0]); + "HierarchyChanged node=1,4 new_parent=1,3 old_parent=null", changes[0]); EXPECT_EQ("[node=1,4 parent=1,3 view=null]", ChangeNodeDescription(connection2_->changes())); } // Move 4 under 2, since 2 isn't a root client should get a delete. { - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 4), 6)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 2), BuildNodeId(1, 4))); connection2_->DoRunLoopUntilChangesCount(1); const Changes changes(ChangesToDescription1(connection2_->changes())); ASSERT_EQ(1u, changes.size()); - EXPECT_EQ("NodeDeleted change_id=6 node=1,4", changes[0]); + EXPECT_EQ("NodeDeleted node=1,4", changes[0]); } // Delete 4, client shouldn't receive a delete since it should no longer know // about 4. { - ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 4), 7)); - - connection2_->DoRunLoopUntilChangesCount(1); - const Changes changes(ChangesToDescription1(connection2_->changes())); - ASSERT_EQ(1u, changes.size()); - EXPECT_EQ("ServerChangeIdAdvanced 8", changes[0]); + ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 4))); } } @@ -1256,11 +1131,11 @@ TEST_F(ViewManagerTest, CantMoveNodesFromOtherRoot) { // Try to move 2 to be a child of 1 from connection 2. This should fail as 2 // should not be able to access 1. - ASSERT_FALSE(connection2_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 1)); + ASSERT_FALSE(connection2_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2))); // Try to reparent 1 to the root. A connection is not allowed to reparent its // roots. - ASSERT_FALSE(connection2_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); + ASSERT_FALSE(connection2_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1))); } // Verify RemoveNodeFromParent fails for nodes that are descendants of the @@ -1270,24 +1145,24 @@ TEST_F(ViewManagerTest, CantRemoveNodesInOtherRoots) { ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); - ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); - ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 2), 2)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1))); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 2))); // Establish the second connection and give it the root 1. ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); // Connection 2 should not be able to remove node 2 or 1 from its parent. - ASSERT_FALSE(connection2_->RemoveNodeFromParent(BuildNodeId(1, 2), 4)); - ASSERT_FALSE(connection2_->RemoveNodeFromParent(BuildNodeId(1, 1), 4)); + ASSERT_FALSE(connection2_->RemoveNodeFromParent(BuildNodeId(1, 2))); + ASSERT_FALSE(connection2_->RemoveNodeFromParent(BuildNodeId(1, 1))); // Create nodes 10 and 11 in 2. ASSERT_TRUE(connection2_->CreateNode(BuildNodeId(2, 10))); ASSERT_TRUE(connection2_->CreateNode(BuildNodeId(2, 11))); // Parent 11 to 10. - ASSERT_TRUE(connection2_->AddNode(BuildNodeId(2, 10), BuildNodeId(2, 11), 4)); + ASSERT_TRUE(connection2_->AddNode(BuildNodeId(2, 10), BuildNodeId(2, 11))); // Remove 11 from 10. - ASSERT_TRUE(connection2_->RemoveNodeFromParent( BuildNodeId(2, 11), 5)); + ASSERT_TRUE(connection2_->RemoveNodeFromParent( BuildNodeId(2, 11))); // Verify nothing was actually removed. { @@ -1306,8 +1181,8 @@ TEST_F(ViewManagerTest, CantRemoveSetViewInOtherRoots) { ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); - ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); - ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 2), 2)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1))); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 2))); ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); @@ -1326,8 +1201,8 @@ TEST_F(ViewManagerTest, CantGetNodeTreeOfOtherRoots) { ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); - ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1), 1)); - ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 2), 2)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 1))); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(0, 1), BuildNodeId(1, 2))); ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); @@ -1351,15 +1226,13 @@ TEST_F(ViewManagerTest, ConnectTwice) { ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 1))); ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); - ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 1)); + ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2))); ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); // Try to connect again to 1,1, this should fail as already connected to that // root. - { - ASSERT_FALSE(connection_->Embed(BuildNodeId(1, 1), kTestServiceURL)); - } + ASSERT_FALSE(connection_->Embed(BuildNodeId(1, 1), kTestServiceURL)); // Connecting to 1,2 should succeed and end up in connection2. { @@ -1414,7 +1287,7 @@ TEST_F(ViewManagerTest, EmbedWithSameNodeId) { connection2_->DoRunLoopUntilChangesCount(1); const Changes changes(ChangesToDescription1(connection2_->changes())); ASSERT_EQ(1u, changes.size()); - EXPECT_EQ("NodeDeleted change_id=2 node=1,1", changes[0]); + EXPECT_EQ("NodeDeleted node=1,1", changes[0]); } // Connection2 has no root. Verify it can't see node 1,1 anymore. @@ -1448,22 +1321,17 @@ TEST_F(ViewManagerTest, EmbedWithSameNodeId2) { // Create a node in the third connection and parent it to the root. ASSERT_TRUE(connection3->CreateNode(BuildNodeId(3, 1))); - ASSERT_TRUE(connection3->AddNode(BuildNodeId(1, 1), BuildNodeId(3, 1), 3)); + ASSERT_TRUE(connection3->AddNode(BuildNodeId(1, 1), BuildNodeId(3, 1))); // Connection 1 should have been told about the add (it owns the node). { connection_->DoRunLoopUntilChangesCount(1); const Changes changes(ChangesToDescription1(connection_->changes())); ASSERT_EQ(1u, changes.size()); - EXPECT_EQ( - "HierarchyChanged change_id=3 node=3,1 new_parent=1,1 old_parent=null", - changes[0]); + EXPECT_EQ("HierarchyChanged node=3,1 new_parent=1,1 old_parent=null", + changes[0]); } - // connection2_ should get an advance. - connection2_->DoRunLoopUntilChangesCount(1); - connection2_->ClearChanges(); - // Embed 1,1 back in connection 2. { // 2 should be told about the new embed. @@ -1478,7 +1346,7 @@ TEST_F(ViewManagerTest, EmbedWithSameNodeId2) { // And 3 should get a delete. connection3->DoRunLoopUntilChangesCount(1); ASSERT_EQ(1u, connection3->changes().size()); - EXPECT_EQ("NodeDeleted change_id=4 node=1,1", + EXPECT_EQ("NodeDeleted node=1,1", ChangesToDescription1(connection3->changes())[0]); } @@ -1510,7 +1378,7 @@ TEST_F(ViewManagerTest, EmbedWithSameNodeId2) { } // TODO(sky): add coverage of test that destroys connections and ensures other -// connections get deletion notification (or advanced server id). +// connections get deletion notification. // TODO(sky): need to better track changes to initial connection. For example, // that SetBounsdNodes/AddNode and the like don't result in messages to the |