summaryrefslogtreecommitdiff
path: root/test/itjs.t
diff options
context:
space:
mode:
Diffstat (limited to 'test/itjs.t')
-rwxr-xr-xtest/itjs.t66
1 files changed, 66 insertions, 0 deletions
diff --git a/test/itjs.t b/test/itjs.t
new file mode 100755
index 0000000..695ccd8
--- /dev/null
+++ b/test/itjs.t
@@ -0,0 +1,66 @@
+#!/www/server/bin/php -qC
+<?php
+
+# Tests for itjs.class, currently only itjs::serialize()
+
+$_GET['aa'] = 1;
+
+is(
+ itjs::serialize(null),
+ 'null',
+ 'null'
+);
+
+is(
+ itjs::serialize(array()),
+ '[]',
+ 'empty array'
+);
+
+is(
+ itjs::serialize(array(0, "0")),
+ '[0, 0]',
+ 'number 0'
+);
+
+is(
+ itjs::serialize(array(null, "", false)),
+ '["", "", false]',
+ 'null, empty string, false'
+);
+
+is(
+ itjs::serialize(array(42, "42", 42.5, "042")),
+ '[42, 42, "42.5", "042"]',
+ 'numbers'
+);
+
+is(
+ itjs::serialize(array('foo' => "bar", "qux", 42 => "quux")),
+ "{foo:\"bar\",\n'0':\"qux\",\n'42':\"quux\"}",
+ 'key-value pairs'
+);
+
+is(
+ itjs::serialize(array('foo' => array('bar' => array("qux", 42)))),
+ '{foo:{bar:["qux", 42]}}',
+ 'nested arrays'
+);
+
+is(
+ itjs::serialize(array('import' => array('function' => array(true, 42)))),
+ '{\'import\':{\'function\':[true, 42]}}',
+ 'keywords'
+);
+
+is(
+ itjs::serialize(array("foo'foo" => "bar")),
+ "{'foo\'foo':\"bar\"}",
+ "quote ' in keys"
+);
+
+is(
+ itjs::serialize("hellö"),
+ '"hellö"',
+ "string"
+);