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 2020/04/21 21:01:11 UTC

[myfaces-tobago] 02/02: fix Collapsible_Box 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

commit b735945abcd1639789a546642eeaebfbc49892d8
Author: Henning Nöth <hn...@apache.org>
AuthorDate: Tue Apr 21 22:59:39 2020 +0200

    fix Collapsible_Box test
---
 .../00-collapsible-box/Collapsible_Box.test.js     | 104 +++++++++++++++------
 1 file changed, 75 insertions(+), 29 deletions(-)

diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/00-collapsible-box/Collapsible_Box.test.js b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/00-collapsible-box/Collapsible_Box.test.js
index d7a571a..9c56a8d 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/00-collapsible-box/Collapsible_Box.test.js
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/53-collapsible/00-collapsible-box/Collapsible_Box.test.js
@@ -24,8 +24,9 @@ it("Simple Collapsible Box: show -> hide transition", function (done) {
   let contentFn = querySelectorFn("#page\\:mainForm\\:controller\\:content");
 
   let test = new JasmineTestTool(done);
-  test.do(() => showFn().dispatchEvent(new Event("click", {bubbles: true})));
-  test.wait(() => contentFn());
+  test.setup(
+      () => contentFn(),
+      () => showFn().dispatchEvent(new Event("click", {bubbles: true})));
   test.do(() => expect(contentFn() !== null).toBe(true));
   test.do(() => hideFn().dispatchEvent(new Event("click", {bubbles: true})));
   test.wait(() => !contentFn());
@@ -39,8 +40,9 @@ it("Simple Collapsible Box: hide -> show transition", function (done) {
   let contentFn = querySelectorFn("#page\\:mainForm\\:controller\\:content");
 
   let test = new JasmineTestTool(done);
-  test.do(() => hideFn().dispatchEvent(new Event("click", {bubbles: true})));
-  test.wait(() => !contentFn());
+  test.setup(
+      () => !contentFn(),
+      () => hideFn().dispatchEvent(new Event("click", {bubbles: true})));
   test.do(() => expect(contentFn() !== null).toBe(false));
   test.do(() => showFn().dispatchEvent(new Event("click", {bubbles: true})));
   test.wait(() => contentFn());
@@ -51,17 +53,26 @@ it("Simple Collapsible Box: hide -> show transition", function (done) {
 it("Full Server Request: open both boxes", function (done) {
   let show1Fn = querySelectorFn("#page\\:mainForm\\:server\\:show1");
   let show2Fn = querySelectorFn("#page\\:mainForm\\:server\\:show2");
+  let hide1Fn = querySelectorFn("#page\\:mainForm\\:server\\:hide1");
+  let hide2Fn = querySelectorFn("#page\\:mainForm\\:server\\:hide2");
   let content1Fn = querySelectorFn("#page\\:mainForm\\:server\\:content1");
   let content2Fn = querySelectorFn("#page\\:mainForm\\:server\\:content2");
-  let existContent2 = content2Fn() !== null;
 
   let test = new JasmineTestTool(done);
+  test.setup(
+      () => !content1Fn(),
+      () => hide1Fn().dispatchEvent(new Event("click", {bubbles: true})));
+  test.setup(
+      () => !content2Fn(),
+      () => hide2Fn().dispatchEvent(new Event("click", {bubbles: true})));
+  test.do(() => expect(content1Fn() !== null).toBe(false));
+  test.do(() => expect(content2Fn() !== null).toBe(false));
   test.do(() => show1Fn().dispatchEvent(new Event("click", {bubbles: true})));
   test.wait(() => content1Fn());
   test.do(() => expect(content1Fn() !== null).toBe(true));
-  test.do(() => expect(existContent2).toBe(true));
+  test.do(() => expect(content2Fn() !== null).toBe(false));
   test.do(() => show2Fn().dispatchEvent(new Event("click", {bubbles: true})));
-  test.wait(() => content1Fn() && content2Fn());
+  test.wait(() => content2Fn());
   test.do(() => expect(content1Fn() !== null).toBe(true));
   test.do(() => expect(content2Fn() !== null).toBe(true));
   test.start();
@@ -69,37 +80,55 @@ it("Full Server Request: open both boxes", function (done) {
 
 it("Full Server Request: open box 1, close box 2", function (done) {
   let show1Fn = querySelectorFn("#page\\:mainForm\\:server\\:show1");
+  let show2Fn = querySelectorFn("#page\\:mainForm\\:server\\:show2");
+  let hide1Fn = querySelectorFn("#page\\:mainForm\\:server\\:hide1");
   let hide2Fn = querySelectorFn("#page\\:mainForm\\:server\\:hide2");
   let content1Fn = querySelectorFn("#page\\:mainForm\\:server\\:content1");
   let content2Fn = querySelectorFn("#page\\:mainForm\\:server\\:content2");
-  let existContent2 = content2Fn() !== null;
 
   let test = new JasmineTestTool(done);
+  test.setup(
+      () => !content1Fn(),
+      () => hide1Fn().dispatchEvent(new Event("click", {bubbles: true})));
+  test.setup(
+      () => content2Fn(),
+      () => show2Fn().dispatchEvent(new Event("click", {bubbles: true})));
+  test.do(() => expect(content1Fn() !== null).toBe(false));
+  test.do(() => expect(content2Fn() !== null).toBe(true));
   test.do(() => show1Fn().dispatchEvent(new Event("click", {bubbles: true})));
   test.wait(() => content1Fn());
   test.do(() => expect(content1Fn() !== null).toBe(true));
-  test.do(() => expect(existContent2).toBe(true));
+  test.do(() => expect(content2Fn() !== null).toBe(true));
   test.do(() => hide2Fn().dispatchEvent(new Event("click", {bubbles: true})));
-  test.wait(() => content1Fn() && !content2Fn());
-  test.do(() => expect(content1Fn !== null).toBe(true));
+  test.wait(() => !content2Fn());
+  test.do(() => expect(content1Fn() !== null).toBe(true));
   test.do(() => expect(content2Fn() !== null).toBe(false));
   test.start();
 });
 
 it("Full Server Request: close box 1, open box 2", function (done) {
   let hide1Fn = querySelectorFn("#page\\:mainForm\\:server\\:hide1");
+  let hide2Fn = querySelectorFn("#page\\:mainForm\\:server\\:hide2");
+  let show1Fn = querySelectorFn("#page\\:mainForm\\:server\\:show1");
   let show2Fn = querySelectorFn("#page\\:mainForm\\:server\\:show2");
   let content1Fn = querySelectorFn("#page\\:mainForm\\:server\\:content1");
   let content2Fn = querySelectorFn("#page\\:mainForm\\:server\\:content2");
-  let existContent2 = content2Fn() !== null;
 
   let test = new JasmineTestTool(done);
+  test.setup(
+      () => content1Fn(),
+      () => show1Fn().dispatchEvent(new Event("click", {bubbles: true})));
+  test.setup(
+      () => !content2Fn(),
+      () => hide2Fn().dispatchEvent(new Event("click", {bubbles: true})));
+  test.do(() => expect(content1Fn() !== null).toBe(true));
+  test.do(() => expect(content2Fn() !== null).toBe(false));
   test.do(() => hide1Fn().dispatchEvent(new Event("click", {bubbles: true})));
   test.wait(() => !content1Fn());
   test.do(() => expect(content1Fn() !== null).toBe(false))
-  test.do(() => expect(content2Fn() !== null).toBe(existContent2));
+  test.do(() => expect(content2Fn() !== null).toBe(false));
   test.do(() => show2Fn().dispatchEvent(new Event("click", {bubbles: true})));
-  test.wait(() => !content1Fn() && content2Fn());
+  test.wait(() => content2Fn());
   test.do(() => expect(content1Fn() !== null).toBe(false));
   test.do(() => expect(content2Fn() !== null).toBe(true));
   test.start();
@@ -108,19 +137,28 @@ it("Full Server Request: close box 1, open box 2", function (done) {
 it("Full Server Request: close both boxes", function (done) {
   let hide1Fn = querySelectorFn("#page\\:mainForm\\:server\\:hide1");
   let hide2Fn = querySelectorFn("#page\\:mainForm\\:server\\:hide2");
+  let show1Fn = querySelectorFn("#page\\:mainForm\\:server\\:show1");
+  let show2Fn = querySelectorFn("#page\\:mainForm\\:server\\:show2");
   let content1Fn = querySelectorFn("#page\\:mainForm\\:server\\:content1");
   let content2Fn = querySelectorFn("#page\\:mainForm\\:server\\:content2");
-  let existContent2 = content2Fn() !== null;
 
   let test = new JasmineTestTool(done);
+  test.setup(
+      () => content1Fn(),
+      () => show1Fn().dispatchEvent(new Event("click", {bubbles: true})));
+  test.setup(
+      () => content2Fn(),
+      () => show2Fn().dispatchEvent(new Event("click", {bubbles: true})));
+  test.do(() => expect(content1Fn() !== null).toBe(true));
+  test.do(() => expect(content2Fn() !== null).toBe(true));
   test.do(() => hide1Fn().dispatchEvent(new Event("click", {bubbles: true})));
   test.wait(() => !content1Fn());
-  test.do(() => expect(content1Fn()).toBe(null));
-  test.do(() => expect(content2Fn() !== null).toBe(existContent2));
+  test.do(() => expect(content1Fn() !== null).toBe(false));
+  test.do(() => expect(content2Fn() !== null).toBe(true));
   test.do(() => hide2Fn().dispatchEvent(new Event("click", {bubbles: true})));
-  test.wait(() => !content1Fn() && !content2Fn());
-  test.do(() => expect(content1Fn()).toBe(null));
-  test.do(() => expect(content2Fn()).toBe(null));
+  test.wait(() => !content2Fn());
+  test.do(() => expect(content1Fn() !== null).toBe(false));
+  test.do(() => expect(content2Fn() !== null).toBe(false));
   test.start();
 });
 
@@ -152,13 +190,18 @@ it("Client Side: hide -> show transition", function (done) {
 
 it("Client Side: hide content and submit empty string", function (done) {
   let messagesFn = querySelectorAllFn("#page\\:messages.tobago-messages div");
-  let showFn = querySelectorFn("#page\\:mainForm\\:client\\:showNoRequestBox");
   let hideFn = querySelectorFn("#page\\:mainForm\\:client\\:hideNoRequestBox");
   let boxFn = querySelectorFn("#page\\:mainForm\\:client\\:noRequestBox");
   let inFn = querySelectorFn("#page\\:mainForm\\:client\\:inNoRequestBox\\:\\:field");
   let submitFn = querySelectorFn("#page\\:mainForm\\:client\\:submitNoRequestBox");
 
   let test = new JasmineTestTool(done);
+  test.setup(
+      () => messagesFn() && messagesFn().length === 0,
+      () => {
+        inFn().value = "some content";
+        submitFn().dispatchEvent(new Event("click", {bubbles: true}));
+      });
   test.do(() => hideFn().dispatchEvent(new Event("click", {bubbles: true})));
   test.do(() => expect(boxFn().classList.contains("tobago-collapsed")).toBe(true));
   test.do(() => inFn().value = "");
@@ -174,11 +217,12 @@ it("Ajax: show -> hide transition", function (done) {
   let inFn = querySelectorFn("#page\\:mainForm\\:ajax\\:inAjaxBox\\:\\:field");
 
   let test = new JasmineTestTool(done);
-  test.do(() => showFn().dispatchEvent(new Event("click", {bubbles: true})));
-  test.wait(() => inFn());
+  test.setup(
+      () => inFn(),
+      () => showFn().dispatchEvent(new Event("click", {bubbles: true})));
   test.do(() => expect(inFn() !== null).toBe(true));
   test.do(() => hideFn().dispatchEvent(new Event("click", {bubbles: true})));
-  test.wait(() => inFn() === null);
+  test.wait(() => !inFn());
   test.do(() => expect(inFn() !== null).toBe(false));
   test.start();
 });
@@ -189,8 +233,9 @@ it("Ajax: hide -> show transition", function (done) {
   let inFn = querySelectorFn("#page\\:mainForm\\:ajax\\:inAjaxBox\\:\\:field");
 
   let test = new JasmineTestTool(done);
-  test.do(() => hideFn().dispatchEvent(new Event("click", {bubbles: true})));
-  test.wait(() => inFn() === null);
+  test.setup(
+      () => !inFn(),
+      () => hideFn().dispatchEvent(new Event("click", {bubbles: true})));
   test.do(() => expect(inFn() !== null).toBe(false));
   test.do(() => showFn().dispatchEvent(new Event("click", {bubbles: true})));
   test.wait(() => inFn());
@@ -206,12 +251,13 @@ it("Ajax: hide content and submit empty string", function (done) {
   let submitFn = querySelectorFn("#page\\:mainForm\\:ajax\\:submitAjaxBox");
 
   let test = new JasmineTestTool(done);
-  test.do(() => showFn().dispatchEvent(new Event("click", {bubbles: true})));
-  test.wait(() => inFn());
+  test.setup(
+      () => inFn(),
+      () => showFn().dispatchEvent(new Event("click", {bubbles: true})));
   test.do(() => expect(inFn() !== null).toBe(true));
   test.do(() => inFn().value = "");
   test.do(() => hideFn().dispatchEvent(new Event("click", {bubbles: true})));
-  test.wait(() => inFn() === null);
+  test.wait(() => !inFn());
   test.do(() => expect(inFn() !== null).toBe(false));
   test.do(() => submitFn().dispatchEvent(new Event("click", {bubbles: true})));
   test.wait(() => messagesFn() && messagesFn().length === 0);