package br.com.caelum.seleniumdsl.test.integration;
import junit.framework.Assert;
import org.junit.Test;
import br.com.caelum.seleniumdsl.Page;
import br.com.caelum.seleniumdsl.table.Table;
import br.com.caelum.seleniumdsl.table.layout.FullTableLayout;
import br.com.caelum.seleniumdsl.table.layout.PlainPlusThTableLayout;
import br.com.caelum.seleniumdsl.table.layout.PlainTableLayout;
public class TableTest extends SeleniumTestCase {
private Page page;
private Table plain;
private Table plainTh;
private Table thead;
private Table full;
private Table nested;
@Override
public void setUp() {
super.setUp();
page = browser.open("table.html");
plain = page.table("plain");
plainTh = page.table("plain_with_th");
thead = page.table("with_thead");
full = page.table("full");
nested = page.table("nested");
}
@Test
public void testTableLayoutType() {
Assert.assertTrue(plain.getLayout().getClass().equals(PlainTableLayout.class));
Assert.assertTrue(plainTh.getLayout().getClass().equals(PlainPlusThTableLayout.class));
Assert.assertTrue(thead.getLayout().getClass().equals(FullTableLayout.class));
Assert.assertTrue(full.getLayout().getClass().equals(FullTableLayout.class));
Assert.assertTrue(nested.getLayout().getClass().equals(FullTableLayout.class));
}
@Test
public void testRowCount() {
Assert.assertEquals(plain.getRowCount(), 5);
Assert.assertEquals(plainTh.getRowCount(), 5);
Assert.assertEquals(thead.getRowCount(), 5);
Assert.assertEquals(full.getRowCount(), 5);
Assert.assertEquals(nested.getRowCount(), 5);
}
@Test
public void testContentCount() {
Assert.assertEquals(plain.getContentCount(), 4);
Assert.assertEquals(plainTh.getContentCount(), 4);
Assert.assertEquals(thead.getContentCount(), 4);
Assert.assertEquals(full.getContentCount(), 3);
Assert.assertEquals(nested.getContentCount(), 3);
}
@Test
public void testHeaderLabel() {
Assert.assertEquals(plain.row(1).cell(1).headerValue(), "header_1");
Assert.assertEquals(plainTh.row(1).cell(1).headerValue(), "header_1");
Assert.assertEquals(thead.row(1).cell(1).headerValue(), "header_1");
Assert.assertEquals(full.row(1).cell(1).headerValue(), "header_1");
Assert.assertEquals(nested.row(1).cell(1).headerValue(), "header_1");
}
@Test
public void testHeaderLinkLabel() {
Assert.assertEquals(plain.header().cell(2).headerLinkValue(), "header_2");
Assert.assertEquals(plainTh.header().cell(2).headerLinkValue(), "header_2");
Assert.assertEquals(thead.header().cell(2).headerLinkValue(), "header_2");
Assert.assertEquals(full.header().cell(2).headerLinkValue(), "header_2");
Assert.assertEquals(nested.header().cell(2).headerLinkValue(), "header_2");
}
@Test
public void testGetValue() {
Assert.assertEquals(plain.row(1).cell(1).value(), "cell_1_1");
Assert.assertEquals(plainTh.row(1).cell(1).value(), "cell_1_1");
Assert.assertEquals(thead.row(1).cell(1).value(), "cell_1_1");
Assert.assertEquals(full.row(1).cell(1).value(), "cell_1_1");
Assert.assertEquals(nested.row(1).cell(1).value(), "cell_1_1");
Assert.assertEquals(nested.row(2).cell(1).value(), "cell_1_2");
}
@Test
public void testGetValueByCell() {
Assert.assertEquals(plain.cell(1, 1).value(), "cell_1_1");
Assert.assertEquals(plainTh.cell(1, 1).value(), "cell_1_1");
Assert.assertEquals(thead.cell(1, 1).value(), "cell_1_1");
Assert.assertEquals(full.cell(1, 1).value(), "cell_1_1");
Assert.assertEquals(nested.cell(1, 1).value(), "cell_1_1");
Assert.assertEquals(nested.cell(2, 1).value(), "cell_1_2");
}
@Test
public void testGetValueByCellAndColumn() {
Assert.assertEquals(plain.cell(2, "header_1").value(), "cell_1_2");
Assert.assertEquals(plainTh.cell(2, "header_1").value(), "cell_1_2");
Assert.assertEquals(thead.cell(2, "header_1").value(), "cell_1_2");
Assert.assertEquals(full.cell(2, "header_1").value(), "cell_1_2");
Assert.assertEquals(nested.cell(2, "header_1").value(), "cell_1_2");
}
@Test
public void testCheck() {
Assert.assertTrue(plain.row(2).cell(3).check().checked());
Assert.assertTrue(plainTh.row(2).cell(3).check().checked());
Assert.assertTrue(thead.row(2).cell(3).check().checked());
Assert.assertTrue(full.row(2).cell(3).check().checked());
Assert.assertTrue(nested.row(2).cell(3).check().checked());
}
@Test
public void testUncheck() {
Assert.assertFalse(plain.row(2).cell(3).uncheck().checked());
Assert.assertFalse(plainTh.row(2).cell(3).uncheck().checked());
Assert.assertFalse(thead.row(2).cell(3).uncheck().checked());
Assert.assertFalse(full.row(2).cell(3).uncheck().checked());
Assert.assertFalse(nested.row(2).cell(3).uncheck().checked());
}
@Test
public void testContainsByColumnName() throws Exception {
Assert.assertTrue(plain.column("header_1").contains("cell_1_2"));
Assert.assertTrue(plainTh.column("header_1").contains("cell_1_2"));
Assert.assertTrue(thead.column("header_1").contains("cell_1_2"));
Assert.assertTrue(full.column("header_1").contains("cell_1_2"));
Assert.assertTrue(nested.column("header_1").contains("cell_1_2"));
Assert.assertFalse(plain.column("header_2").contains("cell_1_2"));
Assert.assertFalse(plainTh.column("header_2").contains("cell_1_2"));
Assert.assertFalse(thead.column("header_2").contains("cell_1_2"));
Assert.assertFalse(full.column("header_2").contains("cell_1_2"));
Assert.assertFalse(nested.column("header_2").contains("cell_1_2"));
Assert.assertTrue(plain.column("header_3").contains("footer_3"));
Assert.assertTrue(plainTh.column("header_3").contains("footer_3"));
Assert.assertTrue(thead.column("header_3").contains("footer_3"));
Assert.assertTrue(full.column("header_3").contains("footer_3"));
Assert.assertTrue(nested.column("header_3").contains("footer_3"));
}
@Test
public void testContainsPartialByColumnName() throws Exception {
Assert.assertTrue(plain.column("header_1").containsPartial("1_2"));
Assert.assertTrue(plainTh.column("header_1").containsPartial("1_2"));
Assert.assertTrue(thead.column("header_1").containsPartial("1_2"));
Assert.assertTrue(full.column("header_1").containsPartial("1_2"));
Assert.assertTrue(nested.column("header_1").containsPartial("1_2"));
Assert.assertFalse(plain.column("header_2").containsPartial("1_2"));
Assert.assertFalse(plainTh.column("header_2").containsPartial("1_2"));
Assert.assertFalse(thead.column("header_2").containsPartial("1_2"));
Assert.assertFalse(full.column("header_2").containsPartial("1_2"));
Assert.assertFalse(nested.column("header_2").containsPartial("1_2"));
Assert.assertTrue(plain.column("header_3").containsPartial("footer"));
Assert.assertTrue(plainTh.column("header_3").containsPartial("footer"));
Assert.assertTrue(thead.column("header_3").containsPartial("footer"));
Assert.assertTrue(full.column("header_3").containsPartial("footer"));
Assert.assertTrue(nested.column("header_3").containsPartial("footer"));
}
}