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(); }
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); }); }
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(); }
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()); }
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(); }