public void RemoveButtonClickedRemovesSingleItem()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    MatterControlUtilities.PrepForTestRun(testRunner);
                    //Navigate to Local Library
                    testRunner.ClickByName("Library Tab");
                    MatterControlUtilities.NavigateToFolder(testRunner, "Local Library Row Item Collection");

                    testRunner.Wait(1);

                    string rowItem = "Row Item " + "Calibration - Box";
                    testRunner.ClickByName("Library Edit Button");
                    testRunner.Wait(1);
                    testRunner.ClickByName(rowItem);

                    MatterControlUtilities.LibraryRemoveSelectedItem(testRunner);

                    testRunner.Wait(1);

                    //Make sure that Export Item Window exists after Export button is clicked
                    bool rowItemExists = testRunner.WaitForName(rowItem, 1);
                    resultsHarness.AddTestResult(rowItemExists == false);

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);

            Assert.IsTrue(testHarness.AllTestsPassed);
            Assert.IsTrue(testHarness.TestCount == 1);             // make sure we ran all our tests
        }
Example #2
0
        public void RemoveButtonClickedRemovesMultipleItems()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    MatterControlUtilities.PrepForTestRun(testRunner);
                    //Navigate to Local Library
                    testRunner.ClickByName("Library Tab");
                    MatterControlUtilities.NavigateToFolder(testRunner, "Local Library Row Item Collection");

                    testRunner.Wait(1);
                    testRunner.ClickByName("Library Edit Button");
                    testRunner.Wait(1);

                    string rowItemPath = MatterControlUtilities.GetTestItemPath("Fennec_Fox.stl");
                    testRunner.ClickByName("Library Add Button");

                    testRunner.Wait(2);
                    testRunner.Type(rowItemPath);
                    testRunner.Type("{Enter}");

                    testRunner.Wait(1);
                    string rowItemOne = "Row Item " + "Calibration - Box";
                    testRunner.ClickByName(rowItemOne, 1);

                    string rowItemTwo = "Row Item " + "Fennec Fox";
                    testRunner.ClickByName(rowItemTwo, 1);

                    testRunner.Wait(1);

                    //Make sure row items exist before remove
                    bool rowItemOneExistsBeforeRemove = testRunner.WaitForName(rowItemOne, 2);
                    bool rowItemTwoExistsBeforeRemove = testRunner.WaitForName(rowItemTwo, 2);
                    resultsHarness.AddTestResult(rowItemOneExistsBeforeRemove == true);
                    resultsHarness.AddTestResult(rowItemTwoExistsBeforeRemove == true);

                    MatterControlUtilities.LibraryRemoveSelectedItem(testRunner);
                    testRunner.Wait(1);

                    //Make sure both selected items are removed
                    bool rowItemOneExists = testRunner.WaitForName(rowItemOne, 2);
                    bool rowItemTwoExists = testRunner.WaitForName(rowItemTwo, 2);
                    resultsHarness.AddTestResult(rowItemOneExists == false);
                    resultsHarness.AddTestResult(rowItemTwoExists == false);


                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);

            Assert.IsTrue(testHarness.AllTestsPassed(4));
        }
Example #3
0
        public void FileMenuAddPrinter()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    testRunner.ClickByName("File Menu");
                    testRunner.Wait(1);
                    testRunner.ClickByName("Add Printer Menu Item");
                    testRunner.Wait(1);
                    resultsHarness.AddTestResult(testRunner.WaitForName("Printer Connection Window", 3));

                    testRunner.ClickByName("Setup Connection Cancel Button");

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, queueItemFolderToAdd: QueueTemplate.Three_Queue_Items);

            Assert.IsTrue(testHarness.AllTestsPassed);
            Assert.IsTrue(testHarness.TestCount == 1);             // make sure we ran all our tests
        }
