Fix CancelWorksAsExpected & RaftEnabledPassedToSliceEngine tests

- Make start/stop print automatable
- Make test helpers for:
  - OpenPrintPopupMenu
  - StartPrint
  - OpenGCode3DOverflowMenu
  - SwitchToSliceSettings
  - EnsurePrintersSidebarOpen
This commit is contained in:
John Lewin 2017-12-14 16:19:22 -08:00
parent 3f7dadf63d
commit deed45ab4a
9 changed files with 88 additions and 89 deletions

View file

@ -16,7 +16,7 @@ namespace MatterHackers.MatterControl.Tests.Automation
// Add printer that has hardware leveling
testRunner.AddAndSelectPrinter("Airwolf 3D", "HD");
testRunner.SwitchToAdvancedSliceSettings();
testRunner.SwitchToSliceSettings();
testRunner.ClickByName("Printer Tab");
testRunner.Delay(1);
@ -68,12 +68,11 @@ namespace MatterHackers.MatterControl.Tests.Automation
Assert.IsFalse(testRunner.WaitForName("Finish Setup Button", .5), "Finish Setup should not be visible after leveling the printer");
// reset to defaults and make sure print leveling is cleared
testRunner.SwitchToAdvancedSliceSettings();
testRunner.SwitchToSliceSettings();
testRunner.ClickByName("Slice Settings Overflow Menu");
testRunner.ClickByName("Reset to Defaults Menu Item");
testRunner.ClickByName("Yes Button");
testRunner.Delay(1);
// make sure it is showing the correct button
Assert.IsTrue(!testRunner.WaitForName("Start Print Button"), "Start Print should be visible after reset to Defaults");

View file

@ -21,7 +21,7 @@ namespace MatterHackers.MatterControl.Tests.Automation
testRunner.AddAndSelectPrinter("Airwolf 3D", "HD");
testRunner.SwitchToAdvancedSliceSettings();
testRunner.SwitchToSliceSettings();
testRunner.ClickByName("Printer Tab");

View file

