public async Task ScreenshotTest() { using var cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(30)); var cancellationToken = cancellationTokenSource.Token; using var app = await TestWpfApp.CreateAsync(cancellationToken); using var runner = new SelectRunner(app.Dispatcher).WithLogging(); var process = new Process <ICommand>(); var task = runner.SelectAsync(process, cancellationToken); await Task.Delay(TimeSpan.FromSeconds(5), cancellationToken); await process.StopAsync(cancellationToken); var rectangle = await task; Console.WriteLine($"{rectangle.Left}, {rectangle.Top}, {rectangle.Right}, {rectangle.Bottom}"); using var screenshotRunner = new ScreenshotRunner().WithLogging(); var image = await screenshotRunner.ShotAsync(rectangle, cancellationToken); using var clipboardRunner = new ClipboardRunner(app.Dispatcher).WithLogging(); await clipboardRunner.SetClipboardImageAsync(image, cancellationToken); }
public void WhenRunIsCalledThenScreenshotEngineTakesASnapshotForEachUrl() { var mockScreenshotProvider = new Mock <IScreenshotProvider>(); var filePathProvider = new FilePathProvider("TestDirectory"); var sut = new ScreenshotRunner(mockScreenshotProvider.Object, filePathProvider); var screenshotDefinitions = new[] { new ScreenshotDefinition("url1", "fileName1"), new ScreenshotDefinition("url2", "fileName2") }; sut.CreateScreenshots(screenshotDefinitions); mockScreenshotProvider.Verify(x => x.SaveScreenshot("url1", @"TestDirectory\fileName1"), Times.Once); mockScreenshotProvider.Verify(x => x.SaveScreenshot("url2", @"TestDirectory\fileName2"), Times.Once); }
public void RunTests() { var screenshots = new[] { new ScreenshotDefinition( @"http://www.thelondonclinic.co.uk/patient-care/your-stay-at-the-london-clinic", "Your_Stay.png"), new ScreenshotDefinition(@"http://www.thelondonclinic.co.uk/eye-centre", "Eye_Centre.png") }; var oldFilePath = new FilePathProvider("Original"); var newFilePath = new FilePathProvider("New"); var screenshotProvider = new ScreenshotProvider(new ChromeDriver(@"Drivers/")); var runner = new ScreenshotRunner(screenshotProvider, oldFilePath); runner.CreateScreenshots(screenshots); var screenshotEngine = new ScreenshotTestEngine(oldFilePath, newFilePath, screenshotProvider); var testRunner = new ScreenshotTestRunner(screenshotEngine, screenshots); var results = testRunner.Run(); }
public async Task ScreenshotCallTest() { using var cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(30)); var cancellationToken = cancellationTokenSource.Token; using var app = await TestWpfApp.CreateAsync(cancellationToken); using var selectRunner = new SelectRunner(app.Dispatcher).WithLogging(); var process = new Process <ICommand>(); var selectTask = selectRunner.CallAsync(new Command("select"), process, cancellationToken); await Task.Delay(TimeSpan.FromSeconds(5), cancellationToken); await process.StopAsync(cancellationToken); var selectOutput = await selectTask; Console.WriteLine($"{nameof(selectOutput)}: {selectOutput.Output}"); using var screenshotRunner = new ScreenshotRunner().WithLogging(); var screenshotOutput = await screenshotRunner.CallAsync( new Command("screenshot", selectOutput.Output), cancellationToken); Console.WriteLine($"{nameof(screenshotOutput)}: {screenshotOutput.Output}"); using var clipboardRunner = new ClipboardRunner(app.Dispatcher).WithLogging(); var clipboardOutput = await clipboardRunner.CallAsync( new Command("clipboard-set-image", screenshotOutput.Output), cancellationToken); Console.WriteLine($"{nameof(clipboardOutput)}: {clipboardOutput.Output}"); }