diff options
-rw-r--r-- | test/functional/normal/lang_spec.lua | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/test/functional/normal/lang_spec.lua b/test/functional/normal/lang_spec.lua new file mode 100644 index 0000000000..464b85d684 --- /dev/null +++ b/test/functional/normal/lang_spec.lua @@ -0,0 +1,59 @@ +local helpers = require('test.functional.helpers')(after_each) +local clear, insert, eq = helpers.clear, helpers.insert, helpers.eq +local execute, expect = helpers.execute, helpers.expect +local feed, eval = helpers.feed, helpers.eval +local exc_exec = helpers.exc_exec + +describe('gu and gU', function() + before_each(clear) + + it('works in any locale with default casemap', function() + eq('internal,keepascii', eval('&casemap')) + insert("iI") + feed("VgU") + expect("II") + feed("Vgu") + expect("ii") + end) + + describe('works in Turkish locale', function() + if helpers.pending_win32(pending) then return end + + clear() + if eval('has("mac")') ~= 0 then + pending("not yet on macOS", function() end) + return + end + + local err = exc_exec('lang ctype tr_TR.UTF-8') + if err ~= 0 then + pending("Locale tr_TR.UTF-8 not supported", function() end) + return + end + + before_each(function() + execute('lang ctype tr_TR.UTF-8') + end) + + it('with default casemap', function() + eq('internal,keepascii', eval('&casemap')) + -- expect ASCII behavior + insert("iI") + feed("VgU") + expect("II") + feed("Vgu") + expect("ii") + end) + + it('with casemap=""', function() + execute('set casemap=') + -- expect Turkish locale behavior + insert("iI") + feed("VgU") + expect("İI") + feed("Vgu") + expect("iı") + end) + + end) +end) |