blob: d7b5c23f1c7c97d0a0cc07f5246ea6ef63f85706 [file] [log] [blame]
/*
* Copyright 2008 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.client.ui;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
/**
* Test for {@link DecoratorPanel}.
*/
public class DecoratorPanelTest extends SimplePanelTestBase<DecoratorPanel> {
/**
* Assert that an element has the specified class name.
*
* @param elem the DOM {@link Element}
* @param styleName the style name the element should have
*/
private static void assertStyleName(Element elem, String styleName) {
assertEquals(styleName, DOM.getElementProperty(elem, "className"));
}
/**
* Test addition and removal of widgets.
*/
public void testAddRemoveWidget() {
DecoratorPanel panel = new DecoratorPanel();
Label contents = new Label("test");
panel.setWidget(contents);
assertEquals(contents, panel.getWidget());
}
/**
* Test the ability to define custom rows.
*/
public void testCustomRows() {
String[] rowStyles = {"rowA", "rowB", "rowC", "rowD"};
DecoratorPanel panel = new DecoratorPanel(rowStyles, 2);
// Check the styles of each row
for (int i = 0; i < rowStyles.length; i++) {
String rowStyle = rowStyles[i];
assertStyleName(DOM.getParent(DOM.getParent(panel.getCellElement(i, 0))),
rowStyle);
assertStyleName(DOM.getParent(panel.getCellElement(i, 0)), rowStyle
+ "Left");
assertStyleName(DOM.getParent(panel.getCellElement(i, 1)), rowStyle
+ "Center");
assertStyleName(DOM.getParent(panel.getCellElement(i, 2)), rowStyle
+ "Right");
}
// Check the container element
assertTrue(panel.getCellElement(2, 1) == panel.getContainerElement());
}
/**
* Test the default styles.
*/
public void testDefaultStyles() {
String[] rowStyles = {"top", "middle", "bottom"};
DecoratorPanel panel = new DecoratorPanel();
// Check the styles of each row
for (int i = 0; i < rowStyles.length; i++) {
String rowStyle = rowStyles[i];
assertStyleName(DOM.getParent(DOM.getParent(panel.getCellElement(i, 0))),
rowStyle);
assertStyleName(DOM.getParent(panel.getCellElement(i, 0)), rowStyle
+ "Left");
assertStyleName(DOM.getParent(panel.getCellElement(i, 1)), rowStyle
+ "Center");
assertStyleName(DOM.getParent(panel.getCellElement(i, 2)), rowStyle
+ "Right");
}
// Check the container element
assertTrue(panel.getCellElement(1, 1) == panel.getContainerElement());
}
@Override
protected DecoratorPanel createPanel() {
return new DecoratorPanel();
}
}