From 7cda6c7c2d72053407da7d0caee73026bebab25b Mon Sep 17 00:00:00 2001 From: Paul Joseph Davis Date: Mon, 19 Oct 2009 14:49:50 +0000 Subject: 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 --- share/www/script/test/list_views.js | 44 +++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) (limited to 'share/www') 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); + }; -- cgit v1.2.3