summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--share/www/script/couch.js2
-rw-r--r--share/www/script/couch_tests.js20
-rw-r--r--share/www/script/shell.js22
-rw-r--r--src/couchdb/couch_stream.erl2
4 files changed, 44 insertions, 2 deletions
diff --git a/share/www/script/couch.js b/share/www/script/couch.js
index f1544893..5f42ac38 100644
--- a/share/www/script/couch.js
+++ b/share/www/script/couch.js
@@ -87,7 +87,7 @@ function CouchDB(name) {
var result = JSON.parse(req.responseText);
if (req.status != 201)
throw result;
- for(i in docs) {
+ for(var i in docs) {
docs[i]._rev = result.new_revs[i].rev;
}
return result;
diff --git a/share/www/script/couch_tests.js b/share/www/script/couch_tests.js
index 70879479..cf1a4865 100644
--- a/share/www/script/couch_tests.js
+++ b/share/www/script/couch_tests.js
@@ -849,6 +849,20 @@ var tests = {
var docs = makeDocs(0, 10);
var saveResult = db.bulkSave(docs);
T(saveResult.ok);
+
+
+ var binAttDoc = {
+ _id:"bin_doc",
+ _attachments:{
+ "foo.txt": {
+ "content-type":"text/plain",
+ "data": "VGhpcyBpcyBhIGJhc2U2NCBlbmNvZGVkIHRleHQ="
+ }
+ }
+ }
+
+ T(db.save(binAttDoc).ok);
+
var originalsize = db.info().disk_size;
for(var i in docs) {
@@ -862,6 +876,12 @@ var tests = {
//compaction isn't instantaneous, loop until done
while(db.info().compact_running) {};
+
+
+ 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")
+
var compactedsize = db.info().disk_size;
T(deletesize > originalsize);
diff --git a/share/www/script/shell.js b/share/www/script/shell.js
index f4c6aff5..4b512dc1 100644
--- a/share/www/script/shell.js
+++ b/share/www/script/shell.js
@@ -698,3 +698,25 @@ function go(s)
// Evaluate Shell.question using _win's eval (this is why eval isn't in the |with|, IIRC).
_win.location.href = "javascript:try{ Shell.printAnswer(eval('with(Shell._scope) with(Shell.shellCommands) {' + Shell.question + String.fromCharCode(10) + '}')); } catch(er) { Shell.printError(er); }; setTimeout(Shell.refocus, 0); void 0";
}
+
+function T(Bool) {
+ if(!Bool) {
+ throw "Error!";
+ }
+}
+
+
+function makeDocs(start, end, templateDoc) {
+ var templateDocSrc = templateDoc ? templateDoc.toSource() : "{}"
+ var docs = []
+ for(var i=start; i<end; i++) {
+ var newDoc = eval("(" + templateDocSrc + ")");
+ newDoc._id = (i).toString();
+ newDoc.integer = i
+ newDoc.string = (i).toString();
+ docs.push(newDoc)
+ }
+ return docs;
+}
+
+
diff --git a/src/couchdb/couch_stream.erl b/src/couchdb/couch_stream.erl
index ca43562a..103ebacb 100644
--- a/src/couchdb/couch_stream.erl
+++ b/src/couchdb/couch_stream.erl
@@ -90,7 +90,7 @@ copy(Fd, Sp, Len, DestStream) ->
{ok, NewSp, _Sp2} = stream_data(Fd, Sp, Len, ?HUGE_CHUNK,
fun(Bin, AccPointer) ->
{ok, NewPointer} = write(DestStream, Bin),
- if AccPointer == null -> NewPointer; true -> AccPointer end
+ {ok, if AccPointer == null -> NewPointer; true -> AccPointer end}
end,
null),
{ok, NewSp}.