couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave Cottlehuber <d...@muse.net.nz>
Subject Re: git commit: Use non-compressed Content-Type in attachments test suites
Date Tue, 17 Jan 2012 09:03:25 GMT
On 16 January 2012 15:56, Benoit Chesneau <bchesneau@gmail.com> wrote:
> On Sun, Jan 15, 2012 at 2:45 PM,  <dch@apache.org> wrote:
>> Updated Branches:
>>  refs/heads/1.2.x e8688ac20 -> 8d83b39a0
>>
>>
>> Use non-compressed Content-Type in attachments test suites
>>
>> MD5-Digests of attachments are calculated on the compressed data if the
>> attachment MIME type is compressible, as defined in default.ini
>> [attachments] compressible_types
>>
>> Windows uses a different gzip implementation, and therefore generates
>> different MD5-Digests than other platforms. Using binary Content-Type
>> resolves this.
>>
>>
>> Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo
>> Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/8d83b39a
>> Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/8d83b39a
>> Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/8d83b39a
>>
>> Branch: refs/heads/1.2.x
>> Commit: 8d83b39a061eb12956aa9574b27044a423bbcb93
>> Parents: e8688ac
>> Author: Dave Cottlehuber <dch@apache.org>
>> Authored: Sun Jan 15 23:38:13 2012 +0100
>> Committer: Dave Cottlehuber <dch@apache.org>
>> Committed: Sun Jan 15 23:38:13 2012 +0100
>>
>> ----------------------------------------------------------------------
>>  share/www/script/test/attachment_names.js |    6 +++---
>>  share/www/script/test/attachments.js      |   10 +++++++---
>>  2 files changed, 10 insertions(+), 6 deletions(-)
>> ----------------------------------------------------------------------
>>
>>
>> http://git-wip-us.apache.org/repos/asf/couchdb/blob/8d83b39a/share/www/script/test/attachment_names.js
>> ----------------------------------------------------------------------
>> diff --git a/share/www/script/test/attachment_names.js b/share/www/script/test/attachment_names.js
>> index 78c95de..334350c 100644
>> --- a/share/www/script/test/attachment_names.js
>> +++ b/share/www/script/test/attachment_names.js
>> @@ -20,7 +20,7 @@ couchTests.attachment_names = function(debug) {
>>     _id: "good_doc",
>>     _attachments: {
>>       "Колян.txt": {
>> -       content_type:"text/plain",
>> +       content_type:"application/octet-stream",
>>        data: "VGhpcyBpcyBhIGJhc2U2NCBlbmNvZGVkIHRleHQ="
>>       }
>>     }
>> @@ -31,8 +31,8 @@ couchTests.attachment_names = function(debug) {
>>
>>   var xhr = CouchDB.request("GET", "/test_suite_db/good_doc/Колян.txt");
>>   T(xhr.responseText == "This is a base64 encoded text");
>> -  T(xhr.getResponseHeader("Content-Type") == "text/plain");
>> -  TEquals("\"qUUYqS41RhwF0TrCsTAxFg==\"", xhr.getResponseHeader("Etag"));
>> +  T(xhr.getResponseHeader("Content-Type") == "application/octet-stream");
>> +  TEquals("\"aEI7pOYCRBLTRQvvqYrrJQ==\"", xhr.getResponseHeader("Etag"));
>>
>>   var binAttDoc = {
>>     _id: "bin_doc",
>>
>> http://git-wip-us.apache.org/repos/asf/couchdb/blob/8d83b39a/share/www/script/test/attachments.js
>> ----------------------------------------------------------------------
>> diff --git a/share/www/script/test/attachments.js b/share/www/script/test/attachments.js
>> index a409f82..db4524a 100644
>> --- a/share/www/script/test/attachments.js
>> +++ b/share/www/script/test/attachments.js
>> @@ -16,11 +16,15 @@ couchTests.attachments= function(debug) {
>>   db.createDb();
>>   if (debug) debugger;
>>
>> +
>> +  // MD5 Digests of compressible attachments and therefore Etags
>> +  // will vary depending on platform gzip implementation.
>> +  // These MIME types are defined in [attachments] compressible_types
>>   var binAttDoc = {
>>     _id: "bin_doc",
>>     _attachments:{
>>       "foo.txt": {
>> -        content_type:"text/plain",
>> +        content_type:"application/octet-stream",
>>         data: "VGhpcyBpcyBhIGJhc2U2NCBlbmNvZGVkIHRleHQ="
>>       }
>>     }
>> @@ -31,8 +35,8 @@ couchTests.attachments= function(debug) {
>>
>>   var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc/foo.txt");
>>   T(xhr.responseText == "This is a base64 encoded text");
>> -  T(xhr.getResponseHeader("Content-Type") == "text/plain");
>> -  TEquals("\"qUUYqS41RhwF0TrCsTAxFg==\"", xhr.getResponseHeader("Etag"));
>> +  T(xhr.getResponseHeader("Content-Type") == "application/octet-stream");
>> +  TEquals("\"aEI7pOYCRBLTRQvvqYrrJQ==\"", xhr.getResponseHeader("Etag"));
>>
>>   // empty attachment
>>   var binAttDoc2 = {
>>
>
> Hum tests are fixed but what about general usage? Should people always
> use binary ct ?
>
> - benoît

Hi Benoît,

I'm adding a JIRA to check that we do actually generate a different
MD5 if the underlying data is changed. I don't see a way from the
browser side to confirm if the digest is sensible, effectively client
side this will be seen as an opaque value.

A+
Dave

Mime
View raw message