package com.redheap.selenium; import com.redheap.selenium.component.AdfInputComboboxListOfValues; import com.redheap.selenium.component.AdfInputText; import com.redheap.selenium.component.AdfOutputText; import com.redheap.selenium.component.AdfSelectOneRadio; import com.redheap.selenium.components.PageTestBase; import com.redheap.selenium.pages.EditableTablePage; import static org.junit.Assert.*; import org.junit.Test; public class EditableTableTest extends PageTestBase<EditableTablePage> { @Test public void testPopupButton() { EditableTablePage page = pages.goHome(); int rowindex = 0; page.findPopupButton(rowindex).click(); assertEquals("Text", page.findDialog(0).getTitle()); page.findDialogOkButton(rowindex).click(); } @Test public void testInputText() { EditableTablePage page = pages.goHome(); int rowindex = 0; AdfInputText it = page.findInputText(rowindex); it.typeValue("foo"); assertEquals("foo", it.getValue()); assertEquals("foo", it.getSubmittedValue()); it.typeValue("bar"); assertEquals("bar", it.getValue()); assertEquals("bar", it.getValue()); it.sendKeys("baz"); it.tabNext(); assertEquals("barbaz", it.getValue()); assertEquals("barbaz", it.getValue()); } @Test public void testCommandLink() { EditableTablePage page = pages.goHome(); int rowindex = 0; AdfOutputText clickText = page.findClickText(rowindex); assertNull(clickText.getValue()); page.findCommandLink(rowindex).click(); Object val = clickText.getValue(); assertTrue(val instanceof String && ((String) val).startsWith("Clicked on")); } @Test public void testCommandLinkRow3() { EditableTablePage page = pages.goHome(); int rowindex = 2; AdfOutputText clickText = page.findClickText(rowindex); assertNull(clickText.getValue()); page.findCommandLink(rowindex).click(); Object val = clickText.getValue(); assertTrue(val instanceof String && ((String) val).startsWith("Clicked on")); } @Test public void testCommandLinkRow100() { EditableTablePage page = pages.goHome(); int rowindex = 100; AdfOutputText clickText = page.findClickText(rowindex); assertNull(clickText.getValue()); page.findCommandLink(rowindex).click(); Object val = clickText.getValue(); assertTrue(val instanceof String && ((String) val).startsWith("Clicked on")); } @Test public void testRequired() { EditableTablePage page = pages.goHome(); int rowindex = 0; AdfInputText it = page.findRequiredInputText(rowindex); it.typeValue("foo"); assertEquals("foo", it.getValue()); assertEquals("foo", it.getSubmittedValue()); assertEquals(true, it.isValid()); it.typeValue(""); assertEquals(null, it.getValue()); assertEquals("", it.getSubmittedValue()); assertEquals(false, it.isValid()); } @Test public void testCombobxFullValue() { EditableTablePage page = pages.goHome(); int rowindex = 0; AdfInputComboboxListOfValues box = page.findCombobox(rowindex); // type full value box.typeValue("Bob472"); assertEquals("Bob472", box.getValue()); assertEquals("Bob472", box.getSubmittedValue()); assertEquals(true, box.isValid()); } @Test public void testCombobxSingleSuggest() { EditableTablePage page = pages.goHome(); int rowindex = 0; AdfInputComboboxListOfValues box = page.findCombobox(rowindex); // type part of value but enough to have a single match box.typeValue("Bob47"); assertEquals("Bob472", box.getValue()); assertEquals("Bob472", box.getSubmittedValue()); assertEquals(true, box.isValid()); } @Test public void testCombobxMultiSuggest() { EditableTablePage page = pages.goHome(); int rowindex = 0; AdfInputComboboxListOfValues box = page.findCombobox(rowindex); // type part of value but enough to have a single match box.typeValue("Bob4"); // TODO: thorough testing of InputComboboxListOfValues should be separate test and not part of EditableTable assertNotNull(box.findDropdownPopup()); //assertNull(box.findDropdownTable()); // only exist when expanding combobox dropdown assertNotNull(box.findLovDialogQuery()); assertNotNull(box.findLovDialogTable()); assertNotNull(box.findLovDialogTableColumn(0)); assertNotNull(box.findLovDialogTableCell(0, 0)); assertNotNull(box.findSearchDialog()); assertNotNull(box.findSearchDialogPopup()); //assertNull(box.findSearchLink()); assertEquals("Bob4", box.findLovDialogTableCell(0, 0).getValue()); assertEquals("Bob43", box.findLovDialogTableCell(1, 0).getValue()); assertEquals("Bob433", box.findLovDialogTableCell(2, 0).getValue()); assertEquals("Bob472", box.findLovDialogTableCell(3, 0).getValue()); assertEquals(Long.valueOf(4), box.findLovDialogTableCell(0, 1).getValue()); // empno assertEquals("Engineer", box.findLovDialogTableCell(0, 2).getValue()); // job assertEquals(Long.valueOf(1), box.findLovDialogTableCell(0, 3).getValue()); // mgr assertEquals("1998-01-19T00:00:00.000Z", box.findLovDialogTableCell(0, 4).getValue()); // hiredate assertEquals(Long.valueOf(23432), box.findLovDialogTableCell(0, 5).getValue()); // salary assertEquals(Long.valueOf(5454), box.findLovDialogTableCell(0, 6).getValue()); // comm assertEquals(Long.valueOf(40), box.findLovDialogTableCell(0, 7).getValue()); // deptno // select row 3 (Bob433) box.findLovDialogTableCell(2, 0).click(); box.findSearchDialog().findOkButton().click(); assertEquals("Bob433", box.getValue()); assertEquals("Bob433", box.getSubmittedValue()); assertEquals(true, box.isValid()); } @Test public void testSelectOneRadio() { EditableTablePage page = pages.goHome(); int rowindex = 0; AdfSelectOneRadio radio = page.findSelectOneRadio(rowindex); assertNull(radio.getValue()); radio.clickItemByIndex(1); assertEquals("1", radio.getValue()); radio.clickItemByLabel("zucchini"); assertEquals("3", radio.getValue()); assertEquals("zucchini", radio.getItemLabel(Integer.parseInt((String) radio.getValue()))); } public static void main(String[] args) { String[] args2 = { EditableTableTest.class.getName() }; org.junit.runner.JUnitCore.main(args2); } @Override protected Class<EditableTablePage> getPageClass() { return EditableTablePage.class; } @Override protected String getJspxName() { return "table/editableTable.jspx"; } }