summaryrefslogtreecommitdiff
path: root/builtin/common/tests/serialize_spec.lua
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2020-01-18 02:09:18 +0000
committerGitHub <noreply@github.com>2020-01-18 02:09:18 +0000
commit1173ff0c13a07dec2ede3166378dc5f50fff37b3 (patch)
treedf83476a7389fce570fb2bb6852e0de024d20e98 /builtin/common/tests/serialize_spec.lua
parent6d472b1840971a087841ea7feee5a921fb82b84a (diff)
downloadminetest-1173ff0c13a07dec2ede3166378dc5f50fff37b3.tar.gz
minetest-1173ff0c13a07dec2ede3166378dc5f50fff37b3.tar.bz2
minetest-1173ff0c13a07dec2ede3166378dc5f50fff37b3.zip
Add Lua unit tests to builtin using busted (#9184)
Diffstat (limited to 'builtin/common/tests/serialize_spec.lua')
-rw-r--r--builtin/common/tests/serialize_spec.lua28
1 files changed, 28 insertions, 0 deletions
diff --git a/builtin/common/tests/serialize_spec.lua b/builtin/common/tests/serialize_spec.lua
new file mode 100644
index 000000000..321d2766a
--- /dev/null
+++ b/builtin/common/tests/serialize_spec.lua
@@ -0,0 +1,28 @@
+_G.core = {}
+
+_G.setfenv = function() end
+
+dofile("builtin/common/serialize.lua")
+
+describe("serialize", function()
+ it("works", function()
+ local test_in = {cat={sound="nyan", speed=400}, dog={sound="woof"}}
+ local test_out = core.deserialize(core.serialize(test_in))
+
+ assert.same(test_in, test_out)
+ end)
+
+ it("handles characters", function()
+ local test_in = {escape_chars="\n\r\t\v\\\"\'", non_european="θשׁ٩∂"}
+ local test_out = core.deserialize(core.serialize(test_in))
+ assert.same(test_in, test_out)
+ end)
+
+ it("handles recursive structures", function()
+ local test_in = { hello = "world" }
+ test_in.foo = test_in
+
+ local test_out = core.deserialize(core.serialize(test_in))
+ assert.same(test_in, test_out)
+ end)
+end)