예제 #1
0
        public void ClearingCheckBoxClearsUserOverride()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    MatterControlUtilities.PrepForTestRun(testRunner);

                    MatterControlUtilities.AddAndSelectPrinter(testRunner, "Airwolf 3D", "HD");

                    //Navigate to Local Library
                    MatterControlUtilities.SwitchToAdvancedSettings(testRunner, resultsHarness);

                    resultsHarness.AddTestResult(testRunner.ClickByName("Printer Tab", 1), "Switch to Printers tab");
                    resultsHarness.AddTestResult(testRunner.ClickByName("Features Tab", 1), "Switch to Features tab");

                    CheckAndUncheckSetting(resultsHarness, testRunner, SettingsKey.heat_extruder_before_homing, "Heat Before Homing Checkbox", false);

                    CheckAndUncheckSetting(resultsHarness, testRunner, SettingsKey.has_fan, "Has Fan Checkbox", true);

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, overrideWidth: 1224, overrideHeight: 900);

            Assert.IsTrue(testHarness.AllTestsPassed(20));
        }
예제 #2
0
        public void HasHeatedBedCheckUncheck()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    MatterControlUtilities.PrepForTestRun(testRunner);

                    MatterControlUtilities.AddAndSelectPrinter(testRunner, "Airwolf 3D", "HD");

                    //Navigate to Local Library
                    MatterControlUtilities.SwitchToAdvancedSettings(testRunner, resultsHarness);

                    resultsHarness.AddTestResult(testRunner.ClickByName("Printer Tab"));
                    testRunner.Wait(1);

                    resultsHarness.AddTestResult(testRunner.ClickByName("Features Tab"));
                    testRunner.Wait(2);

                    for (int i = 0; i <= 1000; i++)
                    {
                        resultsHarness.AddTestResult(testRunner.ClickByName("Has Heated Bed Checkbox"));
                        testRunner.Wait(.5);
                    }

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);

            Assert.IsTrue(testHarness.AllTestsPassed(1010));
        }
예제 #3
0
        public async Task PrinterNameStaysChanged()
        {
            AutomationTest testToRun = (testRunner) =>
            {
                testRunner.CloseSignInAndPrinterSelect();

                MatterControlUtilities.AddAndSelectPrinter(testRunner, "Airwolf 3D", "HD");

                MatterControlUtilities.SwitchToAdvancedSettings(testRunner);

                testRunner.ClickByName("Printer Tab", 1);

                string widgetName = "Printer Name Edit";
                testRunner.ClickByName(widgetName);

                SystemWindow window;
                var          textWidget = testRunner.GetWidgetByName(widgetName, out window);
                string       newName    = "Updated name";
                textWidget.Text = newName;
                testRunner.ClickByName("Printer Tab", 1);
                testRunner.Delay(4);

                //Check to make sure the Printer dropdown gets the name change
                testRunner.ClickByName("Printers... Menu", 2);
                testRunner.Delay(1);
                Assert.IsTrue(testRunner.NameExists(newName + " Menu Item"), "Widget with updated printer name exists");

                //Make sure the Active profile name changes as well
                Assert.IsTrue(ProfileManager.Instance.ActiveProfile.Name == newName, "ActiveProfile has updated name");

                return(Task.FromResult(0));
            };

            await MatterControlUtilities.RunTest(testToRun);
        }
        public async Task HasHardwareLevelingHidesLevelingSettings()
        {
            AutomationTest testToRun = (testRunner) =>
            {
                testRunner.CloseSignInAndPrinterSelect();

                //Add printer that has hardware leveling
                MatterControlUtilities.AddAndSelectPrinter(testRunner, "Airwolf 3D", "HD");

                MatterControlUtilities.SwitchToAdvancedSettings(testRunner);

                testRunner.ClickByName("Printer Tab", 1);
                testRunner.Delay(1);

                //Make sure Print Leveling tab is not visible
                bool testPrintLeveling = testRunner.WaitForName("Print Leveling Tab", 3);
                Assert.IsTrue(testPrintLeveling == false);

                //Add printer that does not have hardware leveling
                MatterControlUtilities.AddAndSelectPrinter(testRunner, "3D Factory", "MendelMax 1.5");

                testRunner.ClickByName("Slice Settings Tab", 1);

                testRunner.ClickByName("Printer Tab", 1);

                //Make sure Print Leveling tab is visible
                bool printLevelingVisible = testRunner.WaitForName("Print Leveling Tab", 2);
                Assert.IsTrue(printLevelingVisible == true);

                return(Task.FromResult(0));
            };

            await MatterControlUtilities.RunTest(testToRun, overrideHeight : 800);
        }
