From e78c259ecdf59c9f1c62994f8f962bafe18a26df Mon Sep 17 00:00:00 2001 From: Drew Folta Date: Wed, 5 Sep 2012 13:25:21 -0700 Subject: [PATCH] added unit test for _cloneObj() --- tests/unit.js | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/tests/unit.js b/tests/unit.js index 83232a7..2bed2c9 100644 --- a/tests/unit.js +++ b/tests/unit.js @@ -13,7 +13,8 @@ var Y = require('yui').YUI({useSync: true}).use('json', 'oop', 'test'), libycb = require('../index'), suite = new Y.Test.Suite('ycb unit tests'), A = Y.Assert, - AA = Y.ArrayAssert; + AA = Y.ArrayAssert, + OA = Y.ObjectAssert; function readFixtureFile(file){ @@ -407,6 +408,37 @@ suite.add(new Y.Test.Case({ A.isTrue(ctxs['{"region":"ca","flavor":"att"}']); A.isTrue(ctxs['{"region":"gb","flavor":"bt"}']); A.isTrue(ctxs['{"region":"fr","flavor":"bt"}']); + }, + + + 'clone object': function() { + var bundle, ycb; + bundle = readFixtureFile('dimensions.json') + .concat(readFixtureFile('simple-1.json')); + ycb = new libycb.Ycb(bundle); + + var obj, copy; + obj = { + inner: { + string: "value", + number: 1, + fn: function() {} + }, + list: ['a', 'b', 'c'] + }; + copy = ycb._cloneObj(obj); + + A.areNotSame(obj, copy); + + A.areNotSame(obj.inner, copy.inner); + OA.areEqual(obj.inner, copy.inner); + + A.areSame(obj.inner.string, copy.inner.string); + A.areSame(obj.inner.number, copy.inner.number); + A.areSame(obj.inner.fn, copy.inner.fn); + + A.areNotSame(obj.list, copy.list); + AA.itemsAreEqual(obj.list, copy.list); } @@ -419,4 +451,4 @@ Y.Test.Runner.subscribe(Y.Test.Runner.COMPLETE_EVENT, function (results) { process.exit(1); } }); -Y.Test.Runner.run(); \ No newline at end of file +Y.Test.Runner.run();