示例#1
0
        public async Task When_Theme_Changed()
        {
            var app = UnitTestsApp.App.EnsureApplication();

            var control = new Test_Control();

            app.HostView.Children.Add(control);

            control.Measure(new Size(1000, 1000));

            var textLightThemeMarkup = control.TemplateFromResourceControl.TextBlock6.Text;

            Assert.AreEqual("LocalVisualTreeLight", textLightThemeMarkup);

            try
            {
                if (await SwapSystemTheme())
                {
                    if (control.Parent == null)
                    {
                        app.HostView.Children.Add(control);                         // On UWP the control may have been removed by another test after the async swap
                    }
                    var textDarkThemeMarkup = control.TemplateFromResourceControl.TextBlock6.Text;
                    Assert.AreEqual("LocalVisualTreeDark", textDarkThemeMarkup);                     //ThemeResource markup change lookup uses the visual tree (rather than original XAML namescope)
                }
            }
            finally
            {
                await SwapSystemTheme();
            }
        }
示例#2
0
        public async Task When_Theme_Changed_Static()
        {
            var app = UnitTestsApp.App.EnsureApplication();

            var control = new Test_Control();

            app.HostView.Children.Add(control);

            control.Measure(new Size(1000, 1000));

            var textLightStaticMarkup = control.TemplateFromResourceControl.TextBlock5.Text;

            Assert.AreEqual("ApplicationLevelLight", textLightStaticMarkup);

            try
            {
                if (await SwapSystemTheme())
                {
                    var textDarkStaticMarkup = control.TemplateFromResourceControl.TextBlock5.Text;
                    Assert.AreEqual("ApplicationLevelLight", textDarkStaticMarkup);                     //StaticResource markup doesn't change
                    ;
                }
            }
            finally
            {
                await SwapSystemTheme();
            }
        }
示例#3
0
        public void When_Inherited_In_Template_Applied_XAML_Scope()
        {
            var app = UnitTestsApp.App.EnsureApplication();

            var control = new Test_Control();

            control.InlineTemplateControl.ApplyTemplate();
            control.TemplateFromResourceControl.ApplyTemplate();

            var text2InlineBefore           = control.InlineTemplateControl.TextBlock2.Text;
            var text2ResourceTemplateBefore = control.TemplateFromResourceControl.TextBlock2.Text;

            var text4InlineBefore           = control.InlineTemplateControl.TextBlock4.Text;
            var text4ResourceTemplateBefore = control.TemplateFromResourceControl.TextBlock4.Text;

            app.HostView.Children.Add(control);

            var text2InlineAfter           = control.InlineTemplateControl.TextBlock2.Text;
            var text2ResourceTemplateAfter = control.TemplateFromResourceControl.TextBlock2.Text;

            Assert.AreEqual("LocalVisualTree", text2InlineBefore);
            Assert.AreEqual("OuterVisualTree", text2ResourceTemplateBefore);

            Assert.AreEqual("ApplicationLevel", text4InlineBefore);
            Assert.AreEqual("ApplicationLevel", text4ResourceTemplateBefore);

            Assert.AreEqual("LocalVisualTree", text2InlineAfter);
            Assert.AreEqual("LocalVisualTree", text2ResourceTemplateAfter);
        }
        public void When_Local_Dictionary_Intra_Reference()
        {
            var control = new Test_Control();

            control.TestTextBlock2.DataContext = false;
            AssertEx.AssertHasColor(control.TestTextBlock2.Foreground, Colors.LimeGreen);
        }
        public void When_Implicit_Style_From_Code()
        {
            var control = new Test_Control();

            Assert.IsTrue(control.Resources.ContainsKey(typeof(RadioButton)));
            Assert.IsNotNull(control.Resources[typeof(RadioButton)] as Style);
        }
示例#6
0
        public void When_Custom_From_Framework_Type()
        {
            var control = new Test_Control();

            Assert.AreEqual(DefaultButtonPadding, control.StylesTestButton.Padding);
            Assert.AreEqual(typeof(Button), control.StylesTestButton.ExposedKey);
        }
示例#7
0
        public void When_Attached_Property_And_Local_Resource()
        {
            var control = new Test_Control();

            var bulbousness = MyBehavior.GetBulbousness(control.TestBorder);

            Assert.AreEqual(105.5, bulbousness);
        }
