Adding a test to validate loading images (#20147)

I noticed that in one of my PRs I loaded a lower res image and another test caught it. Adding these tests to ensure that at least we validate the on-screen image.
This commit is contained in:
Matthew Leibowitz 2024-02-10 08:27:27 +02:00 коммит произвёл GitHub
Родитель db773d28e8
Коммит 459f54934d
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
17 изменённых файлов: 82 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,30 @@
using System;
using Microsoft.Maui.Controls;
namespace Maui.Controls.Sample
{
internal class ImageLoadingGalleryPage : CoreGalleryBasePage
{
protected override void Build()
{
Add(Test.ImageLoading.FromBundleSvg, ImageSource.FromFile("dotnet_bot.png"));
Add(Test.ImageLoading.FromBundlePng, ImageSource.FromFile("groceries.png"));
Add(Test.ImageLoading.FromBundleJpg, ImageSource.FromFile("oasis.jpg"));
Add(Test.ImageLoading.FromBundleGif, ImageSource.FromFile("animated_heart.gif"));
}
ViewContainer<Image> Add(Test.ImageLoading test, ImageSource image) =>
Add(test, new Image
{
Source = image,
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Start
});
ViewContainer<Image> Add(Test.ImageLoading test, Image image) =>
Add(new ViewContainer<Image>(test, image));
}
}

Просмотреть файл

@ -48,6 +48,7 @@ namespace Maui.Controls.Sample
new GalleryPageFactory(() => new DragAndDropGallery(), "Drag and Drop Gallery"),
new GalleryPageFactory(() => new GestureRecognizerGallery(), "Gesture Recognizer Gallery"),
new GalleryPageFactory(() => new InputTransparencyGalleryPage(), "Input Transparency Gallery"),
new GalleryPageFactory(() => new ImageLoadingGalleryPage(), "Image Loading Gallery"),
// Elements
new GalleryPageFactory(() => new ActivityIndicatorCoreGalleryPage(), "ActivityIndicator Gallery"),
new GalleryPageFactory(() => new BoxViewCoreGalleryPage(), "Box Gallery"),

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 15 KiB

Просмотреть файл

@ -712,6 +712,14 @@ namespace Maui.Controls.Sample
IsBounceEnabled
}
public enum ImageLoading
{
FromBundleSvg,
FromBundlePng,
FromBundleJpg,
FromBundleGif,
}
public enum InputTransparency
{
Default,

Просмотреть файл

@ -0,0 +1,43 @@
using Maui.Controls.Sample;
using NUnit.Framework;
using UITest.Appium;
using UITest.Core;
namespace Microsoft.Maui.AppiumTests
{
public class ImageLoadingGalleryTests : CoreGalleryBasePageTest
{
public ImageLoadingGalleryTests(TestDevice device)
: base(device)
{
}
protected override void NavigateToGallery()
{
App.NavigateToGallery("Image Loading Gallery");
}
[Test]
public void LoadAndVerifyPng() => LoadAndVerify(Test.ImageLoading.FromBundlePng);
[Test]
public void LoadAndVerifyJpg() => LoadAndVerify(Test.ImageLoading.FromBundleJpg);
[Test]
public void LoadAndVerifyGif() => LoadAndVerify(Test.ImageLoading.FromBundleGif);
[Test]
public void LoadAndVerifySvg() => LoadAndVerify(Test.ImageLoading.FromBundleSvg);
void LoadAndVerify(Test.ImageLoading test)
{
var remote = new EventViewContainerRemote(UITestContext, test);
remote.GoTo(test.ToString());
App.WaitForElement($"{test}VisualElement");
Thread.Sleep(1000); // android has some button animations that need to finish
VerifyScreenshot();
}
}
}

Двоичные данные
src/Controls/tests/UITests/snapshots/android/LoadAndVerifyGif.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 74 KiB

Двоичные данные
src/Controls/tests/UITests/snapshots/android/LoadAndVerifyJpg.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 813 KiB

Двоичные данные
src/Controls/tests/UITests/snapshots/android/LoadAndVerifyPng.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 163 KiB

Двоичные данные
src/Controls/tests/UITests/snapshots/android/LoadAndVerifySvg.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 146 KiB

Двоичные данные
src/Controls/tests/UITests/snapshots/ios/LoadAndVerifyGif.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 89 KiB

Двоичные данные
src/Controls/tests/UITests/snapshots/ios/LoadAndVerifyJpg.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 869 KiB

Двоичные данные
src/Controls/tests/UITests/snapshots/ios/LoadAndVerifyPng.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 176 KiB

Двоичные данные
src/Controls/tests/UITests/snapshots/ios/LoadAndVerifySvg.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 172 KiB

Двоичные данные
src/Controls/tests/UITests/snapshots/windows/LoadAndVerifyGif.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 23 KiB

Двоичные данные
src/Controls/tests/UITests/snapshots/windows/LoadAndVerifyJpg.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 509 KiB

Двоичные данные
src/Controls/tests/UITests/snapshots/windows/LoadAndVerifyPng.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 80 KiB

Двоичные данные
src/Controls/tests/UITests/snapshots/windows/LoadAndVerifySvg.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 102 KiB