// 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.Controls; using Avalonia.Markup.Data; using Avalonia.Markup.Xaml.Styling; using Avalonia.Media; using Avalonia.Styling; using Avalonia.UnitTests; using Xunit; namespace Avalonia.Markup.Xaml.UnitTests.Xaml { public class StyleTests { [Fact] public void Color_Can_Be_Added_To_Style_Resources() { using (UnitTestApplication.Start(TestServices.MockPlatformWrapper)) { var xaml = @" "; var loader = new AvaloniaXamlLoader(); var userControl = (UserControl)loader.Load(xaml); var color = (Color)((Style)userControl.Styles[0]).Resources["color"]; Assert.Equal(0xff506070, color.ToUint32()); } } [Fact] public void SolidColorBrush_Can_Be_Added_To_Style_Resources() { using (UnitTestApplication.Start(TestServices.MockPlatformWrapper)) { var xaml = @" "; var loader = new AvaloniaXamlLoader(); var userControl = (UserControl)loader.Load(xaml); var brush = (SolidColorBrush)((Style)userControl.Styles[0]).Resources["brush"]; Assert.Equal(0xff506070, brush.Color.ToUint32()); } } [Fact] public void StyleInclude_Is_Built() { using (UnitTestApplication.Start(TestServices.StyledWindow .With(theme: () => new Styles()))) { var xaml = @" "; var window = AvaloniaXamlLoader.Parse(xaml); Assert.Single(window.Styles); var styleInclude = window.Styles[0] as StyleInclude; Assert.NotNull(styleInclude); Assert.NotNull(styleInclude.Source); Assert.NotNull(styleInclude.Loaded); } } [Fact] public void Setter_Can_Contain_Template() { using (UnitTestApplication.Start(TestServices.StyledWindow)) { var xaml = @" "; var loader = new AvaloniaXamlLoader(); var window = (Window)loader.Load(xaml); var target = window.Find("target"); Assert.IsType(target.Content); Assert.Equal("Hello World!", ((TextBlock)target.Content).Text); } } [Fact] public void Setter_Value_Is_Bound_Directly_If_The_Target_Type_Derives_From_ITemplate() { using (UnitTestApplication.Start(TestServices.StyledWindow)) { var xaml = @" "; var loader = new AvaloniaXamlLoader(); var window = (Window)loader.Load(xaml); var target = window.Find("target"); Assert.NotNull(target.FocusAdorner); } } } }