Ejemplo n.º 1
0
    public static void Main(string[] args)
    {
        string peerServer = "ws://localhost:8080/ws";

        if (args.Length == 1)
        {
            peerServer = args[0];
        }
        TestPeer app = new TestPeer();

        if (!HumbleNet.Init())
        {
            Console.WriteLine("Failed to startup");
            return;
        }

        HumbleNet.P2P.Initialize(peerServer, "client_token", "client_secret", null);

        app.Start();

        while (app.Run())
        {
        }

        app.Stop();

        HumbleNet.Shutdown();
    }
Ejemplo n.º 2
0
        public void CreatePlugin()
        {
            var plugin  = new TestApplication();
            var Clients = new List <PeerBase>();
            var tcp     = plugin.GetTransportByName("TCPIPV4");

            plugin.RegisterReceiveCommand(tcp, new LogInRequest());

            var connection = ServerConnectionFactory.Create(plugin.GetTransportByName("TCPIPV4"), Guid.NewGuid().ToString());
            var byteconn   = connection as ServerConnection <byte[]>;

            byteconn.DeSerializer = new ProtoBufGenericSerializer <LogInRequest>();

            plugin.OnClientConnected += (sender, conn) =>
            {
                var peer = new TestPeer(conn);
                Clients.Add(peer);
            };

            plugin.RaiseClientConnected(connection);
            plugin.RaisePacketReceived(connection);
        }
        public void DataGridCell_ITableItemProvider()
        {
            List<Customer> boundList = CreateCustomerList(10);
            DataGrid dataGrid = new DataGrid();
            Assert.IsNotNull(dataGrid);
            isLoaded = false;
            dataGrid.Width = 350;
            dataGrid.Height = 250;
            dataGrid.HeadersVisibility = DataGridHeadersVisibility.All;
            dataGrid.Loaded += new RoutedEventHandler(dataGrid_Loaded);
            dataGrid.AutoGenerateColumns = true;
            dataGrid.ItemsSource = boundList;
            dataGrid.ColumnWidth = new DataGridLength(100.0);

            TestPeer testPeer = new TestPeer(dataGrid);

            TestPanel.Children.Add(dataGrid);
            EnqueueConditional(delegate { return isLoaded; });
            this.EnqueueYieldThread();

            EnqueueCallback(delegate
            {
                // Get automation peers and the selection item provider for (0,0)
                DataGridRow row = dataGrid.DisplayData.GetDisplayedRow(1);
                AutomationPeer rowPeer = DataGridAutomationPeer.CreatePeerForElement(row);
                DataGridCell cell = row.Cells[2];
                AutomationPeer cellPeer = DataGridAutomationPeer.CreatePeerForElement(cell);
                Assert.IsNotNull(cellPeer);
                ITableItemProvider tableItem = cellPeer.GetPattern(PatternInterface.TableItem) as ITableItemProvider;
                Assert.IsNotNull(tableItem);

                // Test GetColumnHeaders
                IRawElementProviderSimple[] headers = tableItem.GetColumnHeaderItems();
                Assert.AreEqual(1, headers.Length);
                AutomationPeer headerPeer = DataGridAutomationPeer.CreatePeerForElement(dataGrid.Columns[2].HeaderCell);
                Assert.AreEqual(headerPeer, testPeer.GetPeerFromProvider(headers[0]));

                // Test GetRowHeaders
                headers = tableItem.GetRowHeaderItems();
                Assert.AreEqual(1, headers.Length);
                headerPeer = DataGridAutomationPeer.CreatePeerForElement(row.HeaderCell);
                Assert.AreEqual(headerPeer, testPeer.GetPeerFromProvider(headers[0]));
            });

            EnqueueTestComplete();
        }
        public void DataGridCell_ISelectionItemProvider()
        {
            List<Customer> boundList = CreateCustomerList(10);
            DataGrid dataGrid = new DataGrid();
            Assert.IsNotNull(dataGrid);
            isLoaded = false;
            dataGrid.Width = 350;
            dataGrid.Height = 250;
            dataGrid.Loaded += new RoutedEventHandler(dataGrid_Loaded);
            dataGrid.AutoGenerateColumns = true;
            dataGrid.ItemsSource = boundList;
            dataGrid.ColumnWidth = new DataGridLength(100.0);

            TestPeer testPeer = new TestPeer(dataGrid);

            TestPanel.Children.Add(dataGrid);
            EnqueueConditional(delegate { return isLoaded; });
            this.EnqueueYieldThread();

            EnqueueCallback(delegate
            {
                // Get automation peers and the selection item provider for (0,0)
                DataGridRow row = dataGrid.DisplayData.GetDisplayedRow(0);
                AutomationPeer rowPeer = DataGridAutomationPeer.CreatePeerForElement(row);
                DataGridCell cell = row.Cells[0];
                AutomationPeer peer = DataGridAutomationPeer.CreatePeerForElement(cell);
                Assert.IsNotNull(peer);
                ISelectionItemProvider selectionItem = peer.GetPattern(PatternInterface.SelectionItem) as ISelectionItemProvider;
                Assert.IsNotNull(selectionItem);

                // Test the properties
                Assert.IsTrue(selectionItem.IsSelected);
                Assert.AreEqual(rowPeer, testPeer.GetPeerFromProvider(selectionItem.SelectionContainer));
                // 







                // Get a new selection item provider for a new cell (3,2)
                row = dataGrid.DisplayData.GetDisplayedRow(3);
                rowPeer = DataGridAutomationPeer.CreatePeerForElement(row);
                cell = row.Cells[2];
                peer = DataGridAutomationPeer.CreatePeerForElement(cell);
                Assert.IsNotNull(peer);
                selectionItem = peer.GetPattern(PatternInterface.SelectionItem) as ISelectionItemProvider;
                Assert.IsNotNull(selectionItem);

                // Test the new cell
                Assert.IsFalse(selectionItem.IsSelected);
                Assert.AreEqual(rowPeer, testPeer.GetPeerFromProvider(selectionItem.SelectionContainer));
                // 






                selectionItem.Select();
            });
            this.EnqueueYieldThread();

            EnqueueCallback(delegate
            {
                Assert.AreEqual(2, dataGrid.CurrentColumnIndex);
                Assert.AreEqual(3, dataGrid.CurrentSlot);
                Assert.AreEqual(3, dataGrid.SelectedIndex);
            });
            EnqueueTestComplete();
        }
        public void DataGridCell_IGridItemProvider()
        {
            List<Customer> boundList = CreateCustomerList(5);
            DataGrid dataGrid = new DataGrid();
            Assert.IsNotNull(dataGrid);
            isLoaded = false;
            dataGrid.Width = 200;
            dataGrid.Height = 250;
            dataGrid.Loaded += new RoutedEventHandler(dataGrid_Loaded);
            dataGrid.AutoGenerateColumns = true;
            dataGrid.ItemsSource = boundList;

            DataGridAutomationPeer gridPeer = ((DataGridAutomationPeer)DataGridAutomationPeer.CreatePeerForElement(dataGrid));
            Assert.IsNotNull(gridPeer);
            TestPeer testPeer = new TestPeer(dataGrid);

            TestPanel.Children.Add(dataGrid);
            EnqueueConditional(delegate { return isLoaded; });
            this.EnqueueYieldThread();

            AutomationPeer peer;
            IGridItemProvider gridItem;

            EnqueueCallback(delegate
            {
                foreach (DataGridRow row in dataGrid.DisplayData.GetScrollingRows())
                {
                    foreach (DataGridCell cell in row.Cells)
                    {
                        peer = DataGridAutomationPeer.CreatePeerForElement(cell);
                        Assert.IsNotNull(peer);
                        gridItem = (IGridItemProvider)peer.GetPattern(PatternInterface.GridItem);
                        Assert.IsNotNull(gridItem);

                        Assert.AreEqual(cell.ColumnIndex, gridItem.Column);
                        Assert.AreEqual(cell.RowIndex, gridItem.Row);
                        Assert.AreEqual(1, gridItem.ColumnSpan);
                        Assert.AreEqual(1, gridItem.RowSpan);
                        Assert.AreEqual(gridPeer, testPeer.GetPeerFromProvider(gridItem.ContainingGrid));
                    }
                }
                Assert.IsNotNull(dataGrid.DataConnection.CollectionView);
                dataGrid.DataConnection.CollectionView.GroupDescriptions.Add(new PropertyGroupDescription("LastName"));
                dataGrid.DataConnection.CollectionView.GroupDescriptions.Add(new PropertyGroupDescription("FirstName"));
            });
            this.EnqueueYieldThread();

            EnqueueCallback(delegate
            {
                foreach (DataGridRow row in dataGrid.DisplayData.GetScrollingRows())
                {
                    foreach (DataGridColumn column in dataGrid.Columns)
                    {
                        DataGridCell cell = row.Cells[column.Index];
                        peer = DataGridAutomationPeer.CreatePeerForElement(cell);
                        Assert.IsNotNull(peer);
                        gridItem = (IGridItemProvider)peer.GetPattern(PatternInterface.GridItem);
                        Assert.IsNotNull(gridItem);

                        Assert.AreEqual(cell.ColumnIndex - 1, gridItem.Column, "GridItemProvider.Column did not account for filler column");
                        Assert.AreEqual(cell.RowIndex, gridItem.Row, "GridItemProvider.Row is incorrect");
                        Assert.AreEqual(1, gridItem.ColumnSpan, "GridItemProvider.ColumnSpan is incorrect");
                        Assert.AreEqual(1, gridItem.RowSpan, "GridItemProvider.RowSpan is incorrect");
                        Assert.AreEqual(gridPeer, testPeer.GetPeerFromProvider(gridItem.ContainingGrid), "GridItemProvider.ContainingGrid is incorrect");
                    }
                }
            });

            EnqueueTestComplete();
        }
        public void DataGrid_ISelectionProvider()
        {
            List<Customer> boundList = CreateCustomerList(25);
            DataGrid dataGrid = new DataGrid();
            Assert.IsNotNull(dataGrid);
            isLoaded = false;
            dataGrid.Width = 350;
            dataGrid.Height = 250;
            dataGrid.Loaded += new RoutedEventHandler(dataGrid_Loaded);
            dataGrid.AutoGenerateColumns = true;
            dataGrid.ItemsSource = boundList;
            dataGrid.SelectedIndex = 0;

            DataGridAutomationPeer peer = ((DataGridAutomationPeer)DataGridAutomationPeer.CreatePeerForElement(dataGrid));
            Assert.IsNotNull(peer);
            ISelectionProvider selectionProvider = ((ISelectionProvider)peer.GetPattern(PatternInterface.Selection));
            Assert.IsNotNull(selectionProvider);
            TestPeer testPeer = new TestPeer(dataGrid);
            Assert.IsNotNull(testPeer);

            TestPanel.Children.Add(dataGrid);
            EnqueueConditional(delegate { return isLoaded; });
            this.EnqueueYieldThread();

            EnqueueCallback(delegate
            {
                IRawElementProviderSimple[] selection = selectionProvider.GetSelection();
                Assert.IsNotNull(selection, "GetSelection returned null for valid row");
                AutomationPeer selectionPeer = testPeer.GetPeerFromProvider(selection[0]);
                Assert.AreEqual(typeof(DataGridRow).Name, selectionPeer.GetClassName(), "GetSelection did not return DataGridRow");

                Assert.AreEqual(dataGrid.SelectionMode == DataGridSelectionMode.Extended, selectionProvider.CanSelectMultiple, "Incorrect CanSelectMultiple value");
                Assert.AreEqual(false, selectionProvider.IsSelectionRequired, "Incorrect IsSelectionRequired value");
            });
            EnqueueTestComplete();
        }
        public void DataGridItem_ISelectionProvider()
        {
            List<Customer> boundList = CreateCustomerList(5);
            DataGrid dataGrid = new DataGrid();
            Assert.IsNotNull(dataGrid);
            isLoaded = false;
            dataGrid.Width = 350;
            dataGrid.Height = 250;
            dataGrid.Loaded += new RoutedEventHandler(dataGrid_Loaded);
            dataGrid.AutoGenerateColumns = true;
            dataGrid.ItemsSource = boundList;
            dataGrid.ColumnWidth = new DataGridLength(100.0);

            TestPanel.Children.Add(dataGrid);
            EnqueueConditional(delegate { return isLoaded; });
            this.EnqueueYieldThread();

            AutomationPeer peer;
            ISelectionProvider selector;
            TestPeer testPeer = new TestPeer(dataGrid);

            EnqueueCallback(delegate
            {
                peer = new DataGridItemAutomationPeer(boundList[0], dataGrid);
                Assert.IsNotNull(peer);
                selector = peer.GetPattern(PatternInterface.Selection) as ISelectionProvider;
                Assert.IsNotNull(selector);
                Assert.AreEqual(1, selector.GetSelection().Length);
                peer = testPeer.GetPeerFromProvider(selector.GetSelection()[0]);
                Assert.AreEqual(typeof(DataGridCell).Name, peer.GetClassName(), "GetSelection did not return DataGridCell");
            });
            this.EnqueueYieldThread();

            EnqueueTestComplete();
        }
        public void DataGridGroupItem_ISelectionProvider()
        {
            PagedCollectionView customers = CreateGroupedCustomerCollectionView();
            DataGrid dataGrid = new DataGrid();
            Assert.IsNotNull(dataGrid);
            isLoaded = false;
            dataGrid.Width = 350;
            dataGrid.Height = 250;
            dataGrid.Loaded += new RoutedEventHandler(dataGrid_Loaded);
            dataGrid.AutoGenerateColumns = true;
            dataGrid.ItemsSource = customers;

            TestPanel.Children.Add(dataGrid);
            EnqueueConditional(delegate { return isLoaded; });
            this.EnqueueYieldThread();

            AutomationPeer peer;
            ISelectionProvider selector = null;
            TestPeer testPeer = new TestPeer(dataGrid);

            EnqueueCallback(delegate
            {
                CollectionViewGroup group = customers.Groups[1] as CollectionViewGroup;
                Assert.IsNotNull(group, "PagedCollectionView did not return CollectionViewGroup");
                peer = new DataGridGroupItemAutomationPeer(group, dataGrid);
                Assert.IsNotNull(peer);
                selector = peer.GetPattern(PatternInterface.Selection) as ISelectionProvider;
                Assert.IsNotNull(selector);
                Assert.AreEqual(0, selector.GetSelection().Length, "There should not be any selected items within this group");

                // Select an item within group 1
                peer = new DataGridItemAutomationPeer(customers[3], dataGrid);
                Assert.IsNotNull(peer);
                ISelectionItemProvider selectionItem = peer.GetPattern(PatternInterface.SelectionItem) as ISelectionItemProvider;
                Assert.IsNotNull(selectionItem);
                selectionItem.AddToSelection();
            });
            this.EnqueueYieldThread();

            EnqueueCallback(delegate
            {
                Assert.IsNotNull(selector);
                Assert.AreEqual(1, selector.GetSelection().Length, "There should be a single selected item within this group");
                peer = testPeer.GetPeerFromProvider(selector.GetSelection()[0]);
                Assert.AreEqual(typeof(DataGridRow).Name, peer.GetClassName(), "GetSelection did not return DataGridRow");
            });
            this.EnqueueYieldThread();

            EnqueueTestComplete();
        }
        public void DataGridGroupItem_IGridProvider()
        {
            PagedCollectionView customers = CreateGroupedCustomerCollectionView();
            DataGrid dataGrid = new DataGrid();
            Assert.IsNotNull(dataGrid);
            isLoaded = false;
            dataGrid.Width = 350;
            dataGrid.Height = 250;
            dataGrid.Loaded += new RoutedEventHandler(dataGrid_Loaded);
            dataGrid.AutoGenerateColumns = true;
            dataGrid.ItemsSource = customers;

            TestPeer testPeer = new TestPeer(dataGrid);
            Assert.IsNotNull(testPeer);

            TestPanel.Children.Add(dataGrid);
            EnqueueConditional(delegate { return isLoaded; });
            this.EnqueueYieldThread();

            IGridProvider gridProvider = null;
            IRawElementProviderSimple item = null;
            EnqueueCallback(delegate
            {
                CollectionViewGroup group = customers.Groups[1] as CollectionViewGroup;
                Assert.IsNotNull(group, "PagedCollectionView did not return CollectionViewGroup");
                AutomationPeer peer = new DataGridGroupItemAutomationPeer(group, dataGrid);
                Assert.IsNotNull(peer);
                gridProvider = peer.GetPattern(PatternInterface.Grid) as IGridProvider;
                Assert.IsNotNull(gridProvider);

                Assert.AreEqual(7, gridProvider.RowCount, "Incorrect RowCount value");
                Assert.AreEqual(dataGrid.Columns.Count, gridProvider.ColumnCount, "Incorrect ColumnCount value");

                item = gridProvider.GetItem(5, 2);
                Assert.IsNotNull(item, "GetItem returned null for valid cell");
                AutomationPeer itemPeer = testPeer.GetPeerFromProvider(item);
                Assert.AreEqual(typeof(DataGridCell).Name, itemPeer.GetClassName(), "GetItem did not return DataGridCell");

                item = gridProvider.GetItem(100, 100);
                Assert.IsNull(item, "GetItem returned object for invalid cell");
            });
            this.EnqueueYieldThread();
            this.EnqueueCallback(delegate
            {
                // Collapse the group and check that GetItem still works
                dataGrid.CollapseRowGroup(customers.Groups[1] as CollectionViewGroup, true);
            });
            this.EnqueueYieldThread();
            this.EnqueueCallback(delegate
            {
                Assert.IsNotNull(gridProvider);
                item = gridProvider.GetItem(5, 2);
                Assert.IsNotNull(item, "GetItem returned null for valid cell");
                AutomationPeer itemPeer = testPeer.GetPeerFromProvider(item);
                Assert.AreEqual(typeof(DataGridCell).Name, itemPeer.GetClassName(), "GetItem did not return DataGridCell");
                
            });
            EnqueueTestComplete();
        }
        public void DataGrid_IGridProvider()
        {
            List<Customer> boundList = CreateCustomerList(25);
            DataGrid dataGrid = new DataGrid();
            Assert.IsNotNull(dataGrid);
            isLoaded = false;
            dataGrid.Width = 350;
            dataGrid.Height = 250;
            dataGrid.Loaded += new RoutedEventHandler(dataGrid_Loaded);
            dataGrid.AutoGenerateColumns = true;
            dataGrid.ItemsSource = boundList;

            DataGridAutomationPeer peer = ((DataGridAutomationPeer)DataGridAutomationPeer.CreatePeerForElement(dataGrid));
            Assert.IsNotNull(peer);
            IGridProvider gridProvider = ((IGridProvider)peer.GetPattern(PatternInterface.Grid));
            Assert.IsNotNull(gridProvider);
            TestPeer testPeer = new TestPeer(dataGrid);
            Assert.IsNotNull(testPeer);

            TestPanel.Children.Add(dataGrid);
            EnqueueConditional(delegate { return isLoaded; });
            this.EnqueueYieldThread();

            EnqueueCallback(delegate
            {
                Assert.AreEqual(dataGrid.SlotCount, gridProvider.RowCount, "Incorrect RowCount value");
                Assert.AreEqual(dataGrid.Columns.Count, gridProvider.ColumnCount, "Incorrect ColumnCount value");
                
                IRawElementProviderSimple item = gridProvider.GetItem(21, 2);
                Assert.IsNotNull(item, "GetItem returned null for valid cell");
                AutomationPeer itemPeer = testPeer.GetPeerFromProvider(item);
                Assert.AreEqual(typeof(DataGridCell).Name, itemPeer.GetClassName(), "GetItem did not return DataGridCell");

                item = gridProvider.GetItem(100, 100);
                Assert.IsNull(item, "GetItem returned object for invalid cell");
            });
            EnqueueTestComplete();
        }
        public void DataGridGroupItem_IExpandCollapseProvider()
        {
            PagedCollectionView customers = CreateGroupedCustomerCollectionView();
            DataGrid dataGrid = new DataGrid();
            Assert.IsNotNull(dataGrid);
            isLoaded = false;
            dataGrid.Width = 350;
            dataGrid.Height = 250;
            dataGrid.Loaded += new RoutedEventHandler(dataGrid_Loaded);
            dataGrid.AutoGenerateColumns = true;
            dataGrid.ItemsSource = customers;

            CollectionViewGroup group = null;
            IExpandCollapseProvider expandCollapseProvider = null;
            TestPeer testPeer = new TestPeer(dataGrid);
            Assert.IsNotNull(testPeer);

            TestPanel.Children.Add(dataGrid);
            EnqueueConditional(delegate { return isLoaded; });
            this.EnqueueYieldThread();

            EnqueueCallback(delegate
            {
                group = customers.Groups[1] as CollectionViewGroup;
                Assert.IsNotNull(group, "PagedCollectionView did not return CollectionViewGroup");
                AutomationPeer peer = new DataGridGroupItemAutomationPeer(group, dataGrid);
                Assert.IsNotNull(peer);
                expandCollapseProvider = peer.GetPattern(PatternInterface.ExpandCollapse) as IExpandCollapseProvider;
                Assert.IsNotNull(expandCollapseProvider);

                Assert.AreEqual(Visibility.Visible, dataGrid.RowGroupInfoFromCollectionViewGroup(group).Visibility, "Group should be expanded");
                Assert.AreEqual(ExpandCollapseState.Expanded, expandCollapseProvider.ExpandCollapseState, "Group should be expanded");

                expandCollapseProvider.Collapse();
            });
            this.EnqueueYieldThread();

            EnqueueCallback(delegate
            {
                Assert.IsNotNull(expandCollapseProvider);
                Assert.AreEqual(Visibility.Collapsed, dataGrid.RowGroupInfoFromCollectionViewGroup(group).Visibility, "Group should be collapsed");
                Assert.AreEqual(ExpandCollapseState.Collapsed, expandCollapseProvider.ExpandCollapseState, "Group should be collapsed");

                expandCollapseProvider.Expand();
            });
            this.EnqueueYieldThread();

            EnqueueCallback(delegate
            {
                Assert.IsNotNull(expandCollapseProvider);
                Assert.AreEqual(Visibility.Visible, dataGrid.RowGroupInfoFromCollectionViewGroup(group).Visibility, "Group should be expanded");
                Assert.AreEqual(ExpandCollapseState.Expanded, expandCollapseProvider.ExpandCollapseState, "Group should be expanded");
            });
            EnqueueTestComplete();
        }
