mirror of
https://github.com/jashkenas/backbone.git
synced 2026-01-25 14:57:55 -05:00
53 lines
1.9 KiB
JavaScript
53 lines
1.9 KiB
JavaScript
$(document).ready(function() {
|
|
|
|
module("Backbone model");
|
|
|
|
test("model: clone", function() {
|
|
attrs = { 'foo': 1, 'bar': 2, 'baz': 3};
|
|
a = new Backbone.Model(attrs);
|
|
b = a.clone();
|
|
equals(a.get('foo'),1);
|
|
equals(a.get('bar'),2);
|
|
equals(a.get('baz'),3);
|
|
equals(b.get('foo'),a.get('foo'),"Foo should be the same on the clone.");
|
|
equals(b.get('bar'),a.get('bar'),"Bar should be the same on the clone.");
|
|
equals(b.get('baz'),a.get('baz'),"Baz should be the same on the clone.");
|
|
});
|
|
|
|
test("model: isEqual", function() {
|
|
attrs = { 'foo': 1, 'bar': 2, 'baz': 3};
|
|
a = new Backbone.Model(attrs);
|
|
b = new Backbone.Model(attrs);
|
|
ok(a.isEqual(b),"a should equal b");
|
|
c = new Backbone.Model({ 'foo': 1, 'bar': 2, 'baz': 3, 'qux': 4});
|
|
ok(!a.isEqual(c),"a should not equal c");
|
|
|
|
})
|
|
|
|
test("model: isNew", function() {
|
|
attrs = { 'foo': 1, 'bar': 2, 'baz': 3};
|
|
a = new Backbone.Model(attrs);
|
|
ok(a.isNew(), "it should be new");
|
|
attrs = { 'foo': 1, 'bar': 2, 'baz': 3, 'id': -5 };
|
|
ok(a.isNew(), "any defined ID is legal, negative or positive");
|
|
})
|
|
|
|
test("model: set", function() {
|
|
attrs = { 'foo': 1, 'bar': 2, 'baz': 3};
|
|
a = new Backbone.Model(attrs);
|
|
var changeCount = 0;
|
|
a.bind("change", function() { changeCount += 1});
|
|
a.set({'foo': 2});
|
|
ok(a.get('foo')==2, "Foo should have changed.");
|
|
ok(changeCount == 1, "Change count should have incremented.");
|
|
a.set({'foo': 2}); // set with value that is not new shouldn't fire change event
|
|
ok(a.get('foo')==2, "Foo should NOT have changed, still 2");
|
|
ok(changeCount == 1, "Change count should NOT have incremented.");
|
|
|
|
a.unset('foo');
|
|
ok(a.get('foo')==null, "Foo should have changed");
|
|
ok(changeCount == 2, "Change count should have incremented for unset.");
|
|
|
|
});
|
|
|
|
}); |