package com.vaadin.addon.spreadsheet.test;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import com.vaadin.addon.spreadsheet.elements.SheetCellElement;
import com.vaadin.addon.spreadsheet.elements.SpreadsheetElement;
import com.vaadin.addon.spreadsheet.test.fixtures.TestFixtures;
public class PopupButtonTest extends AbstractSpreadsheetTestCase {
@Override
public void setUp() throws Exception {
super.setUp();
headerPage.createNewSpreadsheet();
}
@Test
public void popupButton_addAndShowListSelectPopup_PopupShownCorrectly() {
headerPage.loadTestFixture(TestFixtures.PopupButton);
SpreadsheetElement spreadsheetElement = $(SpreadsheetElement.class)
.first();
final SheetCellElement d1 = spreadsheetElement.getCellAt("D1");
d1.click();
waitUntil(new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver webDriver) {
return d1.hasPopupButton();
}
});
assertTrue(spreadsheetElement.isPopupButtonPopupVisible());
}
@Test
public void popupButton_addAndShowTabsheetPopup_PopupShownCorrectly()
throws IOException {
headerPage.loadTestFixture(TestFixtures.TabsheetPopupButton);
SpreadsheetElement spreadsheetElement = $(SpreadsheetElement.class)
.first();
final SheetCellElement d1 = spreadsheetElement.getCellAt("D1");
d1.click();
waitUntil(new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver webDriver) {
return d1.hasPopupButton();
}
});
d1.popupButtonClick();
assertTrue("PopupButton popup not visible",
spreadsheetElement.isPopupButtonPopupVisible());
compareScreen("popupbutton_tabsheet");
}
@Test
public void popupButton_addAndShowTablePopup_PopupShownCorrectly()
throws IOException {
headerPage.loadTestFixture(TestFixtures.TablePopupButton);
SpreadsheetElement spreadsheetElement = $(SpreadsheetElement.class)
.first();
final SheetCellElement d1 = spreadsheetElement.getCellAt("D1");
d1.click();
waitUntil(new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver webDriver) {
return d1.hasPopupButton();
}
});
d1.popupButtonClick();
assertTrue("PopupButton popup not visible",
spreadsheetElement.isPopupButtonPopupVisible());
compareScreen("popupbutton_table");
}
@Test
public void popupButton_showPopupAndScroll_popupRemoved() {
headerPage.loadTestFixture(TestFixtures.PopupButton);
final SpreadsheetElement spreadsheetElement = $(
SpreadsheetElement.class).first();
final SheetCellElement d1 = spreadsheetElement.getCellAt("D1");
d1.click();
waitUntil(new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver webDriver) {
return d1.hasPopupButton();
}
});
spreadsheetElement.scroll(1000);
waitUntil(new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver webDriver) {
return !spreadsheetElement.isPopupButtonPopupVisible();
}
});
}
@Test
public void popupButton_cellHasAPopupButtonAndFreezePaneIsAdded_theCellStillHasAPopupButton() {
headerPage.loadTestFixture(TestFixtures.PopupButton);
SpreadsheetElement spreadsheetElement = $(SpreadsheetElement.class)
.first();
final SheetCellElement d1 = spreadsheetElement.getCellAt("D1");
d1.click();
waitUntil(new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver webDriver) {
return d1.hasPopupButton();
}
});
headerPage.addFreezePane();
assertTrue(spreadsheetElement.getCellAt("D1").hasPopupButton());
}
}