From cf9dd72ea543cc3cef9ed0d8e55afc977305733d Mon Sep 17 00:00:00 2001 From: David Sparer Date: Wed, 20 Jun 2018 16:25:08 -0500 Subject: [PATCH] dont allow folder/connections to be added to the putty root node in connection tree. Resolves #998 --- .../UI/Controls/ConnectionTreeTests.cs | 38 ++++++++++++++++++- .../Controls/ConnectionTree/ConnectionTree.cs | 3 ++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/mRemoteNGTests/UI/Controls/ConnectionTreeTests.cs b/mRemoteNGTests/UI/Controls/ConnectionTreeTests.cs index 2aa77d974..cb8a996e9 100644 --- a/mRemoteNGTests/UI/Controls/ConnectionTreeTests.cs +++ b/mRemoteNGTests/UI/Controls/ConnectionTreeTests.cs @@ -60,5 +60,41 @@ namespace mRemoteNGTests.UI.Controls Assert.That(_connectionTree.FilteredObjects, Does.Not.Contain(conDontShow)); Assert.That(_connectionTree.FilteredObjects, Does.Contain(con2)); } - } + + [Test] + [Apartment(ApartmentState.STA)] + public void CannotAddConnectionToPuttySessionNode() + { + var connectionTreeModel = new ConnectionTreeModel(); + var root = new RootNodeInfo(RootNodeType.Connection); + var puttyRoot = new RootNodeInfo(RootNodeType.PuttySessions); + connectionTreeModel.AddRootNode(root); + connectionTreeModel.AddRootNode(puttyRoot); + + _connectionTree.ConnectionTreeModel = connectionTreeModel; + + _connectionTree.SelectedObject = puttyRoot; + _connectionTree.AddConnection(); + + Assert.That(puttyRoot.Children, Is.Empty); + } + + [Test] + [Apartment(ApartmentState.STA)] + public void CannotAddFolderToPuttySessionNode() + { + var connectionTreeModel = new ConnectionTreeModel(); + var root = new RootNodeInfo(RootNodeType.Connection); + var puttyRoot = new RootNodeInfo(RootNodeType.PuttySessions); + connectionTreeModel.AddRootNode(root); + connectionTreeModel.AddRootNode(puttyRoot); + + _connectionTree.ConnectionTreeModel = connectionTreeModel; + + _connectionTree.SelectedObject = puttyRoot; + _connectionTree.AddFolder(); + + Assert.That(puttyRoot.Children, Is.Empty); + } + } } diff --git a/mRemoteV1/UI/Controls/ConnectionTree/ConnectionTree.cs b/mRemoteV1/UI/Controls/ConnectionTree/ConnectionTree.cs index be9fcb605..15641417e 100644 --- a/mRemoteV1/UI/Controls/ConnectionTree/ConnectionTree.cs +++ b/mRemoteV1/UI/Controls/ConnectionTree/ConnectionTree.cs @@ -262,6 +262,9 @@ namespace mRemoteNG.UI.Controls private void AddNode(ConnectionInfo newNode) { + if (SelectedNode?.GetTreeNodeType() == TreeNodeType.PuttyRoot || SelectedNode?.GetTreeNodeType() == TreeNodeType.PuttySession) + return; + // use root node if no node is selected ConnectionInfo parentNode = SelectedNode ?? GetRootConnectionNode(); DefaultConnectionInfo.Instance.SaveTo(newNode);