예제 #5
0
        public void SoftwareLevelingRequiredCorrectWorkflow()
        {
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    MatterControlUtilities.PrepForTestRun(testRunner);

                    // make a jump start printer
                    var emualtorProccess = MatterControlUtilities.LaunchAndConnectToPrinterEmulator(testRunner, false, "JumStart", "V1");

                    // make sure it is showing the correct button
                    resultsHarness.AddTestResult(!testRunner.WaitForName("Start Print Button", .5), "Start Print hidden");
                    resultsHarness.AddTestResult(testRunner.WaitForName("Finish Setup Button", .5), "Finish Setup showing");

                    // do print leveling
                    testRunner.ClickByName("Next Button", .5);
                    testRunner.ClickByName("Next Button", .5);
                    testRunner.ClickByName("Next Button", .5);
                    for (int i = 0; i < 3; i++)
                    {
                        testRunner.ClickByName("Move Z positive", .5);
                        testRunner.ClickByName("Next Button", .5);
                        testRunner.ClickByName("Next Button", .5);
                        testRunner.ClickByName("Next Button", .5);
                    }

                    resultsHarness.AddTestResult(testRunner.ClickByName("Done Button", .5), "Found Done button");

                    // make sure the button has changed to start print
                    resultsHarness.AddTestResult(testRunner.WaitForName("Start Print Button", .5), "Start Print showing");
                    resultsHarness.AddTestResult(!testRunner.WaitForName("Finish Setup Button", .5), "Finish Setup hidden");

                    // reset to defaults and make sure print leveling is cleared
                    MatterControlUtilities.SwitchToAdvancedSettings(testRunner, resultsHarness);

                    resultsHarness.AddTestResult(testRunner.ClickByName("Slice Settings Options Menu", 1), "Click Options");
                    resultsHarness.AddTestResult(testRunner.ClickByName("Reset to defaults Menu Item", 1), "Select Reset to defaults");
                    resultsHarness.AddTestResult(testRunner.ClickByName("Yes Button", .5), "Click yes to revert");
                    testRunner.Wait(1);

                    // make sure it is showing the correct button
                    resultsHarness.AddTestResult(!testRunner.WaitForName("Start Print Button", .5), "Start Print hidden");
                    resultsHarness.AddTestResult(testRunner.WaitForName("Finish Setup Button", .5), "Finish Setup showing");

                    MatterControlUtilities.CloseMatterControl(testRunner);

                    try
                    {
                        emualtorProccess.Kill();
                    }
                    catch { }
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);

            Assert.IsTrue(testHarness.AllTestsPassed(12));
        }