Example #4
0
        public void ClickOnLibraryCheckBoxes()
        {
            // 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);

                    testRunner.ClickByName("Library Tab", 3);
                    MatterControlUtilities.NavigateToFolder(testRunner, "Local Library Row Item Collection");

                    SystemWindow systemWindow;
                    string       itemName = "Row Item " + "Calibration - Box";

                    GuiWidget rowItem = testRunner.GetWidgetByName(itemName, out systemWindow, 3);

                    SearchRegion rowItemRegion = testRunner.GetRegionByName(itemName, 3);

                    testRunner.ClickByName("Library Edit Button", 3);
                    testRunner.Wait(.5);

                    GuiWidget foundWidget    = testRunner.GetWidgetByName("Row Item Select Checkbox", out systemWindow, 3, searchRegion: rowItemRegion);
                    CheckBox  checkBoxWidget = foundWidget as CheckBox;
                    resultsHarness.AddTestResult(checkBoxWidget != null, "We should have an actual checkbox");
                    resultsHarness.AddTestResult(checkBoxWidget.Checked == false, "currently not checked");

                    testRunner.ClickByName("Row Item Select Checkbox", 3, searchRegion: rowItemRegion);
                    testRunner.ClickByName("Library Tab");
                    resultsHarness.AddTestResult(checkBoxWidget.Checked == true, "currently checked");

                    testRunner.ClickByName(itemName, 3);
                    testRunner.ClickByName("Library Tab");
                    resultsHarness.AddTestResult(checkBoxWidget.Checked == false, "currently not checked");

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);

            // NOTE: In the future we may want to make the "Local Library Row Item Collection" not clickable.
            // If that is the case fix this test to click on a child of "Local Library Row Item Collection" instead.
            Assert.IsTrue(testHarness.AllTestsPassed);
            Assert.IsTrue(testHarness.TestCount == 4);             // make sure we ran all our tests
        }
        public void LibraryQueueViewRefreshesOnAddItem()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    MatterControlUtilities.PrepForTestRun(testRunner);

                    testRunner.ClickByName("Library Tab", 5);

                    MatterControlUtilities.NavigateToFolder(testRunner, "Local Library Row Item Collection");
                    testRunner.Wait(1);
                    testRunner.ClickByName("Row Item Calibration - Box");
                    testRunner.ClickByName("Row Item Calibration - Box View Button");
                    testRunner.Wait(1);

                    SystemWindow systemWindow;
                    GuiWidget    partPreview = testRunner.GetWidgetByName("View3DWidget", out systemWindow, 3);
                    View3DWidget view3D      = partPreview as View3DWidget;

                    resultsHarness.AddTestResult(testRunner.ClickByName("3D View Edit", 3));

                    resultsHarness.AddTestResult(testRunner.ClickByName("3D View Copy", 3), "Click Copy");
                    // wait for the copy to finish
                    testRunner.Wait(.1);
                    resultsHarness.AddTestResult(testRunner.ClickByName("3D View Remove", 3), "Click Delete");
                    resultsHarness.AddTestResult(testRunner.ClickByName("Save As Menu", 3), "Click Save As Menu");
                    resultsHarness.AddTestResult(testRunner.ClickByName("Save As Menu Item", 3), "Click Save As");

                    testRunner.Wait(1);

                    testRunner.Type("0Test Part");
                    resultsHarness.AddTestResult(MatterControlUtilities.NavigateToFolder(testRunner, "Local Library Row Item Collection"));

                    resultsHarness.AddTestResult(testRunner.ClickByName("Save As Save Button", 1));

                    view3D.CloseOnIdle();
                    testRunner.Wait(.5);

                    // ensure that it is now in the library folder (that the folder updated)
                    resultsHarness.AddTestResult(testRunner.WaitForName("Row Item " + "0Test Part", 5), "The part we added should be in the library");

                    testRunner.Wait(.5);

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, queueItemFolderToAdd: QueueTemplate.Three_Queue_Items);

            Assert.IsTrue(testHarness.AllTestsPassed);
            Assert.IsTrue(testHarness.TestCount == 8);             // make sure we ran all our tests
        }
Example #6
0
        private void ShowPrinterSettings()
        {
            AutomationRunner testRunner = new AutomationRunner(inputType: AutomationRunner.InputType.Simulated, drawSimulatedMouse: false);

            testRunner.TimeToMoveMouse = 0;
            testRunner.UpDelaySeconds  = 0;

            if (testRunner.NameExists("SettingsAndControls"))
            {
                testRunner.ClickByName("SettingsAndControls", 5);
                testRunner.Wait(.2);
            }
            testRunner.ClickByName("Slice Settings Tab", .1);
            testRunner.ClickByName("Printer Tab", .2);
            testRunner.ClickByName("Connection Tab", .1);
            testRunner.Dispose();
        }
Example #7
0
        private static void WaitForLayerAndResume(AutomationTesterHarness resultsHarness, AutomationRunner testRunner, int indexToWaitFor)
        {
            testRunner.WaitForName("Resume Button", 30);

            SystemWindow containingWindow;
            GuiWidget    layerNumber = testRunner.GetWidgetByName("Current GCode Layer Edit", out containingWindow, 20);

            layerNumber.Invalidate();
            testRunner.WaitUntil(() =>
            {
                return(layerNumber.Text == indexToWaitFor.ToString());
            }, 2);

            resultsHarness.AddTestResult(layerNumber.Text == indexToWaitFor.ToString());
            resultsHarness.AddTestResult(testRunner.ClickByName("Resume Button", 1));
            testRunner.Wait(.1);
        }
        public static void SelectAndAddPrinter(AutomationRunner testRunner, string make, string model, bool firstAdd)
        {
            string manufacturer   = make + " Menu Item";
            string printer        = model + " Menu Item";
            string printerProfile = String.Format("{0} {1} Profile", make, model);


            testRunner.ClickByName("Select a Printer Button");
            testRunner.Wait(1);


            if (!firstAdd)
            {
                testRunner.ClickByName("Add new printer button");
                testRunner.Wait(1);
            }

            testRunner.ClickByName("Select Make");
            testRunner.Wait(1);

            testRunner.ClickByName(manufacturer);
            testRunner.Wait(1);

            testRunner.ClickByName("Select Model");
            testRunner.Wait(1);

            testRunner.ClickByName(printer);
            testRunner.Wait(1);

            testRunner.ClickByName("Save & Continue Button");
            testRunner.Wait(1);

            testRunner.ClickByName("Setup Connection Cancel Button");
            testRunner.Wait(2);

            testRunner.ClickByName(printerProfile);
            testRunner.Wait(1);
        }
