patch 8.2.3462: ModeChanged only uses one character for new_mode and old_mode

Problem:    The ModeChanged event only uses one character for the new_mode and
            old_mode values.
Solution:   Pass one as first argument to mode(). (issue #8856)
diff --git a/src/testdir/test_edit.vim b/src/testdir/test_edit.vim
index 79ba969..20683ef 100644
--- a/src/testdir/test_edit.vim
+++ b/src/testdir/test_edit.vim
@@ -1918,7 +1918,7 @@
   func! TestMode()
     call assert_equal(g:mode_seq[g:index], get(v:event, "old_mode"))
     call assert_equal(g:mode_seq[g:index + 1], get(v:event, "new_mode"))
-    call assert_equal(mode(), get(v:event, "new_mode"))
+    call assert_equal(mode(1), get(v:event, "new_mode"))
     let g:index += 1
   endfunc
 
@@ -1930,7 +1930,11 @@
   au ModeChanged V:v :call DoIt()
   call feedkeys("Vv\<esc>", 'tnix')
   call assert_equal(4, g:count)
+  call assert_equal(len(g:mode_seq) - 1, g:index)
 
+  let g:index = 0
+  let g:mode_seq = ['n', 'i', 'niI', 'i', 'n']
+  call feedkeys("a\<C-O>l\<esc>", 'tnix')
   call assert_equal(len(g:mode_seq) - 1, g:index)
 
   au! ModeChanged