예제 #6
0
        public async Task PulseRequiresLevelingAndLevelingWorks()
        {
            AutomationTest testToRun = (testRunner) =>
            {
                testRunner.WaitForName("Cancel Wizard Button", 1);

                using (var emulatorDisposable = testRunner.LaunchAndConnectToPrinterEmulator("Pulse", "A-134"))
                {
                    var emulator = emulatorDisposable as Emulator;
                    Assert.IsTrue(ProfileManager.Instance.ActiveProfile != null);

                    // close the finish setup window
                    testRunner.ClickByName("Cancel Button");

                    MatterControlUtilities.SwitchToAdvancedSettings(testRunner);

                    testRunner.ClickByName("General Tab", 1);
                    testRunner.ClickByName("Single Print Tab", 1);
                    testRunner.ClickByName("Layer(s) To Pause: Edit");
                    testRunner.Type("2");

                    // switch to controls so we can see the heights
                    testRunner.ClickByName("Controls Tab");

                    // run the leveling wizard
                    testRunner.ClickByName("Finish Setup Button");
                    testRunner.ClickByName("Next Button");
                    testRunner.ClickByName("Next Button");
                    testRunner.ClickByName("Next Button");
                    testRunner.ClickByName("Next Button");
                    for (int i = 0; i < 3; i++)
                    {
                        testRunner.ClickByName("Move Z positive", .5);
                        testRunner.ClickByName("Next Button", .5);
                        testRunner.ClickByName("Next Button", .5);
                        testRunner.ClickByName("Next Button", .5);
                    }
                    testRunner.ClickByName("Done Button");

                    testRunner.Delay(1);

                    // print a part
                    testRunner.ClickByName("Start Print Button", 1);
                    // assert the leveling is working
                    testRunner.WaitForName("Resume Button", 200);

                    Assert.Greater(emulator.ZPosition, 5);

                    testRunner.ClickByName("Cancel Print Button", 1);
                }

                return(Task.FromResult(0));
            };

            await MatterControlUtilities.RunTest(testToRun, maxTimeToRun : 300);
        }
        public async Task CancelWorksAsExpected()
        {
            AutomationTest testToRun = (testRunner) =>
            {
                testRunner.WaitForName("Cancel Wizard Button", 1);

                using (var emulatorDisposable = testRunner.LaunchAndConnectToPrinterEmulator())
                {
                    ActiveSliceSettings.Instance.SetValue(SettingsKey.cancel_gcode, "G28 ; Cancel GCode");

                    Assert.IsTrue(ProfileManager.Instance.ActiveProfile != null);

                    MatterControlUtilities.SwitchToAdvancedSettings(testRunner);

                    testRunner.ClickByName("General Tab", 1);
                    testRunner.ClickByName("Single Print Tab", 1);
                    testRunner.ClickByName("Layer(s) To Pause: Edit");
                    testRunner.Type("2");

                    testRunner.ClickByName("Layer View Tab");

                    testRunner.ClickByName("Generate Gcode Button", 1);
                    testRunner.ClickByName("Display Checkbox", 10);
                    testRunner.ClickByName("Sync To Print Checkbox", 1);

                    testRunner.ClickByName("Start Print Button", 1);

                    testRunner.WaitForName("Resume Button", 30);
                    testRunner.ClickByName("Cancel Print Button");

                    testRunner.WaitForName("Start Print Button", 1);
                    Assert.IsTrue(testRunner.NameExists("Start Print Button"));

                    int g28Count = 0;
                    foreach (var line in PrinterOutputCache.Instance.PrinterLines)
                    {
                        if (line.Contains("G28"))
                        {
                            g28Count++;
                        }
                    }

                    Assert.AreEqual(2, g28Count, "There should be the start come and the cancel print home");
                }

                return(Task.FromResult(0));
            };

            await MatterControlUtilities.RunTest(testToRun, maxTimeToRun : 90);
        }
        public async Task SoftwareLevelingRequiredCorrectWorkflow()
        {
            AutomationTest testToRun = (testRunner) =>
            {
                testRunner.CloseSignInAndPrinterSelect();

                // make a jump start printer
                using (var emulatorProcess = testRunner.LaunchAndConnectToPrinterEmulator("JumpStart", "V1", runSlow: false))
                {
                    // make sure it is showing the correct button
                    Assert.IsTrue(!testRunner.WaitForName("Start Print Button", .5), "Start Print hidden");
                    Assert.IsTrue(testRunner.WaitForName("Finish Setup Button", .5), "Finish Setup showing");

                    // do print leveling
                    testRunner.ClickByName("Next Button", .5);
                    testRunner.ClickByName("Next Button", .5);
                    testRunner.ClickByName("Next Button", .5);
                    for (int i = 0; i < 3; i++)
                    {
                        testRunner.ClickByName("Move Z positive", .5);
                        testRunner.ClickByName("Next Button", .5);
                        testRunner.ClickByName("Next Button", .5);
                        testRunner.ClickByName("Next Button", .5);
                    }

                    testRunner.ClickByName("Done Button", 1);

                    // make sure the button has changed to start print
                    Assert.IsTrue(testRunner.WaitForName("Start Print Button", 5), "Start Print showing");
                    Assert.IsTrue(!testRunner.WaitForName("Finish Setup Button", 1), "Finish Setup hidden");

                    // reset to defaults and make sure print leveling is cleared
                    MatterControlUtilities.SwitchToAdvancedSettings(testRunner);

                    testRunner.ClickByName("Slice Settings Options Menu", 1);
                    testRunner.ClickByName("Reset to Defaults Menu Item", 1);
                    testRunner.ClickByName("Yes Button", .5);
                    testRunner.Delay(1);

                    // make sure it is showing the correct button
                    Assert.IsTrue(!testRunner.WaitForName("Start Print Button", 1), "Start Print hidden");
                    Assert.IsTrue(testRunner.WaitForName("Finish Setup Button", 1), "Finish Setup showing");
                }

                return(Task.FromResult(0));
            };

            await MatterControlUtilities.RunTest(testToRun);
        }
        public async Task RaftEnabledPassedToSliceEngine()
        {
            AutomationTest testToRun = (testRunner) =>
            {
                testRunner.CloseSignInAndPrinterSelect();

                MatterControlUtilities.AddAndSelectPrinter(testRunner, "Airwolf 3D", "HD");

                // Navigate to Local Library
                testRunner.ClickByName("Library Tab");
                testRunner.NavigateToFolder("Local Library Row Item Collection");
                testRunner.Delay(1);

                testRunner.ClickByName("Row Item Calibration - Box");
                testRunner.Delay(.2);

                // Add the Calibration box to the queue and selects it
                testRunner.ClickByName("Row Item Calibration - Box Print Button");
                testRunner.Delay(1);

                testRunner.ClickByName("Layer View Tab");
                testRunner.Delay(.2);

                testRunner.ClickByName("Bread Crumb Button Home", 1);
                testRunner.Delay(.2);

                MatterControlUtilities.SwitchToAdvancedSettings(testRunner);
                testRunner.Delay(.2);

                testRunner.ClickByName("Raft / Priming Tab", 1);
                testRunner.Delay(.2);

                testRunner.ClickByName("Create Raft Checkbox", 1);
                testRunner.Delay(1.5);

                testRunner.ClickByName("Generate Gcode Button", 1);
                testRunner.Delay(2);

                testRunner.Delay(() => MatterControlUtilities.CompareExpectedSliceSettingValueWithActualVaue("enableRaft", "True"), 10);

                //Call compare slice settings method here
                Assert.IsTrue(MatterControlUtilities.CompareExpectedSliceSettingValueWithActualVaue("enableRaft", "True"));

                return(Task.FromResult(0));
            };

            await MatterControlUtilities.RunTest(testToRun, overrideWidth : 1224, overrideHeight : 800);
        }
