dom/bindings/parser/tests/test_extended_attributes.py

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 import WebIDL
     3 def WebIDLTest(parser, harness):
     4     parser.parse("""
     5         [NoInterfaceObject]
     6         interface TestExtendedAttr {
     7           [Unforgeable] readonly attribute byte b;
     8         };
     9     """)
    11     results = parser.finish()
    13     parser = parser.reset()
    14     parser.parse("""
    15         [Pref="foo.bar",Pref=flop]
    16         interface TestExtendedAttr {
    17           [Pref="foo.bar"] attribute byte b;
    18         };
    19     """)
    21     results = parser.finish()
    23     parser = parser.reset()
    24     parser.parse("""
    25         interface TestLenientThis {
    26           [LenientThis] attribute byte b;
    27         };
    28     """)
    30     results = parser.finish()
    31     harness.ok(results[0].members[0].hasLenientThis(),
    32                "Should have a lenient this")
    34     parser = parser.reset()
    35     threw = False
    36     try:
    37         parser.parse("""
    38             interface TestLenientThis2 {
    39               [LenientThis=something] attribute byte b;
    40             };
    41         """)
    42         results = parser.finish()
    43     except:
    44         threw = True
    46     harness.ok(threw, "[LenientThis] must take no arguments")
    48     parser = parser.reset()
    49     parser.parse("""
    50         interface TestClamp {
    51           void testClamp([Clamp] long foo);
    52           void testNotClamp(long foo);
    53         };
    54     """)
    56     results = parser.finish()
    57     # Pull out the first argument out of the arglist of the first (and
    58     # only) signature.
    59     harness.ok(results[0].members[0].signatures()[0][1][0].clamp,
    60                "Should be clamped")
    61     harness.ok(not results[0].members[1].signatures()[0][1][0].clamp,
    62                "Should not be clamped")
    64     parser = parser.reset()
    65     threw = False
    66     try:
    67         parser.parse("""
    68             interface TestClamp2 {
    69               void testClamp([Clamp=something] long foo);
    70             };
    71         """)
    72         results = parser.finish()
    73     except:
    74         threw = True
    76     harness.ok(threw, "[Clamp] must take no arguments")
    78     parser = parser.reset()
    79     parser.parse("""
    80         interface TestEnforceRange {
    81           void testEnforceRange([EnforceRange] long foo);
    82           void testNotEnforceRange(long foo);
    83         };
    84     """)
    86     results = parser.finish()
    87     # Pull out the first argument out of the arglist of the first (and
    88     # only) signature.
    89     harness.ok(results[0].members[0].signatures()[0][1][0].enforceRange,
    90                "Should be enforceRange")
    91     harness.ok(not results[0].members[1].signatures()[0][1][0].enforceRange,
    92                "Should not be enforceRange")
    94     parser = parser.reset()
    95     threw = False
    96     try:
    97         parser.parse("""
    98             interface TestEnforceRange2 {
    99               void testEnforceRange([EnforceRange=something] long foo);
   100             };
   101         """)
   102         results = parser.finish()
   103     except:
   104         threw = True
   106     harness.ok(threw, "[EnforceRange] must take no arguments")

mercurial