summaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorPaul Joseph Davis <davisp@apache.org>2009-10-19 14:49:50 +0000
committerPaul Joseph Davis <davisp@apache.org>2009-10-19 14:49:50 +0000
commit7cda6c7c2d72053407da7d0caee73026bebab25b (patch)
tree0b8cc2dafbbe3c5e714ad64eb8aeb9464a0b1649 /share
parent430b75f7572d3033fe61e341d0ee5ff1167831e2 (diff)
Fix bug when lists use two design docs.
The language was being pulled from the wrong doc in the pair. Also removed some unused variables. Added a test in list_views.js git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@826692 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'share')
-rw-r--r--share/www/script/test/list_views.js44
1 files changed, 42 insertions, 2 deletions
diff --git a/share/www/script/test/list_views.js b/share/www/script/test/list_views.js
index b261be71..e31f0f83 100644
--- a/share/www/script/test/list_views.js
+++ b/share/www/script/test/list_views.js
@@ -177,6 +177,23 @@ couchTests.list_views = function(debug) {
}
}
};
+ var erlListDoc = {
+ _id: "_design/erlang",
+ language: "erlang",
+ lists: {
+ simple:
+ 'fun(Head, {Req}) -> ' +
+ ' Send(<<"[">>), ' +
+ ' Fun = fun({Row}, Sep) -> ' +
+ ' Val = proplists:get_value(<<"key">>, Row, 23), ' +
+ ' Send(list_to_binary(Sep ++ integer_to_list(Val))), ' +
+ ' {ok, ","} ' +
+ ' end, ' +
+ ' {ok, _} = FoldRows(Fun, ""), ' +
+ ' Send(<<"]">>) ' +
+ 'end.'
+ }
+ };
T(db.save(designDoc).ok);
@@ -373,10 +390,33 @@ couchTests.list_views = function(debug) {
// Test we can run lists and views from separate docs.
T(db.save(viewOnlyDesignDoc).ok);
- xhr = CouchDB.request("GET", "/test_suite_db/_design/lists/_list/simpleForm/views/basicView?startkey=-3");
- T(xhr.status == 200, "with query params");
+ var url = "/test_suite_db/_design/lists/_list/simpleForm/views/basicView" +
+ "?startkey=-3";
+ xhr = CouchDB.request("GET", url);
+ T(xhr.status == 200, "multiple design docs.");
T(/Total Rows/.test(xhr.responseText));
T(!(/Key: -4/.test(xhr.responseText)));
T(/FirstKey: -3/.test(xhr.responseText));
T(/LastKey: 0/.test(xhr.responseText));
+
+ var erlViewTest = function() {
+ T(db.save(erlListDoc).ok);
+ var url = "/test_suite_db/_design/erlang/_list/simple/views/basicView" +
+ "?startkey=-3";
+ xhr = CouchDB.request("GET", url);
+ T(xhr.status == 200, "multiple languages in design docs.");
+ var list = JSON.parse(xhr.responseText);
+ T(list.length == 4);
+ for(var i = 0; i < list.length; i++)
+ {
+ T(list[i] + 3 == i);
+ }
+ };
+
+ run_on_modified_server([{
+ section: "native_query_servers",
+ key: "erlang",
+ value: "{couch_native_process, start_link, []}"
+ }], erlViewTest);
+
};