예제 #10
0
        public void PauseOnLayerDoesPauseOnPrint()
        {
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner();
                {
                    MatterControlUtilities.PrepForTestRun(testRunner, MatterControlUtilities.PrepAction.CloseSignInAndPrinterSelect);

                    var emualtorProccess = MatterControlUtilities.LaunchAndConnectToPrinterEmulator(testRunner);

                    resultsHarness.AddTestResult(ProfileManager.Instance.ActiveProfile != null);

                    MatterControlUtilities.SwitchToAdvancedSettings(testRunner, resultsHarness);

                    resultsHarness.AddTestResult(testRunner.ClickByName("General Tab", 1));
                    resultsHarness.AddTestResult(testRunner.ClickByName("Single Print Tab", 1));
                    resultsHarness.AddTestResult(testRunner.ClickByName("Layer(s) To Pause:" + " Edit"));
                    testRunner.Type("4;2;a;not;6");

                    resultsHarness.AddTestResult(testRunner.ClickByName("Layer View Tab"));

                    resultsHarness.AddTestResult(testRunner.ClickByName("Generate Gcode Button", 1));
                    resultsHarness.AddTestResult(testRunner.ClickByName("Display Checkbox", 10));
                    resultsHarness.AddTestResult(testRunner.ClickByName("Sync To Print Checkbox", 1));

                    resultsHarness.AddTestResult(testRunner.ClickByName("Start Print Button", 1));

                    WaitForLayerAndResume(resultsHarness, testRunner, 2);
                    WaitForLayerAndResume(resultsHarness, testRunner, 4);
                    WaitForLayerAndResume(resultsHarness, testRunner, 6);

                    resultsHarness.AddTestResult(testRunner.WaitForName("Done Button", 30));
                    resultsHarness.AddTestResult(testRunner.WaitForName("Print Again Button", 1));

                    try
                    {
                        emualtorProccess.Kill();
                    }
                    catch {}

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, maxTimeToRun: 200);

            Assert.IsTrue(testHarness.AllTestsPassed(19));
        }
