[JWebUnit-development] SF.net SVN: jwebunit:[976] trunk
Brought to you by:
henryju
|
From: <jev...@us...> - 2014-03-17 23:23:28
|
Revision: 976
http://sourceforge.net/p/jwebunit/code/976
Author: jevonwright
Date: 2014-03-17 23:23:25 +0000 (Mon, 17 Mar 2014)
Log Message:
-----------
Adding methods hasElementById(), hasElementByXPath(), hasElementsByXPath() so one can test for elements without having to catch AssertionErrors as per getElementById() etc.
Modified Paths:
--------------
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/IElementTest.java
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java
Property Changed:
----------------
trunk/
Index: trunk
===================================================================
--- trunk 2014-03-17 11:04:26 UTC (rev 975)
+++ trunk 2014-03-17 23:23:25 UTC (rev 976)
Property changes on: trunk
___________________________________________________________________
Modified: svn:ignore
## -1,3 +1,4 ##
target
.project
.settings
+bin
Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/IElementTest.java
===================================================================
--- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/IElementTest.java 2014-03-17 11:04:26 UTC (rev 975)
+++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/IElementTest.java 2014-03-17 23:23:25 UTC (rev 976)
@@ -18,22 +18,8 @@
*/
package net.sourceforge.jwebunit.tests;
-import static net.sourceforge.jwebunit.junit.JWebUnit.assertCommentNotPresent;
-import static net.sourceforge.jwebunit.junit.JWebUnit.assertCommentPresent;
-import static net.sourceforge.jwebunit.junit.JWebUnit.assertElementPresent;
-import static net.sourceforge.jwebunit.junit.JWebUnit.assertFormElementPresent;
-import static net.sourceforge.jwebunit.junit.JWebUnit.assertMatch;
-import static net.sourceforge.jwebunit.junit.JWebUnit.assertNotMatch;
-import static net.sourceforge.jwebunit.junit.JWebUnit.assertTextFieldEquals;
-import static net.sourceforge.jwebunit.junit.JWebUnit.beginAt;
-import static net.sourceforge.jwebunit.junit.JWebUnit.getElementById;
-import static net.sourceforge.jwebunit.junit.JWebUnit.getElementByXPath;
-import static net.sourceforge.jwebunit.junit.JWebUnit.getElementsByXPath;
-import static net.sourceforge.jwebunit.junit.JWebUnit.setBaseUrl;
-import static net.sourceforge.jwebunit.junit.JWebUnit.setTextField;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
+import static net.sourceforge.jwebunit.junit.JWebUnit.*;
+import static org.junit.Assert.*;
import java.util.Date;
import java.util.List;
@@ -65,8 +51,23 @@
assertEquals(element.getAttribute("id"), "test");
assertEquals(element.getAttribute("value"), "test3");
}
+
+ @Test
+ public void testSimpleHasID() {
+ assertTrue(hasElementById("test"));
+ }
@Test
+ public void testSimpleHasXPath() {
+ assertTrue(hasElementByXPath("//input[@id='test']"));
+ }
+
+ @Test
+ public void testSimpleHasXPaths() {
+ assertTrue(hasElementsByXPath("//input[@id='test']"));
+ }
+
+ @Test
public void testMissing() {
// a missing element should throw an exception
try {
@@ -77,6 +78,21 @@
}
}
+ @Test
+ public void testMissingHasID() {
+ assertFalse(hasElementById("test2"));
+ }
+
+ @Test
+ public void testMissingHasXPath() {
+ assertFalse(hasElementByXPath("//input[@id='test2']"));
+ }
+
+ @Test
+ public void testMissingHasXPaths() {
+ assertFalse(hasElementsByXPath("//input[@id='test2']"));
+ }
+
/**
* Test parent, child methods
*/
Modified: trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java
===================================================================
--- trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java 2014-03-17 11:04:26 UTC (rev 975)
+++ trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java 2014-03-17 23:23:25 UTC (rev 976)
@@ -2737,6 +2737,16 @@
return getTestingEngine().getElementByXPath(xpath);
}
+ /**
+ * Return {@code true} if the given element by XPath exists.
+ *
+ * @param xpath XPath to search
+ * @return {@code true} if the the requested element
+ * @throws AssertionError if the element xpath is not found
+ */
+ public boolean hasElementByXPath(String xpath) {
+ return getTestingEngine().getElementByXPath(xpath) != null;
+ }
/**
* Get an element for a particular ID.
@@ -2749,6 +2759,16 @@
assertElementPresent(id);
return getTestingEngine().getElementByID(id);
}
+
+ /**
+ * Returns {@code true} if an element with the given ID exists.
+ *
+ * @param id element ID to find
+ * @return {@code true} if the element ID exists, {@code false} otherwise
+ */
+ public boolean hasElementById(String id) {
+ return getTestingEngine().getElementByID(id) != null;
+ }
/**
* Get elements for a particular xpath.
@@ -2760,6 +2780,17 @@
return getTestingEngine().getElementsByXPath(xpath);
}
+ /**
+ * Return {@code true} if the given elements by XPath exists.
+ *
+ * @param xpath XPath to search
+ * @return {@code true} if the given elements by XPath exist
+ */
+ public boolean hasElementsByXPath(String xpath) {
+ List<IElement> list = getTestingEngine().getElementsByXPath(xpath);
+ return list != null && !list.isEmpty();
+ }
+
// label methods
/**
* Assert a label for a given ID exists.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|