using System.Collections; using System.ComponentModel; using System.Linq; using System.Xml; using Avalonia.Collections; using Avalonia.Controls; using Avalonia.Controls.Documents; using Avalonia.Controls.Presenters; using Avalonia.Data; using Avalonia.Data.Converters; using Avalonia.Markup.Xaml.Templates; using Avalonia.Media; using Avalonia.Media.Immutable; using Avalonia.Metadata; using Avalonia.Styling; using Avalonia.UnitTests; using Xunit; namespace Avalonia.Markup.Xaml.UnitTests.Xaml { public class BasicTests : XamlTestBase { [Fact] public void Simple_Property_Is_Set() { var xaml = @""; var target = AvaloniaRuntimeXamlLoader.Parse(xaml); Assert.NotNull(target); Assert.Equal("Foo", target.Content); } [Fact] public void Default_Content_Property_Is_Set() { var xaml = @"Foo"; var target = AvaloniaRuntimeXamlLoader.Parse(xaml); Assert.NotNull(target); Assert.Equal("Foo", target.Content); } [Fact] public void Attached_Property_Is_Set() { var xaml = @""; var target = AvaloniaRuntimeXamlLoader.Parse(xaml); Assert.NotNull(target); Assert.Equal(21.0, TextElement.GetFontSize(target)); } [Fact] public void Attached_Property_Is_Set_On_Control_Outside_Avalonia_Namespace() { // Test for issue #1548 var xaml = @" "; var target = AvaloniaRuntimeXamlLoader.Parse(xaml); Assert.Equal(2, Grid.GetColumn((TestControl)target.Content)); } [Fact] public void Attached_Property_With_Namespace_Is_Set() { var xaml = @""; var target = AvaloniaRuntimeXamlLoader.Parse(xaml); Assert.NotNull(target); Assert.Equal("Bar", BasicTestsAttachedPropertyHolder.GetFoo(target)); } [Fact] public void Attached_Property_Supports_Binding() { using (UnitTestApplication.Start(TestServices.MockWindowingPlatform)) { var xaml = @""; var target = AvaloniaRuntimeXamlLoader.Parse(xaml); target.DataContext = 21.0; Assert.Equal(21.0, TextElement.GetFontSize(target)); } } [Fact] public void Attached_Property_In_Panel_Is_Set() { var xaml = @" Foo "; var target = AvaloniaRuntimeXamlLoader.Parse(xaml); Assert.Empty(target.Children); Assert.Equal("Foo", ToolTip.GetTip(target)); } [Fact] public void NonExistent_Property_Throws() { var xaml = @""; XamlTestHelpers.AssertThrowsXamlException(() => AvaloniaRuntimeXamlLoader.Parse(xaml)); } [Fact] public void ContentControl_ContentTemplate_Is_Functional() { var xaml = @" "; var contentControl = AvaloniaRuntimeXamlLoader.Parse(xaml); var target = contentControl.ContentTemplate; Assert.NotNull(target); var txt = (TextBlock)target.Build(null); Assert.Equal("Foo", txt.Text); } [Fact] public void Named_Control_Is_Added_To_NameScope_Simple() { var xaml = @" "; var control = AvaloniaRuntimeXamlLoader.Parse(xaml); var button = control.FindControl "; var control = AvaloniaRuntimeXamlLoader.Parse(xaml); var button = control.FindControl