~ubuntu-branches/ubuntu/quantal/enigmail/quantal-security

« back to all changes in this revision

Viewing changes to mozilla/xpcom/idl-parser/runtests.py

  • Committer: Package Import Robot
  • Author(s): Chris Coulson
  • Date: 2013-09-13 16:02:15 UTC
  • mfrom: (0.12.16)
  • Revision ID: package-import@ubuntu.com-20130913160215-u3g8nmwa0pdwagwc
Tags: 2:1.5.2-0ubuntu0.12.10.1
* New upstream release v1.5.2 for Thunderbird 24

* Build enigmail using a stripped down Thunderbird 17 build system, as it's
  now quite difficult to build the way we were doing previously, with the
  latest Firefox build system
* Add debian/patches/no_libxpcom.patch - Don't link against libxpcom, as it
  doesn't exist anymore (but exists in the build system)
* Add debian/patches/use_sdk.patch - Use the SDK version of xpt.py and
  friends
* Drop debian/patches/ipc-pipe_rename.diff (not needed anymore)
* Drop debian/patches/makefile_depth.diff (not needed anymore)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/env python
 
2
#
 
3
# Any copyright is dedicated to the Public Domain.
 
4
# http://creativecommons.org/publicdomain/zero/1.0/
 
5
#
 
6
# Unit tests for xpidl.py
 
7
 
 
8
import mozunit
 
9
import unittest
 
10
import xpidl
 
11
 
 
12
class TestParser(unittest.TestCase):
 
13
    def setUp(self):
 
14
        self.p = xpidl.IDLParser()
 
15
    
 
16
    def testEmpty(self):
 
17
        i = self.p.parse("", filename='f')
 
18
        self.assertTrue(isinstance(i, xpidl.IDL))
 
19
        self.assertEqual([], i.productions)
 
20
 
 
21
    def testForwardInterface(self):
 
22
        i = self.p.parse("interface foo;", filename='f')
 
23
        self.assertTrue(isinstance(i, xpidl.IDL))
 
24
        self.assertTrue(isinstance(i.productions[0], xpidl.Forward))
 
25
        self.assertEqual("foo", i.productions[0].name)
 
26
 
 
27
    def testInterface(self):
 
28
        i = self.p.parse("[uuid(abc)] interface foo {};", filename='f')
 
29
        self.assertTrue(isinstance(i, xpidl.IDL))
 
30
        self.assertTrue(isinstance(i.productions[0], xpidl.Interface))
 
31
        self.assertEqual("foo", i.productions[0].name)
 
32
 
 
33
    def testAttributes(self):
 
34
        i = self.p.parse("[scriptable, builtinclass, function, deprecated, uuid(abc)] interface foo {};", filename='f')
 
35
        self.assertTrue(isinstance(i, xpidl.IDL))
 
36
        self.assertTrue(isinstance(i.productions[0], xpidl.Interface))
 
37
        iface = i.productions[0]
 
38
        self.assertEqual("foo", iface.name)
 
39
        self.assertTrue(iface.attributes.scriptable)
 
40
        self.assertTrue(iface.attributes.builtinclass)
 
41
        self.assertTrue(iface.attributes.function)
 
42
        self.assertTrue(iface.attributes.deprecated)
 
43
 
 
44
        i = self.p.parse("[noscript, uuid(abc)] interface foo {};", filename='f')
 
45
        self.assertTrue(isinstance(i, xpidl.IDL))
 
46
        self.assertTrue(isinstance(i.productions[0], xpidl.Interface))
 
47
        iface = i.productions[0]
 
48
        self.assertEqual("foo", iface.name)
 
49
        self.assertTrue(iface.attributes.noscript)
 
50
 
 
51
    def testMethod(self):
 
52
        i = self.p.parse("""[uuid(abc)] interface foo {
 
53
void bar();
 
54
};""", filename='f')
 
55
        self.assertTrue(isinstance(i, xpidl.IDL))
 
56
        self.assertTrue(isinstance(i.productions[0], xpidl.Interface))
 
57
        iface = i.productions[0]
 
58
        m = iface.members[0]
 
59
        self.assertTrue(isinstance(m, xpidl.Method))
 
60
        self.assertEqual("bar", m.name)
 
61
        self.assertEqual("void", m.type)
 
62
 
 
63
    def testMethodParams(self):
 
64
        i = self.p.parse("""[uuid(abc)] interface foo {
 
65
long bar(in long a, in float b, [array] in long c);
 
66
};""", filename='f')
 
67
        i.resolve([], self.p)
 
68
        self.assertTrue(isinstance(i, xpidl.IDL))
 
69
        self.assertTrue(isinstance(i.productions[0], xpidl.Interface))
 
70
        iface = i.productions[0]
 
71
        m = iface.members[0]
 
72
        self.assertTrue(isinstance(m, xpidl.Method))
 
73
        self.assertEqual("bar", m.name)
 
74
        self.assertEqual("long", m.type)
 
75
        self.assertEqual(3, len(m.params))
 
76
        self.assertEqual("long", m.params[0].type)
 
77
        self.assertEqual("in", m.params[0].paramtype)
 
78
        self.assertEqual("float", m.params[1].type)
 
79
        self.assertEqual("in", m.params[1].paramtype)
 
80
        self.assertEqual("long", m.params[2].type)
 
81
        self.assertEqual("in", m.params[2].paramtype)
 
82
        self.assertTrue(isinstance(m.params[2].realtype, xpidl.Array))
 
83
        self.assertEqual("long", m.params[2].realtype.type.name)
 
84
 
 
85
    def testAttribute(self):
 
86
        i = self.p.parse("""[uuid(abc)] interface foo {
 
87
attribute long bar;
 
88
};""", filename='f')
 
89
        self.assertTrue(isinstance(i, xpidl.IDL))
 
90
        self.assertTrue(isinstance(i.productions[0], xpidl.Interface))
 
91
        iface = i.productions[0]
 
92
        a = iface.members[0]
 
93
        self.assertTrue(isinstance(a, xpidl.Attribute))
 
94
        self.assertEqual("bar", a.name)
 
95
        self.assertEqual("long", a.type)
 
96
 
 
97
if __name__ == '__main__':
 
98
    mozunit.main()