From 44bbbb74e433e6eeeaf784bc9db2c23a3a6d6690 Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Tue, 1 Sep 2015 16:03:29 -0700 Subject: [PATCH] Working on a local library test --- ControlElements/SplitButtonFactory.cs | 5 ++ CustomWidgets/SplitButton.cs | 2 +- PartPreviewWindow/SaveAsWindow.cs | 1 + PartPreviewWindow/View3D/View3DWidget.cs | 3 + .../MatterControl.Tests.csproj | 1 + .../AutomationTests/SqLiteLibraryProvider.cs | 56 ++++++++++++++++++ .../MatterControl/MatterControlUtilities.cs | 16 +++++ .../Library/xp5qqwgy.amf | Bin 0 -> 505 bytes .../Library/zczbu4ot.amf | Bin 0 -> 590 bytes .../MC_One_Queue_No_Library/MatterControl.db | Bin 0 -> 27648 bytes .../MC_One_Queue_No_Library/cache/session.bin | 0 .../MC_One_Queue_No_Library/data/default.mcp | 16 +++++ .../-2284589028421965881_460x460.png | Bin 0 -> 3712 bytes .../-4370420651207395999_460x460.png | Bin 0 -> 3712 bytes .../-5792922712264856979_460x460.png | Bin 0 -> 3161 bytes .../2005020242798645759_460x460.png | Bin 0 -> 3712 bytes 16 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 Tests/MatterControl.Tests/MatterControl/AutomationTests/SqLiteLibraryProvider.cs create mode 100644 Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/Library/xp5qqwgy.amf create mode 100644 Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/Library/zczbu4ot.amf create mode 100644 Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/MatterControl.db create mode 100644 Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/cache/session.bin create mode 100644 Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/default.mcp create mode 100644 Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/temp/thumbnails/-2284589028421965881_460x460.png create mode 100644 Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/temp/thumbnails/-4370420651207395999_460x460.png create mode 100644 Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/temp/thumbnails/-5792922712264856979_460x460.png create mode 100644 Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/temp/thumbnails/2005020242798645759_460x460.png diff --git a/ControlElements/SplitButtonFactory.cs b/ControlElements/SplitButtonFactory.cs index de7fce4e7..9cf80e8a5 100644 --- a/ControlElements/SplitButtonFactory.cs +++ b/ControlElements/SplitButtonFactory.cs @@ -40,6 +40,11 @@ namespace MatterHackers.MatterControl this.imageName = imageName; DynamicDropDownMenu menu = CreateMenu(direction); + if(buttonList.Count > 1) + { + menu.Name = buttonList[1].Item1 + " Menu"; + } + menu.Margin = new BorderDouble(); Button button = CreateButton(buttonList[0]); diff --git a/CustomWidgets/SplitButton.cs b/CustomWidgets/SplitButton.cs index 4062ad879..12aaacb5e 100644 --- a/CustomWidgets/SplitButton.cs +++ b/CustomWidgets/SplitButton.cs @@ -35,7 +35,7 @@ namespace MatterHackers.MatterControl AddChild(altChoices); } - public void addItem(string name, Func clickFunction) + public void AddItem(string name, Func clickFunction) { altChoices.addItem(name, clickFunction); } diff --git a/PartPreviewWindow/SaveAsWindow.cs b/PartPreviewWindow/SaveAsWindow.cs index ac27a65f2..6d71f6ac1 100644 --- a/PartPreviewWindow/SaveAsWindow.cs +++ b/PartPreviewWindow/SaveAsWindow.cs @@ -113,6 +113,7 @@ namespace MatterHackers.MatterControl } Button saveAsButton = textImageButtonFactory.Generate("Save".Localize(), centerText: true); + saveAsButton.Name = "Save As Save Button"; saveAsButton.Visible = true; saveAsButton.Cursor = Cursors.Hand; buttonRow.AddChild(saveAsButton); diff --git a/PartPreviewWindow/View3D/View3DWidget.cs b/PartPreviewWindow/View3D/View3DWidget.cs index 657ba08e2..dab7bb14e 100644 --- a/PartPreviewWindow/View3D/View3DWidget.cs +++ b/PartPreviewWindow/View3D/View3DWidget.cs @@ -191,6 +191,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow } Button enterEdittingButton = textImageButtonFactory.Generate("Edit".Localize(), "icon_edit_32x32.png"); + enterEdittingButton.Name = "3D View Edit"; enterEdittingButton.Margin = new BorderDouble(right: 4); enterEdittingButton.Click += (sender, e) => { @@ -285,6 +286,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow doEdittingButtonsContainer.AddChild(separatorTwo); Button copyButton = textImageButtonFactory.Generate("Copy".Localize()); + copyButton.Name = "3D View Copy"; doEdittingButtonsContainer.AddChild(copyButton); copyButton.Click += (sender, e) => { @@ -292,6 +294,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow }; Button deleteButton = textImageButtonFactory.Generate("Remove".Localize()); + deleteButton.Name = "3D View Delete"; doEdittingButtonsContainer.AddChild(deleteButton); deleteButton.Click += (sender, e) => { diff --git a/Tests/MatterControl.Tests/MatterControl.Tests.csproj b/Tests/MatterControl.Tests/MatterControl.Tests.csproj index 94e0e4348..137e76e57 100644 --- a/Tests/MatterControl.Tests/MatterControl.Tests.csproj +++ b/Tests/MatterControl.Tests/MatterControl.Tests.csproj @@ -58,6 +58,7 @@ + diff --git a/Tests/MatterControl.Tests/MatterControl/AutomationTests/SqLiteLibraryProvider.cs b/Tests/MatterControl.Tests/MatterControl/AutomationTests/SqLiteLibraryProvider.cs new file mode 100644 index 000000000..f596681b4 --- /dev/null +++ b/Tests/MatterControl.Tests/MatterControl/AutomationTests/SqLiteLibraryProvider.cs @@ -0,0 +1,56 @@ +using MatterHackers.Agg.PlatformAbstract; +using MatterHackers.Agg.UI; +using MatterHackers.Agg.UI.Tests; +using MatterHackers.GuiAutomation; +using NUnit.Framework; +using System; +using System.IO; + +namespace MatterHackers.MatterControl.UI +{ + [TestFixture, Category("MatterControl.UI"), RunInApplicationDomain] + public class SqLiteLibraryProviderTests + { + [Test, RequiresSTA, RunInApplicationDomain] + public void LibraryQueueViewRefreshesOnAddItem() + { + // Run a copy of MatterControl + Action testToRun = (AutomationTesterHarness resultsHarness) => + { + AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages); + { + testRunner.ClickByName("Library Tab", 5); + + MatterControlUtilities.NavigateToFolder(testRunner, "Local Library Row Item Collection"); + + resultsHarness.AddTestResult(testRunner.ClickByName("3D View Edit", secondsToWait: 3)); + + resultsHarness.AddTestResult(testRunner.ClickByName("3D View Copy", secondsToWait: 3)); + resultsHarness.AddTestResult(testRunner.ClickByName("3D View Delete", secondsToWait: 3)); + resultsHarness.AddTestResult(testRunner.ClickByName("Save As Menu", secondsToWait: 3)); + resultsHarness.AddTestResult(testRunner.ClickByName("Save As Menu Item", secondsToWait: 3)); + + testRunner.Type("Test Part"); + MatterControlUtilities.NavigateToFolder(testRunner, "Local Library Row Item Collection"); + + testRunner.ClickByName("Save As Save Button", secondsToWait: 1); + + MatterControlUtilities.CloseMatterControl(testRunner); + } + }; + +#if !__ANDROID__ + // Set the static data to point to the directory of MatterControl + StaticData.Instance = new MatterHackers.Agg.FileSystemStaticData(Path.Combine("..", "..", "..", "..", "StaticData")); +#endif + bool showWindow; + string testDBFolder = "MC_One_Queue_No_Library"; + MatterControlUtilities.DataFolderState staticDataState = MatterControlUtilities.MakeNewStaticDataForTesting(testDBFolder); + MatterControlApplication matterControlWindow = MatterControlApplication.CreateInstance(out showWindow); + AutomationTesterHarness testHarness = AutomationTesterHarness.ShowWindowAndExectueTests(matterControlWindow, testToRun, 450); + MatterControlUtilities.RestoreStaticDataAfterTesting(staticDataState, true); + Assert.IsTrue(testHarness.AllTestsPassed); + Assert.IsTrue(testHarness.TestCount == 2); // make sure we ran all our tests + } + } +} \ No newline at end of file diff --git a/Tests/MatterControl.Tests/MatterControl/MatterControlUtilities.cs b/Tests/MatterControl.Tests/MatterControl/MatterControlUtilities.cs index dba32d67d..095cb5bde 100644 --- a/Tests/MatterControl.Tests/MatterControl/MatterControlUtilities.cs +++ b/Tests/MatterControl.Tests/MatterControl/MatterControlUtilities.cs @@ -31,6 +31,7 @@ using MatterHackers.Agg.Image; using MatterHackers.Agg.UI; using MatterHackers.GuiAutomation; using MatterHackers.MatterControl.DataStorage; +using MatterHackers.MatterControl.PrintLibrary.Provider; using NUnit.Framework; using System.Diagnostics; using System.IO; @@ -132,6 +133,21 @@ namespace MatterHackers.MatterControl.UI return state; } + public static LibraryProvider CurrentProvider() + { + return ApplicationController.Instance.CurrentLibraryDataView.CurrentLibraryProvider; + } + + public static void NavigateToFolder(AutomationRunner testRunner, string libraryRowItemName) + { + SearchRegion libraryRowItemRegion = testRunner.GetRegionByName(libraryRowItemName, secondsToWait: 3); + testRunner.ClickByName(libraryRowItemName); + testRunner.MoveToByName(libraryRowItemName); + testRunner.Wait(.5); + testRunner.ClickByName("Open Collection", searchRegion: libraryRowItemRegion); + testRunner.Wait(.5); + } + public static void RestoreStaticDataAfterTesting(DataFolderState state, bool closeDataBase) { if (state.undoDataRename) diff --git a/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/Library/xp5qqwgy.amf b/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/Library/xp5qqwgy.amf new file mode 100644 index 0000000000000000000000000000000000000000..3992ba523c8ba9077d5fc2acac814abfe05d7a2e GIT binary patch literal 505 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 sXL9E4-LvP{*&I>Zo)78&qol`;+0GTH={r~^~ literal 0 HcmV?d00001 diff --git a/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/temp/thumbnails/-4370420651207395999_460x460.png b/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/temp/thumbnails/-4370420651207395999_460x460.png new file mode 100644 index 0000000000000000000000000000000000000000..14c0ca552b4ab8bd073ebebd029839539f2d68ee GIT binary patch literal 3712 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 sXL9E4-LvP{*&I>Zo)78&qol`;+0GTH={r~^~ literal 0 HcmV?d00001 diff --git a/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/temp/thumbnails/-5792922712264856979_460x460.png b/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/temp/thumbnails/-5792922712264856979_460x460.png new file mode 100644 index 0000000000000000000000000000000000000000..12856d296ea34a3ce9bc7abc60ffb48eedbd0f2b GIT binary patch literal 3161 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 sXL9E4-LvP{*&I>Zo)78&qol`;+0GTH={r~^~ literal 0 HcmV?d00001