couchdb-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From j..@apache.org
Subject [9/9] git commit: Testing requested_path for various combinations of rewrites and vhost
Date Wed, 29 Feb 2012 11:09:59 GMT
Testing requested_path for various combinations of rewrites and vhost

Three test that show the requested_path in various conditions:

1. Accessing a show with no vhost
2. Access the show with a vhost that contains a path
3. Access the show with a vhost with no path


Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/1451ee57
Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/1451ee57
Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/1451ee57

Branch: refs/heads/COUCHDB-1416
Commit: 1451ee57f2afdade5b24c3fb4ae37efadf9ef1ed
Parents: 766d461
Author: Ryan Ramage <ryan.ramage@gmail.com>
Authored: Wed Feb 22 10:38:21 2012 -0700
Committer: Jason Smith (air) <jhs@apache.org>
Committed: Wed Feb 29 03:34:51 2012 +0000

----------------------------------------------------------------------
 share/www/script/test/rewrite.js |   56 +++++++++++++++++++++++++++++++++
 1 files changed, 56 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb/blob/1451ee57/share/www/script/test/rewrite.js
----------------------------------------------------------------------
diff --git a/share/www/script/test/rewrite.js b/share/www/script/test/rewrite.js
index 8454292..5b8c74f 100644
--- a/share/www/script/test/rewrite.js
+++ b/share/www/script/test/rewrite.js
@@ -437,4 +437,60 @@ couchTests.rewrite = function(debug) {
   var res = CouchDB.request("GET", "/test_suite_db/_design/invalid/_rewrite/foo");
   TEquals(400, res.status, "should return 400");
 
+  // test req.requested_path with rewrites with some vhosts
+  var rw_ddoc = {
+    _id: "_design/rwtest",
+    rewrites: [
+        {"from":"testShow","to":"_show/show_requested_path"}
+    ],
+    shows : {
+        show_requested_path : stringFun(function(doc, req){
+          return '/' + req.requested_path.join('/');
+        })
+    }
+  }
+  db.save(rw_ddoc);
+
+  // try accessing directly
+  var res = CouchDB.request("GET", "/test_suite_db/_design/rwtest/_rewrite/testShow");
+  TEquals('/test_suite_db/_design/rwtest/_rewrite/testShow', res.responseText, "requested_path
should equal requested");
+
+  var host = 'localhost:5984';
+  if (window) host = window.location.host;
+
+  // test a vhost with a path as well
+  run_on_modified_server(
+      [{section: "vhosts",
+        key: encodeURIComponent(host + '/path'),
+        value: "/test_suite_db/_design/rwtest/_rewrite/"}
+      ],
+      function(){
+          var res = CouchDB.request("GET", "/path/testShow");
+          TEquals('/path/testShow', res.responseText, "requested_path should equal requested");
+      }
+  );
+
+  // test a vhost on the root of the host
+  rw_ddoc.rewrites.push({"from":"_config/*","to":"../../../_config/*"});
+  T(db.save(rw_ddoc).ok);
+  run_on_modified_server(
+      [{section: "httpd",
+        key: "secure_rewrites",
+        value: "false"}
+      ],
+      function(){
+          // we have to 'double wrap' with a run_on_modified_server
+          // so that vhosts gets remove first, then the secure_rewrite
+          run_on_modified_server(
+                [{section: "vhosts",
+                  key: encodeURIComponent(host),
+                  value: "/test_suite_db/_design/rwtest/_rewrite/"}
+                ],
+                function() {
+                    var res = CouchDB.request("GET", "/testShow");
+                    TEquals('/testShow', res.responseText, "requested_path should equal requested");
+                }
+          );
+      }
+  );
 }


Mime
View raw message