From 3172da7b55ab85376055dd11bff511e4e36f1efd Mon Sep 17 00:00:00 2001 From: Gregory Diaz Date: Fri, 13 Nov 2015 18:06:44 -0800 Subject: [PATCH] Added more automated Local Library Tests --- CustomWidgets/ExportPrintItemWindow.cs | 2 + Library/PrintLibraryWidget.cs | 3 + PartPreviewWindow/PartPreviewMainWindow.cs | 2 + Queue/QueueDataWidget.cs | 1 - Submodules/agg-sharp | 2 +- .../AutomationTests/PrintQueueTests.cs | 6 +- .../MatterControl/LocalLibraryTests.cs | 153 +++++++++++++++++- 7 files changed, 163 insertions(+), 6 deletions(-) diff --git a/CustomWidgets/ExportPrintItemWindow.cs b/CustomWidgets/ExportPrintItemWindow.cs index c814db688..bd66b217f 100644 --- a/CustomWidgets/ExportPrintItemWindow.cs +++ b/CustomWidgets/ExportPrintItemWindow.cs @@ -46,6 +46,7 @@ namespace MatterHackers.MatterControl this.Title = McExportFileTitleFull; this.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; + this.Name = "Export Item Window"; CreateWindowContent(); ActivePrinterProfile.Instance.ActivePrinterChanged.RegisterEvent(ReloadAfterPrinterProfileChanged, ref unregisterEvents); @@ -235,6 +236,7 @@ namespace MatterHackers.MatterControl } Button cancelButton = textImageButtonFactory.Generate("Cancel"); + cancelButton.Name = "Export Item Window Cancel Button"; cancelButton.Cursor = Cursors.Hand; cancelButton.Click += (sender, e) => { diff --git a/Library/PrintLibraryWidget.cs b/Library/PrintLibraryWidget.cs index 85d544273..6cdc40bc2 100644 --- a/Library/PrintLibraryWidget.cs +++ b/Library/PrintLibraryWidget.cs @@ -332,12 +332,14 @@ namespace MatterHackers.MatterControl.PrintLibrary editButtonFactory.FixedWidth = 0; Button exportItemButton = editButtonFactory.Generate("Export".Localize()); + exportItemButton.Name = "Library Export Button"; exportItemButton.Margin = new BorderDouble(3, 0); exportItemButton.Click += exportButton_Click; editButtonsEnableData.Add(new ButtonEnableData(false, false, false)); itemOperationButtons.AddChild(exportItemButton); Button editItemButton = editButtonFactory.Generate("Edit".Localize()); + editItemButton.Name = "Library Edit Item Button"; editItemButton.Margin = new BorderDouble(3, 0); editItemButton.Click += editButton_Click; editButtonsEnableData.Add(new ButtonEnableData(false, false, false)); @@ -346,6 +348,7 @@ namespace MatterHackers.MatterControl.PrintLibrary // add the remove button { Button removeFromLibraryButton = editButtonFactory.Generate("Remove".Localize()); + removeFromLibraryButton.Name = "Library Remove Item Button"; removeFromLibraryButton.Margin = new BorderDouble(3, 0); removeFromLibraryButton.Click += deleteFromLibraryButton_Click; editButtonsEnableData.Add(new ButtonEnableData(true, false, true)); diff --git a/PartPreviewWindow/PartPreviewMainWindow.cs b/PartPreviewWindow/PartPreviewMainWindow.cs index 580d3660c..3b166ec9f 100644 --- a/PartPreviewWindow/PartPreviewMainWindow.cs +++ b/PartPreviewWindow/PartPreviewMainWindow.cs @@ -49,6 +49,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow string partPreviewTitle = LocalizedString.Get("MatterControl"); Title = string.Format("{0}: ", partPreviewTitle) + Path.GetFileName(printItem.Name); + this.Name = "Part Preview Window"; + partPreviewWidget = new PartPreviewContent(printItem, View3DWidget.WindowMode.StandAlone, autoRotate3DView, openMode); partPreviewWidget.Closed += (sender, e) => { diff --git a/Queue/QueueDataWidget.cs b/Queue/QueueDataWidget.cs index 2fda4b0a4..ea9f6df02 100644 --- a/Queue/QueueDataWidget.cs +++ b/Queue/QueueDataWidget.cs @@ -635,7 +635,6 @@ namespace MatterHackers.MatterControl.PrintQueue if (exportingWindowIsOpen == false) { exportingWindow = new ExportPrintItemWindow(printItem); - exportingWindow.Name = "Export Window Queue"; this.exportingWindowIsOpen = true; exportingWindow.Closed += (source, e) => this.exportingWindowIsOpen = false; exportingWindow.ShowAsSystemWindow(); diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index 4af867ee0..3a5be63fc 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit 4af867ee01ebaec1d3e82a069ed9528178e1dba8 +Subproject commit 3a5be63fcbea303f96cbf44754416151834a5949 diff --git a/Tests/MatterControl.Tests/MatterControl/AutomationTests/PrintQueueTests.cs b/Tests/MatterControl.Tests/MatterControl/AutomationTests/PrintQueueTests.cs index b68610a9c..d84ff9546 100644 --- a/Tests/MatterControl.Tests/MatterControl/AutomationTests/PrintQueueTests.cs +++ b/Tests/MatterControl.Tests/MatterControl/AutomationTests/PrintQueueTests.cs @@ -139,12 +139,12 @@ namespace MatterHackers.MatterControl.UI */ //Make sure that the export window does not exist - bool exportWindowExists1 = testRunner.WaitForName( "Export Window Queue", 0); + bool exportWindowExists1 = testRunner.WaitForName( "Export Item Window", 0); resultsHarness.AddTestResult(exportWindowExists1 == false, "Export window does not exist"); testRunner.ClickByName("Export Queue Button", 5); SystemWindow containingWindow; - GuiWidget exportWindow = testRunner.GetWidgetByName("Export Window Queue", out containingWindow, 5); + GuiWidget exportWindow = testRunner.GetWidgetByName("Export Item Window", out containingWindow, 5); resultsHarness.AddTestResult(exportWindow != null, "Export window does exist"); if (exportWindow != null) { @@ -213,7 +213,7 @@ namespace MatterHackers.MatterControl.UI testRunner.ClickByName("Queue Item Thumbnail"); SystemWindow containingWindow; - GuiWidget partPreviewWindowExists = testRunner.GetWidgetByName("Part Preview Window Thumbnail", out containingWindow, 3); + GuiWidget partPreviewWindowExists = testRunner.GetWidgetByName("Part Preview Window", out containingWindow, 3); resultsHarness.AddTestResult(partPreviewWindowExists != null, "Part Preview Window Exists"); partPreviewWindowExists.CloseOnIdle(); testRunner.Wait(.5); diff --git a/Tests/MatterControl.Tests/MatterControl/LocalLibraryTests.cs b/Tests/MatterControl.Tests/MatterControl/LocalLibraryTests.cs index d4931641b..85fa8a266 100644 --- a/Tests/MatterControl.Tests/MatterControl/LocalLibraryTests.cs +++ b/Tests/MatterControl.Tests/MatterControl/LocalLibraryTests.cs @@ -273,7 +273,7 @@ namespace MatterHackers.MatterControl.UI [TestFixture, Category("MatterControl.UI"), RunInApplicationDomain] - public class UserCanSuccessfullyCreateLibraryFolder + public class UserCanSuccessfullyCreateAndRenameLibraryFolder { [Test, RequiresSTA, RunInApplicationDomain] public void RenameButtonRenameLocalLibraryItem() @@ -299,6 +299,97 @@ namespace MatterHackers.MatterControl.UI bool newFolderWasCreated = testRunner.WaitForName(newLibraryFolder, 1); resultsHarness.AddTestResult(newFolderWasCreated == true); + testRunner.ClickByName("Library Edit Button"); + testRunner.ClickByName("New Folder Row Item Collection"); + testRunner.ClickByName("Rename From Library Button"); + testRunner.Wait(1); + testRunner.Type("Renamed Library Folder"); + testRunner.ClickByName("Rename Button"); + + //Make sure that renamed Library Folder Exists + bool renamedLibraryFolderExists = testRunner.WaitForName("Renamed Library Folder Row Item Collection", 2); + resultsHarness.AddTestResult(renamedLibraryFolderExists == true); + + MatterControlUtilities.CloseMatterControl(testRunner); + } + }; + + AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun); + + Assert.IsTrue(testHarness.AllTestsPassed); + Assert.IsTrue(testHarness.TestCount == 2); // make sure we ran all our tests + } + } + + [TestFixture, Category("MatterControl.UI"), RunInApplicationDomain] + public class LibraryEditButtonOpensUpPartPreviewWindow + { + [Test, RequiresSTA, RunInApplicationDomain] + public void ClickLibraryEditButtonOpensPartPreviewWindow() + { + // Run a copy of MatterControl + Action testToRun = (AutomationTesterHarness resultsHarness) => + { + AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages); + { + //Navigate to Local Library + testRunner.ClickByName("Library Tab"); + MatterControlUtilities.NavigateToFolder(testRunner, "Local Library Row Item Collection"); + + testRunner.Wait(1); + + string rowItem = "Row Item " + "Calibration - Box"; + testRunner.ClickByName("Library Edit Button"); + testRunner.Wait(1); + testRunner.ClickByName(rowItem); + + testRunner.ClickByName("Library Edit Item Button"); + + //Make sure that Export Item Window exists after Export button is clicked + bool exportItemWindowExists = testRunner.WaitForName("Part Preview Window", 2); + resultsHarness.AddTestResult(exportItemWindowExists == true); + + MatterControlUtilities.CloseMatterControl(testRunner); + } + }; + + AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun); + + Assert.IsTrue(testHarness.AllTestsPassed); + Assert.IsTrue(testHarness.TestCount == 1); // make sure we ran all our tests + } + } + + [TestFixture, Category("MatterControl.UI"), RunInApplicationDomain] + public class OneLibraryItemSelectedRemoveButtonRemovesItem + { + [Test, RequiresSTA, RunInApplicationDomain] + public void RemoveButtonClickedRemovesSingleItem() + { + // Run a copy of MatterControl + Action testToRun = (AutomationTesterHarness resultsHarness) => + { + AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages); + { + //Navigate to Local Library + testRunner.ClickByName("Library Tab"); + MatterControlUtilities.NavigateToFolder(testRunner, "Local Library Row Item Collection"); + + testRunner.Wait(1); + + string rowItem = "Row Item " + "Calibration - Box"; + testRunner.ClickByName("Library Edit Button"); + testRunner.Wait(1); + testRunner.ClickByName(rowItem); + + testRunner.ClickByName("Library Remove Item Button"); + + testRunner.Wait(1); + + //Make sure that Export Item Window exists after Export button is clicked + bool rowItemExists = testRunner.WaitForName(rowItem, 2); + resultsHarness.AddTestResult(rowItemExists == false); + MatterControlUtilities.CloseMatterControl(testRunner); } }; @@ -311,6 +402,66 @@ namespace MatterHackers.MatterControl.UI } + [TestFixture, Category("MatterControl.UI"), RunInApplicationDomain] + public class MultipleLibraryItemsSelectedRemoveButtonRemovesItem + { + [Test, RequiresSTA, RunInApplicationDomain] + public void RemoveButtonClickedRemovesMultipleItems() + { + // Run a copy of MatterControl + Action testToRun = (AutomationTesterHarness resultsHarness) => + { + AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages); + { + //Navigate to Local Library + testRunner.ClickByName("Library Tab"); + MatterControlUtilities.NavigateToFolder(testRunner, "Local Library Row Item Collection"); + + testRunner.Wait(1); + testRunner.ClickByName("Library Edit Button"); + testRunner.Wait(1); + + string rowItemPath = MatterControlUtilities.PathToQueueItemsFolder("Fennec_Fox.stl"); + testRunner.ClickByName("Library Add Button"); + + testRunner.Wait(2); + testRunner.Type(rowItemPath); + testRunner.Type("{Enter}"); + + string rowItemOne = "Row Item " + "Calibration - Box"; + testRunner.ClickByName(rowItemOne); + + string rowItemTwo = "Row Item " + "Fennec Fox"; + testRunner.ClickByName(rowItemTwo); + + testRunner.Wait(1); + + //Make sure row items exist before remove + bool rowItemOneExistsBeforeRemove = testRunner.WaitForName(rowItemOne, 2); + bool rowItemTwoExistsBeforeRemove = testRunner.WaitForName(rowItemTwo, 2); + resultsHarness.AddTestResult(rowItemOneExistsBeforeRemove == true); + resultsHarness.AddTestResult(rowItemTwoExistsBeforeRemove == true); + + testRunner.ClickByName("Library Remove Item Button"); + testRunner.Wait(1); + + //Make sure both selected items are removed + bool rowItemOneExists = testRunner.WaitForName(rowItemOne, 2); + bool rowItemTwoExists = testRunner.WaitForName(rowItemTwo, 2); + resultsHarness.AddTestResult(rowItemOneExists == false); + resultsHarness.AddTestResult(rowItemTwoExists == false); + + + MatterControlUtilities.CloseMatterControl(testRunner); + } + }; + + AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun); + + Assert.IsTrue(testHarness.AllTestsPassed); + Assert.IsTrue(testHarness.TestCount == 4); // make sure we ran all our tests + } + }