-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathobject_copy.js
32 lines (32 loc) · 1.07 KB
/
object_copy.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
describe('objects',function(){
var t = {};
beforeEach(function(done){ // IE6 stack release
setTimeout(function(){done()}, 0);
});
it('copy',function(){
expect(theory.obj([]).copy()).to.eql([]);
expect(theory.obj.copy([])).to.eql([]);
expect(theory.obj({}).copy()).to.eql({});
expect(theory.obj.copy({})).to.eql({});
t.val = {a:1,b:'c',d:[0,1,2],e:{f:'g'},h:function(){ return 1 }};
t.dup = theory.obj(t.val).copy();
expect(t.dup.a).to.be(t.val.a);
expect(t.dup.b).to.be(t.val.b);
expect(t.dup.d).to.eql(t.val.d);
expect(t.dup.e).to.eql(t.val.e);
expect(t.dup.h()).to.eql(t.val.h());
t.dup.d = 'diff';
expect(t.dup.d).to.not.be(t.val.d);
t.val = t.dup = undefined;
t.val = {a:1,b:'c',d:[0,1,2],e:{f:'g'},h:function(){ return 1 }};
t.dup = theory.obj(t.val).copy();
expect(t.dup.a).to.be(t.val.a);
expect(t.dup.b).to.be(t.val.b);
expect(t.dup.d).to.eql(t.val.d);
expect(t.dup.e).to.eql(t.val.e);
expect(t.dup.h()).to.eql(t.val.h());
t.dup.d = 'diff';
expect(t.dup.d).to.not.be(t.val.d);
});
});
root.CopyObject = true;