114 lines
2.9 KiB
C#
114 lines
2.9 KiB
C#
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Threading;
|
|
using Microsoft.Web.WebView2.Wpf;
|
|
using Xunit;
|
|
using ytLive.Models;
|
|
using ytLive.Services;
|
|
|
|
namespace ytLive.Tests;
|
|
|
|
[Collection("RealApp")]
|
|
public sealed class WebView2ManagerTests
|
|
{
|
|
private readonly RealAppHost _app;
|
|
|
|
public WebView2ManagerTests(RealAppHost app)
|
|
{
|
|
_app = app;
|
|
}
|
|
|
|
[Fact]
|
|
public void WebView2_Control_Size_Snapshots_Source_At_Register()
|
|
{
|
|
_app.Run(() =>
|
|
{
|
|
var panel = new Canvas();
|
|
var source = new Source
|
|
{
|
|
Type = SourceType.WebSource,
|
|
Width = 640,
|
|
Height = 480,
|
|
};
|
|
|
|
using var manager = new WebView2Manager(panel, Dispatcher.CurrentDispatcher);
|
|
manager.Register(source);
|
|
|
|
var webView = panel.Children.OfType<WebView2>().First();
|
|
Assert.Equal(640.0, webView.Width);
|
|
Assert.Equal(480.0, webView.Height);
|
|
});
|
|
}
|
|
|
|
[Fact]
|
|
public void WebView2_Control_Size_Does_Not_Track_Box_After_Register()
|
|
{
|
|
_app.Run(() =>
|
|
{
|
|
var panel = new Canvas();
|
|
var source = new Source
|
|
{
|
|
Type = SourceType.WebSource,
|
|
Width = 640,
|
|
Height = 480,
|
|
};
|
|
|
|
using var manager = new WebView2Manager(panel, Dispatcher.CurrentDispatcher);
|
|
manager.Register(source);
|
|
|
|
var webView = panel.Children.OfType<WebView2>().First();
|
|
|
|
source.Width = 1024;
|
|
source.Height = 768;
|
|
|
|
Assert.Equal(640.0, webView.Width);
|
|
Assert.Equal(480.0, webView.Height);
|
|
});
|
|
}
|
|
|
|
[Fact]
|
|
public void WebView2_Control_Size_Minimum_Is_One()
|
|
{
|
|
_app.Run(() =>
|
|
{
|
|
var panel = new Canvas();
|
|
var source = new Source
|
|
{
|
|
Type = SourceType.WebSource,
|
|
Width = 0,
|
|
Height = 0,
|
|
};
|
|
|
|
using var manager = new WebView2Manager(panel, Dispatcher.CurrentDispatcher);
|
|
manager.Register(source);
|
|
|
|
var webView = panel.Children.OfType<WebView2>().First();
|
|
Assert.Equal(1.0, webView.Width);
|
|
Assert.Equal(1.0, webView.Height);
|
|
});
|
|
}
|
|
|
|
[Fact]
|
|
public void WebView2_DefaultBackgroundColor_Is_Transparent()
|
|
{
|
|
_app.Run(() =>
|
|
{
|
|
var panel = new Canvas();
|
|
var source = new Source
|
|
{
|
|
Type = SourceType.WebSource,
|
|
Width = 640,
|
|
Height = 480,
|
|
};
|
|
|
|
using var manager = new WebView2Manager(panel, Dispatcher.CurrentDispatcher);
|
|
manager.Register(source);
|
|
|
|
var webView = panel.Children.OfType<WebView2>().First();
|
|
|
|
Assert.Equal(System.Drawing.Color.Transparent, webView.DefaultBackgroundColor);
|
|
});
|
|
}
|
|
}
|