@@ -1679,171 +1679,3 @@ where
1679
1679
}
1680
1680
}
1681
1681
}
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