diff options
| author | Rob Spies | 2010-06-22 17:09:55 -0700 |
|---|---|---|
| committer | Rob Spies | 2010-06-22 17:09:55 -0700 |
| commit | 1500e91defa4020bfe9608749b25e585cd1d8e3d (patch) | |
| tree | 8c2872252b62567dc4eb00f7d7547661d5674c55 /test/JsonTest.js | |
| parent | eaa397c76b7d28343cde9f3a0338b9b0e79197c8 (diff) | |
| parent | b129a1094e6b42ed82c3ccecc2f40daaa0a6cb6a (diff) | |
| download | angular.js-1500e91defa4020bfe9608749b25e585cd1d8e3d.tar.bz2 | |
Merge http://github.com/angular/angular.js into angular
Conflicts:
.gitignore
Diffstat (limited to 'test/JsonTest.js')
| -rw-r--r-- | test/JsonTest.js | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/test/JsonTest.js b/test/JsonTest.js new file mode 100644 index 00000000..1ed56da8 --- /dev/null +++ b/test/JsonTest.js @@ -0,0 +1,84 @@ +JsonTest = TestCase("JsonTest"); + +JsonTest.prototype.testPrimitives = function () { + assertEquals("null", toJson(0/0)); + assertEquals("null", toJson(null)); + assertEquals("true", toJson(true)); + assertEquals("false", toJson(false)); + assertEquals("123.45", toJson(123.45)); + assertEquals('"abc"', toJson("abc")); + assertEquals('"a \\t \\n \\r b \\\\"', toJson("a \t \n \r b \\")); +}; + +JsonTest.prototype.testEscaping = function () { + assertEquals("\"7\\\\\\\"7\"", toJson("7\\\"7")); +}; + +JsonTest.prototype.testObjects = function () { + assertEquals('{"a":1,"b":2}', toJson({a:1,b:2})); + assertEquals('{"a":{"b":2}}', toJson({a:{b:2}})); + assertEquals('{"a":{"b":{"c":0}}}', toJson({a:{b:{c:0}}})); + assertEquals('{"a":{"b":null}}', toJson({a:{b:0/0}})); +}; + +JsonTest.prototype.testObjectPretty = function () { + assertEquals('{\n "a":1,\n "b":2}', toJson({a:1,b:2}, true)); + assertEquals('{\n "a":{\n "b":2}}', toJson({a:{b:2}}, true)); +}; + +JsonTest.prototype.testArray = function () { + assertEquals('[]', toJson([])); + assertEquals('[1,"b"]', toJson([1,"b"])); +}; + +JsonTest.prototype.testIgnoreFunctions = function () { + assertEquals('[null,1]', toJson([function(){},1])); + assertEquals('{}', toJson({a:function(){}})); +}; + +JsonTest.prototype.testParseNull = function () { + assertNull(fromJson("null")); +}; + +JsonTest.prototype.testParseBoolean = function () { + assertTrue(fromJson("true")); + assertFalse(fromJson("false")); +}; + +JsonTest.prototype.test$$isIgnored = function () { + assertEquals("{}", toJson({$$:0})); +}; + +JsonTest.prototype.testArrayWithEmptyItems = function () { + var a = []; + a[1] = "X"; + assertEquals('[null,"X"]', toJson(a)); +}; + +JsonTest.prototype.testItShouldEscapeUnicode = function () { + assertEquals(1, "\u00a0".length); + assertEquals(8, toJson("\u00a0").length); + assertEquals(1, fromJson(toJson("\u00a0")).length); +}; + +JsonTest.prototype.testItShouldUTCDates = function() { + var date = angular.String.toDate("2009-10-09T01:02:03Z"); + assertEquals('"2009-10-09T01:02:03Z"', toJson(date)); + assertEquals(date.getTime(), + fromJson('"2009-10-09T01:02:03Z"').getTime()); +}; + +JsonTest.prototype.testItShouldPreventRecursion = function () { + var obj = {a:'b'}; + obj.recursion = obj; + assertEquals('{"a":"b","recursion":RECURSION}', angular.toJson(obj)); +}; + +JsonTest.prototype.testItShouldSerializeSameObjectsMultipleTimes = function () { + var obj = {a:'b'}; + assertEquals('{"A":{"a":"b"},"B":{"a":"b"}}', angular.toJson({A:obj, B:obj})); +}; + +JsonTest.prototype.testItShouldNotSerializeUndefinedValues = function () { + assertEquals('{}', angular.toJson({A:undefined})); +}; |
