Esempio n. 1
0
        protected override IRawElementProviderSimple GetProvider()
        {
            SWF.HelpProvider swfHelpProvider = new SWF.HelpProvider();

            SWF.Button swfButton = new SWF.Button();
            swfButton.Location = new SD.Point(3, 3);
            swfButton.Size     = new SD.Size(272, 72);
            swfButton.Text     = "With help";

            SWF.Button swfButtonNoHelp = new SWF.Button();
            swfButtonNoHelp.Location = new SD.Point(3, 30);
            swfButtonNoHelp.Size     = new SD.Size(272, 72);
            swfButtonNoHelp.Text     = "No help";

            //We have to use an event to fake the user click
            swfButton.Click += new System.EventHandler(OnControlClicked);

            swfHelpProvider.SetShowHelp(swfButton, true);
            swfHelpProvider.SetHelpString(swfButton, "I'm showing a button tooltip.");

            Form.Controls.Add(swfButton);
            Form.Controls.Add(swfButtonNoHelp);

            //Testing ToolTipOpenedEvent
            bridge.ResetEventLists();
            swfButton.PerformClick();              //Clicking the button will fake the event!

            StructureChangedEventTuple eventTuple
                = bridge.GetStructureChangedEventAt(0, StructureChangeType.ChildAdded);

            return(eventTuple.provider as IRawElementProviderSimple);
        }
Esempio n. 2
0
        public void CollectionTest()
        {
            ComboBox combobox = GetComboBox();

            IRawElementProviderFragmentRoot rootProvider
                = (IRawElementProviderFragmentRoot)GetProviderFromControl(combobox);

            IRawElementProviderFragment list
                = rootProvider.Navigate(NavigateDirection.FirstChild);

            while (list != null)
            {
                if ((int)list.GetPropertyValue(AutomationElementIdentifiers.ControlTypeProperty.Id)
                    == ControlType.List.Id)
                {
                    break;
                }

                list = list.Navigate(NavigateDirection.NextSibling);
            }

            Assert.IsNotNull(list, "We must have a List");

            IRawElementProviderFragment item0
                = list.Navigate(NavigateDirection.FirstChild);

            Assert.IsNull(item0, "We shouldn't have children in List");

            //Add item 0. (Items.Add)

            bridge.ResetEventLists();

            combobox.Items.Add("Item 0");
            StructureChangedEventTuple tuple
                = bridge.GetStructureChangedEventFrom(StructureChangeType.ChildAdded);

            Assert.IsNotNull(tuple, "We should have tuple");
            Assert.AreEqual(((IRawElementProviderFragment)tuple.provider).FragmentRoot,
                            list,
                            "Added item.FragmentRoot != list");
            item0 = list.Navigate(NavigateDirection.FirstChild);
            Assert.IsNotNull(item0, "We should have children in List");

            //Add item 1. (Items.Add)

            bridge.ResetEventLists();
            combobox.Items.Add("Item 1");
            tuple = bridge.GetStructureChangedEventFrom(StructureChangeType.ChildAdded);
            Assert.IsNotNull(tuple, "We should have tuple");
            Assert.AreEqual(((IRawElementProviderFragment)tuple.provider).FragmentRoot,
                            list,
                            "Added item.FragmentRoot != list");
            IRawElementProviderFragment item1
                = item0.Navigate(NavigateDirection.NextSibling);

            Assert.IsNotNull(item1, "We should have children in List");

            Assert.AreEqual(item1.Navigate(NavigateDirection.PreviousSibling),
                            item0,
                            "Navigation invalid: item1 -> item0");
            Assert.AreEqual(item0.Navigate(NavigateDirection.NextSibling),
                            item1,
                            "Navigation invalid: item1 <- item0");

            //Remove item 0 (Items.RemoveAt)

            bridge.ResetEventLists();
            combobox.Items.RemoveAt(0);

            tuple = bridge.GetStructureChangedEventFrom(StructureChangeType.ChildRemoved);
            Assert.IsNotNull(tuple, "We should have tuple.");
            Assert.AreEqual(((IRawElementProviderFragment)tuple.provider).FragmentRoot,
                            list,
                            "Removed item.FragmentRoot != list");
            Assert.IsNotNull(list.Navigate(NavigateDirection.FirstChild),
                             "We should STILL have children in List");
            Assert.AreEqual(list.Navigate(NavigateDirection.FirstChild),
                            item1,
                            "Navigation invalid: parent.FirstChild != item1");

            //Add item 2 y 3 (Items.AddRange)

            bridge.ResetEventLists();
            combobox.Items.AddRange(new object [] { "Item 2", "Item 3" });

            Assert.AreEqual(2,
                            bridge.GetStructureChangedEventCount(StructureChangeType.ChildAdded),
                            "We should have two events");
            StructureChangedEventTuple tuple0 = bridge.GetStructureChangedEventAt(0,
                                                                                  StructureChangeType.ChildAdded);

            Assert.IsNotNull(tuple0, "We should have tuple0.");
            StructureChangedEventTuple tuple1 = bridge.GetStructureChangedEventAt(1,
                                                                                  StructureChangeType.ChildAdded);

            Assert.IsNotNull(tuple1, "We should have tuple1.");
            Assert.AreEqual(((IRawElementProviderFragment)tuple0.provider).FragmentRoot,
                            list,
                            "Added item2.FragmentRoot != list");
            Assert.AreEqual(((IRawElementProviderFragment)tuple1.provider).FragmentRoot,
                            list,
                            "Added item3.FragmentRoot != list");

            IRawElementProviderFragment item2
                = item1.Navigate(NavigateDirection.NextSibling);

            Assert.IsNotNull(item2, "We should have children in List");
            IRawElementProviderFragment item3
                = item2.Navigate(NavigateDirection.NextSibling);

            Assert.AreEqual(item3.Navigate(NavigateDirection.PreviousSibling),
                            item2,
                            "Navigation invalid: item2 -> item3");
            Assert.AreEqual(item2.Navigate(NavigateDirection.NextSibling),
                            item3,
                            "Navigation invalid: item2 <- item3");

            // We have: "Item1", "Item2" "Item3". Lets replace "Item2" with "Item4"
            bridge.ResetEventLists();

            combobox.Items [1] = "Item4";

            Assert.AreEqual(1,
                            bridge.GetStructureChangedEventCount(StructureChangeType.ChildRemoved),
                            "We should have 1 event");
            Assert.AreEqual(1,
                            bridge.GetStructureChangedEventCount(StructureChangeType.ChildAdded),
                            "We should have 1 event");
            StructureChangedEventTuple tupleReplacedRemoved
                = bridge.GetStructureChangedEventAt(0,
                                                    StructureChangeType.ChildRemoved);

            Assert.IsNotNull(tupleReplacedRemoved, "Replaced: Removed tupple shouldn't be null");
            Assert.AreEqual(tupleReplacedRemoved.provider,
                            item2,
                            "Removed item should be Item2");
            StructureChangedEventTuple tupleReplacedAdded
                = bridge.GetStructureChangedEventAt(0,
                                                    StructureChangeType.ChildAdded);

            Assert.IsNotNull(tupleReplacedAdded, "Replaced: Added tupple shouldn't be null");
            Assert.AreEqual(tupleReplacedAdded.provider,              //Notice that elements ARE NOT SORTED
                            item3.Navigate(NavigateDirection.NextSibling),
                            "Navigation failed: item3 -> item4");
            Assert.AreEqual(((IRawElementProviderFragment)tupleReplacedAdded.provider).Navigate(NavigateDirection.PreviousSibling),
                            item3,
                            "Navigation failed: item3 <- item4");

            TestChildPatterns(rootProvider);

            // Lets clear all!

            bridge.ResetEventLists();
            combobox.Items.Clear();

            Assert.AreEqual(1,
                            bridge.GetStructureChangedEventCount(StructureChangeType.ChildrenBulkRemoved),
                            "We should have 1 event");
            Assert.IsNull(list.Navigate(NavigateDirection.FirstChild),
                          "We shouldn't have children in List");
        }
