public async Task VerifyDayItemRowHeaders()
        {
            TestCleanupWrapper cleanup;
            CalendarView       calendar = default;

            await TestServices.RunOnUIThread(() =>
            {
                calendar = new CalendarView();
                calendar.SetDisplayDate(ConvertToDateTime(1, 2016, 04, 01));
                TestServices.WindowHelper.WindowContent = calendar;
            });

            await TestServices.WindowHelper.WaitForIdle();

            await TestServices.RunOnUIThread(() =>
            {
                var dayItems = new List <CalendarViewDayItem>();
                TreeHelper.GetVisualChildrenByType(calendar, ref dayItems);

                // So since there is no mapping APIs on CalendarView, to get to the month in view, we divide by 2
                // To get to the previous/next months, we remove/add 30 days.
                var marchDay = dayItems.GetAt((int)(dayItems.Count * 0.5 - 30));
                var aprilDay = dayItems.GetAt((int)(dayItems.Count * 0.5));
                var mayDay   = dayItems.GetAt((int)(dayItems.Count * 0.5 + 30));

                // We want to validate we get different peers for day items that belong to different months.
                var marchDayPeer = FrameworkElementAutomationPeer.CreatePeerForElement(marchDay);
                var aprilDayPeer = FrameworkElementAutomationPeer.CreatePeerForElement(aprilDay);
                var mayDayPeer   = FrameworkElementAutomationPeer.CreatePeerForElement(mayDay);

                var marchRowHeaders = ((ITableItemProvider )marchDayPeer.GetPattern(
                                           PatternInterface.TableItem)).GetRowHeaderItems();
                var aprilRowHeaders = ((ITableItemProvider )aprilDayPeer.GetPattern(
                                           PatternInterface.TableItem)).GetRowHeaderItems();
                var mayRowHeaders = ((ITableItemProvider )mayDayPeer.GetPattern(
                                         PatternInterface.TableItem)).GetRowHeaderItems();

                VERIFY_ARE_EQUAL(1, marchRowHeaders.Length);
                VERIFY_ARE_EQUAL(1, aprilRowHeaders.Length);
                VERIFY_ARE_EQUAL(1, mayRowHeaders.Length);

                var bridge = new BridgeAutomationPeer();
                VERIFY_ARE_EQUAL("\u200eMarch\u200e \u200e2016",
                                 bridge.CallPeerFromProvider(marchRowHeaders[0]).GetName());
                VERIFY_ARE_EQUAL("\u200eApril\u200e \u200e2016",
                                 bridge.CallPeerFromProvider(aprilRowHeaders[0]).GetName());
                VERIFY_ARE_EQUAL("\u200eMay\u200e \u200e2016",
                                 bridge.CallPeerFromProvider(mayRowHeaders[0]).GetName());
            });
        }
Пример #2
0
 protected static Task RunOnUIThread(Action action)
 {
     return(TestServices.RunOnUIThread(action));
 }