Test for COUCHDB-1679. Showing how the etag breaks cors

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

Branch: refs/heads/1697-fix-if-non-match-cors
Commit: 02357223d3618467494a858ec9bae38352238261
Parents: 2cc0630
Author: Ryan Ramage <[email protected]>
Authored: Wed Mar 13 15:04:34 2013 -0600
Committer: Ryan Ramage <[email protected]>
Committed: Wed Mar 13 15:04:34 2013 -0600

----------------------------------------------------------------------
 test/etap/231-cors.t |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb/blob/02357223/test/etap/231-cors.t
----------------------------------------------------------------------
diff --git a/test/etap/231-cors.t b/test/etap/231-cors.t
index a150867..ce52747 100644
--- a/test/etap/231-cors.t
+++ b/test/etap/231-cors.t
@@ -256,6 +256,20 @@ test_doc_with_attachment_range_request() ->
         etap:is(false, true, "ibrowse failed")
     end.
 
+% COUCHDB-1697
+test_if_none_match_header() ->
+    Url = server() ++ "etap-test-db/doc2",
+    Headers = [{"Origin", "http://example.com"}],
+    {ok, _, _RespHeaders, _} = ibrowse:send_req(Url, Headers, get, []),
+    ETag = proplists:get_value("ETag", _RespHeaders),
+    Headers2 = [{"Origin", "http://example.com"}, {"If-None-Match", ETag}],
+    case ibrowse:send_req(Url, Headers2, get, []) of
+    {ok, Code, _RespHeaders2, _} ->
+        etap:is(Code, "304", "Responded with Not Modified");
+    _ ->
+        etap:is(false, true, "ibrowse failed")
+    end.
+
 test_db_request_credentials_header_off() ->
     Headers = [{"Origin", "http://example.com"}],
     Url = server() ++ "etap-test-db",

Reply via email to