JBoss Rich Faces SVN: r12653 - trunk/ui/dataFilterSlider/src/main/java/org/richfaces/component.
by richfaces-svn-commits@lists.jboss.org
Author: dsvyatobatsko
Date: 2009-02-13 08:33:28 -0500 (Fri, 13 Feb 2009)
New Revision: 12653
Modified:
trunk/ui/dataFilterSlider/src/main/java/org/richfaces/component/UIDataFltrSlider.java
Log:
https://jira.jboss.org/jira/browse/RF-5328
Modified: trunk/ui/dataFilterSlider/src/main/java/org/richfaces/component/UIDataFltrSlider.java
===================================================================
--- trunk/ui/dataFilterSlider/src/main/java/org/richfaces/component/UIDataFltrSlider.java 2009-02-13 13:24:05 UTC (rev 12652)
+++ trunk/ui/dataFilterSlider/src/main/java/org/richfaces/component/UIDataFltrSlider.java 2009-02-13 13:33:28 UTC (rev 12653)
@@ -26,8 +26,13 @@
import java.util.List;
import java.util.Map;
+import javax.el.ELException;
+import javax.el.ValueExpression;
+import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
+import javax.faces.component.UIComponentBase;
import javax.faces.component.UIData;
+import javax.faces.component.UIInput;
import javax.faces.context.FacesContext;
import javax.faces.el.MethodBinding;
import javax.faces.event.AbortProcessingException;
@@ -37,6 +42,7 @@
import org.ajax4jsf.component.AjaxActionComponent;
import org.ajax4jsf.renderkit.AjaxRendererUtils;
import org.ajax4jsf.renderkit.RendererUtils;
+import org.richfaces.component.util.MessageUtil;
import org.richfaces.event.DataFilterSliderAdapter;
import org.richfaces.event.DataFilterSliderEvent;
import org.richfaces.event.DataFilterSliderListener;
@@ -108,7 +114,89 @@
decode(context);
}
+
/**
+ * <p>In addition to the standard <code>processUpdates</code> behavior
+ * inherited from {@link UIComponentBase}, calls
+ * <code>updateModel()</code>.
+ * If the component is invalid afterwards, calls
+ * {@link FacesContext#renderResponse}.
+ * If a <code>RuntimeException</code> is thrown during
+ * update processing, calls {@link FacesContext#renderResponse}
+ * and re-throw the exception.
+ * </p>
+ *
+ * @throws NullPointerException {@inheritDoc}
+ */
+ public void processUpdates(FacesContext context) {
+
+ if (context == null) {
+ throw new NullPointerException();
+ }
+
+ // Skip processing if our rendered flag is false
+ if (!isRendered()) {
+ return;
+ }
+
+ super.processUpdates(context);
+
+ try {
+ updateModel(context);
+ } catch (RuntimeException e) {
+ context.renderResponse();
+ throw e;
+ }
+ }
+
+ protected void updateModel(FacesContext context) {
+ Integer handleValue = getHandleValue();
+ if (null != handleValue) {
+ ValueExpression ve = getValueExpression("handleValue");
+ if (ve != null) {
+ try {
+ ve.setValue(context.getELContext(), handleValue);
+ setHandleValue(null);
+ } catch (ELException e) {
+ String messageStr = e.getMessage();
+ Throwable result = e.getCause();
+ while (null != result && result.getClass().isAssignableFrom(ELException.class)) {
+ messageStr = result.getMessage();
+ result = result.getCause();
+ }
+ FacesMessage message;
+ if (null == messageStr) {
+ message =
+ // not an UIInput, but constant is fine
+ MessageUtil.getMessage(context, UIInput.UPDATE_MESSAGE_ID, new Object[] { MessageUtil.getLabel(
+ context, this) });
+ } else {
+ message = new FacesMessage(FacesMessage.SEVERITY_ERROR, messageStr, messageStr);
+ }
+
+ context.getExternalContext().log(message.getSummary(), result);
+ context.addMessage(getClientId(context), message);
+ context.renderResponse();
+ } catch (IllegalArgumentException e) {
+ FacesMessage message = MessageUtil.getMessage(context, UIInput.UPDATE_MESSAGE_ID,
+ new Object[] { MessageUtil.getLabel(context, this) });
+
+ context.getExternalContext().log(message.getSummary(), e);
+ context.addMessage(getClientId(context), message);
+ context.renderResponse();
+ } catch (Exception e) {
+ FacesMessage message = MessageUtil.getMessage(context, UIInput.UPDATE_MESSAGE_ID,
+ new Object[] { MessageUtil.getLabel(context, this) });
+
+ context.getExternalContext().log(message.getSummary(), e);
+ context.addMessage(getClientId(context), message);
+ context.renderResponse();
+ }
+ }
+ }
+ }
+
+ /**
* @return Returns the active.
*/
public boolean isActive() {
@@ -116,7 +204,9 @@
}
/**
- * @param active The active to set. This method should never be called from user code.
+ * @param active
+ * The active to set. This method should never be called from
+ * user code.
*/
public void setActive(boolean active) {
_active = active;
15 years, 3 months
JBoss Rich Faces SVN: r12652 - trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng.
by richfaces-svn-commits@lists.jboss.org
Author: konstantin.mishin
Date: 2009-02-13 08:24:05 -0500 (Fri, 13 Feb 2009)
New Revision: 12652
Modified:
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/ComboBoxTest.java
Log:
RF-6066
Modified: trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/ComboBoxTest.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/ComboBoxTest.java 2009-02-13 13:09:10 UTC (rev 12651)
+++ trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/ComboBoxTest.java 2009-02-13 13:24:05 UTC (rev 12652)
@@ -186,6 +186,22 @@
Assert.assertEquals(selenium.getText(message), "Value mustn't be equal 44.");
}
+ /**
+ * Check "immediate", "required" & "requiredMessage" attributes
+ */
+ @Test
+ public void testImmediateAndRequired(Template template) {
+ AutoTester autoTester = getAutoTester(this);
+ autoTester.renderPage(template, null);
+ autoTester.testImmediate(false);
+ autoTester.testRequiredAndRequiredMessageAttributes();
+ }
+
+ @Override
+ public void setValueEmpty() {
+ selenium.type(getParentId() + "autoTestForm:componentIdcomboboxValue", "");
+ }
+
public String getTestUrl() {
return "pages/comboBox/comboBoxTest.xhtml";
}
15 years, 3 months
JBoss Rich Faces SVN: r12651 - in trunk/test-applications/seleniumTest/richfaces/src: main/webapp/pages/progressBar and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: alevkovsky
Date: 2009-02-13 08:09:10 -0500 (Fri, 13 Feb 2009)
New Revision: 12651
Added:
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/progressBar/progressBarMacrosubstitutionTest.xhtml
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/ProgressBarTestBean.java
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/progressBar/progressBarAutoTest.xhtml
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/progressBar/progressBarTest.xhtml
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/ProgressBarTest.java
Log:
Progress bar selenium tests
Modified: trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/ProgressBarTestBean.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/ProgressBarTestBean.java 2009-02-13 13:04:09 UTC (rev 12650)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/ProgressBarTestBean.java 2009-02-13 13:09:10 UTC (rev 12651)
@@ -28,8 +28,6 @@
private boolean enabled = false;
- private int content = 0;
-
private Long value = -5L;
private Long secondValue = -1L;
@@ -49,6 +47,11 @@
public void complete(ActionEvent event) {
this.value = 120L;
}
+
+ public void reset(ActionEvent event) {
+ this.value = -5L;
+ this.secondValue = -1L;
+ }
/**
* @return the enabled
@@ -80,25 +83,6 @@
}
/**
- * @return the content
- */
- public String getContent() {
- content++;
- return String.valueOf(content);
- }
-
- /**
- * @param content the content to set
- */
- public void setContent(String content) {
- if(content != null && content.length() > 0){
- this.content = Integer.parseInt(content);
- }else{
- this.content = 0;
- }
- }
-
- /**
* @return the secondValue
*/
public Long getSecondValue() {
Modified: trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/progressBar/progressBarAutoTest.xhtml
===================================================================
(Binary files differ)
Added: trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/progressBar/progressBarMacrosubstitutionTest.xhtml
===================================================================
(Binary files differ)
Property changes on: trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/progressBar/progressBarMacrosubstitutionTest.xhtml
___________________________________________________________________
Name: svn:mime-type
+ application/xhtml+xml
Modified: trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/progressBar/progressBarTest.xhtml
===================================================================
(Binary files differ)
Modified: trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/ProgressBarTest.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/ProgressBarTest.java 2009-02-13 13:04:09 UTC (rev 12650)
+++ trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/ProgressBarTest.java 2009-02-13 13:09:10 UTC (rev 12651)
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
+ */
package org.richfaces.testng;
import java.util.HashMap;
@@ -30,232 +30,408 @@
import org.testng.annotations.Test;
public class ProgressBarTest extends SeleniumTestBase {
-
- private static Map<String, String> params = new HashMap<String, String>();
- private final static String RESET_METHOD = "#{progressBarBean.reset}";
- static {
- params.put("parameter1", "value1");
- params.put("parameter2", "value2");
- params.put("parameter3", "value3");
- }
-
- private final static String RERENDER_AFTER_COMPLETE_TEST_URL = "pages/progressBar/progressBarRerenderOnCompleteTest.xhtml";
+ private static Map<String, String> params = new HashMap<String, String>();
- @Test
- public void testProgressBarComponent(Template template) {
+ private final static String RESET_METHOD = "#{progressBarBean.reset}";
+ static {
+ params.put("parameter1", "value1");
+ params.put("parameter2", "value2");
+ params.put("parameter3", "value3");
+ }
- renderPage(template, RESET_METHOD);
-
+ private final static String RERENDER_AFTER_COMPLETE_TEST_URL = "pages/progressBar/progressBarRerenderOnCompleteTest.xhtml";
+ private final static String MACROSUBSTITUTION_TEST_URL = "pages/progressBar/progressBarMacrosubstitutionTest.xhtml";
- String parentId = getParentId() + "_form:";
- String progressBarId = parentId + "progressBar1";
- int value = getProgressBarValue(progressBarId);
- Assert.assertTrue(value < 0, "Progress value should be negative");
- String text = getTextById(progressBarId);
- writeStatus("Check if process not started");
- Assert.assertTrue(text.startsWith("Process not started"), "Initial facet does not appear");
+ @Test
+ public void testProgressBarComponent(Template template) {
- writeStatus("Enable polling");
- enableProgressBar(progressBarId, true);
+ renderPage(template, RESET_METHOD);
- pause(5000, progressBarId);
+ String parentId = getParentId() + "_form:";
+ String progressBarId = parentId + "progressBar1";
+ int value = getProgressBarValue(progressBarId);
+ Assert.assertTrue(value < 0, "Progress value should be negative");
+ String text = getTextById(progressBarId);
+ writeStatus("Check if process not started");
+ Assert.assertTrue(text.startsWith("Process not started"),
+ "Initial facet does not appear");
- writeStatus("Disable polling");
- enableProgressBar(progressBarId, false);
+ writeStatus("Enable polling");
+ enableProgressBar(progressBarId, true);
- writeStatus("Check label");
- text = getTextById(progressBarId + ":remain");
- Assert.assertTrue(text.endsWith("%"), "Percent label doesnot appear");
+ pause(5000, progressBarId);
- writeStatus("Check value");
- value = getProgressBarValue(progressBarId);
- Assert.assertTrue(value > 0, "Progress value should be positive");
+ writeStatus("Disable polling");
+ enableProgressBar(progressBarId, false);
- writeStatus("Enable polling");
- enableProgressBar(progressBarId, true);
+ writeStatus("Check label");
+ text = getTextById(progressBarId + ":remain");
+ Assert.assertTrue(text.endsWith("%"), "Percent label doesnot appear");
- pause(5000, progressBarId);
- writeStatus("Check value");
- Assert.assertTrue((getProgressBarValue(progressBarId).intValue() > value),
- "Progress has been terminated abnormal");
+ writeStatus("Check value");
+ value = getProgressBarValue(progressBarId);
+ Assert.assertTrue(value > 0, "Progress value should be positive");
- writeStatus("Disable polling");
- enableProgressBar(progressBarId, false);
+ writeStatus("Enable polling");
+ enableProgressBar(progressBarId, true);
- value = getProgressBarValue(progressBarId);
- pause(1500, progressBarId);
- writeStatus("Check value");
- Assert.assertTrue(getProgressBarValue(progressBarId) == value,
- "Progress didnt stop after progressBar disabling");
+ pause(5000, progressBarId);
+ writeStatus("Check value");
+ Assert.assertTrue(
+ (getProgressBarValue(progressBarId).intValue() > value),
+ "Progress has been terminated abnormal");
- clickById(parentId + "_complete");
- waitForAjaxCompletion();
- writeStatus("Check if process completed");
- text = getTextById(progressBarId);
- Assert.assertTrue(text.startsWith("Process completed"), "Comlete facet does not appear");
+ writeStatus("Disable polling");
+ enableProgressBar(progressBarId, false);
- // - Test client mode
-
- writeStatus("Check value");
- progressBarId = parentId + "progressBar2";
- value = getProgressBarValue(progressBarId);
- Assert.assertTrue(value == -5, "Progress value should be -5 ");
+ value = getProgressBarValue(progressBarId);
+ pause(1500, progressBarId);
+ writeStatus("Check value");
+ Assert.assertTrue(getProgressBarValue(progressBarId) == value,
+ "Progress didnt stop after progressBar disabling");
- text = getTextById(progressBarId);
- writeStatus("Check if process not started");
- Assert.assertTrue(text.startsWith("Process not started"), "Initial facet does not appear");
+ clickById(parentId + "_complete");
+ waitForAjaxCompletion();
+ writeStatus("Check if process completed");
+ text = getTextById(progressBarId);
+ Assert.assertTrue(text.startsWith("Process completed"),
+ "Comlete facet does not appear");
- setProgressBarValue(progressBarId, 20);
- value = getProgressBarValue(progressBarId);
- writeStatus("Check value");
- Assert.assertTrue(value == 20, "Progress value should be 20 ");
+ // - Test client mode
- setProgressBarValue(progressBarId, 60);
- value = getProgressBarValue(progressBarId);
- writeStatus("Check value");
- Assert.assertTrue(value == 60, "Progress value should be 60");
+ writeStatus("Check value");
+ progressBarId = parentId + "progressBar2";
+ value = getProgressBarValue(progressBarId);
+ Assert.assertTrue(value == -5, "Progress value should be -5 ");
- }
-
- @Test
- public void testActionListeners(Template template) {
- //FIXME actionListener not work in progressBar RF-5500
- AutoTester tester = getAutoTester(this);
- tester.renderPage(template, null);
- writeStatus("Test action listener attribute");
- tester.testActionListener();
- }
-
- @Test
- public void testActionListenersWithExternalValidationFailure(Template template) {
- AutoTester tester = getAutoTester(this);
- tester.renderPage(template, null);
- writeStatus("Test action listener attribute");
- tester.testExtrenalValidationFailure();
- }
-
- @Test
- public void testRenderedAttribute(Template template) {
- AutoTester tester = getAutoTester(this);
- tester.renderPage(template, null);
- writeStatus("Test component with rendered = false is not present on the page");
- tester.testRendered();
- }
+ text = getTextById(progressBarId);
+ writeStatus("Check if process not started");
+ Assert.assertTrue(text.startsWith("Process not started"),
+ "Initial facet does not appear");
- @Test
- public void testNestedParams(Template template) {
- AutoTester tester = getAutoTester(this);
- tester.renderPage(template, null);
- writeStatus("Test component encodes nested f:param tags and their values are present as request parameters");
- tester.testRequestParameters(params);
- }
+ setProgressBarValue(progressBarId, 20);
+ value = getProgressBarValue(progressBarId);
+ writeStatus("Check value");
+ Assert.assertTrue(value == 20, "Progress value should be 20 ");
- @Test
- public void testImmediate(Template template) {
- AutoTester tester = getAutoTester(this);
- tester.renderPage(template, null);
- writeStatus("Test immediate attribute");
- tester.testImmediate(false);
- }
+ setProgressBarValue(progressBarId, 60);
+ value = getProgressBarValue(progressBarId);
+ writeStatus("Check value");
+ Assert.assertTrue(value == 60, "Progress value should be 60");
- @Test
- public void testImmediateWithExternalValidationFailed(Template template) {
- AutoTester tester = getAutoTester(this);
- tester.renderPage(template, null);
- writeStatus("Test immediate attribute with external validation failed");
- tester.testImmediateWithExternalValidationFailed(false);
- }
+ }
- @Test
- public void testNestedActionListener(Template template) {
- //FIXME actionListener not work in progressBar RF-5500
- AutoTester tester = getAutoTester(this);
- tester.renderPage(template, null);
- writeStatus("Test actionListener defined as nested tag are invoked on the server ");
- tester.testNestedActionListener();
- }
+ @Test
+ public void testActionListeners(Template template) {
+ //FIXME actionListener not work in progressBar RF-5500
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(template, null);
+ writeStatus("Test action listener attribute");
+ tester.testActionListener();
+ }
- @Test
- public void testListenersAreNotInvokedInCaseOfExternalValidationFailure(Template template) {
- AutoTester tester = getAutoTester(this);
- tester.renderPage(template, null);
- writeStatus("Test listeners aren't invoked in case of external validation failure");
- tester.testExtrenalValidationFailure();
- }
+ @Test
+ public void testActionListenersWithExternalValidationFailure(
+ Template template) {
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(template, null);
+ writeStatus("Test action listener attribute");
+ tester.testExtrenalValidationFailure();
+ }
- @Test
- public void testAjaxSingle(Template template) {
- AutoTester tester = getAutoTester(this);
- tester.renderPage(template, null);
- writeStatus("Test ajaxSingle attribute");
- tester.testAjaxSingle(false);
- }
+ @Test
+ public void testRenderedAttribute(Template template) {
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(template, null);
+ writeStatus("Test component with rendered = false is not present on the page");
+ tester.testRendered();
+ }
- @Test
- public void testAjaxSingleWithInternalValidationFailed(Template template) {
- AutoTester tester = getAutoTester(this);
- tester.renderPage(template, null);
- writeStatus("Test ajaxSingle attribute in case of invalid children state");
- tester.testAjaxSingleWithInternalValidationFailed();
- }
-
- @Test
- public void testAjaxSingleWithExternalProcessValidationFailed(Template template) {
- AutoTester tester = getAutoTester(this);
- tester.renderPage(template, null);
- writeStatus("Test ajaxSingle attribute in case of external validation failure");
- tester.testAjaxSingleWithProcesExternalValidation(false);
- }
-
- @Test
- public void testReRender(Template template) {
- AutoTester tester = getAutoTester(this);
- tester.renderPage(template, null);
- writeStatus("Test reRender attribute");
- tester.testReRender();
- }
-
- @Test
- public void testReRenderAfterComplete(Template template) {
- AutoTester tester = getAutoTester(this);
- tester.renderPage(RERENDER_AFTER_COMPLETE_TEST_URL, template, RESET_METHOD);
- writeStatus("Test reRenderAfterComplete attribute");
- tester.testReRender();
- }
-
- private void enableProgressBar(String id, boolean enable) {
- invokeFromComponent(id, (enable ? "enable" : "disable"), null);
- }
+ @Test
+ public void testNestedParams(Template template) {
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(template, null);
+ writeStatus("Test component encodes nested f:param tags and their values are present as request parameters");
+ tester.testRequestParameters(params);
+ }
- private void setProgressBarValue(String id, Object value) {
- invokeFromComponent(id, "setValue", value);
- }
+ @Test
+ public void testImmediate(Template template) {
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(template, null);
+ writeStatus("Test immediate attribute");
+ tester.testImmediate(false);
+ }
- private Integer getProgressBarValue(String id) {
- String value = invokeFromComponent(id, "getValue", null); // runScript(script.toString());
- Integer v = Integer.parseInt(value);
- return v;
- }
-
- @Override
- public void sendAjax() {
- delay(2000);
- }
+ @Test
+ public void testImmediateWithExternalValidationFailed(Template template) {
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(template, null);
+ writeStatus("Test immediate attribute with external validation failed");
+ tester.testImmediateWithExternalValidationFailed(false);
+ }
- @Override
- public void setInternalValidationFailed() {
- String childCompId = getAutoTester(this).getClientId("") + "child";
- setValueById(childCompId, "");
- }
+ @Test
+ public void testNestedActionListener(Template template) {
+ //FIXME actionListener not work in progressBar RF-5500
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(template, null);
+ writeStatus("Test actionListener defined as nested tag are invoked on the server ");
+ tester.testNestedActionListener();
+ }
- public String getTestUrl() {
- return "pages/progressBar/progressBarTest.xhtml";
+ @Test
+ public void testListenersAreNotInvokedInCaseOfExternalValidationFailure(
+ Template template) {
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(template, null);
+ writeStatus("Test listeners aren't invoked in case of external validation failure");
+ tester.testExtrenalValidationFailure();
+ }
+
+ @Test
+ public void testAjaxSingle(Template template) {
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(template, null);
+ writeStatus("Test ajaxSingle attribute");
+ tester.testAjaxSingle(false);
+ }
+
+ @Test
+ public void testAjaxSingleWithInternalValidationFailed(Template template) {
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(template, null);
+ writeStatus("Test ajaxSingle attribute in case of invalid children state");
+ tester.testAjaxSingleWithInternalValidationFailed();
+ }
+
+ @Test
+ public void testAjaxSingleWithExternalProcessValidationFailed(
+ Template template) {
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(template, null);
+ writeStatus("Test ajaxSingle attribute in case of external validation failure");
+ tester.testAjaxSingleWithProcesExternalValidation(false);
+ }
+
+ @Test
+ public void testReRender(Template template) {
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(template, null);
+ writeStatus("Test reRender attribute");
+ tester.testReRender();
+ }
+
+ @Test
+ public void testReRenderAfterComplete(Template template) {
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(RERENDER_AFTER_COMPLETE_TEST_URL, template,
+ RESET_METHOD);
+ writeStatus("Test reRenderAfterComplete attribute");
+ tester.testReRender();
+ }
+
+ @Test
+ public void testJSAPIAjaxMode(Template template) {
+ renderPage(template, RESET_METHOD);
+ String parentId = getParentId() + "_form:";
+ String progressBarId = parentId + "progressBar1";
+ testJSAPI(progressBarId);
+
+ }
+
+ @Test
+ public void testJSAPIClientMode(Template template) {
+ renderPage(template, RESET_METHOD);
+ String parentId = getParentId() + "_form:";
+ String progressBarId = parentId + "progressBar2";
+ testJSAPI(progressBarId);
+ }
+
+ private void testJSAPI(String progressBarId) {
+
+ int value = getProgressBarValue(progressBarId);
+ Assert.assertTrue(value < 0, "Progress value should be negative");
+
+ // enable()
+ enableProgressBar(progressBarId, true);
+ pause(5000, progressBarId);
+
+ // disable()
+ writeStatus("Disable polling");
+ enableProgressBar(progressBarId, false);
+
+ // setValue(value)
+ writeStatus("Check value");
+ setProgressBarValue(progressBarId, 20);
+ value = getProgressBarValue(progressBarId);
+
+ Assert.assertTrue(value == 20, "Progress value should be 20 ");
+
+ // setLabel(label)
+ writeStatus("Check label");
+ String text = getTextById(progressBarId + ":remain");
+ Assert.assertTrue(text.endsWith("%"), "Percent label doesnot appear");
+
+ setProgressBarLabel(progressBarId, "myLabel");
+
+ text = getTextById(progressBarId + ":remain");
+ Assert.assertTrue(text.contains("myLabel"), "New label doesnot appear");
+
+ }
+
+ @Test
+ public void testFacets(Template template) {
+
+ renderPage(template, RESET_METHOD);
+
+ String parentId = getParentId() + "_form:";
+ String progressBarId = parentId + "progressBar1";
+ int value = getProgressBarValue(progressBarId);
+ Assert.assertTrue(value < 0, "Progress value should be negative");
+ String text = getTextById(progressBarId);
+ writeStatus("Check if process not started");
+ Assert.assertTrue(text.startsWith("Process not started"),
+ "Initial facet does not appear");
+
+ writeStatus("Enable polling");
+ enableProgressBar(progressBarId, true);
+
+ pause(5000, progressBarId);
+
+ writeStatus("Disable polling");
+ enableProgressBar(progressBarId, false);
+
+ text = getTextById(progressBarId);
+ Assert.assertFalse(text.contains("Process not started"),
+ "Initial facet does not dissapear");
+ Assert.assertFalse(text.contains("Process completed"),
+ "Initial facet does not dissapear");
+
+ clickById(parentId + "_complete");
+ waitForAjaxCompletion();
+ writeStatus("Check if process completed");
+ text = getTextById(progressBarId);
+ Assert.assertTrue(text.startsWith("Process completed"),
+ "Comlete facet does not appear");
+
+ }
+
+ @Test
+ public void testMacrosubstitutionAjaxMode(Template template) {
+ renderPage(MACROSUBSTITUTION_TEST_URL, template, RESET_METHOD);
+ String parentId = getParentId() + "_form:";
+ String progressBarId = parentId + "progressBar1";
+ testMacrosubstitution(progressBarId, 2);
+
+ }
+
+ @Test
+ public void testMacrosubstitutionClientMode(Template template) {
+ renderPage(MACROSUBSTITUTION_TEST_URL, template, RESET_METHOD);
+ String parentId = getParentId() + "_form:";
+ String progressBarId = parentId + "progressBar2";
+ testMacrosubstitution(progressBarId, 1);
+ }
+
+ private void testMacrosubstitution(String progressBarId, int value) {
+
+ writeStatus("Enable polling");
+ enableProgressBar(progressBarId, true);
+ pause(5000, progressBarId);
+
+ writeStatus("Disable polling");
+ enableProgressBar(progressBarId, false);
+
+ setProgressBarValue(progressBarId, 20);
+
+ // check macrosubstitutions
+
+ writeStatus("Check macrosubstitutions");
+ String text = getTextById(progressBarId);
+ Assert.assertTrue(text.contains("Min value is 0"),
+ "{minValue} macrosubstitution doesn't work");
+ Assert.assertTrue(text.contains("current value is 20"),
+ "{value} macrosubstitution doesn't work");
+ Assert.assertTrue(text.contains("max value is 100"),
+ "{maxValue} macrosubstitution doesn't work");
+
+ }
+
+ @Test
+ public void testStylesAndClasses(Template template) {
+
+ renderPage(MACROSUBSTITUTION_TEST_URL, template, RESET_METHOD);
+ String parentId = getParentId() + "_form:";
+ String progressBarId = parentId + "progressBar1";
+
+ assertClassNames(progressBarId, new String[] { "initialClass" },
+ "initialClass attribute not work for Progress Bar", true);
+
+ writeStatus("Enable polling");
+ enableProgressBar(progressBarId, true);
+ pause(5000, progressBarId);
+
+ writeStatus("Disable polling");
+ enableProgressBar(progressBarId, false);
+
+ assertClassNames(progressBarId, new String[] { "testClass" },
+ "styleClass attribute not work for Progress Bar", true);
+ assertClassNames(progressBarId + ":remain",
+ new String[] { "remainClass" },
+ "remainClass attribute not work for Progress Bar", true);
+ assertClassNames(progressBarId + ":complete",
+ new String[] { "completeClass" },
+ "completeClass attribute not work for Progress Bar", true);
+
+ assertAttributeContains(progressBarId, "style", "font-size: 10px",
+ "style attribute not work for Progress Bar");
+ }
+
+ @Test
+ public void testHTMLEvents(Template template){
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(template, null);
+ tester.testHTMLEvents();
}
-
- @Override
- public String getAutoTestUrl() {
- return "pages/progressBar/progressBarAutoTest.xhtml";
- }
+ private void enableProgressBar(String id, boolean enable) {
+ invokeFromComponent(id, (enable ? "enable" : "disable"), null);
+ }
+
+ private void setProgressBarValue(String id, Object value) {
+ invokeFromComponent(id, "setValue", value);
+ }
+
+ private void setProgressBarLabel(String id, Object value) {
+ invokeFromComponent(id, "setLabel", value);
+ }
+
+ private Integer getProgressBarValue(String id) {
+ String value = invokeFromComponent(id, "getValue", null); // runScript(script.toString());
+ Integer v = Integer.parseInt(value);
+ return v;
+ }
+
+ @Override
+ public void sendAjax() {
+ delay(2000);
+ }
+
+ @Override
+ public void setInternalValidationFailed() {
+ String childCompId = getAutoTester(this).getClientId("") + "child";
+ setValueById(childCompId, "");
+ }
+
+ public String getTestUrl() {
+ return "pages/progressBar/progressBarTest.xhtml";
+ }
+
+ @Override
+ public String getAutoTestUrl() {
+ return "pages/progressBar/progressBarAutoTest.xhtml";
+ }
+
}
15 years, 3 months
JBoss Rich Faces SVN: r12650 - in trunk: samples/calendar-sample/src/test/java/org/richfaces and 12 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: Alex.Kolonitsky
Date: 2009-02-13 08:04:09 -0500 (Fri, 13 Feb 2009)
New Revision: 12650
Modified:
trunk/samples/calendar-sample/src/main/java/org/richfaces/CalendarDataModelImpl.java
trunk/samples/calendar-sample/src/test/java/org/richfaces/BeanTest.java
trunk/samples/tooltip-sample/src/main/webapp/pages/index.jsp
trunk/samples/tooltip-sample/src/test/java/org/richfaces/BeanTest.java
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/AjaxSupportTest.java
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/CalendarTest.java
trunk/ui/calendar/src/main/java/org/richfaces/component/UICalendar.java
trunk/ui/calendar/src/test/java/org/richfaces/component/CalendarComponentTest.java
trunk/ui/calendar/src/test/java/org/richfaces/component/CurrentDateEventTest.java
trunk/ui/calendar/src/test/java/org/richfaces/renderkit/html/iconimages/CalendarIconTest.java
trunk/ui/core/src/main/java/org/ajax4jsf/component/UIAjaxRegion.java
trunk/ui/toolBar/src/main/java/org/richfaces/renderkit/html/ToolBarGroupRenderer.java
trunk/ui/tooltip/src/main/java/org/richfaces/component/UIToolTip.java
trunk/ui/tooltip/src/main/java/org/richfaces/renderkit/html/ToolTipRenderer.java
trunk/ui/tooltip/src/main/java/org/richfaces/taglib/ToolTipTagHandlerBase.java
trunk/ui/tooltip/src/test/java/org/richfaces/component/TooltipComponentTest.java
Log:
Calendar: application fails if non-default locale attribute was defined for component
https://jira.jboss.org/jira/browse/RF-5330
Unnecessary ajax for tooltip on client mode
https://jira.jboss.org/jira/browse/RF-6139
Modified: trunk/samples/calendar-sample/src/main/java/org/richfaces/CalendarDataModelImpl.java
===================================================================
--- trunk/samples/calendar-sample/src/main/java/org/richfaces/CalendarDataModelImpl.java 2009-02-13 11:53:36 UTC (rev 12649)
+++ trunk/samples/calendar-sample/src/main/java/org/richfaces/CalendarDataModelImpl.java 2009-02-13 13:04:09 UTC (rev 12650)
@@ -22,7 +22,6 @@
package org.richfaces;
import java.text.DateFormat;
-import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Locale;
@@ -57,16 +56,13 @@
protected CalendarDataModelItem createDataModelItem(Date date) {
CalendarDataModelItemImpl item = new CalendarDataModelItemImpl();
- Map data = new HashMap();
+ Map<String, String> data = new HashMap<String, String>();
DateFormat enFormatter = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.ENGLISH);
DateFormat frFormatter = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.FRENCH);
DateFormat deFormatter = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.GERMAN);
data.put("enLabel", enFormatter.format(date));
data.put("frLabel", frFormatter.format(date));
data.put("deLabel", deFormatter.format(date));
- /*Calendar c = Calendar.getInstance();
- c.setTime(date);
- item.setDay(c.get(Calendar.DAY_OF_MONTH));*/
if (new Random().nextInt(10) > 5) {
item.setEnabled(true);
Modified: trunk/samples/calendar-sample/src/test/java/org/richfaces/BeanTest.java
===================================================================
--- trunk/samples/calendar-sample/src/test/java/org/richfaces/BeanTest.java 2009-02-13 11:53:36 UTC (rev 12649)
+++ trunk/samples/calendar-sample/src/test/java/org/richfaces/BeanTest.java 2009-02-13 13:04:09 UTC (rev 12650)
@@ -21,23 +21,16 @@
package org.richfaces;
-import junit.framework.Test;
import junit.framework.TestCase;
-import junit.framework.TestSuite;
-/**
-*/
-public class BeanTest
- extends TestCase
-{
+public class BeanTest extends TestCase {
+
/**
* Create the test case
- *
* @param testName name of the test case
*/
- public BeanTest( String testName )
- {
- super( testName );
+ public BeanTest (String testName) {
+ super (testName);
}
public void testStub() throws Exception {
Modified: trunk/samples/tooltip-sample/src/main/webapp/pages/index.jsp
===================================================================
--- trunk/samples/tooltip-sample/src/main/webapp/pages/index.jsp 2009-02-13 11:53:36 UTC (rev 12649)
+++ trunk/samples/tooltip-sample/src/main/webapp/pages/index.jsp 2009-02-13 13:04:09 UTC (rev 12650)
@@ -40,23 +40,29 @@
<h:commandLink action="#{skinBean.change}" value="set skin" />
<f:verbatim>
<br/><br/>
- <div style="position:relative;top:100px;left:200px;">
- </f:verbatim>
-
-<h:panelGroup layout="block" id="asdasdasda" style="width:50px; height:50px;background-color:red;">
-<rich:toolTip showEvent="onclick" direction="bottom-left" styleClass="tooltip" layout="block">
-<f:facet name="defaultContent">
-<strong>Wait...</strong>
-</f:facet>
-<span style="white-space:nowrap">This tool-tip content was <strong>rendered on server</strong><br/></span>
-<h:panelGrid columns="2">
-<h:outputText style="white-space:nowrap" value="tooltips requested:" />
-<h:outputText value="Test Test Test" styleClass="tooltipData" />
-</h:panelGrid>
-</rich:toolTip>
-</h:panelGroup>
-
- <h:commandButton value="Tooltip with followMouse mode" id="btn">
+ <div style="position:relative; top:100px; left:200px;">
+ </f:verbatim>
+
+ <h:panelGroup layout="block" id="asdasdasda"
+ style="width:50px; height:50px;background-color:red;">
+ <rich:toolTip showEvent="onclick" direction="bottom-left"
+ styleClass="tooltip" layout="block">
+ <f:facet name="defaultContent">
+ <strong>Wait...</strong>
+ </f:facet>
+ <span style="white-space: nowrap">This tool-tip
+ content was <strong>rendered on server</strong><br />
+ </span>
+ <h:panelGrid columns="2">
+ <h:outputText style="white-space:nowrap"
+ value="tooltips requested:" />
+ <h:outputText value="Test Test Test"
+ styleClass="tooltipData" />
+ </h:panelGrid>
+ </rich:toolTip>
+ </h:panelGroup>
+
+ <h:commandButton value="Tooltip with followMouse mode" id="btn">
<rich:toolTip id="tt" followMouse="true" direction="top-right" mode="ajax" value="#{bean.toolTipContent}" horizontalOffset="5" verticalOffset="5" layout="block">
<f:facet name="defaultContent"><f:verbatim>DEFAULT CONTENT</f:verbatim>
</f:facet>
Modified: trunk/samples/tooltip-sample/src/test/java/org/richfaces/BeanTest.java
===================================================================
--- trunk/samples/tooltip-sample/src/test/java/org/richfaces/BeanTest.java 2009-02-13 11:53:36 UTC (rev 12649)
+++ trunk/samples/tooltip-sample/src/test/java/org/richfaces/BeanTest.java 2009-02-13 13:04:09 UTC (rev 12650)
@@ -21,26 +21,20 @@
package org.richfaces;
-import junit.framework.Test;
import junit.framework.TestCase;
-import junit.framework.TestSuite;
-/**
-*/
-public class BeanTest
- extends TestCase
-{
+public class BeanTest extends TestCase {
/**
* Create the test case
- *
- * @param testName name of the test case
+ *
+ * @param testName
+ * name of the test case
*/
- public BeanTest( String testName )
- {
- super( testName );
+ public BeanTest(String testName) {
+ super(testName);
}
-
+
public void testStub() throws Exception {
-
+
}
}
Modified: trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/AjaxSupportTest.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/AjaxSupportTest.java 2009-02-13 11:53:36 UTC (rev 12649)
+++ trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/AjaxSupportTest.java 2009-02-13 13:04:09 UTC (rev 12650)
@@ -26,14 +26,11 @@
import org.ajax4jsf.bean.A4JSupport;
import org.ajax4jsf.bean.A4JSupport.Messages;
import org.ajax4jsf.template.Template;
-import org.bouncycastle.asn1.pkcs.KeyDerivationFunc;
import org.richfaces.SeleniumTestBase;
import org.richfaces.testng.util.CommonUtils;
import org.testng.Assert;
import org.testng.annotations.Test;
-import com.thoughtworks.selenium.SeleniumException;
-
/**
* @author Andrey Markavstov
*
Modified: trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/CalendarTest.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/CalendarTest.java 2009-02-13 11:53:36 UTC (rev 12649)
+++ trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/CalendarTest.java 2009-02-13 13:04:09 UTC (rev 12650)
@@ -517,18 +517,17 @@
initIds(getParentId());
// Failed due to bug https://jira.jboss.org/jira/browse/RF-5330
- Assert.fail("https://jira.jboss.org/jira/browse/RF-5330");
-// setPopup(true);
-// String changeLocaleButtonId = getParentId() + CONTROLS_FORM_ID + "testLocale";
-// clickCommandAndWait(changeLocaleButtonId);
-//
-// showPopup();
-// showTimeSelectionWindow();
-//
-// testInternatialization("_ru");
-// testWeekDays();
+ setPopup(true);
+ String changeLocaleButtonId = getParentId() + CONTROLS_FORM_ID + "testLocale";
+ clickCommandAndWait(changeLocaleButtonId);
+ showPopup();
+ showTimeSelectionWindow();
+
+ testInternatialization("_ru");
+ testWeekDays();
+
}
@Test
@@ -1863,11 +1862,11 @@
clickById(popupButtonId);
}
- private void showPopupAndWait() {
+/* private void showPopupAndWait() {
writeStatus("Show popup");
clickById(popupButtonId);
waiteForCondition("$('" + calendarId + "').style.display != 'none'", 1000);
- }
+ }*/
/**
* Test an icon.
Modified: trunk/ui/calendar/src/main/java/org/richfaces/component/UICalendar.java
===================================================================
--- trunk/ui/calendar/src/main/java/org/richfaces/component/UICalendar.java 2009-02-13 11:53:36 UTC (rev 12649)
+++ trunk/ui/calendar/src/main/java/org/richfaces/component/UICalendar.java 2009-02-13 13:04:09 UTC (rev 12650)
@@ -92,7 +92,7 @@
public static final String COMPONENT_TYPE = "org.richfaces.Calendar";
- private static final String COMPONENT_FAMILY = "org.richfaces.Calendar";
+ public static final String COMPONENT_FAMILY = "org.richfaces.Calendar";
/**
* Default value of "defaultTime" attribute
Modified: trunk/ui/calendar/src/test/java/org/richfaces/component/CalendarComponentTest.java
===================================================================
--- trunk/ui/calendar/src/test/java/org/richfaces/component/CalendarComponentTest.java 2009-02-13 11:53:36 UTC (rev 12649)
+++ trunk/ui/calendar/src/test/java/org/richfaces/component/CalendarComponentTest.java 2009-02-13 13:04:09 UTC (rev 12650)
@@ -45,7 +45,6 @@
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlScript;
import com.gargoylesoftware.htmlunit.html.HtmlSpan;
-import com.sun.org.apache.bcel.internal.generic.NEW;
/**
* @author Nick Belaevski - mailto:nbelaevski@exadel.com created 08.06.2007
@@ -237,24 +236,18 @@
assertEquals("display: none", htmlCalendar1Span.getAttributeValue(HTML.style_ATTRIBUTE));
try {
- HtmlInput htmlCalendarInput1 = (HtmlInput) page
- .getHtmlElementById(calendar1.getClientId(facesContext)
- + "InputDate");
+ page.getHtmlElementById(calendar1.getClientId(facesContext)+ "InputDate");
} catch (ElementNotFoundException e) {
assertNotNull(e);
}
try {
- HtmlButton htmlCalendarButton1 = (HtmlButton) page
- .getHtmlElementById(calendar1.getClientId(facesContext)
- + "PopupButton");
+ page.getHtmlElementById(calendar1.getClientId(facesContext)+ "PopupButton");
} catch (ElementNotFoundException e) {
assertNotNull(e);
}
try {
- HtmlSpan htmlCalendarSpan1 = (HtmlSpan) page
- .getHtmlElementById(calendar1.getClientId(facesContext)
- + "Popup");
+ page.getHtmlElementById(calendar1.getClientId(facesContext)+ "Popup");
} catch (ElementNotFoundException e) {
assertNotNull(e);
}
@@ -277,7 +270,7 @@
HtmlPage page = renderView();
assertNotNull(page);
- List links = page.getDocumentHtmlElement().getHtmlElementsByTagName(HTML.LINK_ELEMENT);
+ List<?> links = page.getDocumentHtmlElement().getHtmlElementsByTagName(HTML.LINK_ELEMENT);
assertEquals(1, links.size());
HtmlElement link = (HtmlElement) links.get(0);
assertTrue(link.getAttributeValue(HTML.HREF_ATTR).contains("css/calendar.xcss"));
@@ -287,9 +280,9 @@
HtmlPage page = renderView();
assertNotNull(page);
- List<HtmlScript> scripts = page.getDocumentHtmlElement().getHtmlElementsByTagName(HTML.SCRIPT_ELEM);
- for (Iterator<HtmlScript> it = scripts.iterator(); it.hasNext();) {
- HtmlScript item = it.next();
+ List<?> scripts = page.getDocumentHtmlElement().getHtmlElementsByTagName(HTML.SCRIPT_ELEM);
+ for (Iterator<?> it = scripts.iterator(); it.hasNext();) {
+ HtmlScript item = (HtmlScript) it.next();
String srcAttr = item.getSrcAttribute();
if (item.getFirstDomChild() != null) {
String scriptBodyString = item.getFirstDomChild().toString();
Modified: trunk/ui/calendar/src/test/java/org/richfaces/component/CurrentDateEventTest.java
===================================================================
--- trunk/ui/calendar/src/test/java/org/richfaces/component/CurrentDateEventTest.java 2009-02-13 11:53:36 UTC (rev 12649)
+++ trunk/ui/calendar/src/test/java/org/richfaces/component/CurrentDateEventTest.java 2009-02-13 13:04:09 UTC (rev 12650)
@@ -53,15 +53,16 @@
*/
public void setUp() throws Exception {
super.setUp();
-
- calendar = (UICalendar) application.createComponent(UICalendar.COMPONENT_TYPE);;
- event1 = new CurrentDateChangeEvent (calendar, "11/2001");
+
+ calendar = (UICalendar) application
+ .createComponent(UICalendar.COMPONENT_TYPE);
+ event1 = new CurrentDateChangeEvent(calendar, "11/2001");
cal = Calendar.getInstance();
cal.set(2001, 10, 10);
- event2 = new CurrentDateChangeEvent (calendar, cal.getTime());
- event4 = new CurrentDateChangeEvent (calendar, "");
+ event2 = new CurrentDateChangeEvent(calendar, cal.getTime());
+ event4 = new CurrentDateChangeEvent(calendar, "");
event3 = new AjaxEvent(calendar);
- }
+ }
/* (non-Javadoc)
* @see org.ajax4jsf.tests.AbstractAjax4JsfTestCase#tearDown()
Modified: trunk/ui/calendar/src/test/java/org/richfaces/renderkit/html/iconimages/CalendarIconTest.java
===================================================================
--- trunk/ui/calendar/src/test/java/org/richfaces/renderkit/html/iconimages/CalendarIconTest.java 2009-02-13 11:53:36 UTC (rev 12649)
+++ trunk/ui/calendar/src/test/java/org/richfaces/renderkit/html/iconimages/CalendarIconTest.java 2009-02-13 13:04:09 UTC (rev 12650)
@@ -23,7 +23,6 @@
import java.awt.Color;
import java.awt.image.BufferedImage;
-import org.ajax4jsf.resource.ResourceContext;
import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
import org.ajax4jsf.util.HtmlColor;
import org.richfaces.skin.Skin;
@@ -33,7 +32,7 @@
* @author Anton Belevich
*
*/
-public class CalendarIconTest extends AbstractAjax4JsfTestCase{
+public class CalendarIconTest extends AbstractAjax4JsfTestCase {
public CalendarIconTest(String name) {
super(name);
Modified: trunk/ui/core/src/main/java/org/ajax4jsf/component/UIAjaxRegion.java
===================================================================
--- trunk/ui/core/src/main/java/org/ajax4jsf/component/UIAjaxRegion.java 2009-02-13 11:53:36 UTC (rev 12649)
+++ trunk/ui/core/src/main/java/org/ajax4jsf/component/UIAjaxRegion.java 2009-02-13 13:04:09 UTC (rev 12650)
@@ -26,18 +26,14 @@
import java.util.Set;
import javax.el.MethodExpression;
-import javax.faces.FacesException;
import javax.faces.component.ContextCallback;
import javax.faces.component.UIComponent;
import javax.faces.component.UIPanel;
-import javax.faces.component.UIViewRoot;
import javax.faces.context.FacesContext;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.FacesEvent;
import org.ajax4jsf.context.AjaxContext;
-import org.ajax4jsf.context.AjaxContextImpl;
-import org.ajax4jsf.context.InvokerCallback;
import org.ajax4jsf.event.AjaxListener;
import org.ajax4jsf.renderkit.AjaxContainerRenderer;
Modified: trunk/ui/toolBar/src/main/java/org/richfaces/renderkit/html/ToolBarGroupRenderer.java
===================================================================
--- trunk/ui/toolBar/src/main/java/org/richfaces/renderkit/html/ToolBarGroupRenderer.java 2009-02-13 11:53:36 UTC (rev 12649)
+++ trunk/ui/toolBar/src/main/java/org/richfaces/renderkit/html/ToolBarGroupRenderer.java 2009-02-13 13:04:09 UTC (rev 12650)
@@ -33,7 +33,7 @@
public class ToolBarGroupRenderer extends ToolBarRendererBase {
- protected Class<? extends javax.faces.component.UIComponent> getComponentClass() {
+ protected Class<? extends UIComponent> getComponentClass() {
return UIToolBarGroup.class;
}
Modified: trunk/ui/tooltip/src/main/java/org/richfaces/component/UIToolTip.java
===================================================================
--- trunk/ui/tooltip/src/main/java/org/richfaces/component/UIToolTip.java 2009-02-13 11:53:36 UTC (rev 12649)
+++ trunk/ui/tooltip/src/main/java/org/richfaces/component/UIToolTip.java 2009-02-13 13:04:09 UTC (rev 12650)
@@ -37,12 +37,9 @@
public abstract class UIToolTip extends UICommand implements org.ajax4jsf.component.AjaxChildrenEncoder{
public static final String COMPONENT_TYPE = "org.richfaces.component.ToolTip";
+
public static final String CONTENT_FACET_NAME = "defaultContent";
-// public abstract String getValue();
-
-// public abstract void setValue(String value);
-
public abstract String getLayout();
public abstract void setLayout(String layout);
@@ -171,8 +168,8 @@
return _childrenRenderer;
}
- public void encodeAjaxChild(FacesContext context, String path, Set ids,
- Set renderedAreas) throws IOException {
+ public void encodeAjaxChild(FacesContext context, String path, Set<String> ids, Set<String> renderedAreas)
+ throws IOException {
if(ids.contains(this.getClientId(context) + "content")){
AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
Modified: trunk/ui/tooltip/src/main/java/org/richfaces/renderkit/html/ToolTipRenderer.java
===================================================================
--- trunk/ui/tooltip/src/main/java/org/richfaces/renderkit/html/ToolTipRenderer.java 2009-02-13 11:53:36 UTC (rev 12649)
+++ trunk/ui/tooltip/src/main/java/org/richfaces/renderkit/html/ToolTipRenderer.java 2009-02-13 13:04:09 UTC (rev 12650)
@@ -19,11 +19,13 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
package org.richfaces.renderkit.html;
-
+
import java.io.IOException;
import java.util.HashMap;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import javax.faces.FacesException;
import javax.faces.component.UIComponent;
@@ -44,381 +46,368 @@
import org.richfaces.component.UIToolTip;
import org.richfaces.skin.Skin;
-//import com.gargoylesoftware.htmlunit.protocol.javascript.JavaScriptURLConnection;
-//import com.sun.el.lang.FunctionMapperImpl.Function;
+public class ToolTipRenderer extends AjaxComponentRendererBase {
+
+ private static final String AJAX_MODE = "ajax";
-public class ToolTipRenderer extends AjaxComponentRendererBase{
-
- //
- // Declarations
- //
- private final InternetResource[] styles = {
- getResource("/org/richfaces/renderkit/html/css/tooltip.xcss")
- };
-
-private InternetResource[] stylesAll = null;
-
-protected InternetResource[] getStyles() {
- synchronized (this) {
- if (stylesAll == null) {
- InternetResource[] rsrcs = super.getStyles();
- boolean ignoreSuper = rsrcs == null || rsrcs.length == 0;
- boolean ignoreThis = styles == null || styles.length == 0;
-
- if (ignoreSuper) {
- if (ignoreThis) {
- stylesAll = new InternetResource[0];
- } else {
- stylesAll = styles;
- }
- } else {
- if (ignoreThis) {
- stylesAll = rsrcs;
- } else {
- java.util.Set rsrcsSet = new java.util.LinkedHashSet();
-
- for (int i = 0; i < rsrcs.length; i++ ) {
- rsrcsSet.add(rsrcs[i]);
- }
-
- for (int i = 0; i < styles.length; i++ ) {
- rsrcsSet.add(styles[i]);
- }
-
- stylesAll = (InternetResource[]) rsrcsSet.toArray(new InternetResource[rsrcsSet.size()]);
- }
- }
- }
- }
-
- return stylesAll;
-}
- private final InternetResource[] scripts = {
- new org.ajax4jsf.javascript.PrototypeScript(),
- new org.ajax4jsf.javascript.AjaxScript(),
- getResource("/org/richfaces/renderkit/html/scripts/jquery/jquery.js"),
- getResource("/org/richfaces/renderkit/html/scripts/utils.js"),
- getResource("/org/richfaces/renderkit/html/scripts/tooltip.js")
- };
-
-private InternetResource[] scriptsAll = null;
-
-protected InternetResource[] getScripts() {
- synchronized (this) {
- if (scriptsAll == null) {
- InternetResource[] rsrcs = super.getScripts();
- boolean ignoreSuper = rsrcs == null || rsrcs.length == 0;
- boolean ignoreThis = scripts == null || scripts.length == 0;
-
- if (ignoreSuper) {
- if (ignoreThis) {
- scriptsAll = new InternetResource[0];
- } else {
- scriptsAll = scripts;
- }
- } else {
- if (ignoreThis) {
- scriptsAll = rsrcs;
- } else {
- java.util.Set rsrcsSet = new java.util.LinkedHashSet();
-
- for (int i = 0; i < rsrcs.length; i++ ) {
- rsrcsSet.add(rsrcs[i]);
- }
-
- for (int i = 0; i < scripts.length; i++ ) {
- rsrcsSet.add(scripts[i]);
- }
-
- scriptsAll = (InternetResource[]) rsrcsSet.toArray(new InternetResource[rsrcsSet.size()]);
- }
- }
- }
- }
-
- return scriptsAll;
-}
-
- protected Class getComponentClass() {
- return org.richfaces.component.UIToolTip.class;
- }
-
- public String getBgColor(FacesContext context, UIComponent component){
- Skin skin = getSkin(context);
- String color = (String) skin.getParameter(context,"headerBackgroundColor");
- return color;
- }
-
- public String getColor(FacesContext context, UIComponent component){
- Skin skin = getSkin(context);
- String color = (String) skin.getParameter(context,"headerTextColor");
- return color;
- }
-
-
- public Map<String, Object> buildEventOptions(FacesContext context, UIComponent component, String targetId){
- Map<String, Object> eventOptions = AjaxRendererUtils.buildEventOptions(context, component);
+ private final InternetResource[] styles = { getResource("/org/richfaces/renderkit/html/css/tooltip.xcss") };
+
+ private InternetResource[] stylesAll = null;
+
+ protected InternetResource[] getStyles() {
+ synchronized (this) {
+ if (stylesAll == null) {
+ InternetResource[] rsrcs = super.getStyles();
+ boolean ignoreSuper = rsrcs == null || rsrcs.length == 0;
+ boolean ignoreThis = styles == null || styles.length == 0;
+
+ if (ignoreSuper) {
+ if (ignoreThis) {
+ stylesAll = new InternetResource[0];
+ } else {
+ stylesAll = styles;
+ }
+ } else {
+ if (ignoreThis) {
+ stylesAll = rsrcs;
+ } else {
+ Set<InternetResource> rsrcsSet = new LinkedHashSet<InternetResource>();
+
+ for (int i = 0; i < rsrcs.length; i++) {
+ rsrcsSet.add(rsrcs[i]);
+ }
+
+ for (int i = 0; i < styles.length; i++) {
+ rsrcsSet.add(styles[i]);
+ }
+
+ stylesAll = rsrcsSet.toArray(new InternetResource[rsrcsSet.size()]);
+ }
+ }
+ }
+ }
+
+ return stylesAll;
+ }
+
+ private final InternetResource[] scripts = {
+ new org.ajax4jsf.javascript.PrototypeScript(),
+ new org.ajax4jsf.javascript.AjaxScript(),
+ getResource("/org/richfaces/renderkit/html/scripts/jquery/jquery.js"),
+ getResource("/org/richfaces/renderkit/html/scripts/utils.js"),
+ getResource("/org/richfaces/renderkit/html/scripts/tooltip.js") };
+
+ private InternetResource[] scriptsAll = null;
+
+ protected InternetResource[] getScripts() {
+ synchronized (this) {
+ if (scriptsAll == null) {
+ InternetResource[] rsrcs = super.getScripts();
+ boolean ignoreSuper = rsrcs == null || rsrcs.length == 0;
+ boolean ignoreThis = scripts == null || scripts.length == 0;
+
+ if (ignoreSuper) {
+ if (ignoreThis) {
+ scriptsAll = new InternetResource[0];
+ } else {
+ scriptsAll = scripts;
+ }
+ } else {
+ if (ignoreThis) {
+ scriptsAll = rsrcs;
+ } else {
+ Set<InternetResource> rsrcsSet = new LinkedHashSet<InternetResource>();
+
+ for (int i = 0; i < rsrcs.length; i++) {
+ rsrcsSet.add(rsrcs[i]);
+ }
+
+ for (int i = 0; i < scripts.length; i++) {
+ rsrcsSet.add(scripts[i]);
+ }
+
+ scriptsAll = rsrcsSet.toArray(new InternetResource[rsrcsSet.size()]);
+ }
+ }
+ }
+ }
+
+ return scriptsAll;
+ }
+
+ protected Class<? extends UIComponent> getComponentClass() {
+ return org.richfaces.component.UIToolTip.class;
+ }
+
+ public String getBgColor(FacesContext context, UIComponent component) {
+ Skin skin = getSkin(context);
+ return String.valueOf(skin.getParameter(context, "headerBackgroundColor"));
+ }
+
+ public String getColor(FacesContext context, UIComponent component) {
+ Skin skin = getSkin(context);
+ return String.valueOf(skin.getParameter(context, "headerTextColor"));
+ }
+
+ public Map<String, Object> buildEventOptions(FacesContext context,
+ UIComponent component, String targetId) {
+ Map<String, Object> eventOptions = AjaxRendererUtils.buildEventOptions(
+ context, component);
String jsVarName = "_toolTip";
- //after element is subsituted in DOM tree, we have to re-create
- //it's JS-reference, cause old one is already invalid
-
+ // after element is subsituted in DOM tree, we have to re-create
+ // it's JS-reference, cause old one is already invalid
+
String clientId = component.getClientId(context);
- String oncompleteTooltip = ";" + "{" +
- "var " + jsVarName + " = $('" + clientId + "').component;" +
- jsVarName + ".toolTipContent = $('" + clientId + "content');" +
- jsVarName + ".displayDiv();" +
- "}";
+ String oncompleteTooltip = ";" + "{" + "var " + jsVarName + " = $('"
+ + clientId + "').component;" + jsVarName
+ + ".toolTipContent = $('" + clientId + "content');" + jsVarName
+ + ".displayDiv();" + "}";
- // before element will be substituted in DOM tree, we need to hide toolTipe to avoid blinking
- String fireBeforeUpdateDOM = ";" + "{ var " + jsVarName + " = $('" + clientId + "').component;" + jsVarName + ".toolTip.style.display = 'none'; }";
+ // before element will be substituted in DOM tree, we need to hide
+ // toolTipe to avoid blinking
+ String fireBeforeUpdateDOM = ";" + "{ var " + jsVarName + " = $('"
+ + clientId + "').component;" + jsVarName
+ + ".toolTip.style.display = 'none'; }";
-
- //enable ajaxSingle mode, i.e. we do not need to submit all form controls to get tooltip content
+ // enable ajaxSingle mode, i.e. we do not need to submit all form
+ // controls to get tooltip content
eventOptions.put("control", JSReference.THIS);
-
- if(eventOptions.containsKey("oncomplete")){
- JSFunctionDefinition onComplete = (JSFunctionDefinition)eventOptions.get("oncomplete");
- onComplete.addToBody(oncompleteTooltip);
- eventOptions.put("oncomplete", onComplete);
+
+ if (eventOptions.containsKey("oncomplete")) {
+ JSFunctionDefinition onComplete =
+ (JSFunctionDefinition) eventOptions.get("oncomplete");
+ onComplete.addToBody(oncompleteTooltip);
+ eventOptions.put("oncomplete", onComplete);
} else {
- JSFunctionDefinition onComplete = new JSFunctionDefinition();
- onComplete.addParameter("request");
- onComplete.addParameter("showEvent");
- onComplete.addParameter("data");
- onComplete.addToBody(oncompleteTooltip);
- eventOptions.put("oncomplete", onComplete);
+ JSFunctionDefinition onComplete = new JSFunctionDefinition();
+ onComplete.addParameter("request");
+ onComplete.addParameter("showEvent");
+ onComplete.addParameter("data");
+ onComplete.addToBody(oncompleteTooltip);
+ eventOptions.put("oncomplete", onComplete);
}
+
+ if (eventOptions.containsKey(AjaxRendererUtils.ONBEFOREDOMUPDATE_ATTR_NAME)) {
+ JSFunctionDefinition beforeUpdate = (JSFunctionDefinition) eventOptions
+ .get(AjaxRendererUtils.ONBEFOREDOMUPDATE_ATTR_NAME);
+ beforeUpdate.addToBody(fireBeforeUpdateDOM);
+ eventOptions.put(AjaxRendererUtils.ONBEFOREDOMUPDATE_ATTR_NAME, beforeUpdate);
+ } else {
+ JSFunctionDefinition beforeUpdate = new JSFunctionDefinition();
+ beforeUpdate.addParameter("request");
+ beforeUpdate.addParameter("showEvent");
+ beforeUpdate.addParameter("data");
+ beforeUpdate.addToBody(fireBeforeUpdateDOM);
+ eventOptions.put(AjaxRendererUtils.ONBEFOREDOMUPDATE_ATTR_NAME, beforeUpdate);
+ }
+
+ return eventOptions;
+ }
+
+ public void insertScript(FacesContext context, UIComponent component)
+ throws IOException {
+
+ StringBuffer ret = new StringBuffer();
+ ret.append("<script ");
+ ret.append("type=\"text/javascript\" ");
+ ret.append("id =\"script").append(component.getClientId(context)).append("\">\n");
+ ret.append(constructJSVariable(context, component)).append(";\n\n");
+ ret.append("</script>");
- if(eventOptions.containsKey(AjaxRendererUtils.ONBEFOREDOMUPDATE_ATTR_NAME)){
- JSFunctionDefinition beforeUpdate = (JSFunctionDefinition)eventOptions.get(AjaxRendererUtils.ONBEFOREDOMUPDATE_ATTR_NAME);
- beforeUpdate.addToBody(fireBeforeUpdateDOM);
- eventOptions.put(AjaxRendererUtils.ONBEFOREDOMUPDATE_ATTR_NAME, beforeUpdate);
+ context.getResponseWriter().write(ret.toString());
+ }
+
+ public Map<String, Object> getParamsMap(FacesContext context, UIToolTip toolTip) {
+ List<UIComponent> children = toolTip.getChildren();
+ Map<String, Object> paramsMap = new HashMap<String, Object>();
+ for (UIComponent child : children) {
+ if (child instanceof UIParameter) {
+ UIParameter param = (UIParameter) child;
+ paramsMap.put(param.getName(), param.getValue());
+ }
+ }
+ return paramsMap;
+ }
+
+ private String getTargetId(FacesContext context, UIComponent component) {
+ UIToolTip toolTip = (UIToolTip) component;
+ String forValue = toolTip.getFor();
+
+ if (forValue != null && forValue.length() != 0) {
+ UIComponent targetComponent = getUtils().findComponentFor(component, forValue);
+ if (targetComponent != null) {
+ return targetComponent.getClientId(context);
+ } else {
+ return forValue;
+ }
} else {
- JSFunctionDefinition beforeUpdate = new JSFunctionDefinition();
- beforeUpdate.addParameter("request");
- beforeUpdate.addParameter("showEvent");
- beforeUpdate.addParameter("data");
- beforeUpdate.addToBody(fireBeforeUpdateDOM);
- eventOptions.put(AjaxRendererUtils.ONBEFOREDOMUPDATE_ATTR_NAME, beforeUpdate);
+ return component.getParent().getClientId(context);
}
+ }
+
+ private final static String COMMA = ",";
+ private final static String QUOT = "\"";
+ private final static String QUOT_COMMA = "\"" + ",";
+
+ public String constructJSVariable(FacesContext context, UIComponent component) {
+ UIToolTip toolTip = (UIToolTip) component;
+ String targetClientId = getTargetId(context, component);
+ Map<JSReference, Object> eventsMap = new HashMap<JSReference, Object>();
- return eventOptions;
- }
-
- public void insertScript(FacesContext context, UIComponent component) throws IOException{
-
- UIToolTip toolTip = (UIToolTip)component;
+ String eventShow = (toolTip.isAttached()) ? toolTip.getShowEvent() : "";
+ if (eventShow.startsWith("on")) {
+ eventShow = eventShow.substring(2);
+ }
+ eventsMap.put(new JSReference("showEvent"), eventShow);
- StringBuffer ret = new StringBuffer();
- ret.append("<script ");
- ret.append("type=\"text/javascript\" ");
- ret.append("id =\"script" + component.getClientId(context)+"\">\n");
- StringBuffer script = new StringBuffer();
- //
- String jsVar = constructJSVariable(context, component);
-
- script.append(jsVar).append(";\n");
-
- ret.append(script.toString());
-
- ret.append("\n</script>");
- ResponseWriter writer = context.getResponseWriter();
- writer.write(ret.toString());
-
- }
-
- public Map <String, Object> getParamsMap(FacesContext context, UIToolTip toolTip) {
- List <UIComponent> children = toolTip.getChildren();
- Map <String, Object> paramsMap = new HashMap<String, Object>();
- for(UIComponent child: children ) {
- if(child instanceof UIParameter) {
- UIParameter param = (UIParameter)child;
- paramsMap.put(param.getName(),param.getValue());
- }
- }
- return paramsMap;
- }
-
- private String getTargetId(FacesContext context, UIComponent component) {
- UIToolTip toolTip = (UIToolTip) component;
- String forValue = toolTip.getFor();
-
- if (forValue != null && forValue.length() != 0) {
- UIComponent targetComponent = getUtils().findComponentFor(component, forValue);
- if (targetComponent != null) {
- return targetComponent.getClientId(context);
- } else {
- return forValue;
- }
- } else {
- return component.getParent().getClientId(context);
- }
- }
+ String eventHide = (toolTip.isAttached()) ? toolTip.getHideEvent() : "";
+ if (eventHide.startsWith("on")) {
+ eventHide = eventHide.substring(2);
+ }
+ eventsMap.put(new JSReference("hideEvent"), eventHide);
- public String constructJSVariable(FacesContext context, UIComponent component) {
- UIToolTip toolTip = (UIToolTip)component;
- String targetClientId = getTargetId(context, component);
- StringBuffer ret = new StringBuffer();
- String comma = ",";
- String quot = "\"";
- String eventShow = (toolTip.isAttached()) ? toolTip.getShowEvent() : "";
- String eventHide = (toolTip.isAttached()) ? toolTip.getHideEvent() : "";
- if(eventShow.startsWith("on")){
- eventShow = eventShow.substring(2);
- }
- if(eventHide.startsWith("on")){
- eventHide = eventHide.substring(2);
- }
-
- Map<JSReference, Object> eventsMap = new HashMap<JSReference, Object>();
- eventsMap.put(new JSReference("showEvent"), eventShow);
- eventsMap.put(new JSReference("hideEvent"), eventHide);
- eventsMap.put(new JSReference("delay"), new Integer(toolTip.getShowDelay()));
- eventsMap.put(new JSReference("hideDelay"), new Integer(toolTip.getHideDelay()));
-
- JSFunctionDefinition ajaxFunc = new JSFunctionDefinition("event", "ajaxOptions");
- JSFunction function = AjaxRendererUtils.buildAjaxFunction(component, context);
- JSReference ref = new JSReference("ajaxOptions");
- function.addParameter(ref);
- ajaxFunc.addToBody(function);
-
- Map<String, Object> ajaxOptions = buildEventOptions(context, toolTip, targetClientId);
- ajaxOptions.putAll(getParamsMap(context, toolTip));
- JSFunctionDefinition completeFunc = getUtils().getAsEventHandler(context, component, "oncomplete", "; return true;");
- JSFunctionDefinition hideFunc = getUtils().getAsEventHandler(context, component,"onhide", "; return true;");
- JSFunctionDefinition showFunc = getUtils().getAsEventHandler(context, component,"onshow", "; return true;");
-
- Map<JSReference, Object> funcMap = new HashMap<JSReference, Object>();
- funcMap.put(new JSReference("oncomplete"), completeFunc);
- funcMap.put(new JSReference("onhide"), hideFunc);
- funcMap.put(new JSReference("onshow"), showFunc);
-
-
- ret.append("new ToolTip(" + ScriptUtils.toScript(eventsMap)).append(comma).append(ScriptUtils.toScript(funcMap))
- .append(comma).append(quot).append( toolTip.getClientId(context)).append(quot).append(comma).
- append(quot).append(targetClientId).append(quot).append(comma).
- append(quot).append(toolTip.getMode()).append(quot).append(comma).
- append(toolTip.isDisabled()).append(comma).
- append(quot).append(toolTip.getDirection()).append(quot).append(comma).
- append(toolTip.isFollowMouse()).append(comma).
- append(toolTip.getHorizontalOffset()).append(comma).
- append(toolTip.getVerticalOffset()).append(comma).
- append(ajaxFunc.toScript()).append(comma).append(ScriptUtils.toScript(ajaxOptions)).append(");");
-
- return ret.toString();
- }
-
-
- protected void doDecode(FacesContext context, UIComponent component) {
+ eventsMap.put(new JSReference("delay"), new Integer(toolTip.getShowDelay()));
+ eventsMap.put(new JSReference("hideDelay"), new Integer(toolTip.getHideDelay()));
+
+ JSFunctionDefinition ajaxFunc = null;
+ if (AJAX_MODE.equalsIgnoreCase(toolTip.getMode())) {
+ ajaxFunc = new JSFunctionDefinition("event", "ajaxOptions");
+ JSFunction function = AjaxRendererUtils.buildAjaxFunction(component, context);
+ JSReference ref = new JSReference("ajaxOptions");
+ function.addParameter(ref);
+ ajaxFunc.addToBody(function);
+ }
+
+ Map<String, Object> ajaxOptions = buildEventOptions(context, toolTip, targetClientId);
+ ajaxOptions.putAll(getParamsMap(context, toolTip));
+
+ Map<JSReference, Object> funcMap = new HashMap<JSReference, Object>();
+ JSFunctionDefinition completeFunc = getUtils().getAsEventHandler(
+ context, component, "oncomplete", "; return true;");
+ funcMap.put(new JSReference("oncomplete"), completeFunc);
- UIToolTip tooltip = (UIToolTip)component;
-
- String clientId = tooltip.getClientId(context);
-
- if(context.getExternalContext().getRequestParameterMap().containsKey(clientId)){
- if("ajax".equals(tooltip.getMode())){
- new AjaxEvent(component).queue();
- new ActionEvent(component).queue();
- }
- }
- }
+ JSFunctionDefinition hideFunc = getUtils().getAsEventHandler(
+ context, component, "onhide", "; return true;");
+ funcMap.put(new JSReference("onhide"), hideFunc);
- public void encodeTooltipText(FacesContext context, UIToolTip component) throws IOException {
- ResponseWriter responseWriter = context.getResponseWriter();
- responseWriter.startElement(component.getUsedElementType(), component);
- responseWriter.writeAttribute("id", component.getClientId(context) + "content", null);
- if("ajax".equals(component.getMode())){
- // we want to avoid rendering toolTip content during initialy page displaying
- AjaxContext ajaxContext = AjaxContext.getCurrentInstance();
- if(ajaxContext != null && ajaxContext.getAjaxAreasToRender().contains(component.getClientId(context) + "content")){
- responseWriter.write(component.getValue() != null ? component.getValue().toString() : "");
- super.renderChildren(context, component);
- }
- } else {
- // client mode
- responseWriter.write(component.getValue() != null ? component.getValue().toString() : "");
- super.renderChildren(context, component);
- }
- responseWriter.endElement(component.getUsedElementType());
- }
-
-
- protected void doEncodeBegin(ResponseWriter writer, FacesContext context,
- UIComponent component) throws IOException {
-
- UIToolTip toolTip = (UIToolTip)component;
- Class rendererClass = null;
- try{
- if("block".equals(toolTip.getLayout())){
- rendererClass = Class.forName("org.richfaces.renderkit.html.HtmlToolTipRendererBlock");
- } else if("inline".equals(toolTip.getLayout())){
- rendererClass = Class.forName("org.richfaces.renderkit.html.HtmlToolTipRenderer");
- } else {
- throw new FacesException("Only \"block\" or \"inline\" values can be established to attribute \"layout\".");
- }
- ToolTipRenderer renderer = (ToolTipRenderer)rendererClass.newInstance();
- renderer.doEncodeBegin(writer, context, component);
-
- } catch(Exception e){
- throw new FacesException(e.getMessage(), e);
- }
- }
-
-
- protected void doEncodeChildren(ResponseWriter writer,
- FacesContext context, UIComponent component) throws IOException {
-
- UIToolTip toolTip = (UIToolTip)component;
- Class rendererClass = null;
- try{
- if("block".equals(toolTip.getLayout())){
- rendererClass = Class.forName("org.richfaces.renderkit.html.HtmlToolTipRendererBlock");
- } else {
- rendererClass = Class.forName("org.richfaces.renderkit.html.HtmlToolTipRenderer");
- }
-
- ToolTipRenderer renderer = null;
-
- renderer = (ToolTipRenderer)rendererClass.newInstance();
-
- renderer.doEncodeChildren(writer, context, component);
- } catch(Exception e){
- throw new FacesException(e.getMessage(), e);
- }
-
-
- }
-
-
- protected void doEncodeEnd(ResponseWriter writer, FacesContext context,
- UIComponent component) throws IOException {
-
- UIToolTip toolTip = (UIToolTip)component;
- Class rendererClass = null;
- try{
- if("block".equals(toolTip.getLayout())){
- rendererClass = Class.forName("org.richfaces.renderkit.html.HtmlToolTipRendererBlock");
- } else {
- rendererClass = Class.forName("org.richfaces.renderkit.html.HtmlToolTipRenderer");
- }
- ToolTipRenderer renderer = (ToolTipRenderer)rendererClass.newInstance();
- renderer.doEncodeEnd(writer, context, component);
- } catch (Exception e) {
- throw new FacesException(e.getMessage(), e);
- }
- }
-
-
- /* (non-Javadoc)
- * @see javax.faces.render.Renderer#getRendersChildren()
- */
- public boolean getRendersChildren() {
- return true;
- }
-
-
+ JSFunctionDefinition showFunc = getUtils().getAsEventHandler(
+ context, component, "onshow", "; return true;");
+ funcMap.put(new JSReference("onshow"), showFunc);
+
+ StringBuffer ret = new StringBuffer();
+ ret.append("new ToolTip(").append(ScriptUtils.toScript(eventsMap)).append(COMMA)
+ .append(ScriptUtils.toScript(funcMap)).append(COMMA)
+ .append(QUOT).append(toolTip.getClientId(context)).append(QUOT_COMMA)
+ .append(QUOT).append(targetClientId).append(QUOT_COMMA)
+ .append(QUOT).append(toolTip.getMode()).append(QUOT_COMMA)
+ .append(toolTip.isDisabled()).append(COMMA)
+ .append(QUOT).append(toolTip.getDirection()).append(QUOT_COMMA)
+ .append(toolTip.isFollowMouse()).append(COMMA)
+ .append(toolTip.getHorizontalOffset()).append(COMMA)
+ .append(toolTip.getVerticalOffset()).append(COMMA)
+ .append(ajaxFunc == null ? "null" : ajaxFunc.toScript()).append(COMMA)
+ .append(ScriptUtils.toScript(ajaxOptions)).append(");");
+
+ return ret.toString();
+ }
+
+ protected void doDecode(FacesContext context, UIComponent component) {
+
+ UIToolTip tooltip = (UIToolTip) component;
+
+ String clientId = tooltip.getClientId(context);
+
+ if (context.getExternalContext().getRequestParameterMap().containsKey(clientId)) {
+ if (AJAX_MODE.equals(tooltip.getMode())) {
+ new AjaxEvent(component).queue();
+ new ActionEvent(component).queue();
+ }
+ }
+ }
+
+ public void encodeTooltipText(FacesContext context, UIToolTip component)
+ throws IOException {
+ ResponseWriter responseWriter = context.getResponseWriter();
+ responseWriter.startElement(component.getUsedElementType(), component);
+
+ String clientId = component.getClientId(context);
+ Object value = component.getValue();
+
+ responseWriter.writeAttribute("id", clientId + "content", null);
+ if (AJAX_MODE.equals(component.getMode())) {
+ // we want to avoid rendering toolTip content during initialy page
+ // displaying
+ AjaxContext ajaxContext = AjaxContext.getCurrentInstance();
+ if (ajaxContext != null && ajaxContext.getAjaxAreasToRender().contains(clientId + "content")) {
+
+ responseWriter.write(value != null ? value.toString() : "");
+
+ super.renderChildren(context, component);
+ }
+ } else {
+ // client mode
+ responseWriter.write(value != null ? value.toString() : "");
+ super.renderChildren(context, component);
+ }
+ responseWriter.endElement(component.getUsedElementType());
+ }
+
+ protected void doEncodeBegin(ResponseWriter writer, FacesContext context,
+ UIComponent component) throws IOException {
+
+ try {
+ ToolTipRenderer renderer = getRenderer((UIToolTip) component);
+ renderer.doEncodeBegin(writer, context, component);
+ } catch (Exception e) {
+ throw new FacesException(e.getMessage(), e);
+ }
+ }
+
+ protected void doEncodeChildren(ResponseWriter writer,
+ FacesContext context, UIComponent component) throws IOException {
+
+ try {
+ ToolTipRenderer renderer = getRenderer((UIToolTip) component);
+ renderer.doEncodeChildren(writer, context, component);
+ } catch (Exception e) {
+ throw new FacesException(e.getMessage(), e);
+ }
+
+ }
+
+ protected void doEncodeEnd(ResponseWriter writer, FacesContext context,
+ UIComponent component) throws IOException {
+
+ try {
+ ToolTipRenderer renderer = getRenderer((UIToolTip) component);
+ renderer.doEncodeEnd(writer, context, component);
+ } catch (Exception e) {
+ throw new FacesException(e.getMessage(), e);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.render.Renderer#getRendersChildren()
+ */
+ public boolean getRendersChildren() {
+ return true;
+ }
+
+ private ToolTipRenderer getRenderer(UIToolTip toolTip) throws ClassNotFoundException, InstantiationException, IllegalAccessException{
+ Class<?> rendererClass;
+ if ("block".equals(toolTip.getLayout())) {
+ rendererClass = Class.forName("org.richfaces.renderkit.html.HtmlToolTipRendererBlock");
+ } else {
+ rendererClass = Class.forName("org.richfaces.renderkit.html.HtmlToolTipRenderer");
+ }
+
+ return (ToolTipRenderer) rendererClass.newInstance();
+
+ }
+
}
-
Modified: trunk/ui/tooltip/src/main/java/org/richfaces/taglib/ToolTipTagHandlerBase.java
===================================================================
--- trunk/ui/tooltip/src/main/java/org/richfaces/taglib/ToolTipTagHandlerBase.java 2009-02-13 11:53:36 UTC (rev 12649)
+++ trunk/ui/tooltip/src/main/java/org/richfaces/taglib/ToolTipTagHandlerBase.java 2009-02-13 13:04:09 UTC (rev 12650)
@@ -30,27 +30,30 @@
import com.sun.facelets.tag.jsf.ComponentConfig;
public abstract class ToolTipTagHandlerBase extends AjaxComponentHandler {
- public ToolTipTagHandlerBase(ComponentConfig config) {
- super(config);
- }
- protected MetaRuleset createMetaRuleset(Class type) {
- TagAttributes attributes = this.tag.getAttributes();
- TagAttribute eventAttribute = attributes.get("event");
- TagAttribute showEventAttribute = attributes.get("showEvent");
- MetaRuleset ruleset = super.createMetaRuleset(type);
-
- if (eventAttribute != null) {
- if (showEventAttribute != null) {
- TagAttribute idAttribute = attributes.get("id");
- FacesContext facesContext = FacesContext.getCurrentInstance();
- facesContext.getExternalContext().log("showEvent attribute has been already set for component with id: " +
- idAttribute != null ? idAttribute.getValue() : null +
- "[" + eventAttribute.getValue() + "]. event attribute is deprecated and thus has been dropped!");
- ruleset.ignore("event");
- } else {
- ruleset.alias("event", "showEvent");
- }
- }
- return ruleset;
- }
+
+ public ToolTipTagHandlerBase(ComponentConfig config) {
+ super(config);
+ }
+
+ protected MetaRuleset createMetaRuleset(Class type) {
+ TagAttributes attributes = this.tag.getAttributes();
+ TagAttribute eventAttribute = attributes.get("event");
+ TagAttribute showEventAttribute = attributes.get("showEvent");
+ MetaRuleset ruleset = super.createMetaRuleset(type);
+
+ if (eventAttribute != null) {
+ if (showEventAttribute != null) {
+ TagAttribute idAttribute = attributes.get("id");
+ FacesContext facesContext = FacesContext.getCurrentInstance();
+ facesContext.getExternalContext()
+ .log("showEvent attribute has been already set for component with id: "
+ + idAttribute != null ? idAttribute.getValue() : null
+ + "[" + eventAttribute.getValue() + "]. event attribute is deprecated and thus has been dropped!");
+ ruleset.ignore("event");
+ } else {
+ ruleset.alias("event", "showEvent");
+ }
+ }
+ return ruleset;
+ }
}
Modified: trunk/ui/tooltip/src/test/java/org/richfaces/component/TooltipComponentTest.java
===================================================================
--- trunk/ui/tooltip/src/test/java/org/richfaces/component/TooltipComponentTest.java 2009-02-13 11:53:36 UTC (rev 12649)
+++ trunk/ui/tooltip/src/test/java/org/richfaces/component/TooltipComponentTest.java 2009-02-13 13:04:09 UTC (rev 12650)
@@ -48,7 +48,7 @@
private UIToolTip tooltip1;
private UIToolTip tooltip2;
- private static Set javaScripts = new HashSet();
+ private static Set<String> javaScripts = new HashSet<String>();
private static final boolean IS_PAGE_AVAILABILITY_CHECK = true;
static {
@@ -71,10 +71,8 @@
form = new HtmlForm();
form.setId("form");
facesContext.getViewRoot().getChildren().add(form);
- tooltip1 = (UIToolTip) application
- .createComponent(UIToolTip.COMPONENT_TYPE);
- tooltip2 = (UIToolTip) application
- .createComponent(UIToolTip.COMPONENT_TYPE);
+ tooltip1 = (UIToolTip) application.createComponent(UIToolTip.COMPONENT_TYPE);
+ tooltip2 = (UIToolTip) application.createComponent(UIToolTip.COMPONENT_TYPE);
tooltip1.setId("tooltip1");
tooltip1.setLayout("block");
form.getChildren().add(tooltip1);
@@ -85,22 +83,18 @@
}
public void testRender() throws Exception {
-
HtmlPage page = renderView();
assertNotNull(page);
- //System.out.println(page.asXml());
-
}
public void testToolTipStyles() throws Exception {
HtmlPage page = renderView();
assertNotNull(page);
- List links = page.getDocumentElement().getHtmlElementsByTagName("link");
+ List<?> links = page.getDocumentHtmlElement().getHtmlElementsByTagName("link");
if(links.size()==0){fail();}
for (int i = 0; i < links.size(); i++) {
HtmlElement link = (HtmlElement) links.get(i);
- assertTrue(link.getAttributeValue("href").contains(
- "css/tooltip.xcss"));
+ assertTrue(link.getAttributeValue("href").contains("css/tooltip.xcss"));
}
}
@@ -108,22 +102,14 @@
HtmlPage page = renderView();
assertNotNull(page);
- List scripts = page.getDocumentElement().getHtmlElementsByTagName(
- "script");
- for (Iterator it = scripts.iterator(); it.hasNext();) {
+ List<?> scripts = page.getDocumentHtmlElement().getHtmlElementsByTagName("script");
+ for (Iterator<?> it = scripts.iterator(); it.hasNext();) {
HtmlScript item = (HtmlScript) it.next();
String srcAttr = item.getSrcAttribute();
- if (item.getFirstChild() != null) {
- String scriptBodyString = item.getFirstChild().toString();
- if (scriptBodyString.contains("new ToolTip")) {
- assertTrue(scriptBodyString.contains("A4J.AJAX.Submit"));
- //assertTrue(scriptBodyString.contains("Richfaces.tooltips"));
- }
- }
if (StringUtils.isNotBlank(srcAttr)) {
boolean found = false;
- for (Iterator srcIt = javaScripts.iterator(); srcIt.hasNext();) {
+ for (Iterator<String> srcIt = javaScripts.iterator(); srcIt.hasNext();) {
String src = (String) srcIt.next();
found = srcAttr.contains(src);
if (found) {
15 years, 3 months
JBoss Rich Faces SVN: r12649 - trunk/docs/userguide/en/src/main/docbook/included.
by richfaces-svn-commits@lists.jboss.org
Author: cluts
Date: 2009-02-13 06:53:36 -0500 (Fri, 13 Feb 2009)
New Revision: 12649
Modified:
trunk/docs/userguide/en/src/main/docbook/included/ajaxListener.xml
Log:
RF-6019 - the org.ajax4jsf.framework.ajax.ajaxListener interface exists. Code examples and some sections have been updated.
Modified: trunk/docs/userguide/en/src/main/docbook/included/ajaxListener.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/included/ajaxListener.xml 2009-02-13 11:44:38 UTC (rev 12648)
+++ trunk/docs/userguide/en/src/main/docbook/included/ajaxListener.xml 2009-02-13 11:53:36 UTC (rev 12649)
@@ -18,18 +18,17 @@
<row>
<entry>listener-class</entry>
- <entry>org.ajax4jsf.framework.ajax.AjaxListener</entry>
+ <entry>org.ajax4jsf.event.AjaxListener</entry>
</row>
<row>
<entry>event-class</entry>
- <entry>org.ajax4jsf.framework.ajax.AjaxEvent</entry>
+ <entry>org.ajax4jsf.event.AjaxEvent</entry>
</row>
<row>
<entry>tag-class</entry>
<entry>org.ajax4jsf.taglib.html.jsp.AjaxListenerTag</entry>
</row>
-
</tbody>
</tgroup>
</table>
@@ -55,7 +54,7 @@
<emphasis role="bold">Example:</emphasis></para>
<programlisting role="JAVA"><![CDATA[package demo;
-public class ImplBean implements import org.ajax4jsf.component.html.AjaxListener{
+public class ImplBean implements import org.ajax4jsf.event.AjaxListener{
...
}
]]></programlisting>
@@ -80,8 +79,8 @@
a good place for update the list of re-rendered components, for example.
Ajax Listener is not invoked for non-Ajax request and when RichFaces works in "Ajax Request generates
Non-Ajax Response" mode. Therefore, ajax Listener invocation is a good indicator that Ajax response is going to be processed.
-Attribute <emphasis><property>"type"</property></emphasis> described in the following <link linkend="ajaxListener"> chapter</link>. It defines the fully qualified Java class name for listener. This class implements <code>org.ajax4jsf.framework.ajax.ajaxListener</code>
- <ulink url="http://labs.jboss.com/file-access/default/members/jbossrichfaces/freezone...">interface</ulink>. You can access to the source of the event (Ajax component) using <code>event.getSource()</code> call.
+Attribute <emphasis><property>"type"</property></emphasis> described in the following <link linkend="ajaxListener"> chapter</link>. It defines the fully qualified Java class name for listener. This class implements <code>org.ajax4jsf.event.AjaxListener</code>
+ <ulink url="http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/...">interface</ulink>. You can access to the source of the event (Ajax component) using <code>event.getSource()</code> call.
</para>
<para>
@@ -100,12 +99,12 @@
</para>
<programlisting role="JAVA"><![CDATA[package demo;
+
+import org.ajax4jsf.event.AjaxEvent;
-import org.ajax4jsf.framework.ajax.AjaxEvent;
-
-public class Bean implements org.ajax4jsf.framework.ajax.AjaxListener{
+public class Bean implements org.ajax4jsf.event.AjaxListener{
...
- public void processAjax(AjaxEvent arg0){
+ public void processAjax(AjaxEvent arg){
//Custom Developer Code
}
...
15 years, 3 months
JBoss Rich Faces SVN: r12648 - trunk/docs/userguide/en/src/main/docbook/included.
by richfaces-svn-commits@lists.jboss.org
Author: cluts
Date: 2009-02-13 06:44:38 -0500 (Fri, 13 Feb 2009)
New Revision: 12648
Modified:
trunk/docs/userguide/en/src/main/docbook/included/include.xml
Log:
RF-5954 - the corresponding section has been updated
Modified: trunk/docs/userguide/en/src/main/docbook/included/include.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/included/include.xml 2009-02-13 11:39:47 UTC (rev 12647)
+++ trunk/docs/userguide/en/src/main/docbook/included/include.xml 2009-02-13 11:44:38 UTC (rev 12648)
@@ -5,7 +5,7 @@
<keyword>a4j:include</keyword>
</keywordset>
</chapterinfo>
- <para><table frame="all">
+ <table frame="all">
<title>Component identification parameters</title>
<tgroup cols="2">
<thead>
@@ -33,7 +33,7 @@
</row>
</tbody>
</tgroup>
- </table></para>
+ </table>
<section>
<title>Creating on a page</title>
@@ -73,29 +73,9 @@
</section>
<section>
<title>Creating the Component Dynamically Using Java</title>
- <programlisting role="JAVA"><![CDATA[<import org.ajax4jsf.component.html.Include;
-...
-Include myInclude = new Include();
-...
-]]></programlisting>
-<para>If <emphasis role="bold">
- <property><a4j:include></property>
- </emphasis> is defined this way, any Ajax request returning outcome inside generates navigation with this <emphasis role="bold">
- <property><a4j:include></property>
- </emphasis>.</para>
-<para>Ajax Action for navigation implementation inside view must be placed inside <emphasis role="bold">
- <property><a4j:include></property>
- </emphasis> pages. Navigation defined by these pages is applied to the <emphasis role="bold">
- <property><a4j:include></property>
- </emphasis> element current for them.</para>
-<para>As in the general case for Ajax Action component, if the <emphasis role="bold">
- <property><a4j:action></property>
- </emphasis>component inside <emphasis role="bold">
- <property><a4j:include></property>
- </emphasis>returns outcome defined as <emphasis role="bold">
- <property><redirect/></property>,
- </emphasis> Ajax submit is performed with navigation of the whole page and not only of the current view.
-</para>
+ <para>
+ This component cannot be created dynamically.
+ </para>
</section>
<section>
15 years, 3 months
JBoss Rich Faces SVN: r12647 - trunk/docs/userguide/en/src/main/docbook/included.
by richfaces-svn-commits@lists.jboss.org
Author: cluts
Date: 2009-02-13 06:39:47 -0500 (Fri, 13 Feb 2009)
New Revision: 12647
Modified:
trunk/docs/userguide/en/src/main/docbook/included/repeat.xml
Log:
RF-6013 - code examples have been checked and updated
Modified: trunk/docs/userguide/en/src/main/docbook/included/repeat.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/included/repeat.xml 2009-02-12 17:53:13 UTC (rev 12646)
+++ trunk/docs/userguide/en/src/main/docbook/included/repeat.xml 2009-02-13 11:39:47 UTC (rev 12647)
@@ -70,28 +70,18 @@
several child components separately without updating the whole page.</para>
<programlisting role="XML"><![CDATA[...
- <a4j:poll intervall="1000" action="#{repeater.action}" reRender="text">
- <table>
- <tbody>
- <a4j:repeat value="#{bean.props}" var="detail" ajaxKeys="#{repeater.ajaxedRowsSet}">
- <tr>
- <td>
- <h:outputText value="detail.someProperty" id="text"/>
- </td>
- </tr>
- </a4j:repeat>
- </tbody>
- </table>
- </a4j:poll>
-...
-]]></programlisting>
-
- <para>Thus, a list with a table structure from <code>bean.props</code> is
- output.</para>
- <para>In the above-mentioned example the component <emphasis role="bold">
- <property><a4j:poll></property>
- </emphasis> sends Ajax requests every second, calling the
- <code>action</code> method of the <code>repeater</code> bean. </para>
+<table>
+ <tbody>
+ <a4j:repeat value="#{repeatBean.items}" var="item"
+ ajaxKeys="#{updateBean.updatedRow}">
+ <tr>
+ <td><h:outputText value="#{item.code}" id="item1" /></td>
+ <td><h:outputText value="#{item.price}" id="item2" /></td>
+ </tr>
+ </a4j:repeat>
+ </tbody>
+</table>
+...]]></programlisting>
<note>
<title>Note:</title>
<para>The <emphasis role="bold">
15 years, 3 months
JBoss Rich Faces SVN: r12646 - in trunk/test-applications/realworld/web: src/main/java/org/richfaces/realworld/fileupload and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: amarkhel
Date: 2009-02-12 12:53:13 -0500 (Thu, 12 Feb 2009)
New Revision: 12646
Added:
trunk/test-applications/realworld/web/src/main/java/org/richfaces/realworld/fileupload/FileManagerTest.java
Modified:
trunk/test-applications/realworld/web/pom.xml
trunk/test-applications/realworld/web/src/main/webapp/WEB-INF/components.xml
trunk/test-applications/realworld/web/src/main/webapp/WEB-INF/web.xml
Log:
Modified: trunk/test-applications/realworld/web/pom.xml
===================================================================
--- trunk/test-applications/realworld/web/pom.xml 2009-02-12 17:48:48 UTC (rev 12645)
+++ trunk/test-applications/realworld/web/pom.xml 2009-02-12 17:53:13 UTC (rev 12646)
@@ -16,6 +16,11 @@
<artifactId>metadata-extractor</artifactId>
<version>2.4.0-beta1</version>
</dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8</version>
+ </dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-api</artifactId>
Added: trunk/test-applications/realworld/web/src/main/java/org/richfaces/realworld/fileupload/FileManagerTest.java
===================================================================
--- trunk/test-applications/realworld/web/src/main/java/org/richfaces/realworld/fileupload/FileManagerTest.java (rev 0)
+++ trunk/test-applications/realworld/web/src/main/java/org/richfaces/realworld/fileupload/FileManagerTest.java 2009-02-12 17:53:13 UTC (rev 12646)
@@ -0,0 +1,135 @@
+package org.richfaces.realworld.fileupload;
+
+import java.io.IOException;
+
+import junit.framework.TestCase;
+
+public class FileManagerTest extends TestCase {
+
+ protected void setUp() throws Exception {
+ fileManager=new FileManager();
+ fileManager.setUploadRoot("C:/Upload/");
+ }
+
+ protected void tearDown() throws Exception {
+ }
+
+private byte[] image = new byte[40];
+ private FileManager fileManager;
+ public void testIsDirectoryPresent() {
+ fileManager.addDirectory("amarkhel");
+ assertEquals(fileManager.isDirectoryPresent("amarkhel"), true);
+ assertEquals(fileManager.isDirectoryPresent("amarkhel2"), false);
+ fileManager.deleteDirectory("amarkhel");
+ }
+
+ public void testDeleteDirectory() {
+ fileManager.addDirectory("amarkhel");
+ assertEquals(fileManager.isDirectoryPresent("amarkhel"), true);
+ fileManager.deleteDirectory("amarkhel");
+ assertEquals(fileManager.isDirectoryPresent("amarkhel"), false);
+ }
+
+ public void testRenameDirectory() throws Exception {
+ fileManager.addDirectory("amarkhel");
+ assertEquals(fileManager.isDirectoryPresent("amarkhel"), true);
+ fileManager.renameDirectory("amarkhel", "amarkhel2");
+ assertEquals(fileManager.isDirectoryPresent("amarkhel"), false);
+ assertEquals(fileManager.isDirectoryPresent("amarkhel2"), true);
+ fileManager.deleteDirectory("amarkhel2");
+ }
+
+ public void testRenameDirectory2(){
+ fileManager.addDirectory("amarkhel");
+ fileManager.addDirectory("amarkhel2");
+ assertEquals(fileManager.isDirectoryPresent("amarkhel"), true);
+ try {
+ fileManager.renameDirectory("amarkhel", "amarkhel2");
+ } catch (Exception e) {
+ assertTrue(true);
+ }
+
+ assertEquals(fileManager.isDirectoryPresent("amarkhel"), true);
+ assertEquals(fileManager.isDirectoryPresent("amarkhel2"), true);
+ fileManager.deleteDirectory("amarkhel");
+ fileManager.deleteDirectory("amarkhel2");
+ }
+
+ public void testRenameDirectory3() throws Exception {
+ fileManager.addDirectory("a"+System.getProperty("file.separator")+"amarkhel");
+ assertEquals(fileManager.isDirectoryPresent("a"+System.getProperty("file.separator")+"amarkhel"), true);
+ fileManager.renameDirectory("a"+System.getProperty("file.separator")+"amarkhel", "b"+System.getProperty("file.separator")+"amarkhel");
+ assertEquals(fileManager.isDirectoryPresent("a"+System.getProperty("file.separator")+"amarkhel"), false);
+ assertEquals(fileManager.isDirectoryPresent("b"+System.getProperty("file.separator")+"amarkhel"), true);
+ fileManager.deleteDirectory("b"+System.getProperty("file.separator")+"amarkhel");
+ }
+
+ public void testRenameDirectory4() throws Exception {
+ fileManager.addDirectory("a"+System.getProperty("file.separator")+"a"+System.getProperty("file.separator")+"amarkhel");
+ assertEquals(fileManager.isDirectoryPresent("a"+System.getProperty("file.separator")+"a"+System.getProperty("file.separator")+"amarkhel"), true);
+ fileManager.renameDirectory("a"+System.getProperty("file.separator")+"a"+System.getProperty("file.separator")+"amarkhel", "b"+System.getProperty("file.separator")+"b"+System.getProperty("file.separator")+"amarkhel");
+ assertEquals(fileManager.isDirectoryPresent("a"+System.getProperty("file.separator")+"a"+System.getProperty("file.separator")+"amarkhel"), false);
+ assertEquals(fileManager.isDirectoryPresent("b"+System.getProperty("file.separator")+"b"+System.getProperty("file.separator")+"amarkhel"), true);
+ fileManager.deleteDirectory("b"+System.getProperty("file.separator")+"b"+System.getProperty("file.separator")+"amarkhel");
+ }
+
+ public void testAddDirectory() {
+ assertEquals(fileManager.isDirectoryPresent("amarkhel"), false);
+ fileManager.addDirectory("amarkhel");
+ assertEquals(fileManager.isDirectoryPresent("amarkhel"), true);
+ fileManager.deleteDirectory("amarkhel");
+ }
+
+ public void testAddDirectory2() {
+ assertEquals(fileManager.isDirectoryPresent("a"+System.getProperty("file.separator")+"amarkhel"), false);
+ fileManager.addDirectory("a"+System.getProperty("file.separator")+"amarkhel");
+ assertEquals(fileManager.isDirectoryPresent("a"+System.getProperty("file.separator")+"amarkhel"), true);
+ fileManager.deleteDirectory("a"+System.getProperty("file.separator")+"amarkhel");
+ }
+
+ public void testAddImage() throws IOException {
+ assertEquals(fileManager.isImagePresent("amarkhel.gif"), false);
+ fileManager.addImage("amarkhel.gif", image);
+ assertEquals(fileManager.isImagePresent("amarkhel.gif"), true);
+ fileManager.deleteImage("amarkhel.gif");
+ }
+
+ public void testDeleteImage() throws IOException {
+ fileManager.addImage("amarkhel.gif", image);
+ assertEquals(fileManager.isImagePresent("amarkhel.gif"), true);
+ fileManager.deleteImage("amarkhel.gif");
+ assertEquals(fileManager.isImagePresent("amarkhel.gif"), false);
+ }
+
+ public void testRenameImage() throws IOException {
+ fileManager.addImage("amarkhel.gif", image);
+ assertEquals(fileManager.isImagePresent("amarkhel.gif"), true);
+ fileManager.renameImage("amarkhel.gif", "amarkhel2.gif");
+ assertEquals(fileManager.isImagePresent("amarkhel.gif"), false);
+ assertEquals(fileManager.isImagePresent("amarkhel2.gif"), true);
+ fileManager.deleteImage("amarkhel2.gif");
+ }
+
+ public void testRenameImage2() throws IOException {
+ fileManager.addImage("a"+System.getProperty("file.separator")+"amarkhel.gif", image);
+ assertEquals(fileManager.isImagePresent("a"+System.getProperty("file.separator")+"amarkhel.gif"), true);
+ fileManager.renameImage("a"+System.getProperty("file.separator")+"amarkhel.gif", "b"+System.getProperty("file.separator")+"amarkhel2.gif");
+ assertEquals(fileManager.isImagePresent("a"+System.getProperty("file.separator")+"amarkhel.gif"), false);
+ assertEquals(fileManager.isImagePresent("b"+System.getProperty("file.separator")+"amarkhel2.gif"), true);
+ fileManager.deleteImage("b"+System.getProperty("file.separator")+"amarkhel2.gif");
+ fileManager.deleteDirectory("b");
+ fileManager.deleteDirectory("a");
+ }
+
+ public void testIsImagePresent() throws IOException {
+ fileManager.addImage("amarkhel.gif", image);
+ assertEquals(fileManager.isImagePresent("amarkhel.gif"), true);
+ assertEquals(fileManager.isImagePresent("amarkhel3.gif"), false);
+ fileManager.deleteImage("amarkhel.gif");
+ fileManager.addImage("am"+System.getProperty("file.separator")+"amarkhel.gif", image);
+ assertEquals(fileManager.isImagePresent("am"+System.getProperty("file.separator")+"amarkhel.gif"), true);
+ fileManager.deleteImage("am"+System.getProperty("file.separator")+"amarkhel.gif");
+ fileManager.deleteDirectory("am");
+ }
+
+}
Property changes on: trunk/test-applications/realworld/web/src/main/java/org/richfaces/realworld/fileupload/FileManagerTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Author Id Revision Date
Name: svn:eol-style
+ native
Modified: trunk/test-applications/realworld/web/src/main/webapp/WEB-INF/components.xml
===================================================================
--- trunk/test-applications/realworld/web/src/main/webapp/WEB-INF/components.xml 2009-02-12 17:48:48 UTC (rev 12645)
+++ trunk/test-applications/realworld/web/src/main/webapp/WEB-INF/components.xml 2009-02-12 17:53:13 UTC (rev 12646)
@@ -1,16 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<components xmlns="http://jboss.com/products/seam/components"
- xmlns:core="http://jboss.com/products/seam/core"
- xmlns:persistence="http://jboss.com/products/seam/persistence"
- xmlns:drools="http://jboss.com/products/seam/drools"
- xmlns:bpm="http://jboss.com/products/seam/bpm"
- xmlns:security="http://jboss.com/products/seam/security"
- xmlns:mail="http://jboss.com/products/seam/mail"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:transaction="http://jboss.com/products/seam/transaction"
- xmlns:web="http://jboss.com/products/seam/web"
- xsi:schemaLocation=
- "http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.1.0.xsd
+ xmlns:core="http://jboss.com/products/seam/core"
+ xmlns:persistence="http://jboss.com/products/seam/persistence"
+ xmlns:drools="http://jboss.com/products/seam/drools"
+ xmlns:bpm="http://jboss.com/products/seam/bpm"
+ xmlns:security="http://jboss.com/products/seam/security"
+ xmlns:mail="http://jboss.com/products/seam/mail"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:transaction="http://jboss.com/products/seam/transaction"
+ xmlns:web="http://jboss.com/products/seam/web"
+ xsi:schemaLocation="http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.1.0.xsd
http://jboss.com/products/seam/web http://jboss.com/products/seam/web-2.1.0.xsd
http://jboss.com/products/seam/transaction http://jboss.com/products/seam/transaction-2.1.0.xsd
http://jboss.com/products/seam/persistence http://jboss.com/products/seam/persistence-2.1.0.xsd
@@ -20,23 +19,25 @@
http://jboss.com/products/seam/mail http://jboss.com/products/seam/mail-2.1.0.xsd
http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.0.xsd">
- <core:init transaction-management-enabled="false" debug="true" jndi-pattern="@jndiPattern@"/>
- <web:context-filter url-pattern="/picture/*" />
- <web:character-encoding-filter encoding="UTF-8" override-client="true" url-pattern="*.seam" />
- <core:manager concurrent-request-timeout="20000"
- conversation-timeout="120000"
- conversation-id-parameter="cid"
- default-flush-mode="MANUAL"/>
- <persistence:managed-persistence-context name="entityManager"
- auto-create="true"
- persistence-unit-jndi-name="java:/realWorldEntityManager"/>
- <transaction:ejb-transaction />
- <security:identity authenticate-method="#{authenticator.authenticate}"/>
- <event type="org.jboss.seam.security.notLoggedIn">
- <action execute="#{redirect.captureCurrentView}"/>
- <action execute="#{identity.tryLogin()}"/>
- </event>
- <event type="org.jboss.seam.security.loginSuccessful">
- <action execute="#{redirect.returnToCapturedView}"/>
- </event>
-</components>
+ <core:init transaction-management-enabled="false" debug="true"
+ jndi-pattern="@jndiPattern@" />
+ <web:context-filter url-pattern="/picture/*" />
+ <web:character-encoding-filter encoding="UTF-8"
+ override-client="true" url-pattern="*.seam" />
+ <core:manager concurrent-request-timeout="20000"
+ conversation-timeout="120000" conversation-id-parameter="cid"
+ default-flush-mode="MANUAL" />
+ <persistence:managed-persistence-context name="entityManager"
+ auto-create="true"
+ persistence-unit-jndi-name="java:/realWorldEntityManager" />
+ <transaction:ejb-transaction />
+ <security:identity
+ authenticate-method="#{authenticator.authenticate}" />
+ <event type="org.jboss.seam.security.notLoggedIn">
+ <action execute="#{redirect.captureCurrentView}" />
+ <action execute="#{identity.tryLogin()}" />
+ </event>
+ <event type="org.jboss.seam.security.loginSuccessful">
+ <action execute="#{redirect.returnToCapturedView}" />
+ </event>
+</components>
\ No newline at end of file
Modified: trunk/test-applications/realworld/web/src/main/webapp/WEB-INF/web.xml
===================================================================
--- trunk/test-applications/realworld/web/src/main/webapp/WEB-INF/web.xml 2009-02-12 17:48:48 UTC (rev 12645)
+++ trunk/test-applications/realworld/web/src/main/webapp/WEB-INF/web.xml 2009-02-12 17:53:13 UTC (rev 12646)
@@ -4,8 +4,26 @@
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
- <!-- Ajax4jsf -->
+
+
+ <listener>
+ <listener-class>
+ org.jboss.seam.servlet.SeamListener
+ </listener-class>
+ </listener>
+
<filter>
+ <filter-name>Seam Filter</filter-name>
+ <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>Seam Filter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+<!-- Ajax4jsf -->
+ <filter>
<display-name>Ajax4jsf Filter</display-name>
<filter-name>ajax4jsf</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
@@ -30,23 +48,6 @@
</context-param>
<!-- Seam -->
-
- <listener>
- <listener-class>
- org.jboss.seam.servlet.SeamListener
- </listener-class>
- </listener>
-
- <filter>
- <filter-name>Seam Filter</filter-name>
- <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
- </filter>
-
- <filter-mapping>
- <filter-name>Seam Filter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
-
<servlet>
<servlet-name>Seam Resource Servlet</servlet-name>
<servlet-class>
15 years, 3 months
JBoss Rich Faces SVN: r12645 - in trunk/test-applications/seleniumTest/richfaces/src: main/webapp/WEB-INF and 2 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: andrei_exadel
Date: 2009-02-12 12:48:48 -0500 (Thu, 12 Feb 2009)
New Revision: 12645
Added:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/ColumnsBean.java
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/WEB-INF/faces-config.xml
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/columns/columnsTest.xhtml
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/ColumnsTest.java
Log:
RF-6097
Added: trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/ColumnsBean.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/ColumnsBean.java (rev 0)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/ColumnsBean.java 2009-02-12 17:48:48 UTC (rev 12645)
@@ -0,0 +1,125 @@
+package org.ajax4jsf.bean;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.faces.event.ActionEvent;
+
+public class ColumnsBean {
+
+ static final String ROW_PREFIX = "Row";
+
+ static final String CELL_PREFIX = "Cell";
+
+ String status;
+
+ public class Column {
+ String header;
+
+ public Column(String header) {
+ super();
+ this.header = header;
+ }
+
+ public void listener(ActionEvent event) {
+ setStatus(getStatus() + "ActionListener" + columns.indexOf(this));
+ }
+
+ public String getHeader() {
+ return header;
+ }
+ public void setHeader(String header) {
+ this.header = header;
+ }
+ }
+
+ public class Row {
+ String input;
+
+ public String getInput() {
+ return input;
+ }
+
+ public void setInput(String input) {
+ this.input = input;
+ }
+
+ }
+
+ private int rows = 2;
+
+ private int cols = 3;
+
+ private List<Row []> model;
+
+ private List<Column> columns;
+
+ public ColumnsBean() {
+ init();
+ }
+
+ private void init () {
+ columns = new ArrayList<Column>();
+ for (int i = 0; i < cols; i++) {
+ columns.add(new Column("Header" + i));
+ }
+
+ model = new ArrayList<Row[]>();
+ for (int i = 0; i < rows; i++) {
+ Row[] rows = new Row [cols];
+ for (int j=0; j<cols; j++) {
+ rows[j] = new Row();
+ }
+ model.add(rows);
+ }
+ }
+
+ public void reset() {
+ init();
+ status = null;
+ }
+
+ public List<Row[]> getModel() {
+ return model;
+ }
+
+ public void setModel(List<Row[]> model) {
+ this.model = model;
+ }
+
+ public List<Column> getColumns() {
+ return columns;
+ }
+
+ public void setColumns(List<Column> columns) {
+ this.columns = columns;
+ }
+
+ public boolean getCheckInputs() {
+ Iterator<Row[]> it = model.iterator();
+ int row = 0;
+ boolean f = true;
+ while (it.hasNext()) {
+ Row[] r = it.next();
+ for (int i = 0; i < cols; i++) {
+ String e = ROW_PREFIX + row + CELL_PREFIX + i;
+ if (!e.equals(r[i].input)) {
+ f = false;
+ }
+ }
+ row++;
+ }
+ return f;
+ }
+
+ public String getStatus() {
+ return (status != null) ? status : "";
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+
+}
Modified: trunk/test-applications/seleniumTest/richfaces/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/webapp/WEB-INF/faces-config.xml 2009-02-12 17:23:26 UTC (rev 12644)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/webapp/WEB-INF/faces-config.xml 2009-02-12 17:48:48 UTC (rev 12645)
@@ -332,6 +332,11 @@
<managed-bean-name>controlBean</managed-bean-name>
<managed-bean-class>org.ajax4jsf.bean.ComponentControlBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>columnsBean</managed-bean-name>
+ <managed-bean-class>org.ajax4jsf.bean.ColumnsBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/pages/ajaxInclude/step1.xhtml</from-view-id>
Modified: trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/columns/columnsTest.xhtml
===================================================================
(Binary files differ)
Modified: trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/ColumnsTest.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/ColumnsTest.java 2009-02-12 17:23:26 UTC (rev 12644)
+++ trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/ColumnsTest.java 2009-02-12 17:48:48 UTC (rev 12645)
@@ -22,9 +22,12 @@
import org.ajax4jsf.template.Template;
import org.richfaces.SeleniumTestBase;
+import org.testng.Assert;
import org.testng.annotations.Test;
public class ColumnsTest extends SeleniumTestBase {
+
+ static final String RESET_METHOD = "#{columnsBean.reset}";
private static final String DATA_TABLE = "table";
@@ -41,8 +44,78 @@
private static final String BEGIN_ROW = "begin";
private static final String END_ROW = "end";
+
+
+ @Test
+ public void testOutputAndNestedInputsAndCommands(Template template) {
+ renderPage(template, RESET_METHOD);
+
+ int rows = 2;
+ int cols = 3;
+
+ String parentId = getParentId() + "_form:";
+ String tableId = parentId + "table";
+ String submitId = parentId + "submit";
+ assertRowsCount(rows, tableId);
+ assertColumnsCount(cols, tableId, "Columns count is invalid.");
+
+ // Check headers
+ for (int i=0;i<cols;i++) {
+ String header = selenium.getText("//*[@id='"+tableId+"']/thead/tr[1]/th["+(i+1)+"]");
+ if (!("Header" + i).equals(header)) {
+ Assert.fail("Header for columns ["+i+"] was not output to client");
+ }
- @Test
+ }
+
+ for (int i=0; i<rows; i++) {
+ for (int j=0;j<cols;j++) {
+ String inputPath = "//*[@id='"+tableId+"']/tbody/tr["+(i+1)+"]/td["+(j+1)+"]/input[@type='text']";
+ String submitPath = "//*[@id='"+tableId+"']/tbody/tr["+(i+1)+"]/td["+(j+1)+"]/input[@type='submit']";
+ if (selenium.getXpathCount(inputPath).intValue() != 1) {
+ Assert.fail("Input for row["+i+"] cell["+j+"] was not output to client");
+ }
+ if (selenium.getXpathCount(submitPath).intValue() != 1) {
+ Assert.fail("Submit for row["+i+"] cell["+j+"] was not output to client");
+ }
+ String submitValue = selenium.getValue(submitPath);
+ String expectedValue = ("Submit"+j);
+ if (!expectedValue.equals(submitValue)) {
+ Assert.fail("Submit value for row["+i+"] cell["+j+"] is incorrect. Should be: " +expectedValue + "But was: " + submitValue);
+ }
+ }
+ }
+
+ setInputs(tableId, rows, cols);
+ clickCommandAndWait(submitId);
+
+ String checkInputs = getTextById(parentId + "checkInputs");
+ if (!Boolean.TRUE.toString().equals(checkInputs)) {
+ Assert.fail("Set inputs values were not applied to data modal as expected. Nested input dont work");
+ }
+
+ // Click submit button in the first row
+ String submitPath = "//*[@id='"+tableId+"']/tbody/tr[1]/td[1]/input[@type='submit']";
+ selenium.click(submitPath);
+ selenium.waitForPageToLoad("10000");
+
+ String status = getTextById(parentId + "status");
+ if (!"ActionListener0".equals(status)) {
+ Assert.fail("Nested command dont work.");
+ }
+
+ // Click submit button in the first row
+ submitPath = "//*[@id='"+tableId+"']/tbody/tr[2]/td[2]/input[@type='submit']";
+ selenium.click(submitPath);
+ selenium.waitForPageToLoad("10000");
+
+ status = getTextById(parentId + "status");
+ if (!"ActionListener0ActionListener1".equals(status)) {
+ Assert.fail("Nested command dont work.");
+ }
+ }
+
+ // @Test
public void testColumnsComponentLayout(Template template) {
renderPage(template);
writeStatus("Testing columns component layout");
@@ -70,7 +143,7 @@
}
- @Test
+ // @Test
public void testColumnsComponentCoreAttributes(Template template) {
renderPage(template);
@@ -100,7 +173,18 @@
reset();
}
+
+ private void setInputs(String tableId, int rows, int cols) {
+ for (int i=0;i<rows; i++) {
+ for (int j=0; j<cols; j++) {
+ String v = "Row"+i+"Cell"+j;
+ String path = "//*[@id='"+tableId+"']/tbody/tr["+(i+1)+"]/td["+(j+1)+"]/input[@type='text']";
+ selenium.type(path, v);
+ }
+ }
+ }
+
private void adjustTableParams(int rows, int columns, int begin, int end) {
String ctrlForm = getParentId() + CTRL_FORM;
type(ctrlForm + ":rows", String.valueOf(rows));
@@ -113,7 +197,8 @@
private void reset() {
clickAjaxCommandAndWait(getParentId() + CTRL_FORM + ":reset");
}
-
+
+
@Override
public String getTestUrl() {
return "pages/columns/columnsTest.xhtml";
15 years, 3 months
JBoss Rich Faces SVN: r12644 - trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng.
by richfaces-svn-commits@lists.jboss.org
Author: konstantin.mishin
Date: 2009-02-12 12:23:26 -0500 (Thu, 12 Feb 2009)
New Revision: 12644
Modified:
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/ComboBoxTest.java
Log:
RF-6065
Modified: trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/ComboBoxTest.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/ComboBoxTest.java 2009-02-12 16:06:24 UTC (rev 12643)
+++ trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/ComboBoxTest.java 2009-02-12 17:23:26 UTC (rev 12644)
@@ -169,6 +169,23 @@
Assert.assertEquals(selenium.getText(message), "Value mustn't be equal 44.");
}
+ /**
+ * The same as for RF-6064 but for the case of validation failure.
+ * Submitted value should be output back unchanged after submit
+ */
+ @Test
+ public void testValidationFailure(Template template) {
+ init(template);
+ Assert.assertEquals(selenium.getText(value), "");
+ Assert.assertEquals(selenium.getText(message), "");
+ selenium.click(comboboxButton);
+ selenium.mouseMove("xpath=id('" + list + "')/span[4]");
+ selenium.click("xpath=id('" + list + "')/span[4]");
+ clickAjaxCommandAndWait(submit);
+ Assert.assertEquals(selenium.getText(value), "");
+ Assert.assertEquals(selenium.getText(message), "Value mustn't be equal 44.");
+ }
+
public String getTestUrl() {
return "pages/comboBox/comboBoxTest.xhtml";
}
15 years, 3 months