javauis/lcdui_qt/tsrc/src/com/nokia/openlcdui/mt/form/FormTest.java
changeset 21 2a9601315dfc
child 23 98ccebc37403
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/lcdui_qt/tsrc/src/com/nokia/openlcdui/mt/form/FormTest.java	Mon May 03 12:27:20 2010 +0300
@@ -0,0 +1,611 @@
+/*
+* 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.form;
+
+import junit.framework.*;
+
+import javax.microedition.lcdui.*;
+
+import com.nokia.openlcdui.mt.SWTTestCase;
+
+/**
+ * TEST CASE SPECIFICATION <br>
+ * <br>
+ * Short description of the module test:
+ * <li> Collection of tests to test Form's functionality. <br>
+ * <br>
+ * Created: 2008-07-10
+ */
+public class FormTest extends SWTTestCase {
+
+    private static final int INVALID_APPEARANCE_MODE = 3;
+    private static final int INVALID_LAYOUT = 4;
+
+    /**
+     * Constructor.
+     */
+    public FormTest() {
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param sTestName Test name.
+     * @param rTestMethod Test method.
+     */
+    public FormTest(String sTestName) {
+        super(sTestName);
+    }
+
+    /**
+     * Creates the test suite. You need to add a new aSuite.addTest entry for
+     * any new test methods, otherwise they won't be run.
+     *
+     * @return New testsuite.
+     */
+    public static Test suite() {
+		TestSuite suite = new TestSuite();
+
+	    java.util.Vector methodNames;
+	    java.util.Enumeration e;
+
+	    // Add widget tests
+	    methodNames = FormTest.methodNames();
+	    e = methodNames.elements();
+	    while (e.hasMoreElements()) {
+	        suite.addTest(new FormTest((String)e.nextElement()));
+	    }
+	    return suite;
+    }
+
+    public static java.util.Vector methodNames() {
+        java.util.Vector methodNames = new java.util.Vector();
+        methodNames.addElement("testFormException");
+        methodNames.addElement("testAppendException");
+        methodNames.addElement("testInsertException");
+        methodNames.addElement("testDeleteException");
+        methodNames.addElement("testSetException");
+        methodNames.addElement("testGetException");
+        methodNames.addElement("testSize");
+        methodNames.addElement("testDeleteAll");
+        methodNames.addElement("testGetWidthGetHeight");
+        methodNames.addElement("testFormSetIOOBExceptions");
+        methodNames.addElement("testFormSetNPExceptions");
+        methodNames.addElement("testFormSetISExceptions");
+        methodNames.addElement("testFormInsertIOOBExceptions");
+        methodNames.addElement("testFormInsertNPExceptions");
+        methodNames.addElement("testFormInsertISExceptions");
+        methodNames.addElement("testFormGetIOOBExceptions");
+        methodNames.addElement("testFormDeleteIOOBExceptions");
+        methodNames.addElement("testFormAppend");
+        methodNames.addElement("testFormAppendImage");
+        methodNames.addElement("testFormConstructor");
+        return methodNames;
+    }
+        
+    protected void runTest() throws Throwable {
+        if (getName().equals("testFormException")) testFormException();
+        else if (getName().equals("testAppendException")) testAppendException();
+        else if (getName().equals("testInsertException")) testInsertException();
+        else if (getName().equals("testDeleteException")) testDeleteException();
+        else if (getName().equals("testSetException")) testSetException();
+        else if (getName().equals("testGetException")) testGetException();
+        else if (getName().equals("testSize")) testSize();
+        else if (getName().equals("testDeleteAll")) testDeleteAll();
+        else if (getName().equals("testGetWidthGetHeight")) testGetWidthGetHeight();
+        else if (getName().equals("testFormSetIOOBExceptions")) testFormSetIOOBExceptions();
+        else if (getName().equals("testFormSetNPExceptions")) testFormSetNPExceptions();
+        else if (getName().equals("testFormSetISExceptions")) testFormSetISExceptions();
+        else if (getName().equals("testFormInsertIOOBExceptions")) testFormInsertIOOBExceptions();
+        else if (getName().equals("testFormInsertNPExceptions")) testFormInsertNPExceptions();
+        else if (getName().equals("testFormInsertISExceptions")) testFormInsertISExceptions();
+        else if (getName().equals("testFormGetIOOBExceptions")) testFormGetIOOBExceptions();
+        else if (getName().equals("testFormDeleteIOOBExceptions")) testFormDeleteIOOBExceptions();
+        else if (getName().equals("testFormAppend")) testFormAppend();
+        else if (getName().equals("testFormAppendImage")) testFormAppendImage();
+        else if (getName().equals("testFormConstructor")) testFormConstructor();
+        else super.runTest();
+    }
+        
+        
+    /**
+     * Constructor Exception test.
+     */
+    public void testFormException() {
+        Form formContainer = new Form("Form Title");
+        StringItem itemOwned = new StringItem("label", "text", 0);
+        formContainer.append(itemOwned);
+
+        Item[] items1 = {new StringItem(null, "body",  0), itemOwned, };
+        Item[] items2 = {new StringItem(null, "body2", 0), null, };
+
+        try {
+            Form formEx = new Form("header", items1);
+            fail("IllegalStateException not thrown");
+        }
+        catch (IllegalStateException ise) {
+        	// Ok
+        }
+
+        try {
+            Form formEx = new Form("header", items2);
+            fail("NullPointerException not thrown");
+        }
+        catch (NullPointerException npe) {
+        	// OK
+        }
+    }
+
+    /**
+     * Tests that append throws correct exceptions in case of incorrect input.
+     */
+    public void testAppendException() {
+        Form appendExForm = new Form("form title");
+        Form container = new Form ("Form");
+        String appendString = null;
+        Image appendImage = null;
+        StringItem appendStringItem = null;
+
+        try {
+            appendExForm.append(appendString);
+            fail("NullPointerException not thrown if string is null");
+        }
+        catch (NullPointerException npe) {
+        	// Ok
+        }
+
+        try {
+            appendExForm.append(appendImage);
+            fail("NullPointerException not thrown if image is null");
+        }
+        catch (NullPointerException npe) {
+        	// Ok
+        }
+
+        try {
+            appendExForm.append(appendStringItem);
+            fail("NullPointerException not thrown if item is null");
+        }
+        catch (NullPointerException npe) {
+        	// Ok
+        }
+
+        appendStringItem = new StringItem("turur", "tururu", 0);
+        container.append(appendStringItem);
+        try {
+            appendExForm.append(appendStringItem);
+            fail("IllegalStateException not thrown if item is already owned");
+        }
+        catch (IllegalStateException npe) {
+        	// Ok
+        }
+    }
+
+    /**
+     * Form.insert()test.
+     * Tests that insert() throws correct exceptions
+     * in case of incorrect input.
+     */
+    public void testInsertException() {
+        Form insertException = new Form("insertEx");
+        Form formContainer = new Form("Form Title");
+        StringItem itemOwned = new StringItem("label", "text", 0);
+        formContainer.append(itemOwned);
+        insertException.append("one item");
+        insertException.append("second item");
+
+        try {
+            insertException.insert(3, new StringItem(null, "text", 0));
+            fail("IndexOutOfBoundsException not thrown");
+        }
+        catch (IndexOutOfBoundsException iob) {
+        	// Ok
+        }
+
+        try {
+            insertException.insert(1, itemOwned);
+            fail("IllegalStateException not thrown if Item is owned");
+        }
+        catch (IllegalStateException ise) {
+        	// Ok
+        }
+
+        try {
+            insertException.insert(1, null);
+            fail("NullPointerException not thrown if Item is null");
+        }
+        catch (NullPointerException npe) {
+        	// Ok
+        }
+    }
+
+    /**
+     * Form.delete() test.
+     * Tests that delete() throws correct exception
+     * in case of incorrect input.
+     */
+    public void testDeleteException() {
+        Form deleteExForm = new Form("heder");
+        deleteExForm.append("string1");
+        deleteExForm.append("String2");
+        try {
+            deleteExForm.delete(2);
+            fail("IndexOutOfBoundsException not thrown");
+        }
+        catch (IndexOutOfBoundsException e) {
+        	// Ok
+        }
+    }
+
+    /**
+     * Form.set() test.
+     * Tests that set() throws correct exceptions
+     * in case of incorrect input.
+     */
+    public void testSetException() {
+        Form setForm = new Form ("set Form");
+        setForm.append("string 1");
+        setForm.append("string 2");
+        Form formContainer = new Form("Form Title");
+        StringItem itemOwned = new StringItem("label", "text", 0);
+        formContainer.append(itemOwned);
+
+        try {
+            setForm.set(3, new StringItem(null, "text", 0));
+            fail("IndexOutOfBoundsException not thrown");
+        }
+        catch (IndexOutOfBoundsException e) {
+        	// Ok
+        }
+
+        try {
+            setForm.set(1, itemOwned);
+            fail("IllegalStateException not thrown if Item is owned");
+        }
+        catch (IllegalStateException e) {
+        	// Ok
+        }
+
+        try {
+            setForm.set(1, null);
+            fail("NullPointerException not thrown if Item is null");
+        }
+        catch (NullPointerException npe) {
+        	// Ok
+        }
+    }
+
+    /**
+     * Form.get() test.
+     * Tests that get() throws correct exceptions in case of incorrect input.
+     */
+    public void testGetException () {
+        Form getForm = new Form("getForm");
+        getForm.append("string1");
+        getForm.append("String2");
+        try {
+            getForm.get(2);
+            fail("IndexOutOfBoundsException not thrown");
+        }
+        catch (IndexOutOfBoundsException e) {
+            // Ok
+        }
+    }
+
+    /**
+     *Form.size() test.
+     *Tests that size() returns correct result.
+     */
+    public void testSize() {
+        Form formSize = new Form("form header");
+        formSize.append("String 1");
+        formSize.append("String 2");
+        assertTrue("Form.size(). Expected return 2 but returned"
+                + formSize.size(), formSize.size() == 2);
+    }
+
+    /**
+     * Form deleteAll() test.
+     * Tests that deleteAll() working properly
+     */
+    public void testDeleteAll() {
+        Form formDeleteAll = new Form("deleteaAll");
+        formDeleteAll.append("String 1");
+        formDeleteAll.append("String 2");
+
+        formDeleteAll.deleteAll();
+        assertTrue("Form.deleteAll(). Expected size() returns 0 but returned"
+                + formDeleteAll.size(), formDeleteAll.size() == 0);
+    }
+
+    /**
+     *Form.getWidth(),Form.getHeight() test.
+     *
+     */
+    public void testGetWidthGetHeight () {
+        Form formGetWidthHeight = new Form ("getWidth() getHeight()");
+        int getWidth = 0;
+        int getHeight = 0;
+        getWidth = formGetWidthHeight.getWidth();
+        getHeight = formGetWidthHeight.getHeight();
+        assertTrue("Form.getWidth(),getHeight(). Expected return not 0 but"
+                + " returned width " + getWidth + " and height " + getHeight,
+                (getWidth != 0) && (getHeight != 0));
+    }
+
+    /**
+     * Enhanced test for IndexOutOfBoundsExceptions for Form.set().
+     */
+    public void testFormSetIOOBExceptions () {
+        int []positions = {Integer.MIN_VALUE, Integer.MIN_VALUE + 1, -256,
+                           -255, -1, 1, 255, 256, Integer.MAX_VALUE - 1,
+                           Integer.MAX_VALUE, };
+        Form f = new Form("Test");
+        f.append("stub");
+
+        for (int i = 0; i < positions.length; i++) {
+            try {
+				f.set(positions[i], new StringItem("0", "1"));
+				fail("IndexOutOfBoundsException not thrown for value"
+						+ positions[i]);
+			}
+            catch (IndexOutOfBoundsException e1) {
+            	// Ok
+            }
+            catch (Exception e) {
+                fail("Unexpected " + e);
+                break;
+            }
+        }
+    }
+
+    /**
+     * Enhanced test for NullPointerException in Form.set().
+     */
+    public void testFormSetNPExceptions() {
+        Item[] items = {new StringItem("label", "text") };
+        Form f1 = null;
+
+        f1 = new Form("Form 1", items); // Assign items to f1
+
+        try {
+            f1.set(0, null);
+            fail("NullPointerException not thrown");
+        }
+        catch (NullPointerException e1) {
+            // Ok
+        }
+    }
+
+    /**
+     * enhanced test for IllegalStateException in Form.set().
+     */
+    public void testFormSetISExceptions () {
+        Item []items = {new StringItem("label", "text")};
+        Form f1 = null;
+        Form f2 = null;
+
+        f2 = new Form("Form 2", items); // Assign items to f2
+        f1 = new Form("Form 1");
+        f1.append("some");
+
+        try {
+            f1.set(0, items[0]);
+            fail("IllegalStateException not thrown");
+        }
+        catch (IllegalStateException e1) {
+            // Ok
+        }
+    }
+
+    /**
+     * Enhanced test for IndexOutOfBoundsException for Form.insert().
+     */
+    public void testFormInsertIOOBExceptions () {
+        int []positions = {Integer.MIN_VALUE, Integer.MIN_VALUE + 1, -256,
+                          -255, -1, 255, 256, Integer.MAX_VALUE - 1,
+                          Integer.MAX_VALUE,
+        };
+        Form f = new Form("Test");
+        f.append("stub");
+
+        for (int i = 0; i < positions.length; i++) {
+            try {
+                f.insert(positions[i], new StringItem("0", "1"));
+                fail("IndexOutOfBoundsException not thrown for value"
+						+ positions[i]);
+            }
+            catch (IndexOutOfBoundsException e1) {
+            	// Ok
+            }
+            catch (Exception e) {
+                fail("Unexpected " + e);
+            }
+        }
+    }
+
+    /**
+     * Enhanced test for NullPointerException for Form.insert().
+     */
+    public void testFormInsertNPExceptions () {
+        Item []items = {new StringItem("label", "text")};
+        Form f1 = null;
+
+        f1 = new Form("Form 1", items); // Assign items to f1
+
+        try {
+            f1.insert(0, null);
+            fail("NullPointerException not thrown");
+        }
+        catch (NullPointerException e1) {
+            // Ok
+        }
+    }
+
+    /**
+     * Enhanced test for IllegalStateException for Form.insert().
+     */
+    public void testFormInsertISExceptions() {
+        Item []items = {new StringItem("label", "text")};
+        Form f1 = null;
+        Form f2 = null;
+
+        f2 = new Form("Form 2", items); // Assign items to f2
+        f1 = new Form("Form 1");
+        f1.append("stub");
+
+        try {
+            f1.insert(0, items[0]);
+            fail("IllegalStateException not thrown");
+        }
+        catch (IllegalStateException e1) {
+            // Ok
+        }
+    }
+
+    /**
+     * Enhanced test for IndexOutOfBoundsException for Form.get().
+     */
+    public void testFormGetIOOBExceptions() {
+        int []positions = {Integer.MIN_VALUE, Integer.MIN_VALUE + 1, -256,
+                            -255, -1, 1, 255, 256, Integer.MAX_VALUE - 1,
+                            Integer.MAX_VALUE,
+        };
+        Form f = new Form("Test");
+        f.append("stub");
+
+        for (int i = 0; i < positions.length; i++) {
+            try {
+                f.get(positions[i]);
+                fail("IndexOutOfBoundsException not thrown for value"
+						+ positions[i]);
+            }
+            catch (IndexOutOfBoundsException e1) {
+            	// Ok
+            }
+            catch (Exception e) {
+                fail("Unexpected " + e);
+            }
+        }
+    }
+
+    /**
+     * Enhanced test for IndexOutOfboundsException for form.delete().
+     */
+    public void testFormDeleteIOOBExceptions () {
+        int []positions = {Integer.MIN_VALUE, Integer.MIN_VALUE + 1, -256,
+                            -255, -1, 1, 255, 256, Integer.MAX_VALUE - 1,
+                            Integer.MAX_VALUE,
+        };
+        Form form = new Form("Test");
+        form.append("stub");
+
+        for (int i = 0; i < positions.length; i++) {
+            try {
+                form.delete(positions[i]);
+                fail("IndexOutOfBoundsException not thrown for value"
+						+ positions[i]);
+            }
+            catch (IndexOutOfBoundsException e1) {
+            	// Ok
+            }
+            catch (Exception e) {
+                fail("Unexpected " + e);
+            }
+        }
+    }
+
+    /**
+     * Enhanced test for IllegalStateException for form.delete().
+     */
+    public void testFormAppendISExceptions () {
+        Item []items = {new StringItem("label", "text")};
+        Form f1 = null;
+        Form f2 = null;
+
+        f1 = new Form("Form 1", items); // Assign items to f1
+        f2 = new Form("Form 2"); // Assign items to f1
+
+        try {
+            f2.append(items[0]);
+            fail("IllegalStateException not thrown");
+        }
+        catch (IllegalStateException e1) {
+            // Ok
+        }
+    }
+
+    /**
+     * Enhanced Form.append() test.
+     */
+    public void testFormAppend() {
+        String[] strings = {"string1", "string2", "string3" };
+        Form form = new Form("Title");
+        int ind = 0;
+
+        for (int j = 0; j < strings.length; j++) {
+            ind = form.append(strings[j]);
+
+            if (!(((StringItem) form.get(ind)).getText().equals(strings[j]))) {
+                fail("Failed at " + j);
+            }
+        }
+    }
+
+    /**
+     * Enhanced test for Form.append().
+     * appending image to a form
+     */
+    public void testFormAppendImage() {
+        Image image = null;
+        try {
+            image = Image.createImage("100x100.png");
+        }
+        catch (Exception e) {
+            e.printStackTrace();
+        }
+        Form form = new Form("Title");
+        int index = 0;
+        index = form.append(image);
+        if (!(((ImageItem) form.get(index)).getImage() == image)) {
+            fail("Failed to append image");
+        }
+    }
+
+    /**
+     * Enhanced test for Form (String title, Item [] items.
+     */
+    public void testFormConstructor() {
+        String title = "Title";
+        Item[][] items = {{}, null, };
+        Form form = null;
+
+        for (int j = 0; j < items.length; j++) {
+            try {
+                form = new Form(title, items[j]);
+            }
+            catch (Exception e) {
+                fail("Unexpected " + e);
+            }
+
+            if (!(form.size() == 0)) {
+                fail("Failed");
+            }
+        }
+    }
+
+}