neovim/test/functional/editor/lang_spec.lua
dundargoc 052498ed42 test: improve test conventions
Specifically, functions that are run in the context of the test runner
are put in module `test/testutil.lua` while the functions that are run
in the context of the test session are put in
`test/functional/testnvim.lua`.

Closes https://github.com/neovim/neovim/issues/27004.
2024-04-23 18:17:04 +02:00

66 lines
1.5 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 t = require('test.testutil')
local n = require('test.functional.testnvim')()
local clear, insert, eq = n.clear, n.insert, t.eq
local command, expect = n.command, n.expect
local feed, eval = n.feed, n.eval
local exc_exec = n.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)