summaryrefslogtreecommitdiffstatshomepage
path: root/test/manual/browser-only-tests.html
diff options
context:
space:
mode:
Diffstat (limited to 'test/manual/browser-only-tests.html')
-rw-r--r--test/manual/browser-only-tests.html110
1 files changed, 110 insertions, 0 deletions
diff --git a/test/manual/browser-only-tests.html b/test/manual/browser-only-tests.html
new file mode 100644
index 00000000..7ef37eb5
--- /dev/null
+++ b/test/manual/browser-only-tests.html
@@ -0,0 +1,110 @@
+<html lang="en">
+<head>
+ <meta charset="utf-8" />
+ <title>Mocha Tests</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <link rel="stylesheet" href="../../node_modules/mocha/mocha.css" />
+</head>
+<body style="padding:20px;font-family: sans-serif">
+<div id="mocha"></div>
+<script src="../../node_modules/chai/chai.js"></script>
+<script src="../../node_modules/mocha/mocha.js"></script>
+<script src="../../node_modules/sinon/pkg/sinon.js"></script>
+<script src="../../src/kutty.js"></script>
+<script class="mocha-init">
+ mocha.setup('bdd');
+ mocha.checkLeaks();
+ should = chai.should();
+</script>
+
+<script src="../util/util.js"></script>
+<script>
+ describe("Browser Only Tests", function() {
+
+ beforeEach(function () {
+ this.server = makeServer();
+ clearWorkArea();
+ });
+ afterEach(function () {
+ this.server.restore();
+ clearWorkArea();
+ });
+
+ it("should handle a basic back button click", function (done) {
+ this.server.respondWith("GET", "/test", "second");
+
+ getWorkArea().innerHTML.should.be.equal("");
+ var div = make('<div kt-push-url="true" kt-get="/test">first</div>');
+ div.click();
+ this.server.respond();
+ getWorkArea().textContent.should.equal("second")
+ history.back();
+ setTimeout(function(){
+ getWorkArea().textContent.should.equal("first");
+ done();
+ }, 20);
+ });
+
+ it("should handle two forward clicks then back twice", function (done) {
+ var i = 0;
+ this.server.respondWith("GET", "/test", function(xhr){
+ i++;
+ xhr.respond(200, {}, "" + i);
+ });
+
+ getWorkArea().innerHTML.should.equal("");
+ var div = make('<div kt-push-url="true" kt-get="/test" class="">0</div>');
+ div.click();
+ this.server.respond();
+ getWorkArea().textContent.should.equal("1")
+
+ div.click();
+ this.server.respond();
+ getWorkArea().textContent.should.equal("2")
+
+ history.back();
+ setTimeout(function(){
+ getWorkArea().textContent.should.equal("1");
+ history.back();
+ setTimeout(function(){
+ getWorkArea().textContent.should.equal("0");
+ done();
+ }, 20);
+ }, 20);
+ })
+
+ it("should handle a back, forward, back button click", function (done) {
+ this.server.respondWith("GET", "/test", "second");
+
+ getWorkArea().innerHTML.should.equal("");
+ var div = make('<div kt-push-url="true" kt-get="/test" class="">first</div>');
+ div.click();
+ this.server.respond();
+ getWorkArea().textContent.should.equal("second")
+ history.back();
+ setTimeout(function(){
+ getWorkArea().textContent.should.equal("first");
+ history.forward();
+ setTimeout(function() {
+ getWorkArea().textContent.should.equal("second");
+ history.back();
+ setTimeout(function() {
+ getWorkArea().textContent.should.equal("first");
+ done();
+ }, 20);
+ }, 20);
+ }, 20);
+ })
+ });
+</script>
+
+
+<script class="mocha-exec">
+ mocha.run();
+</script>
+<em>Work Area</em>
+<hr/>
+<div id="work-area" kt-history-elt>
+</div>
+</body>
+</html>