示例#8
0
        public void When_Attached_Property_No_DP()
        {
            var control = new Test_Control();

            var noDP = MyBehavior.GetNoDPProperty(control.TestTextBlock);

            Assert.AreEqual(256, noDP);
        }
示例#9
0
        public void When_Attached_Property_And_App_Resource()
        {
            var control = new Test_Control();

            var bulbousness = MyBehavior.GetBulbousness(control.TestTextBlock);

            Assert.AreEqual(256, bulbousness);
        }
示例#10
0
        public void When_Custom_Key_Local_And_Explicit()
        {
            var control = new Test_Control();

            AssertEx.AssertHasColor(control.StylesTestButtonCustomKey.Background, Colors.GreenYellow);
            Assert.IsNull(control.StylesTestButtonCustomKeyExplicit.Background);

            AssertEx.AssertHasColor(control.StylesTestButtonCustomKeyExplicit.Foreground, Colors.YellowGreen);
        }
示例#11
0
        public void When_Custom_Type()
        {
            var control = new Test_Control();

            Assert.AreEqual("TopImplicitStyleValue", control.StylesTestControl.Rugosity);
            Assert.AreEqual("FromDefault", control.StylesTestControlExplicit.Rugosity);             // Explicit styles are not additive with implicit style

            Assert.AreEqual(Colors.DarkCyan, (control.StylesTestControlExplicit.Background as SolidColorBrush).Color);
        }
示例#12
0
        public void When_Framework_Type()
        {
            var control = new Test_Control();

            var button = control.StyledButton;

            Assert.IsNotNull(button.Template);
            Assert.AreEqual(DefaultButtonPadding, button.Padding);             // Explicit styles are additive with built-in framework style
        }
示例#13
0
        public void When_Implicit_Style_In_Application_Merged()
        {
            var app = UnitTestsApp.App.EnsureApplication();

            var control = new Test_Control();

            app.HostView.Children.Add(control);

            Assert.AreEqual(Windows.UI.Colors.LightGoldenrodYellow, (control.TestCheckBox.Foreground as SolidColorBrush).Color);
        }
示例#14
0
        public void When_App_ThemeResource_Default()
        {
            var app = UnitTestsApp.App.EnsureApplication();

            var control = new Test_Control();

            app.HostView.Children.Add(control);

            Assert.AreEqual(Colors.LemonChiffon, (control.TestBorder.Background as SolidColorBrush).Color);
        }
示例#15
0
        public void When_System_ThemeResource_Light()
        {
            var app = UnitTestsApp.App.EnsureApplication();

            var control = new Test_Control();

            app.HostView.Children.Add(control);

            Assert.AreEqual(Color.FromArgb(0xDE, 0x00, 0x00, 0x00), (control.TestTextBlock.Foreground as SolidColorBrush).Color);
        }
示例#16
0
        public void When_Set_On_Non_DependencyObject()
        {
            var app = UnitTestsApp.App.EnsureApplication();

            var control = new Test_Control();

            app.HostView.Children.Add(control);

            Assert.AreEqual(33, control.TestMyControl.Poco.Bogosity);
        }
示例#17
0
        public void When_In_Dictionary_Merged()
        {
            var app = UnitTestsApp.App.EnsureApplication();

            var control = new Test_Control();

            app.HostView.Children.Add(control);

            Assert.AreEqual(new Thickness(1, 2, 3, 4), control.StyledButton.BorderThickness);
        }
示例#18
0
        public void When_Setting_Non_DependencyProperty()
        {
            var app = UnitTestsApp.App.EnsureApplication();

            var control = new Test_Control();

            app.HostView.Children.Add(control);

            Assert.AreEqual(33, control.TestMyControl.Splinitude);
        }
示例#19
0
        public void When_Double_Resource_In_Application_Merged()
        {
            var app = UnitTestsApp.App.EnsureApplication();

            var control = new Test_Control();

            app.HostView.Children.Add(control);

            Assert.AreEqual(256, control.TestBorder.Width);
        }
示例#20
0
        public void When_Resource_In_Application_Merged()
        {
            var app = UnitTestsApp.App.EnsureApplication();

            var control = new Test_Control();

            app.HostView.Children.Add(control);

            Assert.AreEqual(Windows.UI.Colors.MediumSpringGreen, (control.TopGrid.Background as SolidColorBrush).Color);
        }
