1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 package fvt.gui.sc.cell; 23 24 import static org.junit.Assert.*; 25 import static testlib.gui.AppTool.*; 26 import static testlib.gui.UIMap.*; 27 28 import org.junit.After; 29 import org.junit.Before; 30 import org.junit.Rule; 31 import org.junit.Test; 32 import org.openoffice.test.common.Logger; 33 34 import testlib.gui.AppTool; 35 import testlib.gui.SCTool; 36 37 38 39 public class Cells { 40 41 @Rule 42 public Logger log = Logger.getLogger(this); 43 44 @Before setUp()45 public void setUp() throws Exception { 46 app.start(); 47 AppTool.newSpreadsheet(); 48 } 49 50 @After tearDown()51 public void tearDown() throws Exception { 52 app.stop(); 53 } 54 55 /** 56 * Shift row and column, insert entire row and column 57 * 58 * @throws Exception 59 */ 60 61 @Test testShiftRowandColumn()62 public void testShiftRowandColumn() { 63 64 // Input data to cell range A1:B2 65 SCTool.selectRange("A1"); 66 typeKeys("1<right>2<down><left>3<right>4"); 67 // Set expected result after executing shift cell down 68 String[][] expectedShiftCellDownResult = new String[][] { { "", "2" }, 69 { "1", "4" }, { "3", "" }, }; 70 // Select Cell A1 71 SCTool.selectRange("Sheet1.A1"); 72 // Launch insert cells dialog via menu 73 calc.menuItem("Insert->Cells...").select(); 74 // Select the first option "shift cells down" from dialog 75 typeKeys("<enter>"); 76 // Verify results after shift one cell down 77 assertArrayEquals("Verify results after shift one cell down", 78 expectedShiftCellDownResult, SCTool.getCellTexts("A1:B3")); 79 // Set expected result after executing shift cell right 80 String[][] expectedShiftCellRightResult = new String[][] { 81 { "", "1", "2" }, { "3", "4", "" }, }; 82 // Undo 83 calc.menuItem("Edit->Undo: Insert").select(); 84 85 // Select cell B2 86 SCTool.selectRange("Sheet1.A1"); 87 // Launch insert cells dialog via menu 88 calc.menuItem("Insert->Cells...").select(); 89 // Select the second option "shift cells right" from dialog 90 typeKeys("<down>"); 91 typeKeys("<enter>"); 92 // Verify results after shift one cell right 93 assertArrayEquals("Verify results after shift one cell right", 94 expectedShiftCellRightResult, SCTool.getCellTexts("A1:C2")); 95 // Set expected result after executing insert entire row 96 String[][] expectedEntireRowResult = new String[][] { { "", "" }, 97 { "1", "2" }, { "3", "4" }, }; 98 99 // Undo 100 calc.menuItem("Edit->Undo: Insert").select(); 101 // Select Cell B2 102 SCTool.selectRange("Sheet1.A1"); 103 // Launch insert cells dialog via menu 104 calc.menuItem("Insert->Cells...").select(); 105 106 // Select the third option "Entire row" from dialog 107 typeKeys("<down>"); 108 typeKeys("<enter>"); 109 110 // Verify results after insert entire row 111 assertArrayEquals("Verify results after insert entire row", 112 expectedEntireRowResult, SCTool.getCellTexts("A1:B3")); 113 114 // Set expected result after executing insert entire column 115 String[][] expectedEntireColumnResult = new String[][] { 116 { "", "1", "2" }, { "", "3", "4" }, }; 117 // Undo 118 calc.menuItem("Edit->Undo: Insert").select(); 119 120 // Select Cell A1 121 SCTool.selectRange("Sheet1.A1"); 122 123 // Launch insert cells dialog via menu 124 calc.menuItem("Insert->Cells...").select(); 125 126 // Select the fourth option "Entire column" from dialog 127 typeKeys("<down>"); 128 typeKeys("<enter>"); 129 130 // Verify the results after inserting entire column 131 assertArrayEquals("Verify the results after inserting entire column", 132 expectedEntireColumnResult, SCTool.getCellTexts("A1:C2")); 133 134 } 135 136 } 137