Example #9
0
        public void Slicing()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    //Navigate to Local Library
                    MatterControlUtilities.SelectAndAddPrinter(testRunner, "Airwolf 3D", "HD", true);

                    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.Wait(1);
                    testRunner.ClickByName("SettingsAndControls");
                    testRunner.Wait(1);
                    testRunner.ClickByName("Settings Tab");
                    testRunner.Wait(1.1);
                    testRunner.ClickByName("Skirt and Raft Tab");
                    testRunner.Wait(1);
                    testRunner.ClickByName("Create Raft Checkbox");
                    testRunner.Wait(1);
                    testRunner.ClickByName("Generate Gcode Button");
                    testRunner.Wait(1.5);



                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);

            Assert.IsTrue(testHarness.AllTestsPassed);
            Assert.IsTrue(testHarness.TestCount == 3);             // make sure we ran all our tests
        }
Example #10
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 void HasHardwareLevelingHidesLevelingSettings()
        {
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    //Add printer that has hardware leveling
                    MatterControlUtilities.SelectAndAddPrinter(testRunner, "Airwolf 3D", "HD", true);

                    testRunner.Wait(1);
                    testRunner.ClickByName("SettingsAndControls");
                    testRunner.Wait(1);
                    testRunner.ClickByName("Slice Settings Tab");
                    testRunner.Wait(1);
                    testRunner.ClickByName("User Level Dropdown");
                    testRunner.Wait(1);
                    testRunner.ClickByName("Advanced Menu Item");
                    testRunner.Wait(1);
                    testRunner.ClickByName("Printer Tab");
                    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.SelectAndAddPrinter(testRunner, "Deezmaker", "Bukito", false);
                    testRunner.ClickByName("Slice Settings Tab");
                    testRunner.Wait(1);
                    testRunner.ClickByName("Printer Tab");

                    //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);

            Assert.IsTrue(testHarness.AllTestsPassed);
            Assert.IsTrue(testHarness.TestCount == 2);             // make sure we ran all our tests
        }
