diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/DynamicResourceExtensionTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/DynamicResourceExtensionTests.cs
index 987725c314..f2e1a99006 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/DynamicResourceExtensionTests.cs
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/DynamicResourceExtensionTests.cs
@@ -250,30 +250,32 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
[Fact]
public void DynamicResource_Can_Be_Assigned_To_Setter_In_Styles_File()
{
- var styleXaml = @"
+ var documents = new[]
+ {
+ new RuntimeXamlLoaderDocument(new Uri("avares://Tests/Style.xaml"), @"
#ff506070
-
-";
-
- using (StyledWindow(assets: ("test:style.xaml", styleXaml)))
- {
- var xaml = @"
+"),
+ new RuntimeXamlLoaderDocument(@"
-
+
-";
-
- var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml);
+")
+ };
+
+ using (StyledWindow())
+ {
+ var compiled = AvaloniaRuntimeXamlLoader.LoadGroup(documents);
+ var window = Assert.IsType(compiled[1]);
var border = window.FindControl("border");
var brush = (ISolidColorBrush)border.Background;
@@ -284,13 +286,14 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
[Fact]
public void DynamicResource_Can_Be_Assigned_To_Property_In_ControlTemplate_In_Styles_File()
{
- var styleXaml = @"
+ var documents = new[]
+ {
+ new RuntimeXamlLoaderDocument(new Uri("avares://Tests/Style.xaml"), @"
#ff506070
-
-";
-
- using (StyledWindow(assets: ("test:style.xaml", styleXaml)))
- {
- var xaml = @"
+"),
+ new RuntimeXamlLoaderDocument(@"
-
+
-";
-
- var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml);
+")
+ };
+
+ using (StyledWindow())
+ {
+ var compiled = AvaloniaRuntimeXamlLoader.LoadGroup(documents);
+ var window = Assert.IsType(compiled[1]);
var button = window.FindControl")
+ };
+
+ using (StyledWindow())
+ {
+ var compiled = AvaloniaRuntimeXamlLoader.LoadGroup(documents);
+ var window = Assert.IsType(compiled[2]);
var border = window.FindControl("border");
var borderBrush = (ISolidColorBrush)border.Background;
@@ -593,33 +599,35 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
[Fact]
public void DynamicResource_Can_Be_Found_In_Nested_Style_File()
{
- var style1Xaml = @"
+ var documents = new[]
+ {
+ new RuntimeXamlLoaderDocument(new Uri("avares://Tests/Style1.xaml"), @"
-
-";
- var style2Xaml = @"
+
+"),
+ new RuntimeXamlLoaderDocument(new Uri("avares://Tests/Style2.xaml"), @"
";
- using (StyledWindow(
- ("test:style1.xaml", style1Xaml),
- ("test:style2.xaml", style2Xaml)))
- {
- var xaml = @"
+"),
+ new RuntimeXamlLoaderDocument(@"
-
+
-";
-
- var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml);
+")
+ };
+
+ using (StyledWindow())
+ {
+ var compiled = AvaloniaRuntimeXamlLoader.LoadGroup(documents);
+ var window = Assert.IsType(compiled[2]);
var border = window.FindControl("border");
var borderBrush = (ISolidColorBrush)border.Background;
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/ResourceIncludeTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/ResourceIncludeTests.cs
index d8ecba36f5..ac4000b4c6 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/ResourceIncludeTests.cs
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/ResourceIncludeTests.cs
@@ -14,29 +14,32 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
[Fact]
public void ResourceInclude_Loads_ResourceDictionary()
{
- var includeXaml = @"
+ var documents = new[]
+ {
+ new RuntimeXamlLoaderDocument(new Uri("avares://Tests/Resource.xaml"), @"
#ff506070
-
-";
- using (StartWithResources(("test:include.xaml", includeXaml)))
- {
- var xaml = @"
+"),
+ new RuntimeXamlLoaderDocument(@"
-
+
-";
+")
+ };
- var userControl = (UserControl)AvaloniaRuntimeXamlLoader.Load(xaml);
+ using (StartWithResources())
+ {
+ var compiled = AvaloniaRuntimeXamlLoader.LoadGroup(documents);
+ var userControl = Assert.IsType(compiled[1]);
var border = userControl.FindControl("border");
var brush = (ISolidColorBrush)border.Background;
@@ -47,31 +50,32 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
[Fact]
public void Missing_ResourceKey_In_ResourceInclude_Does_Not_Cause_StackOverflow()
{
- var styleXaml = @"
+ var app = Application.Current;
+ var documents = new[]
+ {
+ new RuntimeXamlLoaderDocument(new Uri("avares://Tests/Resource.xaml"), @"
-";
-
- using (StartWithResources(("test:style.xaml", styleXaml)))
- {
- var xaml = @"
+"),
+ new RuntimeXamlLoaderDocument(app, @"
-
+
-";
-
- var app = Application.Current;
+")
+ };
+ using (StartWithResources())
+ {
try
{
- AvaloniaRuntimeXamlLoader.Load(xaml, null, app);
+ AvaloniaRuntimeXamlLoader.LoadGroup(documents);
}
catch (KeyNotFoundException)
{
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/StaticResourceExtensionTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/StaticResourceExtensionTests.cs
index 340eac0d4f..b9afd5fdba 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/StaticResourceExtensionTests.cs
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/StaticResourceExtensionTests.cs
@@ -238,7 +238,9 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
[Fact]
public void StaticResource_Can_Be_Assigned_To_Setter_In_Styles_File()
{
- var styleXaml = @"
+ var documents = new[]
+ {
+ new RuntimeXamlLoaderDocument(new Uri("avares://Tests/Style.xaml"), @"
@@ -248,20 +250,21 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
-";
-
- using (StyledWindow(assets: ("test:style.xaml", styleXaml)))
- {
- var xaml = @"
+"),
+ new RuntimeXamlLoaderDocument(@"
-
+
-";
+")
+ };
- var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml);
+ using (StyledWindow())
+ {
+ var compiled = AvaloniaRuntimeXamlLoader.LoadGroup(documents);
+ var window = Assert.IsType(compiled[1]);
var border = window.FindControl("border");
var brush = (ISolidColorBrush)border.Background;
@@ -311,7 +314,9 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
[Fact]
public void StaticResource_Can_Be_Assigned_To_Property_In_ControlTemplate_In_Styles_File()
{
- var styleXaml = @"
+ var documents = new[]
+ {
+ new RuntimeXamlLoaderDocument(new Uri("avares://Tests/Style.xaml"), @"
@@ -325,20 +330,21 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
-";
-
- using (StyledWindow(assets: ("test:style.xaml", styleXaml)))
- {
- var xaml = @"
+"),
+ new RuntimeXamlLoaderDocument(@"
-
+
-";
-
- var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml);
+")
+ };
+
+ using (StyledWindow())
+ {
+ var compiled = AvaloniaRuntimeXamlLoader.LoadGroup(documents);
+ var window = Assert.IsType(compiled[1]);
var button = window.FindControl")
+ };
- var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml);
+ var loaded = AvaloniaRuntimeXamlLoader.LoadGroup(documents);
+ var window = Assert.IsType(loaded[1]);
var button = window.FindControl("button");
var brush = Assert.IsType(button.Background);
@@ -276,7 +279,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml
private IDisposable StyledWindow(params (string, string)[] assets)
{
var services = TestServices.StyledWindow.With(
- assetLoader: new MockAssetLoader(assets),
theme: () => new Styles
{
WindowStyle(),
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/Style1.xaml b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/Style1.xaml
index 1f195c4605..fefd2021e2 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/Style1.xaml
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/Style1.xaml
@@ -1,6 +1,5 @@
"),
+ new RuntimeXamlLoaderDocument(@"
+
+
+
+
+")
+ };
+
+ var objects = AvaloniaRuntimeXamlLoader.LoadGroup(documents);
+ var style = Assert.IsType"),
+ new RuntimeXamlLoaderDocument(new Uri("avares://Tests/Folder/Root.xaml"), @"
+
+
+
+
+")
+ };
+
+ var objects = AvaloniaRuntimeXamlLoader.LoadGroup(documents);
+ var style = Assert.IsType"),
+ new RuntimeXamlLoaderDocument(@"
+
+
+
+
+")
+ };
+
+ var objects = AvaloniaRuntimeXamlLoader.LoadGroup(documents);
+ var style = Assert.IsType"),
+ new RuntimeXamlLoaderDocument(@"
+
+
+
+
+")
+ };
+
+
+ try
+ {
+ _ = AvaloniaRuntimeXamlLoader.LoadGroup(documents);
+ }
+ catch (KeyNotFoundException)
+ {
+
+ }
+ }
+
+ [Fact]
+ public void StyleInclude_Should_Be_Replaced_With_Direct_Call()
+ {
+ var control = (ContentControl)AvaloniaRuntimeXamlLoader.Load(@"
+
+
+
+
+
+");
+ Assert.IsType(control.Styles[0]);
+ Assert.IsType(control.Styles[1]);
+ }
+}
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/StyleTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/StyleTests.cs
index 339609cb4f..70a5295008 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/StyleTests.cs
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/StyleTests.cs
@@ -109,45 +109,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml
}
}
- [Fact]
- public void StyleInclude_Is_Built()
- {
- using (UnitTestApplication.Start(TestServices.StyledWindow
- .With(theme: () => new Styles())))
- {
- var xaml = @"
-
-
-
-
-";
-
- var window = AvaloniaRuntimeXamlLoader.Parse(xaml);
-
- Assert.IsType