コード例 #1
0
        public async Task CanOpenFlyoutByTapping()
        {
            TestCleanupWrapper cleanup;

            Grid       rootPanel            = null;
            Grid       root                 = null;
            TextBlock  dateText             = null;
            FlyoutBase flyout               = null;
            CalendarDatePickerHelper helper = new CalendarDatePickerHelper();
            await helper.PrepareLoadedEvent();

            Windows.UI.Xaml.Controls.CalendarDatePicker cp = await helper.GetCalendarDatePicker();

            rootPanel = await CreateTestResources();

            // load into visual tree
            await RunOnUIThread(() =>
            {
                rootPanel.Children.Append(cp);
            });

            helper.WaitForLoaded();

            await TestServices.WindowHelper.WaitForIdle();

            await RunOnUIThread(() =>
            {
                root     = Grid(helper.GetTemplateChild("Root"));
                dateText = TextBlock(helper.GetTemplateChild("DateText"));

                VERIFY_IS_NOT_NULL(root);
                VERIFY_IS_NOT_NULL(dateText);

                flyout = FlyoutBase.GetAttachedFlyout(root);
                VERIFY_IS_NOT_NULL(flyout);
            });

            helper.PrepareOpenedEvent();

            TestServices.InputHelper.Tap(dateText);

            helper.WaitForOpened();

            await TestServices.WindowHelper.WaitForIdle();

            helper.PrepareClosedEvent();

            await RunOnUIThread(() =>
            {
                // close the flyout before exiting.
                flyout.Hide();
            });

            helper.WaitForClosed();

            await TestServices.WindowHelper.WaitForIdle();
        }
コード例 #2
0
        public async Task SettingCalendarIdentifierChangesDateFormat()
        {
            TestCleanupWrapper cleanup;

            Grid      rootPanel = null;
            TextBlock dateText  = null;

            CalendarDatePickerHelper helper = new CalendarDatePickerHelper();
            await helper.PrepareLoadedEvent();

            Windows.UI.Xaml.Controls.CalendarDatePicker cp = await helper.GetCalendarDatePicker();

            rootPanel = await CreateTestResources();

            // load into visual tree
            await RunOnUIThread(() =>
            {
                rootPanel.Children.Append(cp);
                cp.MinDate = ConvertToDateTime(1, 2000, 1, 1);
                cp.MaxDate = ConvertToDateTime(1, 2002, 1, 1);
                cp.Date    = ConvertToDateTime(1, 2001, 1, 1);
            });

            helper.WaitForLoaded();

            await TestServices.WindowHelper.WaitForIdle();

            await RunOnUIThread(() =>
            {
                dateText = TextBlock(helper.GetTemplateChild("DateText"));
                VERIFY_IS_NOT_NULL(dateText);
            });

            await TestServices.WindowHelper.WaitForIdle();

            await RunOnUIThread(() =>
            {
                cp.DateFormat = "{dayofweek.full}, {month.full} {day.integer}, {year.full}";                 // equivalent to "longdate"
                cp.UpdateLayout();

                cp.CalendarIdentifier = Windows.Globalization.CalendarIdentifiers.Taiwan;

                LOG_OUTPUT("actual text: %s.", dateText.Text);
                VERIFY_ARE_EQUAL("Monday, January 1, 90", dateText.Text);
            });
        }
