Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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();
        }
Пример #4
0
        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}");
        }