--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/lcdui_qt/tsrc/src/com/nokia/openlcdui/mt/alert/AlertTest.java Tue Aug 31 15:09:22 2010 +0300
@@ -0,0 +1,422 @@
+/*
+* 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 <br>
+ * <br>
+ * Short description of the module test:
+ * <li>Collection of tests to test Alert's API functionality. <br>
+ * <br>
+ */
+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());
+ }
+ }
+
+}