You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by hn...@apache.org on 2021/07/29 14:40:34 UTC
[myfaces-tobago] branch master updated: fix: jasmine test
This is an automated email from the ASF dual-hosted git repository.
hnoeth pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git
The following commit(s) were added to refs/heads/master by this push:
new 0e31d4f fix: jasmine test
0e31d4f is described below
commit 0e31d4f8b484b51f536e6691716c4c960d4d879f
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Wed Jul 21 12:52:39 2021 +0200
fix: jasmine test
---
.../080-sheet/30-event/Sheet_Event.test.js | 243 +++++++++++++--------
1 file changed, 152 insertions(+), 91 deletions(-)
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/30-event/Sheet_Event.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/30-event/Sheet_Event.test.js
index 79f59fc..45e38f1 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/30-event/Sheet_Event.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/30-event/Sheet_Event.test.js
@@ -15,110 +15,171 @@
* limitations under the License.
*/
-import {querySelectorFn} from "/script/tobago-test.js";
+import {elementByIdFn, querySelectorFn} from "/script/tobago-test.js";
import {JasmineTestTool} from "/tobago/test/tobago-test-tool.js";
-it("must be fixed first", function (done) {
- let test = new JasmineTestTool(done);
- test.do(() => fail("must be fixed first"));
- test.start();
-});
+it("On click with ajax", function (done) {
+ const onClickAjaxFn = elementByIdFn("page:mainForm:changeExample::0");
+ const onClickAjaxPopupFn = elementByIdFn("page:mainForm:changeExample::3");
+ const detailsBoxFn = elementByIdFn("page:mainForm:detail");
+ const detailsBoxNameFieldFn = elementByIdFn("page:mainForm:name::field");
+ const sunFn = elementByIdFn("page:mainForm:s1:0:sample0");
+ const venusFn = elementByIdFn("page:mainForm:s1:2:sample0");
+ const jupiterFn = elementByIdFn("page:mainForm:s1:5:sample0");
+ const saturnFn = elementByIdFn("page:mainForm:s1:6:sample0");
-/*it("On click with ajax", function (done) {
- let oneClickAjaxFn = querySelectorFn("#page\\:mainForm\\:changeExample\\:\\:0");
- let venusFn = querySelectorFn("#page\\:mainForm\\:s1\\:2\\:sample0");
- let jupiterFn = querySelectorFn("#page\\:mainForm\\:s1\\:5\\:sample0");
- let saturnFn = querySelectorFn("#page\\:mainForm\\:s1\\:6\\:sample0");
- let namefieldFn = querySelectorFn("#page\\:mainForm\\:name\\:\\:field");
-
- let test = new JasmineTestTool(done);
- test.do(() => oneClickAjaxFn().checked = true);
- test.event("change", oneClickAjaxFn, () => venusFn());
- test.do(() => expect(venusFn() != null).toBe(true));
- test.do(() => expect(jupiterFn() != null).toBe(true));
- test.do(() => expect(saturnFn() != null).toBe(true));
- test.event("click", venusFn, () => namefieldFn() && namefieldFn().value === "Venus");
- test.do(() => expect(namefieldFn().value).toBe("Venus"));
- test.event("click", jupiterFn, () => namefieldFn() && namefieldFn().value === "Jupiter");
- test.do(() => expect(namefieldFn().value).toBe("Jupiter"));
- test.event("click", saturnFn, () => namefieldFn() && namefieldFn().value === "Saturn");
- test.do(() => expect(namefieldFn().value).toBe("Saturn"));
+ const test = new JasmineTestTool(done);
+ test.setup(() => detailsBoxFn() === null,
+ () => onClickAjaxPopupFn().checked = true, "change", onClickAjaxPopupFn);
+ test.setup(() => detailsBoxFn() !== null,
+ () => onClickAjaxFn().checked = true, "change", onClickAjaxFn);
+ test.setup(() => detailsBoxNameFieldFn().value === "Sun", null, "click", sunFn);
+ test.event("click", venusFn, () => detailsBoxNameFieldFn().value === "Venus");
+ test.do(() => expect(detailsBoxNameFieldFn().value).toBe("Venus"));
+ test.event("click", jupiterFn, () => detailsBoxNameFieldFn().value === "Jupiter");
+ test.do(() => expect(detailsBoxNameFieldFn().value).toBe("Jupiter"));
+ test.event("click", saturnFn, () => detailsBoxNameFieldFn().value === "Saturn");
+ test.do(() => expect(detailsBoxNameFieldFn().value).toBe("Saturn"));
test.start();
});
it("On click with full request", function (done) {
- let oneClickFullRequestFn = querySelectorFn("#page\\:mainForm\\:changeExample\\:\\:1");
- let venusFn = querySelectorFn("#page\\:mainForm\\:s1\\:2\\:sample1");
- let jupiterFn = querySelectorFn("#page\\:mainForm\\:s1\\:5\\:sample1");
- let saturnFn = querySelectorFn("#page\\:mainForm\\:s1\\:6\\:sample1");
- let namefieldFn = querySelectorFn("#page\\:mainForm\\:name\\:\\:field");
-
- let test = new JasmineTestTool(done);
- test.do(() => oneClickFullRequestFn().checked = true);
- test.event("change", oneClickFullRequestFn, () => venusFn());
- test.do(() => expect(venusFn() != null).toBe(true));
- test.do(() => expect(jupiterFn() != null).toBe(true));
- test.do(() => expect(saturnFn() != null).toBe(true));
- test.event("click", venusFn, () => namefieldFn() && namefieldFn().value === "Venus");
- test.do(() => expect(namefieldFn().value).toBe("Venus"));
- test.event("click", jupiterFn, () => namefieldFn() && namefieldFn().value === "Jupiter");
- test.do(() => expect(namefieldFn().value).toBe("Jupiter"));
- test.event("click", saturnFn, () => namefieldFn() && namefieldFn().value === "Saturn");
- test.do(() => expect(namefieldFn().value).toBe("Saturn"));
+ const onClickFullRequestFn = elementByIdFn("page:mainForm:changeExample::1");
+ const onClickAjaxPopupFn = elementByIdFn("page:mainForm:changeExample::3");
+ const detailsBoxFn = elementByIdFn("page:mainForm:detail");
+ const detailsBoxNameFieldFn = elementByIdFn("page:mainForm:name::field");
+ const sunFn = elementByIdFn("page:mainForm:s1:0:sample1");
+ const venusFn = elementByIdFn("page:mainForm:s1:2:sample1");
+ const jupiterFn = elementByIdFn("page:mainForm:s1:5:sample1");
+ const saturnFn = elementByIdFn("page:mainForm:s1:6:sample1");
+
+ const test = new JasmineTestTool(done);
+ test.setup(() => detailsBoxFn() === null,
+ () => onClickAjaxPopupFn().checked = true, "change", onClickAjaxPopupFn);
+ test.setup(() => detailsBoxFn() !== null,
+ () => onClickFullRequestFn().checked = true, "change", onClickFullRequestFn);
+ test.setup(() => detailsBoxNameFieldFn().value === "Sun", null, "click", sunFn);
+ test.event("click", venusFn, () => detailsBoxNameFieldFn().value === "Venus");
+ test.do(() => expect(detailsBoxNameFieldFn().value).toBe("Venus"));
+ test.event("click", jupiterFn, () => detailsBoxNameFieldFn().value === "Jupiter");
+ test.do(() => expect(detailsBoxNameFieldFn().value).toBe("Jupiter"));
+ test.event("click", saturnFn, () => detailsBoxNameFieldFn().value === "Saturn");
+ test.do(() => expect(detailsBoxNameFieldFn().value).toBe("Saturn"));
test.start();
});
it("On double click with full request", function (done) {
- let doubleClickFullRequestFn = querySelectorFn("#page\\:mainForm\\:changeExample\\:\\:2");
- let venusFn = querySelectorFn("#page\\:mainForm\\:s1\\:2\\:sample2");
- let jupiterFn = querySelectorFn("#page\\:mainForm\\:s1\\:5\\:sample2");
- let saturnFn = querySelectorFn("#page\\:mainForm\\:s1\\:6\\:sample2");
- let namefieldFn = querySelectorFn("#page\\:mainForm\\:name\\:\\:field");
-
- let test = new JasmineTestTool(done);
- test.do(() => doubleClickFullRequestFn().checked = true);
- test.event("change", doubleClickFullRequestFn, () => venusFn());
- test.do(() => expect(venusFn() != null).toBe(true));
- test.do(() => expect(jupiterFn() != null).toBe(true));
- test.do(() => expect(saturnFn() != null).toBe(true));
- test.event("dblclick", venusFn, () => namefieldFn() && namefieldFn().value === "Venus");
- test.do(() => expect(namefieldFn().value).toBe("Venus"));
- test.event("dblclick", jupiterFn, () => namefieldFn() && namefieldFn().value === "Jupiter");
- test.do(() => expect(namefieldFn().value).toBe("Jupiter"));
- test.event("dblclick", saturnFn, () => namefieldFn() && namefieldFn().value === "Saturn");
- test.do(() => expect(namefieldFn().value).toBe("Saturn"));
+ const onDblclickFullRequestFn = elementByIdFn("page:mainForm:changeExample::2");
+ const onClickAjaxPopupFn = elementByIdFn("page:mainForm:changeExample::3");
+ const detailsBoxFn = elementByIdFn("page:mainForm:detail");
+ const detailsBoxNameFieldFn = elementByIdFn("page:mainForm:name::field");
+ const sunFn = elementByIdFn("page:mainForm:s1:0:sample2");
+ const venusFn = elementByIdFn("page:mainForm:s1:2:sample2");
+ const jupiterFn = elementByIdFn("page:mainForm:s1:5:sample2");
+ const saturnFn = elementByIdFn("page:mainForm:s1:6:sample2");
+
+ const test = new JasmineTestTool(done);
+ test.setup(() => detailsBoxFn() === null,
+ () => onClickAjaxPopupFn().checked = true, "change", onClickAjaxPopupFn);
+ test.setup(() => detailsBoxFn() !== null,
+ () => onDblclickFullRequestFn().checked = true, "change", onDblclickFullRequestFn);
+ test.setup(() => detailsBoxNameFieldFn().value === "Sun", null, "dblclick", sunFn);
+ test.event("dblclick", venusFn, () => detailsBoxNameFieldFn().value === "Venus");
+ test.do(() => expect(detailsBoxNameFieldFn().value).toBe("Venus"));
+ test.event("dblclick", jupiterFn, () => detailsBoxNameFieldFn().value === "Jupiter");
+ test.do(() => expect(detailsBoxNameFieldFn().value).toBe("Jupiter"));
+ test.event("dblclick", saturnFn, () => detailsBoxNameFieldFn().value === "Saturn");
+ test.do(() => expect(detailsBoxNameFieldFn().value).toBe("Saturn"));
test.start();
});
it("Open popup on click with ajax", function (done) {
- let radioButtonFn = querySelectorFn("#page\\:mainForm\\:changeExample\\:\\:3");
- let venusFn = querySelectorFn("#page\\:mainForm\\:s1\\:2\\:sample3");
- let jupiterFn = querySelectorFn("#page\\:mainForm\\:s1\\:5\\:sample3");
- let saturnFn = querySelectorFn("#page\\:mainForm\\:s1\\:6\\:sample3");
- let popupFn = querySelectorFn("#page\\:mainForm\\:popup");
- let nameFn = querySelectorFn("#page\\:mainForm\\:popup\\:popupName\\:\\:field");
- let cancelFn = querySelectorFn("#page\\:mainForm\\:popup\\:cancel");
-
- let test = new JasmineTestTool(done);
- test.do(() => radioButtonFn().checked = true);
- test.event("change", radioButtonFn, () => venusFn());
- test.do(() => expect(venusFn() != null).toBe(true));
- test.do(() => expect(jupiterFn() != null).toBe(true));
- test.do(() => expect(saturnFn() != null).toBe(true));
- test.event("click", venusFn, () => popupFn() && popupFn().classList.contains("show") === true);
- test.do(() => expect(popupFn().classList.contains("show")).toBe(true));
- test.do(() => expect(nameFn().value).toBe("Venus"));
- test.event("click", cancelFn, () => popupFn() && popupFn().classList.contains("show") !== true);
- test.do(() => expect(popupFn().classList.contains("show")).not.toBe(true));
- test.event("click", jupiterFn, () => popupFn() && popupFn().classList.contains("show") === true);
- test.do(() => expect(popupFn().classList.contains("show")).toBe(true));
- test.do(() => expect(nameFn().value).toBe("Jupiter"));
- test.event("click", cancelFn, () => popupFn() && popupFn().classList.contains("show") !== true);
- test.do(() => expect(popupFn().classList.contains("show")).not.toBe(true));
- test.event("click", saturnFn, () => popupFn() && popupFn().classList.contains("show") === true);
- test.do(() => expect(popupFn().classList.contains("show")).toBe(true));
- test.do(() => expect(nameFn().value).toBe("Saturn"));
- test.event("click", cancelFn, () => popupFn() && popupFn().classList.contains("show") !== true);
- test.do(() => expect(popupFn().classList.contains("show")).not.toBe(true));
+ const onClickAjaxFn = elementByIdFn("page:mainForm:changeExample::0");
+ const onClickAjaxPopupFn = elementByIdFn("page:mainForm:changeExample::3");
+ const detailsBoxFn = elementByIdFn("page:mainForm:detail");
+ const venusFn = elementByIdFn("page:mainForm:s1:2:sample3");
+ const jupiterFn = elementByIdFn("page:mainForm:s1:5:sample3");
+ const saturnFn = elementByIdFn("page:mainForm:s1:6:sample3");
+ const bodyFn = querySelectorFn("body");
+ const backdropFn = querySelectorFn(".modal-backdrop.fade.show")
+ const reloadableFn = elementByIdFn("page:mainForm:reloadable");
+ const popupFn = elementByIdFn("page:mainForm:popup");
+ const popupNameFieldFn = elementByIdFn("page:mainForm:popup:popupName::field");
+ const cancelFn = elementByIdFn("page:mainForm:popup:cancel");
+
+ let shownEventCount = 0;
+ let hiddenEventCount = 0;
+ reloadableFn().addEventListener("shown.bs.modal", () => shownEventCount++);
+ reloadableFn().addEventListener("hidden.bs.modal", () => hiddenEventCount++);
+
+ const test = new JasmineTestTool(done);
+ test.setup(() => detailsBoxFn() !== null,
+ () => onClickAjaxFn().checked = true, "change", onClickAjaxFn);
+ test.setup(() => detailsBoxFn() === null,
+ () => onClickAjaxPopupFn().checked = true, "change", onClickAjaxPopupFn);
+
+ test.do(() => shownEventCount = 0);
+ test.event("click", venusFn, () => shownEventCount > 0);
+ test.do(() => expect(popupNameFieldFn().value).toBe("Venus"));
+ test.do(() => expect(bodyFn().classList.contains("modal-open")).toBeTrue());
+ test.do(() => expect(backdropFn()).not.toBeNull());
+ test.do(() => expect(popupFn().classList.contains("show")).toBeTrue());
+
+ test.do(() => hiddenEventCount = 0);
+ test.event("click", cancelFn, () => hiddenEventCount > 0);
+ test.do(() => expect(bodyFn().classList.contains("modal-open")).toBeFalse());
+ test.do(() => expect(backdropFn()).toBeNull());
+ test.do(() => expect(popupFn().classList.contains("show")).toBeFalse());
+
+ test.do(() => shownEventCount = 0);
+ test.event("click", jupiterFn, () => shownEventCount > 0);
+ test.do(() => expect(popupNameFieldFn().value).toBe("Jupiter"));
+ test.do(() => expect(bodyFn().classList.contains("modal-open")).toBeTrue());
+ test.do(() => expect(backdropFn()).not.toBeNull());
+ test.do(() => expect(popupFn().classList.contains("show")).toBeTrue());
+
+ test.do(() => hiddenEventCount = 0);
+ test.event("click", cancelFn, () => hiddenEventCount > 0);
+ test.do(() => expect(bodyFn().classList.contains("modal-open")).toBeFalse());
+ test.do(() => expect(backdropFn()).toBeNull());
+ test.do(() => expect(popupFn().classList.contains("show")).toBeFalse());
+
+ test.do(() => shownEventCount = 0);
+ test.event("click", saturnFn, () => shownEventCount > 0);
+ test.do(() => expect(popupNameFieldFn().value).toBe("Saturn"));
+ test.do(() => expect(bodyFn().classList.contains("modal-open")).toBeTrue());
+ test.do(() => expect(backdropFn()).not.toBeNull());
+ test.do(() => expect(popupFn().classList.contains("show")).toBeTrue());
+
+ test.do(() => hiddenEventCount = 0);
+ test.event("click", cancelFn, () => hiddenEventCount > 0);
+ test.do(() => expect(bodyFn().classList.contains("modal-open")).toBeFalse());
+ test.do(() => expect(backdropFn()).toBeNull());
+ test.do(() => expect(popupFn().classList.contains("show")).toBeFalse());
+ test.start();
+});
+
+it("On double click with ajax", function (done) {
+ const onClickAjaxPopupFn = elementByIdFn("page:mainForm:changeExample::3");
+ const onDblclickAjaxFn = elementByIdFn("page:mainForm:changeExample::4");
+ const detailsBoxFn = elementByIdFn("page:mainForm:detail");
+ const detailsBoxNameFieldFn = elementByIdFn("page:mainForm:name::field");
+ const sunFn = elementByIdFn("page:mainForm:s1:0:sample4");
+ const venusFn = elementByIdFn("page:mainForm:s1:2:sample4");
+ const jupiterFn = elementByIdFn("page:mainForm:s1:5:sample4");
+ const saturnFn = elementByIdFn("page:mainForm:s1:6:sample4");
+
+ const test = new JasmineTestTool(done);
+ test.setup(() => detailsBoxFn() === null,
+ () => onClickAjaxPopupFn().checked = true, "change", onClickAjaxPopupFn);
+ test.setup(() => detailsBoxFn() !== null,
+ () => onDblclickAjaxFn().checked = true, "change", onDblclickAjaxFn);
+ test.setup(() => detailsBoxNameFieldFn().value === "Sun", null, "dblclick", sunFn);
+ test.event("dblclick", venusFn, () => detailsBoxNameFieldFn().value === "Venus");
+ test.do(() => expect(detailsBoxNameFieldFn().value).toBe("Venus"));
+ test.event("dblclick", jupiterFn, () => detailsBoxNameFieldFn().value === "Jupiter");
+ test.do(() => expect(detailsBoxNameFieldFn().value).toBe("Jupiter"));
+ test.event("dblclick", saturnFn, () => detailsBoxNameFieldFn().value === "Saturn");
+ test.do(() => expect(detailsBoxNameFieldFn().value).toBe("Saturn"));
test.start();
-});*/
+});