neovim/test/functional/editor/lang_spec.lua
Justin M. Keyes d8de4eb685
test: reorg #15698
Problem:
Subdirectories like "visual", "insert", "normal" encourage people to
separate *related* tests for no good reason.  Typically the _mode_ is
not the relevant topic of a test (and when it is, _then_ create
an appropriate describe() or it()).

Solution:
- Delete the various `test/functional/<mode>/` subdirectories, move
  their tests to more meaningful topics.
- Rename `…/normal/` to `…/editor/`.
  - Move or merge `…/visual/*` and `…/insert/*` tests into here where
    appropriate.
- Rename `…/eval/` to `…/vimscript/`.
  - Move `…/viml/*` into here also.

* test(reorg): insert/* => editor/mode_insert_spec.lua
* test(reorg): cmdline/* => editor/mode_cmdline_spec.lua
* test(reorg): eval core tests => eval_spec.lua
2021-09-17 09:16:40 -07:00

64 lines
1.6 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local helpers = require('test.functional.helpers')(after_each)
local clear, insert, eq = helpers.clear, helpers.insert, helpers.eq
local command, expect = helpers.command, 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()
clear()
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()
command('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()
command('set casemap=')
-- expect either Turkish locale behavior or ASCII behavior
local iupper = eval("toupper('i')")
if iupper == "İ" then
insert("iI")
feed("VgU")
expect("İI")
feed("Vgu")
expect("iı")
elseif iupper == "I" then
insert("iI")
feed("VgU")
expect("II")
feed("Vgu")
expect("ii")
else
error("expected toupper('i') to be either 'I' or 'İ'")
end
end)
end)
end)