42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			V
		
	
	
| module html
 | |
| 
 | |
| import strings
 | |
| 
 | |
| fn test_split_parse() {
 | |
| 	mut parser := Parser{}
 | |
| 	parser.init()
 | |
| 	parser.split_parse('<!doctype htm')
 | |
| 	parser.split_parse('l public')
 | |
| 	parser.split_parse('><html><he')
 | |
| 	parser.split_parse('ad><t')
 | |
| 	parser.split_parse('itle> Hum... ')
 | |
| 	parser.split_parse('A Tit')
 | |
| 	parser.split_parse('\nle</ti\ntle>')
 | |
| 	parser.split_parse('</\nhead><body>\t\t\t<h3>')
 | |
| 	parser.split_parse('Nice Test!</h3>')
 | |
| 	parser.split_parse('</bo\n\n\ndy></html>')
 | |
| 	parser.finalize()
 | |
| 	assert parser.tags.len == 11
 | |
| 	assert parser.tags[3].content == ' Hum... A Tit\nle'
 | |
| }
 | |
| 
 | |
| fn test_giant_string() {
 | |
| 	mut temp_html := strings.new_builder(200)
 | |
| 	mut parser := Parser{}
 | |
| 	temp_html.write_string('<!doctype html><html><head><title>Giant String</title></head><body>')
 | |
| 	for counter := 0; counter < 2000; counter++ {
 | |
| 		temp_html.write_string("<div id='name_$counter' class='several-$counter'>Look at $counter</div>")
 | |
| 	}
 | |
| 	temp_html.write_string('</body></html>')
 | |
| 	parser.parse_html(temp_html.str())
 | |
| 	assert parser.tags.len == 4009
 | |
| }
 | |
| 
 | |
| fn test_script_tag() {
 | |
| 	mut parser := Parser{}
 | |
| 	script_content := "\nvar googletag = googletag || {};\ngoogletag.cmd = googletag.cmd || [];if(3 > 5) {console.log('Birl');}\n"
 | |
| 	temp_html := '<html><body><script>$script_content</script></body></html>'
 | |
| 	parser.parse_html(temp_html)
 | |
| 	assert parser.tags[2].content.len == script_content.replace('\n', '').len
 | |
| }
 |