You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2021/01/12 18:58:36 UTC
[myfaces-tobago] 02/02: fix: jasmine tests
This is an automated email from the ASF dual-hosted git repository.
bommel pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git
commit 6cc1e17c2e7e34bd9e5ca1f04bb9fd76675e82b7
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Tue Jan 12 19:43:05 2021 +0100
fix: jasmine tests
---
.../10-selectBooleanCheckbox/Checkbox.test.js | 228 ++++++++++-----------
.../15-selectBooleanToggle/Toggle.test.js | 227 ++++++++++----------
.../030-select/20-selectOneChoice/Dropdown.test.js | 127 ++++++------
.../030-select/30-selectOneRadio/Radio.test.js | 1 +
.../030-select/40-selectOneListbox/Listbox.test.js | 152 +++++++-------
.../50-selectManyCheckbox/Multi_Checkbox.test.js | 214 ++++++++++---------
.../70-selectManyShuttle/Shuttle.test.js | 198 ++++++++----------
7 files changed, 541 insertions(+), 606 deletions(-)
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/10-selectBooleanCheckbox/Checkbox.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/10-selectBooleanCheckbox/Checkbox.test.js
index 9fc1d31..9fd41eb 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/10-selectBooleanCheckbox/Checkbox.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/10-selectBooleanCheckbox/Checkbox.test.js
@@ -16,152 +16,132 @@
*/
import {JasmineTestTool} from "/tobago/test/tobago-test-tool.js";
-
-it("not implemented yet", function (done) {
- let test = new JasmineTestTool(done);
- test.do(() => fail("not implemented yet"));
- test.start();
-});
-
-/*
import {querySelectorFn} from "/script/tobago-test.js";
-import {TobagoTestTool} from "/tobago/test/tobago-test-tool.js";
-QUnit.test("submit: select A", function (assert) {
+it("submit: select A", function (done) {
let selectAFn = querySelectorFn("#page\\:mainForm\\:selectA input");
let selectBFn = querySelectorFn("#page\\:mainForm\\:selectB input");
let selectCFn = querySelectorFn("#page\\:mainForm\\:selectC input");
let submitFn = querySelectorFn("#page\\:mainForm\\:submit");
- let outputFn = querySelectorFn("#page\\:mainForm\\:submitOutput span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- selectAFn().checked = true;
- selectBFn().checked = false;
- selectCFn().checked = false;
- submitFn().click();
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputFn().textContent, "A ");
- });
- TTT.startTest();
+ let outputFn = querySelectorFn("#page\\:mainForm\\:submitOutput tobago-out");
+
+ let test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent === "",
+ () => {
+ selectAFn().checked = false;
+ selectBFn().checked = false;
+ selectCFn().checked = false;
+ }, "click", submitFn);
+ test.do(() => selectAFn().checked = true);
+ test.do(() => selectBFn().checked = false);
+ test.do(() => selectCFn().checked = false);
+ test.event("click", submitFn, () => outputFn().textContent.trim(), "A");
+ test.do(() => expect(outputFn().textContent.trim()).toBe("A"));
+ test.start();
});
-QUnit.test("submit: select B and C", function (assert) {
+it("submit: select B and C", function (done) {
let selectAFn = querySelectorFn("#page\\:mainForm\\:selectA input");
let selectBFn = querySelectorFn("#page\\:mainForm\\:selectB input");
let selectCFn = querySelectorFn("#page\\:mainForm\\:selectC input");
let submitFn = querySelectorFn("#page\\:mainForm\\:submit");
- let outputFn = querySelectorFn("#page\\:mainForm\\:submitOutput span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- selectAFn().checked = false;
- selectBFn().checked = true;
- selectCFn().checked = true;
- submitFn().click();
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputFn().textContent, "B C ");
- });
- TTT.startTest();
+ let outputFn = querySelectorFn("#page\\:mainForm\\:submitOutput tobago-out");
+
+ let test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent === "",
+ () => {
+ selectAFn().checked = false;
+ selectBFn().checked = false;
+ selectCFn().checked = false;
+ }, "click", submitFn);
+ test.do(() => selectAFn().checked = false);
+ test.do(() => selectBFn().checked = true);
+ test.do(() => selectCFn().checked = true);
+ test.event("click", submitFn, () => outputFn().textContent.trim(), "B C");
+ test.do(() => expect(outputFn().textContent.trim()).toBe("B C"));
+ test.start();
});
-QUnit.test("ajax: select D", function (assert) {
- let selectDFn = querySelectorFn("#page\\:mainForm\\:selectD input");
- let outputDFn = querySelectorFn("#page\\:mainForm\\:outputD span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- selectDFn().checked = true;
- selectDFn().dispatchEvent(new Event("change", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputDFn().textContent, "true");
- });
- TTT.startTest();
+it("ajax: select D", function (done) {
+ let selectFn = querySelectorFn("#page\\:mainForm\\:selectD input");
+ let outputFn = querySelectorFn("#page\\:mainForm\\:outputD tobago-out");
+
+ let test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent === "false",
+ () => selectFn().checked = false,
+ "change", selectFn);
+ test.do(() => selectFn().checked = true);
+ test.event("change", selectFn, () => outputFn().textContent === "true")
+ test.do(() => expect(outputFn().textContent).toBe("true"));
+ test.start();
});
-QUnit.test("ajax: deselect D", function (assert) {
- let selectDFn = querySelectorFn("#page\\:mainForm\\:selectD input");
- let outputDFn = querySelectorFn("#page\\:mainForm\\:outputD span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- selectDFn().checked = false;
- selectDFn().dispatchEvent(new Event("change", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputDFn().textContent, "false");
- });
- TTT.startTest();
+it("ajax: deselect D", function (done) {
+ let selectFn = querySelectorFn("#page\\:mainForm\\:selectD input");
+ let outputFn = querySelectorFn("#page\\:mainForm\\:outputD tobago-out");
+
+ let test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent === "true",
+ () => selectFn().checked = true,
+ "change", selectFn);
+ test.do(() => selectFn().checked = false);
+ test.event("change", selectFn, () => outputFn().textContent === "false")
+ test.do(() => expect(outputFn().textContent).toBe("false"));
+ test.start();
});
-QUnit.test("ajax: select E", function (assert) {
- let selectEFn = querySelectorFn("#page\\:mainForm\\:selectE input");
- let outputEFn = querySelectorFn("#page\\:mainForm\\:outputE span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- selectEFn().checked = true;
- selectEFn().dispatchEvent(new Event("change", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputEFn().textContent, "true");
- });
- TTT.startTest();
+it("ajax: select E", function (done) {
+ let selectFn = querySelectorFn("#page\\:mainForm\\:selectE input");
+ let outputFn = querySelectorFn("#page\\:mainForm\\:outputE tobago-out");
+
+ let test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent === "false",
+ () => selectFn().checked = false,
+ "change", selectFn);
+ test.do(() => selectFn().checked = true);
+ test.event("change", selectFn, () => outputFn().textContent === "true")
+ test.do(() => expect(outputFn().textContent).toBe("true"));
+ test.start();
});
-QUnit.test("ajax: deselect E", function (assert) {
- let selectEFn = querySelectorFn("#page\\:mainForm\\:selectE input");
- let outputEFn = querySelectorFn("#page\\:mainForm\\:outputE span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- selectEFn().checked = false;
- selectEFn().dispatchEvent(new Event("change", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputEFn().textContent, "false");
- });
- TTT.startTest();
+it("ajax: deselect E", function (done) {
+ let selectFn = querySelectorFn("#page\\:mainForm\\:selectE input");
+ let outputFn = querySelectorFn("#page\\:mainForm\\:outputE tobago-out");
+
+ let test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent === "true",
+ () => selectFn().checked = true,
+ "change", selectFn);
+ test.do(() => selectFn().checked = false);
+ test.event("change", selectFn, () => outputFn().textContent === "false")
+ test.do(() => expect(outputFn().textContent).toBe("false"));
+ test.start();
});
-QUnit.test("ajax: select F", function (assert) {
- let selectFFn = querySelectorFn("#page\\:mainForm\\:selectF input");
- let outputFFn = querySelectorFn("#page\\:mainForm\\:outputF span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- selectFFn().checked = true;
- selectFFn().dispatchEvent(new Event("change", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputFFn().textContent, "true");
- });
- TTT.startTest();
+it("ajax: select F", function (done) {
+ let selectFn = querySelectorFn("#page\\:mainForm\\:selectF input");
+ let outputFn = querySelectorFn("#page\\:mainForm\\:outputF tobago-out");
+
+ let test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent === "false",
+ () => selectFn().checked = false,
+ "change", selectFn);
+ test.do(() => selectFn().checked = true);
+ test.event("change", selectFn, () => outputFn().textContent === "true")
+ test.do(() => expect(outputFn().textContent).toBe("true"));
+ test.start();
});
-QUnit.test("ajax: deselect F", function (assert) {
- let selectFFn = querySelectorFn("#page\\:mainForm\\:selectF input");
- let outputFFn = querySelectorFn("#page\\:mainForm\\:outputF span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- selectFFn().checked = false;
- selectFFn().dispatchEvent(new Event("change", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputFFn().textContent, "false");
- });
- TTT.startTest();
+it("ajax: deselect F", function (done) {
+ let selectFn = querySelectorFn("#page\\:mainForm\\:selectF input");
+ let outputFn = querySelectorFn("#page\\:mainForm\\:outputF tobago-out");
+
+ let test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent === "true",
+ () => selectFn().checked = true,
+ "change", selectFn);
+ test.do(() => selectFn().checked = false);
+ test.event("change", selectFn, () => outputFn().textContent === "false")
+ test.do(() => expect(outputFn().textContent).toBe("false"));
+ test.start();
});
-*/
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/15-selectBooleanToggle/Toggle.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/15-selectBooleanToggle/Toggle.test.js
index 5671dec..9fd41eb 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/15-selectBooleanToggle/Toggle.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/15-selectBooleanToggle/Toggle.test.js
@@ -16,151 +16,132 @@
*/
import {JasmineTestTool} from "/tobago/test/tobago-test-tool.js";
-
-it("not implemented yet", function (done) {
- let test = new JasmineTestTool(done);
- test.do(() => fail("not implemented yet"));
- test.start();
-});
-/*
import {querySelectorFn} from "/script/tobago-test.js";
-import {TobagoTestTool} from "/tobago/test/tobago-test-tool.js";
-QUnit.test("submit: select A", function (assert) {
+it("submit: select A", function (done) {
let selectAFn = querySelectorFn("#page\\:mainForm\\:selectA input");
let selectBFn = querySelectorFn("#page\\:mainForm\\:selectB input");
let selectCFn = querySelectorFn("#page\\:mainForm\\:selectC input");
let submitFn = querySelectorFn("#page\\:mainForm\\:submit");
- let outputFn = querySelectorFn("#page\\:mainForm\\:submitOutput span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- selectAFn().checked = true;
- selectBFn().checked = false;
- selectCFn().checked = false;
- submitFn().click();
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputFn().textContent, "A ");
- });
- TTT.startTest();
+ let outputFn = querySelectorFn("#page\\:mainForm\\:submitOutput tobago-out");
+
+ let test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent === "",
+ () => {
+ selectAFn().checked = false;
+ selectBFn().checked = false;
+ selectCFn().checked = false;
+ }, "click", submitFn);
+ test.do(() => selectAFn().checked = true);
+ test.do(() => selectBFn().checked = false);
+ test.do(() => selectCFn().checked = false);
+ test.event("click", submitFn, () => outputFn().textContent.trim(), "A");
+ test.do(() => expect(outputFn().textContent.trim()).toBe("A"));
+ test.start();
});
-QUnit.test("submit: select B and C", function (assert) {
+it("submit: select B and C", function (done) {
let selectAFn = querySelectorFn("#page\\:mainForm\\:selectA input");
let selectBFn = querySelectorFn("#page\\:mainForm\\:selectB input");
let selectCFn = querySelectorFn("#page\\:mainForm\\:selectC input");
let submitFn = querySelectorFn("#page\\:mainForm\\:submit");
- let outputFn = querySelectorFn("#page\\:mainForm\\:submitOutput span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- selectAFn().checked = false;
- selectBFn().checked = true;
- selectCFn().checked = true;
- submitFn().click();
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputFn().textContent, "B C ");
- });
- TTT.startTest();
+ let outputFn = querySelectorFn("#page\\:mainForm\\:submitOutput tobago-out");
+
+ let test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent === "",
+ () => {
+ selectAFn().checked = false;
+ selectBFn().checked = false;
+ selectCFn().checked = false;
+ }, "click", submitFn);
+ test.do(() => selectAFn().checked = false);
+ test.do(() => selectBFn().checked = true);
+ test.do(() => selectCFn().checked = true);
+ test.event("click", submitFn, () => outputFn().textContent.trim(), "B C");
+ test.do(() => expect(outputFn().textContent.trim()).toBe("B C"));
+ test.start();
});
-QUnit.test("ajax: select D", function (assert) {
- let selectDFn = querySelectorFn("#page\\:mainForm\\:selectD input");
- let outputDFn = querySelectorFn("#page\\:mainForm\\:outputD span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- selectDFn().checked = true;
- selectDFn().dispatchEvent(new Event("change", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputDFn().textContent, "true");
- });
- TTT.startTest();
+it("ajax: select D", function (done) {
+ let selectFn = querySelectorFn("#page\\:mainForm\\:selectD input");
+ let outputFn = querySelectorFn("#page\\:mainForm\\:outputD tobago-out");
+
+ let test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent === "false",
+ () => selectFn().checked = false,
+ "change", selectFn);
+ test.do(() => selectFn().checked = true);
+ test.event("change", selectFn, () => outputFn().textContent === "true")
+ test.do(() => expect(outputFn().textContent).toBe("true"));
+ test.start();
});
-QUnit.test("ajax: deselect D", function (assert) {
- let selectDFn = querySelectorFn("#page\\:mainForm\\:selectD input");
- let outputDFn = querySelectorFn("#page\\:mainForm\\:outputD span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- selectDFn().checked = false;
- selectDFn().dispatchEvent(new Event("change", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputDFn().textContent, "false");
- });
- TTT.startTest();
+it("ajax: deselect D", function (done) {
+ let selectFn = querySelectorFn("#page\\:mainForm\\:selectD input");
+ let outputFn = querySelectorFn("#page\\:mainForm\\:outputD tobago-out");
+
+ let test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent === "true",
+ () => selectFn().checked = true,
+ "change", selectFn);
+ test.do(() => selectFn().checked = false);
+ test.event("change", selectFn, () => outputFn().textContent === "false")
+ test.do(() => expect(outputFn().textContent).toBe("false"));
+ test.start();
});
-QUnit.test("ajax: select E", function (assert) {
- let selectEFn = querySelectorFn("#page\\:mainForm\\:selectE input");
- let outputEFn = querySelectorFn("#page\\:mainForm\\:outputE span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- selectEFn().checked = true;
- selectEFn().dispatchEvent(new Event("change", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputEFn().textContent, "true");
- });
- TTT.startTest();
+it("ajax: select E", function (done) {
+ let selectFn = querySelectorFn("#page\\:mainForm\\:selectE input");
+ let outputFn = querySelectorFn("#page\\:mainForm\\:outputE tobago-out");
+
+ let test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent === "false",
+ () => selectFn().checked = false,
+ "change", selectFn);
+ test.do(() => selectFn().checked = true);
+ test.event("change", selectFn, () => outputFn().textContent === "true")
+ test.do(() => expect(outputFn().textContent).toBe("true"));
+ test.start();
});
-QUnit.test("ajax: deselect E", function (assert) {
- let selectEFn = querySelectorFn("#page\\:mainForm\\:selectE input");
- let outputEFn = querySelectorFn("#page\\:mainForm\\:outputE span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- selectEFn().checked = false;
- selectEFn().dispatchEvent(new Event("change", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputEFn().textContent, "false");
- });
- TTT.startTest();
+it("ajax: deselect E", function (done) {
+ let selectFn = querySelectorFn("#page\\:mainForm\\:selectE input");
+ let outputFn = querySelectorFn("#page\\:mainForm\\:outputE tobago-out");
+
+ let test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent === "true",
+ () => selectFn().checked = true,
+ "change", selectFn);
+ test.do(() => selectFn().checked = false);
+ test.event("change", selectFn, () => outputFn().textContent === "false")
+ test.do(() => expect(outputFn().textContent).toBe("false"));
+ test.start();
});
-QUnit.test("ajax: select F", function (assert) {
- let selectFFn = querySelectorFn("#page\\:mainForm\\:selectF input");
- let outputFFn = querySelectorFn("#page\\:mainForm\\:outputF span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- selectFFn().checked = true;
- selectFFn().dispatchEvent(new Event("change", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputFFn().textContent, "true");
- });
- TTT.startTest();
+it("ajax: select F", function (done) {
+ let selectFn = querySelectorFn("#page\\:mainForm\\:selectF input");
+ let outputFn = querySelectorFn("#page\\:mainForm\\:outputF tobago-out");
+
+ let test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent === "false",
+ () => selectFn().checked = false,
+ "change", selectFn);
+ test.do(() => selectFn().checked = true);
+ test.event("change", selectFn, () => outputFn().textContent === "true")
+ test.do(() => expect(outputFn().textContent).toBe("true"));
+ test.start();
});
-QUnit.test("ajax: deselect F", function (assert) {
- let selectFFn = querySelectorFn("#page\\:mainForm\\:selectF input");
- let outputFFn = querySelectorFn("#page\\:mainForm\\:outputF span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- selectFFn().checked = false;
- selectFFn().dispatchEvent(new Event("change", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputFFn().textContent, "false");
- });
- TTT.startTest();
+it("ajax: deselect F", function (done) {
+ let selectFn = querySelectorFn("#page\\:mainForm\\:selectF input");
+ let outputFn = querySelectorFn("#page\\:mainForm\\:outputF tobago-out");
+
+ let test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent === "true",
+ () => selectFn().checked = true,
+ "change", selectFn);
+ test.do(() => selectFn().checked = false);
+ test.event("change", selectFn, () => outputFn().textContent === "false")
+ test.do(() => expect(outputFn().textContent).toBe("false"));
+ test.start();
});
-*/
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/Dropdown.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/Dropdown.test.js
index 874c159..8c5aa1f 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/Dropdown.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/Dropdown.test.js
@@ -16,93 +16,94 @@
*/
import {JasmineTestTool} from "/tobago/test/tobago-test-tool.js";
-
-it("not implemented yet", function (done) {
- let test = new JasmineTestTool(done);
- test.do(() => fail("not implemented yet"));
- test.start();
-});
-/*
import {querySelectorAllFn, querySelectorFn} from "/script/tobago-test.js";
-import {TobagoTestTool} from "/tobago/test/tobago-test-tool.js";
-QUnit.test("submit: Alice", function (assert) {
+it("submit: Alice", function (done) {
let aliceFn = querySelectorFn("#page\\:mainForm\\:selectPerson\\:\\:field option[value^='Alice']");
let bobFn = querySelectorFn("#page\\:mainForm\\:selectPerson\\:\\:field option[value^='Bob']");
let submitFn = querySelectorFn("#page\\:mainForm\\:submit");
- let outputFn = querySelectorFn("#page\\:mainForm\\:outputPerson span");
+ let outputFn = querySelectorFn("#page\\:mainForm\\:outputPerson tobago-out");
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- aliceFn().selected = true;
- bobFn().selected = false;
- submitFn().dispatchEvent(new Event("click", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputFn().textContent, "Alice Anderson");
- });
- TTT.startTest();
+ const test = new JasmineTestTool(done);
+ test.setup(() => () => outputFn().textContent !== "Alice Anderson",
+ () => {
+ aliceFn().selected = false;
+ bobFn().selected = true;
+ },
+ "click", submitFn);
+ test.do(() => aliceFn().selected = true);
+ test.do(() => bobFn().selected = false);
+ test.event("click", submitFn, () => outputFn().textContent === "Alice Anderson");
+ test.do(() => expect(outputFn().textContent).toBe("Alice Anderson"));
+ test.start();
});
-QUnit.test("submit: Bob", function (assert) {
+it("submit: Bob", function (done) {
let aliceFn = querySelectorFn("#page\\:mainForm\\:selectPerson\\:\\:field option[value^='Alice']");
let bobFn = querySelectorFn("#page\\:mainForm\\:selectPerson\\:\\:field option[value^='Bob']");
let submitFn = querySelectorFn("#page\\:mainForm\\:submit");
- let outputFn = querySelectorFn("#page\\:mainForm\\:outputPerson span");
+ let outputFn = querySelectorFn("#page\\:mainForm\\:outputPerson tobago-out");
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- aliceFn().selected = false;
- bobFn().selected = true;
- submitFn().dispatchEvent(new Event("click", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputFn().textContent, "Bob Brunch");
- });
- TTT.startTest();
+ const test = new JasmineTestTool(done);
+ test.setup(() => () => outputFn().textContent !== "Bob Brunch",
+ () => {
+ aliceFn().selected = true;
+ bobFn().selected = false;
+ },
+ "click", submitFn);
+ test.do(() => aliceFn().selected = false);
+ test.do(() => bobFn().selected = true);
+ test.event("click", submitFn, () => outputFn().textContent === "Bob Brunch");
+ test.do(() => expect(outputFn().textContent).toBe("Bob Brunch"));
+ test.start();
});
-QUnit.test("ajax: select Mars", function (assert) {
+it("ajax: select Mars", function (done) {
let planetFn = querySelectorFn("#page\\:mainForm\\:selectPlanet\\:\\:field");
+ let earthOptionFn = querySelectorFn("#page\\:mainForm\\:selectPlanet\\:\\:field option[value='0']");
let marsOptionFn = querySelectorFn("#page\\:mainForm\\:selectPlanet\\:\\:field option[value='1']");
let jupiterOptionFn = querySelectorFn("#page\\:mainForm\\:selectPlanet\\:\\:field option[value='2']");
let moonsFn = querySelectorAllFn("#page\\:mainForm\\:moonbox\\:\\:field option");
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- jupiterOptionFn().selected = false;
- marsOptionFn().selected = true;
- planetFn().dispatchEvent(new Event("change", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(2, function () {
- assert.equal(moonsFn().item(0).text, "Phobos");
- assert.equal(moonsFn().item(1).text, "Deimos");
- });
- TTT.startTest();
+ const test = new JasmineTestTool(done);
+ test.setup(() => moonsFn().item(0).text !== "Phobos",
+ () => {
+ earthOptionFn().selected = true;
+ marsOptionFn().selected = false;
+ jupiterOptionFn().selected = false;
+ },
+ "change", planetFn);
+ test.do(() => earthOptionFn().selected = false);
+ test.do(() => marsOptionFn().selected = true);
+ test.do(() => jupiterOptionFn().selected = false);
+ test.event("change", planetFn, () => moonsFn().item(0).text === "Phobos");
+ test.do(() => expect(moonsFn().item(0).text).toBe("Phobos"));
+ test.do(() => expect(moonsFn().item(1).text).toBe("Deimos"));
+ test.start();
});
-QUnit.test("ajax: select Jupiter", function (assert) {
+it("ajax: select Jupiter", function (done) {
let planetFn = querySelectorFn("#page\\:mainForm\\:selectPlanet\\:\\:field");
+ let earthOptionFn = querySelectorFn("#page\\:mainForm\\:selectPlanet\\:\\:field option[value='0']");
let marsOptionFn = querySelectorFn("#page\\:mainForm\\:selectPlanet\\:\\:field option[value='1']");
let jupiterOptionFn = querySelectorFn("#page\\:mainForm\\:selectPlanet\\:\\:field option[value='2']");
let moonsFn = querySelectorAllFn("#page\\:mainForm\\:moonbox\\:\\:field option");
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- marsOptionFn().selected = false;
- jupiterOptionFn().selected = true;
- planetFn().dispatchEvent(new Event("change", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(4, function () {
- assert.equal(moonsFn().item(0).text, "Europa");
- assert.equal(moonsFn().item(1).text, "Ganymed");
- assert.equal(moonsFn().item(2).text, "Io");
- assert.equal(moonsFn().item(3).text, "Kallisto");
- });
- TTT.startTest();
+ const test = new JasmineTestTool(done);
+ test.setup(() => moonsFn().item(0).text !== "Europa",
+ () => {
+ earthOptionFn().selected = true;
+ marsOptionFn().selected = false;
+ jupiterOptionFn().selected = false;
+ },
+ "change", planetFn);
+ test.do(() => earthOptionFn().selected = false);
+ test.do(() => marsOptionFn().selected = false);
+ test.do(() => jupiterOptionFn().selected = true);
+ test.event("change", planetFn, () => moonsFn().item(0).text === "Europa");
+ test.do(() => expect(moonsFn().item(0).text).toBe("Europa"));
+ test.do(() => expect(moonsFn().item(1).text).toBe("Ganymed"));
+ test.do(() => expect(moonsFn().item(2).text).toBe("Io"));
+ test.do(() => expect(moonsFn().item(3).text).toBe("Kallisto"));
+ test.start();
});
-*/
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/Radio.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/Radio.test.js
index aaa1a91..65181af 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/Radio.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/Radio.test.js
@@ -53,6 +53,7 @@ it("submit: Subtraction (4 - 1)", function (done) {
test.do(() => expect(outputFn().textContent).toBe("3"));
test.start();
});
+
it("ajax: select Mars", function (done) {
const earthFn = elementByIdFn("page:mainForm:selectPlanet::0");
const marsFn = elementByIdFn("page:mainForm:selectPlanet::1");
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/Listbox.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/Listbox.test.js
index dcad683..5987eca 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/Listbox.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/Listbox.test.js
@@ -16,98 +16,102 @@
*/
import {JasmineTestTool} from "/tobago/test/tobago-test-tool.js";
-
-it("not implemented yet", function (done) {
- let test = new JasmineTestTool(done);
- test.do(() => fail("not implemented yet"));
- test.start();
-});
-/*
import {querySelectorAllFn, querySelectorFn} from "/script/tobago-test.js";
-import {TobagoTestTool} from "/tobago/test/tobago-test-tool.js";
-QUnit.test("submit: select 'Nile'", function (assert) {
+it("submit: select 'Nile'", function (done) {
let riversFn = querySelectorAllFn("#page\\:mainForm\\:riverList option");
let submitFn = querySelectorFn("#page\\:mainForm\\:riverSubmit");
- let outputFn = querySelectorFn("#page\\:mainForm\\:riverOutput span");
+ let outputFn = querySelectorFn("#page\\:mainForm\\:riverOutput tobago-out");
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- riversFn().item(0).selected = true; // Nile
- riversFn().item(1).selected = false; // Amazon
- riversFn().item(2).selected = false; // Yangtze
- riversFn().item(3).selected = false; // Yellow River
- riversFn().item(4).selected = false; // Paraná River
- submitFn().dispatchEvent(new Event("click", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputFn().textContent, "6853 km");
- });
- TTT.startTest();
+ const test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent !== "6853 km",
+ () => {
+ riversFn().item(0).selected = false; // Nile
+ riversFn().item(1).selected = false; // Amazon
+ riversFn().item(2).selected = false; // Yangtze
+ riversFn().item(3).selected = false; // Yellow River
+ riversFn().item(4).selected = false; // Paraná River
+ },
+ "click", submitFn);
+ test.do(() => riversFn().item(0).selected = true); // Nile
+ test.do(() => riversFn().item(1).selected = false); // Amazon
+ test.do(() => riversFn().item(2).selected = false); // Yangtze
+ test.do(() => riversFn().item(3).selected = false); // Yellow River
+ test.do(() => riversFn().item(4).selected = false); // Paraná River
+ test.event("click", submitFn, () => outputFn().textContent === "6853 km");
+ test.do(() => expect(outputFn().textContent).toBe("6853 km"));
+ test.start();
});
-QUnit.test("submit: select 'Yangtze'", function (assert) {
+it("submit: select 'Yangtze'", function (done) {
let riversFn = querySelectorAllFn("#page\\:mainForm\\:riverList option");
let submitFn = querySelectorFn("#page\\:mainForm\\:riverSubmit");
- let outputFn = querySelectorFn("#page\\:mainForm\\:riverOutput span");
+ let outputFn = querySelectorFn("#page\\:mainForm\\:riverOutput tobago-out");
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- riversFn().item(0).selected = false; // Nile
- riversFn().item(1).selected = false; // Amazon
- riversFn().item(2).selected = true; // Yangtze
- riversFn().item(3).selected = false; // Yellow River
- riversFn().item(4).selected = false; // Paraná River
- submitFn().dispatchEvent(new Event("click", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputFn().textContent, "6300 km");
-
- });
- TTT.startTest();
+ const test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent !== "6300 km",
+ () => {
+ riversFn().item(0).selected = false; // Nile
+ riversFn().item(1).selected = false; // Amazon
+ riversFn().item(2).selected = false; // Yangtze
+ riversFn().item(3).selected = false; // Yellow River
+ riversFn().item(4).selected = false; // Paraná River
+ },
+ "click", submitFn);
+ test.do(() => riversFn().item(0).selected = false); // Nile
+ test.do(() => riversFn().item(1).selected = false); // Amazon
+ test.do(() => riversFn().item(2).selected = true); // Yangtze
+ test.do(() => riversFn().item(3).selected = false); // Yellow River
+ test.do(() => riversFn().item(4).selected = false); // Paraná River
+ test.event("click", submitFn, () => outputFn().textContent === "6300 km");
+ test.do(() => expect(outputFn().textContent).toBe("6300 km"));
+ test.start();
});
-QUnit.test("ajax: select Everest", function (assert) {
+it("ajax: select Everest", function (done) {
let mountainListFn = querySelectorFn("#page\\:mainForm\\:mountainList\\:\\:field");
let mountainsFn = querySelectorAllFn("#page\\:mainForm\\:mountainList option");
- let outputFn = querySelectorFn("#page\\:mainForm\\:selectedMountain span");
+ let outputFn = querySelectorFn("#page\\:mainForm\\:selectedMountain tobago-out");
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- mountainsFn().item(1).selected = false;
- mountainsFn().item(2).selected = false;
- mountainsFn().item(3).selected = false;
- mountainsFn().item(4).selected = false;
- mountainsFn().item(0).selected = true; // Everest
- mountainListFn().dispatchEvent(new Event("change", {bubbles: true})); // Everest
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputFn().textContent, "8848 m");
- });
- TTT.startTest();
+ const test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent !== "8848 m",
+ () => {
+ mountainsFn().item(0).selected = false;
+ mountainsFn().item(1).selected = false;
+ mountainsFn().item(2).selected = false;
+ mountainsFn().item(3).selected = false;
+ mountainsFn().item(4).selected = false;
+ }, "change", mountainListFn);
+ test.do(() => mountainsFn().item(0).selected = true); // Everest
+ test.do(() => mountainsFn().item(1).selected = false);
+ test.do(() => mountainsFn().item(2).selected = false);
+ test.do(() => mountainsFn().item(3).selected = false);
+ test.do(() => mountainsFn().item(4).selected = false);
+ test.event("change", mountainListFn, () => outputFn().textContent === "8848 m");
+ test.do(() => expect(outputFn().textContent).toBe("8848 m"));
+ test.start();
});
-QUnit.test("ajax: select Makalu", function (assert) {
+it("ajax: select Makalu", function (done) {
let mountainListFn = querySelectorFn("#page\\:mainForm\\:mountainList\\:\\:field");
let mountainsFn = querySelectorAllFn("#page\\:mainForm\\:mountainList option");
- let outputFn = querySelectorFn("#page\\:mainForm\\:selectedMountain span");
+ let outputFn = querySelectorFn("#page\\:mainForm\\:selectedMountain tobago-out");
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- mountainsFn().item(0).selected = false;
- mountainsFn().item(1).selected = false;
- mountainsFn().item(2).selected = false;
- mountainsFn().item(3).selected = false;
- mountainsFn().item(4).selected = true; // Everest
- mountainListFn().dispatchEvent(new Event("change", {bubbles: true})); // Everest
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputFn().textContent, "8481 m");
- });
- TTT.startTest();
+ const test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent !== "8481 m",
+ () => {
+ mountainsFn().item(0).selected = false;
+ mountainsFn().item(1).selected = false;
+ mountainsFn().item(2).selected = false;
+ mountainsFn().item(3).selected = false;
+ mountainsFn().item(4).selected = false;
+ }, "change", mountainListFn);
+ test.do(() => mountainsFn().item(0).selected = false); // Everest
+ test.do(() => mountainsFn().item(1).selected = false);
+ test.do(() => mountainsFn().item(2).selected = false);
+ test.do(() => mountainsFn().item(3).selected = false);
+ test.do(() => mountainsFn().item(4).selected = true); // Makalu
+ test.event("change", mountainListFn, () => outputFn().textContent === "8481 m");
+ test.do(() => expect(outputFn().textContent).toBe("8481 m"));
+ test.start();
});
-*/
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/Multi_Checkbox.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/Multi_Checkbox.test.js
index b29e09f..c5eb23d 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/Multi_Checkbox.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/Multi_Checkbox.test.js
@@ -16,126 +16,124 @@
*/
import {JasmineTestTool} from "/tobago/test/tobago-test-tool.js";
-
-it("not implemented yet", function (done) {
- let test = new JasmineTestTool(done);
- test.do(() => fail("not implemented yet"));
- test.start();
-});
-
-/*
import {querySelectorAllFn, querySelectorFn} from "/script/tobago-test.js";
-import {TobagoTestTool} from "/tobago/test/tobago-test-tool.js";
-QUnit.test("submit: select cat", function (assert) {
+it("submit: select cat", function (done) {
let animalsFn = querySelectorAllFn("#page\\:mainForm\\:animals input");
let submitFn = querySelectorFn("#page\\:mainForm\\:submit");
- let outputFn = querySelectorFn("#page\\:mainForm\\:animalsOutput span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- animalsFn().item(0).checked = true;
- animalsFn().item(1).checked = false;
- animalsFn().item(2).checked = false;
- animalsFn().item(3).checked = false;
- submitFn().dispatchEvent(new Event("click", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputFn().textContent, "Cat ");
- });
- TTT.startTest();
+ let outputFn = querySelectorFn("#page\\:mainForm\\:animalsOutput tobago-out");
+
+ const test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent.trim() !== "Cat",
+ () => {
+ animalsFn().item(0).checked = false;
+ animalsFn().item(1).checked = false;
+ animalsFn().item(2).checked = false;
+ animalsFn().item(3).checked = false;
+ },
+ "click", submitFn);
+ test.do(() => animalsFn().item(0).checked = true); // Cat
+ test.do(() => animalsFn().item(1).checked = false);
+ test.do(() => animalsFn().item(2).checked = false);
+ test.do(() => animalsFn().item(3).checked = false);
+ test.event("click", submitFn, () => outputFn().textContent.trim() === "Cat");
+ test.do(() => expect(outputFn().textContent.trim()).toBe("Cat"));
+ test.start();
});
-QUnit.test("submit: select fox and rabbit", function (assert) {
+it("submit: select fox and rabbit", function (done) {
let animalsFn = querySelectorAllFn("#page\\:mainForm\\:animals input");
let submitFn = querySelectorFn("#page\\:mainForm\\:submit");
- let outputFn = querySelectorFn("#page\\:mainForm\\:animalsOutput span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- animalsFn().item(0).checked = false;
- animalsFn().item(1).checked = false;
- animalsFn().item(2).checked = true;
- animalsFn().item(3).checked = true;
- submitFn().dispatchEvent(new Event("click", {bubbles: true}));
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputFn().textContent, "Fox Rabbit ");
- });
- TTT.startTest();
+ let outputFn = querySelectorFn("#page\\:mainForm\\:animalsOutput tobago-out");
+
+ const test = new JasmineTestTool(done);
+ test.setup(() => outputFn().textContent.trim() !== "Fox Rabbit",
+ () => {
+ animalsFn().item(0).checked = false;
+ animalsFn().item(1).checked = false;
+ animalsFn().item(2).checked = false;
+ animalsFn().item(3).checked = false;
+ },
+ "click", submitFn);
+ test.do(() => animalsFn().item(0).checked = false); // Cat
+ test.do(() => animalsFn().item(1).checked = false);
+ test.do(() => animalsFn().item(2).checked = true); // Fox
+ test.do(() => animalsFn().item(3).checked = true); // Rabbit
+ test.event("click", submitFn, () => outputFn().textContent.trim() === "Fox Rabbit");
+ test.do(() => expect(outputFn().textContent.trim()).toBe("Fox Rabbit"));
+ test.start();
+});
+
+it("ajax: select 'One'", function (done) {
+ let numberFn = querySelectorFn("#page\\:mainForm\\:numbers\\:\\:0");
+ ajaxSelect(done, numberFn, 1);
+});
+
+it("ajax: deselect 'One'", function (done) {
+ let numberFn = querySelectorFn("#page\\:mainForm\\:numbers\\:\\:0");
+ ajaxDeselect(done, numberFn, 1);
});
-QUnit.test("ajax: click 'Two'", function (assert) {
- let number2Fn = querySelectorFn("#page\\:mainForm\\:numbers\\:\\:1");
- let outputFn = querySelectorFn("#page\\:mainForm\\:resultOutput span");
- let newOutputValue;
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- if (number2Fn().checked) {
- newOutputValue = parseInt(outputFn().textContent) - 2;
- number2Fn().checked = false;
- number2Fn().dispatchEvent(new Event("change", {bubbles: true}));
- } else {
- newOutputValue = parseInt(outputFn().textContent) + 2;
- number2Fn().checked = true;
- number2Fn().dispatchEvent(new Event("change", {bubbles: true}));
- }
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputFn().textContent, newOutputValue);
- });
- TTT.startTest();
+it("ajax: select 'Two'", function (done) {
+ let numberFn = querySelectorFn("#page\\:mainForm\\:numbers\\:\\:1");
+ ajaxSelect(done, numberFn, 2);
});
-QUnit.test("ajax: click 'Three'", function (assert) {
- let number3Fn = querySelectorFn("#page\\:mainForm\\:numbers\\:\\:2");
- let outputFn = querySelectorFn("#page\\:mainForm\\:resultOutput span");
- let newOutputValue;
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- if (number3Fn().checked) {
- newOutputValue = parseInt(outputFn().textContent) - 3;
- number3Fn().checked = false;
- number3Fn().dispatchEvent(new Event("change", {bubbles: true}));
- } else {
- newOutputValue = parseInt(outputFn().textContent) + 3;
- number3Fn().checked = true;
- number3Fn().dispatchEvent(new Event("change", {bubbles: true}));
- }
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputFn().textContent, newOutputValue);
- });
- TTT.startTest();
+it("ajax: deselect 'Two'", function (done) {
+ let numberFn = querySelectorFn("#page\\:mainForm\\:numbers\\:\\:1");
+ ajaxDeselect(done, numberFn, 2);
});
-QUnit.test("ajax: click 'Two'", function (assert) {
- let number2Fn = querySelectorFn("#page\\:mainForm\\:numbers\\:\\:1");
- let outputFn = querySelectorFn("#page\\:mainForm\\:resultOutput span");
- let newOutputValue;
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- if (number2Fn().checked) {
- newOutputValue = parseInt(outputFn().textContent) - 2;
- number2Fn().checked = false;
- number2Fn().dispatchEvent(new Event("change", {bubbles: true}));
- } else {
- newOutputValue = parseInt(outputFn().textContent) + 2;
- number2Fn().checked = true;
- number2Fn().dispatchEvent(new Event("change", {bubbles: true}));
- }
- });
- TTT.waitForResponse();
- TTT.asserts(1, function () {
- assert.equal(outputFn().textContent, newOutputValue);
- });
- TTT.startTest();
+it("ajax: select 'Three'", function (done) {
+ let numberFn = querySelectorFn("#page\\:mainForm\\:numbers\\:\\:2");
+ ajaxSelect(done, numberFn, 3);
});
-*/
+
+it("ajax: deselect 'Three'", function (done) {
+ let numberFn = querySelectorFn("#page\\:mainForm\\:numbers\\:\\:2");
+ ajaxDeselect(done, numberFn, 3);
+});
+
+it("ajax: select 'Four'", function (done) {
+ let numberFn = querySelectorFn("#page\\:mainForm\\:numbers\\:\\:3");
+ ajaxSelect(done, numberFn, 4);
+});
+
+it("ajax: deselect 'Four'", function (done) {
+ let numberFn = querySelectorFn("#page\\:mainForm\\:numbers\\:\\:3");
+ ajaxDeselect(done, numberFn, 4);
+});
+
+function ajaxSelect(done, numberFn, number) {
+ let outputFn = querySelectorFn("#page\\:mainForm\\:resultOutput tobago-out");
+ let newOutputValue = parseInt(outputFn().textContent);
+ if (!numberFn().checked) {
+ newOutputValue = parseInt(outputFn().textContent) + number;
+ }
+
+ const test = new JasmineTestTool(done);
+ test.setup(() => parseInt(outputFn().textContent) !== newOutputValue,
+ () => numberFn().checked = false,
+ "change", numberFn);
+ test.do(() => numberFn().checked = true);
+ test.event("change", numberFn, () => parseInt(outputFn().textContent) === newOutputValue);
+ test.do(() => expect(parseInt(outputFn().textContent)).toBe(newOutputValue));
+ test.start();
+}
+
+function ajaxDeselect(done, numberFn, number) {
+ let outputFn = querySelectorFn("#page\\:mainForm\\:resultOutput tobago-out");
+ let newOutputValue = parseInt(outputFn().textContent);
+ if (numberFn().checked) {
+ newOutputValue = parseInt(outputFn().textContent) - number;
+ }
+
+ const test = new JasmineTestTool(done);
+ test.setup(() => parseInt(outputFn().textContent) !== newOutputValue,
+ () => numberFn().checked = true,
+ "change", numberFn);
+ test.do(() => numberFn().checked = false);
+ test.event("change", numberFn, () => parseInt(outputFn().textContent) === newOutputValue);
+ test.do(() => expect(parseInt(outputFn().textContent)).toBe(newOutputValue));
+ test.start();
+}
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/70-selectManyShuttle/Shuttle.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/70-selectManyShuttle/Shuttle.test.js
index fe9b85c..f43593e 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/70-selectManyShuttle/Shuttle.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/70-selectManyShuttle/Shuttle.test.js
@@ -16,17 +16,9 @@
*/
import {JasmineTestTool} from "/tobago/test/tobago-test-tool.js";
-
-it("not implemented yet", function (done) {
- let test = new JasmineTestTool(done);
- test.do(() => fail("not implemented yet"));
- test.start();
-});
-/*
import {querySelectorAllFn, querySelectorFn} from "/script/tobago-test.js";
-import {TobagoTestTool} from "/tobago/test/tobago-test-tool.js";
-QUnit.test("submit: addAll, removeAll, addItem0to4, removeItem2to3", function (assert) {
+it("submit: addAll, removeAll, addItem0to4, removeItem2to3", function (done) {
let unselectedOptions = querySelectorAllFn("#page\\:mainForm\\:submitExample\\:\\:unselected option");
let selectedOptions = querySelectorAllFn("#page\\:mainForm\\:submitExample\\:\\:selected option");
let addAllButton = querySelectorFn("#page\\:mainForm\\:submitExample\\:\\:addAll");
@@ -34,117 +26,95 @@ QUnit.test("submit: addAll, removeAll, addItem0to4, removeItem2to3", function (a
let removeButton = querySelectorFn("#page\\:mainForm\\:submitExample\\:\\:remove");
let removeAllButton = querySelectorFn("#page\\:mainForm\\:submitExample\\:\\:removeAll");
let submitButton = querySelectorFn("#page\\:mainForm\\:submitButton");
- let output = querySelectorFn("#page\\:mainForm\\:submitExampleOutput span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- addAllButton().click();
- submitButton().click();
- });
- TTT.waitForResponse();
- TTT.asserts(3, function () {
- assert.equal(unselectedOptions().length, 0);
- assert.equal(selectedOptions().length, 9);
- assert.equal(output().textContent, "[Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto]");
- });
- TTT.action(function () {
- removeAllButton().click();
- submitButton().click();
- });
- TTT.waitForResponse();
- TTT.asserts(3, function () {
- assert.equal(unselectedOptions().length, 9);
- assert.equal(selectedOptions().length, 0);
- assert.equal(output().textContent, "[]");
- });
- TTT.action(function () {
- unselectedOptions().item(0).selected = true;
- unselectedOptions().item(1).selected = true;
- unselectedOptions().item(2).selected = true;
- unselectedOptions().item(3).selected = true;
- unselectedOptions().item(4).selected = true;
- addButton().click();
- submitButton().click();
- });
- TTT.waitForResponse();
- TTT.asserts(3, function () {
- assert.equal(unselectedOptions().length, 4);
- assert.equal(selectedOptions().length, 5);
- assert.equal(output().textContent, "[Mercury, Venus, Earth, Mars, Jupiter]");
- });
- TTT.action(function () {
- selectedOptions().item(2).selected = true;
- selectedOptions().item(3).selected = true;
- removeButton().click();
- submitButton().click();
- });
- TTT.waitForResponse();
- TTT.asserts(3, function () {
- assert.equal(unselectedOptions().length, 6);
- assert.equal(selectedOptions().length, 3);
- assert.equal(output().textContent, "[Mercury, Venus, Jupiter]");
- });
- TTT.startTest();
+ let output = querySelectorFn("#page\\:mainForm\\:submitExampleOutput tobago-out");
+
+ const test = new JasmineTestTool(done);
+ test.setup(() => selectedOptions().length === 0, null, "click", removeAllButton);
+ test.setup(() => output().textContent === "[]", null, "click", submitButton);
+
+ test.event("click", addAllButton, () => selectedOptions().length === 9);
+ test.do(() => expect(unselectedOptions().length).toBe(0));
+ test.do(() => expect(selectedOptions().length).toBe(9));
+ test.event("click", submitButton,
+ () => output().textContent === "[Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto]");
+ test.do(() => expect(output().textContent)
+ .toBe("[Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto]"));
+
+ test.event("click", removeAllButton, () => selectedOptions().length === 0);
+ test.do(() => expect(unselectedOptions().length).toBe(9));
+ test.do(() => expect(selectedOptions().length).toBe(0));
+ test.event("click", submitButton, () => output().textContent === "[]");
+ test.do(() => expect(output().textContent).toBe("[]"));
+
+ test.do(() => unselectedOptions().item(0).selected = true);
+ test.do(() => unselectedOptions().item(1).selected = true);
+ test.do(() => unselectedOptions().item(2).selected = true);
+ test.do(() => unselectedOptions().item(3).selected = true);
+ test.do(() => unselectedOptions().item(4).selected = true);
+ test.event("click", addButton, () => selectedOptions().length === 5);
+ test.do(() => expect(unselectedOptions().length).toBe(4));
+ test.do(() => expect(selectedOptions().length).toBe(5));
+ test.event("click", submitButton, () => output().textContent === "[Mercury, Venus, Earth, Mars, Jupiter]");
+ test.do(() => expect(output().textContent).toBe("[Mercury, Venus, Earth, Mars, Jupiter]"));
+
+ test.do(() => selectedOptions().item(2).selected = true);
+ test.do(() => selectedOptions().item(3).selected = true);
+ test.event("click", removeButton, () => selectedOptions().length === 3);
+ test.do(() => expect(unselectedOptions().length).toBe(6));
+ test.do(() => expect(selectedOptions().length).toBe(3));
+ test.event("click", submitButton, () => output().textContent === "[Mercury, Venus, Jupiter]");
+ test.do(() => expect(output().textContent).toBe("[Mercury, Venus, Jupiter]"));
+
+ const pageOverlays = querySelectorAllFn(".tobago-page-overlay");
+ test.do(() => expect(pageOverlays().length).toBe(0));
+
+ test.start();
});
-QUnit.test("ajax: addAll, removeAll, addItem1to2, removeItem0", function (assert) {
+it("ajax: addAll, removeAll, addItem1to2, removeItem0", function (done) {
let unselectedOptions = querySelectorAllFn("#page\\:mainForm\\:ajaxExample\\:\\:unselected option");
let selectedOptions = querySelectorAllFn("#page\\:mainForm\\:ajaxExample\\:\\:selected option");
let addAllButton = querySelectorFn("#page\\:mainForm\\:ajaxExample\\:\\:addAll");
let addButton = querySelectorFn("#page\\:mainForm\\:ajaxExample\\:\\:add");
let removeButton = querySelectorFn("#page\\:mainForm\\:ajaxExample\\:\\:remove");
let removeAllButton = querySelectorFn("#page\\:mainForm\\:ajaxExample\\:\\:removeAll");
- let output = querySelectorFn("#page\\:mainForm\\:outputStars span");
-
- let TTT = new TobagoTestTool(assert);
- TTT.action(function () {
- addAllButton().click();
- });
- // TTT.waitForResponse(); //TODO use waitForResponse()
- TTT.waitMs(5000);
- TTT.asserts(6, function () {
- assert.equal(unselectedOptions().length, 0);
- assert.equal(selectedOptions().length, 4);
- assert.ok(output().textContent.indexOf(selectedOptions().item(0).value) > 0);
- assert.ok(output().textContent.indexOf(selectedOptions().item(1).value) > 0);
- assert.ok(output().textContent.indexOf(selectedOptions().item(2).value) > 0);
- assert.ok(output().textContent.indexOf(selectedOptions().item(3).value) > 0);
- });
- TTT.action(function () {
- removeAllButton().click();
- });
- // TTT.waitForResponse(); //TODO use waitForResponse()
- TTT.waitMs(5000);
- TTT.asserts(3, function () {
- assert.equal(unselectedOptions().length, 4);
- assert.equal(selectedOptions().length, 0);
- assert.equal(output().textContent, "[]");
- });
- TTT.action(function () {
- unselectedOptions().item(1).selected = true;
- unselectedOptions().item(2).selected = true;
- addButton().click();
- });
- // TTT.waitForResponse(); //TODO use waitForResponse()
- TTT.waitMs(5000);
- TTT.asserts(4, function () {
- assert.equal(unselectedOptions().length, 2);
- assert.equal(selectedOptions().length, 2);
- assert.ok(output().textContent.indexOf(selectedOptions().item(0).value) > 0);
- assert.ok(output().textContent.indexOf(selectedOptions().item(1).value) > 0);
- });
- TTT.action(function () {
- selectedOptions().item(0).selected = true;
- selectedOptions().item(1).selected = false;
- removeButton().click();
- });
- // TTT.waitForResponse(); //TODO use waitForResponse()
- TTT.waitMs(5000);
- TTT.asserts(3, function () {
- assert.equal(unselectedOptions().length, 3);
- assert.equal(selectedOptions().length, 1);
- assert.ok(output().textContent.indexOf(selectedOptions().item(0).value) > 0);
- });
- TTT.startTest();
+ let output = querySelectorFn("#page\\:mainForm\\:outputStars tobago-out");
+ let submitButton = querySelectorFn("#page\\:mainForm\\:submitButton");
+
+ const test = new JasmineTestTool(done);
+ test.setup(() => output().textContent === "[]", null, "click", removeAllButton);
+ test.setup(() => unselectedOptions().item(0).text === "Proxima Centauri"
+ && unselectedOptions().item(1).text === "Alpha Centauri"
+ && unselectedOptions().item(2).text === "Wolf 359"
+ && unselectedOptions().item(3).text === "Sirius",
+ null, "click", submitButton);
+
+ test.event("click", addAllButton,
+ () => output().textContent === "[Proxima Centauri, Alpha Centauri, Wolf 359, Sirius]");
+ test.do(() => expect(unselectedOptions().length).toBe(0));
+ test.do(() => expect(selectedOptions().length).toBe(4));
+ test.do(() => expect(output().textContent).toBe("[Proxima Centauri, Alpha Centauri, Wolf 359, Sirius]"));
+
+ test.event("click", removeAllButton, () => output().textContent === "[]");
+ test.do(() => expect(unselectedOptions().length).toBe(4));
+ test.do(() => expect(selectedOptions().length).toBe(0));
+ test.do(() => expect(output().textContent).toBe("[]"));
+
+ test.do(() => unselectedOptions().item(1).selected = true);
+ test.do(() => unselectedOptions().item(2).selected = true);
+ test.event("click", addButton, () => output().textContent === "[Alpha Centauri, Wolf 359]");
+ test.do(() => expect(unselectedOptions().length).toBe(2));
+ test.do(() => expect(selectedOptions().length).toBe(2));
+ test.do(() => expect(output().textContent).toBe("[Alpha Centauri, Wolf 359]"));
+
+ test.do(() => selectedOptions().item(0).selected = true);
+ test.do(() => selectedOptions().item(1).selected = false);
+ test.event("click", removeButton, () => output().textContent === "[Wolf 359]");
+ test.do(() => expect(unselectedOptions().length).toBe(3));
+ test.do(() => expect(selectedOptions().length).toBe(1));
+ test.do(() => expect(output().textContent).toBe("[Wolf 359]"));
+
+ const pageOverlays = querySelectorAllFn(".tobago-page-overlay");
+ test.do(() => expect(pageOverlays().length).toBe(0, "there must be no tobago-page-overlay"));
+ test.start();
});
-*/