[Groonga-commit] groonga/gcs [master] Add more tests for defaultSearchField

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index