defineSuite([ 'Core/clone' ], function( clone) { 'use strict'; it('can make shallow clones', function() { var obj = { a : 1, b : 's', c : { d : 0 } }; var clonedObj = clone(obj); expect(clonedObj).not.toBe(obj); expect(clonedObj.a).toEqual(obj.a); expect(clonedObj.b).toEqual(obj.b); expect(clonedObj.c).toBe(obj.c); expect(clonedObj.c.d).toEqual(obj.c.d); }); it('can make deep clones', function() { var obj = { a : 1, b : 's', c : { d : 0, e : { f : { g : 1 } } } }; var clonedObj = clone(obj, true); expect(clonedObj).not.toBe(obj); expect(clonedObj.a).toEqual(obj.a); expect(clonedObj.b).toEqual(obj.b); expect(clonedObj.c).not.toBe(obj.c); expect(clonedObj.c.d).toEqual(obj.c.d); expect(clonedObj.c.e).not.toBe(obj.c.e); expect(clonedObj.c.e.f).not.toBe(obj.c.e.f); expect(clonedObj.c.e.f.g).toEqual(obj.c.e.f.g); }); });