예제 #11
0
        public void RaftEnabledPassedToSliceEngine()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    MatterControlUtilities.PrepForTestRun(testRunner);

                    MatterControlUtilities.AddAndSelectPrinter(testRunner, "Airwolf 3D", "HD");

                    //Navigate to Local Library
                    testRunner.ClickByName("Library Tab");
                    MatterControlUtilities.NavigateToFolder(testRunner, "Local Library Row Item Collection");
                    testRunner.Wait(1);
                    testRunner.ClickByName("Row Item Calibration - Box");
                    testRunner.ClickByName("Row Item Calibration - Box Print Button");
                    testRunner.Wait(1);

                    testRunner.ClickByName("Layer View Tab");

                    testRunner.ClickByName("Bread Crumb Button Home", 1);

                    MatterControlUtilities.SwitchToAdvancedSettings(testRunner, resultsHarness);

                    testRunner.ClickByName("Raft / Priming Tab", 1);

                    testRunner.ClickByName("Create Raft Checkbox", 1);
                    testRunner.Wait(1.5);
                    testRunner.ClickByName("Generate Gcode Button", 1);
                    testRunner.Wait(5);

                    //Call compare slice settings methode here
                    resultsHarness.AddTestResult(MatterControlUtilities.CompareExpectedSliceSettingValueWithActualVaue("enableRaft", "True"));


                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, overrideWidth: 1224, overrideHeight: 800);

            Assert.IsTrue(testHarness.AllTestsPassed(3));
        }
        public void PrinterNameStaysChanged()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);

                // Now do the actions specific to this test. (replace this for new tests)
                {
                    MatterControlUtilities.PrepForTestRun(testRunner);

                    MatterControlUtilities.AddAndSelectPrinter(testRunner, "Airwolf 3D", "HD");

                    MatterControlUtilities.SwitchToAdvancedSettings(testRunner, resultsHarness);

                    resultsHarness.AddTestResult(testRunner.ClickByName("Printer Tab", 1), "Click Printer Tab");

                    string widgetName = "Printer Name Edit";
                    testRunner.ClickByName(widgetName);

                    SystemWindow window;
                    var          textWidget = testRunner.GetWidgetByName(widgetName, out window);
                    string       newName    = "Updated name";
                    textWidget.Text = newName;
                    testRunner.ClickByName("Printer Tab", 1);
                    testRunner.Wait(4);

                    //Check to make sure the Printer dropdown gets the name change
                    testRunner.ClickByName("Printers... Menu", 2);
                    testRunner.Wait(1);
                    resultsHarness.AddTestResult(testRunner.NameExists(newName + " Menu Item"), "Widget with updated printer name exists");

                    //Make sure the Active profile name changes as well
                    resultsHarness.AddTestResult(ProfileManager.Instance.ActiveProfile.Name == newName, "ActiveProfile has updated name");

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);

            Assert.IsTrue(testHarness.AllTestsPassed(5));
        }
