blob: a6534ce6c31f6b186d658d307ef19ed025a33a7e [file] [log] [blame]
/*
* Copyright 2010 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.gwt.user.cellview.client;
import com.google.gwt.aria.client.Property;
import com.google.gwt.aria.client.Roles;
import com.google.gwt.aria.client.State;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.NodeList;
import com.google.gwt.user.cellview.client.SimplePager.ImageButtonsConstants;
import com.google.gwt.view.client.HasRows;
import com.google.gwt.view.client.MockHasData;
/**
* Tests for {@link SimplePager}.
*/
public class SimplePagerTest extends AbstractPagerTest {
private ImageButtonsConstants imageButtonConstants;
@Override
protected void gwtSetUp() throws Exception {
super.gwtSetUp();
imageButtonConstants = GWT.create(ImageButtonsConstants.class);
}
public void testAriaAttributesAdded_firstLoad() {
SimplePager pager = createPager();
NodeList<Element> nodeList = pager.getElement().getElementsByTagName("img");
for (int i = 0; i < nodeList.getLength(); i++) {
Element imgElem = nodeList.getItem(i);
assertEquals(Roles.getButtonRole().getName(), imgElem.getAttribute("role"));
String label = imgElem.getAttribute(Property.LABEL.getName());
assertNotNull(label);
if (label.equals(imageButtonConstants.firstPage())
|| label.equals(imageButtonConstants.prevPage())
|| label.equals(imageButtonConstants.nextPage())) {
assertEquals("true", imgElem.getAttribute(State.DISABLED.getName()));
} else {
assertEquals("", imgElem.getAttribute(State.DISABLED.getName()));
}
}
}
public void testNextButtonsDisabled() {
SimplePager pager = createPager();
// Buttons are disabled by default.
assertTrue(pager.isPreviousButtonDisabled());
assertTrue(pager.isNextButtonDisabled());
// Set the display.
HasRows display = new MockHasData<String>();
display.setRowCount(1000);
pager.setDisplay(display);
// First Page.
display.setVisibleRange(0, 20);
assertTrue(pager.isPreviousButtonDisabled());
assertFalse(pager.isNextButtonDisabled());
// Middle Page.
display.setVisibleRange(100, 20);
assertFalse(pager.isPreviousButtonDisabled());
assertFalse(pager.isNextButtonDisabled());
// Last Page.
display.setVisibleRange(980, 20);
assertFalse(pager.isPreviousButtonDisabled());
assertTrue(pager.isNextButtonDisabled());
}
public void testNextButtonsDisabledWithEmptyDisplay() {
SimplePager pager = createPager();
// Set the display.
HasRows display = new MockHasData<String>();
// Set range limited
pager.setRangeLimited(true);
pager.setPageSize(30);
pager.setDisplay(display);
assertTrue(pager.isPreviousButtonDisabled());
assertTrue(pager.isNextButtonDisabled());
}
public void testNextButtonsDisabledWithEmptyDataGrid() {
SimplePager pager = createPager();
// Set the display.
DataGrid<String> display = new DataGrid<String>();
// Set range limited
pager.setRangeLimited(true);
pager.setPageSize(30);
pager.setDisplay(display);
assertTrue(pager.isPreviousButtonDisabled());
assertTrue(pager.isNextButtonDisabled());
}
@Override
protected SimplePager createPager() {
return new SimplePager();
}
}