// Copyright (c) The Avalonia Project. All rights reserved. // Licensed under the MIT license. See licence.md file in the project root for full license information. using Avalonia.Collections; using Avalonia.Controls; using Avalonia.Controls.Presenters; using Avalonia.Markup.Xaml.Data; using Avalonia.Markup.Xaml.Styling; using Avalonia.Markup.Xaml.Templates; using Avalonia.Media; using Avalonia.Styling; using Avalonia.UnitTests; using System.Collections; using System.ComponentModel; using System.Linq; using Xunit; namespace Avalonia.Markup.Xaml.UnitTests.Xaml { public class BasicTests { [Fact] public void Simple_Property_Is_Set() { var xaml = @""; var target = AvaloniaXamlLoader.Parse(xaml); Assert.NotNull(target); Assert.Equal("Foo", target.Content); } [Fact] public void Default_Content_Property_Is_Set() { var xaml = @"Foo"; var target = AvaloniaXamlLoader.Parse(xaml); Assert.NotNull(target); Assert.Equal("Foo", target.Content); } [Fact] public void AvaloniaProperty_Without_Getter_And_Setter_Is_Set() { var xaml = @""; var target = AvaloniaXamlLoader.Parse(xaml); Assert.Equal(55, target.GetValue(NonControl.FooProperty)); } [Fact] public void AvaloniaProperty_With_Getter_And_No_Setter_Is_Set() { var xaml = @""; var target = AvaloniaXamlLoader.Parse(xaml); Assert.Equal("bar", target.Bar); } [Fact] public void Attached_Property_Is_Set() { var xaml = @""; var target = AvaloniaXamlLoader.Parse(xaml); Assert.NotNull(target); Assert.Equal(21.0, TextBlock.GetFontSize(target)); } [Fact] public void Attached_Property_Supports_Binding() { using (UnitTestApplication.Start(TestServices.MockWindowingPlatform)) { var xaml = @""; var target = AvaloniaXamlLoader.Parse(xaml); target.DataContext = 21.0; Assert.Equal(21.0, TextBlock.GetFontSize(target)); } } [Fact] public void Attached_Property_In_Panel_Is_Set() { var xaml = @" Foo "; var target = AvaloniaXamlLoader.Parse(xaml); Assert.Equal(0, target.Children.Count); Assert.Equal("Foo", ToolTip.GetTip(target)); } [Fact] public void ContentControl_ContentTemplate_Is_Functional() { var xaml = @" "; var contentControl = AvaloniaXamlLoader.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 = AvaloniaXamlLoader.Parse(xaml); var button = control.FindControl "; var control = AvaloniaXamlLoader.Parse(xaml); var button = control.FindControl