- 
                Notifications
    
You must be signed in to change notification settings  - Fork 725
 
Fixes #4223. SendKeys scenario is broken and does not support surrogate pairs #4224
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
| 
           The failed unit test is from the FluentTests, fixed in the #4210, not related with the unit tests fixed in this PR.  | 
    
| 
           @BDisp please resolve conflicts  | 
    
…zero) (gui-cs#4225) * Consider width2 chars that are not IsBmp * Apply same fix in WindowsDriver * Explicitly use type of local variable * Revert changes to WindowsDriver * Assume we are running in a terminal that supports true color by default unless user explicitly forces 16 * Switch to SetAttribute and WriteConsole instead of WriteConsoleOutput for 16 color mode * Fix some cursor issues (WIP) * Remove concept of 'dirty rows' from v2 as its never actually used * Remove damageRegion as it does nothing * Make string builder to console writing simpler * Radically simplify Write method * Simplify conditional logic * Simplify restoring cursor position * Reference local variable for console buffer * Reduce calls to ConsoleWrite by accumulating till attribute changes * When resizing v2 16 color mode on windows, recreate the back buffer to match its size * Fixes for VTS enabled * Fix _lastSize never being assigned * Fixes VTS for Force16Colors * Fixes force16Colors in VTS * Fixes escape sequences always echoing in non-VTS * Force Force16Colors in non-VTS. It have a bug in adding a newline in the last line * WIP Add base class for NetOutput * Abstract away how we change attribute * WIP - Make WindowsOutput use base class * WIP working to fix set cursor position * Remove commented out code * Fixes legacy output mode * Fixes size with no alt buffer supported on VTS and size restore after maximized. * Fix set cursor which also fixes the broken surrogate pairs * Add force parameter * Fixes an issue that only happens with Windows Terminal when paste surrogate pairs by press Ctrl+V * In Windows escape sequences must be sent during the lifetime of the console which is created in input handle * Ensure flush the input buffer before reset the console * Flush input buffer before reset console in v2win * Fixes issue in v2net not being refreshing the menu bar at start * Only force layout and draw on size changed. * Fix v2net issue not draw first line by forcing set cursor position * Set _lastCursorPosition nullable and remove bool force from set cursor position * Remove force parameter * Add v2 version of fake driver attribute * Make direct replacement and wire up window resizing events * Update casts to use V2 fake driver instead * Adjust interfaces to expose less internals * Fix not raising iteration event in v2 * WIP investigate what it takes to do resize and redraw using TextAlignment_Centered as example * Sketch adding component factory * Create relevant fake component factories * Add window size monitor into factory * Fake size monitor injecting * Add helper for faking console resize in AutoInitShutdown tests * Fix size setting in FakeDriverV2 * Switch to new method * Fix IsLegacy becoming false when using blank constructor * Fix for Ready not being raised when showing same top twice also fixes garbage collection issue if running millions of top levels * Fix tests * Remove auto init * Restore conditional compilation stuff * Restore 'if running unit tests' logic * Check only for the output being specific classes for the suppression * Fix ShadowView blowing up with index out of bounds error * Fix resize in fluent tests * Fix for people using Iteration call directly * Fix more calls to iteration to use AutoInitShutdownAttribute.RunIteration (); * Add comment * Remove assumption that Run with prior view not disposed should throw * Fix timings in Dialog_Opened_From_Another_Dialog * Fix Zero_Buttons_Works * Standardize and fix Button_IsDefault_True_Return_His_Index_On_Accepting * Fix iteration counts on MessageBoxTests * Fix WizartTests and DrawTests_Ruler * Implement SendKeys into ConsoleDriverFacade * Fix SendKeys in console driver facade such that FileDialogTests works Fix when Clip is null in popover * Add missing dispose call to test * Fix support for Esc in facade SendKeys * Fix AutocompleteTests * Fix various tests * Replace LayoutAndDraw with run iteration * Fix draw issues * fix draw order * Fix run iteration calls * Fix unit tests * Fix SendKeys in facade. * Manipulate upper and lower cases. * Add IsValidInput method to the interface. * Fix SendKeys scenario * Fixes surrogate pairs in the label * Make tests more sensible - they are testing draw functionality. Callbacks do not need to happen in Iteration method * Fix tests and harden cleanup in AutoInitShutdownAttribute v2 lifecycle dispose * Delete extra create input call * Fix mocks and order of exceptions thrown in Run when things are not initialized * Revert use of `MapConsoleKeyInfoToKeyCode` * Ignore casing as it is not what test is really about * Clear application top and top levels before each auto init shutdown test * Fix for unstable tests * Restore actually working SendKeys code * option to pass logger in fluent ctor * restore ToArray * Fix SendKeys method and add extension to unit test * Leverage the EscSeqUtils.MapConsoleKeyInfo method to avoid duplicate code * Remove unnecessary hack * Using only KeyCode for rKeys * Recover modifier keys in surrogate pairs * Reformat * Remove iteration limit for benchmarking in v2 * remove iteration delay to identify bugs * Remove nudge to unique key and make Then run on UI thread * fix fluid assertions * Ensure UI operations all happen on UI thread * Add explicit error for WaitIteration during an invoke * Remove timeout added for debug * Catch failing asserts better * Fix screenshot * Fix null ref * Fix race condition in processing input * Test fixing * Standardize asserts * Remove calls to layout and draw, remove pointless lock and enable reading Cancelled from Dialog even if it is disposed * fix bad merge * Make logs access threadsafe * add extra wait to remove race between iteration end and assert * Code cleanup * Remove test for crash on access Cancelled after dispose as this is no longer a restriction * Change resize console to run on UI thread - fixing race condition with redrawing * Restore original frame rate after test * Restore nudge to unique key * Code Cleanup * Fix for cascading failures when an assert fails in a specific test * fix for bad merge * Address PR feedback * Move classes to seperate files and add xmldoc * xml doc warnings * More xml comments docs * Fix spelling --------- Co-authored-by: BDisp <[email protected]>
…d executable (gui-cs#4232) * Fixes gui-cs#4231. NativeAot project throws when running the published executable * Code cleanup --------- Co-authored-by: Tig <[email protected]>
…sor when moving if Force16Colors is true (gui-cs#4237) * Fixes gui-cs#4236. CursesDriver erase the previous text under the cursor when moving if Force16Colors is true * Still trying to fix fluent unit tests * Fix nullable issue --------- Co-authored-by: Tig <[email protected]>
          
 Done.  | 
    
| 
           Seems integration test id still failing.  | 
    
          
 I reverted some changes done before the fluent tests was fixed and now the CI are all green.  | 
    
| 
           @BDisp Please fix the non-parallel test failures.  | 
    
          
 There is no problem with the non-parallel test. It was some race condition that causes the failure. Maybe some CI running at same time from various other PR branches when updating. Now it pass.  | 
    
Fixes
Proposed Changes/Todos
Pull Request checklist:
CTRL-K-Dto automatically reformat your files before committing.dotnet testbefore commit///style comments)