Esempio n. 1
0
 def _fixArg(self, arg):
     if arg is None:
         return []
     # Already a tuple?  This means the original Python args have been
     # found and passed directly.
     if type(arg) == types.TupleType:
         return arg
     try:
         argv = arg.QueryInterface(components.interfaces.nsIArray)
     except COMException, why:
         if why.errno != nsError.NS_NOINTERFACE:
             raise
         # This is not an array - see if it is a variant or primitive.
         try:
             var = arg.queryInterface(components.interfaces.nsIVariant)
             parent = None
             if self.globalObject is not None:
                 parent = self.globalObject._comobj_
             if parent is None:
                 logger.warning("_fixArg for context with no global??")
             return _xpcom.GetVariantValue(var, parent)
         except COMException, why:
             if why.errno != nsError.NS_NOINTERFACE:
                 raise
             try:
                 return primitives.GetPrimitive(arg)
             except COMException, why:
                 if why.errno != nsError.NS_NOINTERFACE:
                     raise
Esempio n. 2
0
 def testExplicitFloat(self):
     ob = xpcom.server.WrapObject( ExplicitSupportsFloat(), components.interfaces.nsISupports)
     self.failUnlessEqual(primitives.GetPrimitive(ob), 99.99)
Esempio n. 3
0
 def testExplicitUnicode(self):
     ob = xpcom.server.WrapObject( ExplicitSupportsUnicode(), components.interfaces.nsISupports)
     self.failUnlessEqual(primitives.GetPrimitive(ob), ExplicitSupportsUnicode.test_data)
     self.failUnlessEqual(type(primitives.GetPrimitive(ob)), unicode)
Esempio n. 4
0
 def testExplicitString(self):
     ob = xpcom.server.WrapObject( ExplicitSupportsString(), components.interfaces.nsISupports)
     self.failUnlessEqual(primitives.GetPrimitive(ob), "<MyExplicitStrObject>")