couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jan Lehnardt <...@apache.org>
Subject Re: svn commit: r774474 - in /couchdb/trunk: etc/couchdb/default.ini.tpl.in share/www/script/test/changes.js src/couchdb/couch_httpd_misc_handlers.erl src/couchdb/couch_query_servers.erl
Date Thu, 14 May 2009 00:54:47 GMT
Hi Damien,

Can you take care of blocking / merging commits from / to
branches/0.9.x or should somebody else look after it? I'd
volunteer.

Cheers
Jan
--



On 13 May 2009, at 20:27, damien@apache.org wrote:

> Author: damien
> Date: Wed May 13 18:27:11 2009
> New Revision: 774474
>
> URL: http://svn.apache.org/viewvc?rev=774474&view=rev
> Log:
> Adding testing for GET /_changes?continuous=true by adding a GET / 
> _sleep?time=Msecs call, which allows the browser to process the  
> waiting data on the other async XHR request.
>
> Modified:
>    couchdb/trunk/etc/couchdb/default.ini.tpl.in
>    couchdb/trunk/share/www/script/test/changes.js
>    couchdb/trunk/src/couchdb/couch_httpd_misc_handlers.erl
>    couchdb/trunk/src/couchdb/couch_query_servers.erl
>
> Modified: couchdb/trunk/etc/couchdb/default.ini.tpl.in
> URL: http://svn.apache.org/viewvc/couchdb/trunk/etc/couchdb/default.ini.tpl.in?rev=774474&r1=774473&r2=774474&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- couchdb/trunk/etc/couchdb/default.ini.tpl.in (original)
> +++ couchdb/trunk/etc/couchdb/default.ini.tpl.in Wed May 13 18:27:11  
> 2009
> @@ -60,6 +60,7 @@
> _restart = {couch_httpd_misc_handlers, handle_restart_req}
> _stats = {couch_httpd_stats_handlers, handle_stats_req}
> _log = {couch_httpd_misc_handlers, handle_log_req}
> +_sleep = {couch_httpd_misc_handlers, handle_sleep_req}
>
> [httpd_db_handlers]
> _compact = {couch_httpd_db, handle_compact_req}
>
> Modified: couchdb/trunk/share/www/script/test/changes.js
> URL: http://svn.apache.org/viewvc/couchdb/trunk/share/www/script/test/changes.js?rev=774474&r1=774473&r2=774474&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- couchdb/trunk/share/www/script/test/changes.js (original)
> +++ couchdb/trunk/share/www/script/test/changes.js Wed May 13  
> 18:27:11 2009
> @@ -10,29 +10,85 @@
> // License for the specific language governing permissions and  
> limitations under
> // the License.
>
> +
> couchTests.changes = function(debug) {
>   var db = new CouchDB("test_suite_db");
>   db.deleteDb();
>   db.createDb();
>   if (debug) debugger;
>
> -
> -  var req = CouchDB.newXhr();
> -
> -  req.open("GET", "/test_suite_db/_changes", false);
> -  req.send("");
> +  var req = CouchDB.request("GET", "/test_suite_db/_changes");
>   var resp = JSON.parse(req.responseText);
>
>   T(resp.results.length == 0 && resp.last_seq==0)
>
> -  var doc = {_id:"foo", bar:1};
> -  db.save(doc);
> +  var docFoo = {_id:"foo", bar:1};
> +  db.save(docFoo);
>
> -  req.open("GET", "/test_suite_db/_changes", false);
> -  req.send("");
> +  req = CouchDB.request("GET", "/test_suite_db/_changes");
>   var resp = JSON.parse(req.responseText);
>
>   T(resp.results.length == 1 && resp.last_seq==1)
> -  T(resp.results[0].changes[0].rev == doc._rev)
> +  T(resp.results[0].changes[0].rev == docFoo._rev)
> +
> +  var xhr;
> +
> +  try {
> +    xhr = CouchDB.newXhr();
> +  } catch (err) {
> +  }
> +
> +  if (xhr) {
> +    // Only test the continuous stuff if we have a real XHR object
> +    // with real async support.
> +
> +    var sleep = function(msecs) {
> +      // by making a slow sync request, weallows the waiting XHR  
> request data
> +      // to be received.
> +      var req = CouchDB.request("GET", "/_sleep?time=" + msecs);
> +      T(JSON.parse(req.responseText).ok == true);
> +    }
> +
> +    var parse_changes_line = function(line) {
> +      if (line.charAt(line.length-1) == ",") {
> +        line = line.substring(0, line.length-1);
> +      }
> +      return JSON.parse(line);
> +    }
> +
> +    xhr.open("GET", "/test_suite_db/_changes?continuous=true", true);
> +    xhr.send("");
> +
> +    var docBar = {_id:"bar", bar:1};
> +    db.save(docBar);
> +
> +    sleep(100);
> +    var lines = xhr.responseText.split("\n");
> +
> +    T(lines[0]='{"results":[');
> +
> +    var change = parse_changes_line(lines[1]);
> +
> +    T(change.seq == 1)
> +    T(change.id == "foo")
> +
> +    change = parse_changes_line(lines[2]);
> +
> +    T(change.seq == 2)
> +    T(change.id == "bar")
> +    T(change.changes[0].rev == docBar._rev)
> +
> +    var docBaz = {_id:"baz", baz:1};
> +    db.save(docBaz);
> +
> +    sleep(100);
> +    var lines = xhr.responseText.split("\n");
> +
> +    change = parse_changes_line(lines[3]);
> +
> +    T(change.seq == 3);
> +    T(change.id == "baz");
> +    T(change.changes[0].rev == docBaz._rev);
>
> +  }
> };
>
> Modified: couchdb/trunk/src/couchdb/couch_httpd_misc_handlers.erl
> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_httpd_misc_handlers.erl?rev=774474&r1=774473&r2=774474&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- couchdb/trunk/src/couchdb/couch_httpd_misc_handlers.erl (original)
> +++ couchdb/trunk/src/couchdb/couch_httpd_misc_handlers.erl Wed May  
> 13 18:27:11 2009
> @@ -15,7 +15,7 @@
> -export([handle_welcome_req/2,handle_favicon_req/ 
> 2,handle_utils_dir_req/2,
>     handle_all_dbs_req/1,handle_replicate_req/1,handle_restart_req/1,
>     handle_uuids_req/1,handle_config_req/1,handle_log_req/1,
> -    handle_task_status_req/1]).
> +    handle_task_status_req/1,handle_sleep_req/1]).
>
> -export([increment_update_seq_req/2]).
>
> @@ -56,6 +56,12 @@
> handle_utils_dir_req(Req, _) ->
>     send_method_not_allowed(Req, "GET,HEAD").
>
> +handle_sleep_req(#httpd{method='GET'}=Req) ->
> +    Time = list_to_integer(couch_httpd:qs_value(Req, "time")),
> +    receive snicklefart -> ok after Time -> ok end,
> +    send_json(Req, {[{ok, true}]});
> +handle_sleep_req(Req) ->
> +    send_method_not_allowed(Req, "GET,HEAD").
>
> handle_all_dbs_req(#httpd{method='GET'}=Req) ->
>     {ok, DbNames} = couch_server:all_databases(),
>
> Modified: couchdb/trunk/src/couchdb/couch_query_servers.erl
> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_query_servers.erl?rev=774474&r1=774473&r2=774474&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- couchdb/trunk/src/couchdb/couch_query_servers.erl (original)
> +++ couchdb/trunk/src/couchdb/couch_query_servers.erl Wed May 13  
> 18:27:11 2009
> @@ -278,7 +278,7 @@
>     [{Pid, Lang}] ->
>         case Status of
>         normal -> ok;
> -        _ -> ?LOG_DEBUG("Linked process died abnromally: ~p  
> (reason: ~p)", [Pid, Status])
> +        _ -> ?LOG_DEBUG("Linked process died abnormally: ~p  
> (reason: ~p)", [Pid, Status])
>         end,
>         {ok, {
>             Langs,
>
>
>


Mime
View raw message