diff options
Diffstat (limited to 'www/static/test/ext/json-enc.js')
-rw-r--r-- | www/static/test/ext/json-enc.js | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/www/static/test/ext/json-enc.js b/www/static/test/ext/json-enc.js new file mode 100644 index 00000000..88ba0b65 --- /dev/null +++ b/www/static/test/ext/json-enc.js @@ -0,0 +1,143 @@ +describe("json-enc extension", function() { + beforeEach(function () { + this.server = makeServer(); + clearWorkArea(); + }); + afterEach(function () { + this.server.restore(); + clearWorkArea(); + }); + + it('handles basic get properly', function () { + var jsonResponseBody = JSON.stringify({}); + this.server.respondWith("GET", "/test", jsonResponseBody); + var div = make('<div hx-get="/test" hx-ext="json-enc">click me</div>'); + div.click(); + this.server.respond(); + this.server.lastRequest.response.should.equal("{}"); + }) + + it('handles basic post properly', function () { + var jsonResponseBody = JSON.stringify({}); + this.server.respondWith("POST", "/test", jsonResponseBody); + var div = make("<div hx-post='/test' hx-ext='json-enc'>click me</div>"); + div.click(); + this.server.respond(); + this.server.lastRequest.response.should.equal("{}"); + }) + + it('handles basic put properly', function () { + var jsonResponseBody = JSON.stringify({}); + this.server.respondWith("PUT", "/test", jsonResponseBody); + var div = make('<div hx-put="/test" hx-ext="json-enc">click me</div>'); + div.click(); + this.server.respond(); + this.server.lastRequest.response.should.equal("{}"); + }) + + it('handles basic patch properly', function () { + var jsonResponseBody = JSON.stringify({}); + this.server.respondWith("PATCH", "/test", jsonResponseBody); + var div = make('<div hx-patch="/test" hx-ext="json-enc">click me</div>'); + div.click(); + this.server.respond(); + this.server.lastRequest.response.should.equal("{}"); + }) + + it('handles basic delete properly', function () { + var jsonResponseBody = JSON.stringify({}); + this.server.respondWith("DELETE", "/test", jsonResponseBody); + var div = make('<div hx-delete="/test" hx-ext="json-enc">click me</div>'); + div.click(); + this.server.respond(); + this.server.lastRequest.response.should.equal("{}"); + }) + + it('handles post with form parameters', function () { + + this.server.respondWith("POST", "/test", function (xhr) { + var values = JSON.parse(xhr.requestBody); + values.should.have.keys("username","password"); + values["username"].should.be.equal("joe"); + values["password"].should.be.equal("123456"); + var ans = { "passwordok": values["password"] == "123456"}; + xhr.respond(200, {}, JSON.stringify(ans)); + }); + + var html = make('<form hx-post="/test" hx-ext="json-enc" > ' + + '<input type="text" name="username" value="joe"> ' + + '<input type="password" name="password" value="123456"> ' + + '<button id="btnSubmit">Submit</button> '); + + byId("btnSubmit").click(); + this.server.respond(); + this.server.lastRequest.response.should.equal('{"passwordok":true}'); + }) + + it('handles put with form parameters', function () { + this.server.respondWith("PUT", "/test", function (xhr) { + var values = JSON.parse(xhr.requestBody); + values.should.have.keys("username","password"); + values["username"].should.be.equal("joe"); + values["password"].should.be.equal("123456"); + var ans = { "passwordok": values["password"] == "123456"}; + xhr.respond(200, {}, JSON.stringify(ans)); + }); + + var html = make('<form hx-put="/test" hx-ext="json-enc" > ' + + '<input type="text" name="username" value="joe"> ' + + '<input type="password" name="password" value="123456"> ' + + '<button id="btnSubmit">Submit</button> '); + + byId("btnSubmit").click(); + this.server.respond(); + this.server.lastRequest.response.should.equal('{"passwordok":true}'); + }) + + + it('handles patch with form parameters', function () { + + this.server.respondWith("PATCH", "/test", function (xhr) { + var values = JSON.parse(xhr.requestBody); + values.should.have.keys("username","password"); + values["username"].should.be.equal("joe"); + values["password"].should.be.equal("123456"); + var ans = { "passwordok": values["password"] == "123456"}; + xhr.respond(200, {}, JSON.stringify(ans)); + }); + + var html = make('<form hx-patch="/test" hx-ext="json-enc" > ' + + '<input type="text" name="username" value="joe"> ' + + '<input type="password" name="password" value="123456"> ' + + '<button id="btnSubmit">Submit</button> '); + + byId("btnSubmit").click(); + this.server.respond(); + this.server.lastRequest.response.should.equal('{"passwordok":true}'); + }) + + it('handles delete with form parameters', function () { + + this.server.respondWith("DELETE", "/test", function (xhr) { + var values = JSON.parse(xhr.requestBody); + values.should.have.keys("username","password"); + values["username"].should.be.equal("joe"); + values["password"].should.be.equal("123456"); + var ans = { "passwordok": values["password"] == "123456"}; + xhr.respond(200, {}, JSON.stringify(ans)); + }); + + var html = make('<form hx-delete="/test" hx-ext="json-enc" > ' + + '<input type="text" name="username" value="joe"> ' + + '<input type="password" name="password" value="123456"> ' + + '<button id="btnSubmit">Submit</button> '); + + byId("btnSubmit").click(); + this.server.respond(); + this.server.lastRequest.response.should.equal('{"passwordok":true}'); + }) + + + +}); + |