001: // Copyright © 2002-2005 Canoo Engineering AG, Switzerland.
002: package com.canoo.webtest.steps;
003:
004: import junit.framework.TestCase;
005:
006: import java.net.URL;
007:
008: /**
009: * @author Marc Guillemot
010: */
011: public class HtmlParserMessageTest extends TestCase {
012: private URL fUrl;
013: private HtmlParserMessage fParserMessage;
014:
015: public HtmlParserMessageTest(String arg0) {
016: super (arg0);
017: }
018:
019: /* (non-Javadoc)
020: * @see junit.framework.TestCase#setUp()
021: */
022: protected void setUp() throws Exception {
023: fUrl = new URL("http://mypage");
024: fParserMessage = new HtmlParserMessage(
025: HtmlParserMessage.Type.ERROR, fUrl, "toto", 15, 20);
026: }
027:
028: public static void testType() {
029: assertEquals(HtmlParserMessage.Type.ERROR_NAME,
030: HtmlParserMessage.Type.ERROR.getName());
031: assertEquals(HtmlParserMessage.Type.ERROR_NAME,
032: HtmlParserMessage.Type.ERROR.toString());
033:
034: assertEquals(HtmlParserMessage.Type.WARNING_NAME,
035: HtmlParserMessage.Type.WARNING.getName());
036: assertEquals(HtmlParserMessage.Type.WARNING_NAME,
037: HtmlParserMessage.Type.WARNING.toString());
038:
039: assertTrue("warning < error", (HtmlParserMessage.Type.WARNING
040: .compareTo(HtmlParserMessage.Type.ERROR)) < 0);
041: assertTrue("error > warning", (HtmlParserMessage.Type.ERROR
042: .compareTo(HtmlParserMessage.Type.WARNING)) > 0);
043:
044: assertTrue(HtmlParserMessage.Type.ERROR.isError());
045: assertFalse(HtmlParserMessage.Type.ERROR.isWarning());
046: assertFalse(HtmlParserMessage.Type.WARNING.isError());
047: assertTrue(HtmlParserMessage.Type.WARNING.isWarning());
048: }
049:
050: public static void testMessageCollector() {
051: HtmlParserMessage.MessageCollector collector = new HtmlParserMessage.MessageCollector();
052: assertEquals(0, collector.popAll().size());
053: collector.error(null, null, 0, 0, null);
054: assertEquals(1, collector.popAll().size());
055: assertEquals(0, collector.popAll().size());
056: collector.error(null, null, 0, 0, null);
057: collector.warning(null, null, 0, 0, null);
058: assertEquals(2, collector.popAll().size());
059: }
060:
061: public void testHtmlParserMessage() {
062: assertEquals(HtmlParserMessage.Type.ERROR, fParserMessage
063: .getType());
064: assertEquals(fUrl, fParserMessage.getURL());
065: assertEquals("toto", fParserMessage.getMessage());
066: assertEquals(15, fParserMessage.getLine());
067: assertEquals(20, fParserMessage.getColumn());
068: }
069:
070: public void testCompareTo() throws Exception {
071: assertTrue("error is bigger", fParserMessage
072: .compareTo(new HtmlParserMessage(
073: HtmlParserMessage.Type.WARNING, fParserMessage
074: .getURL(), fParserMessage.getMessage(),
075: fParserMessage.getLine(), fParserMessage
076: .getColumn())) > 0);
077: assertTrue("url string compare",
078: fParserMessage.compareTo(new HtmlParserMessage(
079: fParserMessage.getType(), new URL(
080: "http://mypage2"), fParserMessage
081: .getMessage(),
082: fParserMessage.getLine(), fParserMessage
083: .getColumn())) < 0);
084: assertTrue("message is longer", fParserMessage
085: .compareTo(new HtmlParserMessage(fParserMessage
086: .getType(), fParserMessage.getURL(),
087: fParserMessage.getMessage() + "a",
088: fParserMessage.getLine(), fParserMessage
089: .getColumn())) < 0);
090: assertTrue("line", fParserMessage
091: .compareTo(new HtmlParserMessage(fParserMessage
092: .getType(), fParserMessage.getURL(),
093: fParserMessage.getMessage(), fParserMessage
094: .getLine() + 1, fParserMessage
095: .getColumn())) < 0);
096: assertTrue("column", fParserMessage
097: .compareTo(new HtmlParserMessage(fParserMessage
098: .getType(), fParserMessage.getURL(),
099: fParserMessage.getMessage(), fParserMessage
100: .getLine(),
101: fParserMessage.getColumn() + 1)) < 0);
102: }
103:
104: public void testEquals() throws Exception {
105: assertTrue("the same again", fParserMessage
106: .equals(new HtmlParserMessage(fParserMessage.getType(),
107: fParserMessage.getURL(), fParserMessage
108: .getMessage(),
109: fParserMessage.getLine(), fParserMessage
110: .getColumn())));
111:
112: assertFalse("with error type", fParserMessage
113: .equals(new HtmlParserMessage(
114: HtmlParserMessage.Type.WARNING, fParserMessage
115: .getURL(), fParserMessage.getMessage(),
116: fParserMessage.getLine(), fParserMessage
117: .getColumn())));
118: assertFalse("with an other url", fParserMessage
119: .equals(new HtmlParserMessage(fParserMessage.getType(),
120: new URL("http://mypage2"), fParserMessage
121: .getMessage(),
122: fParserMessage.getLine(), fParserMessage
123: .getColumn())));
124: assertFalse("with an other message", fParserMessage
125: .equals(new HtmlParserMessage(fParserMessage.getType(),
126: fParserMessage.getURL(), fParserMessage
127: .getMessage()
128: + "a", fParserMessage.getLine(),
129: fParserMessage.getColumn())));
130: assertFalse("other line", fParserMessage
131: .equals(new HtmlParserMessage(fParserMessage.getType(),
132: fParserMessage.getURL(), fParserMessage
133: .getMessage(),
134: fParserMessage.getLine() + 1, fParserMessage
135: .getColumn())));
136: assertFalse("other column", fParserMessage
137: .equals(new HtmlParserMessage(fParserMessage.getType(),
138: fParserMessage.getURL(), fParserMessage
139: .getMessage(),
140: fParserMessage.getLine(), fParserMessage
141: .getColumn() + 1)));
142: }
143:
144: public void testHashcode() {
145: int hash1 = fParserMessage.hashCode();
146: hash1 = fParserMessage.hashCode(); // coverage will tell if we recalculate unnecessarily
147: int hash2 = new HtmlParserMessage(fParserMessage.getType(),
148: fParserMessage.getURL(), fParserMessage.getMessage(),
149: fParserMessage.getLine(),
150: fParserMessage.getColumn() + 1).hashCode();
151: assertFalse(hash1 == hash2);
152: }
153: }
|