From 5731599ef0128fca97444ee34dd2ca71edcaf16a Mon Sep 17 00:00:00 2001 From: John Christopher Anderson Date: Tue, 1 Jun 2010 00:59:26 +0000 Subject: better tests for the vhost globals, fixed a bug git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@949912 13f79535-47bb-0310-9956-ffa450edef68 --- src/couchdb/couch_httpd.erl | 10 ++++++++-- test/etap/160-vhosts.t | 11 +++++------ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/couchdb/couch_httpd.erl b/src/couchdb/couch_httpd.erl index 0e5cedf8..6c08847c 100644 --- a/src/couchdb/couch_httpd.erl +++ b/src/couchdb/couch_httpd.erl @@ -311,8 +311,14 @@ increment_method_stats(Method) -> % if so, then it will not be rewritten, but will run as a normal couchdb request. % normally you'd use this for _uuids _utils and a few of the others you want to keep available on vhosts. You can also use it to make databases 'global'. vhost_global(VhostGlobals, MochiReq) -> - "/"++Path = MochiReq:get(path), - [true] == [true||V <- VhostGlobals, V == Path]. + "/" ++ Path = MochiReq:get(path), + Front = case partition(Path) of + {"", "", ""} -> + "/"; % Special case the root url handler + {FirstPart, _, _} -> + FirstPart + end, + [true] == [true||V <- VhostGlobals, V == Front]. % Utilities diff --git a/test/etap/160-vhosts.t b/test/etap/160-vhosts.t index 8d8dd2a7..77d9d58b 100755 --- a/test/etap/160-vhosts.t +++ b/test/etap/160-vhosts.t @@ -122,11 +122,10 @@ test_vhost_request_with_qs() -> end. test_vhost_request_with_global() -> - Url = server() ++ "_uuids", - case ibrowse:send_req(Url, [], get, [], [{host_header, "example.com"}]) of - {ok, _, _, Body} -> - {JsonProps} = couch_util:json_decode(Body), - HasUuids = proplists:is_defined(<<"uuids">>, JsonProps), - etap:is(HasUuids, true, "should return _uuids"); + Url2 = server() ++ "_utils/index.html", + case ibrowse:send_req(Url2, [], get, [], [{host_header, "example.com"}]) of + {ok, _, _, Body2} -> + " false end. -- cgit v1.2.3