2017-06-06 18:52:13 -07:00
using System.Threading ;
2016-10-25 06:17:37 -07:00
using System.Threading.Tasks ;
2017-06-03 15:45:26 -07:00
using MatterHackers.Agg.UI ;
2015-11-13 11:57:19 -08:00
using MatterHackers.MatterControl.PrintQueue ;
2016-05-11 09:13:56 -07:00
using NUnit.Framework ;
2015-11-13 11:57:19 -08:00
2016-05-11 09:13:56 -07:00
namespace MatterHackers.MatterControl.Tests.Automation
2015-11-13 11:57:19 -08:00
{
2017-06-03 09:03:02 -07:00
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain, Apartment(ApartmentState.STA)]
2016-10-20 16:31:37 -07:00
public class LocalLibraryTests
2015-11-13 11:57:19 -08:00
{
2017-06-03 09:03:02 -07:00
[Test]
2016-10-25 06:17:37 -07:00
public async Task LocalLibraryAddButtonAddSingleItemToLibrary ( )
2015-11-13 11:57:19 -08:00
{
2017-06-03 09:03:02 -07:00
await MatterControlUtilities . RunTest ( ( testRunner ) = >
2015-11-13 11:57:19 -08:00
{
2018-10-10 13:33:16 -07:00
testRunner . AddAndSelectPrinter ( ) ;
2018-11-02 07:35:26 -07:00
testRunner . AddTestAssetsToLibrary ( new [ ] { "Batman.stl" } ) ;
2016-10-25 06:17:37 -07:00
2017-06-04 08:35:29 -07:00
return Task . CompletedTask ;
2017-06-03 09:03:02 -07:00
} ) ;
2015-11-13 11:57:19 -08:00
}
2017-06-03 09:03:02 -07:00
[Test]
2016-10-25 06:17:37 -07:00
public async Task LocalLibraryAddButtonAddsMultipleItemsToLibrary ( )
2015-11-13 11:57:19 -08:00
{
2017-06-03 09:18:10 -07:00
await MatterControlUtilities . RunTest ( ( testRunner ) = >
2015-11-13 11:57:19 -08:00
{
2018-10-10 13:33:16 -07:00
testRunner . AddAndSelectPrinter ( ) ;
2018-11-02 07:35:26 -07:00
testRunner . AddTestAssetsToLibrary ( new [ ] { "Rook.amf" , "Batman.stl" } ) ;
2016-10-25 06:17:37 -07:00
2017-06-04 08:35:29 -07:00
return Task . CompletedTask ;
2017-06-03 09:18:10 -07:00
} ) ;
2015-11-13 11:57:19 -08:00
}
2017-06-03 09:03:02 -07:00
[Test]
2016-10-25 06:17:37 -07:00
public async Task LocalLibraryAddButtonAddAMFToLibrary ( )
2015-11-13 11:57:19 -08:00
{
2017-06-03 09:22:39 -07:00
await MatterControlUtilities . RunTest ( ( testRunner ) = >
2015-11-13 11:57:19 -08:00
{
2018-10-10 13:33:16 -07:00
testRunner . AddAndSelectPrinter ( ) ;
2018-11-02 07:35:26 -07:00
testRunner . AddTestAssetsToLibrary ( new [ ] { "Rook.amf" } ) ;
2016-10-25 06:17:37 -07:00
2017-06-04 08:35:29 -07:00
return Task . CompletedTask ;
2017-06-03 09:22:39 -07:00
} , overrideWidth : 1024 , overrideHeight : 800 ) ;
2015-11-13 11:57:19 -08:00
}
2018-10-05 14:22:11 -07:00
[Test]
public async Task ParentFolderRefreshedOnPathPop ( )
{
// Expected: When descending into a child folder and moving items into the parent, popping the path to the parent should refresh and show the moved content
await MatterControlUtilities . RunTest ( testRunner = >
{
2018-10-10 13:33:16 -07:00
testRunner . AddAndSelectPrinter ( ) ;
2018-10-05 14:22:11 -07:00
// Navigate to Local Library
testRunner . NavigateToFolder ( "Local Library Row Item Collection" ) ;
string folderID = testRunner . CreateChildFolder ( "New Folder" ) ;
testRunner . DoubleClickByName ( folderID ) ;
// Add Library item
testRunner . InvokeLibraryAddDialog ( ) ;
testRunner . Delay ( 2 ) ;
testRunner . Type ( MatterControlUtilities . GetTestItemPath ( "Batman.stl" ) ) ;
testRunner . Delay ( 1 ) ;
testRunner . Type ( "{Enter}" ) ;
string newFileID = "Row Item Batman" ;
testRunner . ClickByName ( newFileID ) ;
testRunner . LibraryMoveSelectedItem ( ) ;
testRunner . NavigateToFolder ( "Local Library Row Item Collection" ) ;
// Click Move
testRunner . ClickByName ( "Accept Button" ) ;
// Return to the Local Library folder
testRunner . ClickByName ( "Library Up Button" ) ;
// Assert that the expected item appears in the parent after popping the path
testRunner . ClickByName ( newFileID ) ;
return Task . CompletedTask ;
} ) ;
}
2017-06-03 09:03:02 -07:00
[Test]
2016-10-25 06:17:37 -07:00
public async Task LocalLibraryAddButtonAddZipToLibrary ( )
2015-11-13 11:57:19 -08:00
{
2017-06-03 09:46:02 -07:00
await MatterControlUtilities . RunTest ( ( testRunner ) = >
2015-11-13 11:57:19 -08:00
{
2018-10-10 13:33:16 -07:00
testRunner . AddAndSelectPrinter ( ) ;
2016-10-19 11:10:30 -07:00
2018-05-04 12:58:38 -07:00
// Navigate to Local Library
2016-10-26 06:49:50 -07:00
testRunner . NavigateToFolder ( "Local Library Row Item Collection" ) ;
2016-10-19 11:10:30 -07:00
2017-06-03 09:46:02 -07:00
// Make sure that Item does not exist before the test begins
Assert . IsFalse ( testRunner . WaitForName ( "Row Item Batman" , 1 ) , "Batman part should not exist at test start" ) ;
Assert . IsFalse ( testRunner . WaitForName ( "Row Item 2013-01-25 Mouthpiece V2" , 1 ) , "Mouthpiece part should not exist at test start" ) ;
2016-10-19 11:10:30 -07:00
2017-06-03 09:46:02 -07:00
// Add Library item
2018-04-07 11:21:02 -07:00
testRunner . InvokeLibraryAddDialog ( ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 2 ) ;
2017-06-03 09:46:02 -07:00
testRunner . Type ( MatterControlUtilities . GetTestItemPath ( "Batman.zip" ) ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 1 ) ;
2016-10-19 11:10:30 -07:00
testRunner . Type ( "{Enter}" ) ;
2018-02-10 00:12:48 -08:00
testRunner . WaitForName ( "Batman Row Item Collection" ) ;
testRunner . DoubleClickByName ( "Batman Row Item Collection" ) ;
Assert . IsTrue ( testRunner . WaitForName ( "Row Item Batman.stl" ) , "Batman part should exist after adding" ) ;
Assert . IsTrue ( testRunner . WaitForName ( "Row Item 2013-01-25_Mouthpiece_v2.stl" ) , "Mouthpiece part should exist after adding" ) ;
2016-10-25 06:17:37 -07:00
2017-06-04 08:35:29 -07:00
return Task . CompletedTask ;
2017-06-03 09:46:02 -07:00
} ) ;
2015-11-13 11:57:19 -08:00
}
2017-06-03 16:47:26 -07:00
2017-06-03 09:03:02 -07:00
[Test]
2016-10-25 06:17:37 -07:00
public async Task RenameButtonRenameLocalLibraryItem ( )
2015-11-13 11:57:19 -08:00
{
2017-06-03 13:29:36 -07:00
await MatterControlUtilities . RunTest ( ( testRunner ) = >
2015-11-13 11:57:19 -08:00
{
2018-10-10 13:33:16 -07:00
testRunner . AddAndSelectPrinter ( ) ;
2015-11-13 11:57:19 -08:00
2018-11-02 07:35:26 -07:00
testRunner . AddTestAssetsToLibrary ( new [ ] { "Rook.amf" } ) ;
2015-11-13 11:57:19 -08:00
2017-06-14 09:56:51 -07:00
testRunner . ClickByName ( "Row Item Rook" ) ;
2015-11-13 11:57:19 -08:00
2017-06-03 13:29:36 -07:00
// Open and wait rename window
testRunner . LibraryRenameSelectedItem ( ) ;
2017-10-30 16:12:34 -07:00
testRunner . WaitForName ( "InputBoxPage Action Button" ) ;
2015-11-13 11:57:19 -08:00
2017-06-03 13:29:36 -07:00
testRunner . Delay ( 1 ) ;
2015-11-13 11:57:19 -08:00
2017-06-03 13:29:36 -07:00
// Rename item
testRunner . Type ( "Rook Renamed" ) ;
2017-10-30 16:12:34 -07:00
testRunner . ClickByName ( "InputBoxPage Action Button" ) ;
2015-11-13 11:57:19 -08:00
2017-06-03 13:29:36 -07:00
// Confirm
2017-06-14 14:02:29 -07:00
Assert . IsTrue ( testRunner . WaitForName ( "Row Item Rook Renamed" ) ) ;
Assert . IsFalse ( testRunner . WaitForName ( "Row Item Rook" , 1 ) ) ;
2016-10-25 06:17:37 -07:00
2017-06-04 08:35:29 -07:00
return Task . CompletedTask ;
2017-06-03 13:29:36 -07:00
} , overrideWidth : 600 ) ;
2015-11-13 11:57:19 -08:00
}
2017-06-03 09:03:02 -07:00
[Test]
2016-11-05 11:48:08 -07:00
public async Task RenameButtonRenamesLocalLibraryFolder ( )
2015-11-13 11:57:19 -08:00
{
2017-06-03 15:11:12 -07:00
await MatterControlUtilities . RunTest ( ( testRunner ) = >
2015-11-13 11:57:19 -08:00
{
2018-10-10 13:33:16 -07:00
testRunner . AddAndSelectPrinter ( ) ;
2017-06-04 08:22:04 -07:00
2016-11-05 11:48:08 -07:00
// Navigate to Local Library
2016-10-26 06:49:50 -07:00
testRunner . NavigateToFolder ( "Local Library Row Item Collection" ) ;
2016-10-19 11:10:30 -07:00
2016-11-05 11:48:08 -07:00
// Create New Folder
2018-10-05 14:21:55 -07:00
string folderID = testRunner . CreateChildFolder ( "New Folder" ) ;
2016-10-19 11:10:30 -07:00
2018-10-05 14:21:55 -07:00
testRunner . ClickByName ( folderID ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( . 2 ) ;
2016-11-05 11:48:08 -07:00
2017-06-03 13:29:36 -07:00
testRunner . LibraryRenameSelectedItem ( ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( . 5 ) ;
2016-10-19 11:10:30 -07:00
testRunner . Type ( "Renamed Library Folder" ) ;
2016-11-05 11:48:08 -07:00
2017-10-17 12:35:24 -07:00
testRunner . ClickByName ( "InputBoxPage Action Button" ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( . 2 ) ;
2016-10-19 11:10:30 -07:00
2016-11-05 11:48:08 -07:00
// Make sure the renamed Library Folder exists
2017-06-14 14:02:29 -07:00
Assert . IsTrue ( testRunner . WaitForName ( "Renamed Library Folder Row Item Collection" ) , "Renamed folder should exist" ) ;
2016-10-25 06:17:37 -07:00
2017-06-04 08:35:29 -07:00
return Task . CompletedTask ;
2017-06-03 15:11:12 -07:00
} ) ;
2015-11-13 18:06:44 -08:00
}
2017-06-03 09:03:02 -07:00
[Test]
2016-10-25 06:17:37 -07:00
public async Task RemoveButtonClickedRemovesSingleItem ( )
2015-11-13 18:06:44 -08:00
{
2017-06-03 15:46:34 -07:00
await MatterControlUtilities . RunTest ( ( testRunner ) = >
2015-11-13 18:06:44 -08:00
{
2018-10-10 13:33:16 -07:00
testRunner . AddAndSelectPrinter ( ) ;
2017-06-03 16:47:26 -07:00
2018-11-02 07:35:26 -07:00
testRunner . AddTestAssetsToLibrary ( new [ ] { "Rook.amf" } ) ;
2015-11-13 18:06:44 -08:00
2017-06-03 15:46:34 -07:00
// Select and remove item
2017-06-04 08:22:04 -07:00
testRunner . ClickByName ( "Row Item Rook" ) ;
2017-06-06 18:52:13 -07:00
testRunner . LibraryRemoveSelectedItem ( ) ;
2015-11-13 18:06:44 -08:00
2017-06-04 08:22:04 -07:00
// Make sure that the item has been removed
2017-06-17 18:48:40 -07:00
Assert . IsFalse ( testRunner . WaitForName ( "Row Item Rook" , . 5 ) ) ;
2016-10-25 06:17:37 -07:00
2017-06-04 08:35:29 -07:00
return Task . CompletedTask ;
2017-06-03 15:46:34 -07:00
} ) ;
2015-11-13 11:57:19 -08:00
}
2017-06-03 09:03:02 -07:00
[Test]
2016-10-25 06:17:37 -07:00
public async Task RemoveButtonClickedRemovesMultipleItems ( )
2015-11-13 18:06:44 -08:00
{
2017-06-03 15:45:26 -07:00
await MatterControlUtilities . RunTest ( ( testRunner ) = >
2015-11-13 18:06:44 -08:00
{
2018-10-10 13:33:16 -07:00
testRunner . AddAndSelectPrinter ( ) ;
2016-11-01 23:27:08 -07:00
2018-11-02 07:35:26 -07:00
testRunner . AddTestAssetsToLibrary ( new [ ] { "Rook.amf" , "Batman.stl" } ) ;
2017-06-03 15:45:26 -07:00
2017-06-03 16:40:00 -07:00
// Select both items
2017-06-06 18:42:44 -07:00
testRunner . SelectListItems ( "Row Item Rook" , "Row Item Batman" ) ;
2015-11-13 18:06:44 -08:00
2016-11-01 23:27:08 -07:00
// Remove items
2017-06-06 18:52:13 -07:00
testRunner . LibraryRemoveSelectedItem ( ) ;
2017-02-01 10:12:31 -08:00
testRunner . Delay ( 1 ) ;
2015-11-13 18:06:44 -08:00
2016-11-01 23:27:08 -07:00
// Make sure both selected items are removed
2017-06-04 08:22:04 -07:00
Assert . IsFalse ( testRunner . WaitForName ( "Row Item Rook" , 1 ) , "Rook part should *not* exist after remove" ) ;
Assert . IsFalse ( testRunner . WaitForName ( "Row Item Batman" , 1 ) , "Batman part *not* exist after remove" ) ;
2016-10-25 06:17:37 -07:00
2017-06-04 08:35:29 -07:00
return Task . CompletedTask ;
2017-06-03 15:45:26 -07:00
} ) ;
2015-11-13 18:06:44 -08:00
}
2015-11-18 15:28:50 -08:00
}
2015-11-13 11:57:19 -08:00
}