예제 #13
0
        public void HasHeatedBedCheckedHidesBedTemperatureOptions()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    MatterControlUtilities.PrepForTestRun(testRunner);

                    MatterControlUtilities.AddAndSelectPrinter(testRunner, "Airwolf 3D", "HD");

                    //Navigate to Settings Tab and make sure Bed Temp Text box is visible
                    MatterControlUtilities.SwitchToAdvancedSettings(testRunner, resultsHarness);

                    testRunner.ClickByName("Filament Tab", 1);
                    testRunner.ClickByName("Temperatures Tab", 1);
                    resultsHarness.AddTestResult(testRunner.WaitForName("Bed Temperature Textbox", 2));

                    //Uncheck Has Heated Bed checkbox and make sure Bed Temp Textbox is not visible
                    testRunner.ClickByName("Printer Tab", 1);
                    testRunner.ClickByName("Features Tab", 1);
                    testRunner.DragByName("Show Reset Connection Checkbox", 1, offset: new Agg.Point2D(-40, 0));
                    testRunner.MoveToByName("Show Reset Connection Checkbox", 1, offset: new Agg.Point2D(0, 120));
                    testRunner.Drop();
                    testRunner.ClickByName("Has Heated Bed Checkbox", 1);
                    testRunner.Wait(.5);
                    testRunner.ClickByName("Filament Tab", 1);
                    bool bedTemperatureTextBoxVisible = testRunner.WaitForName("Bed Temperature Textbox", 2);
                    resultsHarness.AddTestResult(bedTemperatureTextBoxVisible == false);

                    //Make sure Bed Temperature Options are not visible in printer controls
                    testRunner.ClickByName("Controls Tab");
                    bool bedTemperatureControlsWidget = testRunner.WaitForName("Bed Temperature Controls Widget", 2);
                    resultsHarness.AddTestResult(bedTemperatureTextBoxVisible == false);

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, overrideWidth: 550);

            Assert.IsTrue(testHarness.AllTestsPassed(5));
        }
        public async Task SettingsStayAsOverrides()
        {
            AutomationTest testToRun = (testRunner) =>
            {
                testRunner.CloseSignInAndPrinterSelect();

                // Add Guest printers
                MatterControlUtilities.AddAndSelectPrinter(testRunner, "Airwolf 3D", "HD");
                MatterControlUtilities.SwitchToAdvancedSettings(testRunner);


                testRunner.ClickByName("Layer Height Textbox", 2);
                testRunner.Type(".5\n");
                testRunner.Delay(.5);
                Assert.AreEqual(ActiveSliceSettings.Instance.GetValue <double>(SettingsKey.layer_height), .5, "Layer height is what we set it to");
                testRunner.ClickByName("Quality", 2);
                testRunner.ClickByName("Fine Menu", 2);

                testRunner.Delay(.5);
                Assert.AreEqual(ActiveSliceSettings.Instance.GetValue <double>(SettingsKey.layer_height), .1, "Layer height is the fine override");

                MatterControlUtilities.AddAndSelectPrinter(testRunner, "BCN", "Sigma");

                // Check Guest printer count
                Assert.AreEqual(2, ProfileManager.Instance.ActiveProfiles.Count(), "ProfileManager has 2 Profiles");

                // Check if Guest printer names exists in dropdown
                testRunner.ClickByName("Printers... Menu", 2);
                testRunner.ClickByName("Airwolf 3D HD Menu Item", 5);

                testRunner.Delay(1);
                Assert.AreEqual(ActiveSliceSettings.Instance.GetValue <double>(SettingsKey.layer_height), .1, "Layer height is the fine override");

                testRunner.ClickByName("Quality", 2);
                testRunner.ClickByName("- none - Menu Item", 2, delayBeforeReturn: .5);
                Assert.AreEqual(ActiveSliceSettings.Instance.GetValue <double>(SettingsKey.layer_height), .5, "Layer height is what we set it to");

                return(Task.FromResult(0));
            };

            await MatterControlUtilities.RunTest(testToRun, maxTimeToRun : 120);
        }
