From d70a322c40e849f98ad573d2a37dc680c5616b26 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 31 Jan 2016 01:25:00 +0300 Subject: eval: Add special variables v:false, v:null, v:none --- test/functional/eval/string_spec.lua | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'test/functional/eval/string_spec.lua') diff --git a/test/functional/eval/string_spec.lua b/test/functional/eval/string_spec.lua index f7f5dca70a..fe79708910 100644 --- a/test/functional/eval/string_spec.lua +++ b/test/functional/eval/string_spec.lua @@ -28,6 +28,13 @@ describe('string() function', function() eq('0.0', eval('string(0.0)')) end) + it('dumps special v: values', function() + eq('v:true', eval('string(v:true)')) + eq('v:false', eval('string(v:false)')) + eq('v:none', eval('string(v:none)')) + eq('v:null', eval('string(v:null)')) + end) + it('dumps values with at most six digits after the decimal point', function() eq('1.234568e-20', funcs.string(1.23456789123456789123456789e-020)) -- cgit From 6167ce6df2753d5474ad49aea19f5957128ab015 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sat, 6 Feb 2016 02:46:23 +0300 Subject: eval: Remove v:none To get v:none back just rever this commit. This will not make json*() functions compatible with Vim though. --- test/functional/eval/string_spec.lua | 1 - 1 file changed, 1 deletion(-) (limited to 'test/functional/eval/string_spec.lua') diff --git a/test/functional/eval/string_spec.lua b/test/functional/eval/string_spec.lua index fe79708910..0c4ff87231 100644 --- a/test/functional/eval/string_spec.lua +++ b/test/functional/eval/string_spec.lua @@ -31,7 +31,6 @@ describe('string() function', function() it('dumps special v: values', function() eq('v:true', eval('string(v:true)')) eq('v:false', eval('string(v:false)')) - eq('v:none', eval('string(v:none)')) eq('v:null', eval('string(v:null)')) end) -- cgit From bda0165514a582978c2da672b528562df78a2d1a Mon Sep 17 00:00:00 2001 From: ZyX Date: Mon, 4 Apr 2016 04:53:07 +0300 Subject: eval/encode: Make sure that encoder can encode NULL variables Adds two undocumented v: variables: _null_list and _null_dict because I do not know a reproducible way to get such lists (though I think I heard about this) and dictionaries (do not remember hearing about them). NULL strings are obtained using $XXX_UNEXISTENT_VAR_XXX. Fixes crash in json_encode($XXX_UNEXISTENT_VAR_XXX). Other added tests worked fine before this commit. --- test/functional/eval/string_spec.lua | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'test/functional/eval/string_spec.lua') diff --git a/test/functional/eval/string_spec.lua b/test/functional/eval/string_spec.lua index 0c4ff87231..20a800cde0 100644 --- a/test/functional/eval/string_spec.lua +++ b/test/functional/eval/string_spec.lua @@ -84,6 +84,18 @@ describe('string() function', function() eq('\'\'\'b\'\'\'\'d\'', funcs.string('\'b\'\'d')) eq('\'a\'\'b\'\'c\'\'d\'', funcs.string('a\'b\'c\'d')) end) + + it('dumps NULL strings', function() + eq('\'\'', eval('string($XXX_UNEXISTENT_VAR_XXX)')) + end) + + it('dumps NULL lists', function() + eq('[]', eval('string(v:_null_list)')) + end) + + it('dumps NULL dictionaries', function() + eq('{}', eval('string(v:_null_dict)')) + end) end) describe('used to represent funcrefs', function() -- cgit From a64114eba017c0db3d1849186c9c54fb09308761 Mon Sep 17 00:00:00 2001 From: ZyX Date: Mon, 18 Apr 2016 01:37:21 +0300 Subject: functests: Make json_functions_spec use new NIL where appropriate --- test/functional/eval/string_spec.lua | 3 +++ 1 file changed, 3 insertions(+) (limited to 'test/functional/eval/string_spec.lua') diff --git a/test/functional/eval/string_spec.lua b/test/functional/eval/string_spec.lua index 20a800cde0..0fd7587edb 100644 --- a/test/functional/eval/string_spec.lua +++ b/test/functional/eval/string_spec.lua @@ -32,6 +32,9 @@ describe('string() function', function() eq('v:true', eval('string(v:true)')) eq('v:false', eval('string(v:false)')) eq('v:null', eval('string(v:null)')) + eq('v:true', funcs.string(true)) + eq('v:false', funcs.string(false)) + eq('v:null', funcs.string(NIL)) end) it('dumps values with at most six digits after the decimal point', -- cgit