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 &lt;bombe at freenetproject.org&gt;
+ * @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+"\">",     


Reply via email to