javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/jsrpluginnotifier/JsrPluginNotifierTest.java
changeset 79 2f468c1958d0
parent 23 98ccebc37403
child 87 1627c337e51e
--- a/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/jsrpluginnotifier/JsrPluginNotifierTest.java	Fri Sep 17 08:28:21 2010 +0300
+++ b/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/jsrpluginnotifier/JsrPluginNotifierTest.java	Mon Oct 04 00:10:53 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -72,6 +72,14 @@
             }
         }));
 
+        suite.addTest(new JsrPluginNotifierTest("testNotifyPluginInstallException", new TestMethod()
+        {
+            public void run(TestCase tc)
+            {
+                ((JsrPluginNotifierTest)tc).testNotifyPluginInstallException();
+            }
+        }));
+
         suite.addTest(new JsrPluginNotifierTest("testNotifyPluginsUninstall", new TestMethod()
         {
             public void run(TestCase tc)
@@ -80,6 +88,14 @@
             }
         }));
 
+        suite.addTest(new JsrPluginNotifierTest("testNotifyPluginUninstallException", new TestMethod()
+        {
+            public void run(TestCase tc)
+            {
+                ((JsrPluginNotifierTest)tc).testNotifyPluginUninstallException();
+            }
+        }));
+
         suite.addTest(new JsrPluginNotifierTest("testPluginCancelsUninstallation", new TestMethod()
         {
             public void run(TestCase tc)
@@ -104,6 +120,14 @@
             }
         }));
 
+        suite.addTest(new JsrPluginNotifierTest("testRollbackInstallNotificationException", new TestMethod()
+        {
+            public void run(TestCase tc)
+            {
+                ((JsrPluginNotifierTest)tc).testRollbackInstallNotificationException();
+            }
+        }));
+
         suite.addTest(new JsrPluginNotifierTest("testRollbackUninstallNotification", new TestMethod()
         {
             public void run(TestCase tc)
@@ -112,6 +136,14 @@
             }
         }));
 
+        suite.addTest(new JsrPluginNotifierTest("testRollbackUninstallNotificationException", new TestMethod()
+        {
+            public void run(TestCase tc)
+            {
+                ((JsrPluginNotifierTest)tc).testRollbackUninstallNotificationException();
+            }
+        }));
+
         com.nokia.mj.impl.utils.OmjTestRunner.run(suite);
     }
 
@@ -222,6 +254,39 @@
         assertTrue("TestPlugin2 correct method was not called", plugin2.equals("install"));
     }
 
+    public void testNotifyPluginInstallException()
+    {
+        JsrPluginNotifier notif = new JsrPluginNotifier(iIntegrityService);
+
+        assertTrue("Number of plugin class names was not 5, it is " +
+                   String.valueOf(notif.iClassNames.size()), (notif.iClassNames.size() == 5));
+        assertTrue("Number of initialized plugins was not 2, it is " +
+                   String.valueOf(notif.iJsrPlugins.size()), (notif.iJsrPlugins.size() == 2));
+
+        // Initialize necessary values in ball for notification call
+        Uid uid = Uid.createUid("[A0032000]");
+        iInstallerExtensionInfo.iUid = uid;
+        iInstallerExtensionInfo.iAttributes = new Hashtable();
+        Attribute att = new Attribute("MIDlet-1", "3DSpaceShooter, /icon.png, Space3D");
+        iInstallerExtensionInfo.iAttributes.put("MIDlet-1", att);
+        att = new Attribute("JSR-Plugin-Test-Exception", "true");
+        iInstallerExtensionInfo.iAttributes.put("JSR-Plugin-Test-Exception", att);
+        att = new Attribute("MIDlet-Jar-Size", "240229");
+        iInstallerExtensionInfo.iAttributes.put("MIDlet-Jar-Size", att);
+
+        try
+        {
+            notif.notifyInstallation(iInstallerExtensionInfo);
+            // Test plugin TestPlugin2 throws exception if JAD/JAR attribute
+            // JSR-Plugin-Test-Exception exists.
+            assertTrue("Test plugin did not throw exception like should have.", false);
+        }
+        catch (InstallerException e)
+        {
+            // OK, installation is cancelled ok
+        }
+    }
+
     public void testNoPluginsToNotify()
     {
         JsrPluginNotifier notif = new JsrPluginNotifier(iIntegrityService);
@@ -282,6 +347,34 @@
         assertTrue("TestPlugin2 correct method was not called", plugin2.equals("uninstall"));
     }
 