@ -27,7 +27,7 @@ namespace MatterHackers.MatterControl.Tests.Automation
{
Assert.IsTrue(ProfileManager.Instance.ActiveProfile != null);
testRunner.SwitchToAdvancedSliceSettings();
testRunner.SwitchToSliceSettings();
testRunner.ClickByName("Printer Tab");
testRunner.ClickByName("Custom G-Code Tab");
@ -70,7 +70,7 @@ namespace MatterHackers.MatterControl.Tests.Automation
// close the finish setup window
testRunner.ClickByName("Cancel Button");
testRunner.SwitchToAdvancedSliceSettings();
testRunner.SwitchToSliceSettings();
testRunner.ClickByName("General Tab");
testRunner.ClickByName("Single Print Tab");
@ -221,7 +221,7 @@ namespace MatterHackers.MatterControl.Tests.Automation
{
Assert.IsTrue(ProfileManager.Instance.ActiveProfile != null);
testRunner.SwitchToAdvancedSliceSettings();
testRunner.SwitchToSliceSettings();
testRunner.ClickByName("General Tab");
testRunner.ClickByName("Single Print Tab");
@ -269,7 +269,7 @@ namespace MatterHackers.MatterControl.Tests.Automation
Assert.IsTrue(ProfileManager.Instance.ActiveProfile != null);
testRunner.SwitchToAdvancedSliceSettings();
testRunner.SwitchToSliceSettings();
testRunner.ClickByName("General Tab");
testRunner.ClickByName("Single Print Tab");

View file

@ -25,7 +25,7 @@ namespace MatterHackers.MatterControl.Tests.Automation
testRunner.AddItemToBedplate("", "Row Item Rook");
testRunner.SwitchToAdvancedSliceSettings();
testRunner.SwitchToSliceSettings();
testRunner.ClickByName("Raft / Skirt / Brim Tab");
testRunner.ClickByName("Create Raft Field");
@ -50,7 +50,7 @@ namespace MatterHackers.MatterControl.Tests.Automation
{
Assert.IsTrue(ProfileManager.Instance.ActiveProfile != null);
testRunner.SwitchToAdvancedSliceSettings();
testRunner.SwitchToSliceSettings();
testRunner.ClickByName("General Tab");
testRunner.ClickByName("Single Print Tab");
@ -91,51 +91,39 @@ namespace MatterHackers.MatterControl.Tests.Automation
{
using (var emulator = testRunner.LaunchAndConnectToPrinterEmulator())
{
ActiveSliceSettings.Instance.SetValue(SettingsKey.cancel_gcode, "G28 ; Cancel GCode");
var printer = ApplicationController.Instance.ActivePrinter;
printer.Settings.SetValue(SettingsKey.cancel_gcode, "G28 ; Cancel GCode");
Assert.IsTrue(ProfileManager.Instance.ActiveProfile != null);
testRunner.SwitchToAdvancedSliceSettings();
testRunner.OpenPrintPopupMenu();
testRunner.ClickByName("General Tab");
testRunner.ClickByName("Single Print Tab");
testRunner.ClickByName("Layer(s) To Pause Field");
testRunner.Type("2");
testRunner.AddItemToBedplate();
testRunner.StartSlicing();
// Force lose focus to drop Slice popup window to expose OverFlow menu
testRunner.ClickByName("Library Up Button");
testRunner.ClickByName("Pin Settings Button");
testRunner.ClickByName("View3D Overflow Menu");
// Turn on Sync-to-print
testRunner.OpenGCode3DOverflowMenu();
testRunner.ClickByName("Sync To Print Menu Item");
testRunner.ClickByName("Start Print Button");
testRunner.StartPrint();
// assert the leveling is working
testRunner.WaitForName("Yes Button", 200);
// close the pause dialog pop-up
// Wait for the Ok button
testRunner.WaitForName("Yes Button", 30);
testRunner.ClickByName("Yes Button");
testRunner.WaitForName("Resume Button", 30);
testRunner.ClickByName("Cancel Print Button");
// Cancel the Printing task
testRunner.ClickByName("Stop Task Button");
Assert.IsTrue(testRunner.NameExists("Start Print Button"));
// Wait for and assert that printing has been canceled
testRunner.Delay(() => printer.Connection.CommunicationState == PrinterCommunication.CommunicationStates.Connected);
Assert.IsTrue(printer.Connection.CommunicationState == PrinterCommunication.CommunicationStates.Connected);
int g28Count = 0;
foreach(var line in ApplicationController.Instance.ActivePrinter.Connection.TerminalLog.PrinterLines)
{
if(line.Contains("G28"))
{
g28Count++;
}
}
Assert.AreEqual(2, g28Count, "There should be the start come and the cancel print home");
// Assert that two G28s were output to the terminal
int g28Count = printer.Connection.TerminalLog.PrinterLines.Where(line => line.Contains("G28")).Count();
Assert.AreEqual(2, g28Count, "The terminal log should contain one G28 from Start-GCode and one G28 from Cancel-GCode");
}
return Task.CompletedTask;
@ -168,7 +156,7 @@ namespace MatterHackers.MatterControl.Tests.Automation
testRunner.AddAndSelectPrinter("Airwolf 3D", "HD");
// Navigate to Local Library
testRunner.SwitchToAdvancedSliceSettings();
testRunner.SwitchToSliceSettings();
testRunner.ClickByName("Printer Tab");
testRunner.ClickByName("Features Tab");
@ -194,7 +182,7 @@ namespace MatterHackers.MatterControl.Tests.Automation
using (var emulator = testRunner.LaunchAndConnectToPrinterEmulator())
{
// Navigate to Local Library
testRunner.SwitchToAdvancedSliceSettings();
testRunner.SwitchToSliceSettings();
testRunner.ClickByName("Printer Tab");
testRunner.ClickByName("Features Tab");
@ -329,7 +317,7 @@ namespace MatterHackers.MatterControl.Tests.Automation
testRunner.AddAndSelectPrinter("Airwolf 3D", "HD");
// Navigate to Local Library
testRunner.SwitchToAdvancedSliceSettings();
testRunner.SwitchToSliceSettings();
testRunner.ClickByName("General Tab");
testRunner.ClickByName("Layers / Surface Tab");
@ -417,7 +405,7 @@ namespace MatterHackers.MatterControl.Tests.Automation
testRunner.AddAndSelectPrinter("Airwolf 3D", "HD");
// Navigate to Settings Tab and make sure Bed Temp Text box is visible
testRunner.SwitchToAdvancedSliceSettings();
testRunner.SwitchToSliceSettings();
testRunner.ClickByName("Filament Tab");
testRunner.ClickByName("Temperatures Tab");
@ -458,7 +446,7 @@ namespace MatterHackers.MatterControl.Tests.Automation
// Add Guest printers
testRunner.AddAndSelectPrinter("Airwolf 3D", "HD");
testRunner.SwitchToAdvancedSliceSettings();
testRunner.SwitchToSliceSettings();
testRunner.ClickByName("Layer Thickness Field");
testRunner.Type(".5\n");