diff options
Diffstat (limited to 'test/attributes/kt-trigger.js')
-rw-r--r-- | test/attributes/kt-trigger.js | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/test/attributes/kt-trigger.js b/test/attributes/kt-trigger.js new file mode 100644 index 00000000..7b844693 --- /dev/null +++ b/test/attributes/kt-trigger.js @@ -0,0 +1,86 @@ +describe("kt-trigger attribute", function(){ + beforeEach(function() { + this.server = sinon.fakeServer.create(); + clearWorkArea(); + }); + afterEach(function() { + this.server.restore(); + clearWorkArea(); + }); + + it('non-default value works', function() + { + this.server.respondWith("GET", "/test", "Clicked!"); + + var form = make('<form kt-get="/test" kt-trigger="click">Click Me!</form>'); + form.click(); + form.innerHTML.should.equal("Click Me!"); + this.server.respond(); + form.innerHTML.should.equal("Clicked!"); + }); + + it('changed modifier works', function() + { + var requests = 0; + this.server.respondWith("GET", "/test", function (xhr) { + requests++; + xhr.respond(200, {}, "Requests: " + requests); + }); + var input = make('<input kt-trigger="click changed" kt-target="#d1" kt-get="/test" value="foo"/>'); + var div = make('<div id="d1"></div>'); + input.click(); + this.server.respond(); + div.innerHTML.should.equal("Requests: 1"); + input.click(); + this.server.respond(); + div.innerHTML.should.equal("Requests: 1"); + input.value = "bar"; + input.click(); + this.server.respond(); + div.innerHTML.should.equal("Requests: 2"); + input.click(); + this.server.respond(); + div.innerHTML.should.equal("Requests: 2"); + }); + + it('once modifier works', function() + { + var requests = 0; + this.server.respondWith("GET", "/test", function (xhr) { + requests++; + xhr.respond(200, {}, "Requests: " + requests); + }); + var input = make('<input kt-trigger="click once" kt-target="#d1" kt-get="/test" value="foo"/>'); + var div = make('<div id="d1"></div>'); + input.click(); + this.server.respond(); + div.innerHTML.should.equal("Requests: 1"); + input.click(); + this.server.respond(); + div.innerHTML.should.equal("Requests: 1"); + input.value = "bar"; + input.click(); + this.server.respond(); + div.innerHTML.should.equal("Requests: 1"); + input.click(); + this.server.respond(); + div.innerHTML.should.equal("Requests: 1"); + }); + + it('polling works', function(complete) + { + var requests = 0; + this.server.respondWith("GET", "/test", function (xhr) { + requests++; + xhr.respond(200, {}, "Requests: " + requests); + if (requests > 5) { + complete(); + } + }); + this.server.autoRespond = true; + this.server.autoRespondAfter = 0; + make('<div kt-trigger="every 10ms" kt-get="/test"/>'); + }); + + +}) |