package org.richfaces.renderkit;
import static org.junit.Assert.assertEquals;
import java.util.List;
import org.jboss.test.faces.htmlunit.HtmlUnitEnvironment;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.richfaces.CustomizedHtmlUnitEnvironment;
import com.gargoylesoftware.htmlunit.html.DomNode;
import com.gargoylesoftware.htmlunit.html.HtmlElement;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
/**
* @author Anton Belevich
*
*/
public class DataScrollerRenderTest {
private HtmlUnitEnvironment environment;
@Before
public void setUp() {
environment = new CustomizedHtmlUnitEnvironment();
// environment.withWebRoot(new File("src/test/resources"));
environment.withResource("/WEB-INF/faces-config.xml", "org/richfaces/renderkit/faces-config.xml");
environment.withResource("/test.xhtml", "org/richfaces/renderkit/dataTableTest.xhtml");
environment.start();
}
@Test
public void testEncoding() throws Exception {
HtmlPage page = environment.getPage("/test.jsf");
String scrollerId = "scroller1";
// first scroll
List<?> nodes = page.getByXPath("//*[@id = 'form:scroller1']");
assertEquals(1, nodes.size());
HtmlElement span = (HtmlElement) nodes.get(0);
assertEquals("span", span.getNodeName());
assertEquals("rf-ds", span.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// first/fastRewind/previous buttons with arrows
HtmlElement first = getFirstButton(page, scrollerId);
assertEquals("span", first.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-first rf-ds-dis", first.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
HtmlElement fastRewind = getFastRewindButton(page, scrollerId);
assertEquals("span", fastRewind.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-fastrwd rf-ds-dis", fastRewind.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
HtmlElement previous = getPreviousButton(page, scrollerId);
assertEquals("span", previous.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-prev rf-ds-dis", previous.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// currently selected digital button
HtmlElement dc1 = getDigitalButton(page, scrollerId, 1);
assertEquals("span", dc1.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", dc1.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// digital buttons
HtmlElement d2 = getDigitalButton(page, scrollerId, 2);
assertEquals("a", d2.getNodeName());
assertEquals("rf-ds-nmb-btn", d2.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("javascript:void(0);", d2.getAttribute(HtmlConstants.HREF_ATTR));
HtmlElement d3 = getDigitalButton(page, scrollerId, 3);
assertEquals("a", d3.getNodeName());
assertEquals("rf-ds-nmb-btn", d3.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("javascript:void(0);", d3.getAttribute(HtmlConstants.HREF_ATTR));
HtmlElement d4 = getDigitalButton(page, scrollerId, 4);
assertEquals("a", d4.getNodeName());
assertEquals("rf-ds-nmb-btn", d4.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("javascript:void(0);", d4.getAttribute(HtmlConstants.HREF_ATTR));
HtmlElement d5 = getDigitalButton(page, scrollerId, 5);
assertEquals("a", d5.getNodeName());
assertEquals("rf-ds-nmb-btn", d5.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("javascript:void(0);", d5.getAttribute(HtmlConstants.HREF_ATTR));
// next/fastForward/last buttons with arrows
HtmlElement next = getNextButton(page, scrollerId);
assertEquals("a", next.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-next", next.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("javascript:void(0);", next.getAttribute(HtmlConstants.HREF_ATTR));
HtmlElement fastForward = getFastForwardButton(page, scrollerId);
assertEquals("a", fastForward.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-fastfwd", fastForward.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("javascript:void(0);", fastForward.getAttribute(HtmlConstants.HREF_ATTR));
HtmlElement last = getLastButton(page, scrollerId);
assertEquals("a", last.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-last", last.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("javascript:void(0);", last.getAttribute(HtmlConstants.HREF_ATTR));
}
@Test
@Ignore // broke with the jQuery 1.6.2 upgrade
public void testOutDataScrollerFirstLastButtons() throws Exception {
HtmlPage page = environment.getPage("/test.jsf");
String firstScrollerId = "scroller1";
// dataScroller inside dataTable 'footer' facet
String secondScrollerId = "richTable:scroller2";
HtmlElement last = getLastButton(page, firstScrollerId);
last.click();
checkLastPageButtons(page, firstScrollerId, secondScrollerId);
HtmlElement first = getFirstButton(page, firstScrollerId);
first.click();
checkFirstPageButtons(page, firstScrollerId, secondScrollerId);
}
@Test
@Ignore // broke with the jQuery 1.6.2 upgrade
public void testInnerDataScrollerFirstLastButtons() throws Exception {
HtmlPage page = environment.getPage("/test.jsf");
String firstScrollerId = "scroller1";
// dataScroller inside dataTable 'footer' facet
String secondScrollerId = "richTable:scroller2";
HtmlElement last = getLastButton(page, secondScrollerId);
last.click();
checkLastPageButtons(page, firstScrollerId, secondScrollerId);
HtmlElement first = getFirstButton(page, secondScrollerId);
first.click();
checkFirstPageButtons(page, firstScrollerId, secondScrollerId);
}
@Test
@Ignore // broke with the jQuery 1.6.2 upgrade
public void testOutDataScrollerNextPreviousButtons() throws Exception {
HtmlPage page = environment.getPage("/test.jsf");
String firstScrollerId = "scroller1";
// dataScroller inside dataTable 'footer' facet
String secondScrollerId = "richTable:scroller2";
for (int i = 2; i <= 5; i++) {
HtmlElement next = getNextButton(page, firstScrollerId);
next.click();
HtmlElement currentDigital1 = getDigitalButton(page, firstScrollerId, i);
assertEquals("span", currentDigital1.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital1.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// if scroller inside dataTable has switched
HtmlElement currentDigital2 = getDigitalButton(page, secondScrollerId, i);
assertEquals("span", currentDigital2.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital2.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// check if page has switched
assertEquals(i + " page content", getCurrentPageContent(page, i));
}
checkLastPageButtons(page, firstScrollerId, secondScrollerId);
// scroll back
for (int i = 4; i >= 1; i--) {
HtmlElement previous = getPreviousButton(page, firstScrollerId);
previous.click();
HtmlElement currentDigital1 = getDigitalButton(page, firstScrollerId, i);
assertEquals("span", currentDigital1.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital1.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// if scroller inside dataTable has switched
HtmlElement currentDigital2 = getDigitalButton(page, secondScrollerId, i);
assertEquals("span", currentDigital2.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital2.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// check if page has switched
assertEquals(i + " page content", getCurrentPageContent(page, i));
}
checkFirstPageButtons(page, firstScrollerId, secondScrollerId);
}
@Test
@Ignore // broke with the jQuery 1.6.2 upgrade
public void testInnerDataScrollerNextPreviousButtons() throws Exception {
HtmlPage page = environment.getPage("/test.jsf");
String firstScrollerId = "scroller1";
// dataScroller inside dataTable 'footer' facet
String secondScrollerId = "richTable:scroller2";
for (int i = 2; i <= 5; i++) {
HtmlElement next = getNextButton(page, secondScrollerId);
next.click();
HtmlElement currentDigital2 = getDigitalButton(page, secondScrollerId, i);
assertEquals("span", currentDigital2.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital2.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// if scroller outside dataTable has switched
HtmlElement currentDigital1 = getDigitalButton(page, firstScrollerId, i);
assertEquals("span", currentDigital1.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital1.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// check if page has switched
assertEquals(i + " page content", getCurrentPageContent(page, i));
}
checkLastPageButtons(page, firstScrollerId, secondScrollerId);
// scroll back
for (int i = 4; i >= 1; i--) {
HtmlElement previous = getPreviousButton(page, secondScrollerId);
previous.click();
HtmlElement currentDigital2 = getDigitalButton(page, secondScrollerId, i);
assertEquals("span", currentDigital2.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital2.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// if scroller inside dataTable has switched
HtmlElement currentDigital1 = getDigitalButton(page, firstScrollerId, i);
assertEquals("span", currentDigital1.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital1.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// check if page has switched
assertEquals(i + " page content", getCurrentPageContent(page, i));
}
checkFirstPageButtons(page, firstScrollerId, secondScrollerId);
}
@Test
@Ignore // broke with the jQuery 1.6.2 upgrade
public void testOutDataScrollerFastButtons() throws Exception {
HtmlPage page = environment.getPage("/test.jsf");
String firstScrollerId = "scroller1";
// dataScroller inside dataTable 'footer' facet
String secondScrollerId = "richTable:scroller2";
for (int i = 3; i <= 5; i = i + 2) {
HtmlElement ff = getFastForwardButton(page, firstScrollerId);
ff.click();
HtmlElement currentDigital1 = getDigitalButton(page, firstScrollerId, i);
assertEquals("span", currentDigital1.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital1.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// if scroller inside dataTable has switched
HtmlElement currentDigital2 = getDigitalButton(page, secondScrollerId, i);
assertEquals("span", currentDigital2.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital2.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// check if page has switched
assertEquals(i + " page content", getCurrentPageContent(page, i));
}
checkLastPageButtons(page, firstScrollerId, secondScrollerId);
// scroll back
for (int i = 3; i >= 1; i = i - 2) {
HtmlElement fr = getFastRewindButton(page, firstScrollerId);
fr.click();
HtmlElement currentDigital1 = getDigitalButton(page, firstScrollerId, i);
assertEquals("span", currentDigital1.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital1.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// if scroller inside dataTable has switched
HtmlElement currentDigital2 = getDigitalButton(page, secondScrollerId, i);
assertEquals("span", currentDigital2.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital2.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// check if page has switched
assertEquals(i + " page content", getCurrentPageContent(page, i));
}
checkFirstPageButtons(page, firstScrollerId, secondScrollerId);
}
@Test
@Ignore // broke with the jQuery 1.6.2 upgrade
public void testInnerDataScrollerFastButtons() throws Exception {
HtmlPage page = environment.getPage("/test.jsf");
String firstScrollerId = "scroller1";
// dataScroller inside dataTable 'footer' facet
String secondScrollerId = "richTable:scroller2";
for (int i = 3; i <= 5; i = i + 2) {
HtmlElement ff = getFastForwardButton(page, secondScrollerId);
ff.click();
HtmlElement currentDigital2 = getDigitalButton(page, secondScrollerId, i);
assertEquals("span", currentDigital2.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital2.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// if scroller outside dataTable has switched
HtmlElement currentDigital1 = getDigitalButton(page, firstScrollerId, i);
assertEquals("span", currentDigital1.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital1.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// check if page has switched
assertEquals(i + " page content", getCurrentPageContent(page, i));
}
checkLastPageButtons(page, firstScrollerId, secondScrollerId);
// scroll back
for (int i = 3; i >= 1; i = i - 2) {
HtmlElement fr = getFastRewindButton(page, secondScrollerId);
fr.click();
HtmlElement currentDigital2 = getDigitalButton(page, secondScrollerId, i);
assertEquals("span", currentDigital2.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital2.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// if scroller inside dataTable has switched
HtmlElement currentDigital1 = getDigitalButton(page, firstScrollerId, i);
assertEquals("span", currentDigital1.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital1.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// check if page has switched
assertEquals(i + " page content", getCurrentPageContent(page, i));
}
checkFirstPageButtons(page, firstScrollerId, secondScrollerId);
}
@Test
@Ignore // broke with the jQuery 1.6.2 upgrade
public void testOutDataScrollerDigitalButtons() throws Exception {
HtmlPage page = environment.getPage("/test.jsf");
String firstScrollerId = "scroller1";
// dataScroller inside dataTable 'footer' facet
String secondScrollerId = "richTable:scroller2";
for (int i = 2; i <= 5; i++) {
HtmlElement currentDigital1 = getDigitalButton(page, firstScrollerId, i);
currentDigital1.click();
currentDigital1 = getDigitalButton(page, firstScrollerId, i);
assertEquals("span", currentDigital1.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital1.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// if scroller inside dataTable has switched
HtmlElement currentDigital2 = getDigitalButton(page, secondScrollerId, i);
assertEquals("span", currentDigital2.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital2.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// check if page has switched
assertEquals(i + " page content", getCurrentPageContent(page, i));
}
checkLastPageButtons(page, firstScrollerId, secondScrollerId);
// scroll back
for (int i = 4; i >= 1; i--) {
HtmlElement currentDigital1 = getDigitalButton(page, firstScrollerId, i);
currentDigital1.click();
currentDigital1 = getDigitalButton(page, firstScrollerId, i);
assertEquals("span", currentDigital1.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital1.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// if scroller inside dataTable has switched
HtmlElement currentDigital2 = getDigitalButton(page, secondScrollerId, i);
assertEquals("span", currentDigital2.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital2.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// check if page has switched
assertEquals(i + " page content", getCurrentPageContent(page, i));
}
checkFirstPageButtons(page, firstScrollerId, secondScrollerId);
}
@Test
@Ignore // broke with the jQuery 1.6.2 upgrade
public void testInnerDataScrollerDigitalButtons() throws Exception {
HtmlPage page = environment.getPage("/test.jsf");
String firstScrollerId = "scroller1";
// dataScroller inside dataTable 'footer' facet
String secondScrollerId = "richTable:scroller2";
for (int i = 2; i <= 5; i++) {
HtmlElement currentDigital2 = getDigitalButton(page, secondScrollerId, i);
currentDigital2.click();
currentDigital2 = getDigitalButton(page, secondScrollerId, i);
assertEquals("span", currentDigital2.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital2.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// if scroller outside dataTable has switched
HtmlElement currentDigital1 = getDigitalButton(page, firstScrollerId, i);
assertEquals("span", currentDigital1.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital1.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// check if page has switched
assertEquals(i + " page content", getCurrentPageContent(page, i));
}
checkLastPageButtons(page, firstScrollerId, secondScrollerId);
// scroll back
for (int i = 4; i >= 1; i--) {
HtmlElement currentDigital2 = getDigitalButton(page, secondScrollerId, i);
currentDigital2.click();
currentDigital2 = getDigitalButton(page, secondScrollerId, i);
assertEquals("span", currentDigital2.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital2.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// if scroller inside dataTable has switched
HtmlElement currentDigital1 = getDigitalButton(page, firstScrollerId, i);
assertEquals("span", currentDigital1.getNodeName());
assertEquals("rf-ds-nmb-btn rf-ds-act", currentDigital1.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// check if page has switched
assertEquals(i + " page content", getCurrentPageContent(page, i));
}
checkFirstPageButtons(page, firstScrollerId, secondScrollerId);
}
@After
public void tearDown() {
environment.release();
environment = null;
}
private void checkFirstPageButtons(HtmlPage page, String firstScrollerId, String secondScrollerId) throws Exception {
HtmlElement fastForward = getFastForwardButton(page, firstScrollerId);
HtmlElement last = getLastButton(page, firstScrollerId);
HtmlElement next = getNextButton(page, firstScrollerId);
// check right buttons
assertEquals("a", fastForward.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-fastfwd", fastForward.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("a", last.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-last", last.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("a", next.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-next", next.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
fastForward = getFastForwardButton(page, secondScrollerId);
last = getLastButton(page, secondScrollerId);
next = getNextButton(page, secondScrollerId);
assertEquals("a", fastForward.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-fastfwd", fastForward.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("a", last.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-last", last.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("a", next.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-next", next.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// check if left buttons is disabled
HtmlElement fastRewind = getFastRewindButton(page, firstScrollerId);
HtmlElement first = getFirstButton(page, firstScrollerId);
HtmlElement previous = getPreviousButton(page, firstScrollerId);
assertEquals("span", fastRewind.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-fastrwd rf-ds-dis", fastRewind.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("span", first.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-first rf-ds-dis", first.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("span", previous.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-prev rf-ds-dis", previous.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
fastRewind = getFastRewindButton(page, secondScrollerId);
first = getFirstButton(page, secondScrollerId);
next = getNextButton(page, secondScrollerId);
assertEquals("span", fastRewind.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-fastrwd rf-ds-dis", fastRewind.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("span", first.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-first rf-ds-dis", first.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("span", previous.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-prev rf-ds-dis", previous.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
}
private void checkLastPageButtons(HtmlPage page, String firstScrollerId, String secondScrollerId) throws Exception {
// check if right buttons is disabled
HtmlElement fastForward = getFastForwardButton(page, firstScrollerId);
HtmlElement last = getLastButton(page, firstScrollerId);
HtmlElement next = getNextButton(page, firstScrollerId);
assertEquals("span", fastForward.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-fastfwd rf-ds-dis", fastForward.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("span", last.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-last rf-ds-dis", last.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("span", next.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-next rf-ds-dis", next.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
fastForward = getFastForwardButton(page, secondScrollerId);
last = getFastForwardButton(page, secondScrollerId);
next = getNextButton(page, secondScrollerId);
assertEquals("span", fastForward.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-fastfwd rf-ds-dis", fastForward.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("span", last.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-fastfwd rf-ds-dis", last.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("span", next.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-next rf-ds-dis", next.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
// check if left buttons is enabled
HtmlElement fastRewind = getFastRewindButton(page, firstScrollerId);
HtmlElement first = getFirstButton(page, firstScrollerId);
HtmlElement previous = getPreviousButton(page, firstScrollerId);
assertEquals("a", fastRewind.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-fastrwd", fastRewind.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("a", first.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-first", first.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("a", previous.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-prev", previous.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
fastRewind = getFastRewindButton(page, secondScrollerId);
first = getFirstButton(page, secondScrollerId);
previous = getPreviousButton(page, secondScrollerId);
assertEquals("a", fastRewind.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-fastrwd", fastRewind.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("a", first.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-first", first.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
assertEquals("a", previous.getNodeName());
assertEquals("rf-ds-btn rf-ds-btn-prev", previous.getAttribute(HtmlConstants.CLASS_ATTRIBUTE).trim());
}
private String getCurrentPageContent(HtmlPage page, int i) throws Exception {
HtmlElement content = page.getFirstByXPath("//*[@id = 'form:richTable:" + (--i) + ":pageContent']");
DomNode text = content.getFirstChild();
assertEquals(DomNode.TEXT_NODE, text.getNodeType());
return text.getNodeValue();
}
private HtmlElement getPreviousButton(HtmlPage page, String scrollerId) {
return page.getFirstByXPath("//*[@id = 'form:" + scrollerId + "_ds_prev']");
}
private HtmlElement getNextButton(HtmlPage page, String scrollerId) {
return page.getFirstByXPath("//*[@id = 'form:" + scrollerId + "_ds_next']");
}
private HtmlElement getFastRewindButton(HtmlPage page, String scrollerId) {
return page.getFirstByXPath("//*[@id = 'form:" + scrollerId + "_ds_fr']");
}
private HtmlElement getFirstButton(HtmlPage page, String scrollerId) {
return page.getFirstByXPath("//*[@id = 'form:" + scrollerId + "_ds_f']");
}
private HtmlElement getFastForwardButton(HtmlPage page, String scrollerId) {
return page.getFirstByXPath("//*[@id = 'form:" + scrollerId + "_ds_ff']");
}
private HtmlElement getLastButton(HtmlPage page, String scrollerId) {
return page.getFirstByXPath("//*[@id = 'form:" + scrollerId + "_ds_l']");
}
private HtmlElement getDigitalButton(HtmlPage page, String scrollerId, int i) {
return page.getFirstByXPath("//*[@id = 'form:" + scrollerId + "_ds_" + i + "']");
}
}