dom/bindings/parser/tests/test_optional_constraints.py

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/dom/bindings/parser/tests/test_optional_constraints.py	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,30 @@
     1.4 +def WebIDLTest(parser, harness):
     1.5 +    threw = False
     1.6 +    try:
     1.7 +        parser.parse("""
     1.8 +            interface OptionalConstraints1 {
     1.9 +              void foo(optional byte arg1, byte arg2);
    1.10 +            };
    1.11 +        """)
    1.12 +
    1.13 +        results = parser.finish()
    1.14 +    except:
    1.15 +        threw = True
    1.16 +
    1.17 +    harness.ok(not threw,
    1.18 +               "Should not have thrown on non-optional argument following "
    1.19 +               "optional argument.")
    1.20 +
    1.21 +    parser = parser.reset()
    1.22 +    parser.parse("""
    1.23 +        interface OptionalConstraints2 {
    1.24 +          void foo(optional byte arg1 = 1, optional byte arg2 = 2,
    1.25 +                   optional byte arg3, optional byte arg4 = 4,
    1.26 +                   optional byte arg5, optional byte arg6 = 9);
    1.27 +        };
    1.28 +    """)
    1.29 +    results = parser.finish()
    1.30 +    args = results[0].members[0].signatures()[0][1]
    1.31 +    harness.check(len(args), 6, "Should have 6 arguments")
    1.32 +    harness.check(args[5].defaultValue.value, 9,
    1.33 +                  "Should have correct default value")

mercurial