Beispiel #1
0
        /// <summary>
        /// Get the dependency property tests.
        /// </summary>
        /// <returns>The dependency property tests.</returns>
        public override IEnumerable <DependencyPropertyTestMethod> GetDependencyPropertyTests()
        {
            // Get the base Control dependency property tests
            IList <DependencyPropertyTestMethod> tests = TagInherited(base.GetDependencyPropertyTests());

            tests.Add(ItemsSourceProperty.CheckDefaultValueTest);
            tests.Add(ItemsSourceProperty.ChangeClrSetterTest);
            tests.Add(ItemsSourceProperty.ChangeSetValueTest);
            tests.Add(ItemsSourceProperty.ClearValueResetsDefaultTest);
            tests.Add(ItemsSourceProperty.SetXamlAttributeTest);
            tests.Add(ItemsSourceProperty.SetXamlElementTest);

            tests.Add(CurrentIndexProperty.ChangeClrSetterTest);
            tests.Add(CurrentIndexProperty.ChangeSetValueTest);
            tests.Add(CurrentIndexProperty.SetXamlAttributeTest.Bug("TODO: find out why this fails."));
            tests.Add(CurrentIndexProperty.SetXamlElementTest.Bug("TODO: find out why this fails."));

            tests.Add(IsCyclicProperty.ChangeClrSetterTest);
            tests.Add(IsCyclicProperty.ChangeSetValueTest);
            tests.Add(IsCyclicProperty.ClearValueResetsDefaultTest);

            tests.Add(ItemTemplateProperty.CheckDefaultValueTest);
            tests.Add(ItemTemplateProperty.ChangeClrSetterTest);
            tests.Add(ItemTemplateProperty.ChangeSetValueTest);
            tests.Add(ItemTemplateProperty.SetNullTest);
            tests.Add(ItemTemplateProperty.ClearValueResetsDefaultTest);
            tests.Add(ItemTemplateProperty.CanBeStyledTest);
            tests.Add(ItemTemplateProperty.TemplateBindTest);

            tests.Add(AcceptsInvalidInputProperty.CheckDefaultValueTest);
            tests.Add(AcceptsInvalidInputProperty.ChangeClrSetterTest);

            tests.Add(FallbackItemProperty.CheckDefaultValueTest);
            tests.Add(FallbackItemProperty.ChangeClrSetterTest);

            DependencyPropertyTestMethod buggedTestA = tests.FirstOrDefault(a => a.Name == ValueProperty.SetXamlAttributeTest.Name);

            if (buggedTestA != null)
            {
                buggedTestA.Bug("Find out why this fails for DomainUpDown and not for UpDownBase.");
            }
            DependencyPropertyTestMethod buggedTestB = tests.FirstOrDefault(a => a.Name == ValueProperty.SetXamlElementTest.Name);

            if (buggedTestB != null)
            {
                buggedTestB.Bug("Find out why this fails for DomainUpDown and not for UpDownBase.");
            }

            return(tests);
        }
        /// <summary>
        /// Get the dependency property tests.
        /// </summary>
        /// <returns>The dependency property tests.</returns>
        public override IEnumerable <DependencyPropertyTestMethod> GetDependencyPropertyTests()
        {
            IList <DependencyPropertyTestMethod> tests = TagInherited(base.GetDependencyPropertyTests());

            tests.Add(IsEnabledProperty.ChangesVisualStateTest(false, true, "Normal"));
            tests.Add(IsEnabledProperty.ChangesVisualStateTest(true, false, "Disabled"));
            tests.Add(IsEnabledProperty.DoesNotChangeVisualStateTest(true, true));
            tests.Add(IsEnabledProperty.DoesNotChangeVisualStateTest(false, false));

            // IsExpandedProperty tests
            tests.Add(IsExpandedProperty.CheckDefaultValueTest);
            tests.Add(IsExpandedProperty.ChangeClrSetterTest);
            tests.Add(IsExpandedProperty.ChangeSetValueTest);
            tests.Add(IsExpandedProperty.ClearValueResetsDefaultTest);
            tests.Add(IsExpandedProperty.CanBeStyledTest);
            DependencyPropertyTestMethod focusTest = IsExpandedProperty.TemplateBindTest;

            focusTest.Tags.Add(new TagAttribute(Tags.RequiresFocus));
            tests.Add(focusTest);
            tests.Add(IsExpandedProperty.ChangesVisualStateTest(false, true, "Expanded"));
            tests.Add(IsExpandedProperty.ChangesVisualStateTest(true, false, "Collapsed"));
            tests.Add(IsExpandedProperty.SetXamlAttributeTest);
            tests.Add(IsExpandedProperty.SetXamlElementTest.Bug("TODO: XAML Parser?"));

            // ExpandDirectionProperty tests
            tests.Add(ExpandDirectionProperty.CheckDefaultValueTest);
            tests.Add(ExpandDirectionProperty.ChangeClrSetterTest);
            tests.Add(ExpandDirectionProperty.ChangeSetValueTest);
            tests.Add(ExpandDirectionProperty.ClearValueResetsDefaultTest);
            tests.Add(ExpandDirectionProperty.InvalidValueFailsTest);
            tests.Add(ExpandDirectionProperty.InvalidValueIsIgnoredTest);
            tests.Add(ExpandDirectionProperty.CanBeStyledTest);
            tests.Add(ExpandDirectionProperty.TemplateBindTest);
            tests.Add(ExpandDirectionProperty.ChangesVisualStateTest(ExpandDirection.Down, ExpandDirection.Up, "ExpandUp"));
            tests.Add(ExpandDirectionProperty.ChangesVisualStateTest(ExpandDirection.Up, ExpandDirection.Left, "ExpandLeft"));
            tests.Add(ExpandDirectionProperty.ChangesVisualStateTest(ExpandDirection.Left, ExpandDirection.Right, "ExpandRight"));
            tests.Add(ExpandDirectionProperty.ChangesVisualStateTest(ExpandDirection.Right, ExpandDirection.Down, "ExpandDown"));
            tests.Add(ExpandDirectionProperty.SetXamlAttributeTest);
            tests.Add(ExpandDirectionProperty.SetXamlElementTest);

            return(tests);
        }
        /// <summary>
        /// Remove all instances of a specific test from the list of tests.
        /// </summary>
        /// <param name="tests">List of tests.</param>
        /// <param name="test">Type of tests to remove.</param>
        public static void RemoveTests(this ICollection <DependencyPropertyTestMethod> tests, DependencyPropertyTestMethod test)
        {
            Assert.IsNotNull(tests, "List of tests should not be null!");
            Assert.IsNotNull(test, "Test should not be null!");

            // Get the tests to remove
            DependencyPropertyTestMethod[] remove =
                (from t in tests
                 where t.Method == test.Method &&
                 string.Compare(t.PropertyName, test.PropertyName, StringComparison.Ordinal) == 0
                 select t).ToArray();

            // Remove the tests
            foreach (DependencyPropertyTestMethod t in remove)
            {
                tests.Remove(t);
            }
        }
        /// <summary>
        /// Get the dependency property tests.
        /// </summary>
        /// <returns>The dependency property tests.</returns>
        public override IEnumerable <DependencyPropertyTestMethod> GetDependencyPropertyTests()
        {
            // Get the base Control dependency property tests
            IList <DependencyPropertyTestMethod> tests = TagInherited(base.GetDependencyPropertyTests());

            tests.Add(IsEnabledProperty.ChangesVisualStateTest(false, true, "Normal"));
            tests.Add(IsEnabledProperty.ChangesVisualStateTest(true, false, "Disabled"));
            tests.Add(IsEnabledProperty.DoesNotChangeVisualStateTest(true, true));
            tests.Add(IsEnabledProperty.DoesNotChangeVisualStateTest(false, false));

            // ExpandDirection tests
            // TODO: uncomment these tests if we decide to open up ExpandDirection.
            // tests.Add(ExpandDirectionProperty.CheckDefaultValueTest);
            // tests.Add(ExpandDirectionProperty.ChangeClrSetterTest);
            // tests.Add(ExpandDirectionProperty.ChangeSetValueTest);
            // tests.Add(ExpandDirectionProperty.ClearValueResetsDefaultTest);
            // tests.Add(ExpandDirectionProperty.InvalidValueFailsTest);
            // tests.Add(ExpandDirectionProperty.InvalidValueIsIgnoredTest);
            // tests.Add(ExpandDirectionProperty.CanBeStyledTest);
            // tests.Add(ExpandDirectionProperty.TemplateBindTest);
            // tests.Add(ExpandDirectionProperty.ChangesVisualStateTest(ExpandDirection.Down, ExpandDirection.Up, "ExpandUp"));
            // tests.Add(ExpandDirectionProperty.ChangesVisualStateTest(ExpandDirection.Up, ExpandDirection.Left, "ExpandLeft"));
            // tests.Add(ExpandDirectionProperty.ChangesVisualStateTest(ExpandDirection.Left, ExpandDirection.Right, "ExpandRight"));
            // tests.Add(ExpandDirectionProperty.ChangesVisualStateTest(ExpandDirection.Right, ExpandDirection.Down, "ExpandDown"));
            // tests.Add(ExpandDirectionProperty.SetXamlAttributeTest);
            // tests.Add(ExpandDirectionProperty.SetXamlElementTest);

            // IsSelected tests
            tests.Add(IsSelectedProperty.CheckDefaultValueTest);
            tests.Add(IsSelectedProperty.ChangeClrSetterTest);
            tests.Add(IsSelectedProperty.ChangeSetValueTest);
            tests.Add(IsSelectedProperty.ClearValueResetsDefaultTest);
            tests.Add(IsSelectedProperty.CanBeStyledTest);
            tests.Add(IsSelectedProperty.TemplateBindTest.Tag(Tags.RequiresFocus));
            tests.Add(IsSelectedProperty.ChangesVisualStateTest(false, true, "Expanded"));
            tests.Add(IsSelectedProperty.ChangesVisualStateTest(true, false, "Collapsed"));
            tests.Add(IsSelectedProperty.SetXamlAttributeTest);
            tests.Add(IsSelectedProperty.SetXamlElementTest);

            // AccordionButtonStyleProperty tests
            tests.Add(AccordionButtonStyleProperty.CheckDefaultValueTest);
            tests.Add(AccordionButtonStyleProperty.ChangeClrSetterTest);
            tests.Add(AccordionButtonStyleProperty.ChangeSetValueTest);
            tests.Add(AccordionButtonStyleProperty.SetNullTest);
            tests.Add(AccordionButtonStyleProperty.ClearValueResetsDefaultTest);
            tests.Add(AccordionButtonStyleProperty.CanBeStyledTest);
            tests.Add(AccordionButtonStyleProperty.TemplateBindTest);
            tests.Add(AccordionButtonStyleProperty.SetXamlAttributeTest.Bug("TODO: XAML Parser?"));
            tests.Add(AccordionButtonStyleProperty.SetXamlElementTest.Bug("TODO: XAML Parser?"));

            // ExpandableContentControlStyleProperty tests
            tests.Add(ExpandableContentControlStyleProperty.CheckDefaultValueTest);
            tests.Add(ExpandableContentControlStyleProperty.ChangeClrSetterTest);
            tests.Add(ExpandableContentControlStyleProperty.ChangeSetValueTest);
            tests.Add(ExpandableContentControlStyleProperty.SetNullTest);
            tests.Add(ExpandableContentControlStyleProperty.ClearValueResetsDefaultTest);
            tests.Add(ExpandableContentControlStyleProperty.CanBeStyledTest);
            tests.Add(ExpandableContentControlStyleProperty.TemplateBindTest);
            tests.Add(ExpandableContentControlStyleProperty.SetXamlAttributeTest.Bug("TODO: XAML Parser?"));
            tests.Add(ExpandableContentControlStyleProperty.SetXamlElementTest.Bug("TODO: XAML Parser?"));

            // ContentTargetSize tests
            tests.Add(ContentTargetSizeProperty.CheckDefaultValueTest);

            DependencyPropertyTestMethod buggedTest = tests.FirstOrDefault(a => a.Name == HeaderProperty.TemplateBindTest.Name);

            if (buggedTest != null)
            {
                buggedTest.Bug("Find out why this fails for AccordionItem and not for HeaderedContentControl.");
            }

            DependencyPropertyTestMethod datatemplateWithUIElementFailsTest = tests.FirstOrDefault(a => a.Name == ContentProperty.DataTemplateWithUIElementFailsTest.Name);

            if (datatemplateWithUIElementFailsTest != null)
            {
                // remove this test. It fails because the content starts out not visible, thus having no elements
                // to find.
                tests.Remove(datatemplateWithUIElementFailsTest);
            }

            return(tests);
        }