import junit.framework.TestCase;
import edu.uiuc.webcoord.*;

/**
 * @author Sergei Vasilevsky
 */

public class TestParser extends TestCase {
	public static void main(String[] args) {
	}

	/*
	 * @see TestCase#setUp()
	 */
	protected void setUp() throws Exception {
		super.setUp();
	}

	/*
	 * @see TestCase#tearDown()
	 */
	protected void tearDown() throws Exception {
		super.tearDown();
	}

	public void testTables() {
		String htmlString = FetchHTML.getHTMLStringFile("lib\\doc\\testTable.htm");
		HTMLDocument doc = HTMLParser.parseHTML(htmlString);
		WebElement[] elements = doc.getWebElements();
		
		assertTrue(elements[0].getXCoord().equals("1"));
		assertTrue(elements[0].getYCoord().equals("1"));
		assertTrue((((WEText)elements[0]).getText()).equals("Testing Header"));
		
		//HEADER ROW
		
		assertTrue(elements[1].getXCoord().equals("1.1.1"));
		assertTrue(elements[1].getYCoord().equals("2.1.1"));
		assertTrue((((WEText)elements[1]).getText()).equals("Header 1 span 2"));
		
		assertTrue(elements[2].getXCoord().equals("1.3.1"));
		assertTrue(elements[2].getYCoord().equals("2.1.1"));
		assertTrue((((WEText)elements[2]).getText()).equals("Header 2"));
		
		assertTrue(elements[3].getXCoord().equals("1.4.1"));
		assertTrue(elements[3].getYCoord().equals("2.1.1"));
		assertTrue((((WEText)elements[3]).getText()).equals("Header 3"));
		
		assertTrue(elements[4].getXCoord().equals("1.5.1"));
		assertTrue(elements[4].getYCoord().equals("2.1.1"));
		assertTrue((((WEText)elements[4]).getText()).equals("Header 4"));
		
		assertTrue(elements[5].getXCoord().equals("1.6.1"));
		assertTrue(elements[5].getYCoord().equals("2.1.1"));
		assertTrue((((WEText)elements[5]).getText()).equals("Header 5 span 2"));
		
		//FIRST ROW
		
		assertTrue(elements[6].getXCoord().equals("1.1.1"));
		assertTrue(elements[6].getYCoord().equals("2.2.1"));
		assertTrue((((WEText)elements[6]).getText()).equals("Row 1 Column 1"));
		
		assertTrue(elements[7].getXCoord().equals("1.2.1"));
		assertTrue(elements[7].getYCoord().equals("2.2.1"));
		assertTrue((((WEText)elements[7]).getText()).equals("Row 1 Column 2"));
		
		assertTrue(elements[8].getXCoord().equals("1.3.1"));
		assertTrue(elements[8].getYCoord().equals("2.2.1"));
		assertTrue((((WEText)elements[8]).getText()).equals("Row 1 Column 3"));
		
		assertTrue(elements[9].getXCoord().equals("1.4.1"));
		assertTrue(elements[9].getYCoord().equals("2.2.1"));
		assertTrue((((WEText)elements[9]).getText()).equals("Row 1 Column 4"));
		
		assertTrue(elements[10].getXCoord().equals("1.5.1"));
		assertTrue(elements[10].getYCoord().equals("2.2.1"));
		assertTrue((((WEText)elements[10]).getText()).equals("Row 1 Column 5"));
		
		assertTrue(elements[11].getXCoord().equals("1.6.1"));
		assertTrue(elements[11].getYCoord().equals("2.2.1"));
		assertTrue((((WEText)elements[11]).getText()).equals("Row 1 Column 6"));
		
		assertTrue(elements[12].getXCoord().equals("1.7.1"));
		assertTrue(elements[12].getYCoord().equals("2.2.1"));
		assertTrue((((WEText)elements[12]).getText()).equals("Row 1 Column 7"));
		
		//SECOND ROW
		
		assertTrue(elements[13].getXCoord().equals("1.1.1"));
		assertTrue(elements[13].getYCoord().equals("2.3.1"));
		assertTrue((((WEText)elements[13]).getText()).equals("Row 2 Column 1"));
		
		assertTrue(elements[14].getXCoord().equals("1.2.1"));
		assertTrue(elements[14].getYCoord().equals("2.3.1"));
		assertTrue((((WEText)elements[14]).getText()).equals("Row 2 Column 2"));
		
		assertTrue(elements[15].getXCoord().equals("1.3.1"));
		assertTrue(elements[15].getYCoord().equals("2.3.1"));
		assertTrue((((WEText)elements[15]).getText()).equals("Row 2 Column 3"));
		
		assertTrue(elements[16].getXCoord().equals("1.6.1"));
		assertTrue(elements[16].getYCoord().equals("2.3.1"));
		assertTrue((((WEText)elements[16]).getText()).equals("Row 2 Column 6"));
		
		assertTrue(elements[17].getXCoord().equals("1.7.1"));
		assertTrue(elements[17].getYCoord().equals("2.3.1"));
		assertTrue((((WEText)elements[17]).getText()).equals("Row 2 Column 7"));
	
//		THIRD ROW
				
		assertTrue(elements[18].getXCoord().equals("1.2.1"));
		assertTrue(elements[18].getYCoord().equals("2.4.1"));
		assertTrue((((WEText)elements[18]).getText()).equals("Row 3 Column 2"));
		
		assertTrue(elements[19].getXCoord().equals("1.6.1"));
		assertTrue(elements[19].getYCoord().equals("2.4.1"));
		assertTrue((((WEText)elements[19]).getText()).equals("Row 3 Column 6"));
		
		assertTrue(elements[20].getXCoord().equals("1.7.1"));
		assertTrue(elements[20].getYCoord().equals("2.4.1"));
		assertTrue((((WEText)elements[20]).getText()).equals("Row 3 Column 7"));
		
//		FOURTH ROW
		assertTrue(elements[21].getXCoord().equals("1.1.1"));
		assertTrue(elements[21].getYCoord().equals("2.5.1"));
		assertTrue((((WEText)elements[21]).getText()).equals("Row 4 Column 1"));

		assertTrue(elements[22].getXCoord().equals("1.2.1"));
		assertTrue(elements[22].getYCoord().equals("2.5.1"));
		assertTrue((((WEText)elements[22]).getText()).equals("Row 4 Column 2"));
		
		assertTrue(elements[23].getXCoord().equals("1.6.1"));
		assertTrue(elements[23].getYCoord().equals("2.5.1"));
		assertTrue((((WEText)elements[23]).getText()).equals("Row 4 Column 6"));
		
		assertTrue(elements[24].getXCoord().equals("1.7.1"));
		assertTrue(elements[24].getYCoord().equals("2.5.1"));
		assertTrue((((WEText)elements[24]).getText()).equals("Row 4 Column 7"));

//		FIFTH ROW
		
		assertTrue(elements[25].getXCoord().equals("1.1.1"));
		assertTrue(elements[25].getYCoord().equals("2.6.1"));
		assertTrue((((WEText)elements[25]).getText()).equals("Row 5 Column 1"));
		
		assertTrue(elements[26].getXCoord().equals("1.2.1"));
		assertTrue(elements[26].getYCoord().equals("2.6.1"));
		assertTrue((((WEText)elements[26]).getText()).equals("Row 5 Column 2"));
		
		assertTrue(elements[27].getXCoord().equals("1.3.1"));
		assertTrue(elements[27].getYCoord().equals("2.6.1"));
		assertTrue((((WEText)elements[27]).getText()).equals("Row 5 Column 3"));
		
		assertTrue(elements[28].getXCoord().equals("1.4.1"));
		assertTrue(elements[28].getYCoord().equals("2.6.1"));
		assertTrue((((WEText)elements[28]).getText()).equals("Row 5 Column 4"));
		
		assertTrue(elements[29].getXCoord().equals("1.5.1"));
		assertTrue(elements[29].getYCoord().equals("2.6.1"));
		assertTrue((((WEText)elements[29]).getText()).equals("Row 5 Column 5"));
		
		assertTrue(elements[30].getXCoord().equals("1.6.1"));
		assertTrue(elements[30].getYCoord().equals("2.6.1"));
		assertTrue((((WEText)elements[30]).getText()).equals("Row 5 Column 6"));
		
		assertTrue(elements[31].getXCoord().equals("1.7.1"));
		assertTrue(elements[31].getYCoord().equals("2.6.1"));
		assertTrue((((WEText)elements[31]).getText()).equals("Row 5 Column 7"));

	
	}
}
