From f1877cd47690df6075a04923fa4c7b01f973b270 Mon Sep 17 00:00:00 2001 From: jamsonchan Date: Tue, 2 Jan 2024 20:51:21 +0800 Subject: [PATCH] Add testcases | pure comp mode switch | fix setCheckmark(false) update to client failed in indeterminate mode --- .../zktest/test2/F100_ZK_3853_2Composer.java | 1 - .../src/main/webapp/test2/F100-ZK-3853-3.zul | 125 +++++++++++++++++ .../zktest/zats/test2/F100_ZK_3853_1Test.java | 4 +- .../zktest/zats/test2/F100_ZK_3853_2Test.java | 6 - .../zktest/zats/test2/F100_ZK_3853_3Test.java | 132 ++++++++++++++++++ zul/src/main/java/org/zkoss/zul/Tree.java | 2 +- 6 files changed, 260 insertions(+), 10 deletions(-) create mode 100644 zktest/src/main/webapp/test2/F100-ZK-3853-3.zul create mode 100644 zktest/src/test/java/org/zkoss/zktest/zats/test2/F100_ZK_3853_3Test.java diff --git a/zktest/src/main/java/org/zkoss/zktest/test2/F100_ZK_3853_2Composer.java b/zktest/src/main/java/org/zkoss/zktest/test2/F100_ZK_3853_2Composer.java index b57163c3f5..98237bb85f 100644 --- a/zktest/src/main/java/org/zkoss/zktest/test2/F100_ZK_3853_2Composer.java +++ b/zktest/src/main/java/org/zkoss/zktest/test2/F100_ZK_3853_2Composer.java @@ -14,7 +14,6 @@ import org.zkoss.zk.ui.select.SelectorComposer; import org.zkoss.zk.ui.select.annotation.Listen; import org.zkoss.zk.ui.select.annotation.Wire; -import org.zkoss.zul.Button; import org.zkoss.zul.DefaultTreeModel; import org.zkoss.zul.DefaultTreeNode; import org.zkoss.zul.Tree; diff --git a/zktest/src/main/webapp/test2/F100-ZK-3853-3.zul b/zktest/src/main/webapp/test2/F100-ZK-3853-3.zul new file mode 100644 index 0000000000..5e1d19be0a --- /dev/null +++ b/zktest/src/main/webapp/test2/F100-ZK-3853-3.zul @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/zktest/src/test/java/org/zkoss/zktest/zats/test2/F100_ZK_3853_1Test.java b/zktest/src/test/java/org/zkoss/zktest/zats/test2/F100_ZK_3853_1Test.java index 57ed0dd8bc..e0c23b06a1 100644 --- a/zktest/src/test/java/org/zkoss/zktest/zats/test2/F100_ZK_3853_1Test.java +++ b/zktest/src/test/java/org/zkoss/zktest/zats/test2/F100_ZK_3853_1Test.java @@ -86,7 +86,7 @@ public void test() { assertHdcm(2); assertCm(2, 4, 5, 8); assertCm(1, 3, 7, 10); - assertCm(0, 1, 2, 6, 9, 11, 12, 13); + assertCm(0, 0, 1, 2, 6, 9, 11, 12, 13); clickHdcm(); @@ -104,7 +104,7 @@ public void test() { assertHdcm(2); assertCm(2, 4, 5, 8); assertCm(1, 3, 7, 10); - assertCm(0, 1, 2, 6, 9, 11, 12, 13); + assertCm(0, 0, 1, 2, 6, 9, 11, 12, 13); clickHdcm(); diff --git a/zktest/src/test/java/org/zkoss/zktest/zats/test2/F100_ZK_3853_2Test.java b/zktest/src/test/java/org/zkoss/zktest/zats/test2/F100_ZK_3853_2Test.java index 9f00591919..656fa33210 100644 --- a/zktest/src/test/java/org/zkoss/zktest/zats/test2/F100_ZK_3853_2Test.java +++ b/zktest/src/test/java/org/zkoss/zktest/zats/test2/F100_ZK_3853_2Test.java @@ -15,12 +15,6 @@ public class F100_ZK_3853_2Test extends F100_ZK_3853_1Test { - - @Override - protected boolean isHeadless() { - return false; - } - @Test public void test() { super.test(); diff --git a/zktest/src/test/java/org/zkoss/zktest/zats/test2/F100_ZK_3853_3Test.java b/zktest/src/test/java/org/zkoss/zktest/zats/test2/F100_ZK_3853_3Test.java new file mode 100644 index 0000000000..f4aa21c371 --- /dev/null +++ b/zktest/src/test/java/org/zkoss/zktest/zats/test2/F100_ZK_3853_3Test.java @@ -0,0 +1,132 @@ +/* F100_ZK_3853_3Test.java + + Purpose: + + Description: + + History: + Tue Jan 02 19:34:54 CST 2024, Created by jamson + +Copyright (C) 2024 Potix Corporation. All Rights Reserved. +*/ +package org.zkoss.zktest.zats.test2; + +import org.junit.jupiter.api.Test; + +public class F100_ZK_3853_3Test extends F100_ZK_3853_1Test { + + /* + mode 0: none + mode 1: checkmark + mode 2: multiple + mode 3: checkmark + multiple + mode 4: indeterminate ( + checkmark + multiple ) + */ + + @Test + public void none_to_indeterminate() { + connect(); + + click(jq("@treerow:eq(9)")); + waitResponse(); + toggleIndeterminate(); // open + + assertHdcm(2); + assertCm(2, 4, 5, 8); + assertCm(1, 9); + assertCm(0, 0, 1, 2, 6, 7, 10, 11, 12, 13); + } + + @Test + public void checkmark_to_indeterminate() { + connect(); + + toggleCheckmark(); // open + click(jq("@treerow:eq(9)")); + waitResponse(); + + toggleIndeterminate(); // open + + assertHdcm(2); + assertCm(2, 4, 5, 8); + assertCm(1, 9); + assertCm(0, 0, 1, 2, 6, 7, 10, 11, 12, 13); + } + + @Test + public void multiple_to_indeterminate() { + connect(); + + toggleMultiple(); // open + click(jq("@treerow:eq(9)")); + waitResponse(); + + toggleIndeterminate(); // open + + assertHdcm(2); + assertCm(2, 4, 5, 8); + assertCm(1, 9); + assertCm(0, 0, 1, 2, 6, 7, 10, 11, 12, 13); + } + + @Test + public void checkmark_and_multiple_to_indeterminate() { + connect(); + + toggleCheckmark(); // open + toggleMultiple(); // open + + clickCm(2, 9); + + toggleIndeterminate(); // open + + assertHdcm(2); + assertCm(2, 0, 4, 5, 8); + assertCm(1, 2, 9); + assertCm(0, 1, 6, 7, 10, 11, 12, 13); + } + + @Test + public void indeterminate_to_checkmark_and_multiple() { + connect(); + + toggleIndeterminate(); // open + + click(jq("@treerow:eq(9)")); + waitResponse(); + + assertHdcm(2); + assertCm(2, 4, 5, 8); + assertCm(1, 9); + assertCm(0, 0, 1, 2, 6, 7, 10, 11, 12, 13); + + toggleIndeterminate(); // close + + assertHdcm(0); + for (int i = 0; i <= 13; ++i) { + if (i == 9) assertCm(1, 9); + else assertCm(0, i); + } + } + + public void toggleCheckmark() { + click(jq("@button:eq(0)")); + waitResponse(); + } + + public void toggleMultiple() { + click(jq("@button:eq(1)")); + waitResponse(); + } + + public void toggleIndeterminate() { + click(jq("@button:eq(2)")); + waitResponse(); + } + + @Override + public void test() { + // don't run super's test() + // inherit just for the methods inside + } +} diff --git a/zul/src/main/java/org/zkoss/zul/Tree.java b/zul/src/main/java/org/zkoss/zul/Tree.java index edbf9bae0f..31383a7850 100644 --- a/zul/src/main/java/org/zkoss/zul/Tree.java +++ b/zul/src/main/java/org/zkoss/zul/Tree.java @@ -872,9 +872,9 @@ public boolean isCheckmark() { public void setCheckmark(boolean checkmark) { if (_checkmark != checkmark) { _checkmark = checkmark; - smartUpdate("checkmark", checkmark); if (!checkmark) setIndeterminate(false); + smartUpdate("checkmark", checkmark); } }