diff options
Diffstat (limited to 'rel/overlay/var/share/www/script/test/design_options.js')
-rw-r--r-- | rel/overlay/var/share/www/script/test/design_options.js | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/rel/overlay/var/share/www/script/test/design_options.js b/rel/overlay/var/share/www/script/test/design_options.js new file mode 100644 index 00000000..05764e24 --- /dev/null +++ b/rel/overlay/var/share/www/script/test/design_options.js @@ -0,0 +1,74 @@ +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy of +// the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations under +// the License. + +couchTests.design_options = function(debug) { + var db = new CouchDB("test_suite_db", {"X-Couch-Full-Commit":"false"}); + db.deleteDb(); + db.createDb(); + if (debug) debugger; + + //// test the includes_design option + var map = "function (doc) {emit(null, doc._id);}"; + var withseq = "function(doc) {emit(doc._local_seq, null)}" + + // we need a design doc even to test temp views with it + var designDoc = { + _id:"_design/fu", + language: "javascript", + options: { + include_design: true, + local_seq: true + }, + views: { + data: {"map": map}, + with_seq : {"map" : withseq} + } + }; + T(db.save(designDoc).ok); + + // should work for temp views + var rows = db.query(map, null, {options:{include_design: true}}).rows; + T(rows.length == 1); + T(rows[0].value == "_design/fu"); + + rows = db.query(map).rows; + T(rows.length == 0); + + // when true, should include design docs in views + rows = db.view("fu/data").rows; + T(rows.length == 1); + T(rows[0].value == "_design/fu"); + + // when false, should not + designDoc.options.include_design = false; + delete designDoc._rev; + designDoc._id = "_design/bingo"; + T(db.save(designDoc).ok); + rows = db.view("bingo/data").rows; + T(rows.length == 0); + + // should default to false + delete designDoc.options; + delete designDoc._rev; + designDoc._id = "_design/bango"; + T(db.save(designDoc).ok); + rows = db.view("bango/data").rows; + T(rows.length == 0); + + // should also have local_seq in the view + var resp = db.save({}); + rows = db.view("fu/with_seq").rows; + T(rows[0].key == 1) + T(rows[1].key == 2) + var doc = db.open(resp.id); + db.deleteDoc(doc); +}; |