From 22d53280da319dfda6775af9282dc412164367a5 Mon Sep 17 00:00:00 2001 From: "mhammond%skippinet.com.au" Date: Wed, 5 Oct 2005 22:13:06 +0000 Subject: [PATCH] Few more nsVariant tests git-svn-id: svn://10.0.0.236/branches/DOM_AGNOSTIC_BRANCH@181684 18797224-902f-48f8-a5cc-f745e15eee43 --- .../xpcom/test/test_component/py_test_component.idl | 1 + .../python/xpcom/test/test_component/py_test_component.py | 8 ++++++++ .../extensions/python/xpcom/test/test_test_component.py | 8 ++++++++ 3 files changed, 17 insertions(+) diff --git a/mozilla/extensions/python/xpcom/test/test_component/py_test_component.idl b/mozilla/extensions/python/xpcom/test/test_component/py_test_component.idl index a15f95e0867..cd3e1c453c8 100644 --- a/mozilla/extensions/python/xpcom/test/test_component/py_test_component.idl +++ b/mozilla/extensions/python/xpcom/test/test_component/py_test_component.idl @@ -212,6 +212,7 @@ interface nsIPythonTestInterfaceExtra : nsIPythonTestInterface void AppendArray(inout PRUint32 count, [array, size_is(count)]in PRInt32 array1, [array, size_is(count)]inout PRInt32 array2); void AppendVariant(in nsIVariant variant, inout nsIVariant result); nsIVariant CopyVariant(in nsIVariant variant); + nsIVariant SumVariants(in PRUint32 incount, [array, size_is(incount)]in nsIVariant variants); }; // DOM String support is a "recent" (01/2001) addition to XPCOM. These test diff --git a/mozilla/extensions/python/xpcom/test/test_component/py_test_component.py b/mozilla/extensions/python/xpcom/test/test_component/py_test_component.py index 129a467dba6..c0373de94e6 100644 --- a/mozilla/extensions/python/xpcom/test/test_component/py_test_component.py +++ b/mozilla/extensions/python/xpcom/test/test_component/py_test_component.py @@ -365,6 +365,14 @@ class PythonTestComponent: def CopyVariant(self, invar): return invar + def SumVariants(self, variants): + if len(variants) == 0: + return None + result = variants[0] + for v in variants[1:]: + result += v + return result + # Some tests for the "new" (Feb-2001) DOMString type. def GetDOMStringResult( self, length ): # Result: DOMString & diff --git a/mozilla/extensions/python/xpcom/test/test_test_component.py b/mozilla/extensions/python/xpcom/test/test_test_component.py index c23ce802274..aabb2eb5c41 100644 --- a/mozilla/extensions/python/xpcom/test/test_test_component.py +++ b/mozilla/extensions/python/xpcom/test/test_test_component.py @@ -40,6 +40,8 @@ import xpcom.components import xpcom._xpcom import xpcom.nsError +MakeVariant = xpcom._xpcom.MakeVariant + try: import gc except ImportError: @@ -411,6 +413,12 @@ def test_derived_interface(c, test_flat = 0): test_method(c.AppendVariant, ("bar", "foo"), "foobar") test_method(c.AppendVariant, (None, None), None) + test_method(c.SumVariants, ([],), None) + # Array's dont expose their interface, so we are unable to auto-wrap + # variant arrays, as they aren't aware if the IID of the array + test_method(c.SumVariants, ([MakeVariant(1),MakeVariant(2),MakeVariant(3)],), 6) + test_method(c.SumVariants, ([MakeVariant('foo'), MakeVariant('bar')],), 'foobar') + if not test_flat: c = c.queryInterface(xpcom.components.interfaces.nsIPythonTestInterfaceDOMStrings) # NULL DOM strings don't work yet.