Made it possible to check if the database is closed

More cleaning of automation api
Made the sqlite provider refresh on changes
Made the unit test for that work
This commit is contained in:
Lars Brubaker 2015-09-03 12:21:20 -07:00
parent cb2a74a90b
commit a98e29b22e
7 changed files with 68 additions and 36 deletions

View file

@ -25,17 +25,17 @@ namespace MatterHackers.MatterControl.UI
AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
{
testRunner.ClickByName("SettingsAndControls", secondsToWait: 5);
testRunner.ClickByName("SettingsAndControls", 5);
testRunner.Wait(2);
testRunner.ClickByName("Options Tab", secondsToWait: 6);
testRunner.ClickByName("Options Tab", 6);
bool terminalWindowExists1 = testRunner.WaitForName("Gcode Terminal", 0);
resultsHarness.AddTestResult(terminalWindowExists1 == false, "Terminal Window does not exist");
testRunner.ClickByName("Show Terminal Button", secondsToWait: 6);
testRunner.ClickByName("Show Terminal Button", 6);
SystemWindow containingWindow;
GuiWidget terminalWindow = testRunner.GetWidgetByName("Gcode Terminal", out containingWindow, secondsToWait: 3);
GuiWidget terminalWindow = testRunner.GetWidgetByName("Gcode Terminal", out containingWindow, 3);
resultsHarness.AddTestResult(terminalWindow != null, "Terminal Window exists after Show Terminal button is clicked");
containingWindow.CloseOnIdle();
testRunner.Wait(.5);
@ -72,14 +72,14 @@ namespace MatterHackers.MatterControl.UI
AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
{
testRunner.ClickByName("SettingsAndControls", secondsToWait: 5);
testRunner.ClickByName("Options Tab", secondsToWait: 6);
testRunner.ClickByName("SettingsAndControls", 5);
testRunner.ClickByName("Options Tab", 6);
bool printNotificationsWindowExists1 = testRunner.WaitForName("Notification Options Window", secondsToWait: 3);
bool printNotificationsWindowExists1 = testRunner.WaitForName("Notification Options Window", 3);
resultsHarness.AddTestResult(printNotificationsWindowExists1 == false, "Print Notification Window does not exist");
testRunner.ClickByName("Configure Notification Settings Button", secondsToWait: 6);
bool printNotificationsWindowExists2 = testRunner.WaitForName("Notification Options Window", secondsToWait: 3);
testRunner.ClickByName("Configure Notification Settings Button", 6);
bool printNotificationsWindowExists2 = testRunner.WaitForName("Notification Options Window", 3);
resultsHarness.AddTestResult(printNotificationsWindowExists2 == true, "Print Notifications Window exists after Configure button is clicked");
MatterControlUtilities.CloseMatterControl(testRunner);

View file

@ -60,7 +60,7 @@ namespace MatterHackers.MatterControl.UI
resultsHarness.AddTestResult(imageExists == false, "Web page is not open");
//Click Buy button and test that the MatterHackers store web page is open
testRunner.ClickByName("Buy Materials Button", secondsToWait: 5);
testRunner.ClickByName("Buy Materials Button", 5);
bool imageExists2 = testRunner.ImageExists("MatterHackersStoreImage.png", 10);
resultsHarness.AddTestResult(imageExists2 == true, "Web page is open");
@ -98,11 +98,11 @@ namespace MatterHackers.MatterControl.UI
bool pluginWindowExists1 = testRunner.WaitForName("Plugin Chooser Window", 0);
resultsHarness.AddTestResult(pluginWindowExists1 == false, "Plugin window does not exist");
testRunner.ClickByName("Design Tool Button", secondsToWait: 5);
testRunner.ClickByName("Design Tool Button", 5);
//Test that the plugin window does exist after the create button is clicked
SystemWindow containingWindow;
GuiWidget pluginWindowExists = testRunner.GetWidgetByName("Plugin Chooser Window", out containingWindow, secondsToWait: 3);
GuiWidget pluginWindowExists = testRunner.GetWidgetByName("Plugin Chooser Window", out containingWindow, 3);
resultsHarness.AddTestResult(pluginWindowExists != null, "Plugin Chooser Window");
pluginWindowExists.CloseOnIdle();
testRunner.Wait(.5);
@ -143,9 +143,9 @@ namespace MatterHackers.MatterControl.UI
bool exportWindowExists1 = testRunner.WaitForName( "Export Window Queue", 0);
resultsHarness.AddTestResult(exportWindowExists1 == false, "Export window does not exist");
testRunner.ClickByName("Export Queue Button", secondsToWait: 5);
testRunner.ClickByName("Export Queue Button", 5);
SystemWindow containingWindow;
GuiWidget exportWindow = testRunner.GetWidgetByName("Export Window Queue", out containingWindow, secondsToWait: 5);
GuiWidget exportWindow = testRunner.GetWidgetByName("Export Window Queue", out containingWindow, 5);
resultsHarness.AddTestResult(exportWindow != null, "Export window does exist");
exportWindow.CloseOnIdle();
testRunner.Wait(.5);
@ -223,7 +223,7 @@ namespace MatterHackers.MatterControl.UI
testRunner.ClickByName("Queue Item Thumbnail");
SystemWindow containingWindow;
GuiWidget partPreviewWindowExists = testRunner.GetWidgetByName("Part Preview Window Thumbnail", out containingWindow, secondsToWait: 3);
GuiWidget partPreviewWindowExists = testRunner.GetWidgetByName("Part Preview Window Thumbnail", out containingWindow, 3);
resultsHarness.AddTestResult(partPreviewWindowExists != null, "Part Preview Window Exists");
partPreviewWindowExists.CloseOnIdle();
testRunner.Wait(.5);
@ -263,7 +263,7 @@ namespace MatterHackers.MatterControl.UI
//resultsHarness.AddTestResult(QueueData.Instance.Count == 0, "Start out with nothing in the queue");
//resultsHarness.AddTestResult(testRunner.ClickByName("Queue Add Button", secondsToWait: 5));
//resultsHarness.AddTestResult(testRunner.ClickByName("Queue Add Button", ));
//resultsHarness.AddTestResult(QueueData.Instance.Count == 1, "We put 1 thing in the queue");

View file

@ -19,23 +19,26 @@ namespace MatterHackers.MatterControl.UI
{
AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
{
testRunner.ClickByName("Library Tab", secondsToWait: 5);
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 Edit", 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));
resultsHarness.AddTestResult(testRunner.ClickByName("3D View Copy", 3));
resultsHarness.AddTestResult(testRunner.ClickByName("3D View Delete", 3));
resultsHarness.AddTestResult(testRunner.ClickByName("Save As Menu", 3));
resultsHarness.AddTestResult(testRunner.ClickByName("Save As Menu Item", 3));
testRunner.Wait(1);
testRunner.Type("Test Part");
resultsHarness.AddTestResult(MatterControlUtilities.NavigateToFolder(testRunner, "Local Library Row Item Collection"));
resultsHarness.AddTestResult(testRunner.ClickByName("Save As Save Button", secondsToWait: 1));
resultsHarness.AddTestResult(testRunner.ClickByName("Save As Save Button", 1));
// ensure that it is now in the library folder (that the folder updated)
resultsHarness.AddTestResult(testRunner.WaitForName("Row Item " + "Test Part", 5));
MatterControlUtilities.CloseMatterControl(testRunner);
}
@ -49,10 +52,10 @@ namespace MatterHackers.MatterControl.UI
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);
AutomationTesterHarness testHarness = AutomationTesterHarness.ShowWindowAndExectueTests(matterControlWindow, testToRun, 45);
MatterControlUtilities.RestoreStaticDataAfterTesting(staticDataState, true);
Assert.IsTrue(testHarness.AllTestsPassed);
Assert.IsTrue(testHarness.TestCount == 7); // make sure we ran all our tests
Assert.IsTrue(testHarness.TestCount == 8); // make sure we ran all our tests
}
}
}