コード例 #3
0
        public async Task CanPresetDate()
        {
            TestCleanupWrapper cleanup;

            TestServices.WindowHelper.SetWindowSizeOverride(new Size(400, 400));

            Grid rootPanel = null;

            CalendarDatePickerHelper helper = new CalendarDatePickerHelper();

            Windows.UI.Xaml.Controls.CalendarDatePicker cp = await helper.GetCalendarDatePicker();

            CalendarView calendarView = null;
            TextBlock    dateText     = null;

            rootPanel = await CreateTestResources();

            var date1 = ConvertToDateTime(1, 2000, 10, 21);
            var date2 = ConvertToDateTime(1, 2003, 1, 1);

            // load into visual tree
            await RunOnUIThread(() =>
            {
                rootPanel.Children.Append(cp);
                cp.Date           = date1;
                cp.IsCalendarOpen = true;
            });

            await TestServices.WindowHelper.WaitForIdle();

            await RunOnUIThread(() =>
            {
                var root = Grid(helper.GetTemplateChild("Root"));
                VERIFY_IS_NOT_NULL(root);

                var flyout = FlyoutBase.GetAttachedFlyout(root);
                VERIFY_IS_NOT_NULL(flyout);

                var content  = Flyout(flyout).Content;
                calendarView = CalendarView(content);
                VERIFY_IS_NOT_NULL(calendarView);

                dateText = TextBlock(helper.GetTemplateChild("DateText"));

                VERIFY_IS_NOT_NULL(dateText);
            });

            await RunOnUIThread(() =>
            {
                LOG_OUTPUT("actual text: %s.", dateText.Text);
                // Note: below string contains invisible unicode characters (BiDi characters),
                // you should always use copy&paste to get the string, directly
                // type the string will cause the string comparison fails.
                VERIFY_IS_TRUE(dateText.Text == "‎10‎/‎21‎/‎2000");

                VERIFY_ARE_EQUAL(calendarView.SelectedDates.Count, 1);
                VERIFY_DATES_ARE_EQUAL(calendarView.SelectedDates.GetAt(0).UniversalTime(), date1.UniversalTime());
            });

            await TestServices.WindowHelper.WaitForIdle();

            await RunOnUIThread(() =>
            {
                cp.Date = null;
            });

            await TestServices.WindowHelper.WaitForIdle();

            await RunOnUIThread(() =>
            {
                LOG_OUTPUT("actual text: %s.", dateText.Text);
                // clear the Date property will display placehoder text.
                VERIFY_ARE_EQUAL(dateText.Text, cp.PlaceholderText);

                VERIFY_ARE_EQUAL(calendarView.SelectedDates.Count, 0);
            });

            await TestServices.WindowHelper.WaitForIdle();

            await RunOnUIThread(() =>
            {
                cp.Date = date2;
            });

            await TestServices.WindowHelper.WaitForIdle();

            await RunOnUIThread(() =>
            {
                LOG_OUTPUT("actual text: %s.", dateText.Text);
                // Note: below string contains invisible unicode characters (BiDi characters),
                // you should always use copy&paste to get the string, directly
                // type the string will cause the string comparison fails.
                VERIFY_IS_TRUE(dateText.Text == "‎1‎/‎1‎/‎2003");

                VERIFY_ARE_EQUAL(calendarView.SelectedDates.Count, 1);
                VERIFY_DATES_ARE_EQUAL(calendarView.SelectedDates.GetAt(0).UniversalTime(), date2.UniversalTime());

                cp.IsCalendarOpen = false;
            });


            await TestServices.WindowHelper.WaitForIdle();
        }
