SHIMODA Hiroshi
null+****@clear*****
Tue Aug 14 18:41:08 JST 2012
SHIMODA Hiroshi 2012-08-14 18:41:08 +0900 (Tue, 14 Aug 2012) New Revision: d1cbdd096d208742aa2e6fd90ddb67e0b09b3af8 https://github.com/groonga/gcs/commit/d1cbdd096d208742aa2e6fd90ddb67e0b09b3af8 Log: Add more tests for defaultSearchField Modified files: lib/database/index-field.js test/database-domain.test.js test/database-index-field.test.js Modified: lib/database/index-field.js (+1 -1) =================================================================== --- lib/database/index-field.js 2012-08-14 18:34:12 +0900 (735983e) +++ lib/database/index-field.js 2012-08-14 18:41:08 +0900 (bd5e7cf) @@ -303,8 +303,8 @@ IndexField.prototype = { this._searchEnabled); if (this._defaultSearchField !== undefined) { + this.domain.defaultSearchField = this._defaultSearchField ? this : null ; delete this._defaultSearchField; - this.domain.defaultSearchField = this; } }, deleteSync: function() { Modified: test/database-domain.test.js (+9 -3) =================================================================== --- test/database-domain.test.js 2012-08-14 18:34:12 +0900 (cbf8479) +++ test/database-domain.test.js 2012-08-14 18:41:08 +0900 (744e196) @@ -257,8 +257,8 @@ suite('database', function() { }); }); - test('setting default search field', function() { - assert.equal(domain.defaultSearchField, null, field); + test('setting default search field (instance)', function() { + assert.equal(domain.defaultSearchField, null); var nameField = domain.getIndexField('name'); domain.defaultSearchField = nameField; assert.equal(domain.defaultSearchField, nameField); @@ -269,7 +269,7 @@ suite('database', function() { }); test('setting default search field (text)', function() { - assert.equal(domain.defaultSearchField, null, field); + assert.equal(domain.defaultSearchField, null); domain.defaultSearchField = 'name'; assert.equal(domain.defaultSearchField, domain.getIndexField('name')); @@ -278,6 +278,12 @@ suite('database', function() { anotherDomainInstance.getIndexField('name')); }); + test('setting default search field (unknown field)', function() { + assert.equal(domain.defaultSearchField, null); + domain.defaultSearchField = 'unknown'; + assert.equal(domain.defaultSearchField, null); + }); + test('removing default search field', function() { var nameField = domain.getIndexField('name'); domain.defaultSearchField = nameField; Modified: test/database-index-field.test.js (+26 -0) =================================================================== --- test/database-index-field.test.js 2012-08-14 18:34:12 +0900 (5566f2b) +++ test/database-index-field.test.js 2012-08-14 18:41:08 +0900 (f455c96) @@ -290,6 +290,32 @@ suite('database', function() { field = new IndexField('product', domain); // reset instance from database assert.equal('Search Facet Result', field.options); }); + + test('setting default search field', function() { + var field = new IndexField('product', domain).setType('literal'); + field.createSync(); + + field.defaultSearchField = true; + field.saveOptionsSync(); + assert.equal(domain.defaultSearchField, + domain.getIndexField('product')); + + field.defaultSearchField = true; + field.saveOptionsSync(); + assert.equal(domain.defaultSearchField, null); + }); + + test('auto-remove default search field', function() { + var field = new IndexField('product', domain).setType('literal'); + field.createSync(); + field.defaultSearchField = true; + field.saveOptionsSync(); + assert.equal(domain.defaultSearchField, + domain.getIndexField('product')); + + field.deleteSync(); + assert.equal(domain.defaultSearchField, null); + }); }); suite('database modifications', function() { -------------- next part -------------- HTML����������������������������...Download