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 000000000..3992ba523 Binary files /dev/null and b/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/Library/xp5qqwgy.amf differ diff --git a/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/Library/zczbu4ot.amf b/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/Library/zczbu4ot.amf new file mode 100644 index 000000000..48fd82c39 Binary files /dev/null and b/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/Library/zczbu4ot.amf differ diff --git a/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/MatterControl.db b/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/MatterControl.db new file mode 100644 index 000000000..877535c38 Binary files /dev/null and b/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/MatterControl.db differ diff --git a/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/cache/session.bin b/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/cache/session.bin new file mode 100644 index 000000000..e69de29bb diff --git a/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/default.mcp b/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/default.mcp new file mode 100644 index 000000000..8f8595fa8 --- /dev/null +++ b/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/default.mcp @@ -0,0 +1,16 @@ +{ + "ProjectFiles": [ + { + "DateAdded": "2015-09-01T10:50:29.5703883-07:00", + "FileLocation": "C:\\Development\\MatterControl\\Tests\\TestData\\TestMeshes\\LibraryProviderData\\Box20x20x10.stl", + "Name": "Box20x20x10", + "PrintCount": 0, + "PrintItemCollectionID": 0, + "ReadOnly": false, + "Protected": false, + "Id": 0 + } + ], + "ProjectName": "Test Project", + "ProjectDateCreated": "2015-09-01T10:50:44" +} \ No newline at end of file diff --git a/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/temp/thumbnails/-2284589028421965881_460x460.png b/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/temp/thumbnails/-2284589028421965881_460x460.png new file mode 100644 index 000000000..14c0ca552 Binary files /dev/null and b/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/temp/thumbnails/-2284589028421965881_460x460.png differ 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 000000000..14c0ca552 Binary files /dev/null and b/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/temp/thumbnails/-4370420651207395999_460x460.png differ 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 000000000..12856d296 Binary files /dev/null and b/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/temp/thumbnails/-5792922712264856979_460x460.png differ diff --git a/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/temp/thumbnails/2005020242798645759_460x460.png b/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/temp/thumbnails/2005020242798645759_460x460.png new file mode 100644 index 000000000..14c0ca552 Binary files /dev/null and b/Tests/TestData/TestDatabaseStates/MC_One_Queue_No_Library/data/temp/thumbnails/2005020242798645759_460x460.png differ