123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- using Moq;
- using Avalonia.Media;
- using Avalonia.Media.Imaging;
- using Avalonia.UnitTests;
- using Xunit;
- namespace Avalonia.Controls.UnitTests
- {
- public class ImageTests : ScopedTestBase
- {
- [Fact]
- public void Measure_Should_Return_Correct_Size_For_No_Stretch()
- {
- var bitmap = CreateBitmap(50, 100);
- var target = new Image();
- target.Stretch = Stretch.None;
- target.Source = bitmap;
- target.Measure(new Size(50, 50));
- Assert.Equal(new Size(50, 50), target.DesiredSize);
- }
- [Fact]
- public void Measure_Should_Return_Correct_Size_For_Fill_Stretch()
- {
- var bitmap = CreateBitmap(50, 100);
- var target = new Image();
- target.Stretch = Stretch.Fill;
- target.Source = bitmap;
- target.Measure(new Size(50, 50));
- Assert.Equal(new Size(50, 50), target.DesiredSize);
- }
- [Fact]
- public void Measure_Should_Return_Correct_Size_For_Uniform_Stretch()
- {
- var bitmap = CreateBitmap(50, 100);
- var target = new Image();
- target.Stretch = Stretch.Uniform;
- target.Source = bitmap;
- target.Measure(new Size(50, 50));
- Assert.Equal(new Size(25, 50), target.DesiredSize);
- }
- [Fact]
- public void Measure_Should_Return_Correct_Size_For_UniformToFill_Stretch()
- {
- var bitmap = CreateBitmap(50, 100);
- var target = new Image();
- target.Stretch = Stretch.UniformToFill;
- target.Source = bitmap;
- target.Measure(new Size(50, 50));
- Assert.Equal(new Size(50, 50), target.DesiredSize);
- }
- [Fact]
- public void Measure_Should_Return_Correct_Size_With_StretchDirection_DownOnly()
- {
- var bitmap = CreateBitmap(50, 100);
- var target = new Image();
- target.StretchDirection = StretchDirection.DownOnly;
- target.Source = bitmap;
- target.Measure(new Size(150, 150));
- Assert.Equal(new Size(50, 100), target.DesiredSize);
- }
- [Fact]
- public void Measure_Should_Return_Correct_Size_For_Infinite_Height()
- {
- var bitmap = CreateBitmap(50, 100);
- var image = new Image();
- image.Source = bitmap;
- image.Measure(new Size(200, double.PositiveInfinity));
- Assert.Equal(new Size(200, 400), image.DesiredSize);
- }
- [Fact]
- public void Measure_Should_Return_Correct_Size_For_Infinite_Width()
- {
- var bitmap = CreateBitmap(50, 100);
- var image = new Image();
- image.Source = bitmap;
- image.Measure(new Size(double.PositiveInfinity, 400));
- Assert.Equal(new Size(200, 400), image.DesiredSize);
- }
- [Fact]
- public void Measure_Should_Return_Correct_Size_For_Infinite_Width_Height()
- {
- var bitmap = CreateBitmap(50, 100);
- var image = new Image();
- image.Source = bitmap;
- image.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
- Assert.Equal(new Size(50, 100), image.DesiredSize);
- }
- [Fact]
- public void Arrange_Should_Return_Correct_Size_For_No_Stretch()
- {
- var bitmap = CreateBitmap(50, 100);
- var target = new Image();
- target.Stretch = Stretch.None;
- target.Source = bitmap;
- target.Measure(new Size(50, 50));
- target.Arrange(new Rect(0, 0, 100, 400));
- Assert.Equal(new Size(50, 100), target.Bounds.Size);
- }
- [Fact]
- public void Arrange_Should_Return_Correct_Size_For_Fill_Stretch()
- {
- var bitmap = CreateBitmap(50, 100);
- var target = new Image();
- target.Stretch = Stretch.Fill;
- target.Source = bitmap;
- target.Measure(new Size(50, 50));
- target.Arrange(new Rect(0, 0, 25, 100));
- Assert.Equal(new Size(25, 100), target.Bounds.Size);
- }
- [Fact]
- public void Arrange_Should_Return_Correct_Size_For_Uniform_Stretch()
- {
- var bitmap = CreateBitmap(50, 100);
- var target = new Image();
- target.Stretch = Stretch.Uniform;
- target.Source = bitmap;
- target.Measure(new Size(50, 50));
- target.Arrange(new Rect(0, 0, 25, 100));
- Assert.Equal(new Size(25, 50), target.Bounds.Size);
- }
- [Fact]
- public void Arrange_Should_Return_Correct_Size_For_UniformToFill_Stretch()
- {
- var bitmap = CreateBitmap(50, 100);
- var target = new Image();
- target.Stretch = Stretch.UniformToFill;
- target.Source = bitmap;
- target.Measure(new Size(50, 50));
- target.Arrange(new Rect(0, 0, 25, 100));
- Assert.Equal(new Size(25, 100), target.Bounds.Size);
- }
- private static IBitmap CreateBitmap(int width, int height)
- {
- return Mock.Of<IBitmap>(x => x.Size == new Size(width, height));
- }
- }
- }
|