implement pinch to zoom
This commit is contained in:
+80
@@ -0,0 +1,80 @@
|
||||
|
||||
/* test dependencies */
|
||||
|
||||
var clone = require('..');
|
||||
var expect = require('expect.js');
|
||||
|
||||
/* tests */
|
||||
|
||||
describe('clone', function(){
|
||||
|
||||
it('date', function(){
|
||||
var obj = new Date;
|
||||
var cloned = clone(obj);
|
||||
expect(cloned.getTime()).to.be(obj.getTime());
|
||||
expect(cloned).not.to.be(obj);
|
||||
});
|
||||
|
||||
it('regexp', function(){
|
||||
var obj = /hello/i;
|
||||
var cloned = clone(obj);
|
||||
expect(cloned.toString()).to.be(obj.toString());
|
||||
expect(cloned).not.to.be(obj);
|
||||
});
|
||||
|
||||
it('array', function(){
|
||||
var obj = [1, 2, 3, '4'];
|
||||
var cloned = clone(obj);
|
||||
expect(cloned).to.eql(obj);
|
||||
expect(cloned).not.to.be(obj);
|
||||
});
|
||||
|
||||
it('object', function(){
|
||||
var obj = {
|
||||
a: 1,
|
||||
b: 2,
|
||||
c: 3
|
||||
};
|
||||
var cloned = clone(obj);
|
||||
expect(cloned).to.eql(obj);
|
||||
expect(cloned).not.to.be(obj);
|
||||
});
|
||||
|
||||
it('object combined', function(){
|
||||
var date = new Date;
|
||||
var obj = {
|
||||
a: {
|
||||
b: [1, 2, date, { hello: 'world' }]
|
||||
}
|
||||
};
|
||||
var cloned = clone(obj);
|
||||
expect(cloned).to.eql(obj);
|
||||
expect(cloned.a).not.to.be(obj.a);
|
||||
expect(cloned.a.b).not.to.be(obj.a.b);
|
||||
expect(cloned.a.b[2]).not.to.be(obj.a.b[2]);
|
||||
expect(cloned.a.b[2].getTime()).to.be(obj.a.b[2].getTime());
|
||||
expect(cloned.a.b[3]).to.eql(obj.a.b[3]);
|
||||
expect(cloned.a.b[3]).not.to.be(obj.a.b[3]);
|
||||
});
|
||||
|
||||
it('object with functions', function() {
|
||||
var func = function () { return 'original'; };
|
||||
var host = { fluent: func };
|
||||
var cloned = clone(host);
|
||||
|
||||
// cloned function matches original
|
||||
|
||||
expect(cloned.fluent).to.be(func);
|
||||
|
||||
// change cloned function (no longer matches original)
|
||||
|
||||
cloned.fluent = function () { return 'updated'; };
|
||||
expect(cloned.fluent).not.to.be(func);
|
||||
expect(cloned.fluent()).to.be('updated');
|
||||
|
||||
// original function is still in place
|
||||
|
||||
expect(func()).to.be('original');
|
||||
});
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user