1174 lines
41 KiB
C#
1174 lines
41 KiB
C#
/*
|
|
Copyright (c) 2014, Lars Brubaker
|
|
All rights reserved.
|
|
|
|
Redistribution and use in source and binary forms, with or without
|
|
modification, are permitted provided that the following conditions are met:
|
|
|
|
1. Redistributions of source code must retain the above copyright notice, this
|
|
list of conditions and the following disclaimer.
|
|
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
this list of conditions and the following disclaimer in the documentation
|
|
and/or other materials provided with the distribution.
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
|
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
The views and conclusions contained in the software and documentation are those
|
|
of the authors and should not be interpreted as representing official policies,
|
|
either expressed or implied, of the FreeBSD Project.
|
|
*/
|
|
|
|
using System;
|
|
using System.IO;
|
|
using System.Threading;
|
|
using MatterHackers.Agg.UI;
|
|
using MatterHackers.Agg.UI.Tests;
|
|
using MatterHackers.GuiAutomation;
|
|
using MatterHackers.MatterControl.PrintQueue;
|
|
using NUnit.Framework;
|
|
|
|
namespace MatterHackers.MatterControl.Tests.Automation
|
|
{
|
|
[TestFixture, Category("MatterControl.UI.Automation"), Category("MatterControl.Automation"), RunInApplicationDomain]
|
|
public class BuyButtonTests
|
|
{
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain, Ignore("Not Finished")]
|
|
public void ClickOnBuyButton()
|
|
{
|
|
// Run a copy of MatterControl
|
|
Action<AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
|
|
{
|
|
AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
|
|
{
|
|
MatterControlUtilities.PrepForTestRun(testRunner);
|
|
|
|
//Make sure image does not exist before we click the buy button
|
|
testRunner.MatchLimit = 500000;
|
|
bool imageExists = testRunner.ImageExists("MatterHackersStoreImage.png");
|
|
resultsHarness.AddTestResult(imageExists == false, "Web page is not open");
|
|
|
|
//Click Buy button and test that the MatterHackers store web page is open
|
|
testRunner.ClickByName("Buy Materials Button", 5);
|
|
bool imageExists2 = testRunner.ImageExists("MatterHackersStoreImage.png", 10);
|
|
resultsHarness.AddTestResult(imageExists2 == true, "Web page is open");
|
|
|
|
MatterControlUtilities.CloseMatterControl(testRunner);
|
|
}
|
|
};
|
|
|
|
AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, queueItemFolderToAdd: QueueTemplate.Three_Queue_Items);
|
|
|
|
Assert.IsTrue(testHarness.AllTestsPassed(2));
|
|
}
|
|
}
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain]
|
|
public class ClickingCreateButtonOpensPluginWindow
|
|
{
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
//Test Works
|
|
public void ClickCreateButton()
|
|
{
|
|
// Run a copy of MatterControl
|
|
Action<AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
|
|
{
|
|
AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
|
|
{
|
|
MatterControlUtilities.PrepForTestRun(testRunner);
|
|
// Tests that clicking the create button opens create tools plugin window
|
|
MatterControlUtilities.PrepForTestRun(testRunner);
|
|
|
|
//Make sure that plugin window does not exist
|
|
bool pluginWindowExists1 = testRunner.WaitForName("Plugin Chooser Window", 0);
|
|
resultsHarness.AddTestResult(pluginWindowExists1 == false, "Plugin window does not exist");
|
|
|
|
testRunner.ClickByName("Design Tool Button", 5);
|
|
|
|
//Test that the plugin window does exist after the create button is clicked
|
|
SystemWindow containingWindow;
|
|
GuiWidget pluginWindowExists = testRunner.GetWidgetByName("Plugin Chooser Window", out containingWindow, secondsToWait: 3);
|
|
resultsHarness.AddTestResult(pluginWindowExists != null, "Plugin Chooser Window");
|
|
pluginWindowExists.CloseOnIdle();
|
|
testRunner.Wait(.5);
|
|
|
|
MatterControlUtilities.CloseMatterControl(testRunner);
|
|
}
|
|
};
|
|
|
|
AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);
|
|
|
|
Assert.IsTrue(testHarness.AllTestsPassed(2));
|
|
}
|
|
}
|
|
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain]
|
|
public class ExportButtonTest
|
|
{
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
//Test Works
|
|
public void ClickOnExportButton()
|
|
{
|
|
// Run a copy of MatterControl
|
|
Action<AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
|
|
{
|
|
AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
|
|
{
|
|
// Tests that clicking the queue export button with a single item selected opens export item window
|
|
MatterControlUtilities.PrepForTestRun(testRunner);
|
|
|
|
//Make sure that the export window does not exist
|
|
bool exportWindowExists1 = testRunner.WaitForName( "Export Item Window", 0);
|
|
resultsHarness.AddTestResult(exportWindowExists1 == false, "Export window does not exist");
|
|
|
|
testRunner.ClickByName("Queue Export Button", 5);
|
|
SystemWindow containingWindow;
|
|
GuiWidget exportWindow = testRunner.GetWidgetByName("Export Item Window", out containingWindow, 5);
|
|
resultsHarness.AddTestResult(exportWindow != null, "Export window does exist");
|
|
if (exportWindow != null)
|
|
{
|
|
exportWindow.CloseOnIdle();
|
|
testRunner.Wait(.5);
|
|
}
|
|
|
|
MatterControlUtilities.CloseMatterControl(testRunner);
|
|
|
|
}
|
|
};
|
|
|
|
AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, queueItemFolderToAdd: QueueTemplate.Three_Queue_Items);
|
|
Assert.IsTrue(testHarness.AllTestsPassed(2));
|
|
}
|
|
}
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain, Ignore("Not Finished")]
|
|
public class ExportButtonDisabledNoQueueItems
|
|
{
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
public void ExportButtonIsDisabledWithNoItemsInQueue()
|
|
{
|
|
// Run a copy of MatterControl
|
|
Action<AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
|
|
{
|
|
AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
|
|
{
|
|
MatterControlUtilities.PrepForTestRun(testRunner);
|
|
|
|
//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);
|
|
Assert.IsTrue(testHarness.AllTestsPassed(1));
|
|
}
|
|
}
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain]
|
|
public class QueueItemThumnailWidget
|
|
{
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
public void QueueThumbnailWidgetOpensPartPreview()
|
|
{
|
|
// Run a copy of MatterControl
|
|
Action<AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
|
|
{
|
|
AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
|
|
{
|
|
MatterControlUtilities.PrepForTestRun(testRunner);
|
|
|
|
// Tests that clicking a queue item thumbnail opens a Part Preview window
|
|
|
|
bool partPreviewWindowExists1 = testRunner.WaitForName("Part Preview Window Thumbnail", 0);
|
|
resultsHarness.AddTestResult(partPreviewWindowExists1 == false, "Part Preview Window Does Not Exist");
|
|
|
|
testRunner.ClickByName("Queue Item Thumbnail");
|
|
|
|
SystemWindow containingWindow;
|
|
GuiWidget partPreviewWindowExists = testRunner.GetWidgetByName("Part Preview Window", out containingWindow, 3);
|
|
resultsHarness.AddTestResult(partPreviewWindowExists != null, "Part Preview Window Exists");
|
|
partPreviewWindowExists.CloseOnIdle();
|
|
testRunner.Wait(.5);
|
|
|
|
MatterControlUtilities.CloseMatterControl(testRunner);
|
|
}
|
|
};
|
|
|
|
AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, queueItemFolderToAdd: QueueTemplate.Three_Queue_Items);
|
|
Assert.IsTrue(testHarness.AllTestsPassed(2));
|
|
}
|
|
}
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain]
|
|
public class ClickCopyButtonMakesACopyOfPrintItemInQueue
|
|
{
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
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));
|
|
}
|
|
}
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain]
|
|
public class AddSingleItemToQueueAddsItem
|
|
{
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
public void AddSingleItemToQueue()
|
|
{
|
|
// Run a copy of MatterControl
|
|
Action<AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
|
|
{
|
|
AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
|
|
{
|
|
MatterControlUtilities.PrepForTestRun(testRunner);
|
|
|
|
/*
|
|
* Tests that Queue Add button adds a single part to queue:
|
|
* 1. The Queue count is increased by 1
|
|
* 2. A QueueRowItem is created and added to the queue
|
|
*/
|
|
|
|
int queueCountBeforeAdd = QueueData.Instance.Count;
|
|
|
|
//Click Add Button and Add Part To Queue
|
|
testRunner.ClickByName("Queue Add Button", 2);
|
|
testRunner.Wait(2);
|
|
|
|
string queueItemPath = MatterControlUtilities.GetTestItemPath("Fennec_Fox.stl");
|
|
|
|
testRunner.Type(queueItemPath);
|
|
testRunner.Wait(1);
|
|
testRunner.Type("{Enter}");
|
|
|
|
|
|
//Make sure single part is added and queue count increases by one
|
|
bool fennecFoxPartWasAdded = testRunner.WaitForName("Queue Item " + "Fennec_Fox", 2);
|
|
resultsHarness.AddTestResult(fennecFoxPartWasAdded == true);
|
|
|
|
int queueCountAfterAdd = QueueData.Instance.Count;
|
|
|
|
resultsHarness.AddTestResult(queueCountBeforeAdd +1 == queueCountAfterAdd);
|
|
|
|
MatterControlUtilities.CloseMatterControl(testRunner);
|
|
|
|
}
|
|
};
|
|
|
|
AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);
|
|
Assert.IsTrue(testHarness.AllTestsPassed(2));
|
|
}
|
|
}
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain]
|
|
public class AddButtonAddsMuiltipleItemsToQueue
|
|
{
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
public void AddMuiltipleItemsToQueue()
|
|
{
|
|
// Run a copy of MatterControl
|
|
Action<AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
|
|
{
|
|
AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
|
|
{
|
|
MatterControlUtilities.PrepForTestRun(testRunner);
|
|
|
|
/*
|
|
* Tests that Add button can add multiple files to the print queue:
|
|
* 1. The Queue count is increased by 2
|
|
* 2. 2 QueueRowItems are created and added to the queue
|
|
*/
|
|
|
|
int queueCountBeforeAdd = QueueData.Instance.Count;
|
|
|
|
//Click Add Button and Add Part To Queue
|
|
testRunner.ClickByName("Queue Add Button", 2);
|
|
string pathToFirstQueueItem = MatterControlUtilities.GetTestItemPath("Fennec_Fox.stl");
|
|
testRunner.Wait(1);
|
|
string pathToSecondQueueItem = MatterControlUtilities.GetTestItemPath("Batman.stl");
|
|
string textForBothQueueItems = String.Format("\"{0}\" \"{1}\"", pathToFirstQueueItem, pathToSecondQueueItem);
|
|
|
|
testRunner.Type(textForBothQueueItems);
|
|
testRunner.Wait(2);
|
|
testRunner.Type("{Enter}");
|
|
testRunner.Wait(2);
|
|
|
|
//Confirm that both items were added and that the queue count increases by the appropriate number
|
|
int queueCountAfterAdd = QueueData.Instance.Count;
|
|
|
|
resultsHarness.AddTestResult(QueueData.Instance.Count == queueCountBeforeAdd + 2);
|
|
|
|
bool firstQueueItemWasAdded = testRunner.WaitForName("Queue Item " + "Fennec_Fox", 2);
|
|
bool secondQueueItemWasAdded = testRunner.WaitForName("Queue Item " + "Batman", 2);
|
|
|
|
resultsHarness.AddTestResult(firstQueueItemWasAdded == true);
|
|
resultsHarness.AddTestResult(secondQueueItemWasAdded == true);
|
|
|
|
MatterControlUtilities.CloseMatterControl(testRunner);
|
|
|
|
}
|
|
};
|
|
|
|
AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);
|
|
Assert.IsTrue(testHarness.AllTestsPassed(3));
|
|
}
|
|
}
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain]
|
|
public class RemoveButtonClickedRemovesSingleItem
|
|
{
|
|
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
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));
|
|
}
|
|
}
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain]
|
|
public class EditButtonClickedTurnsOnEditMode
|
|
{
|
|
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
public void EditButtonTurnsOnEditMode()
|
|
{
|
|
//Run a copy of MatterControl
|
|
Action<AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
|
|
{
|
|
AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
|
|
{
|
|
MatterControlUtilities.PrepForTestRun(testRunner);
|
|
/*
|
|
*Tests that when the edit button is clicked we go into editmode (print queue items have checkboxes on them)
|
|
*1. After Edit button is clicked print queue items have check boxes
|
|
*2. Selecting multiple queue itema and then clicking the Remove button removes the item
|
|
*3. Selecting multiple queue items and then clicking the Remove button decreases the queue tab count by one
|
|
*/
|
|
|
|
bool checkboxExists = testRunner.WaitForName("Queue Item Checkbox", 2);
|
|
|
|
resultsHarness.AddTestResult(checkboxExists == false);
|
|
|
|
resultsHarness.AddTestResult(QueueData.Instance.Count == 4);
|
|
|
|
testRunner.Wait(2);
|
|
|
|
SystemWindow systemWindow;
|
|
|
|
string itemName = "Queue Item " + "2013-01-25_Mouthpiece_v2";
|
|
|
|
GuiWidget queueItem = testRunner.GetWidgetByName(itemName, out systemWindow, 3);
|
|
|
|
SearchRegion queueItemRegion = testRunner.GetRegionByName(itemName, 3);
|
|
|
|
testRunner.ClickByName("Queue Edit Button", 2);
|
|
|
|
testRunner.Wait(5);
|
|
|
|
SystemWindow containingWindow;
|
|
GuiWidget foundWidget = testRunner.GetWidgetByName("Queue Item Checkbox", out containingWindow, 3, searchRegion: queueItemRegion);
|
|
CheckBox checkBoxWidget = foundWidget as CheckBox;
|
|
resultsHarness.AddTestResult(checkBoxWidget != null, "We should have an actual checkbox");
|
|
|
|
|
|
MatterControlUtilities.CloseMatterControl(testRunner);
|
|
}
|
|
};
|
|
|
|
AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, queueItemFolderToAdd: QueueTemplate.Three_Queue_Items, overrideWidth: 600);
|
|
Assert.IsTrue(testHarness.AllTestsPassed(3));
|
|
}
|
|
}
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain, Ignore("Not Finished")]
|
|
public class DoneButtonClickedTurnsOffEditMode
|
|
{
|
|
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
public void DoneButtonTurnsOffEditMode()
|
|
{
|
|
//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 multiple queue itema and then clicking the Remove button removes the item
|
|
*3. Selecting multiple queue items and then clicking the Remove button decreases the queue tab count by one
|
|
*/
|
|
|
|
int queueItemCount = QueueData.Instance.Count;
|
|
bool queueItemCountEqualThree = false;
|
|
|
|
if (queueItemCount == 3)
|
|
{
|
|
queueItemCountEqualThree = true;
|
|
}
|
|
|
|
resultsHarness.AddTestResult(queueItemCountEqualThree == true);
|
|
testRunner.Wait(2);
|
|
|
|
string itemName = "Queue Item " + "2013-01-25_Mouthpiece_v2";
|
|
SystemWindow systemWindow;
|
|
GuiWidget queueItem = testRunner.GetWidgetByName(itemName, out systemWindow, 3);
|
|
SearchRegion queueItemRegion = testRunner.GetRegionByName(itemName, 3);
|
|
|
|
testRunner.ClickByName("Queue Edit Button", 2);
|
|
testRunner.Wait(5);
|
|
|
|
GuiWidget foundWidget = testRunner.GetWidgetByName("Queue Item Checkbox", out systemWindow, 3, searchRegion: queueItemRegion);
|
|
foundWidget.DebugShowBounds = true;
|
|
CheckBox checkBoxWidget = foundWidget as CheckBox;
|
|
resultsHarness.AddTestResult(checkBoxWidget != null, "We should have an actual checkbox");
|
|
|
|
testRunner.Wait(2);
|
|
|
|
testRunner.ClickByName("Queue Done Button");
|
|
|
|
testRunner.Wait(3);
|
|
|
|
foundWidget.DebugShowBounds = true;
|
|
|
|
resultsHarness.AddTestResult(foundWidget == null, "We should not have an actual checkbox");
|
|
|
|
MatterControlUtilities.CloseMatterControl(testRunner);
|
|
}
|
|
};
|
|
|
|
AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, queueItemFolderToAdd: QueueTemplate.Three_Queue_Items);
|
|
Assert.IsTrue(testHarness.AllTestsPassed(3));
|
|
}
|
|
}
|
|
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain]
|
|
public class RemoveButtonClickedRemovesMultipleItems
|
|
{
|
|
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
public void RemoveButtonRemovesMultipleItems()
|
|
{
|
|
//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 multiple queue itema and then clicking the Remove button removes the item
|
|
*3. Selecting multiple queue items and then clicking the Remove button decreases the queue tab count by one
|
|
*/
|
|
|
|
int queueItemCount = QueueData.Instance.Count;
|
|
|
|
testRunner.Wait(2);
|
|
|
|
testRunner.ClickByName("Queue Edit Button", 2);
|
|
|
|
testRunner.ClickByName("Queue Item " + "Batman", 2);
|
|
|
|
testRunner.ClickByName("Queue Remove Button", 2);
|
|
|
|
testRunner.Wait(1);
|
|
|
|
int queueItemCountAfterRemove = QueueData.Instance.Count;
|
|
|
|
resultsHarness.AddTestResult(queueItemCount - 2 == queueItemCountAfterRemove);
|
|
|
|
bool queueItemExists = testRunner.WaitForName("Queue Item " + "Batman", 2);
|
|
bool secondQueueItemExists = testRunner.WaitForName("Queue Item " + "2013-01-25_Mouthpiece_v2", 2);
|
|
|
|
resultsHarness.AddTestResult(queueItemExists == false);
|
|
resultsHarness.AddTestResult(secondQueueItemExists == false);
|
|
|
|
|
|
MatterControlUtilities.CloseMatterControl(testRunner);
|
|
}
|
|
};
|
|
|
|
AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, queueItemFolderToAdd: QueueTemplate.Three_Queue_Items);
|
|
Assert.IsTrue(testHarness.AllTestsPassed(3));
|
|
}
|
|
}
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain]
|
|
public class ExportToZipMenuItemClickedExportsQueueToZip
|
|
{
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
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
|
|
*/
|
|
|
|
// make sure it is not there when we start
|
|
string validateExportPath = Path.Combine("..", "..", "..", "TestData", "QueueItems", "TestExportZip.zip");
|
|
if (File.Exists(validateExportPath))
|
|
{
|
|
File.Delete(validateExportPath);
|
|
}
|
|
|
|
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");
|
|
|
|
// 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(validateExportPath);
|
|
|
|
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 + ".zip");
|
|
testRunner.Wait(1);
|
|
testRunner.Type("{Enter}");
|
|
|
|
int queueCountAfterZipIsAdded = QueueData.Instance.Count;
|
|
bool allItemsInZipWereAddedToTheQueue = false;
|
|
|
|
if(queueCountAfterZipIsAdded == queueItemCountBeforeRemoveAllClicked)
|
|
{
|
|
allItemsInZipWereAddedToTheQueue = true;
|
|
}
|
|
|
|
resultsHarness.AddTestResult(allItemsInZipWereAddedToTheQueue == true);
|
|
|
|
if (File.Exists(validateExportPath))
|
|
{
|
|
File.Delete(validateExportPath);
|
|
}
|
|
|
|
MatterControlUtilities.CloseMatterControl(testRunner);
|
|
}
|
|
};
|
|
|
|
AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, queueItemFolderToAdd: QueueTemplate.Three_Queue_Items);
|
|
Assert.IsTrue(testHarness.AllTestsPassed(3));
|
|
}
|
|
}
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain]
|
|
public class SendMenuItemClickedWhileNotLoggedIn
|
|
{
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
public void SendMenuItemCLickedNoSignIn()
|
|
{
|
|
// 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
|
|
*/
|
|
|
|
int queueItemCountBeforeRemoveAllClicked = QueueData.Instance.Count;
|
|
|
|
resultsHarness.AddTestResult(queueItemCountBeforeRemoveAllClicked > 0);
|
|
|
|
testRunner.ClickByName("More... Menu", 2);
|
|
|
|
testRunner.ClickByName("Send Menu Item", 2);
|
|
|
|
bool signInPromptWindowOpens = testRunner.WaitForName("Ok Button", 2);
|
|
|
|
resultsHarness.AddTestResult(signInPromptWindowOpens == true);
|
|
|
|
testRunner.ClickByName("Ok Button");
|
|
|
|
|
|
MatterControlUtilities.CloseMatterControl(testRunner);
|
|
|
|
}
|
|
};
|
|
|
|
AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, queueItemFolderToAdd: QueueTemplate.Three_Queue_Items);
|
|
Assert.IsTrue(testHarness.AllTestsPassed(2));
|
|
}
|
|
}
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain]
|
|
public class RemoveAllMenuItemClicked
|
|
{
|
|
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
public void RemoveAllMenuItemClickedRemovesAll()
|
|
{
|
|
// Run a copy of MatterControl
|
|
Action<AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
|
|
{
|
|
AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
|
|
{
|
|
MatterControlUtilities.PrepForTestRun(testRunner);
|
|
/*
|
|
*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, queueItemFolderToAdd: QueueTemplate.Three_Queue_Items);
|
|
Assert.IsTrue(testHarness.AllTestsPassed(8));
|
|
}
|
|
}
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain, Ignore("Not Finished")]
|
|
public class CreatePartSheetMenuItemClickedCreatesPartSheet
|
|
{
|
|
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
public void ClickCreatePartSheetButton()
|
|
{
|
|
// Run a copy of MatterControl
|
|
Action<AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
|
|
{
|
|
AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
|
|
{
|
|
MatterControlUtilities.PrepForTestRun(testRunner);
|
|
/*
|
|
*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 queueItemCount = QueueData.Instance.Count;
|
|
|
|
if (queueItemCount == 3)
|
|
{
|
|
queueEmpty = false;
|
|
}
|
|
|
|
resultsHarness.AddTestResult(queueEmpty == false);
|
|
testRunner.ClickByName("Queue... Menu", 2);
|
|
testRunner.ClickByName(" Create Part Sheet Menu Item", 2);
|
|
testRunner.Wait(2);
|
|
|
|
string pathToSavePartSheet = MatterControlUtilities.GetTestItemPath("CreatePartSheet");
|
|
string validatePartSheetPath = Path.Combine("..", "..", "..", "TestData", "QueueItems", "CreatePartSheet.pdf");
|
|
|
|
testRunner.Type(pathToSavePartSheet);
|
|
testRunner.Wait(1);
|
|
testRunner.Type("{Enter}");
|
|
testRunner.Wait(1);
|
|
testRunner.Wait(5);
|
|
|
|
bool partSheetCreated = File.Exists(validatePartSheetPath);
|
|
|
|
testRunner.Wait(2);
|
|
resultsHarness.AddTestResult(partSheetCreated == true);
|
|
|
|
|
|
if (File.Exists(validatePartSheetPath))
|
|
{
|
|
|
|
File.Delete(validatePartSheetPath);
|
|
|
|
}
|
|
|
|
MatterControlUtilities.CloseMatterControl(testRunner);
|
|
|
|
}
|
|
};
|
|
|
|
AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun, queueItemFolderToAdd: QueueTemplate.Three_Queue_Items);
|
|
Assert.IsTrue(testHarness.AllTestsPassed(5));
|
|
}
|
|
}
|
|
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain]
|
|
public class QueueRowItemRemoveViewButtons
|
|
{
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
public void ClickQueueRoWItemViewAndRemove()
|
|
{
|
|
// Run a copy of MatterControl
|
|
Action<AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
|
|
{
|
|
AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
|
|
{
|
|
MatterControlUtilities.PrepForTestRun(testRunner);
|
|
|
|
/*
|
|
*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;
|
|
|
|
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;
|
|
|
|
resultsHarness.AddTestResult(currentQueueItemCount - 1 == queueItemCountAfterRemove);
|
|
|
|
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, queueItemFolderToAdd: QueueTemplate.Three_Queue_Items, overrideWidth: 600);
|
|
Assert.IsTrue(testHarness.AllTestsPassed(6));
|
|
}
|
|
}
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain]
|
|
public class QueueAddButtonAddsZipToQueue
|
|
{
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
public void QueueAddButtonAddsZipFile()
|
|
{
|
|
|
|
Action<AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
|
|
{
|
|
|
|
AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
|
|
{
|
|
MatterControlUtilities.PrepForTestRun(testRunner);
|
|
|
|
/* Tests that when the Queue Copy button is clicked:
|
|
* 1. QueueCount = Zero
|
|
* 2. All files in zip are added to queue
|
|
*/
|
|
int queueCountBeforeTest = QueueData.Instance.Count;
|
|
bool queueCountEqualsZero = false;
|
|
|
|
if (queueCountBeforeTest == 0)
|
|
{
|
|
queueCountEqualsZero = true;
|
|
}
|
|
|
|
//Make sure queue count equals zero before test begins
|
|
resultsHarness.AddTestResult(queueCountEqualsZero = true);
|
|
|
|
//Click Add button
|
|
testRunner.ClickByName("Queue Add Button", 2);
|
|
|
|
testRunner.Wait(1);
|
|
|
|
string pathToType = MatterControlUtilities.GetTestItemPath("Batman.zip");
|
|
testRunner.Type(pathToType);
|
|
testRunner.Wait(1);
|
|
testRunner.Type("{Enter}");
|
|
|
|
int queueCountAfterZipIsAdded = QueueData.Instance.Count;
|
|
bool twoItemsAddedToQueue = false;
|
|
|
|
if(queueCountAfterZipIsAdded == 2)
|
|
{
|
|
twoItemsAddedToQueue = true;
|
|
}
|
|
|
|
resultsHarness.AddTestResult(twoItemsAddedToQueue = true);
|
|
|
|
//Mouthpiece & Batman part
|
|
|
|
bool firstQueueItemExists = testRunner.WaitForName("Queue Item " + "Batman", 1);
|
|
resultsHarness.AddTestResult(firstQueueItemExists == true);
|
|
|
|
bool secondQueueItemExists = testRunner.WaitForName("Queue Item " + "2013-01-25_Mouthpiece_v2", 1);
|
|
resultsHarness.AddTestResult(secondQueueItemExists == true);
|
|
|
|
MatterControlUtilities.CloseMatterControl(testRunner);
|
|
}
|
|
};
|
|
|
|
AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);
|
|
Assert.IsTrue(testHarness.AllTestsPassed(4));
|
|
}
|
|
}
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain]
|
|
public class QueueAddButtonAddsAMFFileToQueue
|
|
{
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
public void QueueAddButtonAddsAMF()
|
|
{
|
|
Action<AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
|
|
{
|
|
AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
|
|
{
|
|
MatterControlUtilities.PrepForTestRun(testRunner);
|
|
|
|
/* Tests that when the Queue Copy button is clicked:
|
|
* 1. QueueCount = Zero
|
|
* 2. Add button can add single .amf file to the queue
|
|
* 3. Queue count inceases by one
|
|
*/
|
|
int queueCountBeforeTest = QueueData.Instance.Count;
|
|
|
|
bool queueCountEqualsZero = false;
|
|
|
|
if (queueCountBeforeTest == 0)
|
|
{
|
|
queueCountEqualsZero = true;
|
|
}
|
|
|
|
//Make sure queue count equals zero before test begins
|
|
resultsHarness.AddTestResult(queueCountEqualsZero = true);
|
|
|
|
//Click Add button
|
|
testRunner.ClickByName("Queue Add Button", 2);
|
|
testRunner.Wait(1);
|
|
|
|
string pathToType = MatterControlUtilities.GetTestItemPath("Rook.amf");
|
|
|
|
testRunner.Type(pathToType);
|
|
testRunner.Wait(1);
|
|
testRunner.Type("{Enter}");
|
|
|
|
|
|
//Make sure Queue Count increases by one
|
|
int queueCountAfterAMFIsAdded = QueueData.Instance.Count;
|
|
bool oneItemAddedToQueue = false;
|
|
|
|
if (queueCountAfterAMFIsAdded == 1)
|
|
{
|
|
oneItemAddedToQueue = true;
|
|
}
|
|
|
|
resultsHarness.AddTestResult(oneItemAddedToQueue = true);
|
|
|
|
//Make sure amf queue item is added
|
|
bool firstQueueItemExists = testRunner.WaitForName("Queue Item " + "Rook", 1);
|
|
resultsHarness.AddTestResult(firstQueueItemExists == true);
|
|
|
|
MatterControlUtilities.CloseMatterControl(testRunner);
|
|
}
|
|
};
|
|
|
|
AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);
|
|
Assert.IsTrue(testHarness.AllTestsPassed(3));
|
|
}
|
|
}
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain]
|
|
public class QueueAddButtonAddsSTLFileToQueue
|
|
{
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
public void QueueAddButtonAddsSTL()
|
|
{
|
|
Action<AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
|
|
{
|
|
AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
|
|
{
|
|
MatterControlUtilities.PrepForTestRun(testRunner);
|
|
|
|
/* Tests that when the Queue Copy button is clicked:
|
|
* 1. QueueCount = Zero
|
|
* 2. Add button can add single .stl file to the queue
|
|
* 3. Queue count inceases by one
|
|
*/
|
|
int queueCountBeforeTest = QueueData.Instance.Count;
|
|
bool queueCountEqualsZero = false;
|
|
|
|
if (queueCountBeforeTest == 0)
|
|
{
|
|
queueCountEqualsZero = true;
|
|
}
|
|
|
|
//Make sure queue count equals zero before test begins
|
|
resultsHarness.AddTestResult(queueCountEqualsZero = true);
|
|
|
|
//Click Add button
|
|
testRunner.ClickByName("Queue Add Button", 2);
|
|
testRunner.Wait(1);
|
|
|
|
string pathToType = MatterControlUtilities.GetTestItemPath("Batman.stl");
|
|
|
|
testRunner.Type(pathToType);
|
|
testRunner.Wait(1);
|
|
testRunner.Type("{Enter}");
|
|
|
|
int queueCountAfterSTLIsAdded = QueueData.Instance.Count;
|
|
bool oneItemAddedToQueue = false;
|
|
|
|
if (queueCountAfterSTLIsAdded == 1)
|
|
{
|
|
oneItemAddedToQueue = true;
|
|
}
|
|
|
|
resultsHarness.AddTestResult(oneItemAddedToQueue = true);
|
|
|
|
//stl queue item is added to the queue
|
|
bool firstQueueItemExists = testRunner.WaitForName("Queue Item " + "Batman", 1);
|
|
resultsHarness.AddTestResult(firstQueueItemExists == true);
|
|
|
|
MatterControlUtilities.CloseMatterControl(testRunner);
|
|
}
|
|
};
|
|
|
|
AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);
|
|
Assert.IsTrue(testHarness.AllTestsPassed(3));
|
|
}
|
|
}
|
|
|
|
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain]
|
|
public class QueueAddButtonAddsGcodeFileToQueue
|
|
{
|
|
[Test, Apartment(ApartmentState.STA), RunInApplicationDomain]
|
|
public void QueueAddButtonAddsGcodeFile()
|
|
{
|
|
|
|
Action<AutomationTesterHarness> testToRun = (AutomationTesterHarness resultsHarness) =>
|
|
{
|
|
AutomationRunner testRunner = new AutomationRunner(MatterControlUtilities.DefaultTestImages);
|
|
{
|
|
MatterControlUtilities.PrepForTestRun(testRunner);
|
|
|
|
/* Tests that when the Queue Copy button is clicked:
|
|
* 1. QueueCount = Zero
|
|
* 2. Add button can add single .gcode file to the queue
|
|
* 3. Queue count inceases by one
|
|
*/
|
|
int queueCountBeforeTest = QueueData.Instance.Count;
|
|
bool queueCountEqualsZero = false;
|
|
|
|
if (queueCountBeforeTest == 0)
|
|
{
|
|
queueCountEqualsZero = true;
|
|
}
|
|
|
|
//Make sure queue count equals zero before test begins
|
|
resultsHarness.AddTestResult(queueCountEqualsZero = true);
|
|
|
|
//Click Add button
|
|
testRunner.ClickByName("Queue Add Button", 2);
|
|
testRunner.Wait(1);
|
|
|
|
string pathToType = MatterControlUtilities.GetTestItemPath("chichen-itza_pyramid.gcode");
|
|
|
|
testRunner.Type(pathToType);
|
|
testRunner.Wait(1);
|
|
testRunner.Type("{Enter}");
|
|
|
|
int queueCountAfterGcodeIsAdded = QueueData.Instance.Count;
|
|
bool oneItemAddedToQueue = false;
|
|
|
|
if (queueCountAfterGcodeIsAdded == 1)
|
|
{
|
|
oneItemAddedToQueue = true;
|
|
}
|
|
|
|
resultsHarness.AddTestResult(oneItemAddedToQueue = true);
|
|
|
|
//stl queue item is added to the queue
|
|
bool firstQueueItemExists = testRunner.WaitForName("Queue Item " + "chichen-itza_pyramid", 1);
|
|
resultsHarness.AddTestResult(firstQueueItemExists == true);
|
|
|
|
MatterControlUtilities.CloseMatterControl(testRunner);
|
|
}
|
|
};
|
|
|
|
AutomationTesterHarness testHarness = MatterControlUtilities.RunTest(testToRun);
|
|
Assert.IsTrue(testHarness.AllTestsPassed(3));
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|