Esempio n. 3
0
        public void BasicPropertiesTest()
        {
            SWF.HelpProvider swfHelpProvider = new SWF.HelpProvider();

            SWF.Button swfButton = new SWF.Button();
            swfButton.Location = new SD.Point(3, 3);
            swfButton.Size     = new SD.Size(272, 72);
            swfButton.Text     = "With help";

            SWF.Button swfButtonNoHelp = new SWF.Button();
            swfButtonNoHelp.Location = new SD.Point(3, 30);
            swfButtonNoHelp.Size     = new SD.Size(272, 72);
            swfButtonNoHelp.Text     = "No help";

            //We have to use an event to fake the user click
            swfButton.Click += new System.EventHandler(OnControlClicked);

            swfHelpProvider.SetShowHelp(swfButton, true);
            swfHelpProvider.SetHelpString(swfButton, "I'm showing a button tooltip.");

            Form.Controls.Add(swfButton);
            Form.Controls.Add(swfButtonNoHelp);

            //Testing ToolTipOpenedEvent
            bridge.ResetEventLists();
            swfButton.PerformClick();              //Clicking the button will fake the event!

            StructureChangedEventTuple eventTuple
                = bridge.GetStructureChangedEventAt(0, StructureChangeType.ChildAdded);

            Assert.IsNotNull(eventTuple, "GetAutomationEventAt (0)");

            //We have the HelpProvider!
            IRawElementProviderFragment helpProvider = eventTuple.provider as IRawElementProviderFragment;

            Assert.IsNotNull(helpProvider, "helpProvider is null");

            TestProperty(helpProvider,
                         AutomationElementIdentifiers.IsControlElementProperty,
                         true);

            TestProperty(helpProvider,
                         AutomationElementIdentifiers.IsContentElementProperty,
                         false);

            TestProperty(helpProvider,
                         AutomationElementIdentifiers.HelpTextProperty,
                         null);

            TestProperty(helpProvider,
                         AutomationElementIdentifiers.LocalizedControlTypeProperty,
                         "tool tip");

            TestProperty(helpProvider,
                         AutomationElementIdentifiers.ControlTypeProperty,
                         ControlType.ToolTip.Id);

            TestProperty(helpProvider,
                         AutomationElementIdentifiers.LabeledByProperty,
                         null);

            TestProperty(helpProvider,
                         AutomationElementIdentifiers.NameProperty,
                         swfHelpProvider.GetHelpString(swfButton));

            TestProperty(helpProvider,
                         AutomationElementIdentifiers.IsKeyboardFocusableProperty,
                         false);

            TestProperty(helpProvider,
                         AutomationElementIdentifiers.ClickablePointProperty,
                         null);

            // TODO: How to allow it?
//			bridge.ResetEventLists ();
//
//			swfButtonNoHelp.PerformClick (); //Clicking this button will close the tooltip
//
//			Assert.AreEqual (1,
//			                 bridge.GetAutomationEventCount (InvokePatternIdentifiers.InvokedEvent),
//			                 "AutomationElementIdentifiers.InvokedEvent");
//
//			Assert.IsNotNull (bridge.GetStructureChangedEventAt (0, StructureChangeType.ChildRemoved),
//			                 "AutomationElementIdentifiers.ChildRemoved");
        }