123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Text;
- using System.Windows;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using PixiEditor.Models.Controllers;
- using PixiEditor.Models.Layers;
- using PixiEditor.Models.Position;
- using Xunit;
- namespace PixiEditorTests.ModelsTests.ControllersTests
- {
- public class ClipboardControllerTests
- {
- private Color testColor = Colors.Coral;
- [StaFact]
- public void TestThatClipboardControllerIgnoresNonImageDataInClipboard()
- {
- Clipboard.Clear();
- Clipboard.SetText("Text data");
- var img = ClipboardController.GetImageFromClipboard();
- Assert.Null(img);
- }
- [StaFact]
- public void TestThatIsImageInClipboardWorksForDib()
- {
- Clipboard.Clear();
- Clipboard.SetImage(BitmapFactory.New(10, 10));
- Assert.True(ClipboardController.IsImageInClipboard());
- }
- [StaFact]
- public void TestThatClipboardControllerSavesImageToClipboard()
- {
- Layer testLayer = new Layer("test layer", 10, 10);
- ClipboardController.CopyToClipboard(new []{testLayer}, CoordinatesCalculator.RectangleToCoordinates(0,0, 9,9), 10, 10);
- Assert.True(ClipboardController.IsImageInClipboard());
- }
- [StaFact]
- public void TestThatCopyToClipboardWithSelectionSavesCorrectBitmap()
- {
- Clipboard.Clear();
- Layer testLayer = new Layer("test layer", 10, 10);
- Layer testLayer2 = new Layer("test layer", 10, 10);
- testLayer.SetPixel(new Coordinates(4,4), testColor);
- testLayer2.SetPixel(new Coordinates(5,5), testColor);
- ClipboardController.CopyToClipboard(new []{testLayer, testLayer2},
- new []{new Coordinates(4,4), new Coordinates(5,5)}, 10, 10);
- var img = Clipboard.GetImage(); // Using default Clipboard get image to avoid false positives from faulty ClipboardController GetImage
- Assert.True(ClipboardController.IsImageInClipboard());
- Assert.NotNull(img);
- Assert.Equal(2, img.PixelWidth);
- Assert.Equal(2, img.PixelHeight);
- var bmp = new WriteableBitmap(img);
- Assert.Equal(testColor, bmp.GetPixel(0, 0));
- Assert.Equal(testColor, bmp.GetPixel(1, 1));
- }
- [StaFact]
- public void TestThatClipboardControllerGetsCorrectImageInDibFormatFromClipboard()
- {
- Clipboard.Clear();
- var bmp = BitmapFactory.New(10, 10);
- bmp.SetPixel(4, 4, testColor);
- Clipboard.SetImage(bmp);
- var img = ClipboardController.GetImageFromClipboard();
- Assert.NotNull(img);
- Assert.Equal(10, img.PixelWidth);
- Assert.Equal(10, img.PixelHeight);
- Assert.Equal(testColor, bmp.GetPixel(4, 4));
- }
- [StaFact]
- public void TestThatClipboardControllerGetsCorrectImageInPngFormatFromClipboard()
- {
- Clipboard.Clear();
- var bmp = BitmapFactory.New(10, 10);
- bmp.SetPixel(4,4, testColor);
- using (var pngStream = new MemoryStream())
- {
- DataObject data = new DataObject();
- PngBitmapEncoder encoder = new PngBitmapEncoder();
- encoder.Frames.Add(BitmapFrame.Create(bmp));
- encoder.Save(pngStream);
- data.SetData("PNG", pngStream, false); //PNG, supports transparency
- Clipboard.SetDataObject(data, true);
- }
- var img = ClipboardController.GetImageFromClipboard();
- Assert.NotNull(img);
- Assert.Equal(10, img.PixelWidth);
- Assert.Equal(10, img.PixelHeight);
- Assert.Equal(testColor, bmp.GetPixel(4,4));
- }
- [StaFact]
- public void TestThatClipboardControllerGetsCorrectImageInBitmapFormatFromClipboard()
- {
- Clipboard.Clear();
- var bmp = BitmapFactory.New(10, 10);
- bmp.SetPixel(4, 4, testColor);
- DataObject data = new DataObject();
- data.SetData(DataFormats.Bitmap, bmp, false); //PNG, supports transparency
- Clipboard.SetDataObject(data, true);
- var img = ClipboardController.GetImageFromClipboard();
- Assert.NotNull(img);
- Assert.Equal(10, img.PixelWidth);
- Assert.Equal(10, img.PixelHeight);
- Assert.Equal(testColor, bmp.GetPixel(4, 4));
- }
-
- }
- }
|