Ejemplo n.º 12
0
        public void DataGridCell_IGridItemProvider()
        {
            List<Customer> boundList = CreateCustomerList(5);
            DataGrid dataGrid = new DataGrid();
            Assert.IsNotNull(dataGrid);
            isLoaded = false;
            dataGrid.Width = 200;
            dataGrid.Height = 250;
            dataGrid.Loaded += new RoutedEventHandler(dataGrid_Loaded);
            dataGrid.AutoGenerateColumns = true;
            dataGrid.ItemsSource = boundList;

            DataGridAutomationPeer gridPeer = ((DataGridAutomationPeer)DataGridAutomationPeer.CreatePeerForElement(dataGrid));
            Assert.IsNotNull(gridPeer);
            TestPeer testPeer = new TestPeer(dataGrid);

            TestPanel.Children.Add(dataGrid);
            EnqueueConditional(delegate { return isLoaded; });
            this.EnqueueYieldThread();

            EnqueueCallback(delegate
            {
                AutomationPeer peer;
                IGridItemProvider gridItem;
                foreach (DataGridRow row in dataGrid.DisplayData.GetScrollingRows())
                {
                    foreach (DataGridCell cell in row.Cells)
                    {
                        peer = DataGridAutomationPeer.CreatePeerForElement(cell);
                        Assert.IsNotNull(peer);
                        gridItem = (IGridItemProvider)peer.GetPattern(PatternInterface.GridItem);
                        Assert.IsNotNull(gridItem);

                        Assert.AreEqual(cell.ColumnIndex, gridItem.Column);
                        Assert.AreEqual(cell.RowIndex, gridItem.Row);
                        Assert.AreEqual(1, gridItem.ColumnSpan);
                        Assert.AreEqual(1, gridItem.RowSpan);
                        Assert.AreEqual(gridPeer, testPeer.GetPeerFromProvider(gridItem.ContainingGrid));
                    }
                }
            });

            EnqueueTestComplete();
        }
