Author: jpapouse
Date: 2011-12-07 12:02:26 -0500 (Wed, 07 Dec 2011)
New Revision: 23059
Modified:
modules/tests/metamer/trunk/application/src/main/webapp/templates/header.xhtml
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/AbstractMetamerTest.java
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/PhaseInfo.java
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richTreeNode/TestTreeNodeSimple.java
Log:
RF-11747: test for calling jsFunction through @onbeforetoggle attribute
Modified: modules/tests/metamer/trunk/application/src/main/webapp/templates/header.xhtml
===================================================================
---
modules/tests/metamer/trunk/application/src/main/webapp/templates/header.xhtml 2011-12-07
15:28:56 UTC (rev 23058)
+++
modules/tests/metamer/trunk/application/src/main/webapp/templates/header.xhtml 2011-12-07
17:02:26 UTC (rev 23059)
@@ -87,6 +87,13 @@
updateStatusChecker();
</script>
</a4j:outputPanel>
+
+ <h:outputLabel id="jsFunctionCheckerLabel"
value="jsFunction Checker" for="jsFunctionChecker"/>
+ <a4j:outputPanel id="jsFunctionChecker">
+ <h:outputText value="#{phasesBean.date}">
+ <f:convertDateTime pattern="HH:MM:ss.SSS" />
+ </h:outputText>
+ </a4j:outputPanel>
<!--
TODO: disabled because of MyFaces issue: MYFACES-3061 (RF-10668)
@@ -95,6 +102,7 @@
ui:debug hotkey="L"
-->
+ <a4j:jsFunction name="functionChecker"
render="jsFunctionChecker"/>
</h:panelGrid>
Modified:
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/AbstractMetamerTest.java
===================================================================
---
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/AbstractMetamerTest.java 2011-12-07
15:28:56 UTC (rev 23058)
+++
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/AbstractMetamerTest.java 2011-12-07
17:02:26 UTC (rev 23059)
@@ -88,12 +88,14 @@
public static final long TIMEOUT = 5000;
protected JQueryLocator time = jq("span[id$=requestTime]");
+ protected JQueryLocator jsFunctionChecker =
jq("span[id$=jsFunctionChecker]");
protected JQueryLocator renderChecker = jq("span[id$=renderChecker]");
protected JQueryLocator statusChecker =
jq("span[id$=statusCheckerOutput]");
protected IdLocator fullPageRefreshIcon =
id("controlsForm:fullPageRefreshImage");
protected IdLocator rerenderAllIcon = id("controlsForm:reRenderAllImage");
protected TextRetriever retrieveRequestTime = retrieveText.locator(time);
protected Retriever<String> retrieveWindowData = new
ScriptEvaluationRetriever().script(js("window.data"));
+ protected TextRetriever retrieveJsFunctionChecker =
retrieveText.locator(jsFunctionChecker);
protected TextRetriever retrieveRenderChecker =
retrieveText.locator(jq("#renderChecker"));
protected TextRetriever retrieveStatusChecker =
retrieveText.locator(jq("#statusCheckerOutput"));
protected PhaseInfo phaseInfo = new PhaseInfo();
Modified:
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/PhaseInfo.java
===================================================================
---
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/PhaseInfo.java 2011-12-07
15:28:56 UTC (rev 23058)
+++
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/PhaseInfo.java 2011-12-07
17:02:26 UTC (rev 23059)
@@ -39,6 +39,7 @@
import org.jboss.test.selenium.locator.JQueryLocator;
import org.jboss.test.selenium.waiting.retrievers.RetrieverFactory;
import org.jboss.test.selenium.waiting.retrievers.TextRetriever;
+import org.jboss.test.selenium.waiting.selenium.SeleniumCondition;
/**
* Retrieves and asserts the info about life-cycle.
@@ -107,6 +108,25 @@
}
}
+ public SeleniumCondition getListenerCondition(final PhaseId phaseId, final String
message) {
+ return new SeleniumCondition() {
+ @Override
+ public boolean isTrue() {
+ initialize();
+ Set<String> set = map.get(phaseId);
+ if (set != null && set.size() > 0) {
+ for (String description : set) {
+ if (description.contains(message)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ };
+
+ }
+
private void initialize() {
if (retrieveRequestTime.isValueChanged()) {
map.clear();
Modified:
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richTreeNode/TestTreeNodeSimple.java
===================================================================
---
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richTreeNode/TestTreeNodeSimple.java 2011-12-07
15:28:56 UTC (rev 23058)
+++
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richTreeNode/TestTreeNodeSimple.java 2011-12-07
17:02:26 UTC (rev 23059)
@@ -43,6 +43,7 @@
import javax.faces.event.PhaseId;
+import org.jboss.cheiron.halt.XHRHalter;
import org.jboss.test.selenium.dom.Event;
import org.jboss.test.selenium.geometry.Point;
import org.jboss.test.selenium.locator.Attribute;
@@ -249,6 +250,29 @@
}
@Test
+ public void testOnbeforetoggleWithJsFunction() {
+ attributes.set(onbeforetoggle, "functionChecker()");
+ retrieveJsFunctionChecker.initializeValue();
+ XHRHalter.enable();
+
+ selenium.click(treeNode.getHandle());
+ XHRHalter handle = XHRHalter.getHandleBlocking();
+ handle.complete();
+
+ retrieveRequestTime.initializeValue();
+ waitGui.waitForChange(retrieveJsFunctionChecker);
+ phaseInfo.assertNoListener("tree toggle listener invoked");
+ handle.complete();
+
+ waitGui.waitForChange(retrieveRequestTime);
+ waitModel
+ .failWith("The toggle listener hasn't been invoked.")
+ .until(phaseInfo.getListenerCondition(PhaseId.PROCESS_VALIDATIONS, "tree
toggle listener invoked"));
+
+ XHRHalter.disable();
+ }
+
+ @Test
public void testRendered() {
treeNode.expand();
subTreeNode.expand();
Show replies by date