aboutsummaryrefslogtreecommitdiffstats
path: root/test/AngularSpec.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/AngularSpec.js')
-rw-r--r--test/AngularSpec.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/test/AngularSpec.js b/test/AngularSpec.js
index cb0c5c6b..da56449a 100644
--- a/test/AngularSpec.js
+++ b/test/AngularSpec.js
@@ -542,4 +542,54 @@ describe('angular', function() {
expect(snake_case('alanBobCharles')).toEqual('alan_bob_charles');
});
});
+
+
+ describe('fromJson', function() {
+
+ it('should delegate to JSON.parse', function() {
+ var spy = spyOn(JSON, 'parse').andCallThrough();
+
+ expect(fromJson('{}')).toEqual({});
+ expect(spy).toHaveBeenCalled();
+ });
+ });
+
+
+ describe('toJson', function() {
+
+ it('should delegate to JSON.stringify', function() {
+ var spy = spyOn(JSON, 'stringify').andCallThrough();
+
+ expect(toJson({})).toEqual('{}');
+ expect(spy).toHaveBeenCalled();
+ });
+
+
+ it('should format objects pretty', function() {
+ expect(toJson({a: 1, b: 2}, true)).
+ toBeOneOf('{\n "a": 1,\n "b": 2\n}', '{\n "a":1,\n "b":2\n}');
+ expect(toJson({a: {b: 2}}, true)).
+ toBeOneOf('{\n "a": {\n "b": 2\n }\n}', '{\n "a":{\n "b":2\n }\n}');
+ });
+
+
+ it('should not serialize properties starting with $', function() {
+ expect(toJson({$few: 'v', $$some:'value'}, false)).toEqual('{}');
+ });
+
+
+ it('should not serialize $window object', function() {
+ expect(toJson(window)).toEqual('"$WINDOW"');
+ });
+
+
+ it('should not serialize $document object', function() {
+ expect(toJson(document)).toEqual('"$DOCUMENT"');
+ });
+
+
+ it('should not serialize scope instances', inject(function($rootScope) {
+ expect(toJson({key: $rootScope})).toEqual('{"key":"$SCOPE"}');
+ }));
+ });
});