[Windows] Fix fo setting an Entry's Keyboard to Date causes it to be interpreted as a password input #29344
Conversation
|
Hey there @@SyedAbdulAzeemSF4852! Thank you so much for your PR! Someone from the team will get assigned to your PR shortly and we'll get it reviewed. |
There was a problem hiding this comment.
Pull Request Overview
This PR fixes an issue on Windows where setting an Entry's Keyboard to Date caused it to be interpreted as a password input. Key changes include using a single, appropriate enum value for Date and Time keyboards rather than a bitwise OR of multiple values, and adding test cases in both TestCases.Shared.Tests and TestCases.HostApp to validate the fix.
- Removed bitwise OR operations in favor of specific enum assignments for Keyboard.Date and Keyboard.Time.
- Added test cases to verify that the Entry behaves correctly with a Date keyboard.
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| src/Core/src/Platform/Windows/KeyboardExtensions.cs | Updated keyboard enum assignments to use a single value instead of a bitwise OR of multiple enum values |
| src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue28975.cs | Added an automated test for validating Date keyboard behavior |
| src/Controls/tests/TestCases.HostApp/Issues/Issue28975.cs | Added a UI test case to confirm the fix in the host application |
| @@ -47,11 +47,11 @@ public static InputScopeName ToInputScopeName(this Keyboard self) | |||
| } | |||
| else if (self == Keyboard.Date) | |||
| { | |||
There was a problem hiding this comment.
Consider adding an inline comment that explains the decision to use a single enum value instead of combining them with bitwise OR, clarifying that the enum is not flagged for bitwise operations.
| { | |
| { | |
| // Assigning a single enum value. InputScopeNameValue is not flagged for bitwise operations. |
| name.NameValue = InputScopeNameValue.DateDayNumber; | ||
| } | ||
| else if (self == Keyboard.Time) | ||
| { |
There was a problem hiding this comment.
Consider adding a comment explaining that using a single enum value is intentional due to the enum not being designed for bitwise operations, which will help maintain clarity for future maintainers.
| { | |
| { | |
| // Using a single enum value here is intentional, as InputScopeNameValue is not designed for bitwise operations. |
|
/azp run MAUI-UITests-public |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
Is there a reason why the fix is not being merged? |
|
/rebase |
1ceae4f to
ecaab4f
Compare
ecaab4f to
36ff27b
Compare
🤖 AI Summary📊 Expand Full Review —
|
| # | Source | Approach | Test Result | Files Changed | Notes |
|---|---|---|---|---|---|
| PR | PR #29344 | Extract GetInputScopeNameValues() returning InputScopeNameValue[]; ToInputScopeName uses values[0]; ToInputScope adds all values to InputScope.Names |
✅ PASSED (Gate) | KeyboardExtensions.cs, Issue28975.cs (×2) |
Current PR — both methods fixed |
🔧 Fix — Analysis & Comparison
Fix Candidates
| # | Source | Approach | Test Result | Files Changed | Notes |
|---|---|---|---|---|---|
| 1 | try-fix (claude-opus-4.6) | Minimal inline fix — replace invalid bitwise OR with valid individual enum values directly at 4 bug sites, no helper/array | ✅ Pass | KeyboardExtensions.cs |
Surgical, no refactoring |
| 2 | try-fix (claude-sonnet-4.6) | Switch expression GetBuiltInInputScopeNameValue() returning InputScopeNameValue?; early-return paths in ToInputScope for Date/Time |
✅ Pass | KeyboardExtensions.cs |
Clean idiomatic C# |
| 3 | try-fix (gpt-5.3-codex) | Dictionary-based built-in keyboard mapping + explicit multi-name handling for Date/Time in ToInputScope |
✅ Pass | KeyboardExtensions.cs |
Lookup table approach |
| 4 | try-fix (gpt-5.4, sub for gemini) | Static readonly tuple mapping table (primary, extras[]) per keyboard type |
✅ Pass | KeyboardExtensions.cs |
Static table approach |
| PR | PR #29344 | Extract GetInputScopeNameValues() helper returning InputScopeNameValue[]; ToInputScopeName uses values[0]; ToInputScope adds all values |
✅ PASSED (Gate) | 3 files | Semantically richest; fixes both methods |
Cross-Pollination
| Model | Round | New Ideas? | Details |
|---|---|---|---|
| claude-opus-4.6 | 2 | No | NO NEW IDEAS |
Exhausted: Yes — all 4 models queried, no new ideas surfaced.
Selected Fix: PR #29344 — Reason: All alternative attempts fix the immediate bug (remove invalid bitwise OR), but the PR's approach is the most semantically complete — ToInputScope correctly adds all relevant InputScopeName entries for Date (day/month/year) and Time (hour/minutes), which is the correct WinUI behavior. The GetInputScopeNameValues() helper also keeps both methods in sync automatically. Attempt 1 (minimal inline) is simpler but leaves ToInputScope with only 1 scope name for Date instead of 3.
📋 Report — Final Recommendation
✅ Final Recommendation: APPROVE
Phase Status
| Phase | Status | Notes |
|---|---|---|
| Pre-Flight | ✅ COMPLETE | Windows-only bug in KeyboardExtensions.cs; 1 implementation file + HostApp/UI test pair |
| Gate | ✅ PASSED | Windows Issue28975 fails without fix, passes with fix |
| Try-Fix | ✅ COMPLETE | 4 attempts, all passing; PR's fix selected as best |
| Report | ✅ COMPLETE |
Summary
PR #29344 correctly fixes issue #28975: on Windows, Keyboard.Date caused the Entry to behave as a password field because a bitwise OR on a non-[Flags] enum accidentally produced integer 31 = InputScopeNameValue.Password. The PR eliminates all invalid bitwise OR usage in KeyboardExtensions.cs and adds a UI test that validates the fix.
Root Cause
InputScopeNameValue is not a [Flags] enum — its values are not powers of two. Combining three date-related values with bitwise OR (DateDayNumber | DateMonthNumber | DateYear = 31) accidentally equalled InputScopeNameValue.Password (31). The same invalid pattern existed for Keyboard.Time in both ToInputScopeName() and ToInputScope().
Fix Quality
The PR's fix is the best of all explored alternatives:
- Correct: Removes all invalid bitwise OR combinations; both
ToInputScopeNameandToInputScopeare fixed. - Semantically complete:
ToInputScopeforKeyboard.Datenow adds threeInputScopeNameentries (DateDayNumber,DateMonthNumber,DateYear) to theInputScope.Namescollection — the proper WinUI way to express a rich date input scope. Attempt 1 (minimal inline) only added one. - DRY: The
GetInputScopeNameValues()helper is shared by both methods, keeping them in sync. - Well-commented: The helper includes a comment explaining why multiple values are returned and why bitwise OR was wrong.
- Tested: UI test
EnsureEntryWithDateKeyboardIsNotPassworddirectly validates the regression.
Minor notes (non-blocking):
- The test only covers
Keyboard.Date(the primary bug). A test forKeyboard.Timewould be nice, but theTimecombination (TimeHour | TimeMinutesOrSeconds) does not producePassword, so the omission doesn't hide a regression. - Previous agent review requested changes because
ToInputScopewas not updated — the current PR revision addresses that concern completely.
Selected Fix: PR's fix — most semantically complete, all try-fix alternatives validated the approach but were less complete for ToInputScope.
kubaflo
left a comment
There was a problem hiding this comment.
Could you please review the AI's summary?
36ff27b to
69f1532
Compare
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 29344Or
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 29344" |
@kubaflo , I have reviewed the AI summary and implemented the suggested fix. |
|
/azp run maui-pr-uitests , maui-pr-devicetests |
|
Azure Pipelines successfully started running 2 pipeline(s). |
🚦 Gate - Test Before and After Fix📊 Expand Full Gate —
|
| Test | Without Fix (expect FAIL) | With Fix (expect PASS) |
|---|---|---|
🖥️ Issue28975 Issue28975 |
✅ FAIL — 562s | ✅ PASS — 456s |
🔴 Without fix — 🖥️ Issue28975: FAIL ✅ · 562s
Determining projects to restore...
Restored D:\a\1\s\src\Graphics\src\Graphics\Graphics.csproj (in 24.5 sec).
Restored D:\a\1\s\src\Graphics\src\Graphics.Win2D\Graphics.Win2D.csproj (in 24.59 sec).
Restored D:\a\1\s\src\Essentials\src\Essentials.csproj (in 13.03 sec).
Restored D:\a\1\s\src\Core\src\Core.csproj (in 15.81 sec).
Restored D:\a\1\s\src\Core\maps\src\Maps.csproj (in 10.13 sec).
Restored D:\a\1\s\src\Controls\tests\TestCases.HostApp\Controls.TestCases.HostApp.csproj (in 7.38 sec).
Restored D:\a\1\s\src\Controls\src\Xaml\Controls.Xaml.csproj (in 79 ms).
Restored D:\a\1\s\src\Controls\src\Core\Controls.Core.csproj (in 27 ms).
Restored D:\a\1\s\src\Controls\Maps\src\Controls.Maps.csproj (in 25 ms).
Restored D:\a\1\s\src\Controls\Foldable\src\Controls.Foldable.csproj (in 20 ms).
Restored D:\a\1\s\src\BlazorWebView\src\Maui\Microsoft.AspNetCore.Components.WebView.Maui.csproj (in 39 ms).
3 of 14 projects are up-to-date for restore.
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Graphics -> D:\a\1\s\artifacts\bin\Graphics\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Graphics.dll
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Essentials -> D:\a\1\s\artifacts\bin\Essentials\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Essentials.dll
Graphics.Win2D -> D:\a\1\s\artifacts\bin\Graphics.Win2D\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Graphics.Win2D.WinUI.Desktop.dll
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Core -> D:\a\1\s\artifacts\bin\Core\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.dll
Controls.BindingSourceGen -> D:\a\1\s\artifacts\bin\Controls.BindingSourceGen\Debug\netstandard2.0\Microsoft.Maui.Controls.BindingSourceGen.dll
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Maps -> D:\a\1\s\artifacts\bin\Maps\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Maps.dll
Controls.Core -> D:\a\1\s\artifacts\bin\Controls.Core\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.dll
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Controls.Xaml -> D:\a\1\s\artifacts\bin\Controls.Xaml\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.Xaml.dll
Controls.Foldable -> D:\a\1\s\artifacts\bin\Controls.Foldable\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.Foldable.dll
Microsoft.AspNetCore.Components.WebView.Maui -> D:\a\1\s\artifacts\bin\Microsoft.AspNetCore.Components.WebView.Maui\Debug\net10.0-windows10.0.19041.0\Microsoft.AspNetCore.Components.WebView.Maui.dll
Controls.Maps -> D:\a\1\s\artifacts\bin\Controls.Maps\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.Maps.dll
Controls.TestCases.HostApp -> D:\a\1\s\artifacts\bin\Controls.TestCases.HostApp\Debug\net10.0-windows10.0.19041.0\win-x64\Controls.TestCases.HostApp.dll
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:05:52.25
Determining projects to restore...
Restored D:\a\1\s\src\Controls\tests\CustomAttributes\Controls.CustomAttributes.csproj (in 964 ms).
Restored D:\a\1\s\src\TestUtils\src\VisualTestUtils\VisualTestUtils.csproj (in 3 ms).
Restored D:\a\1\s\src\TestUtils\src\VisualTestUtils.MagickNet\VisualTestUtils.MagickNet.csproj (in 5.11 sec).
Restored D:\a\1\s\src\Controls\tests\TestCases.WinUI.Tests\Controls.TestCases.WinUI.Tests.csproj (in 7.73 sec).
Restored D:\a\1\s\src\TestUtils\src\UITest.Core\UITest.Core.csproj (in 2 ms).
Restored D:\a\1\s\src\TestUtils\src\UITest.Appium\UITest.Appium.csproj (in 3 ms).
Restored D:\a\1\s\src\TestUtils\src\UITest.NUnit\UITest.NUnit.csproj (in 1.31 sec).
Restored D:\a\1\s\src\TestUtils\src\UITest.Analyzers\UITest.Analyzers.csproj (in 6.58 sec).
7 of 15 projects are up-to-date for restore.
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Graphics -> D:\a\1\s\artifacts\bin\Graphics\Debug\net10.0\Microsoft.Maui.Graphics.dll
Controls.CustomAttributes -> D:\a\1\s\artifacts\bin\Controls.CustomAttributes\Debug\net10.0\Controls.CustomAttributes.dll
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Essentials -> D:\a\1\s\artifacts\bin\Essentials\Debug\net10.0\Microsoft.Maui.Essentials.dll
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Core -> D:\a\1\s\artifacts\bin\Core\Debug\net10.0\Microsoft.Maui.dll
Controls.Core.Design -> D:\a\1\s\artifacts\bin\Controls.Core.Design\Debug\net472\Microsoft.Maui.Controls.DesignTools.dll
Controls.BindingSourceGen -> D:\a\1\s\artifacts\bin\Controls.BindingSourceGen\Debug\netstandard2.0\Microsoft.Maui.Controls.BindingSourceGen.dll
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Controls.Core -> D:\a\1\s\artifacts\bin\Controls.Core\Debug\net10.0\Microsoft.Maui.Controls.dll
UITest.Core -> D:\a\1\s\artifacts\bin\UITest.Core\Debug\net10.0\UITest.Core.dll
UITest.Appium -> D:\a\1\s\artifacts\bin\UITest.Appium\Debug\net10.0\UITest.Appium.dll
UITest.NUnit -> D:\a\1\s\artifacts\bin\UITest.NUnit\Debug\net10.0\UITest.NUnit.dll
VisualTestUtils -> D:\a\1\s\artifacts\bin\VisualTestUtils\Debug\netstandard2.0\VisualTestUtils.dll
VisualTestUtils.MagickNet -> D:\a\1\s\artifacts\bin\VisualTestUtils.MagickNet\Debug\netstandard2.0\VisualTestUtils.MagickNet.dll
UITest.Analyzers -> D:\a\1\s\artifacts\bin\UITest.Analyzers\Debug\netstandard2.0\UITest.Analyzers.dll
Controls.TestCases.WinUI.Tests -> D:\a\1\s\artifacts\bin\Controls.TestCases.WinUI.Tests\Debug\net10.0\Controls.TestCases.WinUI.Tests.dll
Test run for D:\a\1\s\artifacts\bin\Controls.TestCases.WinUI.Tests\Debug\net10.0\Controls.TestCases.WinUI.Tests.dll (.NETCoreApp,Version=v10.0)
VSTest version 18.0.1 (x64)
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
D:\a\1\s\artifacts\bin\Controls.TestCases.WinUI.Tests\Debug\net10.0\Controls.TestCases.WinUI.Tests.dll
NUnit Adapter 4.5.0.0: Test execution started
Running selected tests in D:\a\1\s\artifacts\bin\Controls.TestCases.WinUI.Tests\Debug\net10.0\Controls.TestCases.WinUI.Tests.dll
NUnit3TestExecutor discovered 1 of 1 NUnit test cases using Current Discovery mode, Non-Explicit run
>>>>> 3/29/2026 7:36:26 PM FixtureSetup for Issue28975(Windows)
>>>>> 3/29/2026 7:36:36 PM EnsureEntryWithDateKeyboardIsNotPassword Start
>>>>> 3/29/2026 7:36:38 PM EnsureEntryWithDateKeyboardIsNotPassword Stop
>>>>> 3/29/2026 7:36:38 PM Log types:
Failed EnsureEntryWithDateKeyboardIsNotPassword [2 s]
Error Message:
Assert.That(App.FindElement("DateEntry").GetText(), Is.EqualTo("2023-10-01"))
String lengths are both 10. Strings differ at index 0.
Expected: "2023-10-01"
But was: "●●●●●●●●●●"
-----------^
Stack Trace:
at Microsoft.Maui.TestCases.Tests.Issues.Issue28975.EnsureEntryWithDateKeyboardIsNotPassword() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue28975.cs:line 21
1) at Microsoft.Maui.TestCases.Tests.Issues.Issue28975.EnsureEntryWithDateKeyboardIsNotPassword() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue28975.cs:line 21
NUnit Adapter 4.5.0.0: Test execution complete
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 10.0.0)
[xUnit.net 00:00:00.10] Discovering: Controls.TestCases.WinUI.Tests
[xUnit.net 00:00:00.28] Discovered: Controls.TestCases.WinUI.Tests
Total tests: 1
Failed: 1
Test Run Failed.
Total time: 34.1525 Seconds
🟢 With fix — 🖥️ Issue28975: PASS ✅ · 456s
Determining projects to restore...
All projects are up-to-date for restore.
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Graphics -> D:\a\1\s\artifacts\bin\Graphics\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Graphics.dll
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Essentials -> D:\a\1\s\artifacts\bin\Essentials\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Essentials.dll
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Graphics.Win2D -> D:\a\1\s\artifacts\bin\Graphics.Win2D\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Graphics.Win2D.WinUI.Desktop.dll
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Core -> D:\a\1\s\artifacts\bin\Core\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.dll
Controls.BindingSourceGen -> D:\a\1\s\artifacts\bin\Controls.BindingSourceGen\Debug\netstandard2.0\Microsoft.Maui.Controls.BindingSourceGen.dll
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Maps -> D:\a\1\s\artifacts\bin\Maps\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Maps.dll
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Controls.Core -> D:\a\1\s\artifacts\bin\Controls.Core\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.dll
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Controls.Xaml -> D:\a\1\s\artifacts\bin\Controls.Xaml\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.Xaml.dll
Microsoft.AspNetCore.Components.WebView.Maui -> D:\a\1\s\artifacts\bin\Microsoft.AspNetCore.Components.WebView.Maui\Debug\net10.0-windows10.0.19041.0\Microsoft.AspNetCore.Components.WebView.Maui.dll
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Controls.Maps -> D:\a\1\s\artifacts\bin\Controls.Maps\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.Maps.dll
Controls.Foldable -> D:\a\1\s\artifacts\bin\Controls.Foldable\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.Foldable.dll
Controls.TestCases.HostApp -> D:\a\1\s\artifacts\bin\Controls.TestCases.HostApp\Debug\net10.0-windows10.0.19041.0\win-x64\Controls.TestCases.HostApp.dll
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:05:36.75
Determining projects to restore...
All projects are up-to-date for restore.
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Graphics -> D:\a\1\s\artifacts\bin\Graphics\Debug\net10.0\Microsoft.Maui.Graphics.dll
Controls.CustomAttributes -> D:\a\1\s\artifacts\bin\Controls.CustomAttributes\Debug\net10.0\Controls.CustomAttributes.dll
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Essentials -> D:\a\1\s\artifacts\bin\Essentials\Debug\net10.0\Microsoft.Maui.Essentials.dll
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Core -> D:\a\1\s\artifacts\bin\Core\Debug\net10.0\Microsoft.Maui.dll
Controls.Core.Design -> D:\a\1\s\artifacts\bin\Controls.Core.Design\Debug\net472\Microsoft.Maui.Controls.DesignTools.dll
Controls.BindingSourceGen -> D:\a\1\s\artifacts\bin\Controls.BindingSourceGen\Debug\netstandard2.0\Microsoft.Maui.Controls.BindingSourceGen.dll
##vso[build.updatebuildnumber]10.0.60-ci+azdo.13684015
Controls.Core -> D:\a\1\s\artifacts\bin\Controls.Core\Debug\net10.0\Microsoft.Maui.Controls.dll
UITest.Core -> D:\a\1\s\artifacts\bin\UITest.Core\Debug\net10.0\UITest.Core.dll
UITest.Appium -> D:\a\1\s\artifacts\bin\UITest.Appium\Debug\net10.0\UITest.Appium.dll
UITest.NUnit -> D:\a\1\s\artifacts\bin\UITest.NUnit\Debug\net10.0\UITest.NUnit.dll
VisualTestUtils -> D:\a\1\s\artifacts\bin\VisualTestUtils\Debug\netstandard2.0\VisualTestUtils.dll
VisualTestUtils.MagickNet -> D:\a\1\s\artifacts\bin\VisualTestUtils.MagickNet\Debug\netstandard2.0\VisualTestUtils.MagickNet.dll
UITest.Analyzers -> D:\a\1\s\artifacts\bin\UITest.Analyzers\Debug\netstandard2.0\UITest.Analyzers.dll
Controls.TestCases.WinUI.Tests -> D:\a\1\s\artifacts\bin\Controls.TestCases.WinUI.Tests\Debug\net10.0\Controls.TestCases.WinUI.Tests.dll
Test run for D:\a\1\s\artifacts\bin\Controls.TestCases.WinUI.Tests\Debug\net10.0\Controls.TestCases.WinUI.Tests.dll (.NETCoreApp,Version=v10.0)
VSTest version 18.0.1 (x64)
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
D:\a\1\s\artifacts\bin\Controls.TestCases.WinUI.Tests\Debug\net10.0\Controls.TestCases.WinUI.Tests.dll
NUnit Adapter 4.5.0.0: Test execution started
Running selected tests in D:\a\1\s\artifacts\bin\Controls.TestCases.WinUI.Tests\Debug\net10.0\Controls.TestCases.WinUI.Tests.dll
NUnit3TestExecutor discovered 1 of 1 NUnit test cases using Current Discovery mode, Non-Explicit run
>>>>> 3/29/2026 7:44:03 PM FixtureSetup for Issue28975(Windows)
>>>>> 3/29/2026 7:44:13 PM EnsureEntryWithDateKeyboardIsNotPassword Start
>>>>> 3/29/2026 7:44:16 PM EnsureEntryWithDateKeyboardIsNotPassword Stop
Passed EnsureEntryWithDateKeyboardIsNotPassword [2 s]
NUnit Adapter 4.5.0.0: Test execution complete
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 10.0.0)
[xUnit.net 00:00:00.10] Discovering: Controls.TestCases.WinUI.Tests
[xUnit.net 00:00:00.31] Discovered: Controls.TestCases.WinUI.Tests
Test Run Successful.
Total tests: 1
Passed: 1
Total time: 26.9427 Seconds
📁 Fix files reverted (2 files)
eng/pipelines/ci-copilot.ymlsrc/Core/src/Platform/Windows/KeyboardExtensions.cs
Note
Are you waiting for the changes in this PR to be merged?
It would be very helpful if you could test the resulting artifacts from this PR and let us know in a comment if this change resolves your issue. Thank you!
Issue Details
Root Cause
Description of change
Issues Fixed
Fixes #28975
Validated the behaviour in the following platforms
Output
Before.mp4
After.mp4