diff -r e8e63152f320 -r 2a9601315dfc javauis/lcdui_qt/tsrc/src/com/nokia/openlcdui/mt/alert/AlertTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javauis/lcdui_qt/tsrc/src/com/nokia/openlcdui/mt/alert/AlertTest.java Mon May 03 12:27:20 2010 +0300 @@ -0,0 +1,373 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +package com.nokia.openlcdui.mt.alert; + +import junit.framework.*; +import javax.microedition.lcdui.*; + +import java.io.IOException; + +import com.nokia.openlcdui.mt.SWTTestCase; + +/** + * TEST CASE SPECIFICATION
+ *
+ * Short description of the module test: + *
  • Collection of tests to test Alert's API functionality.
    + *
    + */ +public class AlertTest extends SWTTestCase { + + private static String shortString = "Lorem ipsum"; + + private static String longString = "Lorem ipsum dolor sit amet, " + + "consectetuer adipiscing elit. Cras turpis ligula, " + + "condimentum nec, rhoncus quis, molestie in, arcu. " + + "Curabitur id lacus. Quisque dictum nulla id odio. " + + "Nullam nec urna. Cras ac lacus nec lacus iaculis aliquet." + + " Integer ut eros. Proin laoreet justo et augue. " + + "Praesent dui. Proin vel leo a eros auctor convallis. " + + "Aenean urna nunc, sagittis vel, pellentesque a, " + + "luctus a, metus. Phasellus posuere lacus nec augue." + + "Nullam nec urna. Cras ac lacus nec lacus iaculis aliquet." + + " Integer ut eros. Proin laoreet justo et augue. " + + "Praesent dui. Proin vel leo a eros auctor convallis. " + + "Aenean urna nunc, sagittis vel, pellentesque a, " + + "luctus a, metus. Phasellus posuere lacus nec augue." + + "Nullam nec urna. Cras ac lacus nec lacus iaculis aliquet." + + " Integer ut eros. Proin laoreet justo et augue. " + + "Praesent dui. Proin vel leo a eros auctor convallis. " + + "Aenean urna nunc, sagittis vel, pellentesque a, " + + "luctus a, metus. Phasellus posuere lacus nec augue."; + + + private static final int INVALID_ALERT_TIMEOUT = -3000; + private static final int VALID_ALERT_TIMEOUT = 2000; + + + /** + * Constructor. + */ + public AlertTest() { + } + + /** + * Constructor. + * + * @param sTestName Test name. + * @param rTestMethod Test method. + */ + public AlertTest(String sTestName) { + super(sTestName); + } + + /** + * To create the test suite. You need to add a new aSuite.addTest entry for + * any new test methods. + * + * @return New testsuite. + */ + public static Test suite() { + TestSuite suite = new TestSuite(); + + java.util.Vector methodNames; + java.util.Enumeration e; + + // Add widget tests + methodNames = AlertTest.methodNames(); + e = methodNames.elements(); + while (e.hasMoreElements()) { + suite.addTest(new AlertTest((String)e.nextElement())); + } + + return suite; + } + + public static java.util.Vector methodNames() { + java.util.Vector methodNames = new java.util.Vector(); + methodNames.addElement("testConstructors"); + methodNames.addElement("testSetGetTimeout"); + methodNames.addElement("testSetGetType"); + methodNames.addElement("testSetGetImage"); + methodNames.addElement("testSetGetTexts"); + methodNames.addElement("testSetGetIndicators"); + methodNames.addElement("testCommands"); + return methodNames; + } + + protected void runTest() throws Throwable { + if (getName().equals("testConstructors")) testConstructors(); + else if (getName().equals("testSetGetTimeout")) testSetGetTimeout(); + else if (getName().equals("testSetGetType")) testSetGetType(); + else if (getName().equals("testSetGetImage")) testSetGetImage(); + else if (getName().equals("testSetGetTexts")) testSetGetTexts(); + else if (getName().equals("testSetGetIndicators")) testSetGetIndicators(); + else if (getName().equals("testCommands")) testCommands(); + else super.runTest(); + } + + /** + * Tests the constructors. + */ + public void testConstructors() { + try { + new Alert(null); + } + catch (Exception e) { + fail("Exception - Constructor with null title - " + e.getMessage()); + } + + try { + new Alert(shortString); + } + catch (Exception e) { + fail("Exception - Constructor with short text - " + e.getMessage()); + } + + try { + new Alert(shortString, longString, null, null); + } + catch (Exception e) { + fail("Exception - Constructor with long text - " + e.getMessage()); + } + } + + /** + * Tests setter and getter t. + */ + public void testSetGetTimeout() { + Alert alert = new Alert(shortString); + alert.setTimeout(VALID_ALERT_TIMEOUT); + assertEquals("Timeouts don't match.", VALID_ALERT_TIMEOUT, alert + .getTimeout()); + alert.setTimeout(Alert.FOREVER); + assertEquals("Timeouts don't match.", Alert.FOREVER, alert.getTimeout()); + try { + alert.setTimeout(INVALID_ALERT_TIMEOUT); + fail("IllegalArgumentException should be thrown"); + } + catch (IllegalArgumentException iae) { + // OK + } + } + + /** + * Tests set and get type. + */ + public void testSetGetType() { + Alert alert = new Alert(shortString); + + alert.setType(AlertType.ALARM); + assertEquals("Types don't match.", AlertType.ALARM, alert.getType()); + + alert.setType(AlertType.CONFIRMATION); + assertEquals("Types don't match.", AlertType.CONFIRMATION, alert + .getType()); + + alert.setType(AlertType.ERROR); + assertEquals("Types don't match.", AlertType.ERROR, alert.getType()); + + alert.setType(AlertType.INFO); + assertEquals("Types don't match.", AlertType.INFO, alert.getType()); + + alert.setType(AlertType.WARNING); + assertEquals("Types don't match.", AlertType.WARNING, alert.getType()); + } + + /** + * Tests set and get image. + */ + public void testSetGetImage() { + try { + Alert alert = new Alert(shortString); + alert.setImage(null); + assertEquals("Images don't match.", null, alert.getImage()); + + Image param = Image.createImage("100x100.png"); + alert.setImage(param); + assertEquals("Images don't match.", param, alert.getImage()); + } + catch (IOException e) { + fail("Cannot load image 100x100.png"); + } + } + + /** + * Tests set and get texts. + */ + public void testSetGetTexts() { + Alert alert = new Alert(shortString); + alert.setString(null); + assertEquals("String don't match.", null, alert.getString()); + + alert.setString(shortString); + assertEquals("Strings dont match.", shortString, alert.getString()); + assertTrue("Alert with short text is modal", + alert.getTimeout() != Alert.FOREVER); + + alert.setString(longString); + assertEquals("Strings dont match", longString, alert.getString()); + assertTrue("Alert with long text is not modal", + alert.getTimeout() == Alert.FOREVER); + } + + /** + * Tests set and get indicator methods and Gauge-Alert interaction related + * Item methods. + */ + public void testSetGetIndicators() { + Alert alert = new Alert(shortString); + Gauge param1 = new Gauge(null, false, 10, 0); + alert.setIndicator(param1); + assertEquals("Indicators don't match.", param1, alert.getIndicator()); + + try { + Gauge param2 = new Gauge("Label", true, 10, 0); + alert.setIndicator(param2); + fail("1. IllegalArgumentException expected"); + } + catch (IllegalArgumentException iae) { + } + + try { + param1.addCommand(new Command("Comm1", Command.ITEM, 0)); + fail("2. IllegalStateException expected"); + } + catch (IllegalStateException ise) { + } + + try { + param1.setDefaultCommand(new Command("Comm1", Command.ITEM, 0)); + fail("3. IllegalStateException expected"); + } + catch (IllegalStateException ise) { + } + + try { + ItemCommandListener icl = new ItemCommandListener() { + public void commandAction(Command command, Item item) { + } + }; + param1.setItemCommandListener(icl); + fail("4. IllegalStateException expected"); + } + catch (IllegalStateException ise) { + } + + try { + param1.setLabel("Label"); + fail("5. IllegalStateException expected"); + } + catch (IllegalStateException ise) { + } + + try { + param1.setLayout(Item.LAYOUT_BOTTOM); + fail("6. IllegalStateException expected"); + } + catch (IllegalStateException ise) { + } + + try { + param1.setPreferredSize(10, 10); + fail("7. IllegalStateException expected"); + } + catch (IllegalStateException ise) { + } + + alert.setIndicator(null); + } + + /** + * Tests commands on Alert. + */ + public void testCommands() { + try { + Alert alert = new Alert(shortString); + CommandListener param = new CommandListener() { + public void commandAction(Command c, Displayable d) { + } + }; + alert.setCommandListener(param); + alert.setCommandListener(null); + } + catch (Exception e) { + fail("Exception - Setting and removing CommandListener - " + + e.getMessage()); + } + + try { + Alert alert = new Alert(shortString); + // adding null command + alert.addCommand(null); + fail("NullPointerException expected - NULL command added to Alert"); + } + catch (NullPointerException npe) { + // Ok + } + catch (Exception e) { + fail("Wrong exception is thrown instead of NullPointerException - " + + "NULL command added to Alert" + e.getMessage()); + } + + try { + Alert alert = new Alert(shortString); + + // test default command + alert.addCommand(Alert.DISMISS_COMMAND); + assertTrue("Default Alert shouldn't be modal", + alert.getTimeout() != Alert.FOREVER); + alert.removeCommand(Alert.DISMISS_COMMAND); + + Command c1 = new Command("Comm1", Command.ITEM, 0); + Command c2 = new Command("Comm2", Command.ITEM, 0); + Command c3 = new Command("Comm3", Command.ITEM, 0); + Command c4 = new Command("Comm4", Command.ITEM, 0); + Command c5 = new Command("Comm5", Command.ITEM, 0); + + // add commands + alert.addCommand(c1); + assertTrue("Default Alert with 1 command shouldn't be modal", alert + .getTimeout() != Alert.FOREVER); + alert.addCommand(c2); + assertTrue("Default Alert with 2 commands should be modal", alert + .getTimeout() == Alert.FOREVER); + alert.addCommand(c3); + alert.addCommand(c4); + alert.addCommand(c5); + assertTrue("Default Alert with 5 commands should be modal", alert + .getTimeout() == Alert.FOREVER); + + // remove commands + alert.removeCommand(c5); + alert.removeCommand(c4); + alert.removeCommand(c3); + assertTrue("Default Alert with 2 commands should be modal", alert + .getTimeout() == Alert.FOREVER); + alert.removeCommand(c2); + assertTrue("Default Alert with 1 command shouldn't be modal", alert + .getTimeout() != Alert.FOREVER); + alert.removeCommand(c1); + assertTrue("Default Alert shouldn't be modal", + alert.getTimeout() != Alert.FOREVER); + } + catch (Exception e) { + fail("Exception - Adding 5 commands - " + e.getMessage()); + } + } + +}