xpcom/idl-parser/runtests.py

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

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

mercurial