mirror of
https://github.com/neovim/neovim.git
synced 2024-12-24 21:25:04 -07:00
99b5ffd688
Co-authored-by: glepnir <glephunter@gmail.com>
47 lines
1.2 KiB
Lua
47 lines
1.2 KiB
Lua
local t = require('test.testutil')
|
|
local n = require('test.functional.testnvim')()
|
|
|
|
local clear = n.clear
|
|
local eq = t.eq
|
|
|
|
describe('vim.text', function()
|
|
before_each(clear)
|
|
|
|
describe('hexencode() and hexdecode()', function()
|
|
it('works', function()
|
|
local cases = {
|
|
{ 'Hello world!', '48656C6C6F20776F726C6421' },
|
|
{ '😂', 'F09F9882' },
|
|
}
|
|
|
|
for _, v in ipairs(cases) do
|
|
local input, output = unpack(v)
|
|
eq(output, vim.text.hexencode(input))
|
|
eq(input, vim.text.hexdecode(output))
|
|
end
|
|
end)
|
|
|
|
it('works with very large strings', function()
|
|
local input, output = string.rep('😂', 2 ^ 16), string.rep('F09F9882', 2 ^ 16)
|
|
eq(output, vim.text.hexencode(input))
|
|
eq(input, vim.text.hexdecode(output))
|
|
end)
|
|
|
|
it('errors on invalid input', function()
|
|
-- Odd number of hex characters
|
|
do
|
|
local res, err = vim.text.hexdecode('ABC')
|
|
eq(nil, res)
|
|
eq('string must have an even number of hex characters', err)
|
|
end
|
|
|
|
-- Non-hexadecimal input
|
|
do
|
|
local res, err = vim.text.hexdecode('nothex')
|
|
eq(nil, res)
|
|
eq('string must contain only hex characters', err)
|
|
end
|
|
end)
|
|
end)
|
|
end)
|