diff -r f5050f1da672 -r 04becd199f91 javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/applicationregistrator/ApplicationRegistratorTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/applicationregistrator/ApplicationRegistratorTest.java Tue Apr 27 16:30:29 2010 +0300 @@ -0,0 +1,766 @@ +/* +* Copyright (c) 2008 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.mj.impl.installer.applicationregistrator; + +import com.nokia.mj.impl.installer.utils.InstallerException; +import com.nokia.mj.impl.installer.utils.InstallerMain; +import com.nokia.mj.impl.installer.utils.PlatformUid; +import com.nokia.mj.impl.utils.Uid; + +import j2meunit.framework.Test; +import j2meunit.framework.TestCase; +import j2meunit.framework.TestMethod; +import j2meunit.framework.TestSuite; + +/** + * ApplicationRegistrator unit tests. + * + * @author Nokia Corporation + * @version $Rev: 9041 $ + */ +public class ApplicationRegistratorTest extends TestCase implements InstallerMain +{ + + private static final String DEFAULT_SVG_ICON_PATH_NAME = "c:\\private\\102033E6\\installer\\jiutdata\\utils\\javahelper.mif"; + + // Begin j2meunit test framework setup + + public void installerMain(String[] args) + { + TestSuite suite = new TestSuite(this.getClass().getName()); + + suite.addTest(new ApplicationRegistratorTest("testStartAndCloseSession", new TestMethod() + { + public void run(TestCase tc) + { + ((ApplicationRegistratorTest)tc).testStartAndCloseSession(); + } + })); + + suite.addTest(new ApplicationRegistratorTest("testStartAndCommitSession", new TestMethod() + { + public void run(TestCase tc) + { + ((ApplicationRegistratorTest)tc).testStartAndCommitSession(); + } + })); + + suite.addTest(new ApplicationRegistratorTest("testUidInUse", new TestMethod() + { + public void run(TestCase tc) + { + ((ApplicationRegistratorTest)tc).testUidInUse(); + } + })); + + suite.addTest(new ApplicationRegistratorTest("testGetGroupName", new TestMethod() + { + public void run(TestCase tc) + { + ((ApplicationRegistratorTest)tc).testGetGroupName(); + } + })); + + suite.addTest(new ApplicationRegistratorTest("testRegisterApplication", new TestMethod() + { + public void run(TestCase tc) + { + ((ApplicationRegistratorTest)tc).testRegisterApplication(); + } + })); + + suite.addTest(new ApplicationRegistratorTest("testRegisterApplicationSucceeded", new TestMethod() + { + public void run(TestCase tc) + { + ((ApplicationRegistratorTest)tc).testRegisterApplicationSucceeded(); + } + })); + + suite.addTest(new ApplicationRegistratorTest("testUnregisterApplication", new TestMethod() + { + public void run(TestCase tc) + { + ((ApplicationRegistratorTest)tc).testUnregisterApplication(); + } + })); + + suite.addTest(new ApplicationRegistratorTest("testRollbackRegistration", new TestMethod() + { + public void run(TestCase tc) + { + ((ApplicationRegistratorTest)tc).testRollbackRegistration(); + } + })); + + suite.addTest(new ApplicationRegistratorTest("testRollbackSucceeded", new TestMethod() + { + public void run(TestCase tc) + { + ((ApplicationRegistratorTest)tc).testRollbackSucceeded(); + } + })); + + suite.addTest(new ApplicationRegistratorTest("testRegAppWithoutIcon", new TestMethod() + { + public void run(TestCase tc) + { + ((ApplicationRegistratorTest)tc).testRegAppWithoutIcon(); + } + })); + + suite.addTest(new ApplicationRegistratorTest("testRegAppWithoutIconSucceeded", new TestMethod() + { + public void run(TestCase tc) + { + ((ApplicationRegistratorTest)tc).testRegAppWithoutIconSucceeded(); + } + })); + + suite.addTest(new ApplicationRegistratorTest("testUnregAppWithoutIcon", new TestMethod() + { + public void run(TestCase tc) + { + ((ApplicationRegistratorTest)tc).testUnregAppWithoutIcon(); + } + })); + + suite.addTest(new ApplicationRegistratorTest("testRegAppWithSuiteIcon", new TestMethod() + { + public void run(TestCase tc) + { + ((ApplicationRegistratorTest)tc).testRegAppWithSuiteIcon(); + } + })); + + suite.addTest(new ApplicationRegistratorTest("testRegAppWithSuiteIconSucceeded", new TestMethod() + { + public void run(TestCase tc) + { + ((ApplicationRegistratorTest)tc).testRegAppWithSuiteIconSucceeded(); + } + })); + + suite.addTest(new ApplicationRegistratorTest("testUnregAppWithSuiteIcon", new TestMethod() + { + public void run(TestCase tc) + { + ((ApplicationRegistratorTest)tc).testUnregAppWithSuiteIcon(); + } + })); + + com.nokia.mj.impl.utils.OmjTestRunner.run(suite); + } + + public ApplicationRegistratorTest() + { + } + + public ApplicationRegistratorTest(String aTestName, TestMethod aTestMethod) + { + super(aTestName, aTestMethod); + } + + public void assertFalse(String aMsg, boolean aCondition) + { + assertTrue(aMsg, !aCondition); + } + + // End j2meunit test framework setup + + protected void setUp() + { + } + + protected void tearDown() + { + } + + public void testStartAndCloseSession() + { + ApplicationRegistrator appReg = new ApplicationRegistrator(); + + try + { + appReg.startSession(); + // close the session immediately + appReg.closeSession(); + // make sure that closeSession can be called even if the + // session has already been closed + appReg.closeSession(); + } + catch (InstallerException ie) + { + ie.printStackTrace(); + assertTrue("Unexpected exception: " + ie, false); + appReg.closeSession(); + } + } + + public void testStartAndCommitSession() + { + ApplicationRegistrator appReg = new ApplicationRegistrator(); + + try + { + appReg.startSession(); + // commit the session immediately + appReg.commitSession(true); + + } + catch (InstallerException ie) + { + ie.printStackTrace(); + assertTrue("Unexpected exception: " + ie, false); + appReg.closeSession(); + } + } + + public void testUidInUse() + { + ApplicationRegistrator appReg = new ApplicationRegistrator(); + + try + { + // this Uid should be valid in S60 + Uid uid = Uid.createUid("[A0032000]"); + boolean inUse = false; + + // session must be started first + try + { + inUse = appReg.uidInUse(uid); + assertTrue("Calling UidInUse should not succeed without session!", false); + } + catch (InstallerException ie) + { + // this exception is espected + } + + appReg.startSession(); + assertFalse("Uid should not be in use", appReg.uidInUse(uid)); + appReg.closeSession(); + } + catch (InstallerException ie) + { + ie.printStackTrace(); + assertTrue("Unexpected exception: " + ie, false); + appReg.closeSession(); + } + } + + + public void testGetGroupName() + { + ApplicationRegistrator appReg = new ApplicationRegistrator(); + + try + { + // this Uid should be valid but non existing in S60 + Uid uid = Uid.createUid("[E0032000]"); + String groupName = ""; + + // session must be started first + try + { + groupName = appReg.getGroupName(uid); + assertTrue("Calling getGroupName should not succeed without session!", false); + } + catch (InstallerException ie) + { + // this exception is espected + } + + appReg.startSession(); + // there is no application with this uid, so this throws exception + try + { + groupName = appReg.getGroupName(uid); + } + catch (InstallerException ie) + { + // ignore this expected exception + } + appReg.closeSession(); + } + catch (InstallerException ie) + { + ie.printStackTrace(); + assertTrue("Unexpected exception: " + ie, false); + appReg.closeSession(); + } + } + + public void testRegisterApplication() + { + ApplicationRegistrator appReg = new ApplicationRegistrator(); + + try + { + Uid uid = Uid.createUid("[20032000]"); + AppRegInfo appRegInfo = new AppRegInfo( + // Uid aUid, + uid, + // String aGroupName, + //"Games", + "VeryVeryLongGroupNameThatMustBeShortened", + // String aMIDletName, + "GameMIDlet", + // String aTargetDrive, + "C:", + // String aIconFileName contains alread the name of the converted icon, + "c:\\private\\102033E6\\installer\\jiutdata\\icon1.mbm", + // String aJarFileName, + "c:\\private\\102033E6\\installer\\jiutdata\\utils\\einstein_EN_FR_IT_DE_ES_N97_v2942.jar", + // boolean aHidden, + false, + // boolean aBackground + false); + + // session must be started first + try + { + appReg.registerApplication(appRegInfo); + assertTrue("Calling registerApplication should not succeed without session!", false); + } + catch (InstallerException ie) + { + // this exception is espected + } + + appReg.startSession(); + + // convert icon before registering + StringBuffer iconSuffix = new StringBuffer(); + boolean convOk = appReg.convertIcon("icon.png", "c:\\private\\102033E6\\installer\\jiutdata\\icon1.mbm", + "c:\\private\\102033E6\\installer\\jiutdata\\utils\\einstein_EN_FR_IT_DE_ES_N97_v2942.jar", iconSuffix); + assertTrue("Icon conversion failed.", convOk); + assertTrue("Suffix of the converted icon is incorrect.", iconSuffix.toString().equals(".mbm")); + + appReg.registerApplication(appRegInfo); + appReg.commitSession(true); + } + catch (InstallerException ie) + { + ie.printStackTrace(); + assertTrue("Unexpected exception: " + ie, false); + appReg.commitSession(true); + } + } + + public void testRegisterApplicationSucceeded() + { + ApplicationRegistrator appReg = new ApplicationRegistrator(); + + try + { + // application with this Uid was registered in testRegisterApplication + Uid uid = Uid.createUid("[20032000]"); + String groupName = ""; + boolean uidInUse = false; + + appReg.startSession(); + groupName = appReg.getGroupName(uid); + assertTrue( + "The group name was not VeryVeryLongGrou, it was " + groupName, + "VeryVeryLongGrou".equals(groupName)); + + uidInUse = appReg.uidInUse(uid); + assertTrue("uidInUse returned false value", true == uidInUse); + + appReg.closeSession(); + } + catch (InstallerException ie) + { + ie.printStackTrace(); + assertTrue("Unexpected exception: " + ie, false); + appReg.closeSession(); + } + } + + public void testUnregisterApplication() + { + ApplicationRegistrator appReg = new ApplicationRegistrator(); + + try + { + // application with this Uid was registered in testRegisterApplication + Uid uid = Uid.createUid("[20032000]"); + + AppRegInfo appRegInfo = new AppRegInfo( + // Uid aUid, + uid, + // String aGroupName, + "", + // String aMIDletName, + "", + // String aTargetDrive, + "", + // String aIconFileName, dummy + "", + // String aJarFileName, dummy + "", + // boolean aHidden, + false, + // boolean aBackground + false); + + appReg.startSession(); + appReg.unregisterApplication(appRegInfo); + appReg.commitSession(true); + } + catch (InstallerException ie) + { + ie.printStackTrace(); + assertTrue("Unexpected exception: " + ie, false); + appReg.closeSession(); + } + } + + + public void testRollbackRegistration() + { + ApplicationRegistrator appReg = new ApplicationRegistrator(); + + try + { + Uid uid = Uid.createUid("[20032001]"); + AppRegInfo appRegInfo = new AppRegInfo( + // Uid aUid, + uid, + // String aGroupName, + "Games", + // String aMIDletName, + "GameMIDlet1", + // String aTargetDrive, + "C:", + // String aIconFileName, must be accessible and have \\ characters + DEFAULT_SVG_ICON_PATH_NAME, + // String aJarFileName, + "c:\\private\\102033E6\\installer\\jiutdata\\utils\\einstein_EN_FR_IT_DE_ES_N97_v2942.jar", + // boolean aHidden, + false, + // boolean aBackground + false); + + appReg.startSession(); + appReg.registerApplication(appRegInfo); + appReg.rollbackSession(); + } + catch (InstallerException ie) + { + ie.printStackTrace(); + assertTrue("Unexpected exception: " + ie, false); + appReg.closeSession(); + } + } + + public void testRollbackSucceeded() + { + ApplicationRegistrator appReg = new ApplicationRegistrator(); + + try + { + // application with this Uid was registered in testRollbackRegistration + Uid uid = Uid.createUid("[20032001]"); + String groupName = ""; + boolean uidInUse = false; + + appReg.startSession(); + + try + { + uidInUse = appReg.uidInUse(uid); + assertTrue("uidInUse returned true although registration was rolled back", false == uidInUse); + } + catch (Exception e) + { + e.printStackTrace(); + assertTrue("Unexpected exception: " + e, false); + } + + try + { + groupName = appReg.getGroupName(uid); + // If the application cannot be found, returns "" + assertTrue("getGroupName succeeded even though application registration was rolled back.", + "".equals(groupName)); + } + catch (InstallerException e2) + { + e2.printStackTrace(); + assertTrue("Unexpected exception: " + e2, false); + } + + appReg.closeSession(); + } + catch (Exception ie) + { + ie.printStackTrace(); + assertTrue("Unexpected exception: " + ie, false); + appReg.closeSession(); + } + } + + + public void testRegAppWithoutIcon() + { + ApplicationRegistrator appReg = new ApplicationRegistrator(); + + try + { + Uid uid = Uid.createUid("[A0032005]"); + AppRegInfo appRegInfo = new AppRegInfo( + // Uid aUid, + uid, + // String aGroupName, + "", + // String aMIDletName, + "NoIconMidlet", + // String aTargetDrive, + "C:", + // String aIconFileName, + DEFAULT_SVG_ICON_PATH_NAME, + // String aJarFileName, + "c:\\private\\102033E6\\installer\\jiutdata\\utils\\einstein_EN_FR_IT_DE_ES_N97_v2942.jar", + // boolean aHidden, + false, + // boolean aBackground + false); + + // session must be started first + try + { + appReg.registerApplication(appRegInfo); + assertTrue("Calling registerApplication should not succeed without session!", false); + } + catch (InstallerException ie) + { + // this exception is espected + } + + appReg.startSession(); + appReg.registerApplication(appRegInfo); + appReg.commitSession(true); + } + catch (InstallerException ie) + { + ie.printStackTrace(); + assertTrue("Unexpected exception: " + ie, false); + appReg.commitSession(true); + } + } + + public void testRegAppWithoutIconSucceeded() + { + ApplicationRegistrator appReg = new ApplicationRegistrator(); + + try + { + // application with this Uid was registered in testRegAppWithoutIcon + Uid uid = Uid.createUid("[A0032005]"); + String groupName = ""; + boolean uidInUse = false; + + appReg.startSession(); + groupName = appReg.getGroupName(uid); + assertTrue( + "The group name was not empty, it was " + groupName, + "".equals(groupName)); + + uidInUse = appReg.uidInUse(uid); + assertTrue("uidInUse returned false value", true == uidInUse); + + appReg.closeSession(); + } + catch (InstallerException ie) + { + ie.printStackTrace(); + assertTrue("Unexpected exception: " + ie, false); + appReg.closeSession(); + } + } + + public void testUnregAppWithoutIcon() + { + ApplicationRegistrator appReg = new ApplicationRegistrator(); + + try + { + // application with this Uid was registered in testRegAppWithoutIcon + Uid uid = Uid.createUid("[A0032005]"); + + AppRegInfo appRegInfo = new AppRegInfo( + // Uid aUid, + uid, + // String aGroupName, + "", + // String aMIDletName, + "NoIconMidlet", + // String aTargetDrive, + "C:", + // String aIconFileName, + "", + // String aJarFileName, + "", + // boolean aHidden, + false, + // boolean aBackground + false); + + appReg.startSession(); + appReg.unregisterApplication(appRegInfo); + appReg.commitSession(true); + } + catch (InstallerException ie) + { + ie.printStackTrace(); + assertTrue("Unexpected exception: " + ie, false); + appReg.closeSession(); + } + } + + + public void testRegAppWithSuiteIcon() + { + ApplicationRegistrator appReg = new ApplicationRegistrator(); + + try + { + Uid uid = Uid.createUid("[A0032FF5]"); + AppRegInfo appRegInfo = new AppRegInfo( + // Uid aUid, + uid, + // String aGroupName, + "Suite", + // String aMIDletName, + "SuiteIconMidlet", + // String aTargetDrive, + "C:", + // String aIconFileName, + "c:\\private\\102033E6\\installer\\jiutdata\\icon2.mif", + // String aJarFileName, + "c:\\private\\102033E6\\installer\\jiutdata\\utils\\MIDPTestMisc.jar", + // boolean aHidden, + false, + // boolean aBackground + false); + + // session must be started first + try + { + appReg.registerApplication(appRegInfo); + assertTrue("Calling registerApplication should not succeed without session!", false); + } + catch (InstallerException ie) + { + // this exception is espected + } + + appReg.startSession(); + + // convert svg icon before registering + StringBuffer iconSuffix = new StringBuffer(); + boolean convOk = appReg.convertIcon("gear.svg", "c:\\private\\102033E6\\installer\\jiutdata\\icon2.mif", + "c:\\private\\102033E6\\installer\\jiutdata\\utils\\MIDPTestMisc.jar", iconSuffix); + assertTrue("Icon conversion failed.", convOk); + assertTrue("Suffix of the converted icon is incorrect.", iconSuffix.toString().equals(".mif")); + + appReg.registerApplication(appRegInfo); + appReg.commitSession(true); + } + catch (InstallerException ie) + { + ie.printStackTrace(); + assertTrue("Unexpected exception: " + ie, false); + appReg.commitSession(true); + } + } + + public void testRegAppWithSuiteIconSucceeded() + { + ApplicationRegistrator appReg = new ApplicationRegistrator(); + + try + { + // application with this Uid was registered in testRegAppWithSuiteIcon + Uid uid = Uid.createUid("[A0032FF5]"); + String groupName = ""; + boolean uidInUse = false; + + appReg.startSession(); + groupName = appReg.getGroupName(uid); + assertTrue( + "The group name was not Suite, it was " + groupName, + "Suite".equals(groupName)); + + uidInUse = appReg.uidInUse(uid); + assertTrue("uidInUse returned false value", true == uidInUse); + + appReg.closeSession(); + } + catch (InstallerException ie) + { + ie.printStackTrace(); + assertTrue("Unexpected exception: " + ie, false); + appReg.closeSession(); + } + } + + + public void testUnregAppWithSuiteIcon() + { + ApplicationRegistrator appReg = new ApplicationRegistrator(); + + try + { + // application with this Uid was registered in testRegAppWithSuiteIcon + Uid uid = Uid.createUid("[A0032FF5]"); + + AppRegInfo appRegInfo = new AppRegInfo( + // Uid aUid, + uid, + // String aGroupName, + "", + // String aMIDletName, + "", + // String aTargetDrive, + "", + // String aIconFileName, + "", + // String aJarFileName, + "", + // boolean aHidden, + false, + // boolean aBackground + false); + + appReg.startSession(); + appReg.unregisterApplication(appRegInfo); + appReg.commitSession(true); + } + catch (InstallerException ie) + { + ie.printStackTrace(); + assertTrue("Unexpected exception: " + ie, false); + appReg.closeSession(); + } + } + +}