package com.vaadin.addon.spreadsheet.test;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import com.vaadin.addon.spreadsheet.elements.SpreadsheetElement;
import com.vaadin.addon.spreadsheet.test.fixtures.TestFixtures;
import com.vaadin.testbench.parallel.Browser;
public class RowShiftTests extends AbstractSpreadsheetTestCase {
private void createRow(int n, int column) {
for (int i = 0; i < n; i++) {
spreadsheet.getCellAt(i + 1, column).setValue(Integer.toString(i + 1));
}
}
SpreadsheetElement spreadsheet;
@Before
public void setUp() throws Exception {
super.setUp();
headerPage.createNewSpreadsheet();
spreadsheet = $(SpreadsheetElement.class).first();
}
@Test
public void testBasic() {
createRow(10,1);
spreadsheet.getCellAt("A5").click();
headerPage.loadTestFixture(TestFixtures.InsertRow);
Assert.assertEquals("4",spreadsheet.getCellAt("A4").getValue());
Assert.assertEquals("",spreadsheet.getCellAt("A5").getValue());
Assert.assertEquals("5",spreadsheet.getCellAt("A6").getValue());
spreadsheet.getCellAt("A7").click();
headerPage.loadTestFixture(TestFixtures.DeleteRow);
Assert.assertEquals("8",spreadsheet.getCellAt("A8").getValue());
}
@Test
public void testFormula() {
skipBrowser("Sending multiple keys fails with IE", Browser.IE9, Browser.IE10, Browser.IE11);
createRow(10,1);
spreadsheet.getCellAt("B1").setValue("=$A$6");
spreadsheet.getCellAt("C1").setValue("=A6");
spreadsheet.getCellAt("B8").setValue("=$A$6");
spreadsheet.getCellAt("C8").setValue("=A6");
spreadsheet.getCellAt("A3").click();
headerPage.loadTestFixture(TestFixtures.InsertRow);
Assert.assertEquals("6",spreadsheet.getCellAt("B1").getValue());
Assert.assertEquals("6",spreadsheet.getCellAt("C1").getValue());
Assert.assertEquals("6",spreadsheet.getCellAt("B9").getValue());
Assert.assertEquals("6",spreadsheet.getCellAt("C9").getValue());
}
@Test
public void testDeleteFormulaReference() {
skipBrowser("sheetController.putCellContent() fails with PhantomJS", Browser.PHANTOMJS);
spreadsheet.getCellAt("A3").setValue("42");
spreadsheet.getCellAt("C1").setValue("=A3");
spreadsheet.getCellAt("A4").click();
headerPage.loadTestFixture(TestFixtures.DeleteRow);
Assert.assertEquals("42",spreadsheet.getCellAt("A3").getValue());
Assert.assertEquals("42",spreadsheet.getCellAt("C1").getValue());
spreadsheet.getCellAt("A2").click();
headerPage.loadTestFixture(TestFixtures.DeleteRow);
spreadsheet.getCellAt("A3").click();
Assert.assertEquals("42",spreadsheet.getCellAt("A2").getValue());
Assert.assertEquals("42",spreadsheet.getCellAt("C1").getValue());
spreadsheet.getCellAt("A2").click();
headerPage.loadTestFixture(TestFixtures.DeleteRow);
Assert.assertEquals("#REF!",spreadsheet.getCellAt("C1").getValue());
}
}