2017-06-04 10:20:47 -07:00
/ *
Copyright ( c ) 2017 , John Lewin
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.Diagnostics ;
2018-12-18 09:10:05 -08:00
using System.Linq ;
2017-06-04 10:20:47 -07:00
using System.Threading ;
using System.Threading.Tasks ;
using MatterHackers.MatterControl.Library ;
2018-12-18 09:10:05 -08:00
using MatterHackers.MatterControl.PartPreviewWindow ;
using MatterHackers.MatterControl.SlicerConfiguration ;
2017-06-04 10:20:47 -07:00
using NUnit.Framework ;
namespace MatterHackers.MatterControl.Tests.Automation
{
[TestFixture, Category("MatterControl.UI.Automation"), RunInApplicationDomain, Apartment(ApartmentState.STA)]
public class MatterControlTests
{
[Test]
public async Task ThumbnailGenerationMode ( )
{
await MatterControlUtilities . RunTest ( async ( testRunner ) = >
{
// Automation tests should initialize with orthographic thumbnails
var item = new FileSystemFileItem ( MatterControlUtilities . GetTestItemPath ( "Rook.amf" ) ) ;
var provider = ApplicationController . Instance . Library . GetContentProvider ( item ) ;
// Generate thumbnail
var stopWatch = Stopwatch . StartNew ( ) ;
2018-06-20 22:22:37 -07:00
await provider . GetThumbnail ( item , 400 , 400 ) ;
2017-06-04 10:20:47 -07:00
Assert . Less ( stopWatch . ElapsedMilliseconds , 2000 , "Elapsed thumbnail generation for Rook.amf should be less than 2 seconds for expected orthographic mode" ) ;
} ) ;
}
2017-12-22 10:01:19 -08:00
[Test]
public async Task View3DOverflowMenus ( )
{
await MatterControlUtilities . RunTest ( testRunner = >
{
2018-02-08 15:42:07 -08:00
testRunner . WaitForFirstDraw ( ) ;
2017-12-22 10:01:19 -08:00
testRunner . AddAndSelectPrinter ( "Airwolf 3D" , "HD" ) ;
testRunner . ClickByName ( "Model View Button" ) ;
testRunner . ClickByName ( "View3D Overflow Menu" ) ;
return Task . CompletedTask ;
} ) ;
}
2018-12-18 09:10:05 -08:00
[Test]
public async Task PrinterTabRemainsAfterReloadAll ( )
{
await MatterControlUtilities . RunTest ( ( testRunner ) = >
{
testRunner . WaitForFirstDraw ( ) ;
// Add Guest printers
testRunner . AddAndSelectPrinter ( "Airwolf 3D" , "HD" ) ;
Assert . AreEqual (
1 ,
ApplicationController . Instance . ActivePrinters . Count ( ) ,
"One printer should exist after Airwolf add" ) ;
testRunner . SwitchToSliceSettings ( ) ;
// Move to Adhesion tab
2019-01-16 09:06:30 -08:00
testRunner . SelectSliceSettingsField ( PrinterSettings . Layout . SliceSettings , "skirts" ) ;
2018-12-18 09:10:05 -08:00
// Click Brim toggle field forcing ReloadAll
testRunner . WaitForReloadAll ( ( ) = > testRunner . ClickByName ( "Create Brim Field" ) ) ;
// Ensure tabs remain
Assert . AreEqual (
1 ,
ApplicationController . Instance . ActivePrinters . Count ( ) ,
"One printer should exist after Airwolf add" ) ;
2019-01-16 09:06:30 -08:00
testRunner . Delay ( 2 ) ;
2018-12-18 09:10:05 -08:00
Assert . AreEqual (
1 ,
2019-01-16 09:06:30 -08:00
ApplicationController . Instance . MainView . TabControl . AllTabs . Select ( t = > t . TabContent ) . OfType < PrinterTabPage > ( ) . Count ( ) ,
2018-12-18 09:10:05 -08:00
"One printer tab should exist after ReloadAll" ) ;
return Task . CompletedTask ;
} , maxTimeToRun : 120 ) ;
}
2017-06-04 10:20:47 -07:00
}
}