91 lines
3.3 KiB
C#
91 lines
3.3 KiB
C#
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using NUnit.Framework;
|
|
using TestInvoker;
|
|
|
|
namespace MatterHackers.MatterControl.Tests.Automation
|
|
{
|
|
[TestFixture, Category("MatterControl.UI.Automation"), Parallelizable(ParallelScope.Children)]
|
|
public class HardwareLevelingUITests
|
|
{
|
|
[Test, ChildProcessTest]
|
|
public async Task HasHardwareLevelingHidesLevelingSettings()
|
|
{
|
|
await MatterControlUtilities.RunTest((testRunner) =>
|
|
{
|
|
testRunner.WaitForFirstDraw();
|
|
|
|
// Add printer that has hardware leveling
|
|
testRunner.AddAndSelectPrinter("Airwolf 3D", "HD");
|
|
|
|
testRunner.SwitchToPrinterSettings();
|
|
testRunner.ClickByName("Features SliceSettingsTab");
|
|
testRunner.ClickByName("Slice Settings Overflow Menu");
|
|
testRunner.ClickByName("Advanced Menu Item");
|
|
Assert.IsFalse(testRunner.WaitForName("print_leveling_solution Row", .5), "Print leveling should not exist for an Airwolf HD");
|
|
|
|
// Add printer that does not have hardware leveling
|
|
testRunner.AddAndSelectPrinter("3D Factory", "MendelMax 1.5");
|
|
|
|
testRunner.SwitchToPrinterSettings();
|
|
testRunner.ClickByName("Features SliceSettingsTab");
|
|
testRunner.ClickByName("Slice Settings Overflow Menu");
|
|
testRunner.ClickByName("Advanced Menu Item");
|
|
Assert.IsTrue(testRunner.WaitForName("print_leveling_solution Row"), "Print leveling should exist for a 3D Factory MendelMax");
|
|
|
|
return Task.CompletedTask;
|
|
}, overrideHeight: 800);
|
|
}
|
|
|
|
// NOTE: This test once failed, due to timing probably.
|
|
[Test, ChildProcessTest, Category("Emulator")]
|
|
public async Task SoftwareLevelingTest()
|
|
{
|
|
await MatterControlUtilities.RunTest((testRunner) =>
|
|
{
|
|
// make a jump start printer
|
|
using (var emulator = testRunner.LaunchAndConnectToPrinterEmulator("JumpStart", "V1", runSlow: false))
|
|
{
|
|
// make sure it is showing the correct button
|
|
testRunner.OpenPrintPopupMenu();
|
|
|
|
var startPrintButton = testRunner.GetWidgetByName("Start Print Button", out _);
|
|
|
|
Assert.IsFalse(startPrintButton.Enabled, "Start Print should not be enabled");
|
|
|
|
testRunner.ClickByName("SetupPrinter");
|
|
|
|
testRunner.Complete9StepLeveling();
|
|
|
|
// Satisfy non-empty bed requirement
|
|
testRunner.AddItemToBed();
|
|
|
|
testRunner.OpenPrintPopupMenu();
|
|
|
|
// make sure the button has changed to start print
|
|
startPrintButton = testRunner.GetWidgetByName("Start Print Button", out _);
|
|
Assert.IsTrue(startPrintButton.Enabled, "Start Print should be enabled after running printer setup");
|
|
Assert.IsFalse(testRunner.WaitForName("SetupPrinter", .5), "Finish Setup should not be visible after leveling the printer");
|
|
|
|
// reset to defaults and make sure print leveling is cleared
|
|
testRunner.SwitchToSliceSettings();
|
|
|
|
testRunner.WaitForReloadAll(() =>
|
|
{
|
|
testRunner.ClickByName("Printer Overflow Menu");
|
|
testRunner.ClickByName("Reset to Defaults... Menu Item");
|
|
testRunner.ClickByName("Yes Button");
|
|
});
|
|
|
|
testRunner.OpenPrintPopupMenu();
|
|
|
|
// make sure it is showing the correct button
|
|
Assert.IsTrue(testRunner.WaitForName("SetupPrinter"), "Setup... should be visible after reset to Defaults");
|
|
}
|
|
|
|
return Task.CompletedTask;
|
|
}, maxTimeToRun: 90); // NOTE: This test got stuck in ClickByName("Yes Button") -> WaitforDraw. It appears to be because WaitforDraw waited for a closed window to redraw itself.
|
|
}
|
|
}
|
|
}
|
|
|