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/06/23 07:32:39 UTC
[myfaces-tobago] branch master updated: fix: jasmine tests
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 097e1bb fix: jasmine tests
097e1bb is described below
commit 097e1bb7807319212f5ff5d5bd8bf69ff3953501
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Tue Jun 22 12:14:36 2021 +0200
fix: jasmine tests
---
.../080-sheet/70-tree/Sheet_Tree.test.js | 14 ++---
.../06-validation/00/Content_Validation.test.js | 5 +-
.../30-concept/06-validation/01/JSR_303.test.js | 69 +++++++++++++---------
.../30-concept/30-behavior/Behavior.test.js | 69 +++++++++++-----------
.../content/30-concept/30-behavior/Behavior.xhtml | 18 +++---
5 files changed, 92 insertions(+), 83 deletions(-)
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/70-tree/Sheet_Tree.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/70-tree/Sheet_Tree.test.js
index c8b3d20..1b96266 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/70-tree/Sheet_Tree.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/70-tree/Sheet_Tree.test.js
@@ -25,6 +25,7 @@ it("Collapse tree", function (done) {
let row0periodFn = querySelectorFn("#page\\:mainForm\\:sheet\\:0\\:periodOut");
let row0discovererFn = querySelectorFn("#page\\:mainForm\\:sheet\\:0\\:discovererOut");
let row0yearFn = querySelectorFn("#page\\:mainForm\\:sheet\\:0\\:yearOut");
+ let row1 = querySelectorFn("#page\\:mainForm\\:sheet\\:\\:data_div tr[row-index='1']");
let row1nameFn = querySelectorFn("#page\\:mainForm\\:sheet\\:1\\:nameOut");
let row1centralBodyFn = querySelectorFn("#page\\:mainForm\\:sheet\\:1\\:centralBodyOut");
let row1distanceFn = querySelectorFn("#page\\:mainForm\\:sheet\\:1\\:distanceOut");
@@ -46,18 +47,15 @@ it("Collapse tree", function (done) {
test.do(() => expect(row1periodFn().textContent).toBe("87.97"));
test.do(() => expect(row1discovererFn().textContent).toBe("-"));
test.do(() => expect(row1yearFn().textContent).toBe(""));
- let sheetRow = row1yearFn().parentElement.parentElement;
- test.do(() => expect(sheetRow.classList.contains("tobago-sheet-row")).toBe(true));
- test.do(() => expect(getComputedStyle(sheetRow).display).not.toBe("none"));
- test.event("click", rootTreeButtonFn, () => row0nameFn() && row0nameFn().textContent === "Sun");
- test.do(() => expect(row0nameFn().textContent).toBe("Sun"));
+ test.do(() => expect(row1().classList.contains("d-none")).toBeFalse());
+ test.do(() => expect(getComputedStyle(row1()).display).not.toBe("none"));
+ test.event("click", rootTreeButtonFn, () => row1() && row1().classList.contains("d-none"));
+ test.do(() => expect(row1().classList.contains("d-none")).toBeTrue());
+ test.do(() => expect(getComputedStyle(row1()).display).toBe("none"));
test.do(() => expect(row0centralBodyFn().textContent).toBe("-"));
test.do(() => expect(row0distanceFn().textContent).toBe("0"));
test.do(() => expect(row0periodFn().textContent).toBe("0.0"));
test.do(() => expect(row0discovererFn().textContent).toBe("-"));
test.do(() => expect(row0yearFn().textContent).toBe(""));
- sheetRow = row1yearFn().parentElement.parentElement;
- test.do(() => expect(sheetRow.classList.contains("tobago-sheet-row")).toBe(true));
- test.do(() => expect(getComputedStyle(sheetRow).display).toBe("none"));
test.start();
});
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/00/Content_Validation.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/00/Content_Validation.test.js
index 86c87e9..4bff59a 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/00/Content_Validation.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/00/Content_Validation.test.js
@@ -22,7 +22,6 @@ it("Required: Submit without content.", function (done) {
let messagesFn = querySelectorAllFn("#page\\:messages.tobago-messages div");
let textareaFn = querySelectorFn("#page\\:mainForm\\:required\\:textarea\\:\\:field");
let submitFn = querySelectorFn("#page\\:mainForm\\:required\\:submit_r");
- let textareaValue = textareaFn().value;
let test = new JasmineTestTool(done);
test.setup(() => messagesFn() && messagesFn().length === 0,
@@ -31,7 +30,7 @@ it("Required: Submit without content.", function (done) {
test.do(() => textareaFn().value = "");
test.event("click", submitFn, () => messagesFn() && messagesFn().length === 1);
test.do(() => expect(messagesFn().length).toBe(1));
- test.do(() => expect(textareaFn().value).toBe(textareaValue));
+ test.do(() => expect(textareaFn().value).toBe(""));
test.start();
});
@@ -74,7 +73,7 @@ it("Validate Length: Submit two character.", function (done) {
let test = new JasmineTestTool(done);
test.setup(() => messagesFn() && messagesFn().length === 1,
- () => inFn().value = "",
+ () => inFn().value = "x",
"click", submitFn);
test.do(() => inFn().value = "ab");
test.event("click", submitFn, () => messagesFn() && messagesFn().length === 0);
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/JSR_303.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/JSR_303.test.js
index 6053795..661641f 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/JSR_303.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/01/JSR_303.test.js
@@ -15,45 +15,50 @@
* limitations under the License.
*/
-import {querySelectorAllFn, querySelectorFn} from "/script/tobago-test.js";
+import {elementByIdFn, querySelectorAllFn} 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("Required: Submit without content.", function (done) {
+ const messagesFn = querySelectorAllFn("#page\\:messages.tobago-messages div");
+ const inFn = elementByIdFn("page:mainForm:required:in1::field");
+ const submitFn = elementByIdFn("page:mainForm:required:submit1");
-/*it("Required: Submit without content.", function (done) {
- let messagesFn = querySelectorAllFn("#page\\:messages.tobago-messages div");
- let inFn = querySelectorFn("#page\\:mainForm\\:required\\:in1\\:\\:field");
- let submitFn = querySelectorFn("#page\\:mainForm\\:required\\:submit1");
-
- let test = new JasmineTestTool(done);
+ const test = new JasmineTestTool(done);
+ test.setup(() => messagesFn() && messagesFn().length === 0,
+ () => inFn().value = "Alice",
+ "click", submitFn);
test.do(() => inFn().value = "");
test.event("click", submitFn, () => messagesFn() && messagesFn().length === 1);
test.do(() => expect(messagesFn().length).toBe(1));
+ test.do(() => expect(inFn().value).toBe(""));
test.start();
});
it("Required: Submit with content.", function (done) {
- let messagesFn = querySelectorAllFn("#page\\:messages.tobago-messages div");
- let inFn = querySelectorFn("#page\\:mainForm\\:required\\:in1\\:\\:field");
- let submitFn = querySelectorFn("#page\\:mainForm\\:required\\:submit1");
+ const messagesFn = querySelectorAllFn("#page\\:messages.tobago-messages div");
+ const inFn = elementByIdFn("page:mainForm:required:in1::field");
+ const submitFn = elementByIdFn("page:mainForm:required:submit1");
- let test = new JasmineTestTool(done);
+ const test = new JasmineTestTool(done);
+ test.setup(() => messagesFn() && messagesFn().length === 1,
+ () => inFn().value = "",
+ "click", submitFn);
test.do(() => inFn().value = "some content");
test.event("click", submitFn, () => messagesFn() && messagesFn().length === 0);
test.do(() => expect(messagesFn().length).toBe(0));
+ test.do(() => expect(inFn().value).toBe("some content"));
test.start();
});
it("Length: Submit single character.", function (done) {
- let messagesFn = querySelectorAllFn("#page\\:messages.tobago-messages div");
- let inFn = querySelectorFn("#page\\:mainForm\\:length\\:in2\\:\\:field");
- let submitFn = querySelectorFn("#page\\:mainForm\\:length\\:submit2");
+ const messagesFn = querySelectorAllFn("#page\\:messages.tobago-messages div");
+ const inFn = elementByIdFn("page:mainForm:length:in2::field");
+ const submitFn = elementByIdFn("page:mainForm:length:submit2");
- let test = new JasmineTestTool(done);
+ const test = new JasmineTestTool(done);
+ test.setup(() => messagesFn() && messagesFn().length === 0,
+ () => inFn().value = "Bob",
+ "click", submitFn);
test.do(() => inFn().value = "a");
test.event("click", submitFn, () => messagesFn() && messagesFn().length === 1);
test.do(() => expect(messagesFn().length).toBe(1));
@@ -61,11 +66,14 @@ it("Length: Submit single character.", function (done) {
});
it("Length: Submit three characters.", function (done) {
- let messagesFn = querySelectorAllFn("#page\\:messages.tobago-messages div");
- let inFn = querySelectorFn("#page\\:mainForm\\:length\\:in2\\:\\:field");
- let submitFn = querySelectorFn("#page\\:mainForm\\:length\\:submit2");
+ const messagesFn = querySelectorAllFn("#page\\:messages.tobago-messages div");
+ const inFn = elementByIdFn("page:mainForm:length:in2::field");
+ const submitFn = elementByIdFn("page:mainForm:length:submit2");
- let test = new JasmineTestTool(done);
+ const test = new JasmineTestTool(done);
+ test.setup(() => messagesFn() && messagesFn().length === 1,
+ () => inFn().value = "provoke exception",
+ "click", submitFn);
test.do(() => inFn().value = "abc");
test.event("click", submitFn, () => messagesFn() && messagesFn().length === 0);
test.do(() => expect(messagesFn().length).toBe(0));
@@ -73,13 +81,16 @@ it("Length: Submit three characters.", function (done) {
});
it("Length: Submit five characters.", function (done) {
- let messagesFn = querySelectorAllFn("#page\\:messages.tobago-messages div");
- let inFn = querySelectorFn("#page\\:mainForm\\:length\\:in2\\:\\:field");
- let submitFn = querySelectorFn("#page\\:mainForm\\:length\\:submit2");
+ const messagesFn = querySelectorAllFn("#page\\:messages.tobago-messages div");
+ const inFn = elementByIdFn("page:mainForm:length:in2::field");
+ const submitFn = elementByIdFn("page:mainForm:length:submit2");
- let test = new JasmineTestTool(done);
+ const test = new JasmineTestTool(done);
+ test.setup(() => messagesFn() && messagesFn().length === 0,
+ () => inFn().value = "Dave",
+ "click", submitFn);
test.do(() => inFn().value = "abcde");
test.event("click", submitFn, () => messagesFn() && messagesFn().length === 1);
test.do(() => expect(messagesFn().length).toBe(1));
test.start();
-});*/
+});
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/30-behavior/Behavior.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/30-behavior/Behavior.test.js
index 5c7083a..c9e8572 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/30-behavior/Behavior.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/30-behavior/Behavior.test.js
@@ -15,60 +15,61 @@
* limitations under the License.
*/
+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("Ajax Input", function (done) {
+ const ajaxInputFn = elementByIdFn("page:mainForm:inputAjax::field");
+ const ajaxOutputFn = querySelectorFn("#page\\:mainForm\\:outputAjax .form-control-plaintext");
-/*it("Ajax Input", function (done) {
- let ajaxInputFn = querySelectorFn("#page\\:mainForm\\:j_id_2g\\:\\:field");
- let ajaxOutputFn = querySelectorFn("#page\\:mainForm\\:outAjax .form-control-plaintext");
-
- let test = new JasmineTestTool(done);
+ const test = new JasmineTestTool(done);
+ test.setup(() => ajaxOutputFn().textContent !== "Alice",
+ () => ajaxInputFn().value = "Bob",
+ "change", ajaxInputFn);
test.do(() => ajaxInputFn().value = "Alice");
test.event("change", ajaxInputFn, () => ajaxOutputFn() && ajaxOutputFn().textContent === "Alice");
- test.do(() => expect(ajaxOutputFn().textContent).toBe(ajaxInputFn().value));
+ test.do(() => expect(ajaxOutputFn().textContent).toBe("Alice"));
test.start();
});
it("Event Input", function (done) {
- let eventInputFn = querySelectorFn("#page\\:mainForm\\:j_id_2k\\:\\:field");
- let eventOutputFn = querySelectorFn("#page\\:mainForm\\:j_id_2m .form-control-plaintext");
+ const eventInputFn = elementByIdFn("page:mainForm:inputEvent::field");
+ const eventOutputFn = querySelectorFn("#page\\:mainForm\\:outputEvent .form-control-plaintext");
let test = new JasmineTestTool(done);
- test.do(() => eventInputFn().value = "Alice");
- test.event("change", eventInputFn, () => eventOutputFn() && eventOutputFn().textContent === "Alice");
- test.do(() => expect(eventOutputFn().textContent).toBe(eventInputFn().value));
+ test.setup(() => eventOutputFn().textContent !== "Charlie",
+ () => eventInputFn().value = "Dave",
+ "change", eventInputFn);
+ test.do(() => eventInputFn().value = "Charlie");
+ test.event("change", eventInputFn, () => eventOutputFn() && eventOutputFn().textContent === "Charlie");
+ test.do(() => expect(eventOutputFn().textContent).toBe("Charlie"));
test.start();
});
it("change the event name", function (done) {
- let ajaxFn = querySelectorFn("#page\\:mainForm\\:j_id_2p");
- let eventFn = querySelectorFn("#page\\:mainForm\\:j_id_2q");
- let outCounterFn = querySelectorFn("#page\\:mainForm\\:outCounter .form-control-plaintext");
- let counter = Number(outCounterFn().textContent);
+ const dblButtonAjaxFn = elementByIdFn("page:mainForm:dblButtonAjax");
+ const dblButtonEventFn = elementByIdFn("page:mainForm:dblButtonEvent");
+ const dblCounterFn = querySelectorFn("#page\\:mainForm\\:dblCounter .form-control-plaintext");
+ let counter = Number(dblCounterFn().textContent);
let test = new JasmineTestTool(done);
- test.event("dblclick", ajaxFn, () => outCounterFn() && Number(outCounterFn().textContent) === counter + 1);
- test.do(() => expect(Number(outCounterFn().textContent)).toBe(counter + 1));
- test.event("dblclick", eventFn, () => outCounterFn() && Number(outCounterFn().textContent) === counter + 2);
- test.do(() => expect(Number(outCounterFn().textContent)).toBe(counter + 2));
- test.event("click", ajaxFn, () => outCounterFn() && Number(outCounterFn().textContent) === counter + 2);
- test.do(() => expect(Number(outCounterFn().textContent)).toBe(counter + 2));
- test.event("dblclick", eventFn, () => outCounterFn() && Number(outCounterFn().textContent) === counter + 3);
- test.do(() => expect(Number(outCounterFn().textContent)).toBe(counter + 3));
- test.event("click", eventFn, () => outCounterFn() && Number(outCounterFn().textContent) === counter + 3);
- test.do(() => expect(Number(outCounterFn().textContent)).toBe(counter + 3));
- test.event("dblclick", ajaxFn, () => outCounterFn() && Number(outCounterFn().textContent) === counter + 4);
- test.do(() => expect(Number(outCounterFn().textContent)).toBe(counter + 4));
+ test.event("dblclick", dblButtonAjaxFn,
+ () => dblCounterFn() && Number(dblCounterFn().textContent) === counter + 1);
+ test.do(() => expect(Number(dblCounterFn().textContent)).toBe(counter + 1));
+ test.event("dblclick", dblButtonEventFn,
+ () => dblCounterFn() && Number(dblCounterFn().textContent) === counter + 2);
+ test.do(() => expect(Number(dblCounterFn().textContent)).toBe(counter + 2));
+ test.event("dblclick", dblButtonEventFn,
+ () => dblCounterFn() && Number(dblCounterFn().textContent) === counter + 3);
+ test.do(() => expect(Number(dblCounterFn().textContent)).toBe(counter + 3));
+ test.event("dblclick", dblButtonAjaxFn,
+ () => dblCounterFn() && Number(dblCounterFn().textContent) === counter + 4);
+ test.do(() => expect(Number(dblCounterFn().textContent)).toBe(counter + 4));
test.start();
});
it("f:ajax and tc:event", function (done) {
- let submitFn = querySelectorFn("#page\\:mainForm\\:btnAjaxEvent");
+ let submitFn = elementByIdFn("page:mainForm:btnAjaxEvent");
let outFn = querySelectorFn("#page\\:mainForm\\:out .form-control-plaintext");
let test = new JasmineTestTool(done);
@@ -79,4 +80,4 @@ it("f:ajax and tc:event", function (done) {
test.event("click", submitFn, () => outFn() && outFn().textContent === "Ajax");
test.do(() => expect(outFn().textContent).toBe("Ajax"));
test.start();
-});*/
+});
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/30-behavior/Behavior.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/30-behavior/Behavior.xhtml
index 350e2d7..6aee197 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/30-behavior/Behavior.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/30-behavior/Behavior.xhtml
@@ -41,10 +41,10 @@
<demo-highlight language="markup"><tc:in label="Ajax Input" value="\#{behaviorController.ajax}">
<f:ajax render="outAjax"/>
</tc:in></demo-highlight>
- <tc:in label="Ajax Input" value="#{behaviorController.ajax}">
- <f:ajax render="outAjax"/>
+ <tc:in id="inputAjax" label="Ajax Input" value="#{behaviorController.ajax}">
+ <f:ajax render="outputAjax"/>
</tc:in>
- <tc:out id="outAjax" label="Ajax Output" value="#{behaviorController.ajax}"/>
+ <tc:out id="outputAjax" label="Ajax Output" value="#{behaviorController.ajax}"/>
</tc:section>
<tc:section label="tc:event">
@@ -52,10 +52,10 @@
<tc:event/>
</tc:in></demo-highlight>
- <tc:in label="Event Input" value="#{behaviorController.event}">
+ <tc:in id="inputEvent" label="Event Input" value="#{behaviorController.event}">
<tc:event/>
</tc:in>
- <tc:out label="Event Output" value="#{behaviorController.event}"/>
+ <tc:out id="outputEvent" label="Event Output" value="#{behaviorController.event}"/>
</tc:section>
</tc:section>
@@ -69,13 +69,13 @@
<tc:button label="Event Double Click">
<tc:event event="dblclick" actionListener="..."/>
</tc:button></demo-highlight>
- <tc:button label="Ajax Double Click">
- <f:ajax event="dblclick" render="outCounter" listener="#{behaviorController.countUp}"/>
+ <tc:button id="dblButtonAjax" label="Ajax Double Click">
+ <f:ajax event="dblclick" render="dblCounter" listener="#{behaviorController.countUp}"/>
</tc:button>
- <tc:button label="Event Double Click">
+ <tc:button id="dblButtonEvent" label="Event Double Click">
<tc:event event="dblclick" actionListener="#{behaviorController.countUp}"/>
</tc:button>
- <tc:out id="outCounter" label="Counter" value="#{behaviorController.counter}"/>
+ <tc:out id="dblCounter" label="Counter" value="#{behaviorController.counter}"/>
</tc:section>
<tc:section label="Advanced">