Index: Core/Gui/src/Core.Gui/Forms/MainWindow/MainWindow.xaml.cs =================================================================== diff -u -r12a7ef6145b2756ca916adbdfb7b15a4d4f0d90c -rbb161efba7c8cecbcb0822b425010ab9a2dbb1f2 --- Core/Gui/src/Core.Gui/Forms/MainWindow/MainWindow.xaml.cs (.../MainWindow.xaml.cs) (revision 12a7ef6145b2756ca916adbdfb7b15a4d4f0d90c) +++ Core/Gui/src/Core.Gui/Forms/MainWindow/MainWindow.xaml.cs (.../MainWindow.xaml.cs) (revision bb161efba7c8cecbcb0822b425010ab9a2dbb1f2) @@ -405,16 +405,20 @@ { commands.StorageCommands.CreateNewProject(); ValidateItems(); + + CloseBackstage(); } private void OnSaveProject(object obj) { commands.StorageCommands.SaveProject(); + CloseBackstage(); } private void OnSaveProjectAs(object obj) { commands.StorageCommands.SaveProjectAs(); + CloseBackstage(); } private void OnOpenProject(object obj) @@ -424,7 +428,17 @@ { commands.StorageCommands.OpenExistingProject(projectPath); } + CloseBackstage(); } + + private void CloseBackstage() + { + if (BackstageDockPanel.Visibility == Visibility.Visible) + { + MainDockPanel.Visibility = Visibility.Visible; + BackstageDockPanel.Visibility = Visibility.Collapsed; + } + } private void OnCloseApplication(object obj) { Index: Core/Gui/test/Core.Gui.Test/Forms/MainWindow/MainWindowTest.cs =================================================================== diff -u -r2ccd820a20c579a55a3752d370c30781624e6dee -rbb161efba7c8cecbcb0822b425010ab9a2dbb1f2 --- Core/Gui/test/Core.Gui.Test/Forms/MainWindow/MainWindowTest.cs (.../MainWindowTest.cs) (revision 2ccd820a20c579a55a3752d370c30781624e6dee) +++ Core/Gui/test/Core.Gui.Test/Forms/MainWindow/MainWindowTest.cs (.../MainWindowTest.cs) (revision bb161efba7c8cecbcb0822b425010ab9a2dbb1f2) @@ -922,7 +922,9 @@ } [Test] - public void GivenMainWindow_WhenNewProjectIsCalled_ThenCreateNewProject() + [TestCase(true)] + [TestCase(false)] + public void GivenMainWindow_WhenNewProjectIsCalled_ThenCreateNewProject(bool backstageVisible) { // Given var mocks = new MockRepository(); @@ -942,16 +944,26 @@ mainWindow.SetGui(gui); + if (backstageVisible) + { + mainWindow.ToggleBackstageCommand.Execute(null); + } + // When mainWindow.NewProjectCommand.Execute(null); + + // Then + Assert.AreEqual(Visibility.Collapsed, mainWindow.BackstageDockPanel.Visibility); + Assert.AreEqual(Visibility.Visible, mainWindow.MainDockPanel.Visibility); } - // Then mocks.VerifyAll(); } [Test] - public void GivenMainWindow_WhenSaveProjectIsCalled_ThenProjectSaved() + [TestCase(true)] + [TestCase(false)] + public void GivenMainWindow_WhenSaveProjectIsCalled_ThenProjectSaved(bool backstageVisible) { // Given string directoryPath = TestHelper.GetScratchPadPath(nameof(MainWindowTest)); @@ -992,18 +1004,28 @@ gui.Run(); mainWindow.SetGui(gui); + + if (backstageVisible) + { + mainWindow.ToggleBackstageCommand.Execute(null); + } // When mainWindow.SaveProjectCommand.Execute(null); + + // Then + Assert.AreEqual(Visibility.Collapsed, mainWindow.BackstageDockPanel.Visibility); + Assert.AreEqual(Visibility.Visible, mainWindow.MainDockPanel.Visibility); } - // Then mocks.VerifyAll(); } } [Test] - public void GivenMainWindow_WhenSaveProjectAsIsCalled_ThenProjectSaved() + [TestCase(true)] + [TestCase(false)] + public void GivenMainWindow_WhenSaveProjectAsIsCalled_ThenProjectSaved(bool backstageVisible) { // Given string directoryPath = TestHelper.GetScratchPadPath(nameof(MainWindowTest)); @@ -1044,18 +1066,28 @@ gui.Run(); mainWindow.SetGui(gui); + + if (backstageVisible) + { + mainWindow.ToggleBackstageCommand.Execute(null); + } // When mainWindow.SaveProjectAsCommand.Execute(null); + + // Then + Assert.AreEqual(Visibility.Collapsed, mainWindow.BackstageDockPanel.Visibility); + Assert.AreEqual(Visibility.Visible, mainWindow.MainDockPanel.Visibility); } - // Then mocks.VerifyAll(); } } [Test] - public void GivenMainWindow_WhenOpenProjectIsCalled_ThenProjectOpened() + [TestCase(true)] + [TestCase(false)] + public void GivenMainWindow_WhenOpenProjectIsCalled_ThenProjectOpened(bool backstageVisible) { // Given string directoryPath = TestHelper.GetTestDataPath(TestDataPath.Core.Gui); @@ -1092,12 +1124,20 @@ gui.Run(); mainWindow.SetGui(gui); + + if (backstageVisible) + { + mainWindow.ToggleBackstageCommand.Execute(null); + } // When mainWindow.OpenProjectCommand.Execute(null); + + // Then + Assert.AreEqual(Visibility.Collapsed, mainWindow.BackstageDockPanel.Visibility); + Assert.AreEqual(Visibility.Visible, mainWindow.MainDockPanel.Visibility); } - // Then mocks.VerifyAll(); }