View file

@ -46,8 +46,8 @@ namespace MatterHackers.MatterControl.UI
private static void RemoveAllFromQueue(AutomationRunner testRunner)
{
Assert.IsTrue(testRunner.ClickByName("Queue... Menu", secondsToWait: 2));
Assert.IsTrue(testRunner.ClickByName(" Remove All Menu Item", secondsToWait: 2));
Assert.IsTrue(testRunner.ClickByName("Queue... Menu", 2));
Assert.IsTrue(testRunner.ClickByName(" Remove All Menu Item", 2));
}
public static string DefaultTestImages
@ -61,8 +61,8 @@ namespace MatterHackers.MatterControl.UI
public static void CloseMatterControl(AutomationRunner testRunner)
{
SystemWindow mcWindowLocal = MatterControlApplication.Instance;
Assert.IsTrue(testRunner.ClickByName("File Menu", secondsToWait: 2));
Assert.IsTrue(testRunner.ClickByName("Exit Menu Item", secondsToWait: 2));
Assert.IsTrue(testRunner.ClickByName("File Menu", 2));
Assert.IsTrue(testRunner.ClickByName("Exit Menu Item", 2));
testRunner.Wait(.2);
if (mcWindowLocal.Parent != null)
{
@ -141,7 +141,7 @@ namespace MatterHackers.MatterControl.UI
public static bool NavigateToFolder(AutomationRunner testRunner, string libraryRowItemName)
{
bool goodNavigate = true;
SearchRegion libraryRowItemRegion = testRunner.GetRegionByName(libraryRowItemName, secondsToWait: 3);
SearchRegion libraryRowItemRegion = testRunner.GetRegionByName(libraryRowItemName, 3);
goodNavigate &= testRunner.ClickByName(libraryRowItemName);
goodNavigate &= testRunner.MoveToByName(libraryRowItemName);
testRunner.Wait(.5);