Example #12
0
        public void SelectAllOnFocusCanStillClickAfterSelection()
        {
            TextEditWidget editField    = null;
            SystemWindow   systemWindow = new SystemWindow(300, 200)
            {
                BackgroundColor = RGBA_Bytes.Black,
            };

            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                editField.SelectAllOnFocus = true;
                AutomationRunner testRunner = new AutomationRunner();
                testRunner.Wait(1);

                resultsHarness.AddTestResult(testRunner.ClickByName(editField.Name, 1));

                editField.SelectAllOnFocus = true;
                testRunner.Type("123");
                resultsHarness.AddTestResult(editField.Text == "123", "on enter we have selected all and replaced the text");

                resultsHarness.AddTestResult(testRunner.ClickByName(editField.Name, 1));
                testRunner.Type("123");
                resultsHarness.AddTestResult(editField.Text == "123123", "we already have the contol selected so don't select all again.");

                systemWindow.CloseOnIdle();
            };

            editField = new TextEditWidget(pixelWidth: 200)
            {
                Name    = "editField",
                Text    = "Some Text",
                HAnchor = HAnchor.ParentCenter,
                VAnchor = VAnchor.ParentCenter,
            };
            systemWindow.AddChild(editField);

            AutomationTesterHarness testHarness = AutomationTesterHarness.ShowWindowAndExectueTests(systemWindow, testToRun, 15);

            Assert.IsTrue(testHarness.AllTestsPassed);
            Assert.IsTrue(testHarness.TestCount == 4);             // make sure we can all our tests
        }
        public void CopyButtonMakesACopyOfPartInTheQueue()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    MatterControlUtilities.PrepForTestRun(testRunner);

                    /* Tests that when the Queue Copy button is clicked:
                     * 1. The Queue Tab Count is increased by one
                     * 2. A Queue Row item is created and added to the queue with the correct name
                     */

                    int  queueCountBeforeCopyButtonIsClicked = QueueData.Instance.Count;
                    bool copyIncreasesQueueDataCount         = false;
                    testRunner.ClickByName("Queue Item " + "Batman", 3);
                    testRunner.ClickByName("Queue Copy Button", 3);

                    testRunner.Wait(1);

                    int currentQueueCount = QueueData.Instance.Count;
                    if (currentQueueCount == queueCountBeforeCopyButtonIsClicked + 1)
                    {
                        copyIncreasesQueueDataCount = true;
                    }

                    resultsHarness.AddTestResult(copyIncreasesQueueDataCount == true, "Copy button clicked increases queue tab count by one");

                    bool batmanQueueItemCopyExists = testRunner.WaitForName("Queue Item " + "Batman" + " - copy", 2);

                    resultsHarness.AddTestResult(batmanQueueItemCopyExists == true);

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, queueItemFolderToAdd: QueueTemplate.Three_Queue_Items);

            Assert.IsTrue(testHarness.AllTestsPassed(2));
        }
        public void UiAutomationTests()
        {
            // Run a copy of MatterControl
            MatterControlApplication.AfterFirstDraw = () =>
            {
                Task.Run(() =>
                {
                    AutomationRunner testRunner = new AutomationRunner("C:/TestImages");
                    testRunner.Wait(2);

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

                    MatterControlApplication.Instance.CloseOnIdle();
                });
            };

            SystemWindow mcWindow = MatterControlApplication.Instance;
        }
        public void ExportButtonIsDisabledWithNoItemsInQueue()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    //bool exportButtonExists = testRunner.NameExists("Export Queue Button");
                    bool exportButtonExists = testRunner.WaitForName("Export Queue Button", 10);
                    testRunner.Wait(5);
                    resultsHarness.AddTestResult(exportButtonExists == false, "Export button is disabled");

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, "MC_Fresh_Installation");

            Assert.IsTrue(testHarness.AllTestsPassed);
            Assert.IsTrue(testHarness.TestCount == 1);             // make sure we ran all our tests
        }
        public void LibraryItemThumbnailClickedOpensPartPreview()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    MatterControlUtilities.PrepForTestRun(testRunner);

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

                    //Make sure Part Preview Window does not exists before we click the view button
                    bool partPreviewExistsOne = testRunner.WaitForName("Part Preview Window", 1);
                    resultsHarness.AddTestResult(partPreviewExistsOne == false);


                    string libraryRowItemName = "Row Item " + "Calibration - Box";
                    testRunner.ClickByName(libraryRowItemName);

                    testRunner.Wait(1);

                    //Click Library Item View Button
                    string libraryItemViewButton = "Row Item " + "Calibration - Box" + " View Button";
                    testRunner.ClickByName(libraryItemViewButton);

                    //Make sure that Part Preview Window opens after View button is clicked
                    bool partPreviewWindowExists = testRunner.WaitForName("Part Preview Window", 1.5);
                    resultsHarness.AddTestResult(partPreviewWindowExists == true);

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);

            Assert.IsTrue(testHarness.AllTestsPassed);
            Assert.IsTrue(testHarness.TestCount == 2);             // make sure we ran all our tests
        }
        public void RemoveButtonRemovesSingleItem()
        {
            //Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    MatterControlUtilities.PrepForTestRun(testRunner);

                    /*
                     * Tests that when one item is selected
                     * 1. Queue Item count equals three before the test starts
                     * 2. Selecting single queue item and then clicking the Remove button removes the item
                     * 3. Selecting single queue items and then clicking the Remove button decreases the queue tab count by one
                     */

                    int queueItemCount = QueueData.Instance.Count;

                    testRunner.ClickByName("Queue Remove Button", 2);

                    testRunner.Wait(1);

                    int queueItemCountAfterRemove = QueueData.Instance.Count;

                    resultsHarness.AddTestResult(queueItemCount - 1 == queueItemCountAfterRemove);

                    bool queueItemExists = testRunner.WaitForName("Queue Item " + "2013-01-25_Mouthpiece_v2", 2);

                    resultsHarness.AddTestResult(queueItemExists == false);


                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, queueItemFolderToAdd: QueueTemplate.Three_Queue_Items);

            Assert.IsTrue(testHarness.AllTestsPassed(2));
        }
Example #18
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));
        }
Example #19
0
        public static void AddLocalLibraryItemToQueue(GuiWidget container, double secondsBetweenClicks = .1)
        {
            AutomationRunner testrunner;
            DrawEventHandler beforeDraw = null;

            beforeDraw = (sender, e) =>
            {
                testrunner = new AutomationRunner();
                Task.Run(() =>
                {
                    testrunner.ClickByName("Library Tab");
                    NavigateToFolder(testrunner, "Local Library Row Item Collection");

                    testrunner.ClickByName("Library Edit Button");
                    testrunner.ClickByName("Row Item Calibration - Box");
                    testrunner.Wait(2);
                    testrunner.ClickByName("Library Add To Queue Button");
                    testrunner.ClickByName("Queue Tab");
                });
                container.DrawBefore -= beforeDraw;
            };
            container.DrawBefore += beforeDraw;
        }
Example #20
0
        public void LibraryQueueViewRefreshesOnAddItem()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    testRunner.ClickByName("Library Tab", 5);

                    MatterControlUtilities.NavigateToFolder(testRunner, "Local Library Row Item Collection");

                    resultsHarness.AddTestResult(testRunner.ClickByName("3D View Edit", 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", 1));

                    // ensure that it is now in the library folder (that the folder updated)
                    resultsHarness.AddTestResult(testRunner.WaitForName("Row Item " + "Test Part", 5), "The part we added sholud be in the library");

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, "MC_One_Queue_No_Library");

            Assert.IsTrue(testHarness.AllTestsPassed);
            Assert.IsTrue(testHarness.TestCount == 8);             // make sure we ran all our tests
        }