예제 #15
0
        public async Task SwitchingMaterialsCausesSettingsChangedEvents()
        {
            AutomationTest testToRun = (testRunner) =>
            {
                EventHandler unregisterEvents        = null;
                int          layerHeightChangedCount = 0;
                ActiveSliceSettings.SettingChanged.RegisterEvent((s, e) =>
                {
                    StringEventArgs stringEvent = e as StringEventArgs;
                    if (stringEvent != null)
                    {
                        if (stringEvent.Data == SettingsKey.layer_height)
                        {
                            layerHeightChangedCount++;
                        }
                    }
                }, ref unregisterEvents);

                testRunner.CloseSignInAndPrinterSelect();

                MatterControlUtilities.AddAndSelectPrinter(testRunner, "Airwolf 3D", "HD");

                //Navigate to Local Library
                MatterControlUtilities.SwitchToAdvancedSettings(testRunner);

                testRunner.ClickByName("General Tab", 1);
                testRunner.ClickByName("Layers / Surface Tab", 1);

                Assert.AreEqual(0, layerHeightChangedCount, "No change to layer height yet.");
                testRunner.ClickByName("Quality", 2);
                testRunner.ClickByName("Fine Menu", 2, delayBeforeReturn: .5);
                Assert.AreEqual(1, layerHeightChangedCount, "Changed to fine.");
                testRunner.ClickByName("Quality", 2);
                testRunner.ClickByName("Standard Menu", 2, delayBeforeReturn: .5);
                Assert.AreEqual(2, layerHeightChangedCount, "Changed to standard.");

                return(Task.FromResult(0));
            };

            await MatterControlUtilities.RunTest(testToRun, overrideWidth : 1224, overrideHeight : 900);
        }
        public async Task PauseOnLayerDoesPauseOnPrint()
        {
            AutomationTest testToRun = (testRunner) =>
            {
                testRunner.WaitForName("Cancel Wizard Button", 1);

                using (var emulatorDisposable = testRunner.LaunchAndConnectToPrinterEmulator())
                {
                    Assert.IsTrue(ProfileManager.Instance.ActiveProfile != null);

                    MatterControlUtilities.SwitchToAdvancedSettings(testRunner);

                    testRunner.ClickByName("General Tab", 1);
                    testRunner.ClickByName("Single Print Tab", 1);
                    testRunner.ClickByName("Layer(s) To Pause: Edit");
                    testRunner.Type("4;2;a;not;6");

                    testRunner.ClickByName("Layer View Tab");

                    testRunner.ClickByName("Generate Gcode Button", 1);
                    testRunner.ClickByName("Display Checkbox", 10);
                    testRunner.ClickByName("Sync To Print Checkbox", 1);

                    testRunner.ClickByName("Start Print Button", 1);

                    WaitForLayerAndResume(testRunner, 2);
                    WaitForLayerAndResume(testRunner, 4);
                    WaitForLayerAndResume(testRunner, 6);

                    testRunner.WaitForName("Done Button", 30);
                    testRunner.WaitForName("Print Again Button", 1);
                }

                return(Task.FromResult(0));
            };

            await MatterControlUtilities.RunTest(testToRun, maxTimeToRun : 90);
        }
