diff options
Diffstat (limited to 'src/couch/test/eunit/couch_db_mpr_tests.erl')
-rw-r--r-- | src/couch/test/eunit/couch_db_mpr_tests.erl | 76 |
1 files changed, 33 insertions, 43 deletions
diff --git a/src/couch/test/eunit/couch_db_mpr_tests.erl b/src/couch/test/eunit/couch_db_mpr_tests.erl index bb97c66d7..3a9577a0d 100644 --- a/src/couch/test/eunit/couch_db_mpr_tests.erl +++ b/src/couch/test/eunit/couch_db_mpr_tests.erl @@ -12,7 +12,6 @@ -module(couch_db_mpr_tests). - -include_lib("couch/include/couch_eunit.hrl"). -include_lib("couch/include/couch_db.hrl"). @@ -24,41 +23,35 @@ -define(CONTENT_JSON, {"Content-Type", "application/json"}). -define(JSON_BODY, "{\"foo\": \"bar\"}"). -define(CONTENT_MULTI_RELATED, - {"Content-Type", "multipart/related;boundary=\"bound\""}). - + {"Content-Type", "multipart/related;boundary=\"bound\""} +). setup() -> Hashed = couch_passwords:hash_admin_password(?PASS), - ok = config:set("admins", ?USER, ?b2l(Hashed), _Persist=false), + ok = config:set("admins", ?USER, ?b2l(Hashed), _Persist = false), TmpDb = ?tempdb(), Addr = config:get("httpd", "bind_address", "127.0.0.1"), Port = mochiweb_socket_server:get(couch_httpd, port), Url = lists:concat(["http://", Addr, ":", Port, "/", ?b2l(TmpDb)]), Url. - teardown(Url) -> catch delete_db(Url), - ok = config:delete("admins", ?USER, _Persist=false). - + ok = config:delete("admins", ?USER, _Persist = false). create_db(Url) -> {ok, Status, _, _} = test_request:put(Url, [?CONTENT_JSON, ?AUTH], "{}"), ?assert(Status =:= 201 orelse Status =:= 202). - delete_db(Url) -> {ok, 200, _, _} = test_request:delete(Url, [?AUTH]). - create_doc(Url, Id, Body, Type) -> test_request:put(Url ++ "/" ++ Id, [Type, ?AUTH], Body). - delete_doc(Url, Id, Rev) -> test_request:delete(Url ++ "/" ++ Id ++ "?rev=" ++ ?b2l(Rev)). - couch_db_mpr_test_() -> { "multi-part attachment tests", @@ -77,30 +70,29 @@ couch_db_mpr_test_() -> } }. - recreate_with_mpr(Url) -> - {timeout, ?TIMEOUT, ?_test(begin - DocId1 = "foo", - DocId2 = "bar", - - create_db(Url), - create_and_delete_doc(Url, DocId1), - Rev1 = create_with_mpr(Url, DocId1), - delete_db(Url), - - create_db(Url), - create_and_delete_doc(Url, DocId1), - % We create a second unrelated doc to change the - % position on disk where the attachment is written - % so that we can assert that the position on disk - % is not included when calculating a revision. - create_and_delete_doc(Url, DocId2), - Rev2 = create_with_mpr(Url, DocId1), - delete_db(Url), - - ?assertEqual(Rev1, Rev2) - end)}. - + {timeout, ?TIMEOUT, + ?_test(begin + DocId1 = "foo", + DocId2 = "bar", + + create_db(Url), + create_and_delete_doc(Url, DocId1), + Rev1 = create_with_mpr(Url, DocId1), + delete_db(Url), + + create_db(Url), + create_and_delete_doc(Url, DocId1), + % We create a second unrelated doc to change the + % position on disk where the attachment is written + % so that we can assert that the position on disk + % is not included when calculating a revision. + create_and_delete_doc(Url, DocId2), + Rev2 = create_with_mpr(Url, DocId1), + delete_db(Url), + + ?assertEqual(Rev1, Rev2) + end)}. create_and_delete_doc(Url, DocId) -> {ok, _, _, Resp} = create_doc(Url, DocId, ?JSON_BODY, ?CONTENT_JSON), @@ -109,7 +101,6 @@ create_and_delete_doc(Url, DocId) -> ?assert(is_binary(Rev)), {ok, _, _, _} = delete_doc(Url, DocId, Rev). - create_with_mpr(Url, DocId) -> {ok, _, _, Resp} = create_doc(Url, DocId, mpr(), ?CONTENT_MULTI_RELATED), {Props} = ?JSON_DECODE(Resp), @@ -117,19 +108,18 @@ create_with_mpr(Url, DocId) -> ?assert(is_binary(Rev)), Rev. - mpr() -> lists:concat([ "--bound\r\n", "Content-Type: application/json\r\n\r\n", "{", - "\"body\":\"stuff\"," - "\"_attachments\":", - "{\"foo.txt\":{", - "\"follows\":true,", - "\"content_type\":\"text/plain\"," - "\"length\":21", - "}}" + "\"body\":\"stuff\"," + "\"_attachments\":", + "{\"foo.txt\":{", + "\"follows\":true,", + "\"content_type\":\"text/plain\"," + "\"length\":21", + "}}" "}", "\r\n--bound\r\n\r\n", "this is 21 chars long", |