Ejemplo n.º 13
0
        public void CalendarButton_AutomationPeer()
        {
            Calendar calendar = new Calendar();
            Assert.IsNotNull(calendar);
            _isLoaded = false;
            DateTime date = new DateTime(2000, 2, 2);
            calendar.DisplayDate = date;
            calendar.SelectedDate = date;

            CalendarAutomationPeer calendarAutomationPeer = (CalendarAutomationPeer)CalendarAutomationPeer.CreatePeerForElement(calendar);
            Assert.IsNotNull(calendarAutomationPeer);
            TestPeer testPeer = new TestPeer(calendar);

            calendar.Loaded += new RoutedEventHandler(calendar_Loaded);
            TestPanel.Children.Add(calendar);
            EnqueueConditional(IsLoaded);

            EnqueueCallback(delegate
            {
                calendar._hasFocus = true;
                calendar.DisplayMode = CalendarMode.Year;
                CalendarButton calendarButton = (CalendarButton)calendar.MonthControl.YearView.Children[1];
                Assert.IsNotNull(calendarButton);
                AutomationPeer peer = CalendarAutomationPeer.CreatePeerForElement(calendarButton);
                Assert.IsNotNull(peer);
               
                date = new DateTime(2000, 2, 1);

                Assert.AreEqual(peer.GetAutomationControlType(), AutomationControlType.Button, "Incorrect Control type for CalendarButton");
                Assert.AreEqual(peer.GetClassName(), calendarButton.GetType().Name, "Incorrect ClassName value for CalendarButton");
                Assert.AreEqual(peer.GetName(), calendarButton.Content.ToString(), "Incorrect Name value for CalendarButton");
                Assert.IsTrue(peer.IsContentElement(), "Incorrect IsContentElement value");
                Assert.IsTrue(peer.IsControlElement(), "Incorrect IsControlElement value");
                Assert.IsFalse(peer.IsKeyboardFocusable(), "Incorrect IsKeyBoardFocusable value");

                #region CalendarButtonAutomationPeer ISelectionItemProvider tests:

                ISelectionItemProvider selectionItem = (ISelectionItemProvider)peer.GetPattern(PatternInterface.SelectionItem);
                Assert.IsNotNull(selectionItem);
                Assert.IsTrue(calendarButton.IsFocusedOverride);
                Assert.IsTrue(selectionItem.IsSelected);
                Assert.AreEqual(calendarAutomationPeer, testPeer.GetPeerFromProvider(selectionItem.SelectionContainer));
                selectionItem.RemoveFromSelection();
                Assert.IsTrue(selectionItem.IsSelected);

                CalendarButton calendarButton2 = (CalendarButton)calendar.MonthControl.YearView.Children[0];
                Assert.IsNotNull(calendarButton2);
                AutomationPeer peer2 = CalendarAutomationPeer.CreatePeerForElement(calendarButton2);
                Assert.IsNotNull(peer2);
                ISelectionItemProvider selectionItem2 = (ISelectionItemProvider)peer2.GetPattern(PatternInterface.SelectionItem);
                Assert.IsNotNull(selectionItem2);
                selectionItem2.AddToSelection();
                Assert.IsTrue(selectionItem.IsSelected);
                Assert.IsFalse(calendarButton2.IsFocusedOverride);
                Assert.IsFalse(selectionItem2.IsSelected);
                selectionItem2.Select();
                Assert.IsTrue(selectionItem2.IsSelected);
                Assert.IsFalse(selectionItem.IsSelected);
                Assert.IsFalse(calendarButton.IsFocusedOverride);
                Assert.IsTrue(calendarButton2.IsFocusedOverride);

                calendar.DisplayDateEnd = new DateTime(2000, 9, 1);
                CalendarButton calendarButton3 = (CalendarButton)calendar.MonthControl.YearView.Children[10];
                Assert.IsFalse(calendarButton3.IsEnabled);
                AutomationPeer peer3 = CalendarAutomationPeer.CreatePeerForElement(calendarButton3);
                Assert.IsNotNull(peer3);
                ISelectionItemProvider selectionItem3 = (ISelectionItemProvider)peer3.GetPattern(PatternInterface.SelectionItem);
                Assert.IsNotNull(selectionItem3);
                Common.AssertExpectedExceptionWithoutMessageControl(new ElementNotEnabledException(), () => { selectionItem3.Select(); });

                #endregion

                #region CalendarButtonAutomationPeer IGridItemProvider tests:

                foreach (UIElement child in calendar.MonthControl.YearView.Children)
                {
                    int childRow = (int)child.GetValue(Grid.RowProperty);
                    IGridItemProvider gridItem;

                    if (childRow != 0)
                    {
                        peer = CalendarButtonAutomationPeer.CreatePeerForElement(child);
                        Assert.IsNotNull(peer);
                        gridItem = (IGridItemProvider)peer.GetPattern(PatternInterface.GridItem);
                        Assert.IsNotNull(gridItem);

                        Assert.AreEqual(child.GetValue(Grid.ColumnProperty), gridItem.Column);
                        Assert.AreEqual(child.GetValue(Grid.RowProperty), gridItem.Row);
                        Assert.AreEqual(1, gridItem.ColumnSpan);
                        Assert.AreEqual(1, gridItem.RowSpan);
                        Assert.AreEqual(calendarAutomationPeer, testPeer.GetPeerFromProvider(gridItem.ContainingGrid));
                    }
                }

                #endregion

                #region CalendarButtonAutomation Peer IInvokeProvider tests:

                Assert.AreEqual(calendar.DisplayMode, CalendarMode.Year);
                calendarButton = (CalendarButton)calendar.MonthControl.YearView.Children[1];
                peer = CalendarAutomationPeer.CreatePeerForElement(calendarButton);
                IInvokeProvider invokeProvider = (IInvokeProvider)peer.GetPattern(PatternInterface.Invoke);
                invokeProvider.Invoke();
                Assert.AreEqual(calendar.DisplayMode, CalendarMode.Month);

                #endregion
            });

            EnqueueTestComplete();
        }