コード例 #4
0
        public async Task PressingDoesNotOpenMenuFlyout()
        {
            TestCleanupWrapper cleanup;

            Grid       rootPanel = null;
            Grid       root      = null;
            TextBlock  dateText  = null;
            FlyoutBase flyout    = null;

            CalendarDatePickerHelper helper = new CalendarDatePickerHelper();
            await helper.PrepareLoadedEvent();

            Windows.UI.Xaml.Controls.CalendarDatePicker cp = await helper.GetCalendarDatePicker();

            var gridPointerPressedEvent        = new Event();
            var gridPointerPressedRegistration = CreateSafeEventRegistration <UIElement, PointerEventHandler>("PointerPressed");

            rootPanel = await CreateTestResources();

            // load into visual tree
            await RunOnUIThread(() =>
            {
                rootPanel.Children.Append(cp);
                cp.MinDate = ConvertToDateTime(1, 2000, 1, 1);
                cp.MaxDate = ConvertToDateTime(1, 2002, 1, 1);
                cp.Date    = ConvertToDateTime(1, 2001, 1, 1);

                gridPointerPressedRegistration.Attach(rootPanel,
                                                      (object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs args) =>
                {
                    gridPointerPressedEvent.Set();
                });
            });

            helper.WaitForLoaded();

            await TestServices.WindowHelper.WaitForIdle();

            await RunOnUIThread(() =>
            {
                root     = Grid(helper.GetTemplateChild("Root"));
                dateText = TextBlock(helper.GetTemplateChild("DateText"));

                VERIFY_IS_NOT_NULL(root);
                VERIFY_IS_NOT_NULL(dateText);

                flyout = FlyoutBase.GetAttachedFlyout(root);
                VERIFY_IS_NOT_NULL(flyout);
            });

            await TestServices.WindowHelper.WaitForIdle();

            helper.PrepareOpenedEvent();

            TestServices.InputHelper.Tap(dateText);

            helper.WaitForOpened();

            await TestServices.WindowHelper.WaitForIdle();

            helper.PrepareClosedEvent();

            await RunOnUIThread(() =>
            {
                // close the flyout before exiting.
                flyout.Hide();
            });

            helper.WaitForClosed();

            await TestServices.WindowHelper.WaitForIdle();

            VERIFY_IS_FALSE(gridPointerPressedEvent.HasFired());
        }
コード例 #5
0
        public async Task CanCloseFlyoutBySelectingADate()
        {
            TestCleanupWrapper cleanup;

            Grid                     rootPanel    = null;
            TextBlock                dateText     = null;
            Grid                     root         = null;
            FlyoutBase               flyout       = null;
            CalendarView             calendarView = null;
            CalendarDatePickerHelper helper       = new CalendarDatePickerHelper();
            await helper.PrepareLoadedEvent();

            Windows.UI.Xaml.Controls.CalendarDatePicker cp = await helper.GetCalendarDatePicker();

            rootPanel = await CreateTestResources();

            // load into visual tree
            await RunOnUIThread(() =>
            {
                cp.IsOutOfScopeEnabled = false;
                rootPanel.Children.Append(cp);
            });

            helper.WaitForLoaded();

            await TestServices.WindowHelper.WaitForIdle();

            await RunOnUIThread(() =>
            {
                dateText = TextBlock(helper.GetTemplateChild("DateText"));
                VERIFY_IS_NOT_NULL(dateText);

                root = Grid(helper.GetTemplateChild("Root"));
                VERIFY_IS_NOT_NULL(root);

                flyout = FlyoutBase.GetAttachedFlyout(root);
                VERIFY_IS_NOT_NULL(flyout);

                var content  = Flyout(flyout).Content;
                calendarView = CalendarView(content);
                VERIFY_IS_NOT_NULL(calendarView);


                calendarView.MinDate = ConvertToDateTime(1, 2000, 1, 1);
                calendarView.MaxDate = ConvertToDateTime(1, 2001, 1, 1);
                calendarView.UpdateLayout();
            });


            TestServices.InputHelper.Tap(dateText);

            await TestServices.WindowHelper.WaitForIdle();

            helper.PrepareClosedEvent();

            await RunOnUIThread(() =>
            {
                calendarView.SelectedDates.Append(ConvertToDateTime(1, 2000, 10, 21));
            });

            helper.WaitForClosed();

            await RunOnUIThread(() =>
            {
                LOG_OUTPUT("actual text: %s.", dateText.Text);
                // Note: below string contains invisible unicode characters (BiDi characters),
                // you should always use copy&paste to get the string, directly
                // type the string will cause the string comparison fails.
                //VERIFY_IS_TRUE(dateText.Text == "‎10‎/‎21‎/‎2000");

                dateText.Text.Should().Be("10/21/2000");                 // UNO: Those BiDi characters are not emitted by Uno
            });

            await RunOnUIThread(() =>
            {
                // disable CP to make sure input pane is not open during clean up.
                cp.IsEnabled = false;
            });

            await TestServices.WindowHelper.WaitForIdle();
        }