Revision: 830
http://jwebunit.svn.sourceforge.net/jwebunit/?rev=830&view=rev
Author: jevonwright
Date: 2010-04-02 03:42:16 +0000 (Fri, 02 Apr 2010)
Log Message:
-----------
adding an implementation of equals() and hashCode() for HtmlUnitElementImpl
Modified Paths:
--------------
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/IElementTest.java
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/api/IElement.java
trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitElementImpl.java
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
2010-03-17 00:25:09 UTC (rev 829)
+++
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/IElementTest.java
2010-04-02 03:42:16 UTC (rev 830)
@@ -214,4 +214,38 @@
assertEquals(preceding.getAttribute("name"), "element_name");
}
+ /**
+ * Test that {...@link IElement#equals(Object)} is implemented
+ * correctly.
+ *
+ */
+ public void testIElementEquals() {
+
+ // through getElementById
+ IElement container1 = getElementById("container");
+
+ // through IElement.getElement
+ IElement span = getElementByXPath("//sp...@class='inline']");
+ IElement container2 = span.getElement("..");
+
+ // through getByXPath
+ IElement container3 = null;
+ for (IElement e : getElementsByXPath("//div")) {
+ if ("container".equals(e.getAttribute("id"))) {
+ container3 = e;
+ }
+ }
+
+ // should have found all of these
+ assertNotNull(container1);
+ assertNotNull(container2);
+ assertNotNull(container3);
+
+ // check equality
+ assertEquals(container1, container2);
+ assertEquals(container2, container3);
+ assertEquals(container1, container3);
+
+ }
+
}
Modified:
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/api/IElement.java
===================================================================
---
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/api/IElement.java
2010-03-17 00:25:09 UTC (rev 829)
+++
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/api/IElement.java
2010-04-02 03:42:16 UTC (rev 830)
@@ -89,4 +89,14 @@
*/
public void setTextContent(String value);
+ /**
+ * Two {...@link IElement}s are equal if they
+ * refer to the same element in the current page.
+ *
+ * @param obj the object to compare
+ * @return <code>true</code> if the object is an {...@link IElement},
and refers to the same
+ * element as this {...@link IElement}
+ */
+ public boolean equals(Object obj);
+
}
Modified:
trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitElementImpl.java
===================================================================
---
trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitElementImpl.java
2010-03-17 00:25:09 UTC (rev 829)
+++
trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitElementImpl.java
2010-04-02 03:42:16 UTC (rev 830)
@@ -149,4 +149,29 @@
}
}
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((element == null) ? 0 :
element.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ final HtmlUnitElementImpl other = (HtmlUnitElementImpl) obj;
+ if (element == null) {
+ if (other.element != null)
+ return false;
+ } else if (!element.equals(other.element))
+ return false;
+ return true;
+ }
+
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
JWebUnit-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jwebunit-development