Ejemplo n.º 14
0
        public void DayButton_AutomationPeer()
        {
            Calendar calendar = new Calendar();
            Assert.IsNotNull(calendar);
            _isLoaded = false;
            DateTime date = new DateTime(2000, 2, 2);
            calendar.DisplayDate = date;
            calendar.SelectedDate = date;

            CalendarAutomationPeer calendarAutomationPeer = (CalendarAutomationPeer)CalendarAutomationPeer.CreatePeerForElement(calendar);
            Assert.IsNotNull(calendarAutomationPeer);
            TestPeer testPeer = new TestPeer(calendar);

            calendar.Loaded += new RoutedEventHandler(calendar_Loaded);
            TestPanel.Children.Add(calendar);
            EnqueueConditional(IsLoaded);

            EnqueueCallback(delegate
            {
                CalendarDayButton dayButton = calendar.FindDayButtonFromDay(date);
                Assert.IsNotNull(dayButton);
                AutomationPeer peer = CalendarAutomationPeer.CreatePeerForElement(dayButton);
                Assert.IsNotNull(peer);

                Assert.AreEqual(peer.GetAutomationControlType(), AutomationControlType.Button, "Incorrect Control type for Daybutton");
                Assert.AreEqual(peer.GetClassName(), dayButton.GetType().Name, "Incorrect ClassName value for DayButton");
                Assert.AreEqual(peer.GetName(), dayButton.Content.ToString(), "Incorrect Name value for DayButtonPeer");
                Assert.IsTrue(peer.IsContentElement(), "Incorrect IsContentElement value");
                Assert.IsTrue(peer.IsControlElement(), "Incorrect IsControlElement value");
                Assert.IsFalse(peer.IsKeyboardFocusable(), "Incorrect IsKeyBoardFocusable value");

                #region DayButtonAutomationPeer ISelectionItemProvider tests:

                ISelectionItemProvider selectionItem = (ISelectionItemProvider)peer.GetPattern(PatternInterface.SelectionItem);
                Assert.IsNotNull(selectionItem);
                Assert.IsTrue(selectionItem.IsSelected);
                Assert.AreEqual(calendarAutomationPeer, testPeer.GetPeerFromProvider(selectionItem.SelectionContainer));
                selectionItem.RemoveFromSelection();
                Assert.IsFalse(selectionItem.IsSelected);
                selectionItem.AddToSelection();
                Assert.IsTrue(selectionItem.IsSelected);


                //check selection in SingleDate mode
                CalendarDayButton dayButton2 = calendar.FindDayButtonFromDay(date.AddDays(1));
                Assert.IsNotNull(dayButton2);
                AutomationPeer peer2 = CalendarAutomationPeer.CreatePeerForElement(dayButton2);
                Assert.IsNotNull(peer2);
                ISelectionItemProvider selectionItem2 = (ISelectionItemProvider)peer2.GetPattern(PatternInterface.SelectionItem);
                Assert.IsNotNull(selectionItem2);
                Assert.IsFalse(selectionItem2.IsSelected);
                selectionItem2.AddToSelection();
                Assert.IsTrue(selectionItem2.IsSelected);
                Assert.IsFalse(selectionItem.IsSelected);

                //check blackout day
                selectionItem.RemoveFromSelection();
                calendar.BlackoutDates.Add(new CalendarDateRange(date));
                selectionItem.AddToSelection();
                Assert.IsFalse(selectionItem.IsSelected);

                //check selection in None mode
                calendar.SelectionMode = CalendarSelectionMode.None;
                Assert.IsFalse(selectionItem2.IsSelected);
                selectionItem2.AddToSelection();
                Assert.IsFalse(selectionItem2.IsSelected);

                //check selection in MultiRange mode
                calendar.BlackoutDates.Clear();
                calendar.SelectionMode = CalendarSelectionMode.MultipleRange;
                Assert.IsFalse(selectionItem.IsSelected);
                Assert.IsFalse(selectionItem2.IsSelected);
                selectionItem.AddToSelection();
                selectionItem2.AddToSelection();
                Assert.IsTrue(selectionItem.IsSelected);
                Assert.IsTrue(selectionItem2.IsSelected);
                selectionItem2.RemoveFromSelection();
                Assert.IsTrue(selectionItem.IsSelected);
                Assert.IsFalse(selectionItem2.IsSelected);
                #endregion

                #region DayButtonAutomationPeer IInvoke tests:

                //check selection and trailing day functionality
                CalendarDayButton dayButton4 = calendar.FindDayButtonFromDay(new DateTime(2000,1,31));
                Assert.IsNotNull(dayButton4);
                AutomationPeer peer4 = CalendarAutomationPeer.CreatePeerForElement(dayButton4);
                Assert.IsNotNull(peer4);
                IInvokeProvider invokeItem = (IInvokeProvider)peer4.GetPattern(PatternInterface.Invoke);
                Assert.IsNotNull(invokeItem);
                invokeItem.Invoke();
                dayButton4 = calendar.FindDayButtonFromDay(new DateTime(2000, 1, 31));
                Assert.IsTrue(dayButton4.IsSelected);
                Assert.AreEqual(calendar.DisplayDate.Month, 1);

                #endregion

                #region DayButtonAutomationPeer ITableItemProvider tests:

                ITableItemProvider tableItem = (ITableItemProvider)peer.GetPattern(PatternInterface.TableItem);
                Assert.IsNotNull(tableItem);

                IRawElementProviderSimple[] headers = tableItem.GetColumnHeaderItems();
                Assert.AreEqual(1, headers.Length);
                Assert.Equals((((ITableProvider)calendarAutomationPeer).GetColumnHeaders())[3], headers[0]);
                Assert.IsNull(tableItem.GetRowHeaderItems());

                #endregion

                #region DayButtonAutomationPeer IGridItemProvider tests:

                foreach (UIElement child in calendar.MonthControl.MonthView.Children)
                {
                    int childRow = (int)child.GetValue(Grid.RowProperty);
                    IGridItemProvider gridItem;

                    if (childRow != 0)
                    {
                        peer = CalendarDayButtonAutomationPeer.CreatePeerForElement(child);
                        Assert.IsNotNull(peer);
                        gridItem = (IGridItemProvider)peer.GetPattern(PatternInterface.GridItem);
                        Assert.IsNotNull(gridItem);

                        Assert.AreEqual(child.GetValue(Grid.ColumnProperty), gridItem.Column);
                        Assert.AreEqual((int)child.GetValue(Grid.RowProperty) - 1, gridItem.Row);
                        Assert.AreEqual(1, gridItem.ColumnSpan);
                        Assert.AreEqual(1, gridItem.RowSpan);
                        Assert.AreEqual(calendarAutomationPeer, testPeer.GetPeerFromProvider(gridItem.ContainingGrid));
                    }
                }

                #endregion
            });

            EnqueueTestComplete();
        }
