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