You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by da...@apache.org on 2009/06/01 02:27:28 UTC

svn commit: r780539 - in /couchdb/trunk: share/www/script/test/changes.js src/couchdb/couch_httpd_db.erl

Author: damien
Date: Mon Jun  1 00:27:28 2009
New Revision: 780539

URL: http://svn.apache.org/viewvc?rev=780539&view=rev
Log:
Added tests for heartbeat and timeout options in the _changes api.

Modified:
    couchdb/trunk/share/www/script/test/changes.js
    couchdb/trunk/src/couchdb/couch_httpd_db.erl

Modified: couchdb/trunk/share/www/script/test/changes.js
URL: http://svn.apache.org/viewvc/couchdb/trunk/share/www/script/test/changes.js?rev=780539&r1=780538&r2=780539&view=diff
==============================================================================
--- couchdb/trunk/share/www/script/test/changes.js (original)
+++ couchdb/trunk/share/www/script/test/changes.js Mon Jun  1 00:27:28 2009
@@ -30,6 +30,12 @@
   
   T(resp.results.length == 1 && resp.last_seq==1)
   T(resp.results[0].changes[0].rev == docFoo._rev)
+
+  
+  req = CouchDB.request("GET", "/test_suite_db/_changes?continuous=true&timeout=10");
+  var resp = JSON.parse(req.responseText);
+  T(resp.results.length == 1 && resp.last_seq==1)
+  T(resp.results[0].changes[0].rev == docFoo._rev)
   
   var xhr;
   
@@ -43,7 +49,7 @@
     // with real async support.
     
     var sleep = function(msecs) {
-      // by making a slow sync request, weallows the waiting XHR request data
+      // by making a slow sync request, we allow the waiting XHR request data
       // to be received.
       var req = CouchDB.request("GET", "/_sleep?time=" + msecs);
       T(JSON.parse(req.responseText).ok == true);
@@ -55,6 +61,7 @@
       }
       return JSON.parse(line);
     }
+    
   
     xhr.open("GET", "/test_suite_db/_changes?continuous=true", true);
     xhr.send("");
@@ -89,6 +96,19 @@
     T(change.seq == 3);
     T(change.id == "baz");
     T(change.changes[0].rev == docBaz._rev);
+    
+    
+    xhr = CouchDB.newXhr();
   
+    //verify the hearbeat newlines are sent
+    xhr.open("GET", "/test_suite_db/_changes?continuous=true&heartbeat=10", true);
+    xhr.send("");
+    
+    sleep(100);
+    
+    var str = xhr.responseText;
+    
+    T(str.charAt(str.length - 1) == "\n")
+    T(str.charAt(str.length - 2) == "\n")
   }
 };

Modified: couchdb/trunk/src/couchdb/couch_httpd_db.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_httpd_db.erl?rev=780539&r1=780538&r2=780539&view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_httpd_db.erl (original)
+++ couchdb/trunk/src/couchdb/couch_httpd_db.erl Mon Jun  1 00:27:28 2009
@@ -119,7 +119,8 @@
         {ok, Db2} = couch_db:open(DbName, [{user_ctx, UserCtx}]),
         keep_sending_changes(Req, Resp, Db2, EndSeq, Prepend2, Timeout, TimeoutFun);
     stop ->
-        send_chunk(Resp, io_lib:format("\n],\n\"last_seq\":~w}\n", [EndSeq]))
+        send_chunk(Resp, io_lib:format("\n],\n\"last_seq\":~w}\n", [EndSeq])),
+        send_chunk(Resp, "")
     end.
 
 send_changes(Req, Resp, Db, StartSeq, Prepend0) ->