Ejemplo n.º 15
0
        public void Calendar_AutomationPeer()
        {
            Calendar calendar = new Calendar();
            Assert.IsNotNull(calendar);
            calendar.Height = 200;
            calendar.Width = 200;
            _isLoaded = false;
            DateTime date = new DateTime(2000, 2, 2);
            calendar.DisplayDate = date;
            calendar.SelectedDate = date;

            calendar.Loaded += new RoutedEventHandler(calendar_Loaded);
            CalendarAutomationPeer peer = ((CalendarAutomationPeer)CalendarAutomationPeer.CreatePeerForElement(calendar));
            Assert.IsNotNull(peer);

            TestPeer testPeer = new TestPeer(calendar);
            Assert.IsNotNull(testPeer);

            TestPanel.Children.Add(calendar);
            EnqueueConditional(IsLoaded);
            EnqueueCallback(delegate
            {
                Assert.AreEqual(peer.GetAutomationControlType(), AutomationControlType.Calendar, "Incorrect Control type for calendar");
                Assert.AreEqual(peer.GetClassName(), calendar.GetType().Name, "Incorrect ClassName value for Calendar");
                Assert.AreEqual(peer.GetName(), date.ToString(), "Incorrect Name value for CalendarPeer");
                Assert.IsTrue(peer.IsContentElement(), "Incorrect IsContentElement value");
                Assert.IsTrue(peer.IsControlElement(), "Incorrect IsControlElement value");

                #region CalendarAutomationPeer IGridProvider tests:

                IGridProvider calendarGridProvider = ((IGridProvider)peer.GetPattern(PatternInterface.Grid));
                Assert.IsNotNull(calendarGridProvider, "Incorrect calendarGridProvider value");
                Assert.AreEqual(calendar.MonthControl.MonthView.RowDefinitions.Count - 1, calendarGridProvider.RowCount, "Incorrect RowCount value");
                Assert.AreEqual(calendar.MonthControl.MonthView.ColumnDefinitions.Count, calendarGridProvider.ColumnCount, "Incorrect ColumnCount value");

                IRawElementProviderSimple cell = calendarGridProvider.GetItem(0, 3);
                Assert.IsNotNull(cell, "GetItem returned null for valid cell");
                AutomationPeer cellPeer = testPeer.GetPeerFromProvider(cell);
                Assert.AreEqual(typeof(CalendarDayButton).Name, cellPeer.GetClassName(), "GetItem did not return DayButton");

                calendar.DisplayMode = CalendarMode.Year;
                Assert.AreEqual(calendar.MonthControl.YearView.RowDefinitions.Count, calendarGridProvider.RowCount, "Incorrect RowCount value");
                Assert.AreEqual(calendar.MonthControl.YearView.ColumnDefinitions.Count, calendarGridProvider.ColumnCount, "Incorrect ColumnCount value");

                cell = calendarGridProvider.GetItem(2, 3);
                Assert.IsNotNull(cell, "GetItem returned null for valid cell");
                cellPeer = testPeer.GetPeerFromProvider(cell);
                Assert.AreEqual(typeof(CalendarButton).Name, cellPeer.GetClassName(), "GetItem did not return CalendarButton");

                calendar.DisplayMode = CalendarMode.Decade;
                Assert.AreEqual(calendar.MonthControl.YearView.RowDefinitions.Count, calendarGridProvider.RowCount, "Incorrect RowCount value");
                Assert.AreEqual(calendar.MonthControl.YearView.ColumnDefinitions.Count, calendarGridProvider.ColumnCount, "Incorrect ColumnCount value");

                cell = calendarGridProvider.GetItem(2, 3);
                Assert.IsNotNull(cell, "GetItem returned null for valid cell");
                cellPeer = testPeer.GetPeerFromProvider(cell);
                Assert.AreEqual(typeof(CalendarButton).Name, cellPeer.GetClassName(), "GetItem did not return CalendarButton");

                cell = calendarGridProvider.GetItem(10, 10);
                Assert.IsNull(cell, "GetItem returned object for invalid cell");

                #endregion

                #region CalendarAutomationPeer IMultipleViewProvider tests:
                calendar._hasFocus = true;
                IMultipleViewProvider calendarMultiViewProvider = ((IMultipleViewProvider)peer.GetPattern(PatternInterface.MultipleView));
                Assert.IsNotNull(calendarMultiViewProvider);
                Assert.IsTrue(calendarMultiViewProvider.CurrentView == (int)CalendarMode.Decade);
                Assert.IsTrue(CalendarMode.Decade.ToString() == calendarMultiViewProvider.GetViewName(calendarMultiViewProvider.CurrentView));
                calendarMultiViewProvider.SetCurrentView((int)CalendarMode.Year);
                Assert.IsTrue(calendar.DisplayMode == CalendarMode.Year);
                Assert.IsTrue(calendarMultiViewProvider.CurrentView == (int)CalendarMode.Year);
                Assert.IsTrue(CalendarMode.Year.ToString() == calendarMultiViewProvider.GetViewName(calendarMultiViewProvider.CurrentView));

                #endregion

                #region CalendarAutomationPeer ISelectionProvider tests:
                ISelectionProvider calendarSelectionProvider = ((ISelectionProvider)peer.GetPattern(PatternInterface.Selection));
                Assert.IsNotNull(calendarSelectionProvider);
                Assert.IsFalse(calendarSelectionProvider.IsSelectionRequired, "Incorrect IsSelectionRequired value");
                Assert.IsFalse(calendarSelectionProvider.CanSelectMultiple, "Incorrect CanSelectMultiple value");
                calendar.SelectionMode = CalendarSelectionMode.MultipleRange;
                Assert.IsNull(calendar.SelectedDate);
                Assert.IsTrue(calendarSelectionProvider.CanSelectMultiple, "Incorrect CanSelectMultiple value");
                calendar.SelectedDates.AddRange(new DateTime(2000, 2, 10), new DateTime(2000, 3, 30));

                IRawElementProviderSimple[] selection = calendarSelectionProvider.GetSelection();
                Assert.IsNotNull(selection, "GetSelection returned null for valid selection");
                Assert.AreEqual(selection.Length, 1, "GetSelection returned wrong number of selections");
                cellPeer = testPeer.GetPeerFromProvider(selection[0]);
                Assert.AreEqual(cellPeer.GetClassName(), typeof(CalendarButton).Name, "Incorrect name for CalendarButton");

                calendar.DisplayMode = CalendarMode.Month;
                selection = calendarSelectionProvider.GetSelection();
                Assert.IsNotNull(selection, "GetSelection returned null for valid selection");
                Assert.AreEqual(selection.Length, 31, "GetSelection returned wrong number of selections");
                cellPeer = testPeer.GetPeerFromProvider(selection[0]);
                Assert.AreEqual(cellPeer.GetClassName(), typeof(CalendarDayButton).Name, "Incorrect name for DayButton");
                #endregion

                #region CalendarAutomationPeer ITableProvider tests:

                ITableProvider calendarTableProvider = ((ITableProvider)peer.GetPattern(PatternInterface.Table));
                Assert.IsNotNull(calendarTableProvider);
                Assert.AreEqual(calendarTableProvider.RowOrColumnMajor, RowOrColumnMajor.RowMajor, "Incorrect RowOrColumnMajor value");

                IRawElementProviderSimple[] headers = calendarTableProvider.GetRowHeaders();
                Assert.IsNull(headers, "GetRowHeaders should return null");

                headers = calendarTableProvider.GetColumnHeaders();
                Assert.IsNotNull(headers, "GetColumnHeaders returned null");
                Assert.AreEqual(headers.Length, 7, "Incorrect number of column headers");
                #endregion

            });
            EnqueueTestComplete();
        }