示例#21
0
        public void When_In_Same_Dictionary()
        {
            var app = UnitTestsApp.App.EnsureApplication();

            var control = new Test_Control();

            app.HostView.Children.Add(control);

            Assert.AreEqual(33, control.StyledButton.FontSize);
        }
示例#22
0
        public void When_App_ThemeResource_Light()
        {
            var app = UnitTestsApp.App.EnsureApplication();

            var control = new Test_Control();

            app.HostView.Children.Add(control);

            Assert.AreEqual(ApplicationTheme.Light, app.RequestedTheme);
            Assert.AreEqual(Colors.RosyBrown, (control.TestBorder.BorderBrush as SolidColorBrush).Color);
        }
示例#23
0
        public void When_By_xName_And_Key_In_Element_Resources()
        {
            var testControl = new Test_Control();

            Assert.AreEqual(2, testControl.SubliminalGradientBrushByName.GradientStops.Count);

            var fromResources = testControl.Resources["SubliminalGradientBrush"] as LinearGradientBrush;

            Assert.IsNotNull(fromResources);
            Assert.AreEqual(2, fromResources.GradientStops.Count);
        }
示例#24
0
        public void When_Merged_Dictionary_Local()
        {
            var app = UnitTestsApp.App.EnsureApplication();

            Assert.IsFalse(app.Resources.ContainsKey("NotInAppResources"));             // These dictionaries shouldn't end up in App.Resources, or this test won't test anything

            var control = new Test_Control();

            control.TestTextBlock2.DataContext = true;
            AssertEx.AssertHasColor(control.TestTextBlock2.Foreground, Colors.Orange);
        }
示例#25
0
        public void When_Non_View_And_Local_Resource()
        {
            var app = UnitTestsApp.App.EnsureApplication();

            var control = new Test_Control();

            app.HostView.Children.Add(control);

            var rowDef = control.TestGrid.RowDefinitions[1];

            Assert.AreEqual(333, rowDef.Height.Value);
        }
示例#26
0
        public void When_Double_Resource_In_Application_Merged_Non_View()
        {
            var app = UnitTestsApp.App.EnsureApplication();

            var control = new Test_Control();

            app.HostView.Children.Add(control);

            var rowDef = control.TestGrid.RowDefinitions.First();

            Assert.AreEqual(256, rowDef.Height.Value);
        }
示例#27
0
        public void When_Resource_On_Inner_Control_Xaml()
        {
            var app = UnitTestsApp.App.EnsureApplication();

            var control = new Test_Control();

            app.HostView.Children.Add(control);

            var brush = control.TestGrid.Resources["LocalToGridColorBrush"] as SolidColorBrush;

            Assert.AreEqual(Colors.LimeGreen, brush.Color);
        }
示例#28
0
        public void When_Inherited_In_Template_XAML_Scope()
        {
            var app = UnitTestsApp.App.EnsureApplication();

            var control = new Test_Control();

            app.HostView.Children.Add(control);

            control.Measure(new Size(1000, 1000));

            var text1ResourceTemplateAfter = control.TemplateFromResourceControl.TextBlock1.Text;

            Assert.AreEqual("OuterVisualTree", text1ResourceTemplateAfter);
        }
示例#29
0
        public void When_Inherited_In_Template()
        {
            var app = UnitTestsApp.App.EnsureApplication();

            var control = new Test_Control();

            app.HostView.Children.Add(control);

            control.Measure(new Size(1000, 1000));

            var text1InlineAfter = control.InlineTemplateControl.TextBlock1.Text;

            Assert.AreEqual("LocalVisualTree", text1InlineAfter);
        }
示例#30
0
        public void When_Different_Control_Instances()
        {
            var control1 = new Test_Control();
            var control2 = new Test_Control();

            Assert.IsTrue(control1.Resources.ContainsKey("LocalColorBrush"));
            Assert.IsTrue(control2.Resources.ContainsKey("LocalColorBrush"));

            Assert.IsFalse(ReferenceEquals(control1.Resources, control2.Resources));

            control2.Resources.Remove("LocalColorBrush");
            Assert.IsTrue(control1.Resources.ContainsKey("LocalColorBrush"));
            Assert.IsFalse(control2.Resources.ContainsKey("LocalColorBrush"));
        }