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);