diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/ui/inccommand_spec.lua | 18 | ||||
-rw-r--r-- | test/unit/message_spec.lua | 49 |
2 files changed, 58 insertions, 9 deletions
diff --git a/test/functional/ui/inccommand_spec.lua b/test/functional/ui/inccommand_spec.lua index 6da22b6a3a..3b31da0397 100644 --- a/test/functional/ui/inccommand_spec.lua +++ b/test/functional/ui/inccommand_spec.lua @@ -482,7 +482,7 @@ describe(":substitute, 'inccommand' preserves undo", function() {15:~ }| {15:~ }| {15:~ }| - Already...st change | + Already ...t change | ]]) else screen:expect([[ @@ -495,7 +495,7 @@ describe(":substitute, 'inccommand' preserves undo", function() {15:~ }| {15:~ }| {15:~ }| - Already...st change | + Already ...t change | ]]) end end @@ -534,7 +534,7 @@ describe(":substitute, 'inccommand' preserves undo", function() {15:~ }| {15:~ }| {15:~ }| - Already...st change | + Already ...t change | ]]) else screen:expect([[ @@ -547,7 +547,7 @@ describe(":substitute, 'inccommand' preserves undo", function() {15:~ }| {15:~ }| {15:~ }| - Already...st change | + Already ...t change | ]]) end @@ -574,7 +574,7 @@ describe(":substitute, 'inccommand' preserves undo", function() {15:~ }| {15:~ }| {15:~ }| - Already...st change | + Already ...t change | ]]) else screen:expect([[ @@ -587,7 +587,7 @@ describe(":substitute, 'inccommand' preserves undo", function() {15:~ }| {15:~ }| {15:~ }| - Already...st change | + Already ...t change | ]]) end screen:detach() @@ -616,7 +616,7 @@ describe(":substitute, 'inccommand' preserves undo", function() {15:~ }| {15:~ }| {15:~ }| - Already...st change | + Already ...t change | ]]) else screen:expect([[ @@ -629,7 +629,7 @@ describe(":substitute, 'inccommand' preserves undo", function() {15:~ }| {15:~ }| {15:~ }| - Already...st change | + Already ...t change | ]]) end @@ -653,7 +653,7 @@ describe(":substitute, 'inccommand' preserves undo", function() {15:~ }| {15:~ }| {15:~ }| - Already...st change | + Already ...t change | ]]) end screen:detach() diff --git a/test/unit/message_spec.lua b/test/unit/message_spec.lua new file mode 100644 index 0000000000..23d342c027 --- /dev/null +++ b/test/unit/message_spec.lua @@ -0,0 +1,49 @@ +local helpers = require("test.unit.helpers") + +local ffi = helpers.ffi +local eq = helpers.eq +local to_cstr = helpers.to_cstr + +local cimp = helpers.cimport('./src/nvim/message.h') + +describe('trunc_string', function() + local buffer = ffi.typeof('char_u[40]') + + local function test_inplace(s, expected) + local buf = buffer() + ffi.C.strcpy(buf, s) + cimp.trunc_string(buf, buf, 20, 40) + eq(expected, ffi.string(buf)) + end + + local function test_copy(s, expected) + local buf = buffer() + cimp.trunc_string(to_cstr(s), buf, 20, 40) + eq(expected, ffi.string(buf)) + end + + local permutations = { + { ['desc'] = 'in-place', ['func'] = test_inplace }, + { ['desc'] = 'by copy', ['func'] = test_copy }, + } + + for _,t in ipairs(permutations) do + describe('populates buf '..t.desc, function() + it('with a small string', function() + t.func('text', 'text') + end) + + it('with a medium string', function() + t.func('a short text', 'a short text') + end) + + it('with a string exactly the truncate size', function() + t.func('a text tha just fits', 'a text tha just fits') + end) + + it('with a string that must be truncated', function() + t.func('a text that nott fits', 'a text t...nott fits') + end) + end) + end +end) |