blob: 855ec82dedb433fa6da4e0c4201a508a8935f1c6 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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 fvt.gui.sc.validity;
import static org.junit.Assert.*;
import static testlib.gui.AppTool.*;
import static testlib.gui.UIMap.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.openoffice.test.common.Logger;
import testlib.gui.AppTool;
import testlib.gui.SCTool;
public class ValidityDialogSetting {
@Rule
public Logger log = Logger.getLogger(this);
@Before
public void setUp() throws Exception {
app.start(true);
AppTool.newSpreadsheet();
SCTool.selectRange("A1:C5");
app.dispatch(".uno:Validation");
}
@After
public void tearDown() throws Exception {
app.stop();
}
/**
* test Allow not between Date type in Validity.
*/
@Test
public void testAllowDateNotBetween() {
scValidityCriteriaTabpage.select();
scValidityCriteriaAllowList.select(3); // "Date"
scValidityDecimalCompareOperator.select(7); // "not between"
scValiditySourceInput.setText("01/01/08");
scValidityMaxValueInput.setText("03/01/08");
scValidityErrorAlertTabPage.select();
scValidityShowErrorMessage.check();
scValidityErrorMessageTitle.setText("Stop to enter");
scValidityErrorMessage.setText("Invalid value");
scValidityErrorAlertTabPage.ok();
SCTool.selectRange("A1");
scInputBarInput.activate();
typeKeys("12/31/07");
typeKeys("<enter>");
assertEquals("12/31/07", SCTool.getCellText("A1"));
SCTool.selectRange("A2");
scInputBarInput.activate();
typeKeys("03/02/08");
typeKeys("<enter>");
assertEquals("03/02/08", SCTool.getCellText("A2"));
SCTool.selectRange("A3");
scInputBarInput.activate();
typeKeys("01/01/08");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("A3"));
SCTool.selectRange("A4");
scInputBarInput.activate();
typeKeys("03/01/08");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("A4"));
SCTool.selectRange("A5");
scInputBarInput.activate();
typeKeys("01/02/08");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("A5"));
SCTool.selectRange("B1");
scInputBarInput.activate();
typeKeys("02/29/08");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("B1"));
SCTool.selectRange("B2");
scInputBarInput.activate();
typeKeys("test");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("B2"));
SCTool.selectRange("B3");
scInputBarInput.activate();
typeKeys("39448");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("B3"));
}
/**
* test Allow Decimal equal in Validity.
*/
@Test
public void testAllowDecimalEqual() {
scValidityCriteriaTabpage.select();
scValidityCriteriaAllowList.select(2); // "Decimal"
scValidityDecimalCompareOperator.select(0); // "equal"
scValiditySourceInput.setText("0.33333333");
scValidityErrorAlertTabPage.select();
scValidityShowErrorMessage.check();
scValidityErrorMessageTitle.setText("Stop to enter");
scValidityErrorMessage.setText("Invalid value");
scValidityErrorAlertTabPage.ok();
SCTool.selectRange("A1");
scInputBarInput.activate();
typeKeys("0.33333333");
typeKeys("<enter>");
assertEquals("0.33333333", SCTool.getCellText("A1"));
SCTool.selectRange("A2");
scInputBarInput.activate();
typeKeys("=1/3");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("A2"));
SCTool.selectRange("A3");
scInputBarInput.activate();
typeKeys("0.3");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("A3"));
SCTool.selectRange("A4");
scInputBarInput.activate();
typeKeys("0.333333333");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("A4"));
SCTool.selectRange("B2");
scInputBarInput.activate();
typeKeys("test");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("B2"));
}
/**
* test Allow Text length, greater than or equal to in Validity.
*/
@Test
public void testAllowGreaterTextLength() {
scValidityCriteriaTabpage.select();
scValidityCriteriaAllowList.select(7); // "Text length"
scValidityDecimalCompareOperator.select(4); // "greater than or equal to"
scValiditySourceInput.setText("10");
scValidityErrorAlertTabPage.select();
scValidityShowErrorMessage.check();
scValidityErrorMessageTitle.setText("Stop to enter");
scValidityErrorMessage.setText("Invalid value");
scValidityErrorAlertTabPage.ok();
SCTool.selectRange("A1");
scInputBarInput.activate();
typeKeys("testtesttesttest");
typeKeys("<enter>");
assertEquals("testtesttesttest", SCTool.getCellText("A1"));
SCTool.selectRange("A2");
scInputBarInput.activate();
typeKeys("test test ");
typeKeys("<enter>");
assertEquals("test test ", SCTool.getCellText("A2"));
SCTool.selectRange("A4");
scInputBarInput.activate();
typeKeys(" ");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("A4"));
SCTool.selectRange("A3");
scInputBarInput.activate();
typeKeys("Testatest");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("A3"));
}
/**
* test Allow Text length, less than in Validity.
*/
@Test
public void testAllowLessThanTextLength() {
scValidityCriteriaTabpage.select();
scValidityCriteriaAllowList.select(7); // "Text length"
scValidityDecimalCompareOperator.select(1); // "less than"
scValiditySourceInput.setText("10");
scValidityInputHelpTabPage.select();
scValidityInputHelpCheckbox.check();
scValidityInputHelpTitle.setText("Help Info Title");
scValidityHelpMessage.setText("help info");
scValidityErrorAlertTabPage.select();
scValidityShowErrorMessage.check();
scValidityErrorAlertActionList.select("Information");
scValidityErrorMessageTitle.setText("Notes to enter");
scValidityErrorMessage.setText("Invalid value");
scValidityErrorAlertTabPage.ok();
SCTool.selectRange("A1");
scInputBarInput.activate();
typeKeys("testtesttesttest<enter>");
activeMsgBox.ok();
assertEquals("testtesttesttest", SCTool.getCellText("A1"));
SCTool.selectRange("A2");
scInputBarInput.activate();
typeKeys("sfsafsddddddd<enter>");
activeMsgBox.cancel();
assertEquals("", SCTool.getCellText("A2"));
SCTool.selectRange("A2");
scInputBarInput.activate();
typeKeys("10<enter>");
assertEquals("10", SCTool.getCellText("A2"));
SCTool.selectRange("A3");
scInputBarInput.activate();
typeKeys("ok<enter>");
assertEquals("ok", SCTool.getCellText("A3"));
}
/**
* test Allow list.
*/
@Test
public void testAllowListSpecialChar() {
scValidityCriteriaTabpage.select();
scValidityCriteriaAllowList.select(6); // "List"
scValidityEntries.focus();
typeKeys("a");
typeKeys("<enter>");
typeKeys("b");
scValidityErrorAlertTabPage.select();
scValidityShowErrorMessage.check();
scValidityErrorMessageTitle.setText("Stop to enter");
scValidityErrorMessage.setText("Invalid value");
scValidityCriteriaTabpage.select();
scValidityCriteriaTabpage.ok();
// These codes are not stable: start
// calc.rightClick(1, 1);
// typeKeys("<shift s>");
// typeKeys("<down><enter>"); // Choose a
// sleep(2); // if no sleep, error occur
// These codes are not stable: end
SCTool.selectRange("A1");
scInputBarInput.activate();
typeKeys("a<enter>");
assertEquals("a", SCTool.getCellText("A1"));
SCTool.selectRange("B2");
scInputBarInput.activate();
typeKeys("test");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("B2"));
}
/**
* test Allow time between in Validity.
*/
@Test
public void testAllowTimeBetween() {
scValidityCriteriaTabpage.select();
scValidityCriteriaAllowList.select(4); // "Time"
scValidityDecimalCompareOperator.select(6); // "between"
scValiditySourceInput.setText("27:00");
scValidityMaxValueInput.setText("21:00");
scValidityErrorAlertTabPage.select();
scValidityShowErrorMessage.check();
scValidityErrorMessageTitle.setText("Stop to enter");
scValidityErrorMessage.setText("Invalid value");
scValidityErrorAlertTabPage.ok();
SCTool.selectRange("A1");
scInputBarInput.activate();
typeKeys("21:00");
typeKeys("<enter>");
assertEquals("09:00:00 PM", SCTool.getCellText("A1"));
SCTool.selectRange("A2");
scInputBarInput.activate();
typeKeys("27:00");
typeKeys("<enter>");
assertEquals("27:00:00", SCTool.getCellText("A2"));
SCTool.selectRange("A3");
scInputBarInput.activate();
typeKeys("1.125");
typeKeys("<enter>");
assertEquals("1.125", SCTool.getCellText("A3"));
SCTool.selectRange("A4");
scInputBarInput.activate();
typeKeys("0.875");
typeKeys("<enter>");
assertEquals("0.875", SCTool.getCellText("A4"));
SCTool.selectRange("B1");
scInputBarInput.activate();
typeKeys("03:00:01");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("B1"));
SCTool.selectRange("B2");
scInputBarInput.activate();
typeKeys("20:59:59");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("B2"));
SCTool.selectRange("B3");
scInputBarInput.activate();
typeKeys("1.126");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("B3"));
SCTool.selectRange("B4");
scInputBarInput.activate();
typeKeys("0.874");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("B4"));
SCTool.selectRange("C1");
scInputBarInput.activate();
typeKeys("test");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("C1"));
SCTool.selectRange("C2");
scInputBarInput.activate();
typeKeys("24:00");
typeKeys("<enter>");
assertEquals("24:00:00", SCTool.getCellText("C2"));
SCTool.selectRange("C3");
scInputBarInput.activate();
typeKeys("12:00");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("C3"));
}
/**
* test Allow time Greater than and equal to in Validity.
*/
@Test
public void testAllowTimeGreaterThan() {
scValidityCriteriaTabpage.select();
scValidityCriteriaAllowList.select(4); // "Time"
scValidityDecimalCompareOperator.select(4); // "greater than or equal to"
scValiditySourceInput.setText("8:00");
scValidityErrorAlertTabPage.select();
scValidityShowErrorMessage.check();
scValidityErrorAlertActionList.select(1); // "Warning"
scValidityErrorMessageTitle.setText("warning to enter");
scValidityErrorMessage.setText("Invalid value");
scValidityErrorAlertTabPage.ok();
SCTool.selectRange("A1");
scInputBarInput.activate();
typeKeys("7:30");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("07:30:00 AM", SCTool.getCellText("A1"));
SCTool.selectRange("A2");
scInputBarInput.activate();
typeKeys("6:00");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.cancel();
assertEquals("", SCTool.getCellText("A2"));
SCTool.selectRange("A3");
scInputBarInput.activate();
typeKeys("8:00");
typeKeys("<enter>");
assertEquals("08:00:00 AM", SCTool.getCellText("A3"));
}
/**
* test Allow whole number, less than or equal to in Validity.
*/
@Test
public void testAllowWholeNumLessThan() {
scValidityCriteriaTabpage.select();
scValidityCriteriaAllowList.select(1); // "Whole Numbers"
scValidityDecimalCompareOperator.select(3); // "less than or equal"
scValiditySourceInput.setText("100");
scValidityErrorAlertTabPage.select();
scValidityShowErrorMessage.check();
scValidityErrorMessageTitle.setText("Stop to enter");
scValidityErrorMessage.setText("Invalid value");
scValidityErrorAlertTabPage.ok();
SCTool.selectRange("A1");
scInputBarInput.activate();
typeKeys("99");
typeKeys("<enter>");
assertEquals("99", SCTool.getCellText("A1"));
SCTool.selectRange("A2");
scInputBarInput.activate();
typeKeys("100");
typeKeys("<enter>");
assertEquals("100", SCTool.getCellText("A2"));
SCTool.selectRange("B1");
scInputBarInput.activate();
typeKeys("101");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("B1"));
SCTool.selectRange("B2");
scInputBarInput.activate();
typeKeys("45.5");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("B2"));
SCTool.selectRange("C1");
scInputBarInput.activate();
typeKeys("test");
typeKeys("<enter>");
assertEquals("Invalid value", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("C1"));
}
/**
* test default message of Error Alert in Validity.
*/
@Test
public void testDefaultErrorAlertMessage() {
scValidityCriteriaTabpage.select();
scValidityCriteriaAllowList.select(2); // "Decimal"
scValidityDecimalCompareOperator.select(0); // "equal"
scValiditySourceInput.setText("1");
scValidityErrorAlertTabPage.select();
scValidityShowErrorMessage.check();
scValidityErrorAlertActionList.select(0); // "Stop"
scValidityErrorAlertTabPage.ok();
SCTool.selectRange("A1");
scInputBarInput.activate();
typeKeys("13");
typeKeys("<enter>");
assertEquals("OpenOffice Calc", activeMsgBox.getCaption());
// assertEquals("Invalid value.",ActiveMsgBox.getMessage()); // Can not
// verify in multi-language
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("A1"));
}
/**
* test uncheck Error Alert in Validity.
*/
@Test
public void testUncheckErrorAlert() {
scValidityCriteriaTabpage.select();
scValidityCriteriaAllowList.select(2); // "Decimal"
scValidityDecimalCompareOperator.select(0); // "equal"
scValiditySourceInput.setText("1");
scValidityErrorAlertTabPage.select();
scValidityShowErrorMessage.uncheck();
scValidityErrorAlertActionList.select(0); // "Stop"
scValidityErrorAlertTabPage.ok();
SCTool.selectRange("A1");
typeKeys("13");
typeKeys("<enter>");
assertEquals("13", SCTool.getCellText("A1"));
}
/**
* test Cell range source picker in Validity. Input from Edit Box.
*/
@Test
public void testValidityCellRangeSourcePicker() {
scValidityCriteriaTabpage.select();
scValidityCriteriaAllowList.select(5); // "Cell range"
scValiditySourcePicker.click();
assertEquals(false, scValidityCriteriaAllowList.exists());
scValiditySourceInput.setText("$E$2:$G$5");
scValiditySourcePicker.click();
assertEquals(true, scValidityCriteriaAllowList.exists());
scValidityErrorAlertTabPage.select();
scValidityShowErrorMessage.check();
scValidityErrorAlertActionList.select(0); // "Stop"
scValidityErrorMessageTitle.setText("Stop to enter");
scValidityErrorMessage.setText("Invalid value.");
scValidityErrorAlertTabPage.ok();
// calc.focus();
SCTool.selectRange("E2");
scInputBarInput.activate();
typeKeys("test");
typeKeys("<enter>");
SCTool.selectRange("A1");
scInputBarInput.activate();
typeKeys("test32");
typeKeys("<enter>");
assertEquals("Invalid value.", activeMsgBox.getMessage());
activeMsgBox.ok();
assertEquals("", SCTool.getCellText("A1"));
SCTool.selectRange("B1");
scInputBarInput.activate();
typeKeys("test");
typeKeys("<enter>");
assertEquals("test", SCTool.getCellText("B1"));
}
/**
* test Allow Blank cell Checkbox in Validity.
*/
@Test
public void testAllowBlankCells() {
scValidityCriteriaTabpage.select();
scValidityCriteriaAllowList.select(5); // "Cell range"
scValiditySourceInput.setText("$E$1:$E$5");
scValidityAllowBlankCells.check();
scValidityCriteriaTabpage.ok();
SCTool.selectRange("E1");
typeKeys("A<enter>A<enter>A<enter>A<enter>A<enter>");
SCTool.selectRange("A1");
typeKeys("A<enter>");
SCTool.selectRange("D1");
scInputBarInput.activate();
typeKeys("<backspace><enter>");
assertEquals("", SCTool.getCellText("D1"));
SCTool.selectRange("B1");
app.dispatch(".uno:Validation");
scValidityCriteriaTabpage.select();
scValidityAllowBlankCells.uncheck();
typeKeys("<enter>");
SCTool.selectRange("B1");
scInputBarInput.activate();
typeKeys("<backspace><enter>");
typeKeys("<enter>");
}
}