OJI API Test Analysis. Interfaces implemented by OJI module (excluding JNIEnv). 
Table of Content
Interface : nsIJVMManager
     Method: 
     NS_IMETHOD CreateProxyJNI(nsISecureEnv *secureEnv, JNIEnv * *outProxyEnv); 
     Number of test cases that can be written: 4 
     Test cases will be written with NULL value and a NON NULL value for both the parameters 
     Method: 
     NS_IMETHOD GetProxyJNI(JNIEnv * *outProxyEnv); 
     Number of test cases that can be written: 3 
     Test cases will be written with 
     - NULL value 
     - NON NULL value in cases when 
              - the CreateProxyJNI had already been called
	      - hadn't already been called
     Method: 
     NS_IMETHOD IsJavaEnabled(PRBool *outEnabled); 
     Number of test cases that can be written: 3 
     Test cases will be written with  
     - NULL value 
     - NON NULL value in cases when 
              - the Java is enabled
	      - there is not Java
     Method: 
     NS_IMETHOD ShowJavaConsole(void); 
     Number of test cases that can be written: 2 
     Test cases will be written in cases 
     - the Java is enabled
     - there is not Java
     Total number of test cases for this Interface : 12 
Interface : nsILiveConnectManager
     Note:
     Due to the complexity of some objects used as parameteres the 
     varying on this objects causes very big number of test cases, so
     below are enumerated only first-level test cases on stability with NULL values.
     Method: 
     NS_IMETHOD StartupLiveConnect(JSRuntime* runtime, PRBool& outStarted); 
     Test cases will be written with:
     runtime:  NULL value 
     outStarted: NULL and a NON NULL value 
     Number of test cases that can be written: 2  
     Method: 
     NS_IMETHOD ShutdownLiveConnect(JSRuntime* runtime, PRBool& outShutdown); 
     Test cases will be written with:
     runtime:  NULL value 
     outShutdown: NULL and a NON NULL value 
     Number of test cases that can be written: 2  
     Method: 
     NS_IMETHOD IsLiveConnectEnabled(PRBool& outEnabled); 
     Test cases will be written with NULL and a NON NULL value 
     Number of test cases that can be written: 2  
     Method: 
     NS_IMETHOD InitLiveConnectClasses(JSContext* context, JSObject* globalObject); 
     Test cases will be written with NULL values 
     Number of test cases that can be written: 1  
     Method: 
     NS_IMETHOD WrapJavaObject(JSContext* context, jobject javaObject, JSObject* *outJSObject); 
     Test cases will be written with:
     context: NULL value
     javaObject: NULL value
     outJSObject: NULL and a NON NULL value
     Number of test cases that can be written: 2 
     Total number of test cases for this Interface : 9
Interface : nsIThreadManager
     Method: 
     NS_IMETHOD GetCurrentThread(nsPluginThread* *threadID); 
     Number of test cases that can be written: 2 
     Test cases will be written with NULL and NON NULL values
     Method: 
     NS_IMETHOD Sleep(PRUint32 milli = 0); 
     Number of test cases that can be written: 2 
     Test cases will be written with max and min values for milli 
     Method: 
     NS_IMETHOD EnterMonitor(void* address); 
     Number of test cases that can be written: 4 
     Test cases will be written with 
     - NULL value 
     - NOT NULL values in cases when this monitor 
              - is free
	      - is already entered by this thread
	      - is entered by another thread  
     Method: 
     NS_IMETHOD ExitMonitor(void* address);
     Number of test cases that can be written: 4 
     Test cases will be written with 
     - NULL value 
     - NOT NULL values in cases when this monitor 
              - is free
	      - is already entered by this thread
	      - is entered by another thread  
     Method: 
     NS_IMETHOD Wait(void* address, PRUint32 milli = 0); 
     Number of test cases that can be written: 4 
     Test cases will be written with 
     - NULL value for address and some value for milli
     - NOT NULL values for address (when entered)  
              - and min 
	      - and max value for milli 
     - NOT NULL values for address (when non-entered) and some value for milli
     Method: 
     NS_IMETHOD Notify(void* address); 
     Number of test cases that can be written: 4 
     Test cases will be written with  
     - NULL value 
     - NOT NULL values in cases when this monitor 
              - isn't entered by this thread
	      - is already entered by this thread and there are waiting threads
	      - is already entered by this thread and there are not waiting threads
     Method: 
     NS_IMETHOD NotifyAll(void* address); 
     Number of test cases that can be written: 4 
     Test cases will be written with  
     - NULL value 
     - NOT NULL values in cases when this monitor 
              - isn't entered by this thread
	      - is already entered by this thread and there are waiting threads
	      - is already entered by this thread and there are not waiting threads       
     Method: 
     NS_IMETHOD CreateThread(PRUint32* threadID, nsIRunnable* runnable); 
     Number of test cases that can be written: 4 
     Test cases will be written with NULL and NOT NULL values for threadID and NULL and NOT NULL 
     values for runnable. 
     Method: 
     NS_IMETHOD PostEvent(PRUint32 threadID, nsIRunnable* runnable, PRBool async); 
     Number of test cases that can be written: 6 
     Test cases will be written with: 
     threadID: for existent and not-existent thread
     runnable: NULL and NOT NULL
     async: true and false
     Total number of test cases for this Interface : 30  
Interface : nsIJVMPluginTagInfo
      Method: 
      NS_IMETHOD GetCode(const char* *result);
      Number of test cases that can be written: 3 
      Test cases will be written with 
      - NULL value 
      - NON NULL value in cases when return value 
               - should be empty 
	       - and non-empty      
      Method: 
      NS_IMETHOD  GetCodeBase(const char* *result); 
      Number of test cases that can be written: 3 
      Test cases will be written with 
      - NULL value 
      - NON NULL value in cases when return value 
               - should be empty 
	       - and non-empty      
      Method: 
      NS_IMETHOD GetArchive(const char* *result); 
      Number of test cases that can be written: 3 
      Test cases will be written with 
      - NULL value 
      - NON NULL value in cases when return value 
               - should be empty 
	       - and non-empty      
      Method: 
      NS_IMETHOD  GetName(const char* *result); 
      Number of test cases that can be written: 3 
      Test cases will be written with 
      - NULL value 
      - NON NULL value in cases when return value 
               - should be empty 
	       - and non-empty      
      Method: 
      NS_IMETHOD  GetMayScript(PRBool *result); 
      Number of test cases that can be written: 3 
      Test cases will be written with 
      - NULL value 
      - NON NULL value in cases when return value 
               - should be true 
	       - and false     
      Total number of test cases for this Interface : 15