2015-08-28 17:55:50 -07:00
/ *
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 .
* /
2016-09-21 15:34:53 -07:00
using System ;
using System.IO ;
using System.Threading ;
2016-10-25 06:17:37 -07:00
using System.Threading.Tasks ;
2015-08-28 17:55:50 -07:00
using MatterHackers.Agg.UI ;
2016-05-11 09:13:56 -07:00
using MatterHackers.Agg.UI.Tests ;
using MatterHackers.GuiAutomation ;
using MatterHackers.MatterControl.PrintQueue ;
2015-08-28 17:55:50 -07:00
using NUnit.Framework ;
2016-05-11 09:13:56 -07:00
namespace MatterHackers.MatterControl.Tests.Automation
2015-08-28 17:55:50 -07:00
{
2016-05-11 09:13:56 -07:00
[TestFixture, Category("MatterControl.UI.Automation"), Category("MatterControl.Automation"), RunInApplicationDomain]
2016-10-25 06:17:37 -07:00
public class PrintQueueTests
2015-08-28 17:55:50 -07:00
{
2016-10-25 06:17:37 -07:00
[Test, Apartment(ApartmentState.STA), Category("FixNeeded" /* Not Finished */)]
public async Task ClickOnBuyButton ( )
2015-08-28 17:55:50 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-08-28 17:55:50 -07:00
{
2016-10-26 08:35:51 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2015-08-28 17:55:50 -07:00
2016-10-19 11:10:30 -07:00
//Make sure image does not exist before we click the buy button
testRunner . MatchLimit = 500000 ;
bool imageExists = testRunner . ImageExists ( "MatterHackersStoreImage.png" ) ;
2016-10-25 06:17:37 -07:00
Assert . IsTrue ( imageExists = = false , "Web page is not open" ) ;
2015-08-28 17:55:50 -07:00
2016-10-19 11:10:30 -07:00
//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 ) ;
2016-10-25 06:17:37 -07:00
Assert . IsTrue ( imageExists2 = = true , "Web page is open" ) ;
return Task . FromResult ( 0 ) ;
2015-08-28 17:55:50 -07:00
} ;
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun , queueItemFolderToAdd : QueueTemplate . Three_Queue_Items ) ;
2015-08-28 17:55:50 -07:00
}
2016-10-25 06:17:37 -07:00
[Test, Apartment(ApartmentState.STA)]
public async Task ClickingCreateButtonOpensPluginWindow ( )
2015-08-28 17:55:50 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-08-28 17:55:50 -07:00
{
2016-10-26 08:35:51 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2016-10-19 11:10:30 -07:00
// Tests that clicking the create button opens create tools plugin window
2016-10-26 08:35:51 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2015-10-27 18:32:05 -07:00
2016-10-19 11:10:30 -07:00
//Make sure that plugin window does not exist
bool pluginWindowExists1 = testRunner . WaitForName ( "Plugin Chooser Window" , 0 ) ;
2016-10-25 06:17:37 -07:00
Assert . IsTrue ( pluginWindowExists1 = = false , "Plugin window does not exist" ) ;
2015-08-28 17:55:50 -07:00
2016-10-19 11:10:30 -07:00
testRunner . ClickByName ( "Design Tool Button" , 5 ) ;
2015-08-29 12:10:50 -07:00
2016-10-19 11:10:30 -07:00
//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 ) ;
2016-10-25 06:17:37 -07:00
Assert . IsTrue ( pluginWindowExists ! = null , "Plugin Chooser Window" ) ;
2016-10-19 11:10:30 -07:00
pluginWindowExists . CloseOnIdle ( ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( . 5 ) ;
2016-10-25 06:17:37 -07:00
return Task . FromResult ( 0 ) ;
2015-08-28 17:55:50 -07:00
} ;
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun ) ;
2015-08-28 17:55:50 -07:00
}
2016-10-25 06:17:37 -07:00
[Test, Apartment(ApartmentState.STA)]
public async Task ClickOnExportButton ( )
2015-08-28 17:55:50 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-08-28 17:55:50 -07:00
{
2016-10-19 11:10:30 -07:00
// Tests that clicking the queue export button with a single item selected opens export item window
2016-10-26 08:35:51 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2015-08-28 17:55:50 -07:00
2016-10-19 11:10:30 -07:00
//Make sure that the export window does not exist
bool exportWindowExists1 = testRunner . WaitForName ( "Export Item Window" , 0 ) ;
2016-10-25 06:17:37 -07:00
Assert . IsTrue ( exportWindowExists1 = = false , "Export window does not exist" ) ;
2015-10-27 18:32:05 -07:00
2016-10-19 11:10:30 -07:00
testRunner . ClickByName ( "Queue Export Button" , 5 ) ;
SystemWindow containingWindow ;
GuiWidget exportWindow = testRunner . GetWidgetByName ( "Export Item Window" , out containingWindow , 5 ) ;
2016-10-25 06:17:37 -07:00
Assert . IsTrue ( exportWindow ! = null , "Export window does exist" ) ;
return Task . FromResult ( 0 ) ;
2015-08-28 17:55:50 -07:00
} ;
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun , queueItemFolderToAdd : QueueTemplate . Three_Queue_Items ) ;
2015-08-28 17:55:50 -07:00
}
2017-01-10 13:22:01 -08:00
[Test, Apartment(ApartmentState.STA), Category("FixNeeded") /* Test now works as expected but product does not implement expected functionality */]
public async Task QueueExportIsDisabledIfEmpty ( )
2015-08-28 17:55:50 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-08-28 17:55:50 -07:00
{
2016-10-26 08:35:51 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2016-07-29 16:44:00 -07:00
2017-01-10 13:22:01 -08:00
SystemWindow systemWindow ;
testRunner . ClickByName ( "Queue... Menu" , 2 ) ;
var exportButton = testRunner . GetWidgetByName ( " Export to Zip Menu Item" , out systemWindow , 5 ) ;
Assert . IsNotNull ( exportButton , "Export button should exist" ) ;
Assert . IsTrue ( exportButton . Enabled , "Export button should be enabled" ) ;
testRunner . ClickByName ( " Remove All Menu Item" , 2 ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 1 ) ;
2017-01-10 13:22:01 -08:00
testRunner . ClickByName ( "Queue... Menu" , 2 ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( ( ) = > ! exportButton . Enabled , 4 ) ;
2017-01-10 13:22:01 -08:00
Assert . IsFalse ( exportButton . Enabled , "Export button should be disabled after Queue Menu -> Remove All" ) ;
2016-10-25 06:17:37 -07:00
return Task . FromResult ( 0 ) ;
2015-08-28 17:55:50 -07:00
} ;
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun ) ;
2015-08-28 17:55:50 -07:00
}
2016-10-25 06:17:37 -07:00
[Test, Apartment(ApartmentState.STA)]
public async Task QueueThumbnailWidgetOpensPartPreview ( )
2015-08-28 17:55:50 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-08-28 17:55:50 -07:00
{
2016-10-26 08:35:51 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2015-10-27 18:32:05 -07:00
2016-10-19 11:10:30 -07:00
// Tests that clicking a queue item thumbnail opens a Part Preview window
2016-12-01 15:02:49 -08:00
Assert . IsFalse ( testRunner . NameExists ( "Part Preview Window" ) , "Part Preview Window should not exist" ) ;
2015-08-29 12:10:50 -07:00
2016-10-19 11:10:30 -07:00
testRunner . ClickByName ( "Queue Item Thumbnail" ) ;
2015-08-29 12:10:50 -07:00
2016-10-19 11:10:30 -07:00
SystemWindow containingWindow ;
2016-12-01 15:02:49 -08:00
Assert . IsNotNull ( testRunner . GetWidgetByName ( "Part Preview Window" , out containingWindow , 3 ) , "Part Preview Window Exists" ) ;
2016-10-25 06:17:37 -07:00
return Task . FromResult ( 0 ) ;
2015-08-28 17:55:50 -07:00
} ;
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun , queueItemFolderToAdd : QueueTemplate . Three_Queue_Items ) ;
2015-08-28 17:55:50 -07:00
}
2016-11-02 11:32:13 -07:00
/// <summary>
/// Tests that Queue Copy button increases the queue count by one and that a new queue item appears with the expected name
/// </summary>
/// <returns></returns>
2016-10-25 06:17:37 -07:00
[Test, Apartment(ApartmentState.STA)]
public async Task CopyButtonMakesACopyOfPartInTheQueue ( )
2015-09-03 14:52:40 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-09-03 14:52:40 -07:00
{
2016-12-04 12:26:04 -08:00
int expectedQueueCount = QueueData . Instance . ItemCount + 1 ;
2015-09-03 14:52:40 -07:00
2016-11-02 11:32:13 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2015-09-03 14:52:40 -07:00
2016-11-02 11:32:13 -07:00
testRunner . ClickByName ( "Queue Item Batman" , 3 ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( . 2 ) ;
2015-09-03 14:52:40 -07:00
2016-11-02 11:32:13 -07:00
testRunner . ClickByName ( "Queue Copy Button" , 3 ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( ( ) = > QueueData . Instance . ItemCount = = expectedQueueCount , 3 ) ;
2015-09-03 14:52:40 -07:00
2016-12-04 12:26:04 -08:00
Assert . AreEqual ( expectedQueueCount , QueueData . Instance . ItemCount , "Copy button increases queue count by one" ) ;
2016-11-02 11:32:13 -07:00
Assert . IsTrue ( testRunner . WaitForName ( "Queue Item Batman - copy" , 2 ) , "Copied Batman item exists with expected name" ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( . 3 ) ;
2016-10-25 06:17:37 -07:00
return Task . FromResult ( 0 ) ;
2015-09-03 14:52:40 -07:00
} ;
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun , queueItemFolderToAdd : QueueTemplate . Three_Queue_Items ) ;
2015-09-03 14:52:40 -07:00
}
2016-10-25 06:17:37 -07:00
[Test, Apartment(ApartmentState.STA)]
public async Task AddSingleItemToQueue ( )
2015-09-03 14:52:40 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-09-03 14:52:40 -07:00
{
2016-10-26 08:35:51 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2015-10-27 11:38:12 -07:00
2016-10-19 11:10:30 -07:00
/ *
* 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
* /
2015-10-27 11:38:12 -07:00
2016-12-04 12:26:04 -08:00
int queueCountBeforeAdd = QueueData . Instance . ItemCount ;
2015-10-27 11:38:12 -07:00
2016-10-19 11:10:30 -07:00
//Click Add Button and Add Part To Queue
testRunner . ClickByName ( "Queue Add Button" , 2 ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 2 ) ;
2015-10-27 11:38:12 -07:00
2016-10-19 11:10:30 -07:00
string queueItemPath = MatterControlUtilities . GetTestItemPath ( "Fennec_Fox.stl" ) ;
2015-10-27 11:38:12 -07:00
2016-10-19 11:10:30 -07:00
testRunner . Type ( queueItemPath ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 1 ) ;
2016-10-19 11:10:30 -07:00
testRunner . Type ( "{Enter}" ) ;
2015-09-03 14:52:40 -07:00
2016-10-19 11:10:30 -07:00
//Make sure single part is added and queue count increases by one
2016-11-03 08:46:08 -07:00
bool fennecFoxPartWasAdded = testRunner . WaitForName ( "Queue Item Fennec_Fox" , 2 ) ;
2016-10-25 06:17:37 -07:00
Assert . IsTrue ( fennecFoxPartWasAdded = = true ) ;
2015-09-03 14:52:40 -07:00
2016-12-04 12:26:04 -08:00
int queueCountAfterAdd = QueueData . Instance . ItemCount ;
2015-09-03 14:52:40 -07:00
2016-10-25 06:17:37 -07:00
Assert . IsTrue ( queueCountBeforeAdd + 1 = = queueCountAfterAdd ) ;
return Task . FromResult ( 0 ) ;
2015-10-27 11:38:12 -07:00
} ;
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun ) ;
2015-10-27 11:38:12 -07:00
}
2016-10-25 06:17:37 -07:00
[Test, Apartment(ApartmentState.STA)]
2016-11-03 09:09:06 -07:00
public async Task AddMultipleItemsToQueue ( )
2015-10-27 11:38:12 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-10-27 11:38:12 -07:00
{
2016-10-26 08:35:51 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2015-10-27 11:38:12 -07:00
2016-10-19 11:10:30 -07:00
/ *
* 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
* /
2015-10-27 11:38:12 -07:00
2016-12-04 12:26:04 -08:00
int queueCountBeforeAdd = QueueData . Instance . ItemCount ;
2015-10-27 11:38:12 -07:00
2016-10-19 11:10:30 -07:00
//Click Add Button and Add Part To Queue
testRunner . ClickByName ( "Queue Add Button" , 2 ) ;
string pathToFirstQueueItem = MatterControlUtilities . GetTestItemPath ( "Fennec_Fox.stl" ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 1 ) ;
2016-10-19 11:10:30 -07:00
string pathToSecondQueueItem = MatterControlUtilities . GetTestItemPath ( "Batman.stl" ) ;
string textForBothQueueItems = string . Format ( "\"{0}\" \"{1}\"" , pathToFirstQueueItem , pathToSecondQueueItem ) ;
2015-10-27 11:38:12 -07:00
2016-10-19 11:10:30 -07:00
testRunner . Type ( textForBothQueueItems ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 2 ) ;
2016-10-19 11:10:30 -07:00
testRunner . Type ( "{Enter}" ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 2 ) ;
2015-10-27 11:38:12 -07:00
2016-10-19 11:10:30 -07:00
//Confirm that both items were added and that the queue count increases by the appropriate number
2016-12-04 12:26:04 -08:00
int queueCountAfterAdd = QueueData . Instance . ItemCount ;
2015-10-27 11:38:12 -07:00
2016-12-04 12:26:04 -08:00
Assert . IsTrue ( QueueData . Instance . ItemCount = = queueCountBeforeAdd + 2 ) ;
2015-10-27 11:38:12 -07:00
2016-11-03 08:46:08 -07:00
bool firstQueueItemWasAdded = testRunner . WaitForName ( "Queue Item Fennec_Fox" , 2 ) ;
bool secondQueueItemWasAdded = testRunner . WaitForName ( "Queue Item Batman" , 2 ) ;
2015-10-27 11:38:12 -07:00
2016-10-25 06:17:37 -07:00
Assert . IsTrue ( firstQueueItemWasAdded = = true ) ;
Assert . IsTrue ( secondQueueItemWasAdded = = true ) ;
return Task . FromResult ( 0 ) ;
2015-09-03 14:52:40 -07:00
} ;
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun ) ;
2015-09-03 14:52:40 -07:00
}
2015-09-04 16:44:41 -07:00
2016-11-03 17:01:27 -07:00
/// <summary>
/// Tests that
/// 1. Target item exists
/// 2. QueueData.Instance.Count is correctly decremented after remove
/// 3. Target item does not exist after remove
/// </summary>
2016-10-25 06:17:37 -07:00
[Test, Apartment(ApartmentState.STA)]
public async Task RemoveButtonRemovesSingleItem ( )
2015-10-27 11:38:12 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-10-27 11:38:12 -07:00
{
2016-10-26 08:35:51 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2015-10-27 11:38:12 -07:00
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 1 ) ;
2015-10-27 11:38:12 -07:00
2016-12-04 12:26:04 -08:00
int expectedQueueCount = QueueData . Instance . ItemCount - 1 ;
2015-10-27 11:38:12 -07:00
2016-11-03 17:01:27 -07:00
// Assert exists
Assert . IsTrue ( testRunner . NameExists ( "Queue Item 2013-01-25_Mouthpiece_v2" ) , "Target item should exist before Remove" ) ;
2015-10-27 11:38:12 -07:00
2016-11-03 17:01:27 -07:00
// Remove target item
testRunner . ClickByName ( "Queue Remove Button" , 2 ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 1 ) ;
2015-10-27 11:38:12 -07:00
2016-11-03 17:01:27 -07:00
// Assert removed
2016-12-04 12:26:04 -08:00
Assert . AreEqual ( expectedQueueCount , QueueData . Instance . ItemCount , "After Remove button click, Queue count should be 1 less" ) ;
2016-11-03 17:01:27 -07:00
Assert . IsFalse ( testRunner . WaitForName ( "Queue Item 2013-01-25_Mouthpiece_v2" , 1 ) , "Target item should not exist after Remove" ) ;
2016-10-25 06:17:37 -07:00
return Task . FromResult ( 0 ) ;
2015-10-27 11:38:12 -07:00
} ;
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun , queueItemFolderToAdd : QueueTemplate . Three_Queue_Items ) ;
2015-10-27 11:38:12 -07:00
}
2016-12-15 17:54:42 -08:00
[Test, Apartment(ApartmentState.STA)]
public async Task RemoveLastItemInListChangesSelection ( )
{
AutomationTest testToRun = ( testRunner ) = >
{
testRunner . CloseSignInAndPrinterSelect ( ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 1 ) ;
2016-12-15 17:54:42 -08:00
int expectedQueueCount = QueueData . Instance . ItemCount - 1 ;
Assert . AreEqual ( QueueData . Instance . SelectedIndex , 0 ) ;
2017-02-15 14:30:06 -08:00
testRunner . ClickByName ( "Queue Item Calibration - Box" , 2 ) ;
2016-12-15 17:54:42 -08:00
Assert . AreEqual ( QueueData . Instance . SelectedIndex , 3 ) ;
// Remove target item
testRunner . ClickByName ( "Queue Remove Button" , 2 ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( . 5 ) ;
2016-12-15 17:54:42 -08:00
// after remove we select the next up the list
Assert . AreEqual ( QueueData . Instance . SelectedIndex , 0 ) ;
// Assert removed
Assert . AreEqual ( expectedQueueCount , QueueData . Instance . ItemCount , "After Remove button click, Queue count should be 1 less" ) ;
Assert . IsFalse ( testRunner . WaitForName ( "Queue Item MatterControl - Coin" , . 5 ) , "Target item should not exist after Remove" ) ;
return Task . FromResult ( 0 ) ;
} ;
await MatterControlUtilities . RunTest ( testToRun , queueItemFolderToAdd : QueueTemplate . Three_Queue_Items ) ;
}
2016-10-25 06:17:37 -07:00
[Test, Apartment(ApartmentState.STA)]
public async Task EditButtonTurnsOnOffEditMode ( )
2015-10-27 18:32:05 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-10-27 18:32:05 -07:00
{
2016-10-26 08:35:51 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2016-10-19 11:10:30 -07:00
/ *
* 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
* /
2015-10-29 12:02:22 -07:00
2016-10-19 11:10:30 -07:00
bool checkboxExists = testRunner . WaitForName ( "Queue Item Checkbox" , 2 ) ;
2015-10-29 12:02:22 -07:00
2016-10-25 06:17:37 -07:00
Assert . IsTrue ( checkboxExists = = false ) ;
2015-10-27 18:32:05 -07:00
2016-12-04 12:26:04 -08:00
Assert . IsTrue ( QueueData . Instance . ItemCount = = 4 ) ;
2015-10-27 18:32:05 -07:00
2016-10-19 11:10:30 -07:00
SystemWindow systemWindow ;
2016-11-03 08:46:08 -07:00
string itemName = "Queue Item 2013-01-25_Mouthpiece_v2" ;
2015-10-27 18:32:05 -07:00
2016-10-19 11:10:30 -07:00
GuiWidget queueItem = testRunner . GetWidgetByName ( itemName , out systemWindow , 3 ) ;
SearchRegion queueItemRegion = testRunner . GetRegionByName ( itemName , 3 ) ;
2015-10-27 18:32:05 -07:00
2016-10-19 11:10:30 -07:00
{
testRunner . ClickByName ( "Queue Edit Button" , 2 ) ;
2015-10-27 18:32:05 -07:00
2016-10-19 11:10:30 -07:00
SystemWindow containingWindow ;
GuiWidget foundWidget = testRunner . GetWidgetByName ( "Queue Item Checkbox" , out containingWindow , 3 , searchRegion : queueItemRegion ) ;
2016-10-25 06:17:37 -07:00
Assert . IsTrue ( foundWidget ! = null , "We should have an actual checkbox" ) ;
2016-10-19 11:10:30 -07:00
}
2015-10-27 18:32:05 -07:00
2016-10-19 11:10:30 -07:00
{
testRunner . ClickByName ( "Queue Done Button" , 2 ) ;
2016-09-22 14:57:16 -07:00
2017-02-01 10:12:31 -08:00
testRunner . Delay ( . 5 ) ;
2015-10-27 18:32:05 -07:00
2016-10-19 11:10:30 -07:00
SystemWindow containingWindow ;
GuiWidget foundWidget = testRunner . GetWidgetByName ( "Queue Item Checkbox" , out containingWindow , 1 , searchRegion : queueItemRegion ) ;
2016-10-25 06:17:37 -07:00
Assert . IsTrue ( foundWidget = = null , "We should not have an actual checkbox" ) ;
2015-10-27 18:32:05 -07:00
}
2016-10-25 06:17:37 -07:00
return Task . FromResult ( 0 ) ;
2015-10-27 18:32:05 -07:00
} ;
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun , queueItemFolderToAdd : QueueTemplate . Three_Queue_Items , overrideWidth : 600 ) ;
2015-10-27 18:32:05 -07:00
}
2016-11-04 07:17:59 -07:00
/// <summary>
/// Tests that:
/// 1. When in Edit mode, checkboxes appear
/// 2. When not in Edit mode, no checkboxes appear
/// </summary>
2016-10-25 06:17:37 -07:00
[Test, Apartment(ApartmentState.STA)]
public async Task DoneButtonTurnsOffEditMode ( )
2015-10-27 18:32:05 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-10-27 18:32:05 -07:00
{
2016-11-04 07:17:59 -07:00
SystemWindow systemWindow ;
2015-10-27 18:32:05 -07:00
2016-11-04 07:17:59 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2015-10-27 18:32:05 -07:00
2016-11-04 07:17:59 -07:00
SearchRegion searchRegion = testRunner . GetRegionByName ( "Queue Item 2013-01-25_Mouthpiece_v2" , 3 ) ;
2015-10-27 18:32:05 -07:00
2016-11-04 07:17:59 -07:00
// Enter Edit mode and confirm checkboxes exist
2016-10-19 11:10:30 -07:00
testRunner . ClickByName ( "Queue Edit Button" , 2 ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( . 3 ) ;
2016-11-04 07:17:59 -07:00
Assert . IsNotNull (
testRunner . GetWidgetByName ( "Queue Item Checkbox" , out systemWindow , 3 , searchRegion ) ,
"While in Edit mode, checkboxes should exist on queue items" ) ;
2015-10-27 18:32:05 -07:00
2016-11-04 07:17:59 -07:00
// Exit Edit mode and confirm checkboxes are missing
2016-10-19 11:10:30 -07:00
testRunner . ClickByName ( "Queue Done Button" , 1 ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( . 3 ) ;
2016-11-04 07:17:59 -07:00
Assert . IsNull (
testRunner . GetWidgetByName ( "Queue Item Checkbox" , out systemWindow , 1 , searchRegion ) ,
"After exiting Edit mode, checkboxes should not exist on queue items" ) ;
2016-10-25 06:17:37 -07:00
return Task . FromResult ( 0 ) ;
2015-10-27 18:32:05 -07:00
} ;
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun , queueItemFolderToAdd : QueueTemplate . Three_Queue_Items ) ;
2015-10-27 18:32:05 -07:00
}
2016-10-25 06:17:37 -07:00
[Test, Apartment(ApartmentState.STA)]
public async Task RemoveButtonRemovesMultipleItems ( )
2015-10-27 11:38:12 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-10-27 11:38:12 -07:00
{
2016-10-26 08:35:51 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2016-10-19 11:10:30 -07:00
/ *
* Tests that when one item is selected
* 1. Queue Item count equals three before the test starts
2016-11-04 07:17:59 -07:00
* 2. Selecting multiple queue items and then clicking the Remove button removes the item
2016-10-19 11:10:30 -07:00
* 3. Selecting multiple queue items and then clicking the Remove button decreases the queue tab count by one
* /
2015-10-27 11:38:12 -07:00
2016-12-04 12:26:04 -08:00
int queueItemCount = QueueData . Instance . ItemCount ;
2015-10-27 11:38:12 -07:00
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 2 ) ;
2015-10-27 11:38:12 -07:00
2016-10-19 11:10:30 -07:00
testRunner . ClickByName ( "Queue Edit Button" , 2 ) ;
2015-10-27 11:38:12 -07:00
2016-11-03 08:46:08 -07:00
testRunner . ClickByName ( "Queue Item Batman" , 2 ) ;
2015-10-27 11:38:12 -07:00
2016-10-19 11:10:30 -07:00
testRunner . ClickByName ( "Queue Remove Button" , 2 ) ;
2015-10-27 11:38:12 -07:00
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 1 ) ;
2015-10-27 11:38:12 -07:00
2016-12-04 12:26:04 -08:00
int queueItemCountAfterRemove = QueueData . Instance . ItemCount ;
2015-10-27 11:38:12 -07:00
2016-10-25 06:17:37 -07:00
Assert . IsTrue ( queueItemCount - 2 = = queueItemCountAfterRemove ) ;
2015-10-27 11:38:12 -07:00
2016-11-03 08:46:08 -07:00
bool queueItemExists = testRunner . WaitForName ( "Queue Item Batman" , 2 ) ;
bool secondQueueItemExists = testRunner . WaitForName ( "Queue Item 2013-01-25_Mouthpiece_v2" , 2 ) ;
2015-10-27 11:38:12 -07:00
2016-10-25 06:17:37 -07:00
Assert . IsTrue ( queueItemExists = = false ) ;
Assert . IsTrue ( secondQueueItemExists = = false ) ;
return Task . FromResult ( 0 ) ;
2015-10-27 11:38:12 -07:00
} ;
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun , queueItemFolderToAdd : QueueTemplate . Three_Queue_Items ) ;
2015-10-27 11:38:12 -07:00
}
2016-12-21 17:02:25 -08:00
[Test, Apartment(ApartmentState.STA)]
public async Task QueueSelectCheckBoxWorks ( )
{
AutomationTest testToRun = ( testRunner ) = >
{
testRunner . CloseSignInAndPrinterSelect ( ) ;
/ *
* Tests that when one item is selected
* 1. Queue Item count equals three before the test starts
* 2. Selecting multiple queue items 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 . ItemCount ;
bool queueItemExists = testRunner . WaitForName ( "Queue Item Batman" , 2 ) ;
bool secondQueueItemExists = testRunner . WaitForName ( "Queue Item 2013-01-25_Mouthpiece_v2" , 2 ) ;
SystemWindow systemWindow ;
GuiWidget rowItem = testRunner . GetWidgetByName ( "Queue Item Batman" , out systemWindow , 3 ) ;
SearchRegion rowItemRegion = testRunner . GetRegionByName ( "Queue Item Batman" , 3 ) ;
testRunner . ClickByName ( "Queue Edit Button" , 3 ) ;
GuiWidget foundWidget = testRunner . GetWidgetByName ( "Queue Item Checkbox" , out systemWindow , 3 , searchRegion : rowItemRegion ) ;
CheckBox checkBoxWidget = foundWidget as CheckBox ;
Assert . IsTrue ( checkBoxWidget ! = null , "We should have an actual checkbox" ) ;
Assert . IsTrue ( checkBoxWidget . Checked = = false , "currently not checked" ) ;
testRunner . ClickByName ( "Queue Item Batman" , 3 ) ;
Assert . IsTrue ( checkBoxWidget . Checked = = true , "currently checked" ) ;
testRunner . ClickByName ( "Queue Item Checkbox" , 3 , searchRegion : rowItemRegion ) ;
Assert . IsTrue ( checkBoxWidget . Checked = = false , "currently not checked" ) ;
return Task . FromResult ( 0 ) ;
} ;
await MatterControlUtilities . RunTest ( testToRun , queueItemFolderToAdd : QueueTemplate . Three_Queue_Items ) ;
}
2016-11-02 07:47:58 -07:00
/// <summary>
/// Confirms the Export to Zip feature compresses and exports to a zip file and that file imports without issue
/// </summary>
/// <returns></returns>
2016-10-25 06:17:37 -07:00
[Test, Apartment(ApartmentState.STA)]
2016-11-02 07:47:58 -07:00
public async Task ExportToZipImportFromZip ( )
2015-10-27 11:38:12 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-10-27 11:38:12 -07:00
{
2016-11-02 07:47:58 -07:00
// Ensure output file does not exist
string exportZipPath = MatterControlUtilities . GetTestItemPath ( "TestExportZip.zip" ) ;
if ( File . Exists ( exportZipPath ) )
2016-10-19 11:10:30 -07:00
{
2016-11-02 07:47:58 -07:00
File . Delete ( exportZipPath ) ;
2016-10-19 11:10:30 -07:00
}
2015-10-22 18:23:22 -07:00
2016-11-02 07:47:58 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2016-12-04 12:26:04 -08:00
Assert . AreEqual ( 4 , QueueData . Instance . ItemCount , "Queue should initially have 4 items" ) ;
2015-10-27 11:38:12 -07:00
2016-11-02 07:47:58 -07:00
// Invoke Queue -> Export to Zip dialog
2016-10-19 11:10:30 -07:00
testRunner . ClickByName ( "Queue... Menu" , 2 ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( . 2 ) ;
2016-10-19 11:10:30 -07:00
testRunner . ClickByName ( " Export to Zip Menu Item" , 2 ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 2 ) ;
2016-10-19 11:10:30 -07:00
testRunner . Type ( exportZipPath ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 2 ) ;
2016-10-19 11:10:30 -07:00
testRunner . Type ( "{Enter}" ) ;
2015-10-22 18:23:22 -07:00
2017-02-01 10:12:31 -08:00
testRunner . Delay ( ( ) = > File . Exists ( exportZipPath ) , 3 ) ;
2016-11-02 07:47:58 -07:00
Assert . IsTrue ( File . Exists ( exportZipPath ) , "Queue was exported to zip file, file exists on disk at expected path" ) ;
2015-10-22 18:23:22 -07:00
2016-11-02 07:47:58 -07:00
// Import the exported zip file and confirm the Queue Count increases by 3
2016-10-19 11:10:30 -07:00
testRunner . ClickByName ( "Queue Add Button" ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 1 ) ;
2016-10-19 11:10:30 -07:00
testRunner . Type ( exportZipPath ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 1 ) ;
2016-10-19 11:10:30 -07:00
testRunner . Type ( "{Enter}" ) ;
2015-10-29 12:02:22 -07:00
2017-02-01 10:12:31 -08:00
testRunner . Delay ( ( ) = > QueueData . Instance . ItemCount = = 8 , 5 ) ;
2016-12-04 12:26:04 -08:00
Assert . AreEqual ( 8 , QueueData . Instance . ItemCount , "All parts imported successfully from exported zip" ) ;
2015-10-29 12:02:22 -07:00
2017-02-01 10:12:31 -08:00
testRunner . Delay ( . 3 ) ;
2015-10-27 11:38:12 -07:00
2016-11-02 07:47:58 -07:00
try
2016-10-19 11:10:30 -07:00
{
2016-11-02 07:47:58 -07:00
if ( File . Exists ( exportZipPath ) )
{
File . Delete ( exportZipPath ) ;
}
2015-10-27 11:38:12 -07:00
}
2016-11-02 07:47:58 -07:00
catch { }
2016-10-25 06:17:37 -07:00
return Task . FromResult ( 0 ) ;
2015-10-27 11:38:12 -07:00
} ;
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun , queueItemFolderToAdd : QueueTemplate . Three_Queue_Items ) ;
2015-10-27 11:38:12 -07:00
}
2016-10-25 06:17:37 -07:00
[Test, Apartment(ApartmentState.STA)]
2016-11-02 10:57:04 -07:00
public async Task SendMenuClickedWithoutCloudPlugins ( )
2015-10-27 18:32:05 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-10-27 18:32:05 -07:00
{
2016-11-02 10:57:04 -07:00
SystemWindow parentWindow ;
2015-10-27 18:32:05 -07:00
2016-11-02 10:57:04 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2015-10-27 18:32:05 -07:00
2016-12-04 12:26:04 -08:00
Assert . IsTrue ( QueueData . Instance . ItemCount > 0 , "Queue is not empty at test startup" ) ;
2015-10-27 18:32:05 -07:00
2016-10-19 11:10:30 -07:00
testRunner . ClickByName ( "More... Menu" , 2 ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( . 2 ) ;
2015-10-27 18:32:05 -07:00
2016-10-19 11:10:30 -07:00
testRunner . ClickByName ( "Send Menu Item" , 2 ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( . 2 ) ;
2015-10-27 18:32:05 -07:00
2016-11-02 10:57:04 -07:00
// WaitFor Ok button and ensure parent window has expected title and named button
testRunner . WaitForName ( "Ok Button" , 2 ) ;
var widget = testRunner . GetWidgetByName ( "Ok Button" , out parentWindow ) ;
Assert . IsTrue ( widget ! = null
& & parentWindow . Title = = "MatterControl - Alert" , "Send Disabled warning appears when no plugins exists to satisfy behavior" ) ;
2015-10-27 18:32:05 -07:00
2017-02-01 10:12:31 -08:00
testRunner . Delay ( . 2 ) ;
2015-10-27 18:32:05 -07:00
2016-11-02 10:57:04 -07:00
// Close dialog before exiting
2016-10-19 11:10:30 -07:00
testRunner . ClickByName ( "Ok Button" ) ;
2016-10-25 06:17:37 -07:00
return Task . FromResult ( 0 ) ;
2015-10-27 18:32:05 -07:00
} ;
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun , queueItemFolderToAdd : QueueTemplate . Three_Queue_Items ) ;
2015-10-27 18:32:05 -07:00
}
2015-10-27 11:38:12 -07:00
2016-09-23 14:16:39 -07:00
/// <summary>
/// Tests that when the Remove All menu item is clicked
/// 1. Queue Item count is set to one
/// 2. All widgets that were previously in the queue are removed
/// </summary>
2016-10-25 06:17:37 -07:00
[Test, Apartment(ApartmentState.STA)]
public async Task RemoveAllMenuItemClickedRemovesAll ( )
2015-09-04 16:44:41 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-09-04 16:44:41 -07:00
{
2016-10-26 08:35:51 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2016-12-04 12:26:04 -08:00
Assert . AreEqual ( 4 , QueueData . Instance . ItemCount , "Queue has expected 4 items, including default Coin" ) ;
2015-09-04 16:44:41 -07:00
2016-09-23 14:16:39 -07:00
// Assert that widgets exists
2016-10-25 06:17:37 -07:00
Assert . IsTrue ( testRunner . WaitForName ( "Queue Item Batman" ) , "Batman part exists" ) ;
Assert . IsTrue ( testRunner . WaitForName ( "Queue Item Fennec_Fox" ) , "Fox part exists" ) ;
Assert . IsTrue ( testRunner . WaitForName ( "Queue Item 2013-01-25_Mouthpiece_v2" ) , "Mouthpiece part exists" ) ;
2015-09-04 16:44:41 -07:00
2016-09-23 14:16:39 -07:00
// Act - remove all print queue items
2016-12-01 13:25:17 -08:00
testRunner . RemoveAllFromQueue ( ) ;
2016-11-03 08:46:08 -07:00
2017-02-01 10:12:31 -08:00
testRunner . Delay ( ( ) = > QueueData . Instance . ItemCount = = 0 , 5 ) ;
2015-09-04 16:44:41 -07:00
2016-09-23 14:16:39 -07:00
// Assert that object model has been cleared
2016-12-04 12:26:04 -08:00
Assert . AreEqual ( 0 , QueueData . Instance . ItemCount , "Queue is empty after RemoveAll action" ) ;
2015-09-04 16:44:41 -07:00
2016-09-23 14:16:39 -07:00
// Assert that widgets have been removed
2017-02-01 10:12:31 -08:00
testRunner . Delay ( . 5 ) ;
2016-11-15 15:02:34 -08:00
Assert . IsFalse ( testRunner . NameExists ( "Queue Item Batman" ) , "Batman part removed" ) ;
Assert . IsFalse ( testRunner . NameExists ( "Queue Item Fennec_Fox" ) , "Fox part removed" ) ;
Assert . IsFalse ( testRunner . NameExists ( "Queue Item 2013-01-25_Mouthpiece_v2" ) , "Mouthpiece part removed" ) ;
2016-10-25 06:17:37 -07:00
return Task . FromResult ( 0 ) ;
2015-09-04 16:44:41 -07:00
} ;
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun , queueItemFolderToAdd : QueueTemplate . Three_Queue_Items ) ;
2015-09-04 16:44:41 -07:00
}
2015-09-04 17:26:44 -07:00
2016-10-25 06:17:37 -07:00
[Test, Apartment(ApartmentState.STA), Category("FixNeeded" /* Not Finished */)]
public async Task ClickCreatePartSheetButton ( )
2015-10-27 18:32:05 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-10-27 18:32:05 -07:00
{
2016-10-26 08:35:51 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2015-10-27 18:32:05 -07:00
2016-10-19 11:10:30 -07:00
bool queueEmpty = true ;
2016-12-04 12:26:04 -08:00
int queueItemCount = QueueData . Instance . ItemCount ;
2015-10-27 18:32:05 -07:00
2016-10-19 11:10:30 -07:00
if ( queueItemCount = = 3 )
{
queueEmpty = false ;
}
2015-10-27 18:32:05 -07:00
2016-10-25 06:17:37 -07:00
Assert . IsTrue ( queueEmpty = = false ) ;
2016-10-19 11:10:30 -07:00
testRunner . ClickByName ( "Queue... Menu" , 2 ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( . 2 ) ;
2016-10-19 11:10:30 -07:00
testRunner . ClickByName ( " Create Part Sheet Menu Item" , 2 ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 2 ) ;
2015-10-27 18:32:05 -07:00
2016-10-19 11:10:30 -07:00
string pathToSavePartSheet = MatterControlUtilities . GetTestItemPath ( "CreatePartSheet" ) ;
string validatePartSheetPath = Path . Combine ( ".." , ".." , ".." , "TestData" , "QueueItems" , "CreatePartSheet.pdf" ) ;
2015-10-27 18:32:05 -07:00
2016-10-19 11:10:30 -07:00
testRunner . Type ( pathToSavePartSheet ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 1 ) ;
2016-10-19 11:10:30 -07:00
testRunner . Type ( "{Enter}" ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 1 ) ;
testRunner . Delay ( 5 ) ;
2015-10-27 18:32:05 -07:00
2016-10-19 11:10:30 -07:00
bool partSheetCreated = File . Exists ( validatePartSheetPath ) ;
2015-10-27 18:32:05 -07:00
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 2 ) ;
2016-10-25 06:17:37 -07:00
Assert . IsTrue ( partSheetCreated = = true ) ;
2015-10-27 18:32:05 -07:00
2016-10-19 11:10:30 -07:00
if ( File . Exists ( validatePartSheetPath ) )
{
File . Delete ( validatePartSheetPath ) ;
2015-10-27 18:32:05 -07:00
}
2016-10-25 06:17:37 -07:00
return Task . FromResult ( 0 ) ;
2015-10-27 18:32:05 -07:00
} ;
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun , queueItemFolderToAdd : QueueTemplate . Three_Queue_Items ) ;
2015-10-27 18:32:05 -07:00
}
2016-11-15 15:02:34 -08:00
/// <summary>
/// *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
/// </summary>
/// <returns></returns>
2016-10-25 06:17:37 -07:00
[Test, Apartment(ApartmentState.STA)]
2016-12-02 15:43:56 -08:00
public async Task ClickQueueRowItemViewAndRemove ( )
2015-09-04 17:26:44 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-09-04 17:26:44 -07:00
{
2016-10-26 08:35:51 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2015-09-04 17:26:44 -07:00
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 2 ) ;
2015-09-04 17:26:44 -07:00
2016-12-07 16:14:56 -08:00
Assert . AreEqual ( 4 , QueueData . Instance . ItemCount , "Queue should initially have four items" ) ;
2016-11-03 08:46:08 -07:00
Assert . IsTrue ( testRunner . WaitForName ( "Queue Item Batman" , 1 ) ) ;
Assert . IsTrue ( testRunner . WaitForName ( "Queue Item 2013-01-25_Mouthpiece_v2" , 1 ) ) ;
2015-09-04 17:26:44 -07:00
2016-11-03 08:46:08 -07:00
testRunner . ClickByName ( "Queue Item Batman" , 1 ) ;
testRunner . ClickByName ( "Queue Item Batman Remove" ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 2 ) ;
2015-09-04 17:26:44 -07:00
2016-12-07 16:14:56 -08:00
Assert . AreEqual ( 3 , QueueData . Instance . ItemCount , "Batman item removed" ) ;
2016-11-15 15:02:34 -08:00
Assert . IsFalse ( testRunner . NameExists ( "Queue Item Batman" ) , "Batman item removed" ) ;
2015-09-04 17:26:44 -07:00
2016-11-15 15:02:34 -08:00
Assert . IsFalse ( testRunner . NameExists ( "Queue Item 2013-01-25_Mouthpiece_v2 Part Preview" ) , "Mouthpiece Part Preview should not initially be visible" ) ;
2016-11-03 08:46:08 -07:00
testRunner . ClickByName ( "Queue Item 2013-01-25_Mouthpiece_v2" , 1 ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 2 ) ;
2016-11-03 08:46:08 -07:00
testRunner . ClickByName ( "Queue Item 2013-01-25_Mouthpiece_v2 View" , 1 ) ;
2016-10-07 13:49:01 -07:00
2016-11-15 15:02:34 -08:00
Assert . IsTrue ( testRunner . WaitForName ( "Queue Item 2013-01-25_Mouthpiece_v2 Part Preview" , 2 ) , "The Mouthpiece Part Preview should appear after the view button is clicked" ) ;
2016-10-25 06:17:37 -07:00
return Task . FromResult ( 0 ) ;
2015-09-04 17:26:44 -07:00
} ;
2016-10-07 13:49:01 -07:00
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun , queueItemFolderToAdd : QueueTemplate . Three_Queue_Items , overrideWidth : 600 ) ;
2015-09-04 17:26:44 -07:00
}
2015-10-22 18:23:22 -07:00
2016-10-25 06:17:37 -07:00
[Test, Apartment(ApartmentState.STA)]
public async Task QueueAddButtonAddsAMF ( )
2015-10-27 11:38:12 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-10-27 11:38:12 -07:00
{
2016-10-26 08:35:51 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2015-10-27 11:38:12 -07:00
2016-12-19 11:59:49 -08:00
int initialQueueCount = QueueData . Instance . ItemCount ;
2015-10-27 11:38:12 -07:00
2016-12-19 11:59:49 -08:00
// Click Add button
testRunner . ClickByName ( "Queue Add Button" ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 1 ) ;
2015-10-27 11:38:12 -07:00
2016-12-19 11:59:49 -08:00
testRunner . Type ( MatterControlUtilities . GetTestItemPath ( "Rook.amf" ) ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 1 ) ;
2016-10-19 11:10:30 -07:00
testRunner . Type ( "{Enter}" ) ;
2015-10-29 12:02:22 -07:00
2016-12-19 11:59:49 -08:00
// Widget should exist
Assert . IsTrue ( testRunner . WaitForName ( "Queue Item Rook" , 5 ) , "Widget for added item should exist in control tree" ) ;
2015-10-27 11:38:12 -07:00
2016-12-19 11:59:49 -08:00
// Queue count should increases by one
Assert . AreEqual ( initialQueueCount + 1 , QueueData . Instance . ItemCount , "After adding item, queue count should increase by one" ) ;
2016-10-25 06:17:37 -07:00
return Task . FromResult ( 0 ) ;
2015-10-29 12:02:22 -07:00
} ;
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun ) ;
2015-10-29 12:02:22 -07:00
}
2016-10-25 06:17:37 -07:00
[Test, Apartment(ApartmentState.STA)]
public async Task QueueAddButtonAddsSTL ( )
2015-10-29 12:02:22 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-10-29 12:02:22 -07:00
{
2016-10-26 08:35:51 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2015-10-29 12:02:22 -07:00
2016-12-19 11:59:49 -08:00
int initialQueueCount = QueueData . Instance . ItemCount ;
2015-10-29 12:02:22 -07:00
2016-12-19 11:59:49 -08:00
// Click Add button
testRunner . ClickByName ( "Queue Add Button" ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 1 ) ;
2015-10-29 12:02:22 -07:00
2016-12-19 11:59:49 -08:00
testRunner . Type ( MatterControlUtilities . GetTestItemPath ( "Batman.stl" ) ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 1 ) ;
2016-10-19 11:10:30 -07:00
testRunner . Type ( "{Enter}" ) ;
2015-10-29 12:02:22 -07:00
2016-12-19 11:59:49 -08:00
// Widget should exist
Assert . IsTrue ( testRunner . WaitForName ( "Queue Item Batman" , 5 ) , "Widget for added item should exist in control tree" ) ;
2015-10-29 12:02:22 -07:00
2016-12-19 11:59:49 -08:00
// Queue count should increases by one
Assert . AreEqual ( initialQueueCount + 1 , QueueData . Instance . ItemCount , "After adding item, queue count should increase by one" ) ;
2016-10-25 06:17:37 -07:00
return Task . FromResult ( 0 ) ;
2015-10-29 12:02:22 -07:00
} ;
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun ) ;
2015-10-29 12:02:22 -07:00
}
2016-10-25 06:17:37 -07:00
[Test, Apartment(ApartmentState.STA)]
public async Task QueueAddButtonAddsGcodeFile ( )
2015-10-29 12:02:22 -07:00
{
2016-10-25 06:17:37 -07:00
AutomationTest testToRun = ( testRunner ) = >
2015-10-29 12:02:22 -07:00
{
2016-10-26 08:35:51 -07:00
testRunner . CloseSignInAndPrinterSelect ( ) ;
2015-10-29 12:02:22 -07:00
2016-12-19 11:59:49 -08:00
int initialQueueCount = QueueData . Instance . ItemCount ;
2015-10-29 12:02:22 -07:00
2016-12-19 11:59:49 -08:00
// Click Add button
testRunner . ClickByName ( "Queue Add Button" ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 1 ) ;
2015-10-29 12:02:22 -07:00
2016-12-19 11:59:49 -08:00
testRunner . Type ( MatterControlUtilities . GetTestItemPath ( "chichen-itza_pyramid.gcode" ) ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 1 ) ;
2016-10-19 11:10:30 -07:00
testRunner . Type ( "{Enter}" ) ;
2015-10-29 12:02:22 -07:00
2016-12-19 11:59:49 -08:00
// Widget should exist
Assert . IsTrue ( testRunner . WaitForName ( "Queue Item chichen-itza_pyramid" , 5 ) , "Widget for added item should exist in control tree" ) ;
2015-10-27 11:38:12 -07:00
2016-12-19 11:59:49 -08:00
// Queue count should increases by one
Assert . AreEqual ( initialQueueCount + 1 , QueueData . Instance . ItemCount , "After adding item, queue count should increase by one" ) ;
2016-10-25 06:17:37 -07:00
return Task . FromResult ( 0 ) ;
2015-10-27 11:38:12 -07:00
} ;
2016-10-25 06:17:37 -07:00
await MatterControlUtilities . RunTest ( testToRun ) ;
2015-10-27 11:38:12 -07:00
}
}
2015-08-28 17:55:50 -07:00
}