1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
v/vlib/net/html/parser_test.v
yuyi fd4045931a
scanner: fix the new string interpolation - println('{s == 'hello'}') (fix #16318) (#16319)
* scanner: fix the new string interpolation - println('{s == 'hello'}')

* fix vlib/v/eval/gen/infix_gen.v
2022-11-03 23:06:11 +02:00

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
}