tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_unenumerable_own_properties.py (1730B)


      1 import WebIDL
      2 
      3 
      4 def WebIDLTest(parser, harness):
      5    parser.parse(
      6        """
      7        interface Foo {};
      8        [LegacyUnenumerableNamedProperties]
      9        interface Bar : Foo {
     10          getter long(DOMString name);
     11        };
     12        interface Baz : Bar {
     13          getter long(DOMString name);
     14        };
     15        """
     16    )
     17    results = parser.finish()
     18    harness.check(len(results), 3, "Should have three interfaces")
     19 
     20    parser = parser.reset()
     21    threw = False
     22    try:
     23        parser.parse(
     24            """
     25            [LegacyUnenumerableNamedProperties]
     26            interface NoNamedGetter {
     27            };
     28        """
     29        )
     30 
     31        results = parser.finish()
     32    except WebIDL.WebIDLError:
     33        threw = True
     34    harness.ok(threw, "Should have thrown.")
     35 
     36    parser = parser.reset()
     37    threw = False
     38    try:
     39        parser.parse(
     40            """
     41            [LegacyUnenumerableNamedProperties=Foo]
     42            interface ShouldNotHaveArg {
     43              getter long(DOMString name);
     44            };
     45        """
     46        )
     47 
     48        results = parser.finish()
     49    except WebIDL.WebIDLError:
     50        threw = True
     51    harness.ok(threw, "Should have thrown.")
     52 
     53    parser = parser.reset()
     54    threw = False
     55    try:
     56        parser.parse(
     57            """
     58            [LegacyUnenumerableNamedProperties]
     59            interface Foo {
     60              getter long(DOMString name);
     61            };
     62            interface Bar : Foo {};
     63            [LegacyUnenumerableNamedProperties]
     64            interface Baz : Bar {
     65              getter long(DOMString name);
     66            };
     67        """
     68        )
     69 
     70        results = parser.finish()
     71    except WebIDL.WebIDLError:
     72        threw = True
     73    harness.ok(threw, "Should have thrown.")