Home | History | Annotate | Download | only in tests
      1 from __future__ import absolute_import, division, unicode_literals
      2 
      3 from . import support  # flake8: noqa
      4 
      5 import html5lib
      6 from html5lib.treeadapters import sax
      7 from html5lib.treewalkers import getTreeWalker
      8 
      9 
     10 def test_to_sax():
     11     handler = support.TracingSaxHandler()
     12     tree = html5lib.parse("""<html xml:lang="en">
     13         <title>Directory Listing</title>
     14         <a href="/"><b/></p>
     15     """, treebuilder="etree")
     16     walker = getTreeWalker("etree")
     17     sax.to_sax(walker(tree), handler)
     18     expected = [
     19         'startDocument',
     20         ('startElementNS', ('http://www.w3.org/1999/xhtml', 'html'),
     21             'html', {(None, 'xml:lang'): 'en'}),
     22         ('startElementNS', ('http://www.w3.org/1999/xhtml', 'head'), 'head', {}),
     23         ('startElementNS', ('http://www.w3.org/1999/xhtml', 'title'), 'title', {}),
     24         ('characters', 'Directory Listing'),
     25         ('endElementNS', ('http://www.w3.org/1999/xhtml', 'title'), 'title'),
     26         ('characters', '\n        '),
     27         ('endElementNS', ('http://www.w3.org/1999/xhtml', 'head'), 'head'),
     28         ('startElementNS',  ('http://www.w3.org/1999/xhtml', 'body'), 'body', {}),
     29         ('startElementNS', ('http://www.w3.org/1999/xhtml', 'a'), 'a', {(None, 'href'): '/'}),
     30         ('startElementNS', ('http://www.w3.org/1999/xhtml', 'b'), 'b', {}),
     31         ('startElementNS', ('http://www.w3.org/1999/xhtml', 'p'), 'p', {}),
     32         ('endElementNS', ('http://www.w3.org/1999/xhtml', 'p'), 'p'),
     33         ('characters', '\n    '),
     34         ('endElementNS', ('http://www.w3.org/1999/xhtml', 'b'), 'b'),
     35         ('endElementNS', ('http://www.w3.org/1999/xhtml', 'a'), 'a'),
     36         ('endElementNS', ('http://www.w3.org/1999/xhtml', 'body'), 'body'),
     37         ('endElementNS', ('http://www.w3.org/1999/xhtml', 'html'), 'html'),
     38         'endDocument',
     39     ]
     40     assert expected == handler.visited
     41