diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp
index 883160d3d..be5a14436 160000
--- a/Submodules/agg-sharp
+++ b/Submodules/agg-sharp
@@ -1 +1 @@
-Subproject commit 883160d3d769e23ba0f99466526adc2a0342eeb0
+Subproject commit be5a14436e63982ec3eaee7d0fee215fbf0e1747
diff --git a/Tests/MatterControl.AutomationTests/LibraryDownloadsTest.cs b/Tests/MatterControl.AutomationTests/LibraryDownloadsTest.cs
index 65ba56a07..c605e404b 100644
--- a/Tests/MatterControl.AutomationTests/LibraryDownloadsTest.cs
+++ b/Tests/MatterControl.AutomationTests/LibraryDownloadsTest.cs
@@ -10,186 +10,124 @@ namespace MatterHackers.MatterControl.Tests.Automation
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain]
public class LibraryDownloadsTests
{
+ [SetUp]
+ public void Setup()
+ {
+ MatterControlUtilities.CreateDownloadsSubFolder();
+ }
+
+ [TearDown]
+ public void TearDown()
+ {
+ MatterControlUtilities.DeleteDownloadsSubFolder();
+ }
+
[Test, Apartment(ApartmentState.STA)]
public async Task DownloadsAddButtonAddsMultipleFiles()
{
- AutomationTest testToRun = (testRunner) =>
+ await MatterControlUtilities.RunTest(testRunner =>
{
testRunner.CloseSignInAndPrinterSelect();
- MatterControlUtilities.CreateDownloadsSubFolder();
- //Navigate to Downloads Library Provider
+ // Navigate to Downloads Library Provider
testRunner.NavigateToFolder("Downloads Row Item Collection");
testRunner.NavigateToFolder("-Temporary Row Item Collection");
- testRunner.ClickByName("Library Add Button");
- testRunner.Delay(3);
-
- testRunner.Delay(2);
// Add both files to the FileOpen dialog
- testRunner.Type(
+ testRunner.ClickByName("Library Add Button");
+ testRunner.CompleteDialog(
string.Format(
"\"{0}\" \"{1}\"",
MatterControlUtilities.GetTestItemPath("Fennec_Fox.stl"),
- MatterControlUtilities.GetTestItemPath("Batman.stl")));
+ MatterControlUtilities.GetTestItemPath("Batman.stl")),
+ 5);
- testRunner.Delay(1);
- testRunner.Type("{Enter}");
-
- Assert.IsTrue(testRunner.WaitForName("Row Item Fennec Fox", 2), "Fennec Fox item exists");
- Assert.IsTrue(testRunner.WaitForName("Row Item Batman", 2), "Batman item exists");
- testRunner.Delay(1);
+ Assert.IsTrue(testRunner.WaitForName("Row Item Fennec_Fox.stl", 2), "Fennec Fox item exists");
+ Assert.IsTrue(testRunner.WaitForName("Row Item Batman.stl", 2), "Batman item exists");
return Task.CompletedTask;
- };
-
- // TODO: The standard assignment without a try/catch should be used and DeleteDownloadsSubFolder should be called from a TearDown method
- try
- {
- await MatterControlUtilities.RunTest(testToRun);
-
- }
- catch { }
- finally
- {
- MatterControlUtilities.DeleteDownloadsSubFolder();
- }
+ });
}
[Test, Apartment(ApartmentState.STA)]
public async Task DownloadsAddButtonAddsAMFFiles()
{
- AutomationTest testToRun = (testRunner) =>
+ await MatterControlUtilities.RunTest(testRunner =>
{
testRunner.CloseSignInAndPrinterSelect();
- MatterControlUtilities.CreateDownloadsSubFolder();
- //Navigate to Downloads Library Provider
+ // Navigate to Downloads Library Provider
testRunner.NavigateToFolder("Downloads Row Item Collection");
testRunner.NavigateToFolder("-Temporary Row Item Collection");
+
+ // Add AMF part items to Downloads and then type paths into file dialog
testRunner.ClickByName("Library Add Button");
- testRunner.Delay(2);
+ testRunner.CompleteDialog(MatterControlUtilities.GetTestItemPath("Rook.amf"), 4);
- //Add AMF part items to Downloads and then type paths into file dialog
- testRunner.Delay(2);
- testRunner.Type(MatterControlUtilities.GetTestItemPath("Rook.amf"));
- testRunner.Delay(1);
- testRunner.Type("{Enter}");
-
- Assert.IsTrue(testRunner.WaitForName("Row Item Rook", 2), "Rook item exists");
- testRunner.Delay(1);
+ Assert.IsTrue(testRunner.WaitForName("Row Item Rook.amf"), "Rook item exists");
return Task.CompletedTask;
- };
-
- try
- {
- await MatterControlUtilities.RunTest(testToRun);
-
- }
- catch { }
- finally
- {
- MatterControlUtilities.DeleteDownloadsSubFolder();
- }
+ });
}
[Test, Apartment(ApartmentState.STA)]
public async Task DownloadsAddButtonAddsZipFiles()
{
- AutomationTest testToRun = (testRunner) =>
+ await MatterControlUtilities.RunTest(testRunner =>
{
testRunner.CloseSignInAndPrinterSelect();
- MatterControlUtilities.CreateDownloadsSubFolder();
// Navigate to Downloads Library Provider
testRunner.NavigateToFolder("Downloads Row Item Collection");
testRunner.NavigateToFolder("-Temporary Row Item Collection");
- testRunner.ClickByName("Library Add Button");
- testRunner.Delay(2);
- // Add AMF part items to Downloads and then type paths into file dialogs
- testRunner.Delay(2);
- testRunner.Type(MatterControlUtilities.GetTestItemPath("Test.zip"));
- testRunner.Delay(1);
- testRunner.Type("{Enter}");
+ testRunner.ClickByName("Library Add Button");
+ testRunner.CompleteDialog(MatterControlUtilities.GetTestItemPath("Test.zip"), 4);
Assert.IsTrue(testRunner.WaitForName("Row Item Chinese Dragon", 2), "Chinese Dragon item exists");
Assert.IsTrue(testRunner.WaitForName("Row Item chichen-itza pyramid", 2), "chichen-itza item exists");
Assert.IsTrue(testRunner.WaitForName("Row Item Circle Calibration", 2), "Circle Calibration item exists");
- testRunner.Delay(1);
-
return Task.CompletedTask;
- };
-
- try
- {
- MatterControlUtilities.RunTest(testToRun);
- }
- catch { }
-
- // Give MatterControl a moment to shutdown
- Thread.Sleep(2000);
- try
- {
- // Then attempt to clean up
- MatterControlUtilities.DeleteDownloadsSubFolder();
- }
- catch { }
+ });
}
[Test, Apartment(ApartmentState.STA)]
public async Task RenameDownloadsPrintItem()
{
- AutomationTest testToRun = (testRunner) =>
+ await MatterControlUtilities.RunTest(testRunner =>
{
testRunner.CloseSignInAndPrinterSelect();
- MatterControlUtilities.CreateDownloadsSubFolder();
- //Navigate to Downloads Library Provider
+ // Navigate to Downloads Library Provider
testRunner.NavigateToFolder("Downloads Row Item Collection");
testRunner.NavigateToFolder("-Temporary Row Item Collection");
testRunner.ClickByName("Library Add Button");
- testRunner.Delay(2);
- testRunner.Type(MatterControlUtilities.GetTestItemPath("Batman.stl"));
- testRunner.Delay(1);
- testRunner.Type("{Enter}");
+ testRunner.CompleteDialog(MatterControlUtilities.GetTestItemPath("Batman.stl"), 2);
- //Rename added item
- testRunner.ClickByName("Library Edit Button");
- testRunner.ClickByName("Row Item Batman");
+ // Rename added item
+ testRunner.ClickByName("Row Item Batman.stl");
testRunner.LibraryRenameSelectedItem();
- testRunner.Delay(.5);
+ testRunner.WaitForName("InputBoxPage Action Button");
testRunner.Type("Batman Renamed");
+
testRunner.ClickByName("InputBoxPage Action Button");
- Assert.IsTrue(testRunner.WaitForName("Row Item Batman Renamed", 2));
+
+ Assert.IsTrue(testRunner.WaitForName("Row Item Batman Renamed.stl", 2));
return Task.CompletedTask;
- };
-
- try
- {
- await MatterControlUtilities.RunTest(testToRun);
-
- }
- catch { }
- finally
- {
- MatterControlUtilities.DeleteDownloadsSubFolder();
- }
+ });
}
[Test, Apartment(ApartmentState.STA)]
public async Task CreateFolder()
{
- AutomationTest testToRun = (testRunner) =>
+ await MatterControlUtilities.RunTest(testRunner =>
{
testRunner.CloseSignInAndPrinterSelect();
- MatterControlUtilities.CreateDownloadsSubFolder();
//Navigate to Downloads Library Provider
testRunner.NavigateToFolder("Downloads Row Item Collection");
@@ -198,26 +136,14 @@ namespace MatterHackers.MatterControl.Tests.Automation
string newFolderName = "New Folder";
testRunner.ClickByName("Create Folder From Library Button");
- testRunner.Delay(2);
+ testRunner.WaitForName("InputBoxPage Action Button");
testRunner.Type(newFolderName);
testRunner.ClickByName("InputBoxPage Action Button");
- testRunner.Delay(2);
- Assert.IsTrue(testRunner.WaitForName(newFolderName + " Row Item Collection", 2), $"{newFolderName} exists");
+ Assert.IsTrue(testRunner.WaitForName(newFolderName + " Row Item Collection"), $"{newFolderName} exists");
return Task.CompletedTask;
- };
-
- try
- {
- await MatterControlUtilities.RunTest(testToRun);
-
- }
- catch { }
- finally
- {
- MatterControlUtilities.DeleteDownloadsSubFolder();
- }
+ });
}
}
}
\ No newline at end of file
diff --git a/Tests/MatterControl.Tests/MatterControl/MatterControlUtilities.cs b/Tests/MatterControl.Tests/MatterControl/MatterControlUtilities.cs
index e88688cd3..dc8006a3f 100644
--- a/Tests/MatterControl.Tests/MatterControl/MatterControlUtilities.cs
+++ b/Tests/MatterControl.Tests/MatterControl/MatterControlUtilities.cs
@@ -66,6 +66,8 @@ namespace MatterHackers.MatterControl.Tests.Automation
private static string runName = DateTime.Now.ToString("yyyy-MM-ddTHH-mm-ss");
+ public static string PathToDownloadsSubFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downloads", "-Temporary");
+
public static void RemoveAllFromQueue(this AutomationRunner testRunner)
{
testRunner.ClickByName("Queue... Menu");
@@ -75,17 +77,19 @@ namespace MatterHackers.MatterControl.Tests.Automation
public static void CreateDownloadsSubFolder()
{
- Directory.CreateDirectory(PathToDownloadsSubFolder);
- }
-
- public static string PathToDownloadsSubFolder
- {
- get
+ if (Directory.Exists(PathToDownloadsSubFolder))
{
- return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downloads", "-Temporary");
+ foreach (string filePath in Directory.GetFiles(PathToDownloadsSubFolder))
+ {
+ File.Delete(filePath);
+ }
+ }
+ else
+ {
+ Directory.CreateDirectory(PathToDownloadsSubFolder);
}
}
-
+
public static void DeleteDownloadsSubFolder()
{
Directory.Delete(PathToDownloadsSubFolder, true);
@@ -432,7 +436,7 @@ namespace MatterHackers.MatterControl.Tests.Automation
///
/// The TestRunner to interact with
/// The text to type
- public static void CompleteDialog(this AutomationRunner testRunner, string textValue, int secondsToWait = 1)
+ public static void CompleteDialog(this AutomationRunner testRunner, string textValue, double secondsToWait = 1)
{
// AutomationDialog requires no delay
if (AggContext.FileDialogs is AutomationDialogProvider)