// Copyright � 2002-2005 Canoo Engineering AG, Switzerland. package com.canoo.webtest.steps; import junit.framework.TestCase; import java.net.URL; /** * @author Marc Guillemot */ public class HtmlParserMessageTest extends TestCase { private URL fUrl; private HtmlParserMessage fParserMessage; public HtmlParserMessageTest(String arg0) { super(arg0); } /* (non-Javadoc) * @see junit.framework.TestCase#setUp() */ protected void setUp() throws Exception { fUrl = new URL("http://mypage"); fParserMessage = new HtmlParserMessage(HtmlParserMessage.Type.ERROR, fUrl, "toto", 15, 20); } public static void testType() { assertEquals(HtmlParserMessage.Type.ERROR_NAME, HtmlParserMessage.Type.ERROR.getName()); assertEquals(HtmlParserMessage.Type.ERROR_NAME, HtmlParserMessage.Type.ERROR.toString()); assertEquals(HtmlParserMessage.Type.WARNING_NAME, HtmlParserMessage.Type.WARNING.getName()); assertEquals(HtmlParserMessage.Type.WARNING_NAME, HtmlParserMessage.Type.WARNING.toString()); assertTrue("warning < error", (HtmlParserMessage.Type.WARNING.compareTo(HtmlParserMessage.Type.ERROR)) < 0); assertTrue("error > warning", (HtmlParserMessage.Type.ERROR.compareTo(HtmlParserMessage.Type.WARNING)) > 0); assertTrue(HtmlParserMessage.Type.ERROR.isError()); assertFalse(HtmlParserMessage.Type.ERROR.isWarning()); assertFalse(HtmlParserMessage.Type.WARNING.isError()); assertTrue(HtmlParserMessage.Type.WARNING.isWarning()); } public static void testMessageCollector() { HtmlParserMessage.MessageCollector collector = new HtmlParserMessage.MessageCollector(); assertEquals(0, collector.popAll().size()); collector.error(null, null, 0, 0, null); assertEquals(1, collector.popAll().size()); assertEquals(0, collector.popAll().size()); collector.error(null, null, 0, 0, null); collector.warning(null, null, 0, 0, null); assertEquals(2, collector.popAll().size()); } public void testHtmlParserMessage() { assertEquals(HtmlParserMessage.Type.ERROR, fParserMessage.getType()); assertEquals(fUrl, fParserMessage.getURL()); assertEquals("toto", fParserMessage.getMessage()); assertEquals(15, fParserMessage.getLine()); assertEquals(20, fParserMessage.getColumn()); } public void testCompareTo() throws Exception { assertTrue("error is bigger", fParserMessage.compareTo(new HtmlParserMessage(HtmlParserMessage.Type.WARNING, fParserMessage.getURL(), fParserMessage.getMessage(), fParserMessage.getLine(), fParserMessage.getColumn())) > 0); assertTrue("url string compare", fParserMessage.compareTo(new HtmlParserMessage(fParserMessage.getType(), new URL("http://mypage2"), fParserMessage.getMessage(), fParserMessage.getLine(), fParserMessage.getColumn())) < 0); assertTrue("message is longer", fParserMessage.compareTo(new HtmlParserMessage(fParserMessage.getType(), fParserMessage.getURL(), fParserMessage.getMessage() + "a", fParserMessage.getLine(), fParserMessage.getColumn())) < 0); assertTrue("line", fParserMessage.compareTo(new HtmlParserMessage(fParserMessage.getType(), fParserMessage.getURL(), fParserMessage.getMessage(), fParserMessage.getLine() + 1, fParserMessage.getColumn())) < 0); assertTrue("column", fParserMessage.compareTo(new HtmlParserMessage(fParserMessage.getType(), fParserMessage.getURL(), fParserMessage.getMessage(), fParserMessage.getLine(), fParserMessage.getColumn() + 1)) < 0); } public void testEquals() throws Exception { assertTrue("the same again", fParserMessage.equals(new HtmlParserMessage(fParserMessage.getType(), fParserMessage.getURL(), fParserMessage.getMessage(), fParserMessage.getLine(), fParserMessage.getColumn()))); assertFalse("with error type", fParserMessage.equals(new HtmlParserMessage(HtmlParserMessage.Type.WARNING, fParserMessage.getURL(), fParserMessage.getMessage(), fParserMessage.getLine(), fParserMessage.getColumn()))); assertFalse("with an other url", fParserMessage.equals(new HtmlParserMessage(fParserMessage.getType(), new URL("http://mypage2"), fParserMessage.getMessage(), fParserMessage.getLine(), fParserMessage.getColumn()))); assertFalse("with an other message", fParserMessage.equals(new HtmlParserMessage(fParserMessage.getType(), fParserMessage.getURL(), fParserMessage.getMessage() + "a", fParserMessage.getLine(), fParserMessage.getColumn()))); assertFalse("other line", fParserMessage.equals(new HtmlParserMessage(fParserMessage.getType(), fParserMessage.getURL(), fParserMessage.getMessage(), fParserMessage.getLine() + 1, fParserMessage.getColumn()))); assertFalse("other column", fParserMessage.equals(new HtmlParserMessage(fParserMessage.getType(), fParserMessage.getURL(), fParserMessage.getMessage(), fParserMessage.getLine(), fParserMessage.getColumn() + 1))); } public void testHashcode() { int hash1 = fParserMessage.hashCode(); hash1 = fParserMessage.hashCode(); // coverage will tell if we recalculate unnecessarily int hash2 = new HtmlParserMessage(fParserMessage.getType(), fParserMessage.getURL(), fParserMessage.getMessage(), fParserMessage.getLine(), fParserMessage.getColumn() + 1).hashCode(); assertFalse(hash1 == hash2); } }