예제 #17
0
        public void HasHardwareLevelingHidesLevelingSettings()
        {
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    MatterControlUtilities.PrepForTestRun(testRunner);
                    //Add printer that has hardware leveling
                    MatterControlUtilities.AddAndSelectPrinter(testRunner, "Airwolf 3D", "HD");

                    MatterControlUtilities.SwitchToAdvancedSettings(testRunner, resultsHarness);

                    testRunner.ClickByName("Printer Tab", 1);
                    testRunner.Wait(1);

                    //Make sure Print Leveling tab is not visible
                    bool testPrintLeveling = testRunner.WaitForName("Print Leveling Tab", 3);
                    resultsHarness.AddTestResult(testPrintLeveling == false);

                    //Add printer that does not have hardware leveling
                    MatterControlUtilities.AddAndSelectPrinter(testRunner, "3D Factory", "MendelMax 1.5");

                    testRunner.ClickByName("Slice Settings Tab", 1);

                    testRunner.ClickByName("Printer Tab", 1);

                    //Make sure Print Leveling tab is visible
                    bool printLevelingVisible = testRunner.WaitForName("Print Leveling Tab", 2);
                    resultsHarness.AddTestResult(printLevelingVisible == true);

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, overrideHeight: 800);

            Assert.IsTrue(testHarness.AllTestsPassed(4));
        }
        public async Task HasHeatedBedCheckedHidesBedTemperatureOptions()
        {
            AutomationTest testToRun = (testRunner) =>
            {
                testRunner.CloseSignInAndPrinterSelect();

                MatterControlUtilities.AddAndSelectPrinter(testRunner, "Airwolf 3D", "HD");

                //Navigate to Settings Tab and make sure Bed Temp Text box is visible
                MatterControlUtilities.SwitchToAdvancedSettings(testRunner);

                testRunner.ClickByName("Filament Tab", 1);
                testRunner.ClickByName("Temperatures Tab", 1);
                Assert.IsTrue(testRunner.WaitForName("Extruder Temperature Textbox", 2));
                Assert.IsTrue(testRunner.WaitForName("Bed Temperature Textbox", 2));

                //Uncheck Has Heated Bed checkbox and make sure Bed Temp Textbox is not visible
                testRunner.ClickByName("Printer Tab", 1);
                testRunner.ClickByName("Features Tab", 1);
                testRunner.DragByName("Show Reset Connection Checkbox", 1, offset: new Agg.Point2D(-40, 0));
                testRunner.MoveToByName("Show Reset Connection Checkbox", 1, offset: new Agg.Point2D(0, 120));
                testRunner.Drop();
                testRunner.ClickByName("Has Heated Bed Checkbox", 1);
                testRunner.Delay(.5);
                testRunner.ClickByName("Filament Tab", 1);
                bool bedTemperatureTextBoxVisible = testRunner.WaitForName("Bed Temperature Textbox", 2);
                Assert.IsTrue(bedTemperatureTextBoxVisible == false);

                //Make sure Bed Temperature Options are not visible in printer controls
                testRunner.ClickByName("Controls Tab");
                bool bedTemperatureControlsWidget = testRunner.WaitForName("Bed Temperature Controls Widget", 2);
                Assert.IsTrue(bedTemperatureTextBoxVisible == false);

                return(Task.FromResult(0));
            };

            await MatterControlUtilities.RunTest(testToRun, overrideWidth : 550);
        }
        public async Task ClearingCheckBoxClearsUserOverride()
        {
            AutomationTest testToRun = (testRunner) =>
            {
                testRunner.CloseSignInAndPrinterSelect();

                MatterControlUtilities.AddAndSelectPrinter(testRunner, "Airwolf 3D", "HD");

                //Navigate to Local Library
                MatterControlUtilities.SwitchToAdvancedSettings(testRunner);

                testRunner.ClickByName("Printer Tab", 1);
                testRunner.ClickByName("Features Tab", 1);

                CheckAndUncheckSetting(testRunner, SettingsKey.heat_extruder_before_homing, "Heat Before Homing Checkbox", false);

                CheckAndUncheckSetting(testRunner, SettingsKey.has_fan, "Has Fan Checkbox", true);

                return(Task.FromResult(0));
            };

            await MatterControlUtilities.RunTest(testToRun, overrideWidth : 1224, overrideHeight : 900);
        }
예제 #20
0
        public async Task CompletingPrintTurnsoffHeat()
        {
            AutomationTest testToRun = (testRunner) =>
            {
                testRunner.WaitForName("Cancel Wizard Button", 1);

                using (var emulatorDisposable = testRunner.LaunchAndConnectToPrinterEmulator())
                {
                    Assert.IsTrue(ProfileManager.Instance.ActiveProfile != null);

                    MatterControlUtilities.SwitchToAdvancedSettings(testRunner);

                    testRunner.ClickByName("Printer Tab", 1);
                    testRunner.ClickByName("Custom G-Code Tab", 1);
                    testRunner.ClickByName("end_gcode Edit Field");
                    testRunner.Type("^a");
                    testRunner.Type("{BACKSPACE}");
                    testRunner.Type("G28");

                    testRunner.ClickByName("Start Print Button", 1);

                    testRunner.WaitForName("Done Button", 120);
                    Assert.True(testRunner.NameExists("Done Button"), "The print has completed");
                    testRunner.WaitForName("Print Again Button", 1);

                    testRunner.Delay(5);

                    Assert.Less(PrinterConnectionAndCommunication.Instance.GetActualExtruderTemperature(0), 30);
                    Assert.Less(PrinterConnectionAndCommunication.Instance.ActualBedTemperature, 10);
                }

                return(Task.FromResult(0));
            };

            await MatterControlUtilities.RunTest(testToRun, maxTimeToRun : 200);
        }