+    public void testNotifyPluginUninstallException()
+    {
+        JsrPluginNotifier notif = new JsrPluginNotifier(iIntegrityService);
+
+        // Initialize necessary values in ball for notification call
+        Uid uid = Uid.createUid("[A0032003]");
+        iInstallerExtensionInfo.iUid = uid;
+        iInstallerExtensionInfo.iAttributes = new Hashtable();
+        Attribute att = new Attribute("MIDlet-1", "3DSpaceShooter, /icon.png, Space3D");
+        iInstallerExtensionInfo.iAttributes.put("MIDlet-1", att);
+        att = new Attribute("JSR-Plugin-Test-Exception", "true");
+        iInstallerExtensionInfo.iAttributes.put("JSR-Plugin-Test-Exception", att);
+        att = new Attribute("MIDlet-Jar-Size", "240229");
+        iInstallerExtensionInfo.iAttributes.put("MIDlet-Jar-Size", att);
+
+        try
+        {
+            notif.notifyUninstallation(iInstallerExtensionInfo);
+            // Test plugin TestPlugin2 throws exception if JAD/JAR attribute
+            // JSR-Plugin-Test-Exception exists.
+            assertTrue("Test plugin did not throw exception like it should have.", false);
+        }
+        catch (InstallerException e)
+        {
+            // OK, uninstallation is cancelled ok
+        }
+    }
+
     public void testPluginCancelsUninstallation()
     {
         JsrPluginNotifier notif = new JsrPluginNotifier(iIntegrityService);
@@ -332,6 +425,30 @@
         assertTrue("TestPlugin2 correct method was not called", plugin2.equals("rollbackInstall"));
     }
 
+    public void testRollbackInstallNotificationException()
+    {
+        JsrPluginNotifier notif = new JsrPluginNotifier(iIntegrityService);
+
+        // Initialize necessary values in ball for notification call
+        Uid uid = Uid.createUid("[A0032001]");
+        iInstallerExtensionInfo.iUid = uid;
+        iInstallerExtensionInfo.iAttributes = new Hashtable();
+        Attribute att = new Attribute("MIDlet-1", "3DSpaceShooter, /icon.png, Space3D");
+        iInstallerExtensionInfo.iAttributes.put("MIDlet-1", att);
+        att = new Attribute("Nokia-MIDlet-On-Screen-Keypad", "navigationkeys");
+        iInstallerExtensionInfo.iAttributes.put("Nokia-MIDlet-On-Screen-Keypad", att);
+        att = new Attribute("JSR-Plugin-Test-Exception", "true");
+        iInstallerExtensionInfo.iAttributes.put("JSR-Plugin-Test-Exception", att);
+        att = new Attribute("MIDlet-Jar-Size", "240229");
+        iInstallerExtensionInfo.iAttributes.put("MIDlet-Jar-Size", att);
+
+        notif.notifyRollbackInstall(iInstallerExtensionInfo);
+
+        String plugin2 = System.getProperty("TestPlugin2");
+        assertTrue("TestPlugin2 was not called", plugin2 != null);
+        assertTrue("TestPlugin2 correct method was not called", plugin2.equals("rollbackInstall"));
+    }
+
     public void testRollbackUninstallNotification()
     {
         JsrPluginNotifier notif = new JsrPluginNotifier(iIntegrityService);
@@ -354,5 +471,27 @@
         assertTrue("TestPlugin2 correct method was not called. Method was " + plugin2, plugin2.equals("rollbackUninstall"));
     }
 
+    public void testRollbackUninstallNotificationException()
+    {
+        JsrPluginNotifier notif = new JsrPluginNotifier(iIntegrityService);
 
+        // Initialize necessary values in ball for notification call
+        Uid uid = Uid.createUid("[A0032002]");
+        iInstallerExtensionInfo.iUid = uid;
+        iInstallerExtensionInfo.iAttributes = new Hashtable();
+        Attribute att = new Attribute("MIDlet-1", "3DSpaceShooter, /icon.png, Space3D");
+        iInstallerExtensionInfo.iAttributes.put("MIDlet-1", att);
+        att = new Attribute("Nokia-MIDlet-On-Screen-Keypad", "navigationkeys");
+        iInstallerExtensionInfo.iAttributes.put("Nokia-MIDlet-On-Screen-Keypad", att);
+        att = new Attribute("JSR-Plugin-Test-Exception", "true");
+        iInstallerExtensionInfo.iAttributes.put("JSR-Plugin-Test-Exception", att);
+        att = new Attribute("MIDlet-Jar-Size", "240229");
+        iInstallerExtensionInfo.iAttributes.put("MIDlet-Jar-Size", att);
+
+        notif.notifyRollbackUninstall(iInstallerExtensionInfo);
+
+        String plugin2 = System.getProperty("TestPlugin2");
+        assertTrue("TestPlugin2 was not called", plugin2 != null);
+        assertTrue("TestPlugin2 correct method was not called. Method was " + plugin2, plugin2.equals("rollbackUninstall"));
+    }
 }