assert.equal(model.collection, collection);
});
+ QUnit.test('Object.prototype properties are overridden by attributes', function(assert) {
+ assert.expect(1);
+ var model = new Backbone.Model({hasOwnProperty: true});
+ assert.equal(model.get('hasOwnProperty'), true);
+ });
+
QUnit.test('initialize with attributes and options', function(assert) {
assert.expect(1);
var Model = Backbone.Model.extend({
assert.equal(model.get('value'), 2);
});
- QUnit.test('initialize with defaults', function(assert) {
- assert.expect(2);
- var Model = Backbone.Model.extend({
- defaults: {
- firstName: 'Unknown',
- lastName: 'Unknown'
- }
- });
- var model = new Model({'firstName': 'John'});
- assert.equal(model.get('firstName'), 'John');
- assert.equal(model.get('lastName'), 'Unknown');
- });
-
QUnit.test('parse can return null', function(assert) {
assert.expect(1);
var Model = Backbone.Model.extend({
});
QUnit.test('defaults', function(assert) {
- assert.expect(4);
+ assert.expect(9);
var Defaulted = Backbone.Model.extend({
defaults: {
one: 1,
var model = new Defaulted({two: undefined});
assert.equal(model.get('one'), 1);
assert.equal(model.get('two'), 2);
+ model = new Defaulted({two: 3});
+ assert.equal(model.get('one'), 1);
+ assert.equal(model.get('two'), 3);
Defaulted = Backbone.Model.extend({
defaults: function() {
return {
model = new Defaulted({two: undefined});
assert.equal(model.get('one'), 3);
assert.equal(model.get('two'), 4);
+ Defaulted = Backbone.Model.extend({
+ defaults: {hasOwnProperty: true}
+ });
+ model = new Defaulted();
+ assert.equal(model.get('hasOwnProperty'), true);
+ model = new Defaulted({hasOwnProperty: undefined});
+ assert.equal(model.get('hasOwnProperty'), true);
+ model = new Defaulted({hasOwnProperty: false});
+ assert.equal(model.get('hasOwnProperty'), false);
});
QUnit.test('change, hasChanged, changedAttributes, previous, previousAttributes', function(assert) {
QUnit.test('`previous` for falsey keys', function(assert) {
assert.expect(2);
- var model = new Backbone.Model({0: true, '': true});
- model.set({0: false, '': false}, {silent: true});
+ var model = new Backbone.Model({'0': true, '': true});
+ model.set({'0': false, '': false}, {silent: true});
assert.equal(model.previous(0), true);
assert.equal(model.previous(''), true);
});