@@ -1679,171 +1679,3 @@ where
16791679 }
16801680 }
16811681}
1682-
1683- #[ cfg( test) ]
1684- #[ allow( non_snake_case) ]
1685- mod test {
1686- extern crate markup5ever_rcdom as rcdom;
1687- use markup5ever:: interface:: { AppendNode , AppendText , NodeOrText } ;
1688- use markup5ever:: interface:: { ElementFlags , Tracer , TreeSink } ;
1689- use markup5ever:: interface:: { LimitedQuirks , NoQuirks , Quirks , QuirksMode } ;
1690-
1691- use super :: types:: * ;
1692-
1693- use crate :: tendril:: stream:: { TendrilSink , Utf8LossyDecoder } ;
1694- use crate :: tendril:: StrTendril ;
1695- use crate :: ExpandedName ;
1696- use crate :: QualName ;
1697-
1698- use crate :: tokenizer;
1699- use crate :: tokenizer:: states as tok_state;
1700- use crate :: tokenizer:: { Doctype , StartTag , Tag , TokenSink } ;
1701- use crate :: tokenizer:: { Tokenizer , TokenizerOpts } ;
1702- use crate :: driver:: * ;
1703-
1704- use crate :: util:: str:: is_ascii_whitespace;
1705-
1706- use std:: borrow:: Cow ;
1707- use std:: borrow:: Cow :: Borrowed ;
1708- use std:: collections:: VecDeque ;
1709- use std:: default:: Default ;
1710- use std:: mem:: replace;
1711-
1712- use super :: { TreeBuilder , TreeBuilderOpts } ;
1713- use markup5ever:: { Attribute , local_name, namespace_url, ns} ;
1714- use self :: rcdom:: { Handle , Node , NodeData , RcDom } ;
1715-
1716- pub struct LineCountingDOM {
1717- pub line_vec : Vec < ( QualName , u64 ) > ,
1718- pub current_line : u64 ,
1719- pub rcdom : RcDom ,
1720- }
1721-
1722- impl TreeSink for LineCountingDOM {
1723- type Output = Self ;
1724-
1725- fn finish ( self ) -> Self {
1726- self
1727- }
1728-
1729- type Handle = Handle ;
1730-
1731- fn parse_error ( & mut self , msg : Cow < ' static , str > ) {
1732- self . rcdom . parse_error ( msg) ;
1733- }
1734-
1735- fn get_document ( & mut self ) -> Handle {
1736- self . rcdom . get_document ( )
1737- }
1738-
1739- fn get_template_contents ( & mut self , target : & Handle ) -> Handle {
1740- self . rcdom . get_template_contents ( target)
1741- }
1742-
1743- fn set_quirks_mode ( & mut self , mode : QuirksMode ) {
1744- self . rcdom . set_quirks_mode ( mode)
1745- }
1746-
1747- fn same_node ( & self , x : & Handle , y : & Handle ) -> bool {
1748- self . rcdom . same_node ( x, y)
1749- }
1750-
1751- fn elem_name < ' a > ( & ' a self , target : & ' a Handle ) -> ExpandedName < ' a > {
1752- self . rcdom . elem_name ( target)
1753- }
1754-
1755- fn create_element (
1756- & mut self ,
1757- name : QualName ,
1758- attrs : Vec < Attribute > ,
1759- flags : ElementFlags ,
1760- ) -> Handle {
1761- self . line_vec . push ( ( name. clone ( ) , self . current_line ) ) ;
1762- self . rcdom . create_element ( name, attrs, flags)
1763- }
1764-
1765- fn create_comment ( & mut self , text : StrTendril ) -> Handle {
1766- self . rcdom . create_comment ( text)
1767- }
1768-
1769- fn create_pi ( & mut self , target : StrTendril , content : StrTendril ) -> Handle {
1770- self . rcdom . create_pi ( target, content)
1771- }
1772-
1773- fn append ( & mut self , parent : & Handle , child : NodeOrText < Handle > ) {
1774- self . rcdom . append ( parent, child)
1775- }
1776-
1777- fn append_before_sibling ( & mut self , sibling : & Handle , child : NodeOrText < Handle > ) {
1778- self . rcdom . append_before_sibling ( sibling, child)
1779- }
1780-
1781- fn append_based_on_parent_node (
1782- & mut self ,
1783- element : & Handle ,
1784- prev_element : & Handle ,
1785- child : NodeOrText < Handle > ,
1786- ) {
1787- self . rcdom
1788- . append_based_on_parent_node ( element, prev_element, child)
1789- }
1790-
1791- fn append_doctype_to_document (
1792- & mut self ,
1793- name : StrTendril ,
1794- public_id : StrTendril ,
1795- system_id : StrTendril ,
1796- ) {
1797- self . rcdom
1798- . append_doctype_to_document ( name, public_id, system_id) ;
1799- }
1800-
1801- fn add_attrs_if_missing ( & mut self , target : & Handle , attrs : Vec < Attribute > ) {
1802- self . rcdom . add_attrs_if_missing ( target, attrs) ;
1803- }
1804-
1805- fn remove_from_parent ( & mut self , target : & Handle ) {
1806- self . rcdom . remove_from_parent ( target) ;
1807- }
1808-
1809- fn reparent_children ( & mut self , node : & Handle , new_parent : & Handle ) {
1810- self . rcdom . reparent_children ( node, new_parent) ;
1811- }
1812-
1813- fn mark_script_already_started ( & mut self , target : & Handle ) {
1814- self . rcdom . mark_script_already_started ( target) ;
1815- }
1816-
1817- fn set_current_line ( & mut self , line_number : u64 ) {
1818- self . current_line = line_number;
1819- }
1820- }
1821-
1822- #[ test]
1823- fn check_four_lines ( ) {
1824- // Input
1825- let sink = LineCountingDOM {
1826- line_vec : vec ! [ ] ,
1827- current_line : 1 ,
1828- rcdom : RcDom :: default ( ) ,
1829- } ;
1830- let opts = ParseOpts :: default ( ) ;
1831- let mut resultTok = parse_document ( sink, opts) ;
1832- resultTok. process ( StrTendril :: from ( "<a>\n " ) ) ;
1833- resultTok. process ( StrTendril :: from ( "</a>\n " ) ) ;
1834- resultTok. process ( StrTendril :: from ( "<b>\n " ) ) ;
1835- resultTok. process ( StrTendril :: from ( "</b>" ) ) ;
1836- // Actual Output
1837- let actual = resultTok. finish ( ) ;
1838- // Expected Output
1839- let expected = vec ! [
1840- ( QualName :: new( None , ns!( html) , local_name!( "html" ) ) , 1 ) ,
1841- ( QualName :: new( None , ns!( html) , local_name!( "head" ) ) , 1 ) ,
1842- ( QualName :: new( None , ns!( html) , local_name!( "body" ) ) , 1 ) ,
1843- ( QualName :: new( None , ns!( html) , local_name!( "a" ) ) , 1 ) ,
1844- ( QualName :: new( None , ns!( html) , local_name!( "b" ) ) , 3 ) ,
1845- ] ;
1846- // Assertion
1847- assert_eq ! ( actual. line_vec, expected) ;
1848- }
1849- }
0 commit comments