mattercontrol/Tests/MatterControl.AutomationTests/LocalLibraryTests.cs

272 lines
8.4 KiB
C#
Raw Normal View History

using System;
using System.Threading;
using System.Threading.Tasks;
using MatterHackers.Agg.UI;
using MatterHackers.GuiAutomation;
using MatterHackers.MatterControl.PrinterCommunication;
using MatterHackers.MatterControl.PrintQueue;
using NUnit.Framework;
namespace MatterHackers.MatterControl.Tests.Automation
{
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain, Apartment(ApartmentState.STA)]
public class LocalLibraryTests
{
[Test]
public async Task LocalLibraryAddButtonAddSingleItemToLibrary()
{
await MatterControlUtilities.RunTest((testRunner) =>
{
testRunner.CloseSignInAndPrinterSelect();
testRunner.AddTestAssetsToLibrary("Batman.stl");
return Task.CompletedTask;
});
}
[Test]
public async Task LocalLibraryAddButtonAddsMultipleItemsToLibrary()
{
await MatterControlUtilities.RunTest((testRunner) =>
{
testRunner.CloseSignInAndPrinterSelect();
testRunner.AddTestAssetsToLibrary("Rook.amf", "Batman.stl");
return Task.CompletedTask;
});
}
[Test]
public async Task LocalLibraryAddButtonAddAMFToLibrary()
{
await MatterControlUtilities.RunTest((testRunner) =>
{
testRunner.CloseSignInAndPrinterSelect();
testRunner.AddTestAssetsToLibrary("Rook.amf");
return Task.CompletedTask;
}, overrideWidth: 1024, overrideHeight: 800);
}
[Test]
public async Task LocalLibraryAddButtonAddZipToLibrary()
{
await MatterControlUtilities.RunTest((testRunner) =>
{
testRunner.CloseSignInAndPrinterSelect();
2016-10-19 11:10:30 -07:00
// Navigate to Local Library
2016-10-19 11:10:30 -07:00
testRunner.ClickByName("Library Tab");
testRunner.NavigateToFolder("Local Library Row Item Collection");
2016-10-19 11:10:30 -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
// Add Library item
2016-10-19 11:10:30 -07:00
testRunner.ClickByName("Library Add Button");
2017-02-01 10:12:31 -08:00
testRunner.Delay(2);
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}");
Assert.IsTrue(testRunner.WaitForName("Row Item Batman", 2), "Batman part should exist after adding");
Assert.IsTrue(testRunner.WaitForName("Row Item 2013-01-25 Mouthpiece V2", 2), "Mouthpiece part should exist after adding");
return Task.CompletedTask;
});
}
[Test]
public async Task RenameButtonRenameLocalLibraryItem()
{
await MatterControlUtilities.RunTest((testRunner) =>
{
testRunner.CloseSignInAndPrinterSelect();
testRunner.AddTestAssetsToLibrary("Rook.amf");
testRunner.ClickByName("Row Item Rook", 2);
// Open and wait rename window
testRunner.LibraryRenameSelectedItem();
testRunner.WaitForName("Rename Button");
testRunner.Delay(1);
// Rename item
testRunner.Type("Rook Renamed");
2016-10-19 11:10:30 -07:00
testRunner.ClickByName("Rename Button");
// Confirm
Assert.IsTrue(testRunner.WaitForName("Row Item Rook Renamed", 5));
Assert.IsFalse(testRunner.WaitForName("Row Item Rook", 2));
return Task.CompletedTask;
}, overrideWidth: 600);
}
[Test]
public async Task RenameButtonRenamesLocalLibraryFolder()
{
await MatterControlUtilities.RunTest((testRunner) =>
{
testRunner.CloseSignInAndPrinterSelect();
// Navigate to Local Library
2016-10-19 11:10:30 -07:00
testRunner.ClickByName("Library Tab");
2017-02-01 10:12:31 -08:00
testRunner.Delay(.2);
testRunner.NavigateToFolder("Local Library Row Item Collection");
2016-10-19 11:10:30 -07:00
// Create New Folder
2016-10-19 11:10:30 -07:00
testRunner.ClickByName("Create Folder From Library Button");
2017-02-01 10:12:31 -08:00
testRunner.Delay(.5);
2016-10-19 11:10:30 -07:00
testRunner.Type("New Folder");
2017-02-01 10:12:31 -08:00
testRunner.Delay(.5);
2016-10-19 11:10:30 -07:00
testRunner.ClickByName("Create Folder Button");
2017-02-01 10:12:31 -08:00
testRunner.Delay(.2);
2016-10-19 11:10:30 -07:00
// Confirm newly created folder exists
Assert.IsTrue(testRunner.WaitForName("New Folder Row Item Collection", 1), "New folder should appear as GuiWidget");
2016-10-19 11:10:30 -07:00
testRunner.ClickByName("New Folder Row Item Collection");
2017-02-01 10:12:31 -08:00
testRunner.Delay(.2);
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-10-19 11:10:30 -07:00
testRunner.ClickByName("Rename Button");
2017-02-01 10:12:31 -08:00
testRunner.Delay(.2);
2016-10-19 11:10:30 -07:00
// Make sure the renamed Library Folder exists
Assert.IsTrue(testRunner.WaitForName("Renamed Library Folder Row Item Collection", 2), "Renamed folder should exist");
return Task.CompletedTask;
});
}
[Test]
public async Task RemoveButtonClickedRemovesSingleItem()
{
await MatterControlUtilities.RunTest((testRunner) =>
{
testRunner.CloseSignInAndPrinterSelect();
testRunner.AddTestAssetsToLibrary("Rook.amf");
// Select and remove item
testRunner.ClickByName("Row Item Rook");
2016-10-19 11:10:30 -07:00
MatterControlUtilities.LibraryRemoveSelectedItem(testRunner);
// Make sure that the item has been removed
Assert.IsFalse(testRunner.WaitForName("Row Item Rook"));
return Task.CompletedTask;
});
}
[Test]
public async Task RemoveButtonClickedRemovesMultipleItems()
{
await MatterControlUtilities.RunTest((testRunner) =>
{
testRunner.CloseSignInAndPrinterSelect();
testRunner.AddTestAssetsToLibrary("Rook.amf", "Batman.stl");
// Select both items
testRunner.ClickByName("Row Item Rook", 1);
Keyboard.SetKeyDownState(Keys.ControlKey, down: true);
testRunner.ClickByName("Row Item Batman", 1);
Keyboard.SetKeyDownState(Keys.ControlKey, down: false);
// Remove items
2016-10-19 11:10:30 -07:00
MatterControlUtilities.LibraryRemoveSelectedItem(testRunner);
2017-02-01 10:12:31 -08:00
testRunner.Delay(1);
// Make sure both selected items are removed
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");
return Task.CompletedTask;
});
}
[Test]
public async Task AddToQueueFromLibraryButtonAddsItemToQueue()
{
await MatterControlUtilities.RunTest((testRunner) =>
{
int expectedCount = QueueData.Instance.ItemCount + 1;
testRunner.CloseSignInAndPrinterSelect();
testRunner.AddTestAssetsToLibrary("Rook.amf");
// Select Library Item
testRunner.ClickByName("Row Item Rook");
// Add Library Item to the Print Queue
2016-10-19 11:10:30 -07:00
MatterControlUtilities.LibraryAddSelectionToQueue(testRunner);
2017-02-01 10:12:31 -08:00
testRunner.Delay(2);
// Make sure that the Queue Count increases by one
Assert.AreEqual(expectedCount, QueueData.Instance.ItemCount, "Queue item count should increase by one after add");
// Navigate to the PrintQueueContainer
testRunner.ClickByName("Bread Crumb Button Home");
testRunner.NavigateToFolder("Print Queue Row Item Collection");
// Make sure that the item exists in the PrintQueueContainer
Assert.IsTrue(testRunner.WaitForName("Row Item Rook", 5), "Rook item should exist in the Queue after Add");
return Task.CompletedTask;
});
}
[Test]
public async Task AddToQueueFromLibraryButtonAddsItemsToQueue()
{
await MatterControlUtilities.RunTest((testRunner) =>
{
int expectedCount = QueueData.Instance.ItemCount + 2;
testRunner.CloseSignInAndPrinterSelect();
testRunner.AddTestAssetsToLibrary("Rook.amf", "Batman.stl");
// Select both items
testRunner.ClickByName("Row Item Rook", 5);
Keyboard.SetKeyDownState(Keys.ControlKey, down: true);
testRunner.ClickByName("Row Item Batman", 1);
Keyboard.SetKeyDownState(Keys.ControlKey, down: false);
// Click the Add To Queue button
2017-02-01 10:12:31 -08:00
testRunner.Delay(1);
2016-10-19 11:10:30 -07:00
MatterControlUtilities.LibraryAddSelectionToQueue(testRunner);
// TODO: Somehow thumbnail generation is happening on the UI thread and bogging this down. Leave at 15 second for a short-term workaround
testRunner.Delay(() => QueueData.Instance.ItemCount == expectedCount, 15, 500);
// Make sure Queue Count increases by the correct amount
Assert.AreEqual(expectedCount, QueueData.Instance.ItemCount);
// Navigate to the PrintQueueContainer
testRunner.ClickByName("Bread Crumb Button Home");
testRunner.NavigateToFolder("Print Queue Row Item Collection");
// Make sure that the items exist in the PrintQueueContainer
Assert.IsTrue(testRunner.WaitForName("Row Item Rook", 5), "Rook item should exist in the Queue after Add");
Assert.IsTrue(testRunner.WaitForName("Row Item Batman", 5), "Batman item should exist in the Queue after Add");
return Task.CompletedTask;
});
}
}
}