Annotate

spec/mod_bosh_spec.lua @ 13014:06453c564141

util.startup: Add prosody.started promise to easily execute code after startup To avoid a race where server-started fires before the promise function body is run (on next tick), I moved server-started to fire on the next tick, which seems sensible anyway. Errors are logged, I'm not sure if we ought to be doing something more here. I'm sure we'll find out.
author Matthew Wild <mwild1@gmail.com>
date Sat, 01 Apr 2023 11:56:38 +0100
parent 9374:a1a39d395260
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9374
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 -- Requires a host 'localhost' with SASL ANONYMOUS
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 local bosh_url = "http://localhost:5280/http-bind"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 local logger = require "util.logger";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 local debug = false;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 local print = print;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 if debug then
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 logger.add_simple_sink(print, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 --"debug";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 "info";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 "warn";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 "error";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 });
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 else
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 print = function () end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 describe("#mod_bosh", function ()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 local server = require "net.server_select";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 package.loaded["net.server"] = server;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 local async = require "util.async";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26 local timer = require "util.timer";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 local http = require "net.http".new({ suppress_errors = false });
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29 local function sleep(n)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30 local wait, done = async.waiter();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 timer.add_task(n, function () done() end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32 wait();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
35 local st = require "util.stanza";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
36 local xml = require "util.xml";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
37
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
38 local function request(url, opt, cb, auto_wait)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
39 local wait, done = async.waiter();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
40 local ok, err;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
41 http:request(url, opt, function (...)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
42 ok, err = pcall(cb, ...);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
43 if not ok then print("CAUGHT", err) end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
44 done();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
45 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
46 local function err_wait(throw)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
47 wait();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
48 if throw ~= false and not ok then
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
49 error(err);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
50 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
51 return ok, err;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
52 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
53 if auto_wait == false then
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
54 return err_wait;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
55 else
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
56 err_wait();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
57 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
58 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
59
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
60 local function run_async(f)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
61 local err;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
62 local r = async.runner();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
63 r:onerror(function (_, err_)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
64 print("EER", err_)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
65 err = err_;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
66 server.setquitting("once");
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
67 end)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
68 :onwaiting(function ()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
69 --server.loop();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
70 end)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
71 :run(function ()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
72 f()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
73 server.setquitting("once");
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
74 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
75 server.loop();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
76 if err then
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
77 error(err);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
78 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
79 if r.state ~= "ready" then
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
80 error("Runner in unexpected state: "..r.state);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
81 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
82 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
83
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
84 it("test endpoint should be reachable", function ()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
85 -- This is partly just to ensure the other tests have a chance to succeed
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
86 -- (i.e. the BOSH endpoint is up and functioning)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
87 local function test()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
88 request(bosh_url, nil, function (resp, code)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
89 if code ~= 200 then
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
90 error("Unable to reach BOSH endpoint "..bosh_url);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
91 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
92 assert.is_string(resp);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
93 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
94 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
95 run_async(test);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
96 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
97
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
98 it("should respond to past rids with past responses", function ()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
99 local resp_1000_1, resp_1000_2 = "1", "2";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
100
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
101 local function test_bosh()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
102 local sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
103
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
104 -- Set up BOSH session
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
105 request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
106 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
107 to = "localhost";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
108 from = "test@localhost";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
109 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
110 hold = "1";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
111 rid = "998";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
112 wait = "10";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
113 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
114 ["xmpp:version"] = "1.0";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
115 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
116 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
117 })
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
118 :tag("auth", { xmlns = "urn:ietf:params:xml:ns:xmpp-sasl", mechanism = "ANONYMOUS" }):up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
119 :tag("iq", { xmlns = "jabber:client", type = "set", id = "bind1" })
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
120 :tag("bind", { xmlns = "urn:ietf:params:xml:ns:xmpp-bind" })
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
121 :tag("resource"):text("bosh-test1"):up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
122 :up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
123 :up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
124 );
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
125 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
126 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
127 if not response_body:find("<jid>", 1, true) then
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
128 print("ERR", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
129 error("Failed to set up BOSH session");
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
130 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
131 sid = assert(resp.attr.sid);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
132 print("SID", sid);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
133 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
134
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
135 -- Receive some additional post-login stuff
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
136 request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
137 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
138 sid = sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
139 rid = "999";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
140 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
141 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
142 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
143 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
144 })
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
145 )
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
146 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
147 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
148 print("RESP 999", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
149 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
150
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
151 -- Send first long poll
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
152 print "SEND 1000#1"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
153 local wait1000 = request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
154 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
155 sid = sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
156 rid = "1000";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
157 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
158 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
159 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
160 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
161 }))
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
162 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
163 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
164 resp_1000_1 = resp;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
165 print("RESP 1000#1", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
166 end, false);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
167
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
168 -- Wait a couple of seconds
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
169 sleep(2)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
170
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
171 -- Send an early request, causing rid 1000 to return early
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
172 print "SEND 1001"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
173 local wait1001 = request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
174 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
175 sid = sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
176 rid = "1001";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
177 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
178 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
179 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
180 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
181 }))
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
182 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
183 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
184 print("RESP 1001", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
185 end, false);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
186 -- Ensure we've received the response for rid 1000
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
187 wait1000();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
188
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
189 -- Sleep a couple of seconds
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
190 print "...pause..."
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
191 sleep(2);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
192
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
193 -- Re-send rid 1000, we should get the same response
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
194 print "SEND 1000#2"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
195 request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
196 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
197 sid = sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
198 rid = "1000";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
199 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
200 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
201 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
202 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
203 }))
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
204 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
205 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
206 resp_1000_2 = resp;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
207 print("RESP 1000#2", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
208 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
209
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
210 local wait_final = request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
211 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
212 sid = sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
213 rid = "1002";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
214 type = "terminate";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
215 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
216 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
217 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
218 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
219 }))
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
220 }, function ()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
221 end, false);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
222
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
223 print "WAIT 1001"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
224 wait1001();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
225 wait_final();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
226 print "DONE ALL"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
227 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
228 run_async(test_bosh);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
229 assert.truthy(resp_1000_1);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
230 assert.same(resp_1000_1, resp_1000_2);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
231 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
232
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
233 it("should handle out-of-order requests", function ()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
234 local function test()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
235 local sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
236 -- Set up BOSH session
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
237 local wait, done = async.waiter();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
238 http:request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
239 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
240 to = "localhost";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
241 from = "test@localhost";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
242 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
243 hold = "1";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
244 rid = "1";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
245 wait = "10";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
246 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
247 ["xmpp:version"] = "1.0";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
248 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
249 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
250 }));
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
251 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
252 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
253 sid = assert(resp.attr.sid, "Failed to set up BOSH session");
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
254 print("SID", sid);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
255 done();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
256 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
257 print "WAIT 1"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
258 wait();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
259 print "DONE 1"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
260
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
261 local rid2_response_received = false;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
262
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
263 -- Temporarily skip rid 2, to simulate missed request
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
264 local wait3, done3 = async.waiter();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
265 http:request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
266 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
267 sid = sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
268 rid = "3";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
269 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
270 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
271 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
272 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
273 }):tag("iq", { xmlns = "jabber:client", type = "set", id = "bind" })
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
274 :tag("bind", { xmlns = "urn:ietf:params:xml:ns:xmpp-bind" }):up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
275 :up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
276 )
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
277 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
278 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
279 print("RESP 3", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
280 done3();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
281 -- The server should not respond to this request until
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
282 -- it has responded to rid 2
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
283 assert.is_true(rid2_response_received);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
284 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
285
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
286 print "SLEEPING"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
287 sleep(2);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
288 print "SLEPT"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
289
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
290 -- Send the "missed" rid 2
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
291 local wait2, done2 = async.waiter();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
292 http:request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
293 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
294 sid = sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
295 rid = "2";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
296 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
297 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
298 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
299 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
300 }):tag("auth", { xmlns = "urn:ietf:params:xml:ns:xmpp-sasl", mechanism = "ANONYMOUS" }):up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
301 )
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
302 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
303 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
304 print("RESP 2", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
305 rid2_response_received = true;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
306 done2();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
307 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
308 print "WAIT 2"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
309 wait2();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
310 print "WAIT 3"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
311 wait3();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
312 print "QUIT"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
313 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
314 run_async(test);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
315 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
316
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
317 it("should work", function ()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
318 local function test()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
319 local sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
320 -- Set up BOSH session
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
321 local wait, done = async.waiter();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
322 http:request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
323 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
324 to = "localhost";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
325 from = "test@localhost";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
326 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
327 hold = "1";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
328 rid = "1";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
329 wait = "10";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
330 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
331 ["xmpp:version"] = "1.0";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
332 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
333 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
334 }));
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
335 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
336 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
337 sid = assert(resp.attr.sid, "Failed to set up BOSH session");
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
338 print("SID", sid);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
339 done();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
340 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
341 print "WAIT 1"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
342 wait();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
343 print "DONE 1"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
344
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
345 local rid2_response_received = false;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
346
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
347 -- Send the "missed" rid 2
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
348 local wait2, done2 = async.waiter();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
349 http:request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
350 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
351 sid = sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
352 rid = "2";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
353 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
354 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
355 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
356 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
357 }):tag("auth", { xmlns = "urn:ietf:params:xml:ns:xmpp-sasl", mechanism = "ANONYMOUS" }):up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
358 )
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
359 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
360 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
361 print("RESP 2", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
362 rid2_response_received = true;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
363 done2();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
364 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
365
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
366 local wait3, done3 = async.waiter();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
367 http:request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
368 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
369 sid = sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
370 rid = "3";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
371 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
372 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
373 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
374 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
375 }):tag("iq", { xmlns = "jabber:client", type = "set", id = "bind" })
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
376 :tag("bind", { xmlns = "urn:ietf:params:xml:ns:xmpp-bind" }):up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
377 :up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
378 )
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
379 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
380 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
381 print("RESP 3", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
382 done3();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
383 -- The server should not respond to this request until
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
384 -- it has responded to rid 2
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
385 assert.is_true(rid2_response_received);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
386 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
387
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
388 print "SLEEPING"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
389 sleep(2);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
390 print "SLEPT"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
391
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
392 print "WAIT 2"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
393 wait2();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
394 print "WAIT 3"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
395 wait3();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
396 print "QUIT"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
397 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
398 run_async(test);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
399 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
400
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
401 it("should handle aborted pending requests", function ()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
402 local resp_1000_1, resp_1000_2 = "1", "2";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
403
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
404 local function test_bosh()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
405 local sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
406
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
407 -- Set up BOSH session
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
408 request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
409 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
410 to = "localhost";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
411 from = "test@localhost";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
412 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
413 hold = "1";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
414 rid = "998";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
415 wait = "10";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
416 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
417 ["xmpp:version"] = "1.0";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
418 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
419 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
420 })
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
421 :tag("auth", { xmlns = "urn:ietf:params:xml:ns:xmpp-sasl", mechanism = "ANONYMOUS" }):up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
422 :tag("iq", { xmlns = "jabber:client", type = "set", id = "bind1" })
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
423 :tag("bind", { xmlns = "urn:ietf:params:xml:ns:xmpp-bind" })
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
424 :tag("resource"):text("bosh-test1"):up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
425 :up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
426 :up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
427 );
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
428 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
429 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
430 if not response_body:find("<jid>", 1, true) then
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
431 print("ERR", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
432 error("Failed to set up BOSH session");
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
433 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
434 sid = assert(resp.attr.sid);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
435 print("SID", sid);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
436 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
437
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
438 -- Receive some additional post-login stuff
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
439 request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
440 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
441 sid = sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
442 rid = "999";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
443 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
444 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
445 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
446 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
447 })
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
448 )
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
449 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
450 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
451 print("RESP 999", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
452 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
453
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
454 -- Send first long poll
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
455 print "SEND 1000#1"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
456 local wait1000_1 = request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
457 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
458 sid = sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
459 rid = "1000";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
460 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
461 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
462 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
463 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
464 }))
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
465 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
466 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
467 resp_1000_1 = resp;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
468 assert.is_nil(resp.attr.type);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
469 print("RESP 1000#1", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
470 end, false);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
471
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
472 -- Wait a couple of seconds
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
473 sleep(2)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
474
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
475 -- Re-send rid 1000, we should eventually get a normal response (with no stanzas)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
476 print "SEND 1000#2"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
477 request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
478 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
479 sid = sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
480 rid = "1000";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
481 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
482 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
483 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
484 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
485 }))
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
486 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
487 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
488 resp_1000_2 = resp;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
489 assert.is_nil(resp.attr.type);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
490 print("RESP 1000#2", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
491 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
492
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
493 wait1000_1();
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
494 print "DONE ALL"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
495 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
496 run_async(test_bosh);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
497 assert.truthy(resp_1000_1);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
498 assert.same(resp_1000_1, resp_1000_2);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
499 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
500
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
501 it("should fail on requests beyond rid window", function ()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
502 local function test_bosh()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
503 local sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
504
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
505 -- Set up BOSH session
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
506 request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
507 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
508 to = "localhost";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
509 from = "test@localhost";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
510 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
511 hold = "1";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
512 rid = "998";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
513 wait = "10";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
514 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
515 ["xmpp:version"] = "1.0";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
516 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
517 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
518 })
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
519 :tag("auth", { xmlns = "urn:ietf:params:xml:ns:xmpp-sasl", mechanism = "ANONYMOUS" }):up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
520 :tag("iq", { xmlns = "jabber:client", type = "set", id = "bind1" })
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
521 :tag("bind", { xmlns = "urn:ietf:params:xml:ns:xmpp-bind" })
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
522 :tag("resource"):text("bosh-test1"):up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
523 :up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
524 :up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
525 );
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
526 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
527 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
528 if not response_body:find("<jid>", 1, true) then
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
529 print("ERR", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
530 error("Failed to set up BOSH session");
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
531 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
532 sid = assert(resp.attr.sid);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
533 print("SID", sid);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
534 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
535
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
536 -- Receive some additional post-login stuff
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
537 request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
538 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
539 sid = sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
540 rid = "999";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
541 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
542 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
543 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
544 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
545 })
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
546 )
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
547 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
548 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
549 print("RESP 999", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
550 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
551
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
552 -- Send poll with a rid that's too high (current + 2, where only current + 1 is allowed)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
553 print "SEND 1002(!)"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
554 request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
555 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
556 sid = sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
557 rid = "1002";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
558 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
559 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
560 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
561 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
562 }))
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
563 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
564 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
565 assert.equal("terminate", resp.attr.type);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
566 print("RESP 1002(!)", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
567 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
568
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
569 print "DONE ALL"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
570 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
571 run_async(test_bosh);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
572 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
573
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
574 it("should always succeed for requests within the rid window", function ()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
575 local function test()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
576 local sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
577 -- Set up BOSH session
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
578 request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
579 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
580 to = "localhost";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
581 from = "test@localhost";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
582 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
583 hold = "1";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
584 rid = "1";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
585 wait = "10";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
586 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
587 ["xmpp:version"] = "1.0";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
588 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
589 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
590 }));
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
591 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
592 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
593 sid = assert(resp.attr.sid, "Failed to set up BOSH session");
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
594 print("SID", sid);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
595 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
596 print "DONE 1"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
597
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
598 request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
599 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
600 sid = sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
601 rid = "2";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
602 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
603 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
604 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
605 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
606 }):tag("auth", { xmlns = "urn:ietf:params:xml:ns:xmpp-sasl", mechanism = "ANONYMOUS" }):up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
607 )
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
608 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
609 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
610 print("RESP 2", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
611 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
612
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
613 local resp3;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
614 request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
615 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
616 sid = sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
617 rid = "3";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
618 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
619 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
620 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
621 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
622 }):tag("iq", { xmlns = "jabber:client", type = "set", id = "bind" })
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
623 :tag("bind", { xmlns = "urn:ietf:params:xml:ns:xmpp-bind" }):up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
624 :up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
625 )
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
626 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
627 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
628 print("RESP 3#1", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
629 resp3 = resp;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
630 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
631
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
632
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
633 request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
634 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
635 sid = sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
636 rid = "4";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
637 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
638 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
639 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
640 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
641 }):tag("iq", { xmlns = "jabber:client", type = "get", id = "ping1" })
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
642 :tag("ping", { xmlns = "urn:xmpp:ping" }):up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
643 :up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
644 )
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
645 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
646 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
647 print("RESP 4", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
648 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
649
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
650 request(bosh_url, {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
651 body = tostring(st.stanza("body", {
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
652 sid = sid;
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
653 rid = "3";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
654 content = "text/xml; charset=utf-8";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
655 ["xml:lang"] = "en";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
656 xmlns = "http://jabber.org/protocol/httpbind";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
657 ["xmlns:xmpp"] = "urn:xmpp:xbosh";
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
658 }):tag("iq", { xmlns = "jabber:client", type = "set", id = "bind" })
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
659 :tag("bind", { xmlns = "urn:ietf:params:xml:ns:xmpp-bind" }):up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
660 :up()
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
661 )
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
662 }, function (response_body)
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
663 local resp = xml.parse(response_body);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
664 print("RESP 3#2", resp:pretty_print());
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
665 assert.not_equal("terminate", resp.attr.type);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
666 assert.same(resp3, resp);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
667 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
668
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
669
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
670 print "QUIT"
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
671 end
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
672 run_async(test);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
673 end);
a1a39d395260 mod_bosh: Add tests (run with 'busted -r bosh')
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
674 end);