Example #21
0
        public void VerifyFocusMakesTextWidgetEditable()
        {
            TextEditWidget editField    = null;
            SystemWindow   systemWindow = new SystemWindow(300, 200)
            {
                BackgroundColor = RGBA_Bytes.Black,
            };

            bool      firstDraw     = true;
            Stopwatch testDiedTimer = Stopwatch.StartNew();
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                UiThread.RunOnIdle(editField.Focus);
                AutomationRunner testRunner = new AutomationRunner();
                testRunner.Wait(1);

                // Now do the actions specific to this test. (replace this for new tests)
                testRunner.Type("Test Text");

                resultsHarness.AddTestResult(editField.Text == "Test Text", "validate text is typed");

                systemWindow.CloseOnIdle();
            };

            editField = new TextEditWidget(pixelWidth: 200)
            {
                HAnchor = HAnchor.ParentCenter,
                VAnchor = VAnchor.ParentCenter,
            };
            systemWindow.AddChild(editField);

            AutomationTesterHarness testHarness = AutomationTesterHarness.ShowWindowAndExectueTests(systemWindow, testToRun, 10);

            Assert.IsTrue(testHarness.AllTestsPassed);
            Assert.IsTrue(testHarness.TestCount == 1);             // make sure we can all our tests
        }
        public void HasHeatedBedCheckUncheck()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    MatterControlUtilities.PrepForTestRun(testRunner);

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

                    //Navigate to Local Library
                    testRunner.ClickByName("SettingsAndControls");
                    testRunner.Wait(1);
                    testRunner.ClickByName("User Level Dropdown");
                    testRunner.Wait(1);
                    testRunner.ClickByName("Advanced Menu Item");
                    testRunner.Wait(1);
                    testRunner.ClickByName("Printer Tab");
                    testRunner.Wait(1);

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

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

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);

            Assert.IsTrue(testHarness.AllTestsPassed);
            Assert.IsTrue(testHarness.TestCount == 0);             // make sure we ran all our tests
        }
        public void UndoRedoDelete()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    SystemWindow systemWindow;

                    //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);

                    //Get View3DWidget and count MeshGroups before Copy button is clicked
                    GuiWidget    partPreview = testRunner.GetWidgetByName("View3DWidget", out systemWindow, 3);
                    View3DWidget view3D      = partPreview as View3DWidget;

                    string copyButtonName = "3D View Copy";

                    //Click Edit button to make edit controls visible
                    testRunner.ClickByName("3D View Edit");
                    testRunner.Wait(1);
                    int partCountBeforeCopy = view3D.MeshGroups.Count();
                    resultsHarness.AddTestResult(partCountBeforeCopy == 1);

                    for (int i = 0; i <= 4; i++)
                    {
                        testRunner.ClickByName(copyButtonName);
                        testRunner.Wait(1);
                    }

                    testRunner.Wait(1);

                    int meshCountAfterCopy = view3D.MeshGroups.Count();
                    testRunner.ClickByName("3D View Remove");
                    System.Threading.Thread.Sleep(2000);
                    int meshCountAfterRemove = view3D.MeshGroups.Count();
                    resultsHarness.AddTestResult(meshCountAfterRemove == 5);


                    testRunner.ClickByName("3D View Undo");
                    System.Threading.Thread.Sleep(2000);
                    int meshCountAfterUndo = view3D.MeshGroups.Count();
                    resultsHarness.AddTestResult(meshCountAfterUndo == 6);

                    testRunner.ClickByName("3D View Redo");
                    System.Threading.Thread.Sleep(2000);
                    int meshCountAfterRedo = view3D.MeshGroups.Count();
                    resultsHarness.AddTestResult(meshCountAfterRedo == 5);

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);

            Assert.IsTrue(testHarness.AllTestsPassed);
            Assert.IsTrue(testHarness.TestCount == 4);             // make sure we ran all our tests
        }
        public void ExportToZipMenuItemClicked()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    MatterControlUtilities.PrepForTestRun(testRunner);

                    /*
                     * Tests Export to Zip menu item is clicked the queue is compressed and exported to location on disk
                     * 1. Check that there are items in the queue
                     * 2. Export Queue and make sure file exists on disk
                     */

                    bool queueEmpty = true;
                    int  queueItemCountBeforeRemoveAllClicked = QueueData.Instance.Count;

                    if (queueItemCountBeforeRemoveAllClicked > 0)
                    {
                        queueEmpty = false;
                    }

                    resultsHarness.AddTestResult(queueEmpty == false);

                    testRunner.ClickByName("Queue... Menu", 2);

                    testRunner.ClickByName(" Export to Zip Menu Item", 2);

                    testRunner.Wait(2);

                    //Type in Absolute Path to Save
                    string exportZipPath = MatterControlUtilities.GetTestItemPath("TestExportZip.zip");

                    // Ensure file does not exist before save
                    if (File.Exists(exportZipPath))
                    {
                        File.Delete(exportZipPath);
                    }

                    testRunner.Type(exportZipPath);

                    testRunner.Wait(2);

                    testRunner.Type("{Enter}");

                    testRunner.Wait(1);

                    bool queueWasExportedToZip = File.Exists(exportZipPath);

                    testRunner.Wait(2);

                    resultsHarness.AddTestResult(queueWasExportedToZip == true);

                    //Add the exprted zip file to the Queue and confirm that the Queue Count increases by 3
                    testRunner.ClickByName("Queue Add Button");
                    testRunner.Wait(1);
                    testRunner.Type(exportZipPath);
                    testRunner.Wait(1);
                    testRunner.Type("{Enter}");

                    int  queueCountAfterZipIsAdded        = QueueData.Instance.Count;
                    bool allItemsInZipWereAddedToTheQueue = false;

                    if (queueCountAfterZipIsAdded == queueItemCountBeforeRemoveAllClicked * 2)
                    {
                        allItemsInZipWereAddedToTheQueue = true;
                    }

                    resultsHarness.AddTestResult(allItemsInZipWereAddedToTheQueue == true);

                    if (File.Exists(exportZipPath))
                    {
                        File.Delete(exportZipPath);
                    }

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, queueItemFolderToAdd: QueueTemplate.Three_Queue_Items);

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

                    //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");
                    MatterControlUtilities.LibraryEditSelectedItem(testRunner);
                    testRunner.Wait(1);

                    //Click Edit button to make edit controls visible
                    testRunner.ClickByName("3D View Edit");
                    testRunner.Wait(1);

                    SystemWindow systemWindow;
                    GuiWidget    partPreview = testRunner.GetWidgetByName("View3DWidget", out systemWindow, 3);
                    View3DWidget view3D      = partPreview as View3DWidget;

                    for (int i = 0; i <= 2; i++)
                    {
                        testRunner.ClickByName("3D View Copy");
                        testRunner.Wait(1);
                    }

                    //Click Save As button to save changes to the part
                    testRunner.ClickByName("Save As Menu");
                    testRunner.Wait(1);
                    testRunner.ClickByName("Save As Menu Item");
                    testRunner.Wait(1);

                    //Type in name of new part and then save to Print Queue
                    testRunner.Type("Save As Print Queue");
                    MatterControlUtilities.NavigateToFolder(testRunner, "Print Queue Row Item Collection");
                    testRunner.Wait(1);
                    testRunner.ClickByName("Save As Save Button");

                    view3D.CloseOnIdle();
                    testRunner.Wait(.5);

                    //Make sure there is a new Queue item with a name that matches the new part
                    testRunner.Wait(1);
                    testRunner.ClickByName("Queue Tab");
                    testRunner.Wait(1);
                    resultsHarness.AddTestResult(testRunner.WaitForName("Queue Item Save As Print Queue", 5));

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);

            Assert.IsTrue(testHarness.AllTestsPassed);
            Assert.IsTrue(testHarness.TestCount == 1);             // make sure we ran all our tests
        }
        public void AddSingleItemToQueue()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    /*
                     * Tests that when the QueueData.Instance.AddItem function is called:
                     * 1. The Queue count is increased by 1
                     * 2. A QueueRowItem is created and added to the queue
                     * 3. That a copy of the part is saved to AppData\MatterControl\data\QueueItems folder
                     */
                    //TODO: Eventually modify test so that we test adding queue items via file


                    bool   queueDataCountEqualsZero               = false;
                    bool   addedPartIncreasesQueueDataCount       = false;
                    bool   queueItemAppDataDirectoryExists        = false;
                    bool   queueItemAppDataDirectoryDoesNotExists = true;
                    int    currentQueueCount    = QueueData.Instance.Count;
                    string pathToAddedQueueItem = Path.Combine(MatterHackers.MatterControl.DataStorage.ApplicationDataStorage.ApplicationUserDataPath, "data", "QueueItems", "Batman.stl");
                    string partToBeAdded        = Path.Combine("..", "..", "..", "TestData", "TestParts", "Batman.stl");

                    //Make Sure Queue Count = 0
                    if (currentQueueCount == 0)
                    {
                        queueDataCountEqualsZero = true;
                    }

                    resultsHarness.AddTestResult(queueDataCountEqualsZero == true, "Queue count is zero before the test starts");
                    testRunner.Wait(3);

                    //Make sure queue item does not exist
                    bool batmanSTLExists = testRunner.WaitForName("Queue Item " + "Batman", 2);
                    resultsHarness.AddTestResult(batmanSTLExists == false);


                    //Make sure that QueueItems directory does not exist
                    if (!File.Exists(pathToAddedQueueItem))
                    {
                        queueItemAppDataDirectoryDoesNotExists = true;
                    }

                    resultsHarness.AddTestResult(queueItemAppDataDirectoryDoesNotExists == true, "Path to QueueItems directory does not exist before tests");

                    QueueData.Instance.AddItem(new PrintItemWrapper(new PrintItem(Path.GetFileNameWithoutExtension(partToBeAdded), partToBeAdded)));

                    resultsHarness.AddTestResult(testRunner.WaitForName("Queue Item " + "Batman", 2));

                    int queueCountAfterAdd = QueueData.Instance.Count;

                    if (queueCountAfterAdd == currentQueueCount + 1)
                    {
                        addedPartIncreasesQueueDataCount = true;
                    }

                    resultsHarness.AddTestResult(addedPartIncreasesQueueDataCount == true);
                    testRunner.Wait(3);

                    if (File.Exists(pathToAddedQueueItem))
                    {
                        queueItemAppDataDirectoryExists = true;
                    }

                    resultsHarness.AddTestResult(queueItemAppDataDirectoryExists == true);

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, "MC_Fresh_Installation");

            Assert.IsTrue(testHarness.AllTestsPassed);
            Assert.IsTrue(testHarness.TestCount == 6);             // make sure we ran all our tests
        }
        public void ClickQueueRoWItemViewAndRemove()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    /*
                     * Tests:
                     * 1. When the remove button on a queue item is clicked the queue tab count decreases by one
                     * 2. When the remove button on a queue item is clicked the item is removed
                     * 3. When the View button on a queue item is clicked the part preview window is opened
                     */


                    testRunner.Wait(2);
                    int  currentQueueItemCount = QueueData.Instance.Count;
                    bool threeItemsInQueue     = true;

                    if (currentQueueItemCount != 3)
                    {
                        threeItemsInQueue = false;
                    }

                    resultsHarness.AddTestResult(threeItemsInQueue == true);
                    resultsHarness.AddTestResult(testRunner.WaitForName("Queue Item " + "Batman", 1));
                    resultsHarness.AddTestResult(testRunner.WaitForName("Queue Item " + "2013-01-25_Mouthpiece_v2", 1));

                    testRunner.ClickByName("Queue Item " + "Batman", 1);
                    testRunner.ClickByName("Queue Item " + "Batman" + " Remove");
                    testRunner.Wait(2);

                    int  queueItemCountAfterRemove = QueueData.Instance.Count;
                    bool correctItemCountAfterRemove;
                    if (queueItemCountAfterRemove == 2)
                    {
                        correctItemCountAfterRemove = true;
                    }
                    else
                    {
                        correctItemCountAfterRemove = false;
                    }


                    resultsHarness.AddTestResult(correctItemCountAfterRemove == true);

                    bool batmanQueueItemExists = testRunner.WaitForName("Queue Item " + "Batman", 1);
                    resultsHarness.AddTestResult(batmanQueueItemExists == false);

                    bool partPreviewWindowExists1 = testRunner.WaitForName("Queue Item " + "2013-01-25_Mouthpiece_v2" + " Part Preview", 1);
                    resultsHarness.AddTestResult(partPreviewWindowExists1 == false);
                    testRunner.ClickByName("Queue Item " + "2013-01-25_Mouthpiece_v2", 1);
                    testRunner.Wait(2);
                    testRunner.ClickByName("Queue Item " + "2013-01-25_Mouthpiece_v2" + " View", 1);

                    bool partPreviewWindowExists2 = testRunner.WaitForName("Queue Item " + "2013-01-25_Mouthpiece_v2" + " Part Preview", 2);
                    resultsHarness.AddTestResult(partPreviewWindowExists2 == true);


                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, "MC_Three_Queue_Items");

            Assert.IsTrue(testHarness.AllTestsPassed);
            Assert.IsTrue(testHarness.TestCount == 7);             // make sure we ran all our tests
        }
        public void RemoveAllMenuItemClickedRemovesAll()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    /*
                     * Tests that when the Remove All menu item is clicked
                     * 1. Queue Item count is set to zero
                     * 2. All queue row items that were previously in the queue are removed
                     */

                    bool queueEmpty = true;
                    int  queueItemCountBeforeRemoveAllClicked = QueueData.Instance.Count;

                    if (queueItemCountBeforeRemoveAllClicked != 0)
                    {
                        queueEmpty = false;
                    }

                    resultsHarness.AddTestResult(queueEmpty = true);

                    bool batmanPartExists1     = testRunner.WaitForName("Queue Item " + "Batman", 1);
                    bool foxPartExistst1       = testRunner.WaitForName("Queue Item " + "Fennec_Fox", 1);
                    bool mouthpiecePartExists1 = testRunner.WaitForName("Queue Item " + "2013-01-25_Mouthpiece_v2", 1);

                    resultsHarness.AddTestResult(batmanPartExists1 == true);
                    resultsHarness.AddTestResult(mouthpiecePartExists1 == true);
                    resultsHarness.AddTestResult(foxPartExistst1 == true);


                    testRunner.ClickByName("Queue... Menu", 2);



                    testRunner.ClickByName(" Remove All Menu Item", 2);

                    testRunner.Wait(2);

                    int queueItemCountAfterRemoveAll = QueueData.Instance.Count;

                    if (queueItemCountAfterRemoveAll == 0)
                    {
                        queueEmpty = true;
                    }

                    resultsHarness.AddTestResult(queueEmpty = true);

                    bool batmanPartExists2     = testRunner.WaitForName("Queue Item " + "Batman", 1);
                    bool foxPartExistst2       = testRunner.WaitForName("Queue Item " + "Fennec_Fox", 1);
                    bool mouthpiecePartExists2 = testRunner.WaitForName("Queue Item " + "2013-01-25_Mouthpiece_v2", 1);

                    resultsHarness.AddTestResult(batmanPartExists2 == false);
                    resultsHarness.AddTestResult(mouthpiecePartExists2 == false);
                    resultsHarness.AddTestResult(foxPartExistst2 == false);

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, "MC_Three_Queue_Items");

            Assert.IsTrue(testHarness.AllTestsPassed);
            Assert.IsTrue(testHarness.TestCount == 8);             // make sure we ran all our tests
        }
        public void AddToQueueFromLibraryButtonAddsItemsToQueue()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    //Navigate to Local Library
                    testRunner.ClickByName("Library Tab");
                    MatterControlUtilities.NavigateToFolder(testRunner, "Local Library Row Item Collection");

                    //Add an item to the library
                    string libraryItemToAdd = MatterControlUtilities.GetTestItemPath("Fennec_Fox.stl");
                    testRunner.ClickByName("Library Add Button");

                    testRunner.Wait(2);
                    testRunner.Type(libraryItemToAdd);
                    testRunner.Wait(2);
                    testRunner.Type("{Enter}");

                    testRunner.Wait(1);
                    testRunner.ClickByName("Library Edit Button");
                    testRunner.Wait(1);


                    //Select both Library Items
                    string rowItemOne = "Row Item " + "Calibration - Box";
                    testRunner.ClickByName(rowItemOne);

                    string rowItemTwo = "Row Item " + "Fennec Fox";
                    testRunner.ClickByName(rowItemTwo);


                    //Click the Add To Queue button
                    testRunner.Wait(1);
                    testRunner.ClickByName("Library Add To Queue Button");
                    testRunner.Wait(2);

                    //Make sure Queue Count increases by the correct amount
                    int  queueCountAfterAdd       = QueueData.Instance.Count;
                    bool queueCountIncreasedByTwo = false;
                    if (queueCountAfterAdd == 2)
                    {
                        queueCountIncreasedByTwo = true;
                    }

                    resultsHarness.AddTestResult(queueCountIncreasedByTwo == true);

                    //Navigate to the Print Queue
                    testRunner.ClickByName("Queue Tab");
                    testRunner.Wait(1);


                    //Test that both added print items exist
                    string queueItemOne         = "Queue Item " + "Calibration - Box";
                    string queueItemTwo         = "Queue Item " + "Fennec_Fox";
                    bool   queueItemOneWasAdded = testRunner.WaitForName(queueItemOne, 2);
                    bool   queueItemTwoWasAdded = testRunner.WaitForName(queueItemTwo, 2);

                    resultsHarness.AddTestResult(queueItemOneWasAdded == true);
                    resultsHarness.AddTestResult(queueItemTwoWasAdded == true);

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);

            Assert.IsTrue(testHarness.AllTestsPassed);
            Assert.IsTrue(testHarness.TestCount == 3);             // make sure we ran all our tests
        }
