Author: bombe
Date: 2007-10-14 21:00:40 +0000 (Sun, 14 Oct 2007)
New Revision: 15446
Added:
trunk/freenet/src/freenet/support/XMLCharacterClasses.java
Modified:
trunk/freenet/src/freenet/support/HTMLNode.java
trunk/freenet/test/freenet/support/HTMLNodeTest.java
Log:
make test cases for HTMLNode run again
fix some inconsistencies in both HTMLNode and HTMLNodeTest
Modified: trunk/freenet/src/freenet/support/HTMLNode.java
===================================================================
--- trunk/freenet/src/freenet/support/HTMLNode.java 2007-10-12 07:20:20 UTC
(rev 15445)
+++ trunk/freenet/src/freenet/support/HTMLNode.java 2007-10-14 21:00:40 UTC
(rev 15446)
@@ -11,9 +11,9 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-public class HTMLNode {
+public class HTMLNode implements XMLCharacterClasses {
- private static final Pattern namePattern =
Pattern.compile("^[a-zA-Z][a-zA-Z_0-9]+$");
+ private static final Pattern namePattern = Pattern.compile("^[" + NAME
+ "]*$");
protected final String name;
@@ -42,18 +42,21 @@
public HTMLNode(String name, String[] attributeNames, String[]
attributeValues, String content) {
Matcher nameMatcher = namePattern.matcher(name);
- if (!nameMatcher.matches() && !"#".equals(name) &&
!"%".equals(name)) {
- throw new IllegalArgumentException("name must start
with letter and may only contain letters, digits, and underscore");
+ if ((name == null) || (!"#".equals(name) && !"%".equals(name)
&& !nameMatcher.matches())) {
+ throw new IllegalArgumentException("element name is not
legal");
}
- this.name = name.toLowerCase(Locale.ENGLISH);
if ((attributeNames != null) && (attributeValues != null)) {
if (attributeNames.length != attributeValues.length) {
- throw new IllegalArgumentException("attribute
names and values differ");
+ throw new IllegalArgumentException("attribute
names and values differ in length");
}
for (int attributeIndex = 0, attributeCount =
attributeNames.length; attributeIndex < attributeCount; attributeIndex++) {
+ if ((attributeNames[attributeIndex] == null) ||
!namePattern.matcher(attributeNames[attributeIndex]).matches()) {
+ throw new
IllegalArgumentException("attributeName is not legal");
+ }
addAttribute(attributeNames[attributeIndex],
attributeValues[attributeIndex]);
}
}
+ this.name = name.toLowerCase(Locale.ENGLISH);
if (content != null && !name.equals("#") && !name.equals("%")) {
addChild(new HTMLNode("#", content));
this.content = null;
Added: trunk/freenet/src/freenet/support/XMLCharacterClasses.java
===================================================================
--- trunk/freenet/src/freenet/support/XMLCharacterClasses.java
(rev 0)
+++ trunk/freenet/src/freenet/support/XMLCharacterClasses.java 2007-10-14
21:00:40 UTC (rev 15446)
@@ -0,0 +1,63 @@
+/*
+ * freenet - XMLCharacterClasses.java Copyright ? 2007 David Roden
+ *
+ * This program is free software; you can redistribute it and/or modify it
under
+ * the terms of the GNU General Public License as published by the Free
Software
+ * Foundation; either version 2 of the License, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+ * Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+package freenet.support;
+
+import java.util.regex.Matcher;
+
+/**
+ * This class contains various character classes from the <a
+ * href="http://www.w3.org/TR/REC-xml/">XML 1.0 specification, 4th edition</a>.
+ *
+ * The constants in this class are written in a form that allows easy
conclusion
+ * in a {@link Matcher} pattern within square parantheses (<code>'['</code>
+ * and <code>']'</code>).
+ *
+ * @author David Roden <bombe at freenetproject.org>
+ * @version $Id$
+ */
+public interface XMLCharacterClasses {
+
+ /** [89] Extender. */
+ public static final String EXTENDER =
"\u00b7\u02d0\u02d1\u0387\u0640\u0e46\u0ec6\u3005\u3031-\u3035\u309d-\u309e\u30fc-\u30fe";
+
+ /** [88] Letter. */
+ public static final String DIGIT =
"\u0030-\u0039\u0660-\u0669\u06f0-\u06f9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be7-\u0bef\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29";
+
+ /** [87] CombiningChar */
+ public static final String COMBINING_CHAR =
"\u0300-\u0345\u0360-\u0361\u0483-\u0486\u0591-\u05a1\u05a3-\u05b9\u05bb-\u05bd\u05bf\u05c1-\u05c2\u05c4\u064b-\u0652\u0670\u06d6-\u06dc\u06dd-\u06df\u06e0-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0901-\u0903\u093c\u093e-\u094c\u094d\u0951-\u0954\u0962-\u0963\u0981-\u0983\u09bc\u09be\u09bf\u09c0-\u09c4\u09c7-\u09c8\u09cb-\u09cd\u09d7\u09e2-\u09e3\u0a02\u0a3c\u0a3e\u0a3f\u0a40-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a70-\u0a71\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0b01-\u0b03\u0b3c\u0b3e-\u0b43\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b82-\u0b83\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c82-\u0c83\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0d02-\u0d03\u0d3e-\u0d43\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86-\u0f8b\u0f90-\u0f95\u0f97\u0f99-\u0fad\u0fb1-\u0fb7\u0fb9\u20d0-\u20dc\u20e1\u302a-\u302f\u3099\u309a";
+
+ /** [86] Ideographic */
+ public static final String IDEOGRAPHIC =
"\u4e00-\u9fa5\u3007\u3021-\u3029";
+
+ /** [85] BaseChar */
+ public static final String BASE_CHAR =
"\u0041-\u005a\u0061-\u007a\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u00ff\u0100-\u0131\u0134-\u013e\u0141-\u0148\u014a-\u017e\u0180-\u01c3\u01cd-\u01f0\u01f4-\u01f5\u01fa-\u0217\u0250-\u02a8\u02bb-\u02c1\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03ce\u03d0-\u03d6\u03da\u03dc\u03de\u03e0\u03e2-\u03f3\u0401-\u040c\u040e-\u044f\u0451-\u045c\u045e-\u0481\u0490-\u04c4\u04c7-\u04c8\u04cb-\u04cc\u04d0-\u04eb\u04ee-\u04f5\u04f8-\u04f9\u0531-\u0556\u0559\u0561-\u0586\u05d0-\u05ea\u05f0-\u05f2\u0621-\u063a\u0641-\u064a\u0671-\u06b7\u06ba-\u06be\u06c0-\u06ce\u06d0-\u06d3\u06d5\u06e5-\u06e6\u0905-\u0939\u093d\u0958-\u0961\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8b\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ae0\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b36-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb5\u0bb7-\u0bb9\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c60-\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cde\u0ce0-\u0ce1\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d28\u0d2a-\u0d39\u0d60-\u0d61\u0e01-\u0e2e\u0e30\u0e32-\u0e33\u0e40-\u0e45\u0e81-\u0e82\u0e84\u0e87-\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa-\u0eab\u0ead-\u0eae\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0f40-\u0f47\u0f49-\u0f69\u10a0-\u10c5\u10d0-\u10f6\u1100\u1102-\u1103\u1105-\u1107\u1109\u110b-\u110c\u110e-\u1112\u113c\u113e\u1140\u114c\u114e\u1150\u1154-\u1155\u1159\u115f-\u1161\u1163\u1165\u1167\u1169\u116d-\u116e\u1172-\u1173\u1175\u119e\u11a8\u11ab\u11ae-\u11af\u11b7-\u11b8\u11ba\u11bc-\u11c2\u11eb\u11f0\u11f9\u1e00-\u1e9b\u1ea0-\u1ef9\u1f00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2126\u212a-\u212b\u212e\u2180-\u2182\u3041-\u3094\u30a1-\u30fa\u3105-\u312c\uac00-\ud7a3";
+
+ /** [84] Letter. */
+ public static final String LETTER = BASE_CHAR + IDEOGRAPHIC;
+
+ /**
+ * [4] NameChar - due to regex rules this must be the first expression
+ * within square parantheses
+ */
+ public static final String NAME_CHAR = "-" + LETTER + DIGIT + "." + "_"
+ ":" + COMBINING_CHAR + EXTENDER;
+
+ /** [5] Name. */
+ public static final String NAME = LETTER + "_" + ":" + "][" + NAME_CHAR;
+
+}
Property changes on: trunk/freenet/src/freenet/support/XMLCharacterClasses.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: trunk/freenet/test/freenet/support/HTMLNodeTest.java
===================================================================
--- trunk/freenet/test/freenet/support/HTMLNodeTest.java 2007-10-12
07:20:20 UTC (rev 15445)
+++ trunk/freenet/test/freenet/support/HTMLNodeTest.java 2007-10-14
21:00:40 UTC (rev 15446)
@@ -28,12 +28,18 @@
private HTMLNode exampleNode;
- //example node name that includes a not ASCII char [Greek alpha]
- private static final String SAMPLE_NODE_NAME = "s\u03b1mpleNode";
+ /** Example node name in ASCII only. */
+ private static final String SAMPLE_OKAY_NODE_NAME = "sampleNode";
- //example node attribute that includes a not ASCII char [Greek beta]
- private static final String SAMPLE_ATTRIBUTE_NAME =
"sampleAttri\u03b2uteName";
+ /** Example node name that includes an invalid char. */
+ private static final String SAMPLE_WRONG_NODE_NAME = "s\u03a2mpleNode";
+ /* example node attribute in ASCII only. */
+ private static final String SAMPLE_OKAY_ATTRIBUTE_NAME =
"sampleAttributeName";
+
+ /** Example attribute name that includes an invalid char. */
+ private static final String SAMPLE_WRONG_ATTRIBUTE_NAME =
"s\u03a2mpleAttributeName";
+
//example node attribute value that includes a not ASCII char [Greek
epsilon]
private static final String SAMPLE_ATTRIBUTE_VALUE =
"sampleAttribut\u03b5Value";
@@ -42,22 +48,46 @@
protected void setUp() throws Exception {
super.setUp();
- exampleNode = new HTMLNode(SAMPLE_NODE_NAME);
+ exampleNode = null;
+ try {
+ exampleNode = new HTMLNode(SAMPLE_OKAY_NODE_NAME);
+ } catch (IllegalArgumentException iae1) {
+ fail("Unexpected exception thrown!");
+ }
+ assertNotNull(exampleNode);
+ assertEquals(0, exampleNode.children.size());
}
/**
* Tests HTMLNode(String,String,String,String) constructor
* using non-ASCII chars
*/
- public void testNotAsciiHTMLNode_StringStringStringString() {
- HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_NODE_NAME,
- SAMPLE_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE,
- SAMPLE_NODE_CONTENT);
- assertFalse(exampleNode.children.contains(methodHTMLNode));
- exampleNode.addChild(methodHTMLNode);
- assertTrue(exampleNode.children.contains(methodHTMLNode));
+ public void testHTMLNode_StringStringStringString_WrongNodeName() {
+ try {
+ new HTMLNode(SAMPLE_WRONG_NODE_NAME,
SAMPLE_OKAY_ATTRIBUTE_NAME, SAMPLE_ATTRIBUTE_VALUE, SAMPLE_NODE_CONTENT);
+ fail("Expected exception not thrown!");
+ } catch (IllegalArgumentException iae1) {
+ }
+ try {
+ new HTMLNode(SAMPLE_OKAY_NODE_NAME,
SAMPLE_OKAY_ATTRIBUTE_NAME, SAMPLE_ATTRIBUTE_VALUE, SAMPLE_NODE_CONTENT);
+ } catch (IllegalArgumentException iae1) {
+ fail("Unexpected exception thrown!");
+ }
}
+ public void testHTMLNode_StringStringStringString_WrongAttributeName() {
+ try {
+ new HTMLNode(SAMPLE_OKAY_NODE_NAME,
SAMPLE_WRONG_ATTRIBUTE_NAME, SAMPLE_ATTRIBUTE_VALUE, SAMPLE_NODE_CONTENT);
+ fail("Expected exception not thrown!");
+ } catch (IllegalArgumentException iae1) {
+ }
+ try {
+ new HTMLNode(SAMPLE_OKAY_NODE_NAME,
SAMPLE_OKAY_ATTRIBUTE_NAME, SAMPLE_ATTRIBUTE_VALUE, SAMPLE_NODE_CONTENT);
+ } catch (IllegalArgumentException iae1) {
+ fail("Unexpected exception thrown!");
+ }
+ }
+
/**
* Tests HTMLNode(String,String[],String[],String) constructor
* verifying if all attributes are correctly inserted
@@ -67,10 +97,10 @@
String[] methodAttributesName = new String[size];
String[] methodAttributesValue = new String[size];
for (int i=0;i<size;i++) {
- methodAttributesName[i] = "AttributeName " + i;
+ methodAttributesName[i] = "AttributeName" + i;
methodAttributesValue[i] = "Value " + i;
}
- HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_NODE_NAME,
+ HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_OKAY_NODE_NAME,
methodAttributesName,methodAttributesValue,
SAMPLE_NODE_CONTENT);
//checks presence
@@ -116,9 +146,9 @@
* child. The method should rise an exception
*/
public void testAddChildrenUsingTheNodeItselfAsChild() {
- HTMLNode[] methodHTMLNodesArray = {new
HTMLNode(SAMPLE_NODE_NAME),
+ HTMLNode[] methodHTMLNodesArray = {new
HTMLNode(SAMPLE_OKAY_NODE_NAME),
exampleNode,
-
new HTMLNode(SAMPLE_NODE_NAME+"1")};
+
new HTMLNode(SAMPLE_OKAY_NODE_NAME+"1")};
try {
exampleNode.addChildren(methodHTMLNodesArray);
fail("Expected Exception Error Not Thrown!"); }
@@ -135,7 +165,7 @@
public void testAddChildSameName() {
int times = 100;
for (int i = 1; i<=times; i++) {
- exampleNode.addChild(SAMPLE_NODE_NAME);
+ exampleNode.addChild(SAMPLE_OKAY_NODE_NAME);
assertEquals(exampleNode.children.size(),i);
}
}
@@ -147,7 +177,7 @@
* It should raise an IllegalArgument exception.
*/
public void testAddChildSameObject() {
- HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_NODE_NAME);
+ HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_OKAY_NODE_NAME);
exampleNode.addChild(methodHTMLNode);
try {
exampleNode.addChild(methodHTMLNode);
@@ -162,7 +192,7 @@
* the same HTMLNode instance two times.
*/
public void testAddChildrenSameObject() {
- HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_NODE_NAME);
+ HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_OKAY_NODE_NAME);
HTMLNode[] methodHTMLNodesArray = {methodHTMLNode,
methodHTMLNode};
try {
@@ -178,13 +208,13 @@
* and if it generates good output using generate() method.
*/
public void testAddChild_StringStringString() {
- HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_NODE_NAME);
- methodHTMLNode.addChild(SAMPLE_NODE_NAME,
- SAMPLE_ATTRIBUTE_NAME, SAMPLE_ATTRIBUTE_VALUE);
+ HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_OKAY_NODE_NAME);
+ methodHTMLNode.addChild(SAMPLE_OKAY_NODE_NAME,
+ SAMPLE_OKAY_ATTRIBUTE_NAME,
SAMPLE_ATTRIBUTE_VALUE);
List childrenList = methodHTMLNode.children;
assertEquals(1,childrenList.size());
- assertEquals(generateNoContentNodeOutput(SAMPLE_NODE_NAME,
- SAMPLE_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE),
+ assertEquals(generateNoContentNodeOutput(SAMPLE_OKAY_NODE_NAME,
+
SAMPLE_OKAY_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE),
((HTMLNode)childrenList.get(0)).generate());
}
@@ -194,14 +224,14 @@
* and if it generates good output using generate() method.
*/
public void testAddChild_StringStringStringString() {
- HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_NODE_NAME);
- methodHTMLNode.addChild(SAMPLE_NODE_NAME,
- SAMPLE_ATTRIBUTE_NAME, SAMPLE_ATTRIBUTE_VALUE,
+ HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_OKAY_NODE_NAME);
+ methodHTMLNode.addChild(SAMPLE_OKAY_NODE_NAME,
+ SAMPLE_OKAY_ATTRIBUTE_NAME,
SAMPLE_ATTRIBUTE_VALUE,
SAMPLE_NODE_CONTENT);
List childrenList = methodHTMLNode.children;
assertEquals(1,childrenList.size());
- assertEquals(generateFullNodeOutput(SAMPLE_NODE_NAME,
- SAMPLE_ATTRIBUTE_NAME, SAMPLE_ATTRIBUTE_VALUE,
+ assertEquals(generateFullNodeOutput(SAMPLE_OKAY_NODE_NAME,
+ SAMPLE_OKAY_ATTRIBUTE_NAME,
SAMPLE_ATTRIBUTE_VALUE,
SAMPLE_NODE_CONTENT),
((HTMLNode)childrenList.get(0)).generate());
}
@@ -214,8 +244,8 @@
public void testAddChild_StringArrayArray() {
String[] methodAttributesNamesArray =
{"firstName","secondName","thirdName"};
String[] methodAttributesValuesArray =
{"firstValue","secondValue","thirdValue"};
- HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_NODE_NAME);
- methodHTMLNode.addChild(SAMPLE_NODE_NAME,
+ HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_OKAY_NODE_NAME);
+ methodHTMLNode.addChild(SAMPLE_OKAY_NODE_NAME,
methodAttributesNamesArray,
methodAttributesValuesArray);
testSingleChildAttributes(methodHTMLNode,
methodAttributesNamesArray,
methodAttributesValuesArray);
@@ -229,8 +259,8 @@
public void testAddChild_StringArrayArrayString() {
String[] methodAttributesNamesArray =
{"firstName","secondName","thirdName"};
String[] methodAttributesValuesArray =
{"firstValue","secondValue","thirdValue"};
- HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_NODE_NAME);
- methodHTMLNode.addChild(SAMPLE_NODE_NAME,
+ HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_OKAY_NODE_NAME);
+ methodHTMLNode.addChild(SAMPLE_OKAY_NODE_NAME,
methodAttributesNamesArray,
methodAttributesValuesArray,
SAMPLE_NODE_CONTENT);
testSingleChildAttributes(methodHTMLNode,
@@ -259,10 +289,10 @@
* "%" named nodes
*/
public void testGetContent() {
- HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_NODE_NAME);
+ HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_OKAY_NODE_NAME);
assertNull(methodHTMLNode.getContent());
- methodHTMLNode = new
HTMLNode(SAMPLE_NODE_NAME,SAMPLE_NODE_CONTENT);
+ methodHTMLNode = new
HTMLNode(SAMPLE_OKAY_NODE_NAME,SAMPLE_NODE_CONTENT);
//since the HTMLNode name is not "#", or "%",
//the content will be a new child with the "#" name
assertEquals(SAMPLE_NODE_CONTENT,
@@ -283,15 +313,15 @@
* "%" named nodes
*/
public void testGetAttribute() {
- HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_NODE_NAME);
- assertNull(methodHTMLNode.getAttribute(SAMPLE_ATTRIBUTE_NAME));
+ HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_OKAY_NODE_NAME);
+
assertNull(methodHTMLNode.getAttribute(SAMPLE_OKAY_ATTRIBUTE_NAME));
- methodHTMLNode = new
HTMLNode(SAMPLE_NODE_NAME,SAMPLE_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE);
-
assertEquals(SAMPLE_ATTRIBUTE_VALUE,methodHTMLNode.getAttribute(SAMPLE_ATTRIBUTE_NAME));
- methodHTMLNode = new
HTMLNode("#",SAMPLE_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE);
-
assertEquals(SAMPLE_ATTRIBUTE_VALUE,methodHTMLNode.getAttribute(SAMPLE_ATTRIBUTE_NAME));
- methodHTMLNode = new
HTMLNode("%",SAMPLE_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE);
-
assertEquals(SAMPLE_ATTRIBUTE_VALUE,methodHTMLNode.getAttribute(SAMPLE_ATTRIBUTE_NAME));
+ methodHTMLNode = new
HTMLNode(SAMPLE_OKAY_NODE_NAME,SAMPLE_OKAY_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE);
+
assertEquals(SAMPLE_ATTRIBUTE_VALUE,methodHTMLNode.getAttribute(SAMPLE_OKAY_ATTRIBUTE_NAME));
+ methodHTMLNode = new
HTMLNode("#",SAMPLE_OKAY_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE);
+
assertEquals(SAMPLE_ATTRIBUTE_VALUE,methodHTMLNode.getAttribute(SAMPLE_OKAY_ATTRIBUTE_NAME));
+ methodHTMLNode = new
HTMLNode("%",SAMPLE_OKAY_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE);
+
assertEquals(SAMPLE_ATTRIBUTE_VALUE,methodHTMLNode.getAttribute(SAMPLE_OKAY_ATTRIBUTE_NAME));
}
/**
@@ -303,7 +333,7 @@
int attributesNumber = 100;
String methodAttributeName = "";
String counterString = "";
- HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_NODE_NAME);
+ HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_OKAY_NODE_NAME);
for (int i=0; i<attributesNumber; i++) {
counterString = String.valueOf(i);
methodAttributeName = "attribute " + counterString;
@@ -321,7 +351,7 @@
* IllegalArgument exception
*/
public void testAddAttribute_nullAttributeName() {
- HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_NODE_NAME);
+ HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_OKAY_NODE_NAME);
try {
methodHTMLNode.addAttribute(null,SAMPLE_ATTRIBUTE_VALUE);
fail("Expected Exception Error Not Thrown!"); }
@@ -336,9 +366,9 @@
* IllegalArgument exception
*/
public void testAddAttribute_nullAttributeValue() {
- HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_NODE_NAME);
+ HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_OKAY_NODE_NAME);
try {
- methodHTMLNode.addAttribute(SAMPLE_ATTRIBUTE_NAME,null);
+
methodHTMLNode.addAttribute(SAMPLE_WRONG_ATTRIBUTE_NAME,null);
fail("Expected Exception Error Not Thrown!"); }
catch (IllegalArgumentException anException) {
assertNotNull(anException); }
@@ -352,14 +382,14 @@
*/
public void testHTMLNode_nullAttributeName() {
try {
- new HTMLNode(SAMPLE_NODE_NAME,
+ new HTMLNode(SAMPLE_OKAY_NODE_NAME,
null,SAMPLE_ATTRIBUTE_VALUE,
SAMPLE_NODE_CONTENT);
fail("Expected Exception Error Not Thrown!"); }
catch (IllegalArgumentException anException) {
assertNotNull(anException); }
try {
- new HTMLNode(SAMPLE_NODE_NAME,
+ new HTMLNode(SAMPLE_OKAY_NODE_NAME,
null,SAMPLE_ATTRIBUTE_VALUE);
fail("Expected Exception Error Not Thrown!"); }
catch (IllegalArgumentException anException) {
@@ -374,15 +404,15 @@
*/
public void testHTMLNode_nullAttributeValue() {
try {
- new HTMLNode(SAMPLE_NODE_NAME,
- SAMPLE_ATTRIBUTE_NAME,null,
+ new HTMLNode(SAMPLE_OKAY_NODE_NAME,
+ SAMPLE_WRONG_ATTRIBUTE_NAME,null,
SAMPLE_NODE_CONTENT);
fail("Expected Exception Error Not Thrown!"); }
catch (IllegalArgumentException anException) {
assertNotNull(anException); }
try {
- new HTMLNode(SAMPLE_NODE_NAME,
- SAMPLE_ATTRIBUTE_NAME,null);
+ new HTMLNode(SAMPLE_OKAY_NODE_NAME,
+ SAMPLE_WRONG_ATTRIBUTE_NAME,null);
fail("Expected Exception Error Not Thrown!"); }
catch (IllegalArgumentException anException) {
assertNotNull(anException); }
@@ -408,8 +438,8 @@
* IllegalArgument exception
*/
public void testHTMLNodeArray_nullAttributeValue() {
- String[] methodAttributesNameArray = {SAMPLE_ATTRIBUTE_NAME,
- SAMPLE_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_NAME};
+ String[] methodAttributesNameArray =
{SAMPLE_WRONG_ATTRIBUTE_NAME,
+
SAMPLE_WRONG_ATTRIBUTE_NAME,SAMPLE_WRONG_ATTRIBUTE_NAME};
String[] methodAttributesValueArray = {"first",null,"after"};
testHTMLNodeArray_null(methodAttributesNameArray,
methodAttributesValueArray);
}
@@ -422,8 +452,8 @@
* IllegalArgument exception
*/
public void testHTMLNode_attributeArrays_differentLengths() {
- String[] methodAttributesNameArray = {SAMPLE_ATTRIBUTE_NAME,
- SAMPLE_ATTRIBUTE_NAME};
+ String[] methodAttributesNameArray =
{SAMPLE_WRONG_ATTRIBUTE_NAME,
+ SAMPLE_WRONG_ATTRIBUTE_NAME};
String[] methodAttributesValueArray = {SAMPLE_ATTRIBUTE_VALUE,
SAMPLE_ATTRIBUTE_VALUE,SAMPLE_ATTRIBUTE_VALUE};
testHTMLNodeArray_null(methodAttributesNameArray,
methodAttributesValueArray);
@@ -438,7 +468,7 @@
*/
private void testHTMLNodeArray_null(String[] attributesNames, String[]
attributesValues) {
try {
- new HTMLNode(SAMPLE_NODE_NAME,
+ new HTMLNode(SAMPLE_OKAY_NODE_NAME,
attributesNames,attributesValues,
SAMPLE_NODE_CONTENT);
fail("Expected Exception Error Not Thrown!"); }
@@ -469,9 +499,9 @@
String[] nodeNamesArray = {"textarea","div","a"};
for(int i=0;i<nodeNamesArray.length;i++) {
methodHTMLNode = new HTMLNode(nodeNamesArray[i],
-
SAMPLE_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE);
+
SAMPLE_OKAY_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE);
assertEquals(generateFullNodeOutput(nodeNamesArray[i],
-
SAMPLE_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE,""),
+
SAMPLE_OKAY_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE,""),
methodHTMLNode.generate());
}
}
@@ -486,23 +516,23 @@
HTMLNode methodHTMLNode;
String[] nodeNamesArray = {"div","form","input",
"script","table","tr","td"};
- HTMLNode methodChildNode = new HTMLNode(SAMPLE_NODE_NAME,
- SAMPLE_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE,
+ HTMLNode methodChildNode = new HTMLNode(SAMPLE_OKAY_NODE_NAME,
+
SAMPLE_OKAY_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE,
SAMPLE_NODE_CONTENT);
for(int i=0;i<nodeNamesArray.length;i++) {
methodHTMLNode = new HTMLNode(nodeNamesArray[i],
-
SAMPLE_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE,
+
SAMPLE_OKAY_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE,
SAMPLE_NODE_CONTENT);
methodHTMLNode.addChild(methodChildNode);
assertEquals(("<"+nodeNamesArray[i]+" ").toLowerCase()
+
- SAMPLE_ATTRIBUTE_NAME + "=" +
+ SAMPLE_OKAY_ATTRIBUTE_NAME + "=" +
"\""+SAMPLE_ATTRIBUTE_VALUE+"\">" +
'\n' +
SAMPLE_NODE_CONTENT +
//child
-
generateFullNodeOutput(SAMPLE_NODE_NAME,
-
SAMPLE_ATTRIBUTE_NAME, SAMPLE_ATTRIBUTE_VALUE,
+
generateFullNodeOutput(SAMPLE_OKAY_NODE_NAME,
+
SAMPLE_OKAY_ATTRIBUTE_NAME, SAMPLE_ATTRIBUTE_VALUE,
SAMPLE_NODE_CONTENT) +
("</"+nodeNamesArray[i]+">").toLowerCase() + '\n',
@@ -517,8 +547,8 @@
* <node_name />
*/
public void testGenerate_fromHTMLNode_String() {
- HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_NODE_NAME);
- assertEquals(("<"+SAMPLE_NODE_NAME+" />").toLowerCase(),
+ HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_OKAY_NODE_NAME);
+ assertEquals(("<"+SAMPLE_OKAY_NODE_NAME+" />").toLowerCase(),
methodHTMLNode.generate());
}
@@ -529,10 +559,10 @@
* <node_name>Node_Content</node_name>
*/
public void testGenerate_fromHTMLNode_StringString() {
- HTMLNode methodHTMLNode = new
HTMLNode(SAMPLE_NODE_NAME,SAMPLE_NODE_CONTENT);
- assertEquals(("<"+SAMPLE_NODE_NAME+">").toLowerCase() +
+ HTMLNode methodHTMLNode = new
HTMLNode(SAMPLE_OKAY_NODE_NAME,SAMPLE_NODE_CONTENT);
+ assertEquals(("<"+SAMPLE_OKAY_NODE_NAME+">").toLowerCase() +
SAMPLE_NODE_CONTENT +
-
("</"+SAMPLE_NODE_NAME+">").toLowerCase(),
+
("</"+SAMPLE_OKAY_NODE_NAME+">").toLowerCase(),
methodHTMLNode.generate());
}
@@ -543,10 +573,10 @@
* <node_name Attribute_Name="Attribute_Value" />
*/
public void testGenerate_fromHTMLNode_StringStringString() {
- HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_NODE_NAME,
- SAMPLE_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE);
- assertEquals(generateNoContentNodeOutput(SAMPLE_NODE_NAME,
- SAMPLE_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE),
+ HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_OKAY_NODE_NAME,
+
SAMPLE_OKAY_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE);
+ assertEquals(generateNoContentNodeOutput(SAMPLE_OKAY_NODE_NAME,
+
SAMPLE_OKAY_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE),
methodHTMLNode.generate());
}
@@ -557,11 +587,11 @@
* <node_name Attribute_Name="Attribute_Value">Node_Content</node_name>
*/
public void testGenerate_fromHTMLNode_StringStringStringString() {
- HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_NODE_NAME,
- SAMPLE_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE,
+ HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_OKAY_NODE_NAME,
+
SAMPLE_OKAY_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE,
SAMPLE_NODE_CONTENT);
- assertEquals(generateFullNodeOutput(SAMPLE_NODE_NAME,
- SAMPLE_ATTRIBUTE_NAME, SAMPLE_ATTRIBUTE_VALUE,
+ assertEquals(generateFullNodeOutput(SAMPLE_OKAY_NODE_NAME,
+ SAMPLE_OKAY_ATTRIBUTE_NAME,
SAMPLE_ATTRIBUTE_VALUE,
SAMPLE_NODE_CONTENT),
methodHTMLNode.generate());
}
@@ -607,26 +637,26 @@
* </node_name>
*/
public void testGenerate_HTMLNode_withChild() {
- HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_NODE_NAME,
- SAMPLE_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE,
+ HTMLNode methodHTMLNode = new HTMLNode(SAMPLE_OKAY_NODE_NAME,
+
SAMPLE_OKAY_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE,
SAMPLE_NODE_CONTENT);
- HTMLNode methodHTMLNodeChild = new HTMLNode(SAMPLE_NODE_NAME,
- SAMPLE_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE,
+ HTMLNode methodHTMLNodeChild = new
HTMLNode(SAMPLE_OKAY_NODE_NAME,
+
SAMPLE_OKAY_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE,
SAMPLE_NODE_CONTENT);
methodHTMLNode.addChild(methodHTMLNodeChild);
- assertEquals(("<"+SAMPLE_NODE_NAME+" ").toLowerCase() +
- SAMPLE_ATTRIBUTE_NAME + "=" +
+ assertEquals(("<"+SAMPLE_OKAY_NODE_NAME+" ").toLowerCase() +
+ SAMPLE_OKAY_ATTRIBUTE_NAME + "=" +
"\""+SAMPLE_ATTRIBUTE_VALUE+"\">" +
SAMPLE_NODE_CONTENT +
//child
- generateFullNodeOutput(SAMPLE_NODE_NAME,
- SAMPLE_ATTRIBUTE_NAME,
SAMPLE_ATTRIBUTE_VALUE,
+ generateFullNodeOutput(SAMPLE_OKAY_NODE_NAME,
+ SAMPLE_OKAY_ATTRIBUTE_NAME,
SAMPLE_ATTRIBUTE_VALUE,
SAMPLE_NODE_CONTENT) +
- ("</"+SAMPLE_NODE_NAME+">").toLowerCase(),
+ ("</"+SAMPLE_OKAY_NODE_NAME+">").toLowerCase(),
methodHTMLNode.generate());
}
@@ -637,7 +667,7 @@
*/
public void testGenerate_fromHTMLNode_percentName() {
HTMLNode methodHTMLNode = new HTMLNode("%",
- SAMPLE_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE,
+
SAMPLE_OKAY_ATTRIBUTE_NAME,SAMPLE_ATTRIBUTE_VALUE,
SAMPLE_NODE_CONTENT);
assertEquals(SAMPLE_NODE_CONTENT,
methodHTMLNode.generate());
@@ -652,7 +682,7 @@
String sampleDocType = "html";
String sampleSystemUri = "-//W3C//DTD XHTML 1.1//EN";
HTMLNode methodHTMLNodeDoc = new
HTMLNode.HTMLDoctype(sampleDocType,sampleSystemUri);
- methodHTMLNodeDoc.addChild(SAMPLE_NODE_NAME);
+ methodHTMLNodeDoc.addChild(SAMPLE_OKAY_NODE_NAME);
String generatedString = methodHTMLNodeDoc.generate();
//consider only the HTMLDocType generated text
assertEquals("<!DOCTYPE "+sampleDocType+" PUBLIC
\""+sampleSystemUri+"\">",