Example #30
0
        public void GroupAndUngroup()
        {
            // Run a copy of MatterControl
            Action <AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
            {
                AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
                {
                    MatterControlUtilities.PrepForTestRun(testRunner);

                    SystemWindow systemWindow;

                    //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");
                    MatterControlUtilities.LibraryEditSelectedItem(testRunner);
                    testRunner.Wait(1);

                    //Get View3DWidget and count MeshGroups before Copy button is clicked
                    GuiWidget    partPreview = testRunner.GetWidgetByName("View3DWidget", out systemWindow, 3);
                    View3DWidget view3D      = partPreview as View3DWidget;

                    string copyButtonName = "3D View Copy";

                    //Click Edit button to make edit controls visible
                    testRunner.ClickByName("3D View Edit");
                    testRunner.Wait(1);
                    int partCountBeforeCopy = view3D.MeshGroups.Count();
                    resultsHarness.AddTestResult(partCountBeforeCopy == 1);

                    for (int i = 0; i <= 4; i++)
                    {
                        testRunner.ClickByName(copyButtonName);
                        testRunner.Wait(1);
                    }

                    //Get MeshGroupCount before Group is clicked
                    System.Threading.Thread.Sleep(2000);
                    int partsOnBedBeforeGroup = view3D.MeshGroups.Count();
                    resultsHarness.AddTestResult(partsOnBedBeforeGroup == 6);

                    //Click Group Button and get MeshGroup count after Group button is clicked
                    testRunner.ClickByName("3D View Group");
                    System.Threading.Thread.Sleep(2000);
                    int partsOnBedAfterGroup = view3D.MeshGroups.Count();
                    resultsHarness.AddTestResult(partsOnBedAfterGroup == 1);

                    testRunner.ClickByName("3D View Ungroup");
                    System.Threading.Thread.Sleep(2000);
                    int partsOnBedAfterUngroup = view3D.MeshGroups.Count();
                    resultsHarness.AddTestResult(partsOnBedAfterUngroup == 6);

                    MatterControlUtilities.CloseMatterControl(testRunner);
                }
            };

            AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);

            Assert.IsTrue(testHarness.AllTestsPassed(4));
        }