diff options
| author | Nigel Tao <nigeltao@golang.org> | 2012-01-25 10:54:59 +1100 |
|---|---|---|
| committer | Nigel Tao <nigeltao@golang.org> | 2012-01-25 10:54:59 +1100 |
| commit | 324513bc5f1aa44685e547fec5e04fd0b2c8af40 (patch) | |
| tree | f5eb5d73fac8b6e8111f07e04ad93fb07c3193a1 /src/pkg/html | |
| parent | 66599c40709cb74da2e3ae243e1f42ac9bacf263 (diff) | |
| download | go-324513bc5f1aa44685e547fec5e04fd0b2c8af40.tar.xz | |
html: move the HTML parser to an exp/html package. The parser is a
work in progress, and we are not ready to freeze its API for Go 1.
Package html still exists, containing just two functions: EscapeString
and UnescapeString.
Both the packages at exp/html and html are "package html". The former
is a superset of the latter.
At some point in the future, the exp/html code will move back into
html, once we have finalized the parser API.
R=rsc, dsymonds
CC=golang-dev
https://golang.org/cl/5571059
Diffstat (limited to 'src/pkg/html')
59 files changed, 4 insertions, 20743 deletions
diff --git a/src/pkg/html/Makefile b/src/pkg/html/Makefile index da5c3f2a3e..1b18358a78 100644 --- a/src/pkg/html/Makefile +++ b/src/pkg/html/Makefile @@ -6,15 +6,7 @@ include ../../Make.inc TARG=html GOFILES=\ - const.go\ - doc.go\ - doctype.go\ entity.go\ escape.go\ - foreign.go\ - node.go\ - parse.go\ - render.go\ - token.go\ include ../../Make.pkg diff --git a/src/pkg/html/const.go b/src/pkg/html/const.go deleted file mode 100644 index d7cc8bb9a9..0000000000 --- a/src/pkg/html/const.go +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package html - -// Section 12.2.3.2 of the HTML5 specification says "The following elements -// have varying levels of special parsing rules". -// http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#the-stack-of-open-elements -var isSpecialElementMap = map[string]bool{ - "address": true, - "applet": true, - "area": true, - "article": true, - "aside": true, - "base": true, - "basefont": true, - "bgsound": true, - "blockquote": true, - "body": true, - "br": true, - "button": true, - "caption": true, - "center": true, - "col": true, - "colgroup": true, - "command": true, - "dd": true, - "details": true, - "dir": true, - "div": true, - "dl": true, - "dt": true, - "embed": true, - "fieldset": true, - "figcaption": true, - "figure": true, - "footer": true, - "form": true, - "frame": true, - "frameset": true, - "h1": true, - "h2": true, - "h3": true, - "h4": true, - "h5": true, - "h6": true, - "head": true, - "header": true, - "hgroup": true, - "hr": true, - "html": true, - "iframe": true, - "img": true, - "input": true, - "isindex": true, - "li": true, - "link": true, - "listing": true, - "marquee": true, - "menu": true, - "meta": true, - "nav": true, - "noembed": true, - "noframes": true, - "noscript": true, - "object": true, - "ol": true, - "p": true, - "param": true, - "plaintext": true, - "pre": true, - "script": true, - "section": true, - "select": true, - "style": true, - "summary": true, - "table": true, - "tbody": true, - "td": true, - "textarea": true, - "tfoot": true, - "th": true, - "thead": true, - "title": true, - "tr": true, - "ul": true, - "wbr": true, - "xmp": true, -} - -func isSpecialElement(element *Node) bool { - switch element.Namespace { - case "", "html": - return isSpecialElementMap[element.Data] - case "svg": - return element.Data == "foreignObject" - } - return false -} diff --git a/src/pkg/html/doc.go b/src/pkg/html/doc.go deleted file mode 100644 index 56b194ffb9..0000000000 --- a/src/pkg/html/doc.go +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -/* -Package html implements an HTML5-compliant tokenizer and parser. -INCOMPLETE. - -Tokenization is done by creating a Tokenizer for an io.Reader r. It is the -caller's responsibility to ensure that r provides UTF-8 encoded HTML. - - z := html.NewTokenizer(r) - -Given a Tokenizer z, the HTML is tokenized by repeatedly calling z.Next(), -which parses the next token and returns its type, or an error: - - for { - tt := z.Next() - if tt == html.ErrorToken { - // ... - return ... - } - // Process the current token. - } - -There are two APIs for retrieving the current token. The high-level API is to -call Token; the low-level API is to call Text or TagName / TagAttr. Both APIs -allow optionally calling Raw after Next but before Token, Text, TagName, or -TagAttr. In EBNF notation, the valid call sequence per token is: - - Next {Raw} [ Token | Text | TagName {TagAttr} ] - -Token returns an independent data structure that completely describes a token. -Entities (such as "<") are unescaped, tag names and attribute keys are -lower-cased, and attributes are collected into a []Attribute. For example: - - for { - if z.Next() == html.ErrorToken { - // Returning io.EOF indicates success. - return z.Err() - } - emitToken(z.Token()) - } - -The low-level API performs fewer allocations and copies, but the contents of -the []byte values returned by Text, TagName and TagAttr may change on the next -call to Next. For example, to extract an HTML page's anchor text: - - depth := 0 - for { - tt := z.Next() - switch tt { - case ErrorToken: - return z.Err() - case TextToken: - if depth > 0 { - // emitBytes should copy the []byte it receives, - // if it doesn't process it immediately. - emitBytes(z.Text()) - } - case StartTagToken, EndTagToken: - tn, _ := z.TagName() - if len(tn) == 1 && tn[0] == 'a' { - if tt == StartTagToken { - depth++ - } else { - depth-- - } - } - } - } - -Parsing is done by calling Parse with an io.Reader, which returns the root of -the parse tree (the document element) as a *Node. It is the caller's -responsibility to ensure that the Reader provides UTF-8 encoded HTML. For -example, to process each anchor node in depth-first order: - - doc, err := html.Parse(r) - if err != nil { - // ... - } - var f func(*html.Node) - f = func(n *html.Node) { - if n.Type == html.ElementNode && n.Data == "a" { - // Do something with n... - } - for _, c := range n.Child { - f(c) - } - } - f(doc) - -The relevant specifications include: -http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html and -http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html -*/ -package html - -// The tokenization algorithm implemented by this package is not a line-by-line -// transliteration of the relatively verbose state-machine in the WHATWG -// specification. A more direct approach is used instead, where the program -// counter implies the state, such as whether it is tokenizing a tag or a text -// node. Specification compliance is verified by checking expected and actual -// outputs over a test suite rather than aiming for algorithmic fidelity. - -// TODO(nigeltao): Does a DOM API belong in this package or a separate one? -// TODO(nigeltao): How does parsing interact with a JavaScript engine? diff --git a/src/pkg/html/doctype.go b/src/pkg/html/doctype.go deleted file mode 100644 index f692061a55..0000000000 --- a/src/pkg/html/doctype.go +++ /dev/null @@ -1,156 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package html - -import ( - "strings" -) - -// parseDoctype parses the data from a DoctypeToken into a name, -// public identifier, and system identifier. It returns a Node whose Type -// is DoctypeNode, whose Data is the name, and which has attributes -// named "system" and "public" for the two identifiers if they were present. -// quirks is whether the document should be parsed in "quirks mode". -func parseDoctype(s string) (n *Node, quirks bool) { - n = &Node{Type: DoctypeNode} - - // Find the name. - space := strings.IndexAny(s, whitespace) - if space == -1 { - space = len(s) - } - n.Data = s[:space] - // The comparison to "html" is case-sensitive. - if n.Data != "html" { - quirks = true - } - n.Data = strings.ToLower(n.Data) - s = strings.TrimLeft(s[space:], whitespace) - - if len(s) < 6 { - // It can't start with "PUBLIC" or "SYSTEM". - // Ignore the rest of the string. - return n, quirks || s != "" - } - - key := strings.ToLower(s[:6]) - s = s[6:] - for key == "public" || key == "system" { - s = strings.TrimLeft(s, whitespace) - if s == "" { - break - } - quote := s[0] - if quote != '"' && quote != '\'' { - break - } - s = s[1:] - q := strings.IndexRune(s, rune(quote)) - var id string - if q == -1 { - id = s - s = "" - } else { - id = s[:q] - s = s[q+1:] - } - n.Attr = append(n.Attr, Attribute{Key: key, Val: id}) - if key == "public" { - key = "system" - } else { - key = "" - } - } - - if key != "" || s != "" { - quirks = true - } else if len(n.Attr) > 0 { - if n.Attr[0].Key == "public" { - public := strings.ToLower(n.Attr[0].Val) - switch public { - case "-//w3o//dtd w3 html strict 3.0//en//", "-/w3d/dtd html 4.0 transitional/en", "html": - quirks = true - default: - for _, q := range quirkyIDs { - if strings.HasPrefix(public, q) { - quirks = true - break - } - } - } - // The following two public IDs only cause quirks mode if there is no system ID. - if len(n.Attr) == 1 && (strings.HasPrefix(public, "-//w3c//dtd html 4.01 frameset//") || - strings.HasPrefix(public, "-//w3c//dtd html 4.01 transitional//")) { - quirks = true - } - } - if lastAttr := n.Attr[len(n.Attr)-1]; lastAttr.Key == "system" && - strings.ToLower(lastAttr.Val) == "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd" { - quirks = true - } - } - - return n, quirks -} - -// quirkyIDs is a list of public doctype identifiers that cause a document -// to be interpreted in quirks mode. The identifiers should be in lower case. -var quirkyIDs = []string{ - "+//silmaril//dtd html pro v0r11 19970101//", - "-//advasoft ltd//dtd html 3.0 aswedit + extensions//", - "-//as//dtd html 3.0 aswedit + extensions//", - "-//ietf//dtd html 2.0 level 1//", - "-//ietf//dtd html 2.0 level 2//", - "-//ietf//dtd html 2.0 strict level 1//", - "-//ietf//dtd html 2.0 strict level 2//", - "-//ietf//dtd html 2.0 strict//", - "-//ietf//dtd html 2.0//", - "-//ietf//dtd html 2.1e//", - "-//ietf//dtd html 3.0//", - "-//ietf//dtd html 3.2 final//", - "-//ietf//dtd html 3.2//", - "-//ietf//dtd html 3//", - "-//ietf//dtd html level 0//", - "-//ietf//dtd html level 1//", - "-//ietf//dtd html level 2//", - "-//ietf//dtd html level 3//", - "-//ietf//dtd html strict level 0//", - "-//ietf//dtd html strict level 1//", - "-//ietf//dtd html strict level 2//", - "-//ietf//dtd html strict level 3//", - "-//ietf//dtd html strict//", - "-//ietf//dtd html//", - "-//metrius//dtd metrius presentational//", - "-//microsoft//dtd internet explorer 2.0 html strict//", - "-//microsoft//dtd internet explorer 2.0 html//", - "-//microsoft//dtd internet explorer 2.0 tables//", - "-//microsoft//dtd internet explorer 3.0 html strict//", - "-//microsoft//dtd internet explorer 3.0 html//", - "-//microsoft//dtd internet explorer 3.0 tables//", - "-//netscape comm. corp.//dtd html//", - "-//netscape comm. corp.//dtd strict html//", - "-//o'reilly and associates//dtd html 2.0//", - "-//o'reilly and associates//dtd html extended 1.0//", - "-//o'reilly and associates//dtd html extended relaxed 1.0//", - "-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//", - "-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//", - "-//spyglass//dtd html 2.0 extended//", - "-//sq//dtd html 2.0 hotmetal + extensions//", - "-//sun microsystems corp.//dtd hotjava html//", - "-//sun microsystems corp.//dtd hotjava strict html//", - "-//w3c//dtd html 3 1995-03-24//", - "-//w3c//dtd html 3.2 draft//", - "-//w3c//dtd html 3.2 final//", - "-//w3c//dtd html 3.2//", - "-//w3c//dtd html 3.2s draft//", - "-//w3c//dtd html 4.0 frameset//", - "-//w3c//dtd html 4.0 transitional//", - "-//w3c//dtd html experimental 19960712//", - "-//w3c//dtd html experimental 970421//", - "-//w3c//dtd w3 html//", - "-//w3o//dtd w3 html 3.0//", - "-//webtechs//dtd mozilla html 2.0//", - "-//webtechs//dtd mozilla html//", -} diff --git a/src/pkg/html/escape.go b/src/pkg/html/escape.go index 42be865ef0..c0b5262af8 100644 --- a/src/pkg/html/escape.go +++ b/src/pkg/html/escape.go @@ -10,6 +10,10 @@ import ( "unicode/utf8" ) +type writer interface { + WriteString(string) (int, error) +} + // These replacements permit compatibility with old numeric entities that // assumed Windows-1252 encoding. // http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#consume-a-character-reference diff --git a/src/pkg/html/foreign.go b/src/pkg/html/foreign.go deleted file mode 100644 index 3ba81ce4d6..0000000000 --- a/src/pkg/html/foreign.go +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package html - -import ( - "strings" -) - -func adjustForeignAttributes(aa []Attribute) { - for i, a := range aa { - if a.Key == "" || a.Key[0] != 'x' { - continue - } - switch a.Key { - case "xlink:actuate", "xlink:arcrole", "xlink:href", "xlink:role", "xlink:show", - "xlink:title", "xlink:type", "xml:base", "xml:lang", "xml:space", "xmlns:xlink": - j := strings.Index(a.Key, ":") - aa[i].Namespace = a.Key[:j] - aa[i].Key = a.Key[j+1:] - } - } -} - -func htmlIntegrationPoint(n *Node) bool { - if n.Type != ElementNode { - return false - } - switch n.Namespace { - case "math": - // TODO: annotation-xml elements whose start tags have "text/html" or - // "application/xhtml+xml" encodings. - case "svg": - switch n.Data { - case "desc", "foreignObject", "title": - return true - } - } - return false -} - -// Section 12.2.5.5. -var breakout = map[string]bool{ - "b": true, - "big": true, - "blockquote": true, - "body": true, - "br": true, - "center": true, - "code": true, - "dd": true, - "div": true, - "dl": true, - "dt": true, - "em": true, - "embed": true, - "font": true, - "h1": true, - "h2": true, - "h3": true, - "h4": true, - "h5": true, - "h6": true, - "head": true, - "hr": true, - "i": true, - "img": true, - "li": true, - "listing": true, - "menu": true, - "meta": true, - "nobr": true, - "ol": true, - "p": true, - "pre": true, - "ruby": true, - "s": true, - "small": true, - "span": true, - "strong": true, - "strike": true, - "sub": true, - "sup": true, - "table": true, - "tt": true, - "u": true, - "ul": true, - "var": true, -} - -// Section 12.2.5.5. -var svgTagNameAdjustments = map[string]string{ - "altglyph": "altGlyph", - "altglyphdef": "altGlyphDef", - "altglyphitem": "altGlyphItem", - "animatecolor": "animateColor", - "animatemotion": "animateMotion", - "animatetransform": "animateTransform", - "clippath": "clipPath", - "feblend": "feBlend", - "fecolormatrix": "feColorMatrix", - "fecomponenttransfer": "feComponentTransfer", - "fecomposite": "feComposite", - "feconvolvematrix": "feConvolveMatrix", - "fediffuselighting": "feDiffuseLighting", - "fedisplacementmap": "feDisplacementMap", - "fedistantlight": "feDistantLight", - "feflood": "feFlood", - "fefunca": "feFuncA", - "fefuncb": "feFuncB", - "fefuncg": "feFuncG", - "fefuncr": "feFuncR", - "fegaussianblur": "feGaussianBlur", - "feimage": "feImage", - "femerge": "feMerge", - "femergenode": "feMergeNode", - "femorphology": "feMorphology", - "feoffset": "feOffset", - "fepointlight": "fePointLight", - "fespecularlighting": "feSpecularLighting", - "fespotlight": "feSpotLight", - "fetile": "feTile", - "feturbulence": "feTurbulence", - "foreignobject": "foreignObject", - "glyphref": "glyphRef", - "lineargradient": "linearGradient", - "radialgradient": "radialGradient", - "textpath": "textPath", -} - -// TODO: add look-up tables for MathML and SVG attribute adjustments. diff --git a/src/pkg/html/node.go b/src/pkg/html/node.go deleted file mode 100644 index 83f17308b1..0000000000 --- a/src/pkg/html/node.go +++ /dev/null @@ -1,154 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package html - -// A NodeType is the type of a Node. -type NodeType int - -const ( - ErrorNode NodeType = iota - TextNode - DocumentNode - ElementNode - CommentNode - DoctypeNode - scopeMarkerNode -) - -// Section 12.2.3.3 says "scope markers are inserted when entering applet -// elements, buttons, object elements, marquees, table cells, and table -// captions, and are used to prevent formatting from 'leaking'". -var scopeMarker = Node{Type: scopeMarkerNode} - -// A Node consists of a NodeType and some Data (tag name for element nodes, -// content for text) and are part of a tree of Nodes. Element nodes may also -// have a Namespace and contain a slice of Attributes. Data is unescaped, so -// that it looks like "a<b" rather than "a<b". -// -// An empty Namespace implies a "http://www.w3.org/1999/xhtml" namespace. -// Similarly, "math" is short for "http://www.w3.org/1998/Math/MathML", and -// "svg" is short for "http://www.w3.org/2000/svg". -type Node struct { - Parent *Node - Child []*Node - Type NodeType - Data string - Namespace string - Attr []Attribute -} - -// Add adds a node as a child of n. -// It will panic if the child's parent is not nil. -func (n *Node) Add(child *Node) { - if child.Parent != nil { - panic("html: Node.Add called for a child Node that already has a parent") - } - child.Parent = n - n.Child = append(n.Child, child) -} - -// Remove removes a node as a child of n. -// It will panic if the child's parent is not n. -func (n *Node) Remove(child *Node) { - if child.Parent == n { - child.Parent = nil - for i, m := range n.Child { - if m == child { - copy(n.Child[i:], n.Child[i+1:]) - j := len(n.Child) - 1 - n.Child[j] = nil - n.Child = n.Child[:j] - return - } - } - } - panic("html: Node.Remove called for a non-child Node") -} - -// reparentChildren reparents all of src's child nodes to dst. -func reparentChildren(dst, src *Node) { - for _, n := range src.Child { - if n.Parent != src { - panic("html: nodes have an inconsistent parent/child relationship") - } - n.Parent = dst - } - dst.Child = append(dst.Child, src.Child...) - src.Child = nil -} - -// clone returns a new node with the same type, data and attributes. -// The clone has no parent and no children. -func (n *Node) clone() *Node { - m := &Node{ - Type: n.Type, - Data: n.Data, - Attr: make([]Attribute, len(n.Attr)), - } - copy(m.Attr, n.Attr) - return m -} - -// nodeStack is a stack of nodes. -type nodeStack []*Node - -// pop pops the stack. It will panic if s is empty. -func (s *nodeStack) pop() *Node { - i := len(*s) - n := (*s)[i-1] - *s = (*s)[:i-1] - return n -} - -// top returns the most recently pushed node, or nil if s is empty. -func (s *nodeStack) top() *Node { - if i := len(*s); i > 0 { - return (*s)[i-1] - } - return nil -} - -// index returns the index of the top-most occurence of n in the stack, or -1 -// if n is not present. -func (s *nodeStack) index(n *Node) int { - for i := len(*s) - 1; i >= 0; i-- { - if (*s)[i] == n { - return i - } - } - return -1 -} - -// insert inserts a node at the given index. -func (s *nodeStack) insert(i int, n *Node) { - (*s) = append(*s, nil) - copy((*s)[i+1:], (*s)[i:]) - (*s)[i] = n -} - -// remove removes a node from the stack. It is a no-op if n is not present. -func (s *nodeStack) remove(n *Node) { - i := s.index(n) - if i == -1 { - return - } - copy((*s)[i:], (*s)[i+1:]) - j := len(*s) - 1 - (*s)[j] = nil - *s = (*s)[:j] -} - -// TODO(nigeltao): forTag no longer used. Should it be deleted? - -// forTag returns the top-most element node with the given tag. -func (s *nodeStack) forTag(tag string) *Node { - for i := len(*s) - 1; i >= 0; i-- { - n := (*s)[i] - if n.Type == ElementNode && n.Data == tag { - return n - } - } - return nil -} diff --git a/src/pkg/html/parse.go b/src/pkg/html/parse.go deleted file mode 100644 index 04f4ae7533..0000000000 --- a/src/pkg/html/parse.go +++ /dev/null @@ -1,1869 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package html - -import ( - "io" - "strings" -) - -// A parser implements the HTML5 parsing algorithm: -// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#tree-construction -type parser struct { - // tokenizer provides the tokens for the parser. - tokenizer *Tokenizer - // tok is the most recently read token. - tok Token - // Self-closing tags like <hr/> are re-interpreted as a two-token sequence: - // <hr> followed by </hr>. hasSelfClosingToken is true if we have just read - // the synthetic start tag and the next one due is the matching end tag. - hasSelfClosingToken bool - // doc is the document root element. - doc *Node - // The stack of open elements (section 12.2.3.2) and active formatting - // elements (section 12.2.3.3). - oe, afe nodeStack - // Element pointers (section 12.2.3.4). - head, form *Node - // Other parsing state flags (section 12.2.3.5). - scripting, framesetOK bool - // im is the current insertion mode. - im insertionMode - // originalIM is the insertion mode to go back to after completing a text - // or inTableText insertion mode. - originalIM insertionMode - // fosterParenting is whether new elements should be inserted according to - // the foster parenting rules (section 12.2.5.3). - fosterParenting bool - // quirks is whether the parser is operating in "quirks mode." - quirks bool - // context is the context element when parsing an HTML fragment - // (section 12.4). - context *Node -} - -func (p *parser) top() *Node { - if n := p.oe.top(); n != nil { - return n - } - return p.doc -} - -// Stop tags for use in popUntil. These come from section 12.2.3.2. -var ( - defaultScopeStopTags = map[string][]string{ - "": {"applet", "caption", "html", "table", "td", "th", "marquee", "object"}, - "math": {"annotation-xml", "mi", "mn", "mo", "ms", "mtext"}, - "svg": {"desc", "foreignObject", "title"}, - } -) - -type scope int - -const ( - defaultScope scope = iota - listItemScope - buttonScope - tableScope - tableRowScope -) - -// popUntil pops the stack of open elements at the highest element whose tag -// is in matchTags, provided there is no higher element in the scope's stop -// tags (as defined in section 12.2.3.2). It returns whether or not there was -// such an element. If there was not, popUntil leaves the stack unchanged. -// -// For example, the set of stop tags for table scope is: "html", "table". If -// the stack was: -// ["html", "body", "font", "table", "b", "i", "u"] -// then popUntil(tableScope, "font") would return false, but -// popUntil(tableScope, "i") would return true and the stack would become: -// ["html", "body", "font", "table", "b"] -// -// If an element's tag is in both the stop tags and matchTags, then the stack -// will be popped and the function returns true (provided, of course, there was -// no higher element in the stack that was also in the stop tags). For example, -// popUntil(tableScope, "table") returns true and leaves: -// ["html", "body", "font"] -func (p *parser) popUntil(s scope, matchTags ...string) bool { - if i := p.indexOfElementInScope(s, matchTags...); i != -1 { - p.oe = p.oe[:i] - return true - } - return false -} - -// indexOfElementInScope returns the index in p.oe of the highest element whose -// tag is in matchTags that is in scope. If no matching element is in scope, it -// returns -1. -func (p *parser) indexOfElementInScope(s scope, matchTags ...string) int { - for i := len(p.oe) - 1; i >= 0; i-- { - tag := p.oe[i].Data - if p.oe[i].Namespace == "" { - for _, t := range matchTags { - if t == tag { - return i - } - } - switch s { - case defaultScope: - // No-op. - case listItemScope: - if tag == "ol" || tag == "ul" { - return -1 - } - case buttonScope: - if tag == "button" { - return -1 - } - case tableScope: - if tag == "html" || tag == "table" { - return -1 - } - default: - panic("unreachable") - } - } - switch s { - case defaultScope, listItemScope, buttonScope: - for _, t := range defaultScopeStopTags[p.oe[i].Namespace] { - if t == tag { - return -1 - } - } - } - } - return -1 -} - -// elementInScope is like popUntil, except that it doesn't modify the stack of -// open elements. -func (p *parser) elementInScope(s scope, matchTags ...string) bool { - return p.indexOfElementInScope(s, matchTags...) != -1 -} - -// clearStackToContext pops elements off the stack of open elements until a -// scope-defined element is found. -func (p *parser) clearStackToContext(s scope) { - for i := len(p.oe) - 1; i >= 0; i-- { - tag := p.oe[i].Data - switch s { - case tableScope: - if tag == "html" || tag == "table" { - p.oe = p.oe[:i+1] - return - } - case tableRowScope: - if tag == "html" || tag == "tr" { - p.oe = p.oe[:i+1] - return - } - default: - panic("unreachable") - } - } -} - -// addChild adds a child node n to the top element, and pushes n onto the stack -// of open elements if it is an element node. -func (p *parser) addChild(n *Node) { - if p.fosterParenting { - p.fosterParent(n) - } else { - p.top().Add(n) - } - - if n.Type == ElementNode { - p.oe = append(p.oe, n) - } -} - -// fosterParent adds a child node according to the foster parenting rules. -// Section 12.2.5.3, "foster parenting". -func (p *parser) fosterParent(n *Node) { - p.fosterParenting = false - var table, parent *Node - var i int - for i = len(p.oe) - 1; i >= 0; i-- { - if p.oe[i].Data == "table" { - table = p.oe[i] - break - } - } - - if table == nil { - // The foster parent is the html element. - parent = p.oe[0] - } else { - parent = table.Parent - } - if parent == nil { - parent = p.oe[i-1] - } - - var child *Node - for i, child = range parent.Child { - if child == table { - break - } - } - - if i > 0 && parent.Child[i-1].Type == TextNode && n.Type == TextNode { - parent.Child[i-1].Data += n.Data - return - } - - if i == len(parent.Child) { - parent.Add(n) - } else { - // Insert n into parent.Child at index i. - parent.Child = append(parent.Child[:i+1], parent.Child[i:]...) - parent.Child[i] = n - n.Parent = parent - } -} - -// addText adds text to the preceding node if it is a text node, or else it -// calls addChild with a new text node. -func (p *parser) addText(text string) { - // TODO: distinguish whitespace text from others. - t := p.top() - if i := len(t.Child); i > 0 && t.Child[i-1].Type == TextNode { - t.Child[i-1].Data += text - return - } - p.addChild(&Node{ - Type: TextNode, - Data: text, - }) -} - -// addElement calls addChild with an element node. -func (p *parser) addElement(tag string, attr []Attribute) { - p.addChild(&Node{ - Type: ElementNode, - Data: tag, - Attr: attr, - }) -} - -// Section 12.2.3.3. -func (p *parser) addFormattingElement(tag string, attr []Attribute) { - p.addElement(tag, attr) - p.afe = append(p.afe, p.top()) - // TODO. -} - -// Section 12.2.3.3. -func (p *parser) clearActiveFormattingElements() { - for { - n := p.afe.pop() - if len(p.afe) == 0 || n.Type == scopeMarkerNode { - return - } - } -} - -// Section 12.2.3.3. -func (p *parser) reconstructActiveFormattingElements() { - n := p.afe.top() - if n == nil { - return - } - if n.Type == scopeMarkerNode || p.oe.index(n) != -1 { - return - } - i := len(p.afe) - 1 - for n.Type != scopeMarkerNode && p.oe.index(n) == -1 { - if i == 0 { - i = -1 - break - } - i-- - n = p.afe[i] - } - for { - i++ - clone := p.afe[i].clone() - p.addChild(clone) - p.afe[i] = clone - if i == len(p.afe)-1 { - break - } - } -} - -// read reads the next token. This is usually from the tokenizer, but it may -// be the synthesized end tag implied by a self-closing tag. -func (p *parser) read() error { - if p.hasSelfClosingToken { - p.hasSelfClosingToken = false - p.tok.Type = EndTagToken - p.tok.Attr = nil - return nil - } - p.tokenizer.Next() - p.tok = p.tokenizer.Token() - switch p.tok.Type { - case ErrorToken: - return p.tokenizer.Err() - case SelfClosingTagToken: - p.hasSelfClosingToken = true - p.tok.Type = StartTagToken - } - return nil -} - -// Section 12.2.4. -func (p *parser) acknowledgeSelfClosingTag() { - p.hasSelfClosingToken = false -} - -// An insertion mode (section 12.2.3.1) is the state transition function from -// a particular state in the HTML5 parser's state machine. It updates the -// parser's fields depending on parser.tok (where ErrorToken means EOF). -// It returns whether the token was consumed. -type insertionMode func(*parser) bool - -// setOriginalIM sets the insertion mode to return to after completing a text or -// inTableText insertion mode. -// Section 12.2.3.1, "using the rules for". -func (p *parser) setOriginalIM() { - if p.originalIM != nil { - panic("html: bad parser state: originalIM was set twice") - } - p.originalIM = p.im -} - -// Section 12.2.3.1, "reset the insertion mode". -func (p *parser) resetInsertionMode() { - for i := len(p.oe) - 1; i >= 0; i-- { - n := p.oe[i] - if i == 0 && p.context != nil { - n = p.context - } - - switch n.Data { - case "select": - p.im = inSelectIM - case "td", "th": - p.im = inCellIM - case "tr": - p.im = inRowIM - case "tbody", "thead", "tfoot": - p.im = inTableBodyIM - case "caption": - p.im = inCaptionIM - case "colgroup": - p.im = inColumnGroupIM - case "table": - p.im = inTableIM - case "head": - p.im = inBodyIM - case "body": - p.im = inBodyIM - case "frameset": - p.im = inFramesetIM - case "html": - p.im = beforeHeadIM - default: - continue - } - return - } - p.im = inBodyIM -} - -const whitespace = " \t\r\n\f" - -// Section 12.2.5.4.1. -func initialIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace) - if len(p.tok.Data) == 0 { - // It was all whitespace, so ignore it. - return true - } - case CommentToken: - p.doc.Add(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - case DoctypeToken: - n, quirks := parseDoctype(p.tok.Data) - p.doc.Add(n) - p.quirks = quirks - p.im = beforeHTMLIM - return true - } - p.quirks = true - p.im = beforeHTMLIM - return false -} - -// Section 12.2.5.4.2. -func beforeHTMLIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace) - if len(p.tok.Data) == 0 { - // It was all whitespace, so ignore it. - return true - } - case StartTagToken: - if p.tok.Data == "html" { - p.addElement(p.tok.Data, p.tok.Attr) - p.im = beforeHeadIM - return true - } - case EndTagToken: - switch p.tok.Data { - case "head", "body", "html", "br": - // Drop down to creating an implied <html> tag. - default: - // Ignore the token. - return true - } - case CommentToken: - p.doc.Add(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - } - // Create an implied <html> tag. - p.addElement("html", nil) - p.im = beforeHeadIM - return false -} - -// Section 12.2.5.4.3. -func beforeHeadIM(p *parser) bool { - var ( - add bool - attr []Attribute - implied bool - ) - switch p.tok.Type { - case ErrorToken: - implied = true - case TextToken: - p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace) - if len(p.tok.Data) == 0 { - // It was all whitespace, so ignore it. - return true - } - implied = true - case StartTagToken: - switch p.tok.Data { - case "head": - add = true - attr = p.tok.Attr - case "html": - return inBodyIM(p) - default: - implied = true - } - case EndTagToken: - switch p.tok.Data { - case "head", "body", "html", "br": - implied = true - default: - // Ignore the token. - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - } - if add || implied { - p.addElement("head", attr) - p.head = p.top() - } - p.im = inHeadIM - return !implied -} - -// Section 12.2.5.4.4. -func inHeadIM(p *parser) bool { - var ( - pop bool - implied bool - ) - switch p.tok.Type { - case ErrorToken: - implied = true - case TextToken: - s := strings.TrimLeft(p.tok.Data, whitespace) - if len(s) < len(p.tok.Data) { - // Add the initial whitespace to the current node. - p.addText(p.tok.Data[:len(p.tok.Data)-len(s)]) - if s == "" { - return true - } - p.tok.Data = s - } - implied = true - case StartTagToken: - switch p.tok.Data { - case "html": - return inBodyIM(p) - case "base", "basefont", "bgsound", "command", "link", "meta": - p.addElement(p.tok.Data, p.tok.Attr) - p.oe.pop() - p.acknowledgeSelfClosingTag() - case "script", "title", "noscript", "noframes", "style": - p.addElement(p.tok.Data, p.tok.Attr) - p.setOriginalIM() - p.im = textIM - return true - case "head": - // Ignore the token. - return true - default: - implied = true - } - case EndTagToken: - switch p.tok.Data { - case "head": - pop = true - case "body", "html", "br": - implied = true - default: - // Ignore the token. - return true - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - } - if pop || implied { - n := p.oe.pop() - if n.Data != "head" { - panic("html: bad parser state: <head> element not found, in the in-head insertion mode") - } - p.im = afterHeadIM - return !implied - } - return true -} - -// Section 12.2.5.4.6. -func afterHeadIM(p *parser) bool { - var ( - add bool - attr []Attribute - framesetOK bool - implied bool - ) - switch p.tok.Type { - case ErrorToken: - implied = true - framesetOK = true - case TextToken: - s := strings.TrimLeft(p.tok.Data, whitespace) - if len(s) < len(p.tok.Data) { - // Add the initial whitespace to the current node. - p.addText(p.tok.Data[:len(p.tok.Data)-len(s)]) - if s == "" { - return true - } - p.tok.Data = s - } - implied = true - framesetOK = true - case StartTagToken: - switch p.tok.Data { - case "html": - // TODO. - case "body": - add = true - attr = p.tok.Attr - framesetOK = false - case "frameset": - p.addElement(p.tok.Data, p.tok.Attr) - p.im = inFramesetIM - return true - case "base", "basefont", "bgsound", "link", "meta", "noframes", "script", "style", "title": - p.oe = append(p.oe, p.head) - defer p.oe.pop() - return inHeadIM(p) - case "head": - // Ignore the token. - return true - default: - implied = true - framesetOK = true - } - case EndTagToken: - switch p.tok.Data { - case "body", "html", "br": - implied = true - framesetOK = true - default: - // Ignore the token. - return true - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - } - if add || implied { - p.addElement("body", attr) - p.framesetOK = framesetOK - } - p.im = inBodyIM - return !implied -} - -// copyAttributes copies attributes of src not found on dst to dst. -func copyAttributes(dst *Node, src Token) { - if len(src.Attr) == 0 { - return - } - attr := map[string]string{} - for _, a := range dst.Attr { - attr[a.Key] = a.Val - } - for _, a := range src.Attr { - if _, ok := attr[a.Key]; !ok { - dst.Attr = append(dst.Attr, a) - attr[a.Key] = a.Val - } - } -} - -// Section 12.2.5.4.7. -func inBodyIM(p *parser) bool { - switch p.tok.Type { - case TextToken: - switch n := p.oe.top(); n.Data { - case "pre", "listing", "textarea": - if len(n.Child) == 0 { - // Ignore a newline at the start of a <pre> block. - d := p.tok.Data - if d != "" && d[0] == '\r' { - d = d[1:] - } - if d != "" && d[0] == '\n' { - d = d[1:] - } - if d == "" { - return true - } - p.tok.Data = d - } - } - p.reconstructActiveFormattingElements() - p.addText(p.tok.Data) - p.framesetOK = false - case StartTagToken: - switch p.tok.Data { - case "html": - copyAttributes(p.oe[0], p.tok) - case "address", "article", "aside", "blockquote", "center", "details", "dir", "div", "dl", "fieldset", "figcaption", "figure", "footer", "header", "hgroup", "menu", "nav", "ol", "p", "section", "summary", "ul": - p.popUntil(buttonScope, "p") - p.addElement(p.tok.Data, p.tok.Attr) - case "h1", "h2", "h3", "h4", "h5", "h6": - p.popUntil(buttonScope, "p") - switch n := p.top(); n.Data { - case "h1", "h2", "h3", "h4", "h5", "h6": - p.oe.pop() - } - p.addElement(p.tok.Data, p.tok.Attr) - case "a": - for i := len(p.afe) - 1; i >= 0 && p.afe[i].Type != scopeMarkerNode; i-- { - if n := p.afe[i]; n.Type == ElementNode && n.Data == "a" { - p.inBodyEndTagFormatting("a") - p.oe.remove(n) - p.afe.remove(n) - break - } - } - p.reconstructActiveFormattingElements() - p.addFormattingElement(p.tok.Data, p.tok.Attr) - case "b", "big", "code", "em", "font", "i", "s", "small", "strike", "strong", "tt", "u": - p.reconstructActiveFormattingElements() - p.addFormattingElement(p.tok.Data, p.tok.Attr) - case "nobr": - p.reconstructActiveFormattingElements() - if p.elementInScope(defaultScope, "nobr") { - p.inBodyEndTagFormatting("nobr") - p.reconstructActiveFormattingElements() - } - p.addFormattingElement(p.tok.Data, p.tok.Attr) - case "applet", "marquee", "object": - p.reconstructActiveFormattingElements() - p.addElement(p.tok.Data, p.tok.Attr) - p.afe = append(p.afe, &scopeMarker) - p.framesetOK = false - case "area", "br", "embed", "img", "input", "keygen", "wbr": - p.reconstructActiveFormattingElements() - p.addElement(p.tok.Data, p.tok.Attr) - p.oe.pop() - p.acknowledgeSelfClosingTag() - p.framesetOK = false - case "table": - if !p.quirks { - p.popUntil(buttonScope, "p") - } - p.addElement(p.tok.Data, p.tok.Attr) - p.framesetOK = false - p.im = inTableIM - return true - case "hr": - p.popUntil(buttonScope, "p") - p.addElement(p.tok.Data, p.tok.Attr) - p.oe.pop() - p.acknowledgeSelfClosingTag() - p.framesetOK = false - case "select": - p.reconstructActiveFormattingElements() - p.addElement(p.tok.Data, p.tok.Attr) - p.framesetOK = false - p.im = inSelectIM - return true - case "form": - if p.form == nil { - p.popUntil(buttonScope, "p") - p.addElement(p.tok.Data, p.tok.Attr) - p.form = p.top() - } - case "li": - p.framesetOK = false - for i := len(p.oe) - 1; i >= 0; i-- { - node := p.oe[i] - switch node.Data { - case "li": - p.popUntil(listItemScope, "li") - case "address", "div", "p": - continue - default: - if !isSpecialElement(node) { - continue - } - } - break - } - p.popUntil(buttonScope, "p") - p.addElement(p.tok.Data, p.tok.Attr) - case "dd", "dt": - p.framesetOK = false - for i := len(p.oe) - 1; i >= 0; i-- { - node := p.oe[i] - switch node.Data { - case "dd", "dt": - p.oe = p.oe[:i] - case "address", "div", "p": - continue - default: - if !isSpecialElement(node) { - continue - } - } - break - } - p.popUntil(buttonScope, "p") - p.addElement(p.tok.Data, p.tok.Attr) - case "plaintext": - p.popUntil(buttonScope, "p") - p.addElement(p.tok.Data, p.tok.Attr) - case "button": - p.popUntil(defaultScope, "button") - p.reconstructActiveFormattingElements() - p.addElement(p.tok.Data, p.tok.Attr) - p.framesetOK = false - case "optgroup", "option": - if p.top().Data == "option" { - p.oe.pop() - } - p.reconstructActiveFormattingElements() - p.addElement(p.tok.Data, p.tok.Attr) - case "body": - if len(p.oe) >= 2 { - body := p.oe[1] - if body.Type == ElementNode && body.Data == "body" { - p.framesetOK = false - copyAttributes(body, p.tok) - } - } - case "frameset": - if !p.framesetOK || len(p.oe) < 2 || p.oe[1].Data != "body" { - // Ignore the token. - return true - } - body := p.oe[1] - if body.Parent != nil { - body.Parent.Remove(body) - } - p.oe = p.oe[:1] - p.addElement(p.tok.Data, p.tok.Attr) - p.im = inFramesetIM - return true - case "base", "basefont", "bgsound", "command", "link", "meta", "noframes", "script", "style", "title": - return inHeadIM(p) - case "image": - p.tok.Data = "img" - return false - case "isindex": - if p.form != nil { - // Ignore the token. - return true - } - action := "" - prompt := "This is a searchable index. Enter search keywords: " - attr := []Attribute{{Key: "name", Val: "isindex"}} - for _, a := range p.tok.Attr { - switch a.Key { - case "action": - action = a.Val - case "name": - // Ignore the attribute. - case "prompt": - prompt = a.Val - default: - attr = append(attr, a) - } - } - p.acknowledgeSelfClosingTag() - p.popUntil(buttonScope, "p") - p.addElement("form", nil) - p.form = p.top() - if action != "" { - p.form.Attr = []Attribute{{Key: "action", Val: action}} - } - p.addElement("hr", nil) - p.oe.pop() - p.addElement("label", nil) - p.addText(prompt) - p.addElement("input", attr) - p.oe.pop() - p.oe.pop() - p.addElement("hr", nil) - p.oe.pop() - p.oe.pop() - p.form = nil - case "xmp": - p.popUntil(buttonScope, "p") - p.reconstructActiveFormattingElements() - p.framesetOK = false - p.addElement(p.tok.Data, p.tok.Attr) - case "math", "svg": - p.reconstructActiveFormattingElements() - if p.tok.Data == "math" { - // TODO: adjust MathML attributes. - } else { - // TODO: adjust SVG attributes. - } - adjustForeignAttributes(p.tok.Attr) - p.addElement(p.tok.Data, p.tok.Attr) - p.top().Namespace = p.tok.Data - return true - case "caption", "col", "colgroup", "frame", "head", "tbody", "td", "tfoot", "th", "thead", "tr": - // Ignore the token. - default: - // TODO. - p.addElement(p.tok.Data, p.tok.Attr) - } - case EndTagToken: - switch p.tok.Data { - case "body": - // TODO: autoclose the stack of open elements. - p.im = afterBodyIM - return true - case "p": - if !p.elementInScope(buttonScope, "p") { - p.addElement("p", nil) - } - p.popUntil(buttonScope, "p") - case "a", "b", "big", "code", "em", "font", "i", "nobr", "s", "small", "strike", "strong", "tt", "u": - p.inBodyEndTagFormatting(p.tok.Data) - case "address", "article", "aside", "blockquote", "button", "center", "details", "dir", "div", "dl", "fieldset", "figcaption", "figure", "footer", "header", "hgroup", "listing", "menu", "nav", "ol", "pre", "section", "summary", "ul": - p.popUntil(defaultScope, p.tok.Data) - case "applet", "marquee", "object": - if p.popUntil(defaultScope, p.tok.Data) { - p.clearActiveFormattingElements() - } - case "br": - p.tok.Type = StartTagToken - return false - default: - p.inBodyEndTagOther(p.tok.Data) - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - } - - return true -} - -func (p *parser) inBodyEndTagFormatting(tag string) { - // This is the "adoption agency" algorithm, described at - // http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#adoptionAgency - - // TODO: this is a fairly literal line-by-line translation of that algorithm. - // Once the code successfully parses the comprehensive test suite, we should - // refactor this code to be more idiomatic. - - // Steps 1-3. The outer loop. - for i := 0; i < 8; i++ { - // Step 4. Find the formatting element. - var formattingElement *Node - for j := len(p.afe) - 1; j >= 0; j-- { - if p.afe[j].Type == scopeMarkerNode { - break - } - if p.afe[j].Data == tag { - formattingElement = p.afe[j] - break - } - } - if formattingElement == nil { - p.inBodyEndTagOther(tag) - return - } - feIndex := p.oe.index(formattingElement) - if feIndex == -1 { - p.afe.remove(formattingElement) - return - } - if !p.elementInScope(defaultScope, tag) { - // Ignore the tag. - return - } - - // Steps 5-6. Find the furthest block. - var furthestBlock *Node - for _, e := range p.oe[feIndex:] { - if isSpecialElement(e) { - furthestBlock = e - break - } - } - if furthestBlock == nil { - e := p.oe.pop() - for e != formattingElement { - e = p.oe.pop() - } - p.afe.remove(e) - return - } - - // Steps 7-8. Find the common ancestor and bookmark node. - commonAncestor := p.oe[feIndex-1] - bookmark := p.afe.index(formattingElement) - - // Step 9. The inner loop. Find the lastNode to reparent. - lastNode := furthestBlock - node := furthestBlock - x := p.oe.index(node) - // Steps 9.1-9.3. - for j := 0; j < 3; j++ { - // Step 9.4. - x-- - node = p.oe[x] - // Step 9.5. - if p.afe.index(node) == -1 { - p.oe.remove(node) - continue - } - // Step 9.6. - if node == formattingElement { - break - } - // Step 9.7. - clone := node.clone() - p.afe[p.afe.index(node)] = clone - p.oe[p.oe.index(node)] = clone - node = clone - // Step 9.8. - if lastNode == furthestBlock { - bookmark = p.afe.index(node) + 1 - } - // Step 9.9. - if lastNode.Parent != nil { - lastNode.Parent.Remove(lastNode) - } - node.Add(lastNode) - // Step 9.10. - lastNode = node - } - - // Step 10. Reparent lastNode to the common ancestor, - // or for misnested table nodes, to the foster parent. - if lastNode.Parent != nil { - lastNode.Parent.Remove(lastNode) - } - switch commonAncestor.Data { - case "table", "tbody", "tfoot", "thead", "tr": - p.fosterParent(lastNode) - default: - commonAncestor.Add(lastNode) - } - - // Steps 11-13. Reparent nodes from the furthest block's children - // to a clone of the formatting element. - clone := formattingElement.clone() - reparentChildren(clone, furthestBlock) - furthestBlock.Add(clone) - - // Step 14. Fix up the list of active formatting elements. - if oldLoc := p.afe.index(formattingElement); oldLoc != -1 && oldLoc < bookmark { - // Move the bookmark with the rest of the list. - bookmark-- - } - p.afe.remove(formattingElement) - p.afe.insert(bookmark, clone) - - // Step 15. Fix up the stack of open elements. - p.oe.remove(formattingElement) - p.oe.insert(p.oe.index(furthestBlock)+1, clone) - } -} - -// inBodyEndTagOther performs the "any other end tag" algorithm for inBodyIM. -func (p *parser) inBodyEndTagOther(tag string) { - for i := len(p.oe) - 1; i >= 0; i-- { - if p.oe[i].Data == tag { - p.oe = p.oe[:i] - break - } - if isSpecialElement(p.oe[i]) { - break - } - } -} - -// Section 12.2.5.4.8. -func textIM(p *parser) bool { - switch p.tok.Type { - case ErrorToken: - p.oe.pop() - case TextToken: - p.addText(p.tok.Data) - return true - case EndTagToken: - p.oe.pop() - } - p.im = p.originalIM - p.originalIM = nil - return p.tok.Type == EndTagToken -} - -// Section 12.2.5.4.9. -func inTableIM(p *parser) bool { - switch p.tok.Type { - case ErrorToken: - // Stop parsing. - return true - case TextToken: - // TODO. - case StartTagToken: - switch p.tok.Data { - case "caption": - p.clearStackToContext(tableScope) - p.afe = append(p.afe, &scopeMarker) - p.addElement(p.tok.Data, p.tok.Attr) - p.im = inCaptionIM - return true - case "tbody", "tfoot", "thead": - p.clearStackToContext(tableScope) - p.addElement(p.tok.Data, p.tok.Attr) - p.im = inTableBodyIM - return true - case "td", "th", "tr": - p.clearStackToContext(tableScope) - p.addElement("tbody", nil) - p.im = inTableBodyIM - return false - case "table": - if p.popUntil(tableScope, "table") { - p.resetInsertionMode() - return false - } - // Ignore the token. - return true - case "colgroup": - p.clearStackToContext(tableScope) - p.addElement(p.tok.Data, p.tok.Attr) - p.im = inColumnGroupIM - return true - case "col": - p.clearStackToContext(tableScope) - p.addElement("colgroup", p.tok.Attr) - p.im = inColumnGroupIM - return false - case "select": - p.reconstructActiveFormattingElements() - switch p.top().Data { - case "table", "tbody", "tfoot", "thead", "tr": - p.fosterParenting = true - } - p.addElement(p.tok.Data, p.tok.Attr) - p.fosterParenting = false - p.framesetOK = false - p.im = inSelectInTableIM - return true - default: - // TODO. - } - case EndTagToken: - switch p.tok.Data { - case "table": - if p.popUntil(tableScope, "table") { - p.resetInsertionMode() - return true - } - // Ignore the token. - return true - case "body", "caption", "col", "colgroup", "html", "tbody", "td", "tfoot", "th", "thead", "tr": - // Ignore the token. - return true - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - } - - switch p.top().Data { - case "table", "tbody", "tfoot", "thead", "tr": - p.fosterParenting = true - defer func() { p.fosterParenting = false }() - } - - return inBodyIM(p) -} - -// Section 12.2.5.4.11. -func inCaptionIM(p *parser) bool { - switch p.tok.Type { - case StartTagToken: - switch p.tok.Data { - case "caption", "col", "colgroup", "tbody", "td", "tfoot", "thead", "tr": - if p.popUntil(tableScope, "caption") { - p.clearActiveFormattingElements() - p.im = inTableIM - return false - } else { - // Ignore the token. - return true - } - case "select": - p.reconstructActiveFormattingElements() - p.addElement(p.tok.Data, p.tok.Attr) - p.framesetOK = false - p.im = inSelectInTableIM - return true - } - case EndTagToken: - switch p.tok.Data { - case "caption": - if p.popUntil(tableScope, "caption") { - p.clearActiveFormattingElements() - p.im = inTableIM - } - return true - case "table": - if p.popUntil(tableScope, "caption") { - p.clearActiveFormattingElements() - p.im = inTableIM - return false - } else { - // Ignore the token. - return true - } - case "body", "col", "colgroup", "html", "tbody", "td", "tfoot", "th", "thead", "tr": - // Ignore the token. - return true - } - } - return inBodyIM(p) -} - -// Section 12.2.5.4.12. -func inColumnGroupIM(p *parser) bool { - switch p.tok.Type { - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - case DoctypeToken: - // Ignore the token. - return true - case StartTagToken: - switch p.tok.Data { - case "html": - return inBodyIM(p) - case "col": - p.addElement(p.tok.Data, p.tok.Attr) - p.oe.pop() - p.acknowledgeSelfClosingTag() - return true - } - case EndTagToken: - switch p.tok.Data { - case "colgroup": - if p.oe.top().Data != "html" { - p.oe.pop() - p.im = inTableIM - } - return true - case "col": - // Ignore the token. - return true - } - } - if p.oe.top().Data != "html" { - p.oe.pop() - p.im = inTableIM - return false - } - return true -} - -// Section 12.2.5.4.13. -func inTableBodyIM(p *parser) bool { - var ( - add bool - data string - attr []Attribute - consumed bool - ) - switch p.tok.Type { - case ErrorToken: - // TODO. - case TextToken: - // TODO. - case StartTagToken: - switch p.tok.Data { - case "tr": - add = true - data = p.tok.Data - attr = p.tok.Attr - consumed = true - case "td", "th": - add = true - data = "tr" - consumed = false - case "caption", "col", "colgroup", "tbody", "tfoot", "thead": - if !p.popUntil(tableScope, "tbody", "thead", "tfoot") { - // Ignore the token. - return true - } - p.im = inTableIM - return false - default: - // TODO. - } - case EndTagToken: - switch p.tok.Data { - case "table": - if p.popUntil(tableScope, "tbody", "thead", "tfoot") { - p.im = inTableIM - return false - } - // Ignore the token. - return true - case "body", "caption", "col", "colgroup", "html", "td", "th", "tr": - // Ignore the token. - return true - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - } - if add { - // TODO: clear the stack back to a table body context. - p.addElement(data, attr) - p.im = inRowIM - return consumed - } - return inTableIM(p) -} - -// Section 12.2.5.4.14. -func inRowIM(p *parser) bool { - switch p.tok.Type { - case ErrorToken: - // TODO. - case TextToken: - // TODO. - case StartTagToken: - switch p.tok.Data { - case "td", "th": - p.clearStackToContext(tableRowScope) - p.addElement(p.tok.Data, p.tok.Attr) - p.afe = append(p.afe, &scopeMarker) - p.im = inCellIM - return true - case "caption", "col", "colgroup", "tbody", "tfoot", "thead", "tr": - if p.popUntil(tableScope, "tr") { - p.im = inTableBodyIM - return false - } - // Ignore the token. - return true - default: - // TODO. - } - case EndTagToken: - switch p.tok.Data { - case "tr": - if p.popUntil(tableScope, "tr") { - p.im = inTableBodyIM - return true - } - // Ignore the token. - return true - case "table": - if p.popUntil(tableScope, "tr") { - p.im = inTableBodyIM - return false - } - // Ignore the token. - return true - case "tbody", "tfoot", "thead": - // TODO. - case "body", "caption", "col", "colgroup", "html", "td", "th": - // Ignore the token. - return true - default: - // TODO. - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - } - return inTableIM(p) -} - -// Section 12.2.5.4.15. -func inCellIM(p *parser) bool { - var ( - closeTheCellAndReprocess bool - ) - switch p.tok.Type { - case StartTagToken: - switch p.tok.Data { - case "caption", "col", "colgroup", "tbody", "td", "tfoot", "th", "thead", "tr": - // TODO: check for "td" or "th" in table scope. - closeTheCellAndReprocess = true - case "select": - p.reconstructActiveFormattingElements() - p.addElement(p.tok.Data, p.tok.Attr) - p.framesetOK = false - p.im = inSelectInTableIM - return true - } - case EndTagToken: - switch p.tok.Data { - case "td", "th": - if !p.popUntil(tableScope, p.tok.Data) { - // Ignore the token. - return true - } - p.clearActiveFormattingElements() - p.im = inRowIM - return true - case "body", "caption", "col", "colgroup", "html": - // TODO. - case "table", "tbody", "tfoot", "thead", "tr": - // TODO: check for matching element in table scope. - closeTheCellAndReprocess = true - } - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - } - if closeTheCellAndReprocess { - if p.popUntil(tableScope, "td") || p.popUntil(tableScope, "th") { - p.clearActiveFormattingElements() - p.im = inRowIM - return false - } - } - return inBodyIM(p) -} - -// Section 12.2.5.4.16. -func inSelectIM(p *parser) bool { - endSelect := false - switch p.tok.Type { - case ErrorToken: - // TODO. - case TextToken: - p.addText(p.tok.Data) - case StartTagToken: - switch p.tok.Data { - case "html": - // TODO. - case "option": - if p.top().Data == "option" { - p.oe.pop() - } - p.addElement(p.tok.Data, p.tok.Attr) - case "optgroup": - if p.top().Data == "option" { - p.oe.pop() - } - if p.top().Data == "optgroup" { - p.oe.pop() - } - p.addElement(p.tok.Data, p.tok.Attr) - case "select": - endSelect = true - case "input", "keygen", "textarea": - // TODO. - case "script": - // TODO. - default: - // Ignore the token. - } - case EndTagToken: - switch p.tok.Data { - case "option": - if p.top().Data == "option" { - p.oe.pop() - } - case "optgroup": - i := len(p.oe) - 1 - if p.oe[i].Data == "option" { - i-- - } - if p.oe[i].Data == "optgroup" { - p.oe = p.oe[:i] - } - case "select": - endSelect = true - default: - // Ignore the token. - } - case CommentToken: - p.doc.Add(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - } - if endSelect { - p.endSelect() - } - return true -} - -// Section 12.2.5.4.17. -func inSelectInTableIM(p *parser) bool { - switch p.tok.Type { - case StartTagToken, EndTagToken: - switch p.tok.Data { - case "caption", "table", "tbody", "tfoot", "thead", "tr", "td", "th": - if p.tok.Type == StartTagToken || p.elementInScope(tableScope, p.tok.Data) { - p.endSelect() - return false - } else { - // Ignore the token. - return true - } - } - } - return inSelectIM(p) -} - -func (p *parser) endSelect() { - for i := len(p.oe) - 1; i >= 0; i-- { - switch p.oe[i].Data { - case "option", "optgroup": - continue - case "select": - p.oe = p.oe[:i] - p.resetInsertionMode() - } - return - } -} - -// Section 12.2.5.4.18. -func afterBodyIM(p *parser) bool { - switch p.tok.Type { - case ErrorToken: - // Stop parsing. - return true - case StartTagToken: - if p.tok.Data == "html" { - return inBodyIM(p) - } - case EndTagToken: - if p.tok.Data == "html" { - p.im = afterAfterBodyIM - return true - } - case CommentToken: - // The comment is attached to the <html> element. - if len(p.oe) < 1 || p.oe[0].Data != "html" { - panic("html: bad parser state: <html> element not found, in the after-body insertion mode") - } - p.oe[0].Add(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - } - p.im = inBodyIM - return false -} - -// Section 12.2.5.4.19. -func inFramesetIM(p *parser) bool { - switch p.tok.Type { - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - case TextToken: - // Ignore all text but whitespace. - s := strings.Map(func(c rune) rune { - switch c { - case ' ', '\t', '\n', '\f', '\r': - return c - } - return -1 - }, p.tok.Data) - if s != "" { - p.addText(s) - } - case StartTagToken: - switch p.tok.Data { - case "html": - return inBodyIM(p) - case "frameset": - p.addElement(p.tok.Data, p.tok.Attr) - case "frame": - p.addElement(p.tok.Data, p.tok.Attr) - p.oe.pop() - p.acknowledgeSelfClosingTag() - case "noframes": - return inHeadIM(p) - } - case EndTagToken: - switch p.tok.Data { - case "frameset": - if p.oe.top().Data != "html" { - p.oe.pop() - if p.oe.top().Data != "frameset" { - p.im = afterFramesetIM - return true - } - } - } - default: - // Ignore the token. - } - return true -} - -// Section 12.2.5.4.20. -func afterFramesetIM(p *parser) bool { - switch p.tok.Type { - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - case TextToken: - // Ignore all text but whitespace. - s := strings.Map(func(c rune) rune { - switch c { - case ' ', '\t', '\n', '\f', '\r': - return c - } - return -1 - }, p.tok.Data) - if s != "" { - p.addText(s) - } - case StartTagToken: - switch p.tok.Data { - case "html": - return inBodyIM(p) - case "noframes": - return inHeadIM(p) - } - case EndTagToken: - switch p.tok.Data { - case "html": - p.im = afterAfterFramesetIM - return true - } - default: - // Ignore the token. - } - return true -} - -// Section 12.2.5.4.21. -func afterAfterBodyIM(p *parser) bool { - switch p.tok.Type { - case ErrorToken: - // Stop parsing. - return true - case TextToken: - // TODO. - case StartTagToken: - if p.tok.Data == "html" { - return inBodyIM(p) - } - case CommentToken: - p.doc.Add(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - return true - } - p.im = inBodyIM - return false -} - -// Section 12.2.5.4.22. -func afterAfterFramesetIM(p *parser) bool { - switch p.tok.Type { - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - case TextToken: - // Ignore all text but whitespace. - s := strings.Map(func(c rune) rune { - switch c { - case ' ', '\t', '\n', '\f', '\r': - return c - } - return -1 - }, p.tok.Data) - if s != "" { - p.reconstructActiveFormattingElements() - p.addText(s) - } - case StartTagToken: - switch p.tok.Data { - case "html": - return inBodyIM(p) - case "noframes": - return inHeadIM(p) - } - default: - // Ignore the token. - } - return true -} - -// Section 12.2.5.5. -func parseForeignContent(p *parser) bool { - switch p.tok.Type { - case TextToken: - // TODO: HTML integration points. - if p.top().Namespace == "" { - inBodyIM(p) - p.resetInsertionMode() - return true - } - if p.framesetOK { - p.framesetOK = strings.TrimLeft(p.tok.Data, whitespace) == "" - } - p.addText(p.tok.Data) - case CommentToken: - p.addChild(&Node{ - Type: CommentNode, - Data: p.tok.Data, - }) - case StartTagToken: - if htmlIntegrationPoint(p.top()) { - inBodyIM(p) - p.resetInsertionMode() - return true - } - if breakout[p.tok.Data] { - for i := len(p.oe) - 1; i >= 0; i-- { - // TODO: MathML integration points. - if p.oe[i].Namespace == "" || htmlIntegrationPoint(p.oe[i]) { - p.oe = p.oe[:i+1] - break - } - } - return false - } - switch p.top().Namespace { - case "math": - // TODO: adjust MathML attributes. - case "svg": - // Adjust SVG tag names. The tokenizer lower-cases tag names, but - // SVG wants e.g. "foreignObject" with a capital second "O". - if x := svgTagNameAdjustments[p.tok.Data]; x != "" { - p.tok.Data = x - } - // TODO: adjust SVG attributes. - default: - panic("html: bad parser state: unexpected namespace") - } - adjustForeignAttributes(p.tok.Attr) - namespace := p.top().Namespace - p.addElement(p.tok.Data, p.tok.Attr) - p.top().Namespace = namespace - case EndTagToken: - for i := len(p.oe) - 1; i >= 0; i-- { - if p.oe[i].Namespace == "" { - return p.im(p) - } - if strings.EqualFold(p.oe[i].Data, p.tok.Data) { - p.oe = p.oe[:i] - break - } - } - return true - default: - // Ignore the token. - } - return true -} - -// Section 12.2.5. -func (p *parser) inForeignContent() bool { - if len(p.oe) == 0 { - return false - } - n := p.oe[len(p.oe)-1] - if n.Namespace == "" { - return false - } - // TODO: MathML, HTML integration points. - // TODO: MathML's annotation-xml combining with SVG's svg. - return true -} - -func (p *parser) parse() error { - // Iterate until EOF. Any other error will cause an early return. - consumed := true - for { - if consumed { - if err := p.read(); err != nil { - if err == io.EOF { - break - } - return err - } - } - if p.inForeignContent() { - consumed = parseForeignContent(p) - } else { - consumed = p.im(p) - } - } - // Loop until the final token (the ErrorToken signifying EOF) is consumed. - for { - if consumed = p.im(p); consumed { - break - } - } - return nil -} - -// Parse returns the parse tree for the HTML from the given Reader. -// The input is assumed to be UTF-8 encoded. -func Parse(r io.Reader) (*Node, error) { - p := &parser{ - tokenizer: NewTokenizer(r), - doc: &Node{ - Type: DocumentNode, - }, - scripting: true, - framesetOK: true, - im: initialIM, - } - err := p.parse() - if err != nil { - return nil, err - } - return p.doc, nil -} - -// ParseFragment parses a fragment of HTML and returns the nodes that were -// found. If the fragment is the InnerHTML for an existing element, pass that -// element in context. -func ParseFragment(r io.Reader, context *Node) ([]*Node, error) { - p := &parser{ - tokenizer: NewTokenizer(r), - doc: &Node{ - Type: DocumentNode, - }, - scripting: true, - context: context, - } - - if context != nil { - switch context.Data { - case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "title", "textarea", "xmp": - p.tokenizer.rawTag = context.Data - } - } - - root := &Node{ - Type: ElementNode, - Data: "html", - } - p.doc.Add(root) - p.oe = nodeStack{root} - p.resetInsertionMode() - - for n := context; n != nil; n = n.Parent { - if n.Type == ElementNode && n.Data == "form" { - p.form = n - break - } - } - - err := p.parse() - if err != nil { - return nil, err - } - - parent := p.doc - if context != nil { - parent = root - } - - result := parent.Child - parent.Child = nil - for _, n := range result { - n.Parent = nil - } - return result, nil -} diff --git a/src/pkg/html/parse_test.go b/src/pkg/html/parse_test.go deleted file mode 100644 index 1528dffaaf..0000000000 --- a/src/pkg/html/parse_test.go +++ /dev/null @@ -1,276 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package html - -import ( - "bufio" - "bytes" - "errors" - "fmt" - "io" - "os" - "strings" - "testing" -) - -// readParseTest reads a single test case from r. -func readParseTest(r *bufio.Reader) (text, want, context string, err error) { - line, err := r.ReadSlice('\n') - if err != nil { - return "", "", "", err - } - var b []byte - - // Read the HTML. - if string(line) != "#data\n" { - return "", "", "", fmt.Errorf(`got %q want "#data\n"`, line) - } - for { - line, err = r.ReadSlice('\n') - if err != nil { - return "", "", "", err - } - if line[0] == '#' { - break - } - b = append(b, line...) - } - text = strings.TrimRight(string(b), "\n") - b = b[:0] - - // Skip the error list. - if string(line) != "#errors\n" { - return "", "", "", fmt.Errorf(`got %q want "#errors\n"`, line) - } - for { - line, err = r.ReadSlice('\n') - if err != nil { - return "", "", "", err - } - if line[0] == '#' { - break - } - } - - if string(line) == "#document-fragment\n" { - line, err = r.ReadSlice('\n') - if err != nil { - return "", "", "", err - } - context = strings.TrimSpace(string(line)) - line, err = r.ReadSlice('\n') - if err != nil { - return "", "", "", err - } - } - - // Read the dump of what the parse tree should be. - if string(line) != "#document\n" { - return "", "", "", fmt.Errorf(`got %q want "#document\n"`, line) - } - for { - line, err = r.ReadSlice('\n') - if err != nil && err != io.EOF { - return "", "", "", err - } - if len(line) == 0 || len(line) == 1 && line[0] == '\n' { - break - } - b = append(b, line...) - } - return text, string(b), context, nil -} - -func dumpIndent(w io.Writer, level int) { - io.WriteString(w, "| ") - for i := 0; i < level; i++ { - io.WriteString(w, " ") - } -} - -func dumpLevel(w io.Writer, n *Node, level int) error { - dumpIndent(w, level) - switch n.Type { - case ErrorNode: - return errors.New("unexpected ErrorNode") - case DocumentNode: - return errors.New("unexpected DocumentNode") - case ElementNode: - if n.Namespace != "" { - fmt.Fprintf(w, "<%s %s>", n.Namespace, n.Data) - } else { - fmt.Fprintf(w, "<%s>", n.Data) - } - attr := n.Attr - if len(attr) == 2 && attr[0].Namespace == "xml" && attr[1].Namespace == "xlink" { - // Some of the test cases in tests10.dat change the order of adjusted - // foreign attributes, but that behavior is not in the spec, and could - // simply be an implementation detail of html5lib's python map ordering. - attr[0], attr[1] = attr[1], attr[0] - } - for _, a := range attr { - io.WriteString(w, "\n") - dumpIndent(w, level+1) - if a.Namespace != "" { - fmt.Fprintf(w, `%s %s="%s"`, a.Namespace, a.Key, a.Val) - } else { - fmt.Fprintf(w, `%s="%s"`, a.Key, a.Val) - } - } - case TextNode: - fmt.Fprintf(w, `"%s"`, n.Data) - case CommentNode: - fmt.Fprintf(w, "<!-- %s -->", n.Data) - case DoctypeNode: - fmt.Fprintf(w, "<!DOCTYPE %s", n.Data) - if n.Attr != nil { - var p, s string - for _, a := range n.Attr { - switch a.Key { - case "public": - p = a.Val - case "system": - s = a.Val - } - } - if p != "" || s != "" { - fmt.Fprintf(w, ` "%s"`, p) - fmt.Fprintf(w, ` "%s"`, s) - } - } - io.WriteString(w, ">") - case scopeMarkerNode: - return errors.New("unexpected scopeMarkerNode") - default: - return errors.New("unknown node type") - } - io.WriteString(w, "\n") - for _, c := range n.Child { - if err := dumpLevel(w, c, level+1); err != nil { - return err - } - } - return nil -} - -func dump(n *Node) (string, error) { - if n == nil || len(n.Child) == 0 { - return "", nil - } - b := bytes.NewBuffer(nil) - for _, child := range n.Child { - if err := dumpLevel(b, child, 0); err != nil { - return "", err - } - } - return b.String(), nil -} - -func TestParser(t *testing.T) { - testFiles := []struct { - filename string - // n is the number of test cases to run from that file. - // -1 means all test cases. - n int - }{ - // TODO(nigeltao): Process all the test cases from all the .dat files. - {"adoption01.dat", -1}, - {"doctype01.dat", -1}, - {"tests1.dat", -1}, - {"tests2.dat", -1}, - {"tests3.dat", -1}, - {"tests4.dat", -1}, - {"tests5.dat", -1}, - {"tests6.dat", -1}, - {"tests10.dat", 35}, - } - for _, tf := range testFiles { - f, err := os.Open("testdata/webkit/" + tf.filename) - if err != nil { - t.Fatal(err) - } - defer f.Close() - r := bufio.NewReader(f) - for i := 0; i != tf.n; i++ { - text, want, context, err := readParseTest(r) - if err == io.EOF && tf.n == -1 { - break - } - if err != nil { - t.Fatal(err) - } - - var doc *Node - if context == "" { - doc, err = Parse(strings.NewReader(text)) - if err != nil { - t.Fatal(err) - } - } else { - contextNode := &Node{ - Type: ElementNode, - Data: context, - } - nodes, err := ParseFragment(strings.NewReader(text), contextNode) - if err != nil { - t.Fatal(err) - } - doc = &Node{ - Type: DocumentNode, - } - for _, n := range nodes { - doc.Add(n) - } - } - - got, err := dump(doc) - if err != nil { - t.Fatal(err) - } - // Compare the parsed tree to the #document section. - if got != want { - t.Errorf("%s test #%d %q, got vs want:\n----\n%s----\n%s----", tf.filename, i, text, got, want) - continue - } - if renderTestBlacklist[text] || context != "" { - continue - } - // Check that rendering and re-parsing results in an identical tree. - pr, pw := io.Pipe() - go func() { - pw.CloseWithError(Render(pw, doc)) - }() - doc1, err := Parse(pr) - if err != nil { - t.Fatal(err) - } - got1, err := dump(doc1) - if err != nil { - t.Fatal(err) - } - if got != got1 { - t.Errorf("%s test #%d %q, got vs got1:\n----\n%s----\n%s----", tf.filename, i, text, got, got1) - continue - } - } - } -} - -// Some test input result in parse trees are not 'well-formed' despite -// following the HTML5 recovery algorithms. Rendering and re-parsing such a -// tree will not result in an exact clone of that tree. We blacklist such -// inputs from the render test. -var renderTestBlacklist = map[string]bool{ - // The second <a> will be reparented to the first <table>'s parent. This - // results in an <a> whose parent is an <a>, which is not 'well-formed'. - `<a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y`: true, - // More cases of <a> being reparented: - `<a href="blah">aba<table><a href="foo">br<tr><td></td></tr>x</table>aoe`: true, - `<a><table><a></table><p><a><div><a>`: true, - `<a><table><td><a><table></table><a></tr><a></table><a>`: true, - // A <plaintext> element is reparented, putting it before a table. - // A <plaintext> element can't have anything after it in HTML. - `<table><plaintext><td>`: true, -} diff --git a/src/pkg/html/render.go b/src/pkg/html/render.go deleted file mode 100644 index 07859faa7d..0000000000 --- a/src/pkg/html/render.go +++ /dev/null @@ -1,277 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package html - -import ( - "bufio" - "errors" - "fmt" - "io" - "strings" -) - -type writer interface { - io.Writer - WriteByte(byte) error - WriteString(string) (int, error) -} - -// Render renders the parse tree n to the given writer. -// -// Rendering is done on a 'best effort' basis: calling Parse on the output of -// Render will always result in something similar to the original tree, but it -// is not necessarily an exact clone unless the original tree was 'well-formed'. -// 'Well-formed' is not easily specified; the HTML5 specification is -// complicated. -// -// Calling Parse on arbitrary input typically results in a 'well-formed' parse -// tree. However, it is possible for Parse to yield a 'badly-formed' parse tree. -// For example, in a 'well-formed' parse tree, no <a> element is a child of -// another <a> element: parsing "<a><a>" results in two sibling elements. -// Similarly, in a 'well-formed' parse tree, no <a> element is a child of a -// <table> element: parsing "<p><table><a>" results in a <p> with two sibling -// children; the <a> is reparented to the <table>'s parent. However, calling -// Parse on "<a><table><a>" does not return an error, but the result has an <a> -// element with an <a> child, and is therefore not 'well-formed'. -// -// Programmatically constructed trees are typically also 'well-formed', but it -// is possible to construct a tree that looks innocuous but, when rendered and -// re-parsed, results in a different tree. A simple example is that a solitary -// text node would become a tree containing <html>, <head> and <body> elements. -// Another example is that the programmatic equivalent of "a<head>b</head>c" -// becomes "<html><head><head/><body>abc</body></html>". -func Render(w io.Writer, n *Node) error { - if x, ok := w.(writer); ok { - return render(x, n) - } - buf := bufio.NewWriter(w) - if err := render(buf, n); err != nil { - return err - } - return buf.Flush() -} - -// plaintextAbort is returned from render1 when a <plaintext> element -// has been rendered. No more end tags should be rendered after that. -var plaintextAbort = errors.New("html: internal error (plaintext abort)") - -func render(w writer, n *Node) error { - err := render1(w, n) - if err == plaintextAbort { - err = nil - } - return err -} - -func render1(w writer, n *Node) error { - // Render non-element nodes; these are the easy cases. - switch n.Type { - case ErrorNode: - return errors.New("html: cannot render an ErrorNode node") - case TextNode: - return escape(w, n.Data) - case DocumentNode: - for _, c := range n.Child { - if err := render1(w, c); err != nil { - return err - } - } - return nil - case ElementNode: - // No-op. - case CommentNode: - if _, err := w.WriteString("<!--"); err != nil { - return err - } - if _, err := w.WriteString(n.Data); err != nil { - return err - } - if _, err := w.WriteString("-->"); err != nil { - return err - } - return nil - case DoctypeNode: - if _, err := w.WriteString("<!DOCTYPE "); err != nil { - return err - } - if _, err := w.WriteString(n.Data); err != nil { - return err - } - if n.Attr != nil { - var p, s string - for _, a := range n.Attr { - switch a.Key { - case "public": - p = a.Val - case "system": - s = a.Val - } - } - if p != "" { - if _, err := w.WriteString(" PUBLIC "); err != nil { - return err - } - if err := writeQuoted(w, p); err != nil { - return err - } - if s != "" { - if err := w.WriteByte(' '); err != nil { - return err - } - if err := writeQuoted(w, s); err != nil { - return err - } - } - } else if s != "" { - if _, err := w.WriteString(" SYSTEM "); err != nil { - return err - } - if err := writeQuoted(w, s); err != nil { - return err - } - } - } - return w.WriteByte('>') - default: - return errors.New("html: unknown node type") - } - - // Render the <xxx> opening tag. - if err := w.WriteByte('<'); err != nil { - return err - } - if _, err := w.WriteString(n.Data); err != nil { - return err - } - for _, a := range n.Attr { - if err := w.WriteByte(' '); err != nil { - return err - } - if a.Namespace != "" { - if _, err := w.WriteString(a.Namespace); err != nil { - return err - } - if err := w.WriteByte(':'); err != nil { - return err - } - } - if _, err := w.WriteString(a.Key); err != nil { - return err - } - if _, err := w.WriteString(`="`); err != nil { - return err - } - if err := escape(w, a.Val); err != nil { - return err - } - if err := w.WriteByte('"'); err != nil { - return err - } - } - if voidElements[n.Data] { - if len(n.Child) != 0 { - return fmt.Errorf("html: void element <%s> has child nodes", n.Data) - } - _, err := w.WriteString("/>") - return err - } - if err := w.WriteByte('>'); err != nil { - return err - } - - // Add initial newline where there is danger of a newline beging ignored. - if len(n.Child) > 0 && n.Child[0].Type == TextNode && strings.HasPrefix(n.Child[0].Data, "\n") { - switch n.Data { - case "pre", "listing", "textarea": - if err := w.WriteByte('\n'); err != nil { - return err - } - } - } - - // Render any child nodes. - switch n.Data { - case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "xmp": - for _, c := range n.Child { - if c.Type != TextNode { - return fmt.Errorf("html: raw text element <%s> has non-text child node", n.Data) - } - if _, err := w.WriteString(c.Data); err != nil { - return err - } - } - if n.Data == "plaintext" { - // Don't render anything else. <plaintext> must be the - // last element in the file, with no closing tag. - return plaintextAbort - } - case "textarea", "title": - for _, c := range n.Child { - if c.Type != TextNode { - return fmt.Errorf("html: RCDATA element <%s> has non-text child node", n.Data) - } - if err := render1(w, c); err != nil { - return err - } - } - default: - for _, c := range n.Child { - if err := render1(w, c); err != nil { - return err - } - } - } - - // Render the </xxx> closing tag. - if _, err := w.WriteString("</"); err != nil { - return err - } - if _, err := w.WriteString(n.Data); err != nil { - return err - } - return w.WriteByte('>') -} - -// writeQuoted writes s to w surrounded by quotes. Normally it will use double -// quotes, but if s contains a double quote, it will use single quotes. -// It is used for writing the identifiers in a doctype declaration. -// In valid HTML, they can't contain both types of quotes. -func writeQuoted(w writer, s string) error { - var q byte = '"' - if strings.Contains(s, `"`) { - q = '\'' - } - if err := w.WriteByte(q); err != nil { - return err - } - if _, err := w.WriteString(s); err != nil { - return err - } - if err := w.WriteByte(q); err != nil { - return err - } - return nil -} - -// Section 12.1.2, "Elements", gives this list of void elements. Void elements -// are those that can't have any contents. -var voidElements = map[string]bool{ - "area": true, - "base": true, - "br": true, - "col": true, - "command": true, - "embed": true, - "hr": true, - "img": true, - "input": true, - "keygen": true, - "link": true, - "meta": true, - "param": true, - "source": true, - "track": true, - "wbr": true, -} diff --git a/src/pkg/html/render_test.go b/src/pkg/html/render_test.go deleted file mode 100644 index 0584f35abd..0000000000 --- a/src/pkg/html/render_test.go +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package html - -import ( - "bytes" - "testing" -) - -func TestRenderer(t *testing.T) { - n := &Node{ - Type: ElementNode, - Data: "html", - Child: []*Node{ - { - Type: ElementNode, - Data: "head", - }, - { - Type: ElementNode, - Data: "body", - Child: []*Node{ - { - Type: TextNode, - Data: "0<1", - }, - { - Type: ElementNode, - Data: "p", - Attr: []Attribute{ - { - Key: "id", - Val: "A", - }, - { - Key: "foo", - Val: `abc"def`, - }, - }, - Child: []*Node{ - { - Type: TextNode, - Data: "2", - }, - { - Type: ElementNode, - Data: "b", - Attr: []Attribute{ - { - Key: "empty", - Val: "", - }, - }, - Child: []*Node{ - { - Type: TextNode, - Data: "3", - }, - }, - }, - { - Type: ElementNode, - Data: "i", - Attr: []Attribute{ - { - Key: "backslash", - Val: `\`, - }, - }, - Child: []*Node{ - { - Type: TextNode, - Data: "&4", - }, - }, - }, - }, - }, - { - Type: TextNode, - Data: "5", - }, - { - Type: ElementNode, - Data: "blockquote", - }, - { - Type: ElementNode, - Data: "br", - }, - { - Type: TextNode, - Data: "6", - }, - }, - }, - }, - } - want := `<html><head></head><body>0<1<p id="A" foo="abc"def">` + - `2<b empty="">3</b><i backslash="\">&4</i></p>` + - `5<blockquote></blockquote><br/>6</body></html>` - b := new(bytes.Buffer) - if err := Render(b, n); err != nil { - t.Fatal(err) - } - if got := b.String(); got != want { - t.Errorf("got vs want:\n%s\n%s\n", got, want) - } -} diff --git a/src/pkg/html/testdata/webkit/README b/src/pkg/html/testdata/webkit/README deleted file mode 100644 index 9b4c2d8be0..0000000000 --- a/src/pkg/html/testdata/webkit/README +++ /dev/null @@ -1,28 +0,0 @@ -The *.dat files in this directory are copied from The WebKit Open Source -Project, specifically $WEBKITROOT/LayoutTests/html5lib/resources. -WebKit is licensed under a BSD style license. -http://webkit.org/coding/bsd-license.html says: - -Copyright (C) 2009 Apple Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS "AS IS" AND ANY -EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/src/pkg/html/testdata/webkit/adoption01.dat b/src/pkg/html/testdata/webkit/adoption01.dat deleted file mode 100644 index 787e1b01e1..0000000000 --- a/src/pkg/html/testdata/webkit/adoption01.dat +++ /dev/null @@ -1,194 +0,0 @@ -#data -<a><p></a></p> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <p> -| <a> - -#data -<a>1<p>2</a>3</p> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| "1" -| <p> -| <a> -| "2" -| "3" - -#data -<a>1<button>2</a>3</button> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| "1" -| <button> -| <a> -| "2" -| "3" - -#data -<a>1<b>2</a>3</b> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| "1" -| <b> -| "2" -| <b> -| "3" - -#data -<a>1<div>2<div>3</a>4</div>5</div> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| "1" -| <div> -| <a> -| "2" -| <div> -| <a> -| "3" -| "4" -| "5" - -#data -<table><a>1<p>2</a>3</p> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| "1" -| <p> -| <a> -| "2" -| "3" -| <table> - -#data -<b><b><a><p></a> -#errors -#document -| <html> -| <head> -| <body> -| <b> -| <b> -| <a> -| <p> -| <a> - -#data -<b><a><b><p></a> -#errors -#document -| <html> -| <head> -| <body> -| <b> -| <a> -| <b> -| <b> -| <p> -| <a> - -#data -<a><b><b><p></a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <b> -| <b> -| <b> -| <b> -| <p> -| <a> - -#data -<p>1<s id="A">2<b id="B">3</p>4</s>5</b> -#errors -#document -| <html> -| <head> -| <body> -| <p> -| "1" -| <s> -| id="A" -| "2" -| <b> -| id="B" -| "3" -| <s> -| id="A" -| <b> -| id="B" -| "4" -| <b> -| id="B" -| "5" - -#data -<table><a>1<td>2</td>3</table> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| "1" -| <a> -| "3" -| <table> -| <tbody> -| <tr> -| <td> -| "2" - -#data -<table>A<td>B</td>C</table> -#errors -#document -| <html> -| <head> -| <body> -| "AC" -| <table> -| <tbody> -| <tr> -| <td> -| "B" - -#data -<a><svg><tr><input></a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <svg svg> -| <svg tr> -| <svg input> diff --git a/src/pkg/html/testdata/webkit/adoption02.dat b/src/pkg/html/testdata/webkit/adoption02.dat deleted file mode 100644 index d18151b44f..0000000000 --- a/src/pkg/html/testdata/webkit/adoption02.dat +++ /dev/null @@ -1,31 +0,0 @@ -#data -<b>1<i>2<p>3</b>4 -#errors -#document -| <html> -| <head> -| <body> -| <b> -| "1" -| <i> -| "2" -| <i> -| <p> -| <b> -| "3" -| "4" - -#data -<a><div><style></style><address><a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <div> -| <a> -| <style> -| <address> -| <a> -| <a> diff --git a/src/pkg/html/testdata/webkit/comments01.dat b/src/pkg/html/testdata/webkit/comments01.dat deleted file mode 100644 index 44f1876830..0000000000 --- a/src/pkg/html/testdata/webkit/comments01.dat +++ /dev/null @@ -1,135 +0,0 @@ -#data -FOO<!-- BAR -->BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- BAR --> -| "BAZ" - -#data -FOO<!-- BAR --!>BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- BAR --> -| "BAZ" - -#data -FOO<!-- BAR -- >BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- BAR -- >BAZ --> - -#data -FOO<!-- BAR -- <QUX> -- MUX -->BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- BAR -- <QUX> -- MUX --> -| "BAZ" - -#data -FOO<!-- BAR -- <QUX> -- MUX --!>BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- BAR -- <QUX> -- MUX --> -| "BAZ" - -#data -FOO<!-- BAR -- <QUX> -- MUX -- >BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- BAR -- <QUX> -- MUX -- >BAZ --> - -#data -FOO<!---->BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- --> -| "BAZ" - -#data -FOO<!--->BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- --> -| "BAZ" - -#data -FOO<!-->BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- --> -| "BAZ" - -#data -<?xml version="1.0">Hi -#errors -#document -| <!-- ?xml version="1.0" --> -| <html> -| <head> -| <body> -| "Hi" - -#data -<?xml version="1.0"> -#errors -#document -| <!-- ?xml version="1.0" --> -| <html> -| <head> -| <body> - -#data -<?xml version -#errors -#document -| <!-- ?xml version --> -| <html> -| <head> -| <body> - -#data -FOO<!----->BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- - --> -| "BAZ" diff --git a/src/pkg/html/testdata/webkit/doctype01.dat b/src/pkg/html/testdata/webkit/doctype01.dat deleted file mode 100644 index ae457328a4..0000000000 --- a/src/pkg/html/testdata/webkit/doctype01.dat +++ /dev/null @@ -1,370 +0,0 @@ -#data -<!DOCTYPE html>Hello -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!dOctYpE HtMl>Hello -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPEhtml>Hello -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE>Hello -#errors -#document -| <!DOCTYPE > -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE >Hello -#errors -#document -| <!DOCTYPE > -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato>Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato >Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato taco>Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato taco "ddd>Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato sYstEM>Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato sYstEM >Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato sYstEM ggg>Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato SYSTEM taco >Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato SYSTEM 'taco"'>Hello -#errors -#document -| <!DOCTYPE potato "" "taco""> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato SYSTEM "taco">Hello -#errors -#document -| <!DOCTYPE potato "" "taco"> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato SYSTEM "tai'co">Hello -#errors -#document -| <!DOCTYPE potato "" "tai'co"> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato SYSTEMtaco "ddd">Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato grass SYSTEM taco>Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato pUbLIc>Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato pUbLIc >Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato pUbLIcgoof>Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato PUBLIC goof>Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato PUBLIC "go'of">Hello -#errors -#document -| <!DOCTYPE potato "go'of" ""> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato PUBLIC 'go'of'>Hello -#errors -#document -| <!DOCTYPE potato "go" ""> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato PUBLIC 'go:hh of' >Hello -#errors -#document -| <!DOCTYPE potato "go:hh of" ""> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato PUBLIC "W3C-//dfdf" SYSTEM ggg>Hello -#errors -#document -| <!DOCTYPE potato "W3C-//dfdf" ""> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" - "http://www.w3.org/TR/html4/strict.dtd">Hello -#errors -#document -| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE ...>Hello -#errors -#document -| <!DOCTYPE ...> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" -"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -#errors -#document -| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" -"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> -#errors -#document -| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE root-element [SYSTEM OR PUBLIC FPI] "uri" [ -<!-- internal declarations --> -]> -#errors -#document -| <!DOCTYPE root-element> -| <html> -| <head> -| <body> -| "]>" - -#data -<!DOCTYPE html PUBLIC - "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" - "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> -#errors -#document -| <!DOCTYPE html "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE HTML SYSTEM "http://www.w3.org/DTD/HTML4-strict.dtd"><body><b>Mine!</b></body> -#errors -#document -| <!DOCTYPE html "" "http://www.w3.org/DTD/HTML4-strict.dtd"> -| <html> -| <head> -| <body> -| <b> -| "Mine!" - -#data -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> -#errors -#document -| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"'http://www.w3.org/TR/html4/strict.dtd'> -#errors -#document -| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01//EN"'http://www.w3.org/TR/html4/strict.dtd'> -#errors -#document -| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE HTML PUBLIC'-//W3C//DTD HTML 4.01//EN''http://www.w3.org/TR/html4/strict.dtd'> -#errors -#document -| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -| <html> -| <head> -| <body> diff --git a/src/pkg/html/testdata/webkit/entities01.dat b/src/pkg/html/testdata/webkit/entities01.dat deleted file mode 100644 index c8073b7810..0000000000 --- a/src/pkg/html/testdata/webkit/entities01.dat +++ /dev/null @@ -1,603 +0,0 @@ -#data -FOO>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO>BAR" - -#data -FOO>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO>BAR" - -#data -FOO> BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO> BAR" - -#data -FOO>;;BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO>;;BAR" - -#data -I'm ¬it; I tell you -#errors -#document -| <html> -| <head> -| <body> -| "I'm ¬it; I tell you" - -#data -I'm ∉ I tell you -#errors -#document -| <html> -| <head> -| <body> -| "I'm ∉ I tell you" - -#data -FOO& BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO& BAR" - -#data -FOO&<BAR> -#errors -#document -| <html> -| <head> -| <body> -| "FOO&" -| <bar> - -#data -FOO&&&>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO&&&>BAR" - -#data -FOO)BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO)BAR" - -#data -FOOABAR -#errors -#document -| <html> -| <head> -| <body> -| "FOOABAR" - -#data -FOOABAR -#errors -#document -| <html> -| <head> -| <body> -| "FOOABAR" - -#data -FOO&#BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO&#BAR" - -#data -FOO&#ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO&#ZOO" - -#data -FOOºR -#errors -#document -| <html> -| <head> -| <body> -| "FOOºR" - -#data -FOO&#xZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO&#xZOO" - -#data -FOO&#XZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO&#XZOO" - -#data -FOO)BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO)BAR" - -#data -FOO䆺R -#errors -#document -| <html> -| <head> -| <body> -| "FOO䆺R" - -#data -FOOAZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOAZOO" - -#data -FOO�ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" - -#data -FOOxZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOxZOO" - -#data -FOOyZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOyZOO" - -#data -FOO€ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO€ZOO" - -#data -FOOZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOO‚ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO‚ZOO" - -#data -FOOƒZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOƒZOO" - -#data -FOO„ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO„ZOO" - -#data -FOO…ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO…ZOO" - -#data -FOO†ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO†ZOO" - -#data -FOO‡ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO‡ZOO" - -#data -FOOˆZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOˆZOO" - -#data -FOO‰ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO‰ZOO" - -#data -FOOŠZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOŠZOO" - -#data -FOO‹ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO‹ZOO" - -#data -FOOŒZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOŒZOO" - -#data -FOOZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOOŽZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOŽZOO" - -#data -FOOZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOOZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOO‘ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO‘ZOO" - -#data -FOO’ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO’ZOO" - -#data -FOO“ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO“ZOO" - -#data -FOO”ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO”ZOO" - -#data -FOO•ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO•ZOO" - -#data -FOO–ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO–ZOO" - -#data -FOO—ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO—ZOO" - -#data -FOO˜ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO˜ZOO" - -#data -FOO™ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO™ZOO" - -#data -FOOšZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOšZOO" - -#data -FOO›ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO›ZOO" - -#data -FOOœZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOœZOO" - -#data -FOOZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOOžZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOžZOO" - -#data -FOOŸZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOŸZOO" - -#data -FOO ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO ZOO" - -#data -FOO퟿ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOO�ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" - -#data -FOO�ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" - -#data -FOO�ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" - -#data -FOO�ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" - -#data -FOOZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOOZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOO􈟔ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOOZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOO�ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" - -#data -FOO�ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" diff --git a/src/pkg/html/testdata/webkit/entities02.dat b/src/pkg/html/testdata/webkit/entities02.dat deleted file mode 100644 index e2fb42a078..0000000000 --- a/src/pkg/html/testdata/webkit/entities02.dat +++ /dev/null @@ -1,249 +0,0 @@ -#data -<div bar="ZZ>YY"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>YY" - -#data -<div bar="ZZ&"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ&" - -#data -<div bar='ZZ&'></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ&" - -#data -<div bar=ZZ&></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ&" - -#data -<div bar="ZZ>=YY"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>=YY" - -#data -<div bar="ZZ>0YY"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>0YY" - -#data -<div bar="ZZ>9YY"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>9YY" - -#data -<div bar="ZZ>aYY"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>aYY" - -#data -<div bar="ZZ>ZYY"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>ZYY" - -#data -<div bar="ZZ> YY"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ> YY" - -#data -<div bar="ZZ>"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>" - -#data -<div bar='ZZ>'></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>" - -#data -<div bar=ZZ>></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>" - -#data -<div bar="ZZ£_id=23"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ£_id=23" - -#data -<div bar="ZZ&prod_id=23"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ&prod_id=23" - -#data -<div bar="ZZ£_id=23"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ£_id=23" - -#data -<div bar="ZZ∏_id=23"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ∏_id=23" - -#data -<div bar="ZZ£=23"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ£=23" - -#data -<div bar="ZZ&prod=23"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ&prod=23" - -#data -<div>ZZ£_id=23</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| "ZZ£_id=23" - -#data -<div>ZZ&prod_id=23</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| "ZZ&prod_id=23" - -#data -<div>ZZ£_id=23</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| "ZZ£_id=23" - -#data -<div>ZZ∏_id=23</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| "ZZ∏_id=23" - -#data -<div>ZZ£=23</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| "ZZ£=23" - -#data -<div>ZZ&prod=23</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| "ZZ&prod=23" diff --git a/src/pkg/html/testdata/webkit/html5test-com.dat b/src/pkg/html/testdata/webkit/html5test-com.dat deleted file mode 100644 index d7cb71db05..0000000000 --- a/src/pkg/html/testdata/webkit/html5test-com.dat +++ /dev/null @@ -1,246 +0,0 @@ -#data -<div<div> -#errors -#document -| <html> -| <head> -| <body> -| <div<div> - -#data -<div foo<bar=''> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| foo<bar="" - -#data -<div foo=`bar`> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| foo="`bar`" - -#data -<div \"foo=''> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| \"foo="" - -#data -<a href='\nbar'></a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| href="\nbar" - -#data -<!DOCTYPE html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -⟨⟩ -#errors -#document -| <html> -| <head> -| <body> -| "⟨⟩" - -#data -' -#errors -#document -| <html> -| <head> -| <body> -| "'" - -#data -ⅈ -#errors -#document -| <html> -| <head> -| <body> -| "ⅈ" - -#data -𝕂 -#errors -#document -| <html> -| <head> -| <body> -| "𝕂" - -#data -∉ -#errors -#document -| <html> -| <head> -| <body> -| "∉" - -#data -<?import namespace="foo" implementation="#bar"> -#errors -#document -| <!-- ?import namespace="foo" implementation="#bar" --> -| <html> -| <head> -| <body> - -#data -<!--foo--bar--> -#errors -#document -| <!-- foo--bar --> -| <html> -| <head> -| <body> - -#data -<![CDATA[x]]> -#errors -#document -| <!-- [CDATA[x]] --> -| <html> -| <head> -| <body> - -#data -<textarea><!--</textarea>--></textarea> -#errors -#document -| <html> -| <head> -| <body> -| <textarea> -| "<!--" -| "-->" - -#data -<textarea><!--</textarea>--> -#errors -#document -| <html> -| <head> -| <body> -| <textarea> -| "<!--" -| "-->" - -#data -<style><!--</style>--></style> -#errors -#document -| <html> -| <head> -| <style> -| "<!--" -| <body> -| "-->" - -#data -<style><!--</style>--> -#errors -#document -| <html> -| <head> -| <style> -| "<!--" -| <body> -| "-->" - -#data -<ul><li>A </li> <li>B</li></ul> -#errors -#document -| <html> -| <head> -| <body> -| <ul> -| <li> -| "A " -| " " -| <li> -| "B" - -#data -<table><form><input type=hidden><input></form><div></div></table> -#errors -#document -| <html> -| <head> -| <body> -| <input> -| <div> -| <table> -| <form> -| <input> -| type="hidden" - -#data -<i>A<b>B<p></i>C</b>D -#errors -#document -| <html> -| <head> -| <body> -| <i> -| "A" -| <b> -| "B" -| <b> -| <p> -| <b> -| <i> -| "C" -| "D" - -#data -<div></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> - -#data -<svg></svg> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> - -#data -<math></math> -#errors -#document -| <html> -| <head> -| <body> -| <math math> diff --git a/src/pkg/html/testdata/webkit/inbody01.dat b/src/pkg/html/testdata/webkit/inbody01.dat deleted file mode 100644 index 3f2bd374c0..0000000000 --- a/src/pkg/html/testdata/webkit/inbody01.dat +++ /dev/null @@ -1,43 +0,0 @@ -#data -<button>1</foo> -#errors -#document -| <html> -| <head> -| <body> -| <button> -| "1" - -#data -<foo>1<p>2</foo> -#errors -#document -| <html> -| <head> -| <body> -| <foo> -| "1" -| <p> -| "2" - -#data -<dd>1</foo> -#errors -#document -| <html> -| <head> -| <body> -| <dd> -| "1" - -#data -<foo>1<dd>2</foo> -#errors -#document -| <html> -| <head> -| <body> -| <foo> -| "1" -| <dd> -| "2" diff --git a/src/pkg/html/testdata/webkit/isindex.dat b/src/pkg/html/testdata/webkit/isindex.dat deleted file mode 100644 index 88325ffe64..0000000000 --- a/src/pkg/html/testdata/webkit/isindex.dat +++ /dev/null @@ -1,40 +0,0 @@ -#data -<isindex> -#errors -#document -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| <hr> - -#data -<isindex name="A" action="B" prompt="C" foo="D"> -#errors -#document -| <html> -| <head> -| <body> -| <form> -| action="B" -| <hr> -| <label> -| "C" -| <input> -| foo="D" -| name="isindex" -| <hr> - -#data -<form><isindex> -#errors -#document -| <html> -| <head> -| <body> -| <form> diff --git a/src/pkg/html/testdata/webkit/pending-spec-changes-plain-text-unsafe.dat b/src/pkg/html/testdata/webkit/pending-spec-changes-plain-text-unsafe.dat Binary files differdeleted file mode 100644 index a5ebb1eb28..0000000000 --- a/src/pkg/html/testdata/webkit/pending-spec-changes-plain-text-unsafe.dat +++ /dev/null diff --git a/src/pkg/html/testdata/webkit/pending-spec-changes.dat b/src/pkg/html/testdata/webkit/pending-spec-changes.dat deleted file mode 100644 index e00ee85d3b..0000000000 --- a/src/pkg/html/testdata/webkit/pending-spec-changes.dat +++ /dev/null @@ -1,28 +0,0 @@ -#data -<input type="hidden"><frameset> -#errors -21: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. -31: “frameset” start tag seen. -31: End of file seen and there were open elements. -#document -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><table><caption><svg>foo</table>bar -#errors -47: End tag “table” did not match the name of the current open element (“svg”). -47: “table” closed but “caption” was still open. -47: End tag “table” seen, but there were open elements. -36: Unclosed element “svg”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <svg svg> -| "foo" -| "bar" diff --git a/src/pkg/html/testdata/webkit/plain-text-unsafe.dat b/src/pkg/html/testdata/webkit/plain-text-unsafe.dat deleted file mode 100644 index 2f40e83bab..0000000000 --- a/src/pkg/html/testdata/webkit/plain-text-unsafe.dat +++ /dev/null @@ -1,8 +0,0 @@ -#data -FOO
ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO
ZOO" diff --git a/src/pkg/html/testdata/webkit/scriptdata01.dat b/src/pkg/html/testdata/webkit/scriptdata01.dat deleted file mode 100644 index 76b67f4ba6..0000000000 --- a/src/pkg/html/testdata/webkit/scriptdata01.dat +++ /dev/null @@ -1,308 +0,0 @@ -#data -FOO<script>'Hello'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'Hello'" -| "BAR" - -#data -FOO<script></script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "BAR" - -#data -FOO<script></script >BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "BAR" - -#data -FOO<script></script/>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "BAR" - -#data -FOO<script></script/ >BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "BAR" - -#data -FOO<script type="text/plain"></scriptx>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "</scriptx>BAR" - -#data -FOO<script></script foo=">" dd>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "BAR" - -#data -FOO<script>'<'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<'" -| "BAR" - -#data -FOO<script>'<!'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!'" -| "BAR" - -#data -FOO<script>'<!-'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!-'" -| "BAR" - -#data -FOO<script>'<!--'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!--'" -| "BAR" - -#data -FOO<script>'<!---'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!---'" -| "BAR" - -#data -FOO<script>'<!-->'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!-->'" -| "BAR" - -#data -FOO<script>'<!-->'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!-->'" -| "BAR" - -#data -FOO<script>'<!-- potato'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!-- potato'" -| "BAR" - -#data -FOO<script>'<!-- <sCrIpt'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!-- <sCrIpt'" -| "BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt>'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt>'</script>BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt> -'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt> -'</script>BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt> --'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt> --'</script>BAR" - -#data -FOO<script>'<!-- <sCrIpt> -->'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!-- <sCrIpt> -->'" -| "BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt> --!>'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt> --!>'</script>BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt> -- >'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt> -- >'</script>BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt '</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt '</script>BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt/'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt/'</script>BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt\'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt\'" -| "BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt/'</script>BAR</script>QUX -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt/'</script>BAR" -| "QUX" diff --git a/src/pkg/html/testdata/webkit/scripted/adoption01.dat b/src/pkg/html/testdata/webkit/scripted/adoption01.dat deleted file mode 100644 index 4e08d0e84a..0000000000 --- a/src/pkg/html/testdata/webkit/scripted/adoption01.dat +++ /dev/null @@ -1,15 +0,0 @@ -#data -<p><b id="A"><script>document.getElementById("A").id = "B"</script></p>TEXT</b> -#errors -#document -| <html> -| <head> -| <body> -| <p> -| <b> -| id="B" -| <script> -| "document.getElementById("A").id = "B"" -| <b> -| id="A" -| "TEXT" diff --git a/src/pkg/html/testdata/webkit/scripted/webkit01.dat b/src/pkg/html/testdata/webkit/scripted/webkit01.dat deleted file mode 100644 index ef4a41ca00..0000000000 --- a/src/pkg/html/testdata/webkit/scripted/webkit01.dat +++ /dev/null @@ -1,28 +0,0 @@ -#data -1<script>document.write("2")</script>3 -#errors -#document -| <html> -| <head> -| <body> -| "1" -| <script> -| "document.write("2")" -| "23" - -#data -1<script>document.write("<script>document.write('2')</scr"+ "ipt><script>document.write('3')</scr" + "ipt>")</script>4 -#errors -#document -| <html> -| <head> -| <body> -| "1" -| <script> -| "document.write("<script>document.write('2')</scr"+ "ipt><script>document.write('3')</scr" + "ipt>")" -| <script> -| "document.write('2')" -| "2" -| <script> -| "document.write('3')" -| "34" diff --git a/src/pkg/html/testdata/webkit/tables01.dat b/src/pkg/html/testdata/webkit/tables01.dat deleted file mode 100644 index 88ef1fe2ee..0000000000 --- a/src/pkg/html/testdata/webkit/tables01.dat +++ /dev/null @@ -1,197 +0,0 @@ -#data -<table><th> -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <th> - -#data -<table><td> -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<table><col foo='bar'> -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <colgroup> -| <col> -| foo="bar" - -#data -<table><colgroup></html>foo -#errors -#document -| <html> -| <head> -| <body> -| "foo" -| <table> -| <colgroup> - -#data -<table></table><p>foo -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <p> -| "foo" - -#data -<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr><td> -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<table><select><option>3</select></table> -#errors -#document -| <html> -| <head> -| <body> -| <select> -| <option> -| "3" -| <table> - -#data -<table><select><table></table></select></table> -#errors -#document -| <html> -| <head> -| <body> -| <select> -| <table> -| <table> - -#data -<table><select></table> -#errors -#document -| <html> -| <head> -| <body> -| <select> -| <table> - -#data -<table><select><option>A<tr><td>B</td></tr></table> -#errors -#document -| <html> -| <head> -| <body> -| <select> -| <option> -| "A" -| <table> -| <tbody> -| <tr> -| <td> -| "B" - -#data -<table><td></body></caption></col></colgroup></html>foo -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "foo" - -#data -<table><td>A</table>B -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "A" -| "B" - -#data -<table><tr><caption> -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <caption> - -#data -<table><tr></body></caption></col></colgroup></html></td></th><td>foo -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "foo" - -#data -<table><td><tr> -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <tr> - -#data -<table><td><button><td> -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <button> -| <td> diff --git a/src/pkg/html/testdata/webkit/tests1.dat b/src/pkg/html/testdata/webkit/tests1.dat deleted file mode 100644 index cbf8bdda63..0000000000 --- a/src/pkg/html/testdata/webkit/tests1.dat +++ /dev/null @@ -1,1952 +0,0 @@ -#data -Test -#errors -Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "Test" - -#data -<p>One<p>Two -#errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <p> -| "One" -| <p> -| "Two" - -#data -Line1<br>Line2<br>Line3<br>Line4 -#errors -Line: 1 Col: 5 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "Line1" -| <br> -| "Line2" -| <br> -| "Line3" -| <br> -| "Line4" - -#data -<html> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<head> -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<body> -#errors -Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<html><head> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<html><head></head> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<html><head></head><body> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<html><head></head><body></body> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<html><head><body></body></html> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<html><head></body></html> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -Line: 1 Col: 19 Unexpected end tag (body). -Line: 1 Col: 26 Unexpected end tag (html). -#document -| <html> -| <head> -| <body> - -#data -<html><head><body></html> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<html><body></html> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<body></html> -#errors -Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<head></html> -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end tag (html). Ignored. -#document -| <html> -| <head> -| <body> - -#data -</head> -#errors -Line: 1 Col: 7 Unexpected end tag (head). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -</body> -#errors -Line: 1 Col: 7 Unexpected end tag (body). Expected DOCTYPE. -Line: 1 Col: 7 Unexpected end tag (body) after the (implied) root element. -#document -| <html> -| <head> -| <body> - -#data -</html> -#errors -Line: 1 Col: 7 Unexpected end tag (html). Expected DOCTYPE. -Line: 1 Col: 7 Unexpected end tag (html) after the (implied) root element. -#document -| <html> -| <head> -| <body> - -#data -<b><table><td><i></table> -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 25 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| <table> -| <tbody> -| <tr> -| <td> -| <i> - -#data -<b><table><td></b><i></table>X -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 18 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 29 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 30 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| <table> -| <tbody> -| <tr> -| <td> -| <i> -| "X" - -#data -<h1>Hello<h2>World -#errors -4: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. -13: Heading cannot be a child of another heading. -18: End of file seen and there were open elements. -#document -| <html> -| <head> -| <body> -| <h1> -| "Hello" -| <h2> -| "World" - -#data -<a><p>X<a>Y</a>Z</p></a> -#errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 10 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 24 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -#document -| <html> -| <head> -| <body> -| <a> -| <p> -| <a> -| "X" -| <a> -| "Y" -| "Z" - -#data -<b><button>foo</b>bar -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 15 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -#document -| <html> -| <head> -| <body> -| <b> -| <button> -| <b> -| "foo" -| "bar" - -#data -<!DOCTYPE html><span><button>foo</span>bar -#errors -39: End tag “span” seen but there were unclosed elements. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <span> -| <button> -| "foobar" - -#data -<p><b><div><marquee></p></b></div>X -#errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end tag (p). Ignored. -Line: 1 Col: 24 Unexpected end tag (p). Ignored. -Line: 1 Col: 28 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 34 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 35 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <p> -| <b> -| <div> -| <b> -| <marquee> -| <p> -| "X" - -#data -<script><div></script></div><title><p></title><p><p> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 28 Unexpected end tag (div). Ignored. -#document -| <html> -| <head> -| <script> -| "<div>" -| <title> -| "<p>" -| <body> -| <p> -| <p> - -#data -<!--><div>--<!--> -#errors -Line: 1 Col: 5 Incorrect comment. -Line: 1 Col: 10 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 17 Incorrect comment. -Line: 1 Col: 17 Expected closing tag. Unexpected end of file. -#document -| <!-- --> -| <html> -| <head> -| <body> -| <div> -| "--" -| <!-- --> - -#data -<p><hr></p> -#errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end tag (p). Ignored. -#document -| <html> -| <head> -| <body> -| <p> -| <hr> -| <p> - -#data -<select><b><option><select><option></b></select>X -#errors -Line: 1 Col: 8 Unexpected start tag (select). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected start tag token (b) in the select phase. Ignored. -Line: 1 Col: 27 Unexpected select start tag in the select phase treated as select end tag. -Line: 1 Col: 39 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 48 Unexpected end tag (select). Ignored. -Line: 1 Col: 49 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <select> -| <option> -| <option> -| "X" - -#data -<a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y -#errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 40 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 43 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 43 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 43 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 51 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 63 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 64 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <a> -| <a> -| <table> -| <tbody> -| <tr> -| <td> -| <a> -| <table> -| <a> -| <a> -| <b> -| "X" -| "C" -| <a> -| "Y" - -#data -<a X>0<b>1<a Y>2 -#errors -Line: 1 Col: 5 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 15 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 16 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <a> -| x="" -| "0" -| <b> -| "1" -| <b> -| <a> -| y="" -| "2" - -#data -<!-----><font><div>hello<table>excite!<b>me!<th><i>please!</tr><!--X--> -#errors -Line: 1 Col: 7 Unexpected '-' after '--' found in comment. -Line: 1 Col: 14 Unexpected start tag (font). Expected DOCTYPE. -Line: 1 Col: 38 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 41 Unexpected start tag (b) in table context caused voodoo mode. -Line: 1 Col: 48 Unexpected implied end tag (b) in the table phase. -Line: 1 Col: 48 Unexpected table cell start tag (th) in the table body phase. -Line: 1 Col: 63 Got table cell end tag (th) while required end tags are missing. -Line: 1 Col: 71 Unexpected end of file. Expected table content. -#document -| <!-- - --> -| <html> -| <head> -| <body> -| <font> -| <div> -| "helloexcite!" -| <b> -| "me!" -| <table> -| <tbody> -| <tr> -| <th> -| <i> -| "please!" -| <!-- X --> - -#data -<!DOCTYPE html><li>hello<li>world<ul>how<li>do</ul>you</body><!--do--> -#errors -Line: 1 Col: 61 Unexpected end tag (li). Missing end tag (body). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <li> -| "hello" -| <li> -| "world" -| <ul> -| "how" -| <li> -| "do" -| "you" -| <!-- do --> - -#data -<!DOCTYPE html>A<option>B<optgroup>C<select>D</option>E -#errors -Line: 1 Col: 54 Unexpected end tag (option) in the select phase. Ignored. -Line: 1 Col: 55 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "A" -| <option> -| "B" -| <optgroup> -| "C" -| <select> -| "DE" - -#data -< -#errors -Line: 1 Col: 1 Expected tag name. Got something else instead -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "<" - -#data -<# -#errors -Line: 1 Col: 1 Expected tag name. Got something else instead -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "<#" - -#data -</ -#errors -Line: 1 Col: 2 Expected closing tag. Unexpected end of file. -Line: 1 Col: 2 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "</" - -#data -</# -#errors -Line: 1 Col: 2 Expected closing tag. Unexpected character '#' found. -Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- # --> -| <html> -| <head> -| <body> - -#data -<? -#errors -Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) -Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- ? --> -| <html> -| <head> -| <body> - -#data -<?# -#errors -Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) -Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- ?# --> -| <html> -| <head> -| <body> - -#data -<! -#errors -Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found. -Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- --> -| <html> -| <head> -| <body> - -#data -<!# -#errors -Line: 1 Col: 3 Expected '--' or 'DOCTYPE'. Not found. -Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- # --> -| <html> -| <head> -| <body> - -#data -<?COMMENT?> -#errors -Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) -Line: 1 Col: 11 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- ?COMMENT? --> -| <html> -| <head> -| <body> - -#data -<!COMMENT> -#errors -Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found. -Line: 1 Col: 10 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- COMMENT --> -| <html> -| <head> -| <body> - -#data -</ COMMENT > -#errors -Line: 1 Col: 2 Expected closing tag. Unexpected character ' ' found. -Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- COMMENT --> -| <html> -| <head> -| <body> - -#data -<?COM--MENT?> -#errors -Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) -Line: 1 Col: 13 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- ?COM--MENT? --> -| <html> -| <head> -| <body> - -#data -<!COM--MENT> -#errors -Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found. -Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- COM--MENT --> -| <html> -| <head> -| <body> - -#data -</ COM--MENT > -#errors -Line: 1 Col: 2 Expected closing tag. Unexpected character ' ' found. -Line: 1 Col: 14 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- COM--MENT --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><style> EOF -#errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (style). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| " EOF" -| <body> - -#data -<!DOCTYPE html><script> <!-- </script> --> </script> EOF -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| " <!-- " -| " " -| <body> -| "--> EOF" - -#data -<b><p></b>TEST -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 10 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -#document -| <html> -| <head> -| <body> -| <b> -| <p> -| <b> -| "TEST" - -#data -<p id=a><b><p id=b></b>TEST -#errors -Line: 1 Col: 8 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 19 Unexpected end tag (p). Ignored. -Line: 1 Col: 23 End tag (b) violates step 1, paragraph 2 of the adoption agency algorithm. -#document -| <html> -| <head> -| <body> -| <p> -| id="a" -| <b> -| <p> -| id="b" -| "TEST" - -#data -<b id=a><p><b id=b></p></b>TEST -#errors -Line: 1 Col: 8 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end tag (p). Ignored. -Line: 1 Col: 27 End tag (b) violates step 1, paragraph 2 of the adoption agency algorithm. -Line: 1 Col: 31 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| id="a" -| <p> -| <b> -| id="b" -| "TEST" - -#data -<!DOCTYPE html><title>U-test</title><body><div><p>Test<u></p></div></body> -#errors -Line: 1 Col: 61 Unexpected end tag (p). Ignored. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "U-test" -| <body> -| <div> -| <p> -| "Test" -| <u> - -#data -<!DOCTYPE html><font><table></font></table></font> -#errors -Line: 1 Col: 35 Unexpected end tag (font) in table context caused voodoo mode. -Line: 1 Col: 35 End tag (font) violates step 1, paragraph 1 of the adoption agency algorithm. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <font> -| <table> - -#data -<font><p>hello<b>cruel</font>world -#errors -Line: 1 Col: 6 Unexpected start tag (font). Expected DOCTYPE. -Line: 1 Col: 29 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 29 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 34 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <font> -| <p> -| <font> -| "hello" -| <b> -| "cruel" -| <b> -| "world" - -#data -<b>Test</i>Test -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 11 End tag (i) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| "TestTest" - -#data -<b>A<cite>B<div>C -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 17 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| "A" -| <cite> -| "B" -| <div> -| "C" - -#data -<b>A<cite>B<div>C</cite>D -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 24 Unexpected end tag (cite). Ignored. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| "A" -| <cite> -| "B" -| <div> -| "CD" - -#data -<b>A<cite>B<div>C</b>D -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 21 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 22 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| "A" -| <cite> -| "B" -| <div> -| <b> -| "C" -| "D" - -#data - -#errors -Line: 1 Col: 0 Unexpected End of file. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<DIV> -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 5 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> - -#data -<DIV> abc -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 9 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc" - -#data -<DIV> abc <B> -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 13 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> - -#data -<DIV> abc <B> def -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 17 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def" - -#data -<DIV> abc <B> def <I> -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 21 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> - -#data -<DIV> abc <B> def <I> ghi -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi" - -#data -<DIV> abc <B> def <I> ghi <P> -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 29 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <p> - -#data -<DIV> abc <B> def <I> ghi <P> jkl -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 33 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <p> -| " jkl" - -#data -<DIV> abc <B> def <I> ghi <P> jkl </B> -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 38 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <i> -| <p> -| <b> -| " jkl " - -#data -<DIV> abc <B> def <I> ghi <P> jkl </B> mno -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 42 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <i> -| <p> -| <b> -| " jkl " -| " mno" - -#data -<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <i> -| <p> -| <i> -| <b> -| " jkl " -| " mno " - -#data -<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 51 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <i> -| <p> -| <i> -| <b> -| " jkl " -| " mno " -| " pqr" - -#data -<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 56 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <i> -| <p> -| <i> -| <b> -| " jkl " -| " mno " -| " pqr " - -#data -<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> stu -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 60 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <i> -| <p> -| <i> -| <b> -| " jkl " -| " mno " -| " pqr " -| " stu" - -#data -<test attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> -#errors -Line: 1 Col: 1040 Unexpected start tag (test). Expected DOCTYPE. -Line: 1 Col: 1040 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <test> -| attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------="" - -#data -<a href="blah">aba<table><a href="foo">br<tr><td></td></tr>x</table>aoe -#errors -Line: 1 Col: 15 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 39 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 39 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 39 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 45 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 68 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 71 Expected closing tag. Unexpected end of file. - -#document -| <html> -| <head> -| <body> -| <a> -| href="blah" -| "aba" -| <a> -| href="foo" -| "br" -| <a> -| href="foo" -| "x" -| <table> -| <tbody> -| <tr> -| <td> -| <a> -| href="foo" -| "aoe" - -#data -<a href="blah">aba<table><tr><td><a href="foo">br</td></tr>x</table>aoe -#errors -Line: 1 Col: 15 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 54 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 60 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 71 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <a> -| href="blah" -| "abax" -| <table> -| <tbody> -| <tr> -| <td> -| <a> -| href="foo" -| "br" -| "aoe" - -#data -<table><a href="blah">aba<tr><td><a href="foo">br</td></tr>x</table>aoe -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 29 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 54 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 68 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 71 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <a> -| href="blah" -| "aba" -| <a> -| href="blah" -| "x" -| <table> -| <tbody> -| <tr> -| <td> -| <a> -| href="foo" -| "br" -| <a> -| href="blah" -| "aoe" - -#data -<a href=a>aa<marquee>aa<a href=b>bb</marquee>aa -#errors -Line: 1 Col: 10 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 45 End tag (marquee) seen too early. Expected other end tag. -Line: 1 Col: 47 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <a> -| href="a" -| "aa" -| <marquee> -| "aa" -| <a> -| href="b" -| "bb" -| "aa" - -#data -<wbr><strike><code></strike><code><strike></code> -#errors -Line: 1 Col: 5 Unexpected start tag (wbr). Expected DOCTYPE. -Line: 1 Col: 28 End tag (strike) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 49 Unexpected end tag (code). Ignored. -#document -| <html> -| <head> -| <body> -| <wbr> -| <strike> -| <code> -| <code> -| <code> -| <strike> - -#data -<!DOCTYPE html><spacer>foo -#errors -26: End of file seen and there were open elements. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <spacer> -| "foo" - -#data -<title><meta></title><link><title><meta></title> -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -#document -| <html> -| <head> -| <title> -| "<meta>" -| <link> -| <title> -| "<meta>" -| <body> - -#data -<style><!--</style><meta><script>--><link></script> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 51 Unexpected end of file. Expected end tag (style). -#document -| <html> -| <head> -| <style> -| "<!--" -| <meta> -| <script> -| "--><link>" -| <body> - -#data -<head><meta></head><link> -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 25 Unexpected start tag (link) that can be in head. Moved. -#document -| <html> -| <head> -| <meta> -| <link> -| <body> - -#data -<table><tr><tr><td><td><span><th><span>X</table> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 33 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 48 Got table cell end tag (th) while required end tags are missing. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <tr> -| <td> -| <td> -| <span> -| <th> -| <span> -| "X" - -#data -<body><body><base><link><meta><title><p></title><body><p></body> -#errors -Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected start tag (body). -Line: 1 Col: 54 Unexpected start tag (body). -Line: 1 Col: 64 Unexpected end tag (p). Missing end tag (body). -#document -| <html> -| <head> -| <body> -| <base> -| <link> -| <meta> -| <title> -| "<p>" -| <p> - -#data -<textarea><p></textarea> -#errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <textarea> -| "<p>" - -#data -<p><image></p> -#errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected start tag (image). Treated as img. -#document -| <html> -| <head> -| <body> -| <p> -| <img> - -#data -<a><table><a></table><p><a><div><a> -#errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 13 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 13 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 21 Unexpected end tag (table). Expected end tag (a). -Line: 1 Col: 27 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 27 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm. -Line: 1 Col: 32 Unexpected end tag (p). Ignored. -Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 35 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm. -Line: 1 Col: 35 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <a> -| <a> -| <table> -| <p> -| <a> -| <div> -| <a> - -#data -<head></p><meta><p> -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected end tag (p). Ignored. -#document -| <html> -| <head> -| <meta> -| <body> -| <p> - -#data -<head></html><meta><p> -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 19 Unexpected start tag (meta). -#document -| <html> -| <head> -| <body> -| <meta> -| <p> - -#data -<b><table><td><i></table> -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 25 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| <table> -| <tbody> -| <tr> -| <td> -| <i> - -#data -<b><table><td></b><i></table> -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 18 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 29 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 29 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| <table> -| <tbody> -| <tr> -| <td> -| <i> - -#data -<h1><h2> -#errors -4: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. -8: Heading cannot be a child of another heading. -8: End of file seen and there were open elements. -#document -| <html> -| <head> -| <body> -| <h1> -| <h2> - -#data -<a><p><a></a></p></a> -#errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 9 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 9 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 21 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -#document -| <html> -| <head> -| <body> -| <a> -| <p> -| <a> -| <a> - -#data -<b><button></b></button></b> -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 15 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -#document -| <html> -| <head> -| <body> -| <b> -| <button> -| <b> - -#data -<p><b><div><marquee></p></b></div> -#errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end tag (p). Ignored. -Line: 1 Col: 24 Unexpected end tag (p). Ignored. -Line: 1 Col: 28 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 34 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 34 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <p> -| <b> -| <div> -| <b> -| <marquee> -| <p> - -#data -<script></script></div><title></title><p><p> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end tag (div). Ignored. -#document -| <html> -| <head> -| <script> -| <title> -| <body> -| <p> -| <p> - -#data -<p><hr></p> -#errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end tag (p). Ignored. -#document -| <html> -| <head> -| <body> -| <p> -| <hr> -| <p> - -#data -<select><b><option><select><option></b></select> -#errors -Line: 1 Col: 8 Unexpected start tag (select). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected start tag token (b) in the select phase. Ignored. -Line: 1 Col: 27 Unexpected select start tag in the select phase treated as select end tag. -Line: 1 Col: 39 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 48 Unexpected end tag (select). Ignored. -Line: 1 Col: 48 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <select> -| <option> -| <option> - -#data -<html><head><title></title><body></body></html> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <title> -| <body> - -#data -<a><table><td><a><table></table><a></tr><a></table><a> -#errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 40 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 43 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 43 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 43 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 51 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 54 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 54 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm. -Line: 1 Col: 54 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <a> -| <a> -| <table> -| <tbody> -| <tr> -| <td> -| <a> -| <table> -| <a> -| <a> - -#data -<ul><li></li><div><li></div><li><li><div><li><address><li><b><em></b><li></ul> -#errors -Line: 1 Col: 4 Unexpected start tag (ul). Expected DOCTYPE. -Line: 1 Col: 45 Missing end tag (div, li). -Line: 1 Col: 58 Missing end tag (address, li). -Line: 1 Col: 69 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -#document -| <html> -| <head> -| <body> -| <ul> -| <li> -| <div> -| <li> -| <li> -| <li> -| <div> -| <li> -| <address> -| <li> -| <b> -| <em> -| <li> - -#data -<ul><li><ul></li><li>a</li></ul></li></ul> -#errors -XXX: fix me -#document -| <html> -| <head> -| <body> -| <ul> -| <li> -| <ul> -| <li> -| "a" - -#data -<frameset><frame><frameset><frame></frameset><noframes></noframes></frameset> -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -#document -| <html> -| <head> -| <frameset> -| <frame> -| <frameset> -| <frame> -| <noframes> - -#data -<h1><table><td><h3></table><h3></h1> -#errors -4: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. -15: “td” start tag in table body. -27: Unclosed elements. -31: Heading cannot be a child of another heading. -36: End tag “h1” seen but there were unclosed elements. -#document -| <html> -| <head> -| <body> -| <h1> -| <table> -| <tbody> -| <tr> -| <td> -| <h3> -| <h3> - -#data -<table><colgroup><col><colgroup><col><col><col><colgroup><col><col><thead><tr><td></table> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <table> -| <colgroup> -| <col> -| <colgroup> -| <col> -| <col> -| <col> -| <colgroup> -| <col> -| <col> -| <thead> -| <tr> -| <td> - -#data -<table><col><tbody><col><tr><col><td><col></table><col> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 37 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 55 Unexpected start tag col. Ignored. -#document -| <html> -| <head> -| <body> -| <table> -| <colgroup> -| <col> -| <tbody> -| <colgroup> -| <col> -| <tbody> -| <tr> -| <colgroup> -| <col> -| <tbody> -| <tr> -| <td> -| <colgroup> -| <col> - -#data -<table><colgroup><tbody><colgroup><tr><colgroup><td><colgroup></table><colgroup> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 52 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 80 Unexpected start tag colgroup. Ignored. -#document -| <html> -| <head> -| <body> -| <table> -| <colgroup> -| <tbody> -| <colgroup> -| <tbody> -| <tr> -| <colgroup> -| <tbody> -| <tr> -| <td> -| <colgroup> - -#data -</strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea> -#errors -Line: 1 Col: 9 Unexpected end tag (strong). Expected DOCTYPE. -Line: 1 Col: 9 Unexpected end tag (strong) after the (implied) root element. -Line: 1 Col: 13 Unexpected end tag (b) after the (implied) root element. -Line: 1 Col: 18 Unexpected end tag (em) after the (implied) root element. -Line: 1 Col: 22 Unexpected end tag (i) after the (implied) root element. -Line: 1 Col: 26 Unexpected end tag (u) after the (implied) root element. -Line: 1 Col: 35 Unexpected end tag (strike) after the (implied) root element. -Line: 1 Col: 39 Unexpected end tag (s) after the (implied) root element. -Line: 1 Col: 47 Unexpected end tag (blink) after the (implied) root element. -Line: 1 Col: 52 Unexpected end tag (tt) after the (implied) root element. -Line: 1 Col: 58 Unexpected end tag (pre) after the (implied) root element. -Line: 1 Col: 64 Unexpected end tag (big) after the (implied) root element. -Line: 1 Col: 72 Unexpected end tag (small) after the (implied) root element. -Line: 1 Col: 79 Unexpected end tag (font) after the (implied) root element. -Line: 1 Col: 88 Unexpected end tag (select) after the (implied) root element. -Line: 1 Col: 93 Unexpected end tag (h1) after the (implied) root element. -Line: 1 Col: 98 Unexpected end tag (h2) after the (implied) root element. -Line: 1 Col: 103 Unexpected end tag (h3) after the (implied) root element. -Line: 1 Col: 108 Unexpected end tag (h4) after the (implied) root element. -Line: 1 Col: 113 Unexpected end tag (h5) after the (implied) root element. -Line: 1 Col: 118 Unexpected end tag (h6) after the (implied) root element. -Line: 1 Col: 125 Unexpected end tag (body) after the (implied) root element. -Line: 1 Col: 130 Unexpected end tag (br). Treated as br element. -Line: 1 Col: 134 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 140 This element (img) has no end tag. -Line: 1 Col: 148 Unexpected end tag (title). Ignored. -Line: 1 Col: 155 Unexpected end tag (span). Ignored. -Line: 1 Col: 163 Unexpected end tag (style). Ignored. -Line: 1 Col: 172 Unexpected end tag (script). Ignored. -Line: 1 Col: 180 Unexpected end tag (table). Ignored. -Line: 1 Col: 185 Unexpected end tag (th). Ignored. -Line: 1 Col: 190 Unexpected end tag (td). Ignored. -Line: 1 Col: 195 Unexpected end tag (tr). Ignored. -Line: 1 Col: 203 This element (frame) has no end tag. -Line: 1 Col: 210 This element (area) has no end tag. -Line: 1 Col: 217 Unexpected end tag (link). Ignored. -Line: 1 Col: 225 This element (param) has no end tag. -Line: 1 Col: 230 This element (hr) has no end tag. -Line: 1 Col: 238 This element (input) has no end tag. -Line: 1 Col: 244 Unexpected end tag (col). Ignored. -Line: 1 Col: 251 Unexpected end tag (base). Ignored. -Line: 1 Col: 258 Unexpected end tag (meta). Ignored. -Line: 1 Col: 269 This element (basefont) has no end tag. -Line: 1 Col: 279 This element (bgsound) has no end tag. -Line: 1 Col: 287 This element (embed) has no end tag. -Line: 1 Col: 296 This element (spacer) has no end tag. -Line: 1 Col: 300 Unexpected end tag (p). Ignored. -Line: 1 Col: 305 End tag (dd) seen too early. Expected other end tag. -Line: 1 Col: 310 End tag (dt) seen too early. Expected other end tag. -Line: 1 Col: 320 Unexpected end tag (caption). Ignored. -Line: 1 Col: 331 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 339 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 347 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 355 Unexpected end tag (thead). Ignored. -Line: 1 Col: 365 End tag (address) seen too early. Expected other end tag. -Line: 1 Col: 378 End tag (blockquote) seen too early. Expected other end tag. -Line: 1 Col: 387 End tag (center) seen too early. Expected other end tag. -Line: 1 Col: 393 Unexpected end tag (dir). Ignored. -Line: 1 Col: 399 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 404 End tag (dl) seen too early. Expected other end tag. -Line: 1 Col: 415 End tag (fieldset) seen too early. Expected other end tag. -Line: 1 Col: 425 End tag (listing) seen too early. Expected other end tag. -Line: 1 Col: 432 End tag (menu) seen too early. Expected other end tag. -Line: 1 Col: 437 End tag (ol) seen too early. Expected other end tag. -Line: 1 Col: 442 End tag (ul) seen too early. Expected other end tag. -Line: 1 Col: 447 End tag (li) seen too early. Expected other end tag. -Line: 1 Col: 454 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 460 This element (wbr) has no end tag. -Line: 1 Col: 476 End tag (button) seen too early. Expected other end tag. -Line: 1 Col: 486 End tag (marquee) seen too early. Expected other end tag. -Line: 1 Col: 495 End tag (object) seen too early. Expected other end tag. -Line: 1 Col: 513 Unexpected end tag (html). Ignored. -Line: 1 Col: 513 Unexpected end tag (frameset). Ignored. -Line: 1 Col: 520 Unexpected end tag (head). Ignored. -Line: 1 Col: 529 Unexpected end tag (iframe). Ignored. -Line: 1 Col: 537 This element (image) has no end tag. -Line: 1 Col: 547 This element (isindex) has no end tag. -Line: 1 Col: 557 Unexpected end tag (noembed). Ignored. -Line: 1 Col: 568 Unexpected end tag (noframes). Ignored. -Line: 1 Col: 579 Unexpected end tag (noscript). Ignored. -Line: 1 Col: 590 Unexpected end tag (optgroup). Ignored. -Line: 1 Col: 599 Unexpected end tag (option). Ignored. -Line: 1 Col: 611 Unexpected end tag (plaintext). Ignored. -Line: 1 Col: 622 Unexpected end tag (textarea). Ignored. -#document -| <html> -| <head> -| <body> -| <br> -| <p> - -#data -<table><tr></strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end tag (strong) in table context caused voodoo mode. -Line: 1 Col: 20 End tag (strong) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 24 Unexpected end tag (b) in table context caused voodoo mode. -Line: 1 Col: 24 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 29 Unexpected end tag (em) in table context caused voodoo mode. -Line: 1 Col: 29 End tag (em) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 33 Unexpected end tag (i) in table context caused voodoo mode. -Line: 1 Col: 33 End tag (i) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 37 Unexpected end tag (u) in table context caused voodoo mode. -Line: 1 Col: 37 End tag (u) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 46 Unexpected end tag (strike) in table context caused voodoo mode. -Line: 1 Col: 46 End tag (strike) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 50 Unexpected end tag (s) in table context caused voodoo mode. -Line: 1 Col: 50 End tag (s) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 58 Unexpected end tag (blink) in table context caused voodoo mode. -Line: 1 Col: 58 Unexpected end tag (blink). Ignored. -Line: 1 Col: 63 Unexpected end tag (tt) in table context caused voodoo mode. -Line: 1 Col: 63 End tag (tt) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 69 Unexpected end tag (pre) in table context caused voodoo mode. -Line: 1 Col: 69 End tag (pre) seen too early. Expected other end tag. -Line: 1 Col: 75 Unexpected end tag (big) in table context caused voodoo mode. -Line: 1 Col: 75 End tag (big) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 83 Unexpected end tag (small) in table context caused voodoo mode. -Line: 1 Col: 83 End tag (small) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 90 Unexpected end tag (font) in table context caused voodoo mode. -Line: 1 Col: 90 End tag (font) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 99 Unexpected end tag (select) in table context caused voodoo mode. -Line: 1 Col: 99 Unexpected end tag (select). Ignored. -Line: 1 Col: 104 Unexpected end tag (h1) in table context caused voodoo mode. -Line: 1 Col: 104 End tag (h1) seen too early. Expected other end tag. -Line: 1 Col: 109 Unexpected end tag (h2) in table context caused voodoo mode. -Line: 1 Col: 109 End tag (h2) seen too early. Expected other end tag. -Line: 1 Col: 114 Unexpected end tag (h3) in table context caused voodoo mode. -Line: 1 Col: 114 End tag (h3) seen too early. Expected other end tag. -Line: 1 Col: 119 Unexpected end tag (h4) in table context caused voodoo mode. -Line: 1 Col: 119 End tag (h4) seen too early. Expected other end tag. -Line: 1 Col: 124 Unexpected end tag (h5) in table context caused voodoo mode. -Line: 1 Col: 124 End tag (h5) seen too early. Expected other end tag. -Line: 1 Col: 129 Unexpected end tag (h6) in table context caused voodoo mode. -Line: 1 Col: 129 End tag (h6) seen too early. Expected other end tag. -Line: 1 Col: 136 Unexpected end tag (body) in the table row phase. Ignored. -Line: 1 Col: 141 Unexpected end tag (br) in table context caused voodoo mode. -Line: 1 Col: 141 Unexpected end tag (br). Treated as br element. -Line: 1 Col: 145 Unexpected end tag (a) in table context caused voodoo mode. -Line: 1 Col: 145 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 151 Unexpected end tag (img) in table context caused voodoo mode. -Line: 1 Col: 151 This element (img) has no end tag. -Line: 1 Col: 159 Unexpected end tag (title) in table context caused voodoo mode. -Line: 1 Col: 159 Unexpected end tag (title). Ignored. -Line: 1 Col: 166 Unexpected end tag (span) in table context caused voodoo mode. -Line: 1 Col: 166 Unexpected end tag (span). Ignored. -Line: 1 Col: 174 Unexpected end tag (style) in table context caused voodoo mode. -Line: 1 Col: 174 Unexpected end tag (style). Ignored. -Line: 1 Col: 183 Unexpected end tag (script) in table context caused voodoo mode. -Line: 1 Col: 183 Unexpected end tag (script). Ignored. -Line: 1 Col: 196 Unexpected end tag (th). Ignored. -Line: 1 Col: 201 Unexpected end tag (td). Ignored. -Line: 1 Col: 206 Unexpected end tag (tr). Ignored. -Line: 1 Col: 214 This element (frame) has no end tag. -Line: 1 Col: 221 This element (area) has no end tag. -Line: 1 Col: 228 Unexpected end tag (link). Ignored. -Line: 1 Col: 236 This element (param) has no end tag. -Line: 1 Col: 241 This element (hr) has no end tag. -Line: 1 Col: 249 This element (input) has no end tag. -Line: 1 Col: 255 Unexpected end tag (col). Ignored. -Line: 1 Col: 262 Unexpected end tag (base). Ignored. -Line: 1 Col: 269 Unexpected end tag (meta). Ignored. -Line: 1 Col: 280 This element (basefont) has no end tag. -Line: 1 Col: 290 This element (bgsound) has no end tag. -Line: 1 Col: 298 This element (embed) has no end tag. -Line: 1 Col: 307 This element (spacer) has no end tag. -Line: 1 Col: 311 Unexpected end tag (p). Ignored. -Line: 1 Col: 316 End tag (dd) seen too early. Expected other end tag. -Line: 1 Col: 321 End tag (dt) seen too early. Expected other end tag. -Line: 1 Col: 331 Unexpected end tag (caption). Ignored. -Line: 1 Col: 342 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 350 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 358 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 366 Unexpected end tag (thead). Ignored. -Line: 1 Col: 376 End tag (address) seen too early. Expected other end tag. -Line: 1 Col: 389 End tag (blockquote) seen too early. Expected other end tag. -Line: 1 Col: 398 End tag (center) seen too early. Expected other end tag. -Line: 1 Col: 404 Unexpected end tag (dir). Ignored. -Line: 1 Col: 410 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 415 End tag (dl) seen too early. Expected other end tag. -Line: 1 Col: 426 End tag (fieldset) seen too early. Expected other end tag. -Line: 1 Col: 436 End tag (listing) seen too early. Expected other end tag. -Line: 1 Col: 443 End tag (menu) seen too early. Expected other end tag. -Line: 1 Col: 448 End tag (ol) seen too early. Expected other end tag. -Line: 1 Col: 453 End tag (ul) seen too early. Expected other end tag. -Line: 1 Col: 458 End tag (li) seen too early. Expected other end tag. -Line: 1 Col: 465 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 471 This element (wbr) has no end tag. -Line: 1 Col: 487 End tag (button) seen too early. Expected other end tag. -Line: 1 Col: 497 End tag (marquee) seen too early. Expected other end tag. -Line: 1 Col: 506 End tag (object) seen too early. Expected other end tag. -Line: 1 Col: 524 Unexpected end tag (html). Ignored. -Line: 1 Col: 524 Unexpected end tag (frameset). Ignored. -Line: 1 Col: 531 Unexpected end tag (head). Ignored. -Line: 1 Col: 540 Unexpected end tag (iframe). Ignored. -Line: 1 Col: 548 This element (image) has no end tag. -Line: 1 Col: 558 This element (isindex) has no end tag. -Line: 1 Col: 568 Unexpected end tag (noembed). Ignored. -Line: 1 Col: 579 Unexpected end tag (noframes). Ignored. -Line: 1 Col: 590 Unexpected end tag (noscript). Ignored. -Line: 1 Col: 601 Unexpected end tag (optgroup). Ignored. -Line: 1 Col: 610 Unexpected end tag (option). Ignored. -Line: 1 Col: 622 Unexpected end tag (plaintext). Ignored. -Line: 1 Col: 633 Unexpected end tag (textarea). Ignored. -#document -| <html> -| <head> -| <body> -| <br> -| <table> -| <tbody> -| <tr> -| <p> - -#data -<frameset> -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 1 Col: 10 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <frameset> diff --git a/src/pkg/html/testdata/webkit/tests10.dat b/src/pkg/html/testdata/webkit/tests10.dat deleted file mode 100644 index 4f8df86f20..0000000000 --- a/src/pkg/html/testdata/webkit/tests10.dat +++ /dev/null @@ -1,799 +0,0 @@ -#data -<!DOCTYPE html><svg></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> - -#data -<!DOCTYPE html><svg></svg><![CDATA[a]]> -#errors -29: Bogus comment -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <!-- [CDATA[a]] --> - -#data -<!DOCTYPE html><body><svg></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> - -#data -<!DOCTYPE html><body><select><svg></svg></select> -#errors -35: Stray “svg” start tag. -42: Stray end tag “svg” -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!DOCTYPE html><body><select><option><svg></svg></option></select> -#errors -43: Stray “svg” start tag. -50: Stray end tag “svg” -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> - -#data -<!DOCTYPE html><body><table><svg></svg></table> -#errors -34: Start tag “svg” seen in “table”. -41: Stray end tag “svg”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <table> - -#data -<!DOCTYPE html><body><table><svg><g>foo</g></svg></table> -#errors -34: Start tag “svg” seen in “table”. -46: Stray end tag “g”. -53: Stray end tag “svg”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <table> - -#data -<!DOCTYPE html><body><table><svg><g>foo</g><g>bar</g></svg></table> -#errors -34: Start tag “svg” seen in “table”. -46: Stray end tag “g”. -58: Stray end tag “g”. -65: Stray end tag “svg”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <table> - -#data -<!DOCTYPE html><body><table><tbody><svg><g>foo</g><g>bar</g></svg></tbody></table> -#errors -41: Start tag “svg” seen in “table”. -53: Stray end tag “g”. -65: Stray end tag “g”. -72: Stray end tag “svg”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <table> -| <tbody> - -#data -<!DOCTYPE html><body><table><tbody><tr><svg><g>foo</g><g>bar</g></svg></tr></tbody></table> -#errors -45: Start tag “svg” seen in “table”. -57: Stray end tag “g”. -69: Stray end tag “g”. -76: Stray end tag “svg”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <table> -| <tbody> -| <tr> - -#data -<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" - -#data -<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</td></tr></tbody></table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</caption></table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g><p>baz</table><p>quux -#errors -70: HTML start tag “p” in a foreign namespace context. -81: “table” closed but “caption” was still open. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <p> -| "baz" -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g>baz</table><p>quux -#errors -78: “table” closed but “caption” was still open. -78: Unclosed elements on stack. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| "baz" -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><colgroup><svg><g>foo</g><g>bar</g><p>baz</table><p>quux -#errors -44: Start tag “svg” seen in “table”. -56: Stray end tag “g”. -68: Stray end tag “g”. -71: HTML start tag “p” in a foreign namespace context. -71: Start tag “p” seen in “table”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <p> -| "baz" -| <table> -| <colgroup> -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><tr><td><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux -#errors -50: Stray “svg” start tag. -54: Stray “g” start tag. -62: Stray end tag “g” -66: Stray “g” start tag. -74: Stray end tag “g” -77: Stray “p” start tag. -88: “table” end tag with “select” open. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <select> -| "foobarbaz" -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux -#errors -36: Start tag “select” seen in “table”. -42: Stray “svg” start tag. -46: Stray “g” start tag. -54: Stray end tag “g” -58: Stray “g” start tag. -66: Stray end tag “g” -69: Stray “p” start tag. -80: “table” end tag with “select” open. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| "foobarbaz" -| <table> -| <p> -| "quux" - -#data -<!DOCTYPE html><body></body></html><svg><g>foo</g><g>bar</g><p>baz -#errors -41: Stray “svg” start tag. -68: HTML start tag “p” in a foreign namespace context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><body></body><svg><g>foo</g><g>bar</g><p>baz -#errors -34: Stray “svg” start tag. -61: HTML start tag “p” in a foreign namespace context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><frameset><svg><g></g><g></g><p><span> -#errors -31: Stray “svg” start tag. -35: Stray “g” start tag. -40: Stray end tag “g” -44: Stray “g” start tag. -49: Stray end tag “g” -52: Stray “p” start tag. -58: Stray “span” start tag. -58: End of file seen and there were open elements. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><frameset></frameset><svg><g></g><g></g><p><span> -#errors -42: Stray “svg” start tag. -46: Stray “g” start tag. -51: Stray end tag “g” -55: Stray “g” start tag. -60: Stray end tag “g” -63: Stray “p” start tag. -69: Stray “span” start tag. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><body xlink:href=foo><svg xlink:href=foo></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| <svg svg> -| xlink href="foo" - -#data -<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo></g></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| xml:lang="en" -| <svg svg> -| <svg g> -| xlink href="foo" -| xml lang="en" - -#data -<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo /></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| xml:lang="en" -| <svg svg> -| <svg g> -| xlink href="foo" -| xml lang="en" - -#data -<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo />bar</svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| xml:lang="en" -| <svg svg> -| <svg g> -| xlink href="foo" -| xml lang="en" -| "bar" - -#data -<svg></path> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> - -#data -<div><svg></div>a -#errors -#document -| <html> -| <head> -| <body> -| <div> -| <svg svg> -| "a" - -#data -<div><svg><path></div>a -#errors -#document -| <html> -| <head> -| <body> -| <div> -| <svg svg> -| <svg path> -| "a" - -#data -<div><svg><path></svg><path> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| <svg svg> -| <svg path> -| <path> - -#data -<div><svg><path><foreignObject><math></div>a -#errors -#document -| <html> -| <head> -| <body> -| <div> -| <svg svg> -| <svg path> -| <svg foreignObject> -| <math math> -| "a" - -#data -<div><svg><path><foreignObject><p></div>a -#errors -#document -| <html> -| <head> -| <body> -| <div> -| <svg svg> -| <svg path> -| <svg foreignObject> -| <p> -| "a" - -#data -<!DOCTYPE html><svg><desc><div><svg><ul>a -#errors -40: HTML start tag “ul” in a foreign namespace context. -41: End of file in a foreign namespace context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg desc> -| <div> -| <svg svg> -| <ul> -| "a" - -#data -<!DOCTYPE html><svg><desc><svg><ul>a -#errors -35: HTML start tag “ul” in a foreign namespace context. -36: End of file in a foreign namespace context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg desc> -| <svg svg> -| <ul> -| "a" - -#data -<!DOCTYPE html><p><svg><desc><p> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <svg svg> -| <svg desc> -| <p> - -#data -<!DOCTYPE html><p><svg><title><p> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <svg svg> -| <svg title> -| <p> - -#data -<div><svg><path><foreignObject><p></foreignObject><p> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| <svg svg> -| <svg path> -| <svg foreignObject> -| <p> -| <p> - -#data -<math><mi><div><object><div><span></span></div></object></div></mi><mi> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| <div> -| <object> -| <div> -| <span> -| <math mi> - -#data -<math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| <svg svg> -| <svg foreignObject> -| <div> -| <div> -| <math mi> - -#data -<svg><script></script><path> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| <svg script> -| <svg path> - -#data -<table><svg></svg><tr> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| <table> -| <tbody> -| <tr> - -#data -<math><mi><mglyph> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| <math mglyph> - -#data -<math><mi><malignmark> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| <math malignmark> - -#data -<math><mo><mglyph> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mo> -| <math mglyph> - -#data -<math><mo><malignmark> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mo> -| <math malignmark> - -#data -<math><mn><mglyph> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mn> -| <math mglyph> - -#data -<math><mn><malignmark> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mn> -| <math malignmark> - -#data -<math><ms><mglyph> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math ms> -| <math mglyph> - -#data -<math><ms><malignmark> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math ms> -| <math malignmark> - -#data -<math><mtext><mglyph> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mtext> -| <math mglyph> - -#data -<math><mtext><malignmark> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mtext> -| <math malignmark> - -#data -<math><annotation-xml><svg></svg></annotation-xml><mi> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| <svg svg> -| <math mi> - -#data -<math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| <svg svg> -| <svg foreignObject> -| <div> -| <math math> -| <math mi> -| <span> -| <svg path> -| <math mi> - -#data -<math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| <svg svg> -| <svg foreignObject> -| <math math> -| <math mi> -| <svg svg> -| <math mo> -| <span> -| <svg path> -| <math mi> diff --git a/src/pkg/html/testdata/webkit/tests11.dat b/src/pkg/html/testdata/webkit/tests11.dat deleted file mode 100644 index 638cde479f..0000000000 --- a/src/pkg/html/testdata/webkit/tests11.dat +++ /dev/null @@ -1,482 +0,0 @@ -#data -<!DOCTYPE html><body><svg attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' contentScriptType='' contentStyleType='' diffuseConstant='' edgeMode='' externalResourcesRequired='' filterRes='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| attributeName="" -| attributeType="" -| baseFrequency="" -| baseProfile="" -| calcMode="" -| clipPathUnits="" -| contentScriptType="" -| contentStyleType="" -| diffuseConstant="" -| edgeMode="" -| externalResourcesRequired="" -| filterRes="" -| filterUnits="" -| glyphRef="" -| gradientTransform="" -| gradientUnits="" -| kernelMatrix="" -| kernelUnitLength="" -| keyPoints="" -| keySplines="" -| keyTimes="" -| lengthAdjust="" -| limitingConeAngle="" -| markerHeight="" -| markerUnits="" -| markerWidth="" -| maskContentUnits="" -| maskUnits="" -| numOctaves="" -| pathLength="" -| patternContentUnits="" -| patternTransform="" -| patternUnits="" -| pointsAtX="" -| pointsAtY="" -| pointsAtZ="" -| preserveAlpha="" -| preserveAspectRatio="" -| primitiveUnits="" -| refX="" -| refY="" -| repeatCount="" -| repeatDur="" -| requiredExtensions="" -| requiredFeatures="" -| specularConstant="" -| specularExponent="" -| spreadMethod="" -| startOffset="" -| stdDeviation="" -| stitchTiles="" -| surfaceScale="" -| systemLanguage="" -| tableValues="" -| targetX="" -| targetY="" -| textLength="" -| viewBox="" -| viewTarget="" -| xChannelSelector="" -| yChannelSelector="" -| zoomAndPan="" - -#data -<!DOCTYPE html><BODY><SVG ATTRIBUTENAME='' ATTRIBUTETYPE='' BASEFREQUENCY='' BASEPROFILE='' CALCMODE='' CLIPPATHUNITS='' CONTENTSCRIPTTYPE='' CONTENTSTYLETYPE='' DIFFUSECONSTANT='' EDGEMODE='' EXTERNALRESOURCESREQUIRED='' FILTERRES='' FILTERUNITS='' GLYPHREF='' GRADIENTTRANSFORM='' GRADIENTUNITS='' KERNELMATRIX='' KERNELUNITLENGTH='' KEYPOINTS='' KEYSPLINES='' KEYTIMES='' LENGTHADJUST='' LIMITINGCONEANGLE='' MARKERHEIGHT='' MARKERUNITS='' MARKERWIDTH='' MASKCONTENTUNITS='' MASKUNITS='' NUMOCTAVES='' PATHLENGTH='' PATTERNCONTENTUNITS='' PATTERNTRANSFORM='' PATTERNUNITS='' POINTSATX='' POINTSATY='' POINTSATZ='' PRESERVEALPHA='' PRESERVEASPECTRATIO='' PRIMITIVEUNITS='' REFX='' REFY='' REPEATCOUNT='' REPEATDUR='' REQUIREDEXTENSIONS='' REQUIREDFEATURES='' SPECULARCONSTANT='' SPECULAREXPONENT='' SPREADMETHOD='' STARTOFFSET='' STDDEVIATION='' STITCHTILES='' SURFACESCALE='' SYSTEMLANGUAGE='' TABLEVALUES='' TARGETX='' TARGETY='' TEXTLENGTH='' VIEWBOX='' VIEWTARGET='' XCHANNELSELECTOR='' YCHANNELSELECTOR='' ZOOMANDPAN=''></SVG> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| attributeName="" -| attributeType="" -| baseFrequency="" -| baseProfile="" -| calcMode="" -| clipPathUnits="" -| contentScriptType="" -| contentStyleType="" -| diffuseConstant="" -| edgeMode="" -| externalResourcesRequired="" -| filterRes="" -| filterUnits="" -| glyphRef="" -| gradientTransform="" -| gradientUnits="" -| kernelMatrix="" -| kernelUnitLength="" -| keyPoints="" -| keySplines="" -| keyTimes="" -| lengthAdjust="" -| limitingConeAngle="" -| markerHeight="" -| markerUnits="" -| markerWidth="" -| maskContentUnits="" -| maskUnits="" -| numOctaves="" -| pathLength="" -| patternContentUnits="" -| patternTransform="" -| patternUnits="" -| pointsAtX="" -| pointsAtY="" -| pointsAtZ="" -| preserveAlpha="" -| preserveAspectRatio="" -| primitiveUnits="" -| refX="" -| refY="" -| repeatCount="" -| repeatDur="" -| requiredExtensions="" -| requiredFeatures="" -| specularConstant="" -| specularExponent="" -| spreadMethod="" -| startOffset="" -| stdDeviation="" -| stitchTiles="" -| surfaceScale="" -| systemLanguage="" -| tableValues="" -| targetX="" -| targetY="" -| textLength="" -| viewBox="" -| viewTarget="" -| xChannelSelector="" -| yChannelSelector="" -| zoomAndPan="" - -#data -<!DOCTYPE html><body><svg attributename='' attributetype='' basefrequency='' baseprofile='' calcmode='' clippathunits='' contentscripttype='' contentstyletype='' diffuseconstant='' edgemode='' externalresourcesrequired='' filterres='' filterunits='' glyphref='' gradienttransform='' gradientunits='' kernelmatrix='' kernelunitlength='' keypoints='' keysplines='' keytimes='' lengthadjust='' limitingconeangle='' markerheight='' markerunits='' markerwidth='' maskcontentunits='' maskunits='' numoctaves='' pathlength='' patterncontentunits='' patterntransform='' patternunits='' pointsatx='' pointsaty='' pointsatz='' preservealpha='' preserveaspectratio='' primitiveunits='' refx='' refy='' repeatcount='' repeatdur='' requiredextensions='' requiredfeatures='' specularconstant='' specularexponent='' spreadmethod='' startoffset='' stddeviation='' stitchtiles='' surfacescale='' systemlanguage='' tablevalues='' targetx='' targety='' textlength='' viewbox='' viewtarget='' xchannelselector='' ychannelselector='' zoomandpan=''></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| attributeName="" -| attributeType="" -| baseFrequency="" -| baseProfile="" -| calcMode="" -| clipPathUnits="" -| contentScriptType="" -| contentStyleType="" -| diffuseConstant="" -| edgeMode="" -| externalResourcesRequired="" -| filterRes="" -| filterUnits="" -| glyphRef="" -| gradientTransform="" -| gradientUnits="" -| kernelMatrix="" -| kernelUnitLength="" -| keyPoints="" -| keySplines="" -| keyTimes="" -| lengthAdjust="" -| limitingConeAngle="" -| markerHeight="" -| markerUnits="" -| markerWidth="" -| maskContentUnits="" -| maskUnits="" -| numOctaves="" -| pathLength="" -| patternContentUnits="" -| patternTransform="" -| patternUnits="" -| pointsAtX="" -| pointsAtY="" -| pointsAtZ="" -| preserveAlpha="" -| preserveAspectRatio="" -| primitiveUnits="" -| refX="" -| refY="" -| repeatCount="" -| repeatDur="" -| requiredExtensions="" -| requiredFeatures="" -| specularConstant="" -| specularExponent="" -| spreadMethod="" -| startOffset="" -| stdDeviation="" -| stitchTiles="" -| surfaceScale="" -| systemLanguage="" -| tableValues="" -| targetX="" -| targetY="" -| textLength="" -| viewBox="" -| viewTarget="" -| xChannelSelector="" -| yChannelSelector="" -| zoomAndPan="" - -#data -<!DOCTYPE html><body><math attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' contentScriptType='' contentStyleType='' diffuseConstant='' edgeMode='' externalResourcesRequired='' filterRes='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| attributename="" -| attributetype="" -| basefrequency="" -| baseprofile="" -| calcmode="" -| clippathunits="" -| contentscripttype="" -| contentstyletype="" -| diffuseconstant="" -| edgemode="" -| externalresourcesrequired="" -| filterres="" -| filterunits="" -| glyphref="" -| gradienttransform="" -| gradientunits="" -| kernelmatrix="" -| kernelunitlength="" -| keypoints="" -| keysplines="" -| keytimes="" -| lengthadjust="" -| limitingconeangle="" -| markerheight="" -| markerunits="" -| markerwidth="" -| maskcontentunits="" -| maskunits="" -| numoctaves="" -| pathlength="" -| patterncontentunits="" -| patterntransform="" -| patternunits="" -| pointsatx="" -| pointsaty="" -| pointsatz="" -| preservealpha="" -| preserveaspectratio="" -| primitiveunits="" -| refx="" -| refy="" -| repeatcount="" -| repeatdur="" -| requiredextensions="" -| requiredfeatures="" -| specularconstant="" -| specularexponent="" -| spreadmethod="" -| startoffset="" -| stddeviation="" -| stitchtiles="" -| surfacescale="" -| systemlanguage="" -| tablevalues="" -| targetx="" -| targety="" -| textlength="" -| viewbox="" -| viewtarget="" -| xchannelselector="" -| ychannelselector="" -| zoomandpan="" - -#data -<!DOCTYPE html><body><svg><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg altGlyph> -| <svg altGlyphDef> -| <svg altGlyphItem> -| <svg animateColor> -| <svg animateMotion> -| <svg animateTransform> -| <svg clipPath> -| <svg feBlend> -| <svg feColorMatrix> -| <svg feComponentTransfer> -| <svg feComposite> -| <svg feConvolveMatrix> -| <svg feDiffuseLighting> -| <svg feDisplacementMap> -| <svg feDistantLight> -| <svg feFlood> -| <svg feFuncA> -| <svg feFuncB> -| <svg feFuncG> -| <svg feFuncR> -| <svg feGaussianBlur> -| <svg feImage> -| <svg feMerge> -| <svg feMergeNode> -| <svg feMorphology> -| <svg feOffset> -| <svg fePointLight> -| <svg feSpecularLighting> -| <svg feSpotLight> -| <svg feTile> -| <svg feTurbulence> -| <svg foreignObject> -| <svg glyphRef> -| <svg linearGradient> -| <svg radialGradient> -| <svg textPath> - -#data -<!DOCTYPE html><body><svg><altglyph /><altglyphdef /><altglyphitem /><animatecolor /><animatemotion /><animatetransform /><clippath /><feblend /><fecolormatrix /><fecomponenttransfer /><fecomposite /><feconvolvematrix /><fediffuselighting /><fedisplacementmap /><fedistantlight /><feflood /><fefunca /><fefuncb /><fefuncg /><fefuncr /><fegaussianblur /><feimage /><femerge /><femergenode /><femorphology /><feoffset /><fepointlight /><fespecularlighting /><fespotlight /><fetile /><feturbulence /><foreignobject /><glyphref /><lineargradient /><radialgradient /><textpath /></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg altGlyph> -| <svg altGlyphDef> -| <svg altGlyphItem> -| <svg animateColor> -| <svg animateMotion> -| <svg animateTransform> -| <svg clipPath> -| <svg feBlend> -| <svg feColorMatrix> -| <svg feComponentTransfer> -| <svg feComposite> -| <svg feConvolveMatrix> -| <svg feDiffuseLighting> -| <svg feDisplacementMap> -| <svg feDistantLight> -| <svg feFlood> -| <svg feFuncA> -| <svg feFuncB> -| <svg feFuncG> -| <svg feFuncR> -| <svg feGaussianBlur> -| <svg feImage> -| <svg feMerge> -| <svg feMergeNode> -| <svg feMorphology> -| <svg feOffset> -| <svg fePointLight> -| <svg feSpecularLighting> -| <svg feSpotLight> -| <svg feTile> -| <svg feTurbulence> -| <svg foreignObject> -| <svg glyphRef> -| <svg linearGradient> -| <svg radialGradient> -| <svg textPath> - -#data -<!DOCTYPE html><BODY><SVG><ALTGLYPH /><ALTGLYPHDEF /><ALTGLYPHITEM /><ANIMATECOLOR /><ANIMATEMOTION /><ANIMATETRANSFORM /><CLIPPATH /><FEBLEND /><FECOLORMATRIX /><FECOMPONENTTRANSFER /><FECOMPOSITE /><FECONVOLVEMATRIX /><FEDIFFUSELIGHTING /><FEDISPLACEMENTMAP /><FEDISTANTLIGHT /><FEFLOOD /><FEFUNCA /><FEFUNCB /><FEFUNCG /><FEFUNCR /><FEGAUSSIANBLUR /><FEIMAGE /><FEMERGE /><FEMERGENODE /><FEMORPHOLOGY /><FEOFFSET /><FEPOINTLIGHT /><FESPECULARLIGHTING /><FESPOTLIGHT /><FETILE /><FETURBULENCE /><FOREIGNOBJECT /><GLYPHREF /><LINEARGRADIENT /><RADIALGRADIENT /><TEXTPATH /></SVG> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg altGlyph> -| <svg altGlyphDef> -| <svg altGlyphItem> -| <svg animateColor> -| <svg animateMotion> -| <svg animateTransform> -| <svg clipPath> -| <svg feBlend> -| <svg feColorMatrix> -| <svg feComponentTransfer> -| <svg feComposite> -| <svg feConvolveMatrix> -| <svg feDiffuseLighting> -| <svg feDisplacementMap> -| <svg feDistantLight> -| <svg feFlood> -| <svg feFuncA> -| <svg feFuncB> -| <svg feFuncG> -| <svg feFuncR> -| <svg feGaussianBlur> -| <svg feImage> -| <svg feMerge> -| <svg feMergeNode> -| <svg feMorphology> -| <svg feOffset> -| <svg fePointLight> -| <svg feSpecularLighting> -| <svg feSpotLight> -| <svg feTile> -| <svg feTurbulence> -| <svg foreignObject> -| <svg glyphRef> -| <svg linearGradient> -| <svg radialGradient> -| <svg textPath> - -#data -<!DOCTYPE html><body><math><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math altglyph> -| <math altglyphdef> -| <math altglyphitem> -| <math animatecolor> -| <math animatemotion> -| <math animatetransform> -| <math clippath> -| <math feblend> -| <math fecolormatrix> -| <math fecomponenttransfer> -| <math fecomposite> -| <math feconvolvematrix> -| <math fediffuselighting> -| <math fedisplacementmap> -| <math fedistantlight> -| <math feflood> -| <math fefunca> -| <math fefuncb> -| <math fefuncg> -| <math fefuncr> -| <math fegaussianblur> -| <math feimage> -| <math femerge> -| <math femergenode> -| <math femorphology> -| <math feoffset> -| <math fepointlight> -| <math fespecularlighting> -| <math fespotlight> -| <math fetile> -| <math feturbulence> -| <math foreignobject> -| <math glyphref> -| <math lineargradient> -| <math radialgradient> -| <math textpath> - -#data -<!DOCTYPE html><body><svg><solidColor /></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg solidcolor> diff --git a/src/pkg/html/testdata/webkit/tests12.dat b/src/pkg/html/testdata/webkit/tests12.dat deleted file mode 100644 index 63107d277b..0000000000 --- a/src/pkg/html/testdata/webkit/tests12.dat +++ /dev/null @@ -1,62 +0,0 @@ -#data -<!DOCTYPE html><body><p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| "foo" -| <math math> -| <math mtext> -| <i> -| "baz" -| <math annotation-xml> -| <svg svg> -| <svg desc> -| <b> -| "eggs" -| <svg g> -| <svg foreignObject> -| <p> -| "spam" -| <table> -| <tbody> -| <tr> -| <td> -| <img> -| <svg g> -| "quux" -| "bar" - -#data -<!DOCTYPE html><body>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "foo" -| <math math> -| <math mtext> -| <i> -| "baz" -| <math annotation-xml> -| <svg svg> -| <svg desc> -| <b> -| "eggs" -| <svg g> -| <svg foreignObject> -| <p> -| "spam" -| <table> -| <tbody> -| <tr> -| <td> -| <img> -| <svg g> -| "quux" -| "bar" diff --git a/src/pkg/html/testdata/webkit/tests14.dat b/src/pkg/html/testdata/webkit/tests14.dat deleted file mode 100644 index b8713f8858..0000000000 --- a/src/pkg/html/testdata/webkit/tests14.dat +++ /dev/null @@ -1,74 +0,0 @@ -#data -<!DOCTYPE html><html><body><xyz:abc></xyz:abc> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <xyz:abc> - -#data -<!DOCTYPE html><html><body><xyz:abc></xyz:abc><span></span> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <xyz:abc> -| <span> - -#data -<!DOCTYPE html><html><html abc:def=gh><xyz:abc></xyz:abc> -#errors -15: Unexpected start tag html -#document -| <!DOCTYPE html> -| <html> -| abc:def="gh" -| <head> -| <body> -| <xyz:abc> - -#data -<!DOCTYPE html><html xml:lang=bar><html xml:lang=foo> -#errors -15: Unexpected start tag html -#document -| <!DOCTYPE html> -| <html> -| xml:lang="bar" -| <head> -| <body> - -#data -<!DOCTYPE html><html 123=456> -#errors -#document -| <!DOCTYPE html> -| <html> -| 123="456" -| <head> -| <body> - -#data -<!DOCTYPE html><html 123=456><html 789=012> -#errors -#document -| <!DOCTYPE html> -| <html> -| 123="456" -| 789="012" -| <head> -| <body> - -#data -<!DOCTYPE html><html><body 789=012> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| 789="012" diff --git a/src/pkg/html/testdata/webkit/tests15.dat b/src/pkg/html/testdata/webkit/tests15.dat deleted file mode 100644 index 6ce1c0d166..0000000000 --- a/src/pkg/html/testdata/webkit/tests15.dat +++ /dev/null @@ -1,208 +0,0 @@ -#data -<!DOCTYPE html><p><b><i><u></p> <p>X -#errors -Line: 1 Col: 31 Unexpected end tag (p). Ignored. -Line: 1 Col: 36 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <b> -| <i> -| <u> -| <b> -| <i> -| <u> -| " " -| <p> -| "X" - -#data -<p><b><i><u></p> -<p>X -#errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected end tag (p). Ignored. -Line: 2 Col: 4 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <p> -| <b> -| <i> -| <u> -| <b> -| <i> -| <u> -| " -" -| <p> -| "X" - -#data -<!doctype html></html> <head> -#errors -Line: 1 Col: 22 Unexpected end tag (html) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " " - -#data -<!doctype html></body><meta> -#errors -Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <meta> - -#data -<html></html><!-- foo --> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end tag (html) after the (implied) root element. -#document -| <html> -| <head> -| <body> -| <!-- foo --> - -#data -<!doctype html></body><title>X</title> -#errors -Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <title> -| "X" - -#data -<!doctype html><table> X<meta></table> -#errors -Line: 1 Col: 24 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 30 Unexpected start tag (meta) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " X" -| <meta> -| <table> - -#data -<!doctype html><table> x</table> -#errors -Line: 1 Col: 24 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " x" -| <table> - -#data -<!doctype html><table> x </table> -#errors -Line: 1 Col: 25 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " x " -| <table> - -#data -<!doctype html><table><tr> x</table> -#errors -Line: 1 Col: 28 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " x" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table>X<style> <tr>x </style> </table> -#errors -Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <table> -| <style> -| " <tr>x " -| " " - -#data -<!doctype html><div><table><a>foo</a> <tr><td>bar</td> </tr></table></div> -#errors -Line: 1 Col: 30 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 37 Unexpected end tag (a) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> -| <a> -| "foo" -| <table> -| " " -| <tbody> -| <tr> -| <td> -| "bar" -| " " - -#data -<frame></frame></frame><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes> -#errors -6: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. -13: Stray start tag “frame”. -21: Stray end tag “frame”. -29: Stray end tag “frame”. -39: “frameset” start tag after “body” already open. -105: End of file seen inside an [R]CDATA element. -105: End of file seen and there were open elements. -XXX: These errors are wrong, please fix me! -#document -| <html> -| <head> -| <frameset> -| <frame> -| <frameset> -| <frame> -| <noframes> -| "</frameset><noframes>" - -#data -<!DOCTYPE html><object></html> -#errors -1: Expected closing tag. Unexpected end of file -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <object> diff --git a/src/pkg/html/testdata/webkit/tests16.dat b/src/pkg/html/testdata/webkit/tests16.dat deleted file mode 100644 index 937dba9f42..0000000000 --- a/src/pkg/html/testdata/webkit/tests16.dat +++ /dev/null @@ -1,2277 +0,0 @@ -#data -<!doctype html><script> -#errors -Line: 1 Col: 23 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| <body> - -#data -<!doctype html><script>a -#errors -Line: 1 Col: 24 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "a" -| <body> - -#data -<!doctype html><script>< -#errors -Line: 1 Col: 24 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<" -| <body> - -#data -<!doctype html><script></ -#errors -Line: 1 Col: 25 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</" -| <body> - -#data -<!doctype html><script></S -#errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</S" -| <body> - -#data -<!doctype html><script></SC -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SC" -| <body> - -#data -<!doctype html><script></SCR -#errors -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCR" -| <body> - -#data -<!doctype html><script></SCRI -#errors -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCRI" -| <body> - -#data -<!doctype html><script></SCRIP -#errors -Line: 1 Col: 30 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCRIP" -| <body> - -#data -<!doctype html><script></SCRIPT -#errors -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCRIPT" -| <body> - -#data -<!doctype html><script></SCRIPT -#errors -Line: 1 Col: 32 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| <body> - -#data -<!doctype html><script></s -#errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</s" -| <body> - -#data -<!doctype html><script></sc -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</sc" -| <body> - -#data -<!doctype html><script></scr -#errors -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</scr" -| <body> - -#data -<!doctype html><script></scri -#errors -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</scri" -| <body> - -#data -<!doctype html><script></scrip -#errors -Line: 1 Col: 30 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</scrip" -| <body> - -#data -<!doctype html><script></script -#errors -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</script" -| <body> - -#data -<!doctype html><script></script -#errors -Line: 1 Col: 32 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| <body> - -#data -<!doctype html><script><! -#errors -Line: 1 Col: 25 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!" -| <body> - -#data -<!doctype html><script><!a -#errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!a" -| <body> - -#data -<!doctype html><script><!- -#errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!-" -| <body> - -#data -<!doctype html><script><!-a -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!-a" -| <body> - -#data -<!doctype html><script><!-- -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<!doctype html><script><!--a -#errors -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--a" -| <body> - -#data -<!doctype html><script><!--< -#errors -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<" -| <body> - -#data -<!doctype html><script><!--<a -#errors -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<a" -| <body> - -#data -<!doctype html><script><!--</ -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--</" -| <body> - -#data -<!doctype html><script><!--</script -#errors -Line: 1 Col: 35 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--</script" -| <body> - -#data -<!doctype html><script><!--</script -#errors -Line: 1 Col: 36 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<!doctype html><script><!--<s -#errors -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<s" -| <body> - -#data -<!doctype html><script><!--<script -#errors -Line: 1 Col: 34 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script" -| <body> - -#data -<!doctype html><script><!--<script -#errors -Line: 1 Col: 35 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script " -| <body> - -#data -<!doctype html><script><!--<script < -#errors -Line: 1 Col: 36 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script <" -| <body> - -#data -<!doctype html><script><!--<script <a -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script <a" -| <body> - -#data -<!doctype html><script><!--<script </ -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </" -| <body> - -#data -<!doctype html><script><!--<script </s -#errors -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </s" -| <body> - -#data -<!doctype html><script><!--<script </script -#errors -Line: 1 Col: 43 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script" -| <body> - -#data -<!doctype html><script><!--<script </scripta -#errors -Line: 1 Col: 44 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </scripta" -| <body> - -#data -<!doctype html><script><!--<script </script -#errors -Line: 1 Col: 44 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script </script> -#errors -Line: 1 Col: 44 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script>" -| <body> - -#data -<!doctype html><script><!--<script </script/ -#errors -Line: 1 Col: 44 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script/" -| <body> - -#data -<!doctype html><script><!--<script </script < -#errors -Line: 1 Col: 45 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script <" -| <body> - -#data -<!doctype html><script><!--<script </script <a -#errors -Line: 1 Col: 46 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script <a" -| <body> - -#data -<!doctype html><script><!--<script </script </ -#errors -Line: 1 Col: 46 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script </" -| <body> - -#data -<!doctype html><script><!--<script </script </script -#errors -Line: 1 Col: 52 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script </script" -| <body> - -#data -<!doctype html><script><!--<script </script </script -#errors -Line: 1 Col: 53 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script </script </script/ -#errors -Line: 1 Col: 53 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script </script </script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script - -#errors -Line: 1 Col: 36 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -" -| <body> - -#data -<!doctype html><script><!--<script -a -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -a" -| <body> - -#data -<!doctype html><script><!--<script -< -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -<" -| <body> - -#data -<!doctype html><script><!--<script -- -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --" -| <body> - -#data -<!doctype html><script><!--<script --a -#errors -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --a" -| <body> - -#data -<!doctype html><script><!--<script --< -#errors -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --<" -| <body> - -#data -<!doctype html><script><!--<script --> -#errors -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script -->< -#errors -Line: 1 Col: 39 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --><" -| <body> - -#data -<!doctype html><script><!--<script --></ -#errors -Line: 1 Col: 40 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --></" -| <body> - -#data -<!doctype html><script><!--<script --></script -#errors -Line: 1 Col: 46 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --></script" -| <body> - -#data -<!doctype html><script><!--<script --></script -#errors -Line: 1 Col: 47 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script --></script/ -#errors -Line: 1 Col: 47 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script --></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script><\/script>--></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script><\/script>-->" -| <body> - -#data -<!doctype html><script><!--<script></scr'+'ipt>--></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt>-->" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>--><!--</script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>--><!--" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>-- ></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>-- >" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>- -></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- ->" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>- - ></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- - >" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>-></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>->" -| <body> - -#data -<!doctype html><script><!--<script>--!></script>X -#errors -Line: 1 Col: 49 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script>--!></script>X" -| <body> - -#data -<!doctype html><script><!--<scr'+'ipt></script>--></script> -#errors -Line: 1 Col: 59 Unexpected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<scr'+'ipt>" -| <body> -| "-->" - -#data -<!doctype html><script><!--<script></scr'+'ipt></script>X -#errors -Line: 1 Col: 57 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt></script>X" -| <body> - -#data -<!doctype html><style><!--<style></style>--></style> -#errors -Line: 1 Col: 52 Unexpected end tag (style). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--<style>" -| <body> -| "-->" - -#data -<!doctype html><style><!--</style>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--" -| <body> -| "X" - -#data -<!doctype html><style><!--...</style>...--></style> -#errors -Line: 1 Col: 51 Unexpected end tag (style). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--..." -| <body> -| "...-->" - -#data -<!doctype html><style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>" -| <body> -| "X" - -#data -<!doctype html><style><!--...<style><!--...--!></style>--></style> -#errors -Line: 1 Col: 66 Unexpected end tag (style). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--...<style><!--...--!>" -| <body> -| "-->" - -#data -<!doctype html><style><!--...</style><!-- --><style>@import ...</style> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--..." -| <!-- --> -| <style> -| "@import ..." -| <body> - -#data -<!doctype html><style>...<style><!--...</style><!-- --></style> -#errors -Line: 1 Col: 63 Unexpected end tag (style). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "...<style><!--..." -| <!-- --> -| <body> - -#data -<!doctype html><style>...<!--[if IE]><style>...</style>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "...<!--[if IE]><style>..." -| <body> -| "X" - -#data -<!doctype html><title><!--<title></title>--></title> -#errors -Line: 1 Col: 52 Unexpected end tag (title). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "<!--<title>" -| <body> -| "-->" - -#data -<!doctype html><title></title></title> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "</title>" -| <body> - -#data -<!doctype html><title>foo/title><link></head><body>X -#errors -Line: 1 Col: 52 Unexpected end of file. Expected end tag (title). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "foo/title><link></head><body>X" -| <body> - -#data -<!doctype html><noscript><!--<noscript></noscript>--></noscript> -#errors -Line: 1 Col: 64 Unexpected end tag (noscript). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noscript> -| "<!--<noscript>" -| <body> -| "-->" - -#data -<!doctype html><noscript><!--</noscript>X<noscript>--></noscript> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noscript> -| "<!--" -| <body> -| "X" -| <noscript> -| "-->" - -#data -<!doctype html><noscript><iframe></noscript>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noscript> -| "<iframe>" -| <body> -| "X" - -#data -<!doctype html><noframes><!--<noframes></noframes>--></noframes> -#errors -Line: 1 Col: 64 Unexpected end tag (noframes). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noframes> -| "<!--<noframes>" -| <body> -| "-->" - -#data -<!doctype html><noframes><body><script><!--...</script></body></noframes></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noframes> -| "<body><script><!--...</script></body>" -| <body> - -#data -<!doctype html><textarea><!--<textarea></textarea>--></textarea> -#errors -Line: 1 Col: 64 Unexpected end tag (textarea). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "<!--<textarea>" -| "-->" - -#data -<!doctype html><textarea></textarea></textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "</textarea>" - -#data -<!doctype html><iframe><!--<iframe></iframe>--></iframe> -#errors -Line: 1 Col: 56 Unexpected end tag (iframe). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <iframe> -| "<!--<iframe>" -| "-->" - -#data -<!doctype html><iframe>...<!--X->...<!--/X->...</iframe> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <iframe> -| "...<!--X->...<!--/X->..." - -#data -<!doctype html><xmp><!--<xmp></xmp>--></xmp> -#errors -Line: 1 Col: 44 Unexpected end tag (xmp). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <xmp> -| "<!--<xmp>" -| "-->" - -#data -<!doctype html><noembed><!--<noembed></noembed>--></noembed> -#errors -Line: 1 Col: 60 Unexpected end tag (noembed). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <noembed> -| "<!--<noembed>" -| "-->" - -#data -<script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 8 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| <body> - -#data -<script>a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 9 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "a" -| <body> - -#data -<script>< -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 9 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<" -| <body> - -#data -<script></ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</" -| <body> - -#data -<script></S -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</S" -| <body> - -#data -<script></SC -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SC" -| <body> - -#data -<script></SCR -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SCR" -| <body> - -#data -<script></SCRI -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SCRI" -| <body> - -#data -<script></SCRIP -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 15 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SCRIP" -| <body> - -#data -<script></SCRIPT -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SCRIPT" -| <body> - -#data -<script></SCRIPT -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 17 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| <body> - -#data -<script></s -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</s" -| <body> - -#data -<script></sc -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</sc" -| <body> - -#data -<script></scr -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</scr" -| <body> - -#data -<script></scri -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</scri" -| <body> - -#data -<script></scrip -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 15 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</scrip" -| <body> - -#data -<script></script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</script" -| <body> - -#data -<script></script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 17 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| <body> - -#data -<script><! -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!" -| <body> - -#data -<script><!a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!a" -| <body> - -#data -<script><!- -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!-" -| <body> - -#data -<script><!-a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!-a" -| <body> - -#data -<script><!-- -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<script><!--a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--a" -| <body> - -#data -<script><!--< -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<" -| <body> - -#data -<script><!--<a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<a" -| <body> - -#data -<script><!--</ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--</" -| <body> - -#data -<script><!--</script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--</script" -| <body> - -#data -<script><!--</script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<script><!--<s -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<s" -| <body> - -#data -<script><!--<script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 19 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script" -| <body> - -#data -<script><!--<script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script " -| <body> - -#data -<script><!--<script < -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script <" -| <body> - -#data -<script><!--<script <a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script <a" -| <body> - -#data -<script><!--<script </ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </" -| <body> - -#data -<script><!--<script </s -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </s" -| <body> - -#data -<script><!--<script </script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script" -| <body> - -#data -<script><!--<script </scripta -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </scripta" -| <body> - -#data -<script><!--<script </script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script </script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script>" -| <body> - -#data -<script><!--<script </script/ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script/" -| <body> - -#data -<script><!--<script </script < -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 30 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script <" -| <body> - -#data -<script><!--<script </script <a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script <a" -| <body> - -#data -<script><!--<script </script </ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script </" -| <body> - -#data -<script><!--<script </script </script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script </script" -| <body> - -#data -<script><!--<script </script </script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script </script </script/ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script </script </script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script - -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -" -| <body> - -#data -<script><!--<script -a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -a" -| <body> - -#data -<script><!--<script -- -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --" -| <body> - -#data -<script><!--<script --a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --a" -| <body> - -#data -<script><!--<script --> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script -->< -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 24 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --><" -| <body> - -#data -<script><!--<script --></ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 25 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --></" -| <body> - -#data -<script><!--<script --></script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --></script" -| <body> - -#data -<script><!--<script --></script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 32 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script --></script/ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 32 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script --></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script><\/script>--></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script><\/script>-->" -| <body> - -#data -<script><!--<script></scr'+'ipt>--></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt>-->" -| <body> - -#data -<script><!--<script></script><script></script></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>" -| <body> - -#data -<script><!--<script></script><script></script>--><!--</script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>--><!--" -| <body> - -#data -<script><!--<script></script><script></script>-- ></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>-- >" -| <body> - -#data -<script><!--<script></script><script></script>- -></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- ->" -| <body> - -#data -<script><!--<script></script><script></script>- - ></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- - >" -| <body> - -#data -<script><!--<script></script><script></script>-></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>->" -| <body> - -#data -<script><!--<script>--!></script>X -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 34 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script>--!></script>X" -| <body> - -#data -<script><!--<scr'+'ipt></script>--></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 44 Unexpected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<scr'+'ipt>" -| <body> -| "-->" - -#data -<script><!--<script></scr'+'ipt></script>X -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 42 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt></script>X" -| <body> - -#data -<style><!--<style></style>--></style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 37 Unexpected end tag (style). -#document -| <html> -| <head> -| <style> -| "<!--<style>" -| <body> -| "-->" - -#data -<style><!--</style>X -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| "<!--" -| <body> -| "X" - -#data -<style><!--...</style>...--></style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 36 Unexpected end tag (style). -#document -| <html> -| <head> -| <style> -| "<!--..." -| <body> -| "...-->" - -#data -<style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>" -| <body> -| "X" - -#data -<style><!--...<style><!--...--!></style>--></style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 51 Unexpected end tag (style). -#document -| <html> -| <head> -| <style> -| "<!--...<style><!--...--!>" -| <body> -| "-->" - -#data -<style><!--...</style><!-- --><style>@import ...</style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| "<!--..." -| <!-- --> -| <style> -| "@import ..." -| <body> - -#data -<style>...<style><!--...</style><!-- --></style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 48 Unexpected end tag (style). -#document -| <html> -| <head> -| <style> -| "...<style><!--..." -| <!-- --> -| <body> - -#data -<style>...<!--[if IE]><style>...</style>X -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| "...<!--[if IE]><style>..." -| <body> -| "X" - -#data -<title><!--<title></title>--></title> -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -Line: 1 Col: 37 Unexpected end tag (title). -#document -| <html> -| <head> -| <title> -| "<!--<title>" -| <body> -| "-->" - -#data -<title></title></title> -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -#document -| <html> -| <head> -| <title> -| "</title>" -| <body> - -#data -<title>foo/title><link></head><body>X -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -Line: 1 Col: 37 Unexpected end of file. Expected end tag (title). -#document -| <html> -| <head> -| <title> -| "foo/title><link></head><body>X" -| <body> - -#data -<noscript><!--<noscript></noscript>--></noscript> -#errors -Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE. -Line: 1 Col: 49 Unexpected end tag (noscript). -#document -| <html> -| <head> -| <noscript> -| "<!--<noscript>" -| <body> -| "-->" - -#data -<noscript><!--</noscript>X<noscript>--></noscript> -#errors -Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE. -#document -| <html> -| <head> -| <noscript> -| "<!--" -| <body> -| "X" -| <noscript> -| "-->" - -#data -<noscript><iframe></noscript>X -#errors -Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE. -#document -| <html> -| <head> -| <noscript> -| "<iframe>" -| <body> -| "X" - -#data -<noframes><!--<noframes></noframes>--></noframes> -#errors -Line: 1 Col: 10 Unexpected start tag (noframes). Expected DOCTYPE. -Line: 1 Col: 49 Unexpected end tag (noframes). -#document -| <html> -| <head> -| <noframes> -| "<!--<noframes>" -| <body> -| "-->" - -#data -<noframes><body><script><!--...</script></body></noframes></html> -#errors -Line: 1 Col: 10 Unexpected start tag (noframes). Expected DOCTYPE. -#document -| <html> -| <head> -| <noframes> -| "<body><script><!--...</script></body>" -| <body> - -#data -<textarea><!--<textarea></textarea>--></textarea> -#errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -Line: 1 Col: 49 Unexpected end tag (textarea). -#document -| <html> -| <head> -| <body> -| <textarea> -| "<!--<textarea>" -| "-->" - -#data -<textarea></textarea></textarea> -#errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <textarea> -| "</textarea>" - -#data -<iframe><!--<iframe></iframe>--></iframe> -#errors -Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. -Line: 1 Col: 41 Unexpected end tag (iframe). -#document -| <html> -| <head> -| <body> -| <iframe> -| "<!--<iframe>" -| "-->" - -#data -<iframe>...<!--X->...<!--/X->...</iframe> -#errors -Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <iframe> -| "...<!--X->...<!--/X->..." - -#data -<xmp><!--<xmp></xmp>--></xmp> -#errors -Line: 1 Col: 5 Unexpected start tag (xmp). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end tag (xmp). -#document -| <html> -| <head> -| <body> -| <xmp> -| "<!--<xmp>" -| "-->" - -#data -<noembed><!--<noembed></noembed>--></noembed> -#errors -Line: 1 Col: 9 Unexpected start tag (noembed). Expected DOCTYPE. -Line: 1 Col: 45 Unexpected end tag (noembed). -#document -| <html> -| <head> -| <body> -| <noembed> -| "<!--<noembed>" -| "-->" - -#data -<!doctype html><table> - -#errors -Line 2 Col 0 Unexpected end of file. Expected table content. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| " -" - -#data -<!doctype html><table><td><span><font></span><span> -#errors -Line 1 Col 26 Unexpected table cell start tag (td) in the table body phase. -Line 1 Col 45 Unexpected end tag (span). -Line 1 Col 51 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <span> -| <font> -| <font> -| <span> - -#data -<!doctype html><form><table></form><form></table></form> -#errors -35: Stray end tag “form”. -41: Start tag “form” seen in “table”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <table> -| <form> diff --git a/src/pkg/html/testdata/webkit/tests17.dat b/src/pkg/html/testdata/webkit/tests17.dat deleted file mode 100644 index 7b555f888d..0000000000 --- a/src/pkg/html/testdata/webkit/tests17.dat +++ /dev/null @@ -1,153 +0,0 @@ -#data -<!doctype html><table><tbody><select><tr> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table><tr><select><td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<!doctype html><table><tr><td><select><td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <select> -| <td> - -#data -<!doctype html><table><tr><th><select><td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <th> -| <select> -| <td> - -#data -<!doctype html><table><caption><select><tr> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <select> -| <tbody> -| <tr> - -#data -<!doctype html><select><tr> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><th> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><tbody> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><thead> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><tfoot> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><caption> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><table><tr></table>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| "a" diff --git a/src/pkg/html/testdata/webkit/tests18.dat b/src/pkg/html/testdata/webkit/tests18.dat deleted file mode 100644 index 680e1f068a..0000000000 --- a/src/pkg/html/testdata/webkit/tests18.dat +++ /dev/null @@ -1,269 +0,0 @@ -#data -<!doctype html><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" - -#data -<!doctype html><table><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" -| <table> - -#data -<!doctype html><table><tbody><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" -| <table> -| <tbody> - -#data -<!doctype html><table><tbody><tr><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table><tbody><tr><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table><td><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <plaintext> -| "</plaintext>" - -#data -<!doctype html><table><caption><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <plaintext> -| "</plaintext>" - -#data -<!doctype html><table><tr><style></script></style>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "abc" -| <table> -| <tbody> -| <tr> -| <style> -| "</script>" - -#data -<!doctype html><table><tr><script></style></script>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "abc" -| <table> -| <tbody> -| <tr> -| <script> -| "</style>" - -#data -<!doctype html><table><caption><style></script></style>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <style> -| "</script>" -| "abc" - -#data -<!doctype html><table><td><style></script></style>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <style> -| "</script>" -| "abc" - -#data -<!doctype html><select><script></style></script>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <script> -| "</style>" -| "abc" - -#data -<!doctype html><table><select><script></style></script>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <script> -| "</style>" -| "abc" -| <table> - -#data -<!doctype html><table><tr><select><script></style></script>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <script> -| "</style>" -| "abc" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><frameset></frameset><noframes>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" - -#data -<!doctype html><frameset></frameset><noframes>abc</noframes><!--abc--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" -| <!-- abc --> - -#data -<!doctype html><frameset></frameset></html><noframes>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" - -#data -<!doctype html><frameset></frameset></html><noframes>abc</noframes><!--abc--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" -| <!-- abc --> - -#data -<!doctype html><table><tr></tbody><tfoot> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <tfoot> - -#data -<!doctype html><table><td><svg></svg>abc<td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <svg svg> -| "abc" -| <td> diff --git a/src/pkg/html/testdata/webkit/tests19.dat b/src/pkg/html/testdata/webkit/tests19.dat deleted file mode 100644 index 06222f5b9d..0000000000 --- a/src/pkg/html/testdata/webkit/tests19.dat +++ /dev/null @@ -1,1220 +0,0 @@ -#data -<!doctype html><math><mn DefinitionUrl="foo"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mn> -| definitionURL="foo" - -#data -<!doctype html><html></p><!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <!-- foo --> -| <head> -| <body> - -#data -<!doctype html><head></head></p><!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <!-- foo --> -| <body> - -#data -<!doctype html><body><p><pre> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <pre> - -#data -<!doctype html><body><p><listing> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <listing> - -#data -<!doctype html><p><plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <plaintext> - -#data -<!doctype html><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <h1> - -#data -<!doctype html><form><isindex> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> - -#data -<!doctype html><isindex action="POST"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| action="POST" -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| <hr> - -#data -<!doctype html><isindex prompt="this is isindex"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "this is isindex" -| <input> -| name="isindex" -| <hr> - -#data -<!doctype html><isindex type="hidden"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| type="hidden" -| <hr> - -#data -<!doctype html><isindex name="foo"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| <hr> - -#data -<!doctype html><ruby><p><rp> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <p> -| <rp> - -#data -<!doctype html><ruby><div><span><rp> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <span> -| <rp> - -#data -<!doctype html><ruby><div><p><rp> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <p> -| <rp> - -#data -<!doctype html><ruby><p><rt> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <p> -| <rt> - -#data -<!doctype html><ruby><div><span><rt> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <span> -| <rt> - -#data -<!doctype html><ruby><div><p><rt> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <p> -| <rt> - -#data -<!doctype html><math/><foo> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <foo> - -#data -<!doctype html><svg/><foo> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <foo> - -#data -<!doctype html><div></body><!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> -| <!-- foo --> - -#data -<!doctype html><h1><div><h3><span></h1>foo -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <h1> -| <div> -| <h3> -| <span> -| "foo" - -#data -<!doctype html><p></h3>foo -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| "foo" - -#data -<!doctype html><h3><li>abc</h2>foo -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <h3> -| <li> -| "abc" -| "foo" - -#data -<!doctype html><table>abc<!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "abc" -| <table> -| <!-- foo --> - -#data -<!doctype html><table> <!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| " " -| <!-- foo --> - -#data -<!doctype html><table> b <!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " b " -| <table> -| <!-- foo --> - -#data -<!doctype html><select><option><option> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> -| <option> - -#data -<!doctype html><select><option></optgroup> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> - -#data -<!doctype html><select><option></optgroup> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> - -#data -<!doctype html><p><math><mi><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mi> -| <p> -| <h1> - -#data -<!doctype html><p><math><mo><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mo> -| <p> -| <h1> - -#data -<!doctype html><p><math><mn><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mn> -| <p> -| <h1> - -#data -<!doctype html><p><math><ms><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math ms> -| <p> -| <h1> - -#data -<!doctype html><p><math><mtext><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mtext> -| <p> -| <h1> - -#data -<!doctype html><frameset></noframes> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><html c=d><body></html><html a=b> -#errors -#document -| <!DOCTYPE html> -| <html> -| a="b" -| c="d" -| <head> -| <body> - -#data -<!doctype html><html c=d><frameset></frameset></html><html a=b> -#errors -#document -| <!DOCTYPE html> -| <html> -| a="b" -| c="d" -| <head> -| <frameset> - -#data -<!doctype html><html><frameset></frameset></html><!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <!-- foo --> - -#data -<!doctype html><html><frameset></frameset></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| " " - -#data -<!doctype html><html><frameset></frameset></html>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><html><frameset></frameset></html><p> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><html><frameset></frameset></html></p> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<html><frameset></frameset></html><!doctype html> -#errors -#document -| <html> -| <head> -| <frameset> - -#data -<!doctype html><body><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<!doctype html><p><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><p>a<frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| "a" - -#data -<!doctype html><p> <frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><pre><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> - -#data -<!doctype html><listing><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <listing> - -#data -<!doctype html><li><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <li> - -#data -<!doctype html><dd><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <dd> - -#data -<!doctype html><dt><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <dt> - -#data -<!doctype html><button><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <button> - -#data -<!doctype html><applet><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <applet> - -#data -<!doctype html><marquee><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <marquee> - -#data -<!doctype html><object><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <object> - -#data -<!doctype html><table><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> - -#data -<!doctype html><area><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <area> - -#data -<!doctype html><basefont><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <basefont> -| <frameset> - -#data -<!doctype html><bgsound><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <bgsound> -| <frameset> - -#data -<!doctype html><br><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <br> - -#data -<!doctype html><embed><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <embed> - -#data -<!doctype html><img><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <img> - -#data -<!doctype html><input><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <input> - -#data -<!doctype html><keygen><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <keygen> - -#data -<!doctype html><wbr><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <wbr> - -#data -<!doctype html><hr><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <hr> - -#data -<!doctype html><textarea></textarea><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> - -#data -<!doctype html><xmp></xmp><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <xmp> - -#data -<!doctype html><iframe></iframe><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <iframe> - -#data -<!doctype html><select></select><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><svg></svg><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><math></math><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><svg><foreignObject><div> <frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><svg>a</svg><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| "a" - -#data -<!doctype html><svg> </svg><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<html>aaa<frameset></frameset> -#errors -#document -| <html> -| <head> -| <body> -| "aaa" - -#data -<html> a <frameset></frameset> -#errors -#document -| <html> -| <head> -| <body> -| "a " - -#data -<!doctype html><div><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><div><body><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> - -#data -<!doctype html><p><math></p>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| "a" - -#data -<!doctype html><p><math><mn><span></p>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mn> -| <span> -| <p> -| "a" - -#data -<!doctype html><math></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> - -#data -<!doctype html><meta charset="ascii"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <meta> -| charset="ascii" -| <body> - -#data -<!doctype html><meta http-equiv="content-type" content="text/html;charset=ascii"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <meta> -| content="text/html;charset=ascii" -| http-equiv="content-type" -| <body> - -#data -<!doctype html><head><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset="utf8"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <!-- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa --> -| <meta> -| charset="utf8" -| <body> - -#data -<!doctype html><html a=b><head></head><html c=d> -#errors -#document -| <!DOCTYPE html> -| <html> -| a="b" -| c="d" -| <head> -| <body> - -#data -<!doctype html><image/> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <img> - -#data -<!doctype html>a<i>b<table>c<b>d</i>e</b>f -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "a" -| <i> -| "bc" -| <b> -| "de" -| "f" -| <table> - -#data -<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <b> -| <i> -| "c" -| <a> -| "d" -| <a> -| "e" -| <a> -| "f" -| <table> - -#data -<!doctype html><i>a<b>b<div>c<a>d</i>e</b>f -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <b> -| <i> -| "c" -| <a> -| "d" -| <a> -| "e" -| <a> -| "f" - -#data -<!doctype html><table><i>a<b>b<div>c</i> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <i> -| "c" -| <table> - -#data -<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <b> -| <i> -| "c" -| <a> -| "d" -| <a> -| "e" -| <a> -| "f" -| <table> - -#data -<!doctype html><table><i>a<div>b<tr>c<b>d</i>e -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <div> -| "b" -| <i> -| "c" -| <b> -| "d" -| <b> -| "e" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table><td><table><i>a<div>b<b>c</i>d -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <i> -| "a" -| <div> -| <i> -| "b" -| <b> -| "c" -| <b> -| "d" -| <table> - -#data -<!doctype html><body><bgsound> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <bgsound> - -#data -<!doctype html><body><basefont> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <basefont> - -#data -<!doctype html><a><b></a><basefont> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <a> -| <b> -| <basefont> - -#data -<!doctype html><a><b></a><bgsound> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <a> -| <b> -| <bgsound> - -#data -<!doctype html><figcaption><article></figcaption>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <figcaption> -| <article> -| "a" - -#data -<!doctype html><summary><article></summary>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <summary> -| <article> -| "a" - -#data -<!doctype html><p><a><plaintext>b -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <a> -| <plaintext> -| <a> -| "b" diff --git a/src/pkg/html/testdata/webkit/tests2.dat b/src/pkg/html/testdata/webkit/tests2.dat deleted file mode 100644 index 60d8592216..0000000000 --- a/src/pkg/html/testdata/webkit/tests2.dat +++ /dev/null @@ -1,763 +0,0 @@ -#data -<!DOCTYPE html>Test -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "Test" - -#data -<textarea>test</div>test -#errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -Line: 1 Col: 24 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <textarea> -| "test</div>test" - -#data -<table><td> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 11 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<table><td>test</tbody></table> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "test" - -#data -<frame>test -#errors -Line: 1 Col: 7 Unexpected start tag (frame). Expected DOCTYPE. -Line: 1 Col: 7 Unexpected start tag frame. Ignored. -#document -| <html> -| <head> -| <body> -| "test" - -#data -<!DOCTYPE html><frameset>test -#errors -Line: 1 Col: 29 Unepxected characters in the frameset phase. Characters ignored. -Line: 1 Col: 29 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><frameset><!DOCTYPE html> -#errors -Line: 1 Col: 40 Unexpected DOCTYPE. Ignored. -Line: 1 Col: 40 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><font><p><b>test</font> -#errors -Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <font> -| <p> -| <font> -| <b> -| "test" - -#data -<!DOCTYPE html><dt><div><dd> -#errors -Line: 1 Col: 28 Missing end tag (div, dt). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <dt> -| <div> -| <dd> - -#data -<script></x -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</x" -| <body> - -#data -<table><plaintext><td> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 18 Unexpected start tag (plaintext) in table context caused voodoo mode. -Line: 1 Col: 22 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <plaintext> -| "<td>" -| <table> - -#data -<plaintext></plaintext> -#errors -Line: 1 Col: 11 Unexpected start tag (plaintext). Expected DOCTYPE. -Line: 1 Col: 23 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" - -#data -<!DOCTYPE html><table><tr>TEST -#errors -Line: 1 Col: 30 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 30 Unexpected end of file. Expected table content. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "TEST" -| <table> -| <tbody> -| <tr> - -#data -<!DOCTYPE html><body t1=1><body t2=2><body t3=3 t4=4> -#errors -Line: 1 Col: 37 Unexpected start tag (body). -Line: 1 Col: 53 Unexpected start tag (body). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| t1="1" -| t2="2" -| t3="3" -| t4="4" - -#data -</b test -#errors -Line: 1 Col: 8 Unexpected end of file in attribute name. -Line: 1 Col: 8 End tag contains unexpected attributes. -Line: 1 Col: 8 Unexpected end tag (b). Expected DOCTYPE. -Line: 1 Col: 8 Unexpected end tag (b) after the (implied) root element. -#document -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html></b test<b &=&>X -#errors -Line: 1 Col: 32 Named entity didn't end with ';'. -Line: 1 Col: 33 End tag contains unexpected attributes. -Line: 1 Col: 33 Unexpected end tag (b) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" - -#data -<!doctypehtml><scrIPt type=text/x-foobar;baz>X</SCRipt -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -Line: 1 Col: 54 Unexpected end of file in the tag name. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| type="text/x-foobar;baz" -| "X</SCRipt" -| <body> - -#data -& -#errors -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&" - -#data -&# -#errors -Line: 1 Col: 1 Numeric entity expected. Got end of file instead. -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&#" - -#data -&#X -#errors -Line: 1 Col: 3 Numeric entity expected but none found. -Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&#X" - -#data -&#x -#errors -Line: 1 Col: 3 Numeric entity expected but none found. -Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&#x" - -#data -- -#errors -Line: 1 Col: 4 Numeric entity didn't end with ';'. -Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "-" - -#data -&x-test -#errors -Line: 1 Col: 1 Named entity expected. Got none. -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&x-test" - -#data -<!doctypehtml><p><li> -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <li> - -#data -<!doctypehtml><p><dt> -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <dt> - -#data -<!doctypehtml><p><dd> -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <dd> - -#data -<!doctypehtml><p><form> -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -Line: 1 Col: 23 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <form> - -#data -<!DOCTYPE html><p></P>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| "X" - -#data -& -#errors -Line: 1 Col: 4 Named entity didn't end with ';'. -Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&" - -#data -&AMp; -#errors -Line: 1 Col: 1 Named entity expected. Got none. -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&AMp;" - -#data -<!DOCTYPE html><html><head></head><body><thisISasillyTESTelementNameToMakeSureCrazyTagNamesArePARSEDcorrectLY> -#errors -Line: 1 Col: 110 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly> - -#data -<!DOCTYPE html>X</body>X -#errors -Line: 1 Col: 24 Unexpected non-space characters in the after body phase. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "XX" - -#data -<!DOCTYPE html><!-- X -#errors -Line: 1 Col: 21 Unexpected end of file in comment. -#document -| <!DOCTYPE html> -| <!-- X --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><table><caption>test TEST</caption><td>test -#errors -Line: 1 Col: 54 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 58 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| "test TEST" -| <tbody> -| <tr> -| <td> -| "test" - -#data -<!DOCTYPE html><select><option><optgroup> -#errors -Line: 1 Col: 41 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> -| <optgroup> - -#data -<!DOCTYPE html><select><optgroup><option></optgroup><option><select><option> -#errors -Line: 1 Col: 68 Unexpected select start tag in the select phase treated as select end tag. -Line: 1 Col: 76 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <optgroup> -| <option> -| <option> -| <option> - -#data -<!DOCTYPE html><select><optgroup><option><optgroup> -#errors -Line: 1 Col: 51 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <optgroup> -| <option> -| <optgroup> - -#data -<!DOCTYPE html><datalist><option>foo</datalist>bar -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <datalist> -| <option> -| "foo" -| "bar" - -#data -<!DOCTYPE html><font><input><input></font> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <font> -| <input> -| <input> - -#data -<!DOCTYPE html><!-- XXX - XXX --> -#errors -#document -| <!DOCTYPE html> -| <!-- XXX - XXX --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><!-- XXX - XXX -#errors -Line: 1 Col: 29 Unexpected end of file in comment (-) -#document -| <!DOCTYPE html> -| <!-- XXX - XXX --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><!-- XXX - XXX - XXX --> -#errors -#document -| <!DOCTYPE html> -| <!-- XXX - XXX - XXX --> -| <html> -| <head> -| <body> - -#data -<isindex test=x name=x> -#errors -Line: 1 Col: 23 Unexpected start tag (isindex). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected start tag isindex. Don't use it! -#document -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| test="x" -| <hr> - -#data -test -test -#errors -Line: 2 Col: 4 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "test -test" - -#data -<!DOCTYPE html><body><title>test</body></title> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <title> -| "test</body>" - -#data -<!DOCTYPE html><body><title>X</title><meta name=z><link rel=foo><style> -x { content:"</style" } </style> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <title> -| "X" -| <meta> -| name="z" -| <link> -| rel="foo" -| <style> -| " -x { content:"</style" } " - -#data -<!DOCTYPE html><select><optgroup></optgroup></select> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <optgroup> - -#data - - -#errors -Line: 2 Col: 1 Unexpected End of file. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html> <html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><script> -</script> <title>x</title> </head> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| " -" -| " " -| <title> -| "x" -| " " -| <body> - -#data -<!DOCTYPE html><html><body><html id=x> -#errors -Line: 1 Col: 38 html needs to be the first start tag. -#document -| <!DOCTYPE html> -| <html> -| id="x" -| <head> -| <body> - -#data -<!DOCTYPE html>X</body><html id="x"> -#errors -Line: 1 Col: 36 Unexpected start tag token (html) in the after body phase. -Line: 1 Col: 36 html needs to be the first start tag. -#document -| <!DOCTYPE html> -| <html> -| id="x" -| <head> -| <body> -| "X" - -#data -<!DOCTYPE html><head><html id=x> -#errors -Line: 1 Col: 32 html needs to be the first start tag. -#document -| <!DOCTYPE html> -| <html> -| id="x" -| <head> -| <body> - -#data -<!DOCTYPE html>X</html>X -#errors -Line: 1 Col: 24 Unexpected non-space characters in the after body phase. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "XX" - -#data -<!DOCTYPE html>X</html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X " - -#data -<!DOCTYPE html>X</html><p>X -#errors -Line: 1 Col: 26 Unexpected start tag (p). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <p> -| "X" - -#data -<!DOCTYPE html>X<p/x/y/z> -#errors -Line: 1 Col: 19 Expected a > after the /. -Line: 1 Col: 21 Solidus (/) incorrectly placed in tag. -Line: 1 Col: 23 Solidus (/) incorrectly placed in tag. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <p> -| x="" -| y="" -| z="" - -#data -<!DOCTYPE html><!--x-- -#errors -Line: 1 Col: 22 Unexpected end of file in comment (--). -#document -| <!DOCTYPE html> -| <!-- x --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><table><tr><td></p></table> -#errors -Line: 1 Col: 34 Unexpected end tag (p). Ignored. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <p> - -#data -<!DOCTYPE <!DOCTYPE HTML>><!--<!--x-->--> -#errors -Line: 1 Col: 20 Expected space or '>'. Got '' -Line: 1 Col: 25 Erroneous DOCTYPE. -Line: 1 Col: 35 Unexpected character in comment found. -#document -| <!DOCTYPE <!doctype> -| <html> -| <head> -| <body> -| ">" -| <!-- <!--x --> -| "-->" - -#data -<!doctype html><div><form></form><div></div></div> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> -| <form> -| <div> diff --git a/src/pkg/html/testdata/webkit/tests20.dat b/src/pkg/html/testdata/webkit/tests20.dat deleted file mode 100644 index 6bd825608f..0000000000 --- a/src/pkg/html/testdata/webkit/tests20.dat +++ /dev/null @@ -1,455 +0,0 @@ -#data -<!doctype html><p><button><button> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <button> - -#data -<!doctype html><p><button><address> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <address> - -#data -<!doctype html><p><button><blockquote> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <blockquote> - -#data -<!doctype html><p><button><menu> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <menu> - -#data -<!doctype html><p><button><p> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <p> - -#data -<!doctype html><p><button><ul> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <ul> - -#data -<!doctype html><p><button><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <h1> - -#data -<!doctype html><p><button><h6> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <h6> - -#data -<!doctype html><p><button><listing> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <listing> - -#data -<!doctype html><p><button><pre> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <pre> - -#data -<!doctype html><p><button><form> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <form> - -#data -<!doctype html><p><button><li> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <li> - -#data -<!doctype html><p><button><dd> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <dd> - -#data -<!doctype html><p><button><dt> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <dt> - -#data -<!doctype html><p><button><plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <plaintext> - -#data -<!doctype html><p><button><table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <table> - -#data -<!doctype html><p><button><hr> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <hr> - -#data -<!doctype html><p><button><xmp> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <xmp> - -#data -<!doctype html><p><button></p> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <p> - -#data -<!doctype html><address><button></address>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <address> -| <button> -| "a" - -#data -<!doctype html><address><button></address>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <address> -| <button> -| "a" - -#data -<p><table></p> -#errors -#document -| <html> -| <head> -| <body> -| <p> -| <p> -| <table> - -#data -<!doctype html><svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> - -#data -<!doctype html><p><figcaption> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <figcaption> - -#data -<!doctype html><p><summary> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <summary> - -#data -<!doctype html><form><table><form> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <table> - -#data -<!doctype html><table><form><form> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <form> - -#data -<!doctype html><table><form></table><form> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <form> - -#data -<!doctype html><svg><foreignObject><p> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg foreignObject> -| <p> - -#data -<!doctype html><svg><title>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg title> -| "abc" - -#data -<option><span><option> -#errors -#document -| <html> -| <head> -| <body> -| <option> -| <span> -| <option> - -#data -<option><option> -#errors -#document -| <html> -| <head> -| <body> -| <option> -| <option> - -#data -<math><annotation-xml><div> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| <div> - -#data -<math><annotation-xml encoding="application/svg+xml"><div> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| encoding="application/svg+xml" -| <div> - -#data -<math><annotation-xml encoding="application/xhtml+xml"><div> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| encoding="application/xhtml+xml" -| <div> - -#data -<math><annotation-xml encoding="aPPlication/xhtmL+xMl"><div> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| encoding="aPPlication/xhtmL+xMl" -| <div> - -#data -<math><annotation-xml encoding="text/html"><div> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| encoding="text/html" -| <div> - -#data -<math><annotation-xml encoding="Text/htmL"><div> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| encoding="Text/htmL" -| <div> - -#data -<math><annotation-xml encoding=" text/html "><div> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| encoding=" text/html " -| <div> diff --git a/src/pkg/html/testdata/webkit/tests21.dat b/src/pkg/html/testdata/webkit/tests21.dat deleted file mode 100644 index 1260ec03e2..0000000000 --- a/src/pkg/html/testdata/webkit/tests21.dat +++ /dev/null @@ -1,221 +0,0 @@ -#data -<svg><![CDATA[foo]]> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "foo" - -#data -<math><![CDATA[foo]]> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| "foo" - -#data -<div><![CDATA[foo]]> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| <!-- [CDATA[foo]] --> - -#data -<svg><![CDATA[foo -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "foo" - -#data -<svg><![CDATA[foo -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "foo" - -#data -<svg><![CDATA[ -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> - -#data -<svg><![CDATA[]]> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> - -#data -<svg><![CDATA[]] >]]> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "]] >" - -#data -<svg><![CDATA[]] >]]> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "]] >" - -#data -<svg><![CDATA[]] -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "]]" - -#data -<svg><![CDATA[] -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "]" - -#data -<svg><![CDATA[]>a -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "]>a" - -#data -<svg><foreignObject><div><![CDATA[foo]]> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| <svg foreignObject> -| <div> -| <!-- [CDATA[foo]] --> - -#data -<svg><![CDATA[<svg>]]> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<svg>" - -#data -<svg><![CDATA[</svg>a]]> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "</svg>a" - -#data -<svg><![CDATA[<svg>a -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<svg>a" - -#data -<svg><![CDATA[</svg>a -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "</svg>a" - -#data -<svg><![CDATA[<svg>]]><path> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<svg>" -| <svg path> - -#data -<svg><![CDATA[<svg>]]></path> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<svg>" - -#data -<svg><![CDATA[<svg>]]><!--path--> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<svg>" -| <!-- path --> - -#data -<svg><![CDATA[<svg>]]>path -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<svg>path" - -#data -<svg><![CDATA[<!--svg-->]]> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<!--svg-->" diff --git a/src/pkg/html/testdata/webkit/tests22.dat b/src/pkg/html/testdata/webkit/tests22.dat deleted file mode 100644 index aab27b2e90..0000000000 --- a/src/pkg/html/testdata/webkit/tests22.dat +++ /dev/null @@ -1,157 +0,0 @@ -#data -<a><b><big><em><strong><div>X</a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <b> -| <big> -| <em> -| <strong> -| <big> -| <em> -| <strong> -| <div> -| <a> -| "X" - -#data -<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8>A</a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <b> -| <b> -| <div> -| id="1" -| <a> -| <div> -| id="2" -| <a> -| <div> -| id="3" -| <a> -| <div> -| id="4" -| <a> -| <div> -| id="5" -| <a> -| <div> -| id="6" -| <a> -| <div> -| id="7" -| <a> -| <div> -| id="8" -| <a> -| "A" - -#data -<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9>A</a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <b> -| <b> -| <div> -| id="1" -| <a> -| <div> -| id="2" -| <a> -| <div> -| id="3" -| <a> -| <div> -| id="4" -| <a> -| <div> -| id="5" -| <a> -| <div> -| id="6" -| <a> -| <div> -| id="7" -| <a> -| <div> -| id="8" -| <a> -| <div> -| id="9" -| "A" - -#data -<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9><div id=10>A</a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <b> -| <b> -| <div> -| id="1" -| <a> -| <div> -| id="2" -| <a> -| <div> -| id="3" -| <a> -| <div> -| id="4" -| <a> -| <div> -| id="5" -| <a> -| <div> -| id="6" -| <a> -| <div> -| id="7" -| <a> -| <div> -| id="8" -| <a> -| <div> -| id="9" -| <div> -| id="10" -| "A" - -#data -<cite><b><cite><i><cite><i><cite><i><div>X</b>TEST -#errors -Line: 1 Col: 6 Unexpected start tag (cite). Expected DOCTYPE. -Line: 1 Col: 46 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 50 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <cite> -| <b> -| <cite> -| <i> -| <cite> -| <i> -| <cite> -| <i> -| <i> -| <i> -| <div> -| <b> -| "X" -| "TEST" diff --git a/src/pkg/html/testdata/webkit/tests23.dat b/src/pkg/html/testdata/webkit/tests23.dat deleted file mode 100644 index 34d2a73f1c..0000000000 --- a/src/pkg/html/testdata/webkit/tests23.dat +++ /dev/null @@ -1,155 +0,0 @@ -#data -<p><font size=4><font color=red><font size=4><font size=4><font size=4><font size=4><font size=4><font color=red><p>X -#errors -3: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. -116: Unclosed elements. -117: End of file seen and there were open elements. -#document -| <html> -| <head> -| <body> -| <p> -| <font> -| size="4" -| <font> -| color="red" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| color="red" -| <p> -| <font> -| color="red" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| color="red" -| "X" - -#data -<p><font size=4><font size=4><font size=4><font size=4><p>X -#errors -#document -| <html> -| <head> -| <body> -| <p> -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <p> -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| "X" - -#data -<p><font size=4><font size=4><font size=4><font size="5"><font size=4><p>X -#errors -#document -| <html> -| <head> -| <body> -| <p> -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="5" -| <font> -| size="4" -| <p> -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="5" -| <font> -| size="4" -| "X" - -#data -<p><font size=4 id=a><font size=4 id=b><font size=4><font size=4><p>X -#errors -#document -| <html> -| <head> -| <body> -| <p> -| <font> -| id="a" -| size="4" -| <font> -| id="b" -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <p> -| <font> -| id="a" -| size="4" -| <font> -| id="b" -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| "X" - -#data -<p><b id=a><b id=a><b id=a><b><object><b id=a><b id=a>X</object><p>Y -#errors -#document -| <html> -| <head> -| <body> -| <p> -| <b> -| id="a" -| <b> -| id="a" -| <b> -| id="a" -| <b> -| <object> -| <b> -| id="a" -| <b> -| id="a" -| "X" -| <p> -| <b> -| id="a" -| <b> -| id="a" -| <b> -| id="a" -| <b> -| "Y" diff --git a/src/pkg/html/testdata/webkit/tests24.dat b/src/pkg/html/testdata/webkit/tests24.dat deleted file mode 100644 index f6dc7eb48a..0000000000 --- a/src/pkg/html/testdata/webkit/tests24.dat +++ /dev/null @@ -1,79 +0,0 @@ -#data -<!DOCTYPE html>≂̸ -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "≂̸" - -#data -<!DOCTYPE html>≂̸A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "≂̸A" - -#data -<!DOCTYPE html>   -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " " - -#data -<!DOCTYPE html>  A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " A" - -#data -<!DOCTYPE html>⊂⃒ -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "⊂⃒" - -#data -<!DOCTYPE html>⊂⃒A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "⊂⃒A" - -#data -<!DOCTYPE html>𝔾 -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "𝔾" - -#data -<!DOCTYPE html>𝔾A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "𝔾A" diff --git a/src/pkg/html/testdata/webkit/tests25.dat b/src/pkg/html/testdata/webkit/tests25.dat deleted file mode 100644 index 00de7295b7..0000000000 --- a/src/pkg/html/testdata/webkit/tests25.dat +++ /dev/null @@ -1,219 +0,0 @@ -#data -<!DOCTYPE html><body><foo>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <foo> -| "A" - -#data -<!DOCTYPE html><body><area>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <area> -| "A" - -#data -<!DOCTYPE html><body><base>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <base> -| "A" - -#data -<!DOCTYPE html><body><basefont>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <basefont> -| "A" - -#data -<!DOCTYPE html><body><bgsound>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <bgsound> -| "A" - -#data -<!DOCTYPE html><body><br>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <br> -| "A" - -#data -<!DOCTYPE html><body><col>A -#errors -26: Stray start tag “col”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "A" - -#data -<!DOCTYPE html><body><command>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <command> -| "A" - -#data -<!DOCTYPE html><body><embed>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <embed> -| "A" - -#data -<!DOCTYPE html><body><frame>A -#errors -26: Stray start tag “frame”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "A" - -#data -<!DOCTYPE html><body><hr>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <hr> -| "A" - -#data -<!DOCTYPE html><body><img>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <img> -| "A" - -#data -<!DOCTYPE html><body><input>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <input> -| "A" - -#data -<!DOCTYPE html><body><keygen>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <keygen> -| "A" - -#data -<!DOCTYPE html><body><link>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <link> -| "A" - -#data -<!DOCTYPE html><body><meta>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <meta> -| "A" - -#data -<!DOCTYPE html><body><param>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <param> -| "A" - -#data -<!DOCTYPE html><body><source>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <source> -| "A" - -#data -<!DOCTYPE html><body><track>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <track> -| "A" - -#data -<!DOCTYPE html><body><wbr>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <wbr> -| "A" diff --git a/src/pkg/html/testdata/webkit/tests26.dat b/src/pkg/html/testdata/webkit/tests26.dat deleted file mode 100644 index da128e7794..0000000000 --- a/src/pkg/html/testdata/webkit/tests26.dat +++ /dev/null @@ -1,195 +0,0 @@ -#data -<!DOCTYPE html><body><a href='#1'><nobr>1<nobr></a><br><a href='#2'><nobr>2<nobr></a><br><a href='#3'><nobr>3<nobr></a> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <a> -| href="#1" -| <nobr> -| "1" -| <nobr> -| <nobr> -| <br> -| <a> -| href="#2" -| <a> -| href="#2" -| <nobr> -| "2" -| <nobr> -| <nobr> -| <br> -| <a> -| href="#3" -| <a> -| href="#3" -| <nobr> -| "3" -| <nobr> - -#data -<!DOCTYPE html><body><b><nobr>1<nobr></b><i><nobr>2<nobr></i>3 -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <nobr> -| <nobr> -| <i> -| <i> -| <nobr> -| "2" -| <nobr> -| <nobr> -| "3" - -#data -<!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3 -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <nobr> -| <i> -| <i> -| <nobr> -| "2" -| <nobr> -| <nobr> -| "3" -| <table> - -#data -<!DOCTYPE html><body><b><nobr>1<table><tr><td><nobr></b><i><nobr>2<nobr></i>3 -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <table> -| <tbody> -| <tr> -| <td> -| <nobr> -| <i> -| <i> -| <nobr> -| "2" -| <nobr> -| <nobr> -| "3" - -#data -<!DOCTYPE html><body><b><nobr>1<div><nobr></b><i><nobr>2<nobr></i>3 -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <div> -| <b> -| <nobr> -| <nobr> -| <nobr> -| <i> -| <i> -| <nobr> -| "2" -| <nobr> -| <nobr> -| "3" - -#data -<!DOCTYPE html><body><b><nobr>1<nobr></b><div><i><nobr>2<nobr></i>3 -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <nobr> -| <div> -| <nobr> -| <i> -| <i> -| <nobr> -| "2" -| <nobr> -| <nobr> -| "3" - -#data -<!DOCTYPE html><body><b><nobr>1<nobr><ins></b><i><nobr> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <nobr> -| <ins> -| <nobr> -| <i> -| <i> -| <nobr> - -#data -<!DOCTYPE html><body><b><nobr>1<ins><nobr></b><i>2 -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <ins> -| <nobr> -| <nobr> -| <i> -| "2" - -#data -<!DOCTYPE html><body><b>1<nobr></b><i><nobr>2</i> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| "1" -| <nobr> -| <nobr> -| <i> -| <i> -| <nobr> -| "2" diff --git a/src/pkg/html/testdata/webkit/tests3.dat b/src/pkg/html/testdata/webkit/tests3.dat deleted file mode 100644 index 38dc501be3..0000000000 --- a/src/pkg/html/testdata/webkit/tests3.dat +++ /dev/null @@ -1,305 +0,0 @@ -#data -<head></head><style></style> -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected start tag (style) that can be in head. Moved. -#document -| <html> -| <head> -| <style> -| <body> - -#data -<head></head><script></script> -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected start tag (script) that can be in head. Moved. -#document -| <html> -| <head> -| <script> -| <body> - -#data -<head></head><!-- --><style></style><!-- --><script></script> -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 28 Unexpected start tag (style) that can be in head. Moved. -#document -| <html> -| <head> -| <style> -| <script> -| <!-- --> -| <!-- --> -| <body> - -#data -<head></head><!-- -->x<style></style><!-- --><script></script> -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -#document -| <html> -| <head> -| <!-- --> -| <body> -| "x" -| <style> -| <!-- --> -| <script> - -#data -<!DOCTYPE html><html><head></head><body><pre> -</pre></body></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> - -#data -<!DOCTYPE html><html><head></head><body><pre> -foo</pre></body></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| "foo" - -#data -<!DOCTYPE html><html><head></head><body><pre> - -foo</pre></body></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| " -foo" - -#data -<!DOCTYPE html><html><head></head><body><pre> -foo -</pre></body></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| "foo -" - -#data -<!DOCTYPE html><html><head></head><body><pre>x</pre><span> -</span></body></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| "x" -| <span> -| " -" - -#data -<!DOCTYPE html><html><head></head><body><pre>x -y</pre></body></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| "x -y" - -#data -<!DOCTYPE html><html><head></head><body><pre>x<div> -y</pre></body></html> -#errors -Line: 2 Col: 7 End tag (pre) seen too early. Expected other end tag. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| "x" -| <div> -| " -y" - -#data -<!DOCTYPE html><pre>

A</pre> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| " -A" - -#data -<!DOCTYPE html><HTML><META><HEAD></HEAD></HTML> -#errors -Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <meta> -| <body> - -#data -<!DOCTYPE html><HTML><HEAD><head></HEAD></HTML> -#errors -Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<textarea>foo<span>bar</span><i>baz -#errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -Line: 1 Col: 35 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <textarea> -| "foo<span>bar</span><i>baz" - -#data -<title>foo<span>bar</em><i>baz -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -Line: 1 Col: 30 Unexpected end of file. Expected end tag (title). -#document -| <html> -| <head> -| <title> -| "foo<span>bar</em><i>baz" -| <body> - -#data -<!DOCTYPE html><textarea> -</textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> - -#data -<!DOCTYPE html><textarea> -foo</textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "foo" - -#data -<!DOCTYPE html><textarea> - -foo</textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| " -foo" - -#data -<!DOCTYPE html><html><head></head><body><ul><li><div><p><li></ul></body></html> -#errors -Line: 1 Col: 60 Missing end tag (div, li). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ul> -| <li> -| <div> -| <p> -| <li> - -#data -<!doctype html><nobr><nobr><nobr> -#errors -Line: 1 Col: 27 Unexpected start tag (nobr) implies end tag (nobr). -Line: 1 Col: 33 Unexpected start tag (nobr) implies end tag (nobr). -Line: 1 Col: 33 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <nobr> -| <nobr> -| <nobr> - -#data -<!doctype html><nobr><nobr></nobr><nobr> -#errors -Line: 1 Col: 27 Unexpected start tag (nobr) implies end tag (nobr). -Line: 1 Col: 40 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <nobr> -| <nobr> -| <nobr> - -#data -<!doctype html><html><body><p><table></table></body></html> -#errors -Not known -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <table> - -#data -<p><table></table> -#errors -Not known -#document -| <html> -| <head> -| <body> -| <p> -| <table> diff --git a/src/pkg/html/testdata/webkit/tests4.dat b/src/pkg/html/testdata/webkit/tests4.dat deleted file mode 100644 index 3c506326d1..0000000000 --- a/src/pkg/html/testdata/webkit/tests4.dat +++ /dev/null @@ -1,59 +0,0 @@ -#data -direct div content -#errors -#document-fragment -div -#document -| "direct div content" - -#data -direct textarea content -#errors -#document-fragment -textarea -#document -| "direct textarea content" - -#data -textarea content with <em>pseudo</em> <foo>markup -#errors -#document-fragment -textarea -#document -| "textarea content with <em>pseudo</em> <foo>markup" - -#data -this is CDATA inside a <style> element -#errors -#document-fragment -style -#document -| "this is CDATA inside a <style> element" - -#data -</plaintext> -#errors -#document-fragment -plaintext -#document -| "</plaintext>" - -#data -setting html's innerHTML -#errors -Line: 1 Col: 24 Unexpected EOF in inner html mode. -#document-fragment -html -#document -| <head> -| <body> -| "setting html's innerHTML" - -#data -<title>setting head's innerHTML</title> -#errors -#document-fragment -head -#document -| <title> -| "setting head's innerHTML" diff --git a/src/pkg/html/testdata/webkit/tests5.dat b/src/pkg/html/testdata/webkit/tests5.dat deleted file mode 100644 index d7b5128a44..0000000000 --- a/src/pkg/html/testdata/webkit/tests5.dat +++ /dev/null @@ -1,191 +0,0 @@ -#data -<style> <!-- </style>x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (style). -#document -| <html> -| <head> -| <style> -| " <!-- " -| <body> -| "x" - -#data -<style> <!-- </style> --> </style>x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| " <!-- " -| " " -| <body> -| "--> x" - -#data -<style> <!--> </style>x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| " <!--> " -| <body> -| "x" - -#data -<style> <!---> </style>x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| " <!---> " -| <body> -| "x" - -#data -<iframe> <!---> </iframe>x -#errors -Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <iframe> -| " <!---> " -| "x" - -#data -<iframe> <!--- </iframe>->x</iframe> --> </iframe>x -#errors -Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <iframe> -| " <!--- " -| "->x --> x" - -#data -<script> <!-- </script> --> </script>x -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| " <!-- " -| " " -| <body> -| "--> x" - -#data -<title> <!-- </title> --> </title>x -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -#document -| <html> -| <head> -| <title> -| " <!-- " -| " " -| <body> -| "--> x" - -#data -<textarea> <!--- </textarea>->x</textarea> --> </textarea>x -#errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <textarea> -| " <!--- " -| "->x --> x" - -#data -<style> <!</-- </style>x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| " <!</-- " -| <body> -| "x" - -#data -<p><xmp></xmp> -#errors -XXX: Unknown -#document -| <html> -| <head> -| <body> -| <p> -| <xmp> - -#data -<xmp> <!-- > --> </xmp> -#errors -Line: 1 Col: 5 Unexpected start tag (xmp). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <xmp> -| " <!-- > --> " - -#data -<title>&</title> -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -#document -| <html> -| <head> -| <title> -| "&" -| <body> - -#data -<title><!--&--></title> -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -#document -| <html> -| <head> -| <title> -| "<!--&-->" -| <body> - -#data -<title><!--</title> -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -Line: 1 Col: 19 Unexpected end of file. Expected end tag (title). -#document -| <html> -| <head> -| <title> -| "<!--" -| <body> - -#data -<noscript><!--</noscript>--></noscript> -#errors -Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE. -#document -| <html> -| <head> -| <noscript> -| "<!--" -| <body> -| "-->" diff --git a/src/pkg/html/testdata/webkit/tests6.dat b/src/pkg/html/testdata/webkit/tests6.dat deleted file mode 100644 index f28ece4fb0..0000000000 --- a/src/pkg/html/testdata/webkit/tests6.dat +++ /dev/null @@ -1,663 +0,0 @@ -#data -<!doctype html></head> <head> -#errors -Line: 1 Col: 29 Unexpected start tag head. Ignored. -#document -| <!DOCTYPE html> -| <html> -| <head> -| " " -| <body> - -#data -<!doctype html><form><div></form><div> -#errors -33: End tag "form" seen but there were unclosed elements. -38: End of file seen and there were open elements. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <div> -| <div> - -#data -<!doctype html><title>&</title> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "&" -| <body> - -#data -<!doctype html><title><!--&--></title> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "<!--&-->" -| <body> - -#data -<!doctype> -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -Line: 1 Col: 10 Unexpected > character. Expected DOCTYPE name. -Line: 1 Col: 10 Erroneous DOCTYPE. -#document -| <!DOCTYPE > -| <html> -| <head> -| <body> - -#data -<!---x -#errors -Line: 1 Col: 6 Unexpected end of file in comment. -Line: 1 Col: 6 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- -x --> -| <html> -| <head> -| <body> - -#data -<body> -<div> -#errors -Line: 1 Col: 6 Unexpected start tag (body). -Line: 2 Col: 5 Expected closing tag. Unexpected end of file. -#document-fragment -div -#document -| " -" -| <div> - -#data -<frameset></frameset> -foo -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 2 Col: 3 Unexpected non-space characters in the after frameset phase. Ignored. -#document -| <html> -| <head> -| <frameset> -| " -" - -#data -<frameset></frameset> -<noframes> -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 2 Col: 10 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <frameset> -| " -" -| <noframes> - -#data -<frameset></frameset> -<div> -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 2 Col: 5 Unexpected start tag (div) in the after frameset phase. Ignored. -#document -| <html> -| <head> -| <frameset> -| " -" - -#data -<frameset></frameset> -</html> -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -#document -| <html> -| <head> -| <frameset> -| " -" - -#data -<frameset></frameset> -</div> -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 2 Col: 6 Unexpected end tag (div) in the after frameset phase. Ignored. -#document -| <html> -| <head> -| <frameset> -| " -" - -#data -<form><form> -#errors -Line: 1 Col: 6 Unexpected start tag (form). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected start tag (form). -Line: 1 Col: 12 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <form> - -#data -<button><button> -#errors -Line: 1 Col: 8 Unexpected start tag (button). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected start tag (button) implies end tag (button). -Line: 1 Col: 16 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <button> -| <button> - -#data -<table><tr><td></th> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end tag (th). Ignored. -Line: 1 Col: 20 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<table><caption><td> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end tag (td). Ignored. -Line: 1 Col: 20 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 20 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <table> -| <caption> -| <tbody> -| <tr> -| <td> - -#data -<table><caption><div> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 21 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <table> -| <caption> -| <div> - -#data -</caption><div> -#errors -Line: 1 Col: 10 Unexpected end tag (caption). Ignored. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. -#document-fragment -caption -#document -| <div> - -#data -<table><caption><div></caption> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 31 Unexpected end tag (caption). Missing end tag (div). -Line: 1 Col: 31 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <table> -| <caption> -| <div> - -#data -<table><caption></table> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 24 Unexpected end table tag in caption. Generates implied end caption. -#document -| <html> -| <head> -| <body> -| <table> -| <caption> - -#data -</table><div> -#errors -Line: 1 Col: 8 Unexpected end table tag in caption. Generates implied end caption. -Line: 1 Col: 8 Unexpected end tag (caption). Ignored. -Line: 1 Col: 13 Expected closing tag. Unexpected end of file. -#document-fragment -caption -#document -| <div> - -#data -<table><caption></body></col></colgroup></html></tbody></td></tfoot></th></thead></tr> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end tag (body). Ignored. -Line: 1 Col: 29 Unexpected end tag (col). Ignored. -Line: 1 Col: 40 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 47 Unexpected end tag (html). Ignored. -Line: 1 Col: 55 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 60 Unexpected end tag (td). Ignored. -Line: 1 Col: 68 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 73 Unexpected end tag (th). Ignored. -Line: 1 Col: 81 Unexpected end tag (thead). Ignored. -Line: 1 Col: 86 Unexpected end tag (tr). Ignored. -Line: 1 Col: 86 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <table> -| <caption> - -#data -<table><caption><div></div> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 27 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <table> -| <caption> -| <div> - -#data -<table><tr><td></body></caption></col></colgroup></html> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end tag (body). Ignored. -Line: 1 Col: 32 Unexpected end tag (caption). Ignored. -Line: 1 Col: 38 Unexpected end tag (col). Ignored. -Line: 1 Col: 49 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 56 Unexpected end tag (html). Ignored. -Line: 1 Col: 56 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> - -#data -</table></tbody></tfoot></thead></tr><div> -#errors -Line: 1 Col: 8 Unexpected end tag (table). Ignored. -Line: 1 Col: 16 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 24 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 32 Unexpected end tag (thead). Ignored. -Line: 1 Col: 37 Unexpected end tag (tr). Ignored. -Line: 1 Col: 42 Expected closing tag. Unexpected end of file. -#document-fragment -td -#document -| <div> - -#data -<table><colgroup>foo -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 20 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| "foo" -| <table> -| <colgroup> - -#data -foo<col> -#errors -Line: 1 Col: 3 Unexpected end tag (colgroup). Ignored. -#document-fragment -colgroup -#document -| <col> - -#data -<table><colgroup></col> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 23 This element (col) has no end tag. -Line: 1 Col: 23 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <table> -| <colgroup> - -#data -<frameset><div> -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 1 Col: 15 Unexpected start tag token (div) in the frameset phase. Ignored. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <frameset> - -#data -</frameset><frame> -#errors -Line: 1 Col: 11 Unexpected end tag token (frameset) in the frameset phase (innerHTML). -#document-fragment -frameset -#document -| <frame> - -#data -<frameset></div> -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected end tag token (div) in the frameset phase. Ignored. -Line: 1 Col: 16 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <frameset> - -#data -</body><div> -#errors -Line: 1 Col: 7 Unexpected end tag (body). Ignored. -Line: 1 Col: 12 Expected closing tag. Unexpected end of file. -#document-fragment -body -#document -| <div> - -#data -<table><tr><div> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected start tag (div) in table context caused voodoo mode. -Line: 1 Col: 16 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <div> -| <table> -| <tbody> -| <tr> - -#data -</tr><td> -#errors -Line: 1 Col: 5 Unexpected end tag (tr). Ignored. -#document-fragment -tr -#document -| <td> - -#data -</tbody></tfoot></thead><td> -#errors -Line: 1 Col: 8 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 16 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 24 Unexpected end tag (thead). Ignored. -#document-fragment -tr -#document -| <td> - -#data -<table><tr><div><td> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected start tag (div) in table context caused voodoo mode. -Line: 1 Col: 20 Unexpected implied end tag (div) in the table row phase. -Line: 1 Col: 20 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<caption><col><colgroup><tbody><tfoot><thead><tr> -#errors -Line: 1 Col: 9 Unexpected start tag (caption). -Line: 1 Col: 14 Unexpected start tag (col). -Line: 1 Col: 24 Unexpected start tag (colgroup). -Line: 1 Col: 31 Unexpected start tag (tbody). -Line: 1 Col: 38 Unexpected start tag (tfoot). -Line: 1 Col: 45 Unexpected start tag (thead). -Line: 1 Col: 49 Unexpected end of file. Expected table content. -#document-fragment -tbody -#document -| <tr> - -#data -<table><tbody></thead> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end tag (thead) in the table body phase. Ignored. -Line: 1 Col: 22 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> - -#data -</table><tr> -#errors -Line: 1 Col: 8 Unexpected end tag (table). Ignored. -Line: 1 Col: 12 Unexpected end of file. Expected table content. -#document-fragment -tbody -#document -| <tr> - -#data -<table><tbody></body></caption></col></colgroup></html></td></th></tr> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected end tag (body) in the table body phase. Ignored. -Line: 1 Col: 31 Unexpected end tag (caption) in the table body phase. Ignored. -Line: 1 Col: 37 Unexpected end tag (col) in the table body phase. Ignored. -Line: 1 Col: 48 Unexpected end tag (colgroup) in the table body phase. Ignored. -Line: 1 Col: 55 Unexpected end tag (html) in the table body phase. Ignored. -Line: 1 Col: 60 Unexpected end tag (td) in the table body phase. Ignored. -Line: 1 Col: 65 Unexpected end tag (th) in the table body phase. Ignored. -Line: 1 Col: 70 Unexpected end tag (tr) in the table body phase. Ignored. -Line: 1 Col: 70 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> - -#data -<table><tbody></div> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end tag (div) in table context caused voodoo mode. -Line: 1 Col: 20 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 20 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> - -#data -<table><table> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected start tag (table) implies end tag (table). -Line: 1 Col: 14 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <table> -| <table> - -#data -<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end tag (body). Ignored. -Line: 1 Col: 24 Unexpected end tag (caption). Ignored. -Line: 1 Col: 30 Unexpected end tag (col). Ignored. -Line: 1 Col: 41 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 48 Unexpected end tag (html). Ignored. -Line: 1 Col: 56 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 61 Unexpected end tag (td). Ignored. -Line: 1 Col: 69 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 74 Unexpected end tag (th). Ignored. -Line: 1 Col: 82 Unexpected end tag (thead). Ignored. -Line: 1 Col: 87 Unexpected end tag (tr). Ignored. -Line: 1 Col: 87 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <table> - -#data -</table><tr> -#errors -Line: 1 Col: 8 Unexpected end tag (table). Ignored. -Line: 1 Col: 12 Unexpected end of file. Expected table content. -#document-fragment -table -#document -| <tbody> -| <tr> - -#data -<body></body></html> -#errors -Line: 1 Col: 20 Unexpected html end tag in inner html mode. -Line: 1 Col: 20 Unexpected EOF in inner html mode. -#document-fragment -html -#document -| <head> -| <body> - -#data -<html><frameset></frameset></html> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <frameset> -| " " - -#data -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"><html></html> -#errors -Line: 1 Col: 50 Erroneous DOCTYPE. -Line: 1 Col: 63 Unexpected end tag (html) after the (implied) root element. -#document -| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" ""> -| <html> -| <head> -| <body> - -#data -<param><frameset></frameset> -#errors -Line: 1 Col: 7 Unexpected start tag (param). Expected DOCTYPE. -Line: 1 Col: 17 Unexpected start tag (frameset). -#document -| <html> -| <head> -| <frameset> - -#data -<source><frameset></frameset> -#errors -Line: 1 Col: 7 Unexpected start tag (source). Expected DOCTYPE. -Line: 1 Col: 17 Unexpected start tag (frameset). -#document -| <html> -| <head> -| <frameset> - -#data -<track><frameset></frameset> -#errors -Line: 1 Col: 7 Unexpected start tag (track). Expected DOCTYPE. -Line: 1 Col: 17 Unexpected start tag (frameset). -#document -| <html> -| <head> -| <frameset> - -#data -</html><frameset></frameset> -#errors -7: End tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. -17: Stray “frameset” start tag. -17: “frameset” start tag seen. -#document -| <html> -| <head> -| <frameset> - -#data -</body><frameset></frameset> -#errors -7: End tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. -17: Stray “frameset” start tag. -17: “frameset” start tag seen. -#document -| <html> -| <head> -| <frameset> diff --git a/src/pkg/html/testdata/webkit/tests7.dat b/src/pkg/html/testdata/webkit/tests7.dat deleted file mode 100644 index f5193c660b..0000000000 --- a/src/pkg/html/testdata/webkit/tests7.dat +++ /dev/null @@ -1,390 +0,0 @@ -#data -<!doctype html><body><title>X</title> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <title> -| "X" - -#data -<!doctype html><table><title>X</title></table> -#errors -Line: 1 Col: 29 Unexpected start tag (title) in table context caused voodoo mode. -Line: 1 Col: 38 Unexpected end tag (title) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <title> -| "X" -| <table> - -#data -<!doctype html><head></head><title>X</title> -#errors -Line: 1 Col: 35 Unexpected start tag (title) that can be in head. Moved. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "X" -| <body> - -#data -<!doctype html></head><title>X</title> -#errors -Line: 1 Col: 29 Unexpected start tag (title) that can be in head. Moved. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "X" -| <body> - -#data -<!doctype html><table><meta></table> -#errors -Line: 1 Col: 28 Unexpected start tag (meta) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <meta> -| <table> - -#data -<!doctype html><table>X<tr><td><table> <meta></table></table> -#errors -Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 45 Unexpected start tag (meta) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <table> -| <tbody> -| <tr> -| <td> -| <meta> -| <table> -| " " - -#data -<!doctype html><html> <head> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<!doctype html> <head> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<!doctype html><table><style> <tr>x </style> </table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <style> -| " <tr>x " -| " " - -#data -<!doctype html><table><TBODY><script> <tr>x </script> </table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <script> -| " <tr>x " -| " " - -#data -<!doctype html><p><applet><p>X</p></applet> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <applet> -| <p> -| "X" - -#data -<!doctype html><listing> -X</listing> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <listing> -| "X" - -#data -<!doctype html><select><input>X -#errors -Line: 1 Col: 30 Unexpected input start tag in the select phase. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <input> -| "X" - -#data -<!doctype html><select><select>X -#errors -Line: 1 Col: 31 Unexpected select start tag in the select phase treated as select end tag. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| "X" - -#data -<!doctype html><table><input type=hidDEN></table> -#errors -Line: 1 Col: 41 Unexpected input with type hidden in table context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <input> -| type="hidDEN" - -#data -<!doctype html><table>X<input type=hidDEN></table> -#errors -Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <table> -| <input> -| type="hidDEN" - -#data -<!doctype html><table> <input type=hidDEN></table> -#errors -Line: 1 Col: 43 Unexpected input with type hidden in table context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| " " -| <input> -| type="hidDEN" - -#data -<!doctype html><table> <input type='hidDEN'></table> -#errors -Line: 1 Col: 45 Unexpected input with type hidden in table context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| " " -| <input> -| type="hidDEN" - -#data -<!doctype html><table><input type=" hidden"><input type=hidDEN></table> -#errors -Line: 1 Col: 44 Unexpected start tag (input) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <input> -| type=" hidden" -| <table> -| <input> -| type="hidDEN" - -#data -<!doctype html><table><select>X<tr> -#errors -Line: 1 Col: 30 Unexpected start tag (select) in table context caused voodoo mode. -Line: 1 Col: 35 Unexpected table element start tag (trs) in the select in table phase. -Line: 1 Col: 35 Unexpected end of file. Expected table content. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| "X" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><select>X</select> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| "X" - -#data -<!DOCTYPE hTmL><html></html> -#errors -Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE HTML><html></html> -#errors -Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<body>X</body></body> -#errors -Line: 1 Col: 21 Unexpected end tag token (body) in the after body phase. -Line: 1 Col: 21 Unexpected EOF in inner html mode. -#document-fragment -html -#document -| <head> -| <body> -| "X" - -#data -<div><p>a</x> b -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end tag (x). Ignored. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| <p> -| "a b" - -#data -<table><tr><td><code></code> </table> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <code> -| " " - -#data -<table><b><tr><td>aaa</td></tr>bbb</table>ccc -#errors -XXX: Fix me -#document -| <html> -| <head> -| <body> -| <b> -| <b> -| "bbb" -| <table> -| <tbody> -| <tr> -| <td> -| "aaa" -| <b> -| "ccc" - -#data -A<table><tr> B</tr> B</table> -#errors -XXX: Fix me -#document -| <html> -| <head> -| <body> -| "A B B" -| <table> -| <tbody> -| <tr> - -#data -A<table><tr> B</tr> </em>C</table> -#errors -XXX: Fix me -#document -| <html> -| <head> -| <body> -| "A BC" -| <table> -| <tbody> -| <tr> -| " " - -#data -<select><keygen> -#errors -Not known -#document -| <html> -| <head> -| <body> -| <select> -| <keygen> diff --git a/src/pkg/html/testdata/webkit/tests8.dat b/src/pkg/html/testdata/webkit/tests8.dat deleted file mode 100644 index 90e6c919e8..0000000000 --- a/src/pkg/html/testdata/webkit/tests8.dat +++ /dev/null @@ -1,148 +0,0 @@ -#data -<div> -<div></div> -</span>x -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 3 Col: 7 Unexpected end tag (span). Ignored. -Line: 3 Col: 8 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " -" -| <div> -| " -x" - -#data -<div>x<div></div> -</span>x -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 2 Col: 7 Unexpected end tag (span). Ignored. -Line: 2 Col: 8 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| "x" -| <div> -| " -x" - -#data -<div>x<div></div>x</span>x -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 25 Unexpected end tag (span). Ignored. -Line: 1 Col: 26 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| "x" -| <div> -| "xx" - -#data -<div>x<div></div>y</span>z -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 25 Unexpected end tag (span). Ignored. -Line: 1 Col: 26 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| "x" -| <div> -| "yz" - -#data -<table><div>x<div></div>x</span>x -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected start tag (div) in table context caused voodoo mode. -Line: 1 Col: 18 Unexpected start tag (div) in table context caused voodoo mode. -Line: 1 Col: 24 Unexpected end tag (div) in table context caused voodoo mode. -Line: 1 Col: 32 Unexpected end tag (span) in table context caused voodoo mode. -Line: 1 Col: 32 Unexpected end tag (span). Ignored. -Line: 1 Col: 33 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <div> -| "x" -| <div> -| "xx" -| <table> - -#data -x<table>x -#errors -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -Line: 1 Col: 9 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 9 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| "xx" -| <table> - -#data -x<table><table>x -#errors -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -Line: 1 Col: 15 Unexpected start tag (table) implies end tag (table). -Line: 1 Col: 16 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 16 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| "x" -| <table> -| "x" -| <table> - -#data -<b>a<div></div><div></b>y -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 24 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| "a" -| <div> -| <div> -| <b> -| "y" - -#data -<a><div><p></a> -#errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <a> -| <div> -| <a> -| <p> -| <a> diff --git a/src/pkg/html/testdata/webkit/tests9.dat b/src/pkg/html/testdata/webkit/tests9.dat deleted file mode 100644 index 554e27aecf..0000000000 --- a/src/pkg/html/testdata/webkit/tests9.dat +++ /dev/null @@ -1,457 +0,0 @@ -#data -<!DOCTYPE html><math></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> - -#data -<!DOCTYPE html><body><math></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> - -#data -<!DOCTYPE html><math><mi> -#errors -25: End of file in a foreign namespace context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> - -#data -<!DOCTYPE html><math><annotation-xml><svg><u> -#errors -45: HTML start tag “u” in a foreign namespace context. -45: End of file seen and there were open elements. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| <svg svg> -| <u> - -#data -<!DOCTYPE html><body><select><math></math></select> -#errors -Line: 1 Col: 35 Unexpected start tag token (math) in the select phase. Ignored. -Line: 1 Col: 42 Unexpected end tag (math) in the select phase. Ignored. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!DOCTYPE html><body><select><option><math></math></option></select> -#errors -Line: 1 Col: 43 Unexpected start tag token (math) in the select phase. Ignored. -Line: 1 Col: 50 Unexpected end tag (math) in the select phase. Ignored. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> - -#data -<!DOCTYPE html><body><table><math></math></table> -#errors -Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 41 Unexpected end tag (math) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <table> - -#data -<!DOCTYPE html><body><table><math><mi>foo</mi></math></table> -#errors -Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 46 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 53 Unexpected end tag (math) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <table> - -#data -<!DOCTYPE html><body><table><math><mi>foo</mi><mi>bar</mi></math></table> -#errors -Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 46 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 58 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 65 Unexpected end tag (math) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <table> - -#data -<!DOCTYPE html><body><table><tbody><math><mi>foo</mi><mi>bar</mi></math></tbody></table> -#errors -Line: 1 Col: 41 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 53 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 65 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 72 Unexpected end tag (math) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <table> -| <tbody> - -#data -<!DOCTYPE html><body><table><tbody><tr><math><mi>foo</mi><mi>bar</mi></math></tr></tbody></table> -#errors -Line: 1 Col: 45 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 57 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 69 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 76 Unexpected end tag (math) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <table> -| <tbody> -| <tr> - -#data -<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" - -#data -<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</td></tr></tbody></table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</caption></table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux -#errors -Line: 1 Col: 70 HTML start tag "p" in a foreign namespace context. -Line: 1 Col: 81 Unexpected end table tag in caption. Generates implied end caption. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <p> -| "baz" -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</table><p>quux -#errors -Line: 1 Col: 78 Unexpected end table tag in caption. Generates implied end caption. -Line: 1 Col: 78 Unexpected end tag (caption). Missing end tag (math). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| "baz" -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><colgroup><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux -#errors -Line: 1 Col: 44 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 56 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 68 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 71 HTML start tag "p" in a foreign namespace context. -Line: 1 Col: 71 Unexpected start tag (p) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <p> -| "baz" -| <table> -| <colgroup> -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><tr><td><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux -#errors -Line: 1 Col: 50 Unexpected start tag token (math) in the select phase. Ignored. -Line: 1 Col: 54 Unexpected start tag token (mi) in the select phase. Ignored. -Line: 1 Col: 62 Unexpected end tag (mi) in the select phase. Ignored. -Line: 1 Col: 66 Unexpected start tag token (mi) in the select phase. Ignored. -Line: 1 Col: 74 Unexpected end tag (mi) in the select phase. Ignored. -Line: 1 Col: 77 Unexpected start tag token (p) in the select phase. Ignored. -Line: 1 Col: 88 Unexpected table element end tag (tables) in the select in table phase. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <select> -| "foobarbaz" -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux -#errors -Line: 1 Col: 36 Unexpected start tag (select) in table context caused voodoo mode. -Line: 1 Col: 42 Unexpected start tag token (math) in the select phase. Ignored. -Line: 1 Col: 46 Unexpected start tag token (mi) in the select phase. Ignored. -Line: 1 Col: 54 Unexpected end tag (mi) in the select phase. Ignored. -Line: 1 Col: 58 Unexpected start tag token (mi) in the select phase. Ignored. -Line: 1 Col: 66 Unexpected end tag (mi) in the select phase. Ignored. -Line: 1 Col: 69 Unexpected start tag token (p) in the select phase. Ignored. -Line: 1 Col: 80 Unexpected table element end tag (tables) in the select in table phase. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| "foobarbaz" -| <table> -| <p> -| "quux" - -#data -<!DOCTYPE html><body></body></html><math><mi>foo</mi><mi>bar</mi><p>baz -#errors -Line: 1 Col: 41 Unexpected start tag (math). -Line: 1 Col: 68 HTML start tag "p" in a foreign namespace context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><body></body><math><mi>foo</mi><mi>bar</mi><p>baz -#errors -Line: 1 Col: 34 Unexpected start tag token (math) in the after body phase. -Line: 1 Col: 61 HTML start tag "p" in a foreign namespace context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><frameset><math><mi></mi><mi></mi><p><span> -#errors -Line: 1 Col: 31 Unexpected start tag token (math) in the frameset phase. Ignored. -Line: 1 Col: 35 Unexpected start tag token (mi) in the frameset phase. Ignored. -Line: 1 Col: 40 Unexpected end tag token (mi) in the frameset phase. Ignored. -Line: 1 Col: 44 Unexpected start tag token (mi) in the frameset phase. Ignored. -Line: 1 Col: 49 Unexpected end tag token (mi) in the frameset phase. Ignored. -Line: 1 Col: 52 Unexpected start tag token (p) in the frameset phase. Ignored. -Line: 1 Col: 58 Unexpected start tag token (span) in the frameset phase. Ignored. -Line: 1 Col: 58 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><frameset></frameset><math><mi></mi><mi></mi><p><span> -#errors -Line: 1 Col: 42 Unexpected start tag (math) in the after frameset phase. Ignored. -Line: 1 Col: 46 Unexpected start tag (mi) in the after frameset phase. Ignored. -Line: 1 Col: 51 Unexpected end tag (mi) in the after frameset phase. Ignored. -Line: 1 Col: 55 Unexpected start tag (mi) in the after frameset phase. Ignored. -Line: 1 Col: 60 Unexpected end tag (mi) in the after frameset phase. Ignored. -Line: 1 Col: 63 Unexpected start tag (p) in the after frameset phase. Ignored. -Line: 1 Col: 69 Unexpected start tag (span) in the after frameset phase. Ignored. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><body xlink:href=foo><math xlink:href=foo></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| <math math> -| xlink href="foo" - -#data -<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo></mi></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| xml:lang="en" -| <math math> -| <math mi> -| xlink href="foo" -| xml lang="en" - -#data -<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo /></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| xml:lang="en" -| <math math> -| <math mi> -| xlink href="foo" -| xml lang="en" - -#data -<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo />bar</math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| xml:lang="en" -| <math math> -| <math mi> -| xlink href="foo" -| xml lang="en" -| "bar" diff --git a/src/pkg/html/testdata/webkit/tests_innerHTML_1.dat b/src/pkg/html/testdata/webkit/tests_innerHTML_1.dat deleted file mode 100644 index 052fac7d55..0000000000 --- a/src/pkg/html/testdata/webkit/tests_innerHTML_1.dat +++ /dev/null @@ -1,733 +0,0 @@ -#data -<body><span> -#errors -#document-fragment -body -#document -| <span> - -#data -<span><body> -#errors -#document-fragment -body -#document -| <span> - -#data -<span><body> -#errors -#document-fragment -div -#document -| <span> - -#data -<body><span> -#errors -#document-fragment -html -#document -| <head> -| <body> -| <span> - -#data -<frameset><span> -#errors -#document-fragment -body -#document -| <span> - -#data -<span><frameset> -#errors -#document-fragment -body -#document -| <span> - -#data -<span><frameset> -#errors -#document-fragment -div -#document -| <span> - -#data -<frameset><span> -#errors -#document-fragment -html -#document -| <head> -| <frameset> - -#data -<table><tr> -#errors -#document-fragment -table -#document -| <tbody> -| <tr> - -#data -</table><tr> -#errors -#document-fragment -table -#document -| <tbody> -| <tr> - -#data -<a> -#errors -#document-fragment -table -#document -| <a> - -#data -<a> -#errors -#document-fragment -table -#document -| <a> - -#data -<a><caption>a -#errors -#document-fragment -table -#document -| <a> -| <caption> -| "a" - -#data -<a><colgroup><col> -#errors -#document-fragment -table -#document -| <a> -| <colgroup> -| <col> - -#data -<a><tbody><tr> -#errors -#document-fragment -table -#document -| <a> -| <tbody> -| <tr> - -#data -<a><tfoot><tr> -#errors -#document-fragment -table -#document -| <a> -| <tfoot> -| <tr> - -#data -<a><thead><tr> -#errors -#document-fragment -table -#document -| <a> -| <thead> -| <tr> - -#data -<a><tr> -#errors -#document-fragment -table -#document -| <a> -| <tbody> -| <tr> - -#data -<a><th> -#errors -#document-fragment -table -#document -| <a> -| <tbody> -| <tr> -| <th> - -#data -<a><td> -#errors -#document-fragment -table -#document -| <a> -| <tbody> -| <tr> -| <td> - -#data -<table></table><tbody> -#errors -#document-fragment -caption -#document -| <table> - -#data -</table><span> -#errors -#document-fragment -caption -#document -| <span> - -#data -<span></table> -#errors -#document-fragment -caption -#document -| <span> - -#data -</caption><span> -#errors -#document-fragment -caption -#document -| <span> - -#data -<span></caption><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><caption><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><col><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><colgroup><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><html><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><tbody><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><td><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><tfoot><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><thead><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><th><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><tr><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span></table><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -</colgroup><col> -#errors -#document-fragment -colgroup -#document -| <col> - -#data -<a><col> -#errors -#document-fragment -colgroup -#document -| <col> - -#data -<caption><a> -#errors -#document-fragment -tbody -#document -| <a> - -#data -<col><a> -#errors -#document-fragment -tbody -#document -| <a> - -#data -<colgroup><a> -#errors -#document-fragment -tbody -#document -| <a> - -#data -<tbody><a> -#errors -#document-fragment -tbody -#document -| <a> - -#data -<tfoot><a> -#errors -#document-fragment -tbody -#document -| <a> - -#data -<thead><a> -#errors -#document-fragment -tbody -#document -| <a> - -#data -</table><a> -#errors -#document-fragment -tbody -#document -| <a> - -#data -<a><tr> -#errors -#document-fragment -tbody -#document -| <a> -| <tr> - -#data -<a><td> -#errors -#document-fragment -tbody -#document -| <a> -| <tr> -| <td> - -#data -<a><td> -#errors -#document-fragment -tbody -#document -| <a> -| <tr> -| <td> - -#data -<a><td> -#errors -#document-fragment -tbody -#document -| <a> -| <tr> -| <td> - -#data -<td><table><tbody><a><tr> -#errors -#document-fragment -tbody -#document -| <tr> -| <td> -| <a> -| <table> -| <tbody> -| <tr> - -#data -</tr><td> -#errors -#document-fragment -tr -#document -| <td> - -#data -<td><table><a><tr></tr><tr> -#errors -#document-fragment -tr -#document -| <td> -| <a> -| <table> -| <tbody> -| <tr> -| <tr> - -#data -<caption><td> -#errors -#document-fragment -tr -#document -| <td> - -#data -<col><td> -#errors -#document-fragment -tr -#document -| <td> - -#data -<colgroup><td> -#errors -#document-fragment -tr -#document -| <td> - -#data -<tbody><td> -#errors -#document-fragment -tr -#document -| <td> - -#data -<tfoot><td> -#errors -#document-fragment -tr -#document -| <td> - -#data -<thead><td> -#errors -#document-fragment -tr -#document -| <td> - -#data -<tr><td> -#errors -#document-fragment -tr -#document -| <td> - -#data -</table><td> -#errors -#document-fragment -tr -#document -| <td> - -#data -<td><table></table><td> -#errors -#document-fragment -tr -#document -| <td> -| <table> -| <td> - -#data -<td><table></table><td> -#errors -#document-fragment -tr -#document -| <td> -| <table> -| <td> - -#data -<caption><a> -#errors -#document-fragment -td -#document -| <a> - -#data -<col><a> -#errors -#document-fragment -td -#document -| <a> - -#data -<colgroup><a> -#errors -#document-fragment -td -#document -| <a> - -#data -<tbody><a> -#errors -#document-fragment -td -#document -| <a> - -#data -<tfoot><a> -#errors -#document-fragment -td -#document -| <a> - -#data -<th><a> -#errors -#document-fragment -td -#document -| <a> - -#data -<thead><a> -#errors -#document-fragment -td -#document -| <a> - -#data -<tr><a> -#errors -#document-fragment -td -#document -| <a> - -#data -</table><a> -#errors -#document-fragment -td -#document -| <a> - -#data -</tbody><a> -#errors -#document-fragment -td -#document -| <a> - -#data -</td><a> -#errors -#document-fragment -td -#document -| <a> - -#data -</tfoot><a> -#errors -#document-fragment -td -#document -| <a> - -#data -</thead><a> -#errors -#document-fragment -td -#document -| <a> - -#data -</th><a> -#errors -#document-fragment -td -#document -| <a> - -#data -</tr><a> -#errors -#document-fragment -td -#document -| <a> - -#data -<table><td><td> -#errors -#document-fragment -td -#document -| <table> -| <tbody> -| <tr> -| <td> -| <td> - -#data -</select><option> -#errors -#document-fragment -select -#document -| <option> - -#data -<input><option> -#errors -#document-fragment -select -#document -| <option> - -#data -<keygen><option> -#errors -#document-fragment -select -#document -| <option> - -#data -<textarea><option> -#errors -#document-fragment -select -#document -| <option> - -#data -</html><!--abc--> -#errors -#document-fragment -html -#document -| <head> -| <body> -| <!-- abc --> - -#data -</frameset><frame> -#errors -#document-fragment -frameset -#document -| <frame> diff --git a/src/pkg/html/testdata/webkit/tricky01.dat b/src/pkg/html/testdata/webkit/tricky01.dat deleted file mode 100644 index 0841992448..0000000000 --- a/src/pkg/html/testdata/webkit/tricky01.dat +++ /dev/null @@ -1,261 +0,0 @@ -#data -<b><p>Bold </b> Not bold</p> -Also not bold. -#errors -#document -| <html> -| <head> -| <body> -| <b> -| <p> -| <b> -| "Bold " -| " Not bold" -| " -Also not bold." - -#data -<html> -<font color=red><i>Italic and Red<p>Italic and Red </font> Just italic.</p> Italic only.</i> Plain -<p>I should not be red. <font color=red>Red. <i>Italic and red.</p> -<p>Italic and red. </i> Red.</font> I should not be red.</p> -<b>Bold <i>Bold and italic</b> Only Italic </i> Plain -#errors -#document -| <html> -| <head> -| <body> -| <font> -| color="red" -| <i> -| "Italic and Red" -| <i> -| <p> -| <font> -| color="red" -| "Italic and Red " -| " Just italic." -| " Italic only." -| " Plain -" -| <p> -| "I should not be red. " -| <font> -| color="red" -| "Red. " -| <i> -| "Italic and red." -| <font> -| color="red" -| <i> -| " -" -| <p> -| <font> -| color="red" -| <i> -| "Italic and red. " -| " Red." -| " I should not be red." -| " -" -| <b> -| "Bold " -| <i> -| "Bold and italic" -| <i> -| " Only Italic " -| " Plain" - -#data -<html><body> -<p><font size="7">First paragraph.</p> -<p>Second paragraph.</p></font> -<b><p><i>Bold and Italic</b> Italic</p> -#errors -#document -| <html> -| <head> -| <body> -| " -" -| <p> -| <font> -| size="7" -| "First paragraph." -| <font> -| size="7" -| " -" -| <p> -| "Second paragraph." -| " -" -| <b> -| <p> -| <b> -| <i> -| "Bold and Italic" -| <i> -| " Italic" - -#data -<html> -<dl> -<dt><b>Boo -<dd>Goo? -</dl> -</html> -#errors -#document -| <html> -| <head> -| <body> -| <dl> -| " -" -| <dt> -| <b> -| "Boo -" -| <dd> -| <b> -| "Goo? -" -| <b> -| " -" - -#data -<html><body> -<label><a><div>Hello<div>World</div></a></label> -</body></html> -#errors -#document -| <html> -| <head> -| <body> -| " -" -| <label> -| <a> -| <div> -| <a> -| "Hello" -| <div> -| "World" -| " -" - -#data -<table><center> <font>a</center> <img> <tr><td> </td> </tr> </table> -#errors -#document -| <html> -| <head> -| <body> -| <center> -| " " -| <font> -| "a" -| <font> -| <img> -| " " -| <table> -| " " -| <tbody> -| <tr> -| <td> -| " " -| " " -| " " - -#data -<table><tr><p><a><p>You should see this text. -#errors -#document -| <html> -| <head> -| <body> -| <p> -| <a> -| <p> -| <a> -| "You should see this text." -| <table> -| <tbody> -| <tr> - -#data -<TABLE> -<TR> -<CENTER><CENTER><TD></TD></TR><TR> -<FONT> -<TABLE><tr></tr></TABLE> -</P> -<a></font><font></a> -This page contains an insanely badly-nested tag sequence. -#errors -#document -| <html> -| <head> -| <body> -| <center> -| <center> -| <font> -| " -" -| <table> -| " -" -| <tbody> -| <tr> -| " -" -| <td> -| <tr> -| " -" -| <table> -| <tbody> -| <tr> -| <font> -| " -" -| <p> -| " -" -| <a> -| <a> -| <font> -| <font> -| " -This page contains an insanely badly-nested tag sequence." - -#data -<html> -<body> -<b><nobr><div>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the -nobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre> -</body> -</html> -#errors -#document -| <html> -| <head> -| <body> -| " -" -| <b> -| <nobr> -| <div> -| <b> -| <nobr> -| "This text is in a div inside a nobr" -| "More text that should not be in the nobr, i.e., the -nobr should have closed the div inside it implicitly. " -| <pre> -| "A pre tag outside everything else." -| " - -" diff --git a/src/pkg/html/testdata/webkit/webkit01.dat b/src/pkg/html/testdata/webkit/webkit01.dat deleted file mode 100644 index 4101b216e1..0000000000 --- a/src/pkg/html/testdata/webkit/webkit01.dat +++ /dev/null @@ -1,609 +0,0 @@ -#data -Test -#errors -Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "Test" - -#data -<div></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> - -#data -<div>Test</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| "Test" - -#data -<di -#errors -#document -| <html> -| <head> -| <body> - -#data -<div>Hello</div> -<script> -console.log("PASS"); -</script> -<div>Bye</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| "Hello" -| " -" -| <script> -| " -console.log("PASS"); -" -| " -" -| <div> -| "Bye" - -#data -<div foo="bar">Hello</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| foo="bar" -| "Hello" - -#data -<div>Hello</div> -<script> -console.log("FOO<span>BAR</span>BAZ"); -</script> -<div>Bye</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| "Hello" -| " -" -| <script> -| " -console.log("FOO<span>BAR</span>BAZ"); -" -| " -" -| <div> -| "Bye" - -#data -<foo bar="baz"></foo><potato quack="duck"></potato> -#errors -#document -| <html> -| <head> -| <body> -| <foo> -| bar="baz" -| <potato> -| quack="duck" - -#data -<foo bar="baz"><potato quack="duck"></potato></foo> -#errors -#document -| <html> -| <head> -| <body> -| <foo> -| bar="baz" -| <potato> -| quack="duck" - -#data -<foo></foo bar="baz"><potato></potato quack="duck"> -#errors -#document -| <html> -| <head> -| <body> -| <foo> -| <potato> - -#data -</ tttt> -#errors -#document -| <!-- tttt --> -| <html> -| <head> -| <body> - -#data -<div FOO ><img><img></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| foo="" -| <img> -| <img> - -#data -<p>Test</p<p>Test2</p> -#errors -#document -| <html> -| <head> -| <body> -| <p> -| "TestTest2" - -#data -<rdar://problem/6869687> -#errors -#document -| <html> -| <head> -| <body> -| <rdar:> -| 6869687="" -| problem="" - -#data -<A>test< /A> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| "test< /A>" - -#data -< -#errors -#document -| <html> -| <head> -| <body> -| "<" - -#data -<body foo='bar'><body foo='baz' yo='mama'> -#errors -#document -| <html> -| <head> -| <body> -| foo="bar" -| yo="mama" - -#data -<body></br foo="bar"></body> -#errors -#document -| <html> -| <head> -| <body> -| <br> - -#data -<bdy><br foo="bar"></body> -#errors -#document -| <html> -| <head> -| <body> -| <bdy> -| <br> -| foo="bar" - -#data -<body></body></br foo="bar"> -#errors -#document -| <html> -| <head> -| <body> -| <br> - -#data -<bdy></body><br foo="bar"> -#errors -#document -| <html> -| <head> -| <body> -| <bdy> -| <br> -| foo="bar" - -#data -<html><body></body></html><!-- Hi there --> -#errors -#document -| <html> -| <head> -| <body> -| <!-- Hi there --> - -#data -<html><body></body></html>x<!-- Hi there --> -#errors -#document -| <html> -| <head> -| <body> -| "x" -| <!-- Hi there --> - -#data -<html><body></body></html>x<!-- Hi there --></html><!-- Again --> -#errors -#document -| <html> -| <head> -| <body> -| "x" -| <!-- Hi there --> -| <!-- Again --> - -#data -<html><body></body></html>x<!-- Hi there --></body></html><!-- Again --> -#errors -#document -| <html> -| <head> -| <body> -| "x" -| <!-- Hi there --> -| <!-- Again --> - -#data -<html><body><ruby><div><rp>xx</rp></div></ruby></body></html> -#errors -#document -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <rp> -| "xx" - -#data -<html><body><ruby><div><rt>xx</rt></div></ruby></body></html> -#errors -#document -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <rt> -| "xx" - -#data -<html><frameset><!--1--><noframes>A</noframes><!--2--></frameset><!--3--><noframes>B</noframes><!--4--></html><!--5--><noframes>C</noframes><!--6--> -#errors -#document -| <html> -| <head> -| <frameset> -| <!-- 1 --> -| <noframes> -| "A" -| <!-- 2 --> -| <!-- 3 --> -| <noframes> -| "B" -| <!-- 4 --> -| <noframes> -| "C" -| <!-- 5 --> -| <!-- 6 --> - -#data -<select><option>A<select><option>B<select><option>C<select><option>D<select><option>E<select><option>F<select><option>G<select> -#errors -#document -| <html> -| <head> -| <body> -| <select> -| <option> -| "A" -| <option> -| "B" -| <select> -| <option> -| "C" -| <option> -| "D" -| <select> -| <option> -| "E" -| <option> -| "F" -| <select> -| <option> -| "G" - -#data -<dd><dd><dt><dt><dd><li><li> -#errors -#document -| <html> -| <head> -| <body> -| <dd> -| <dd> -| <dt> -| <dt> -| <dd> -| <li> -| <li> - -#data -<div><b></div><div><nobr>a<nobr> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| <b> -| <div> -| <b> -| <nobr> -| "a" -| <nobr> - -#data -<head></head> -<body></body> -#errors -#document -| <html> -| <head> -| " -" -| <body> - -#data -<head></head> <style></style>ddd -#errors -#document -| <html> -| <head> -| <style> -| " " -| <body> -| "ddd" - -#data -<kbd><table></kbd><col><select><tr> -#errors -#document -| <html> -| <head> -| <body> -| <kbd> -| <select> -| <table> -| <colgroup> -| <col> -| <tbody> -| <tr> - -#data -<kbd><table></kbd><col><select><tr></table><div> -#errors -#document -| <html> -| <head> -| <body> -| <kbd> -| <select> -| <table> -| <colgroup> -| <col> -| <tbody> -| <tr> -| <div> - -#data -<a><li><style></style><title></title></a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <li> -| <a> -| <style> -| <title> - -#data -<font></p><p><meta><title></title></font> -#errors -#document -| <html> -| <head> -| <body> -| <font> -| <p> -| <p> -| <font> -| <meta> -| <title> - -#data -<a><center><title></title><a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <center> -| <a> -| <title> -| <a> - -#data -<svg><title><div> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| <svg title> -| <div> - -#data -<svg><title><rect><div> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| <svg title> -| <rect> -| <div> - -#data -<svg><title><svg><div> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| <svg title> -| <svg svg> -| <div> - -#data -<img <="" FAIL> -#errors -#document -| <html> -| <head> -| <body> -| <img> -| <="" -| fail="" - -#data -<ul><li><div id='foo'/>A</li><li>B<div>C</div></li></ul> -#errors -#document -| <html> -| <head> -| <body> -| <ul> -| <li> -| <div> -| id="foo" -| "A" -| <li> -| "B" -| <div> -| "C" - -#data -<svg><em><desc></em> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| <em> -| <desc> - -#data -<table><tr><td><svg><desc><td></desc><circle> -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <svg svg> -| <svg desc> -| <svg circle> - -#data -<svg><tfoot></mi><td> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| <svg tfoot> -| <svg td> - -#data -<math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mrow> -| <math mrow> -| <math mn> -| "1" -| <math mi> -| "a" - -#data -<!doctype html><input type="hidden"><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><input type="button"><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <input> -| type="button" diff --git a/src/pkg/html/testdata/webkit/webkit02.dat b/src/pkg/html/testdata/webkit/webkit02.dat deleted file mode 100644 index 2218f4298c..0000000000 --- a/src/pkg/html/testdata/webkit/webkit02.dat +++ /dev/null @@ -1,104 +0,0 @@ -#data -<foo bar=qux/> -#errors -#document -| <html> -| <head> -| <body> -| <foo> -| bar="qux/" - -#data -<p id="status"><noscript><strong>A</strong></noscript><span>B</span></p> -#errors -#document -| <html> -| <head> -| <body> -| <p> -| id="status" -| <noscript> -| "<strong>A</strong>" -| <span> -| "B" - -#data -<div><sarcasm><div></div></sarcasm></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| <sarcasm> -| <div> - -#data -<html><body><img src="" border="0" alt="><div>A</div></body></html> -#errors -#document -| <html> -| <head> -| <body> - -#data -<table><td></tbody>A -#errors -#document -| <html> -| <head> -| <body> -| "A" -| <table> -| <tbody> -| <tr> -| <td> - -#data -<table><td></thead>A -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "A" - -#data -<table><td></tfoot>A -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "A" - -#data -<table><thead><td></tbody>A -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <thead> -| <tr> -| <td> -| "A" - -#data -<legend>test</legend> -#errors -#document -| <html> -| <head> -| <body> -| <legend> -| "test" diff --git a/src/pkg/html/token.go b/src/pkg/html/token.go deleted file mode 100644 index 5a385a1b5c..0000000000 --- a/src/pkg/html/token.go +++ /dev/null @@ -1,780 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package html - -import ( - "bytes" - "io" - "strconv" - "strings" -) - -// A TokenType is the type of a Token. -type TokenType int - -const ( - // ErrorToken means that an error occurred during tokenization. - ErrorToken TokenType = iota - // TextToken means a text node. - TextToken - // A StartTagToken looks like <a>. - StartTagToken - // An EndTagToken looks like </a>. - EndTagToken - // A SelfClosingTagToken tag looks like <br/>. - SelfClosingTagToken - // A CommentToken looks like <!--x-->. - CommentToken - // A DoctypeToken looks like <!DOCTYPE x> - DoctypeToken -) - -// String returns a string representation of the TokenType. -func (t TokenType) String() string { - switch t { - case ErrorToken: - return "Error" - case TextToken: - return "Text" - case StartTagToken: - return "StartTag" - case EndTagToken: - return "EndTag" - case SelfClosingTagToken: - return "SelfClosingTag" - case CommentToken: - return "Comment" - case DoctypeToken: - return "Doctype" - } - return "Invalid(" + strconv.Itoa(int(t)) + ")" -} - -// An Attribute is an attribute namespace-key-value triple. Namespace is -// non-empty for foreign attributes like xlink, Key is alphabetic (and hence -// does not contain escapable characters like '&', '<' or '>'), and Val is -// unescaped (it looks like "a<b" rather than "a<b"). -// -// Namespace is only used by the parser, not the tokenizer. -type Attribute struct { - Namespace, Key, Val string -} - -// A Token consists of a TokenType and some Data (tag name for start and end -// tags, content for text, comments and doctypes). A tag Token may also contain -// a slice of Attributes. Data is unescaped for all Tokens (it looks like "a<b" -// rather than "a<b"). -type Token struct { - Type TokenType - Data string - Attr []Attribute -} - -// tagString returns a string representation of a tag Token's Data and Attr. -func (t Token) tagString() string { - if len(t.Attr) == 0 { - return t.Data - } - buf := bytes.NewBuffer(nil) - buf.WriteString(t.Data) - for _, a := range t.Attr { - buf.WriteByte(' ') - buf.WriteString(a.Key) - buf.WriteString(`="`) - escape(buf, a.Val) - buf.WriteByte('"') - } - return buf.String() -} - -// String returns a string representation of the Token. -func (t Token) String() string { - switch t.Type { - case ErrorToken: - return "" - case TextToken: - return EscapeString(t.Data) - case StartTagToken: - return "<" + t.tagString() + ">" - case EndTagToken: - return "</" + t.tagString() + ">" - case SelfClosingTagToken: - return "<" + t.tagString() + "/>" - case CommentToken: - return "<!--" + t.Data + "-->" - case DoctypeToken: - return "<!DOCTYPE " + t.Data + ">" - } - return "Invalid(" + strconv.Itoa(int(t.Type)) + ")" -} - -// span is a range of bytes in a Tokenizer's buffer. The start is inclusive, -// the end is exclusive. -type span struct { - start, end int -} - -// A Tokenizer returns a stream of HTML Tokens. -type Tokenizer struct { - // r is the source of the HTML text. - r io.Reader - // tt is the TokenType of the current token. - tt TokenType - // err is the first error encountered during tokenization. It is possible - // for tt != Error && err != nil to hold: this means that Next returned a - // valid token but the subsequent Next call will return an error token. - // For example, if the HTML text input was just "plain", then the first - // Next call would set z.err to io.EOF but return a TextToken, and all - // subsequent Next calls would return an ErrorToken. - // err is never reset. Once it becomes non-nil, it stays non-nil. - err error - // buf[raw.start:raw.end] holds the raw bytes of the current token. - // buf[raw.end:] is buffered input that will yield future tokens. - raw span - buf []byte - // buf[data.start:data.end] holds the raw bytes of the current token's data: - // a text token's text, a tag token's tag name, etc. - data span - // pendingAttr is the attribute key and value currently being tokenized. - // When complete, pendingAttr is pushed onto attr. nAttrReturned is - // incremented on each call to TagAttr. - pendingAttr [2]span - attr [][2]span - nAttrReturned int - // rawTag is the "script" in "</script>" that closes the next token. If - // non-empty, the subsequent call to Next will return a raw or RCDATA text - // token: one that treats "<p>" as text instead of an element. - // rawTag's contents are lower-cased. - rawTag string - // textIsRaw is whether the current text token's data is not escaped. - textIsRaw bool -} - -// Err returns the error associated with the most recent ErrorToken token. -// This is typically io.EOF, meaning the end of tokenization. -func (z *Tokenizer) Err() error { - if z.tt != ErrorToken { - return nil - } - return z.err -} - -// readByte returns the next byte from the input stream, doing a buffered read -// from z.r into z.buf if necessary. z.buf[z.raw.start:z.raw.end] remains a contiguous byte -// slice that holds all the bytes read so far for the current token. -// It sets z.err if the underlying reader returns an error. -// Pre-condition: z.err == nil. -func (z *Tokenizer) readByte() byte { - if z.raw.end >= len(z.buf) { - // Our buffer is exhausted and we have to read from z.r. - // We copy z.buf[z.raw.start:z.raw.end] to the beginning of z.buf. If the length - // z.raw.end - z.raw.start is more than half the capacity of z.buf, then we - // allocate a new buffer before the copy. - c := cap(z.buf) - d := z.raw.end - z.raw.start - var buf1 []byte - if 2*d > c { - buf1 = make([]byte, d, 2*c) - } else { - buf1 = z.buf[:d] - } - copy(buf1, z.buf[z.raw.start:z.raw.end]) - if x := z.raw.start; x != 0 { - // Adjust the data/attr spans to refer to the same contents after the copy. - z.data.start -= x - z.data.end -= x - z.pendingAttr[0].start -= x - z.pendingAttr[0].end -= x - z.pendingAttr[1].start -= x - z.pendingAttr[1].end -= x - for i := range z.attr { - z.attr[i][0].start -= x - z.attr[i][0].end -= x - z.attr[i][1].start -= x - z.attr[i][1].end -= x - } - } - z.raw.start, z.raw.end, z.buf = 0, d, buf1[:d] - // Now that we have copied the live bytes to the start of the buffer, - // we read from z.r into the remainder. - n, err := z.r.Read(buf1[d:cap(buf1)]) - if err != nil { - z.err = err - return 0 - } - z.buf = buf1[:d+n] - } - x := z.buf[z.raw.end] - z.raw.end++ - return x -} - -// skipWhiteSpace skips past any white space. -func (z *Tokenizer) skipWhiteSpace() { - if z.err != nil { - return - } - for { - c := z.readByte() - if z.err != nil { - return - } - switch c { - case ' ', '\n', '\r', '\t', '\f': - // No-op. - default: - z.raw.end-- - return - } - } -} - -// readRawOrRCDATA reads until the next "</foo>", where "foo" is z.rawTag and -// is typically something like "script" or "textarea". -func (z *Tokenizer) readRawOrRCDATA() { -loop: - for { - c := z.readByte() - if z.err != nil { - break loop - } - if c != '<' { - continue loop - } - c = z.readByte() - if z.err != nil { - break loop - } - if c != '/' { - continue loop - } - for i := 0; i < len(z.rawTag); i++ { - c = z.readByte() - if z.err != nil { - break loop - } - if c != z.rawTag[i] && c != z.rawTag[i]-('a'-'A') { - continue loop - } - } - c = z.readByte() - if z.err != nil { - break loop - } - switch c { - case ' ', '\n', '\r', '\t', '\f', '/', '>': - // The 3 is 2 for the leading "</" plus 1 for the trailing character c. - z.raw.end -= 3 + len(z.rawTag) - break loop - case '<': - // Step back one, to catch "</foo</foo>". - z.raw.end-- - } - } - z.data.end = z.raw.end - // A textarea's or title's RCDATA can contain escaped entities. - z.textIsRaw = z.rawTag != "textarea" && z.rawTag != "title" - z.rawTag = "" -} - -// readComment reads the next comment token starting with "<!--". The opening -// "<!--" has already been consumed. -func (z *Tokenizer) readComment() { - z.data.start = z.raw.end - defer func() { - if z.data.end < z.data.start { - // It's a comment with no data, like <!-->. - z.data.end = z.data.start - } - }() - for dashCount := 2; ; { - c := z.readByte() - if z.err != nil { - // Ignore up to two dashes at EOF. - if dashCount > 2 { - dashCount = 2 - } - z.data.end = z.raw.end - dashCount - return - } - switch c { - case '-': - dashCount++ - continue - case '>': - if dashCount >= 2 { - z.data.end = z.raw.end - len("-->") - return - } - case '!': - if dashCount >= 2 { - c = z.readByte() - if z.err != nil { - z.data.end = z.raw.end - return - } - if c == '>' { - z.data.end = z.raw.end - len("--!>") - return - } - } - } - dashCount = 0 - } -} - -// readUntilCloseAngle reads until the next ">". -func (z *Tokenizer) readUntilCloseAngle() { - z.data.start = z.raw.end - for { - c := z.readByte() - if z.err != nil { - z.data.end = z.raw.end - return - } - if c == '>' { - z.data.end = z.raw.end - len(">") - return - } - } -} - -// readMarkupDeclaration reads the next token starting with "<!". It might be -// a "<!--comment-->", a "<!DOCTYPE foo>", or "<!a bogus comment". The opening -// "<!" has already been consumed. -func (z *Tokenizer) readMarkupDeclaration() TokenType { - z.data.start = z.raw.end - var c [2]byte - for i := 0; i < 2; i++ { - c[i] = z.readByte() - if z.err != nil { - z.data.end = z.raw.end - return CommentToken - } - } - if c[0] == '-' && c[1] == '-' { - z.readComment() - return CommentToken - } - z.raw.end -= 2 - const s = "DOCTYPE" - for i := 0; i < len(s); i++ { - c := z.readByte() - if z.err != nil { - z.data.end = z.raw.end - return CommentToken - } - if c != s[i] && c != s[i]+('a'-'A') { - // Back up to read the fragment of "DOCTYPE" again. - z.raw.end = z.data.start - z.readUntilCloseAngle() - return CommentToken - } - } - if z.skipWhiteSpace(); z.err != nil { - z.data.start = z.raw.end - z.data.end = z.raw.end - return DoctypeToken - } - z.readUntilCloseAngle() - return DoctypeToken -} - -// startTagIn returns whether the start tag in z.buf[z.data.start:z.data.end] -// case-insensitively matches any element of ss. -func (z *Tokenizer) startTagIn(ss ...string) bool { -loop: - for _, s := range ss { - if z.data.end-z.data.start != len(s) { - continue loop - } - for i := 0; i < len(s); i++ { - c := z.buf[z.data.start+i] - if 'A' <= c && c <= 'Z' { - c += 'a' - 'A' - } - if c != s[i] { - continue loop - } - } - return true - } - return false -} - -// readStartTag reads the next start tag token. The opening "<a" has already -// been consumed, where 'a' means anything in [A-Za-z]. -func (z *Tokenizer) readStartTag() TokenType { - z.attr = z.attr[:0] - z.nAttrReturned = 0 - // Read the tag name and attribute key/value pairs. - z.readTagName() - if z.skipWhiteSpace(); z.err != nil { - return ErrorToken - } - for { - c := z.readByte() - if z.err != nil || c == '>' { - break - } - z.raw.end-- - z.readTagAttrKey() - z.readTagAttrVal() - // Save pendingAttr if it has a non-empty key. - if z.pendingAttr[0].start != z.pendingAttr[0].end { - z.attr = append(z.attr, z.pendingAttr) - } - if z.skipWhiteSpace(); z.err != nil { - break - } - } - // Several tags flag the tokenizer's next token as raw. - c, raw := z.buf[z.data.start], false - if 'A' <= c && c <= 'Z' { - c += 'a' - 'A' - } - switch c { - case 'i': - raw = z.startTagIn("iframe") - case 'n': - raw = z.startTagIn("noembed", "noframes", "noscript") - case 'p': - raw = z.startTagIn("plaintext") - case 's': - raw = z.startTagIn("script", "style") - case 't': - raw = z.startTagIn("textarea", "title") - case 'x': - raw = z.startTagIn("xmp") - } - if raw { - z.rawTag = strings.ToLower(string(z.buf[z.data.start:z.data.end])) - } - // Look for a self-closing token like "<br/>". - if z.err == nil && z.buf[z.raw.end-2] == '/' { - return SelfClosingTagToken - } - return StartTagToken -} - -// readEndTag reads the next end tag token. The opening "</a" has already -// been consumed, where 'a' means anything in [A-Za-z]. -func (z *Tokenizer) readEndTag() { - z.attr = z.attr[:0] - z.nAttrReturned = 0 - z.readTagName() - for { - c := z.readByte() - if z.err != nil || c == '>' { - return - } - } -} - -// readTagName sets z.data to the "div" in "<div k=v>". The reader (z.raw.end) -// is positioned such that the first byte of the tag name (the "d" in "<div") -// has already been consumed. -func (z *Tokenizer) readTagName() { - z.data.start = z.raw.end - 1 - for { - c := z.readByte() - if z.err != nil { - z.data.end = z.raw.end - return - } - switch c { - case ' ', '\n', '\r', '\t', '\f': - z.data.end = z.raw.end - 1 - return - case '/', '>': - z.raw.end-- - z.data.end = z.raw.end - return - } - } -} - -// readTagAttrKey sets z.pendingAttr[0] to the "k" in "<div k=v>". -// Precondition: z.err == nil. -func (z *Tokenizer) readTagAttrKey() { - z.pendingAttr[0].start = z.raw.end - for { - c := z.readByte() - if z.err != nil { - z.pendingAttr[0].end = z.raw.end - return - } - switch c { - case ' ', '\n', '\r', '\t', '\f', '/': - z.pendingAttr[0].end = z.raw.end - 1 - return - case '=', '>': - z.raw.end-- - z.pendingAttr[0].end = z.raw.end - return - } - } -} - -// readTagAttrVal sets z.pendingAttr[1] to the "v" in "<div k=v>". -func (z *Tokenizer) readTagAttrVal() { - z.pendingAttr[1].start = z.raw.end - z.pendingAttr[1].end = z.raw.end - if z.skipWhiteSpace(); z.err != nil { - return - } - c := z.readByte() - if z.err != nil { - return - } - if c != '=' { - z.raw.end-- - return - } - if z.skipWhiteSpace(); z.err != nil { - return - } - quote := z.readByte() - if z.err != nil { - return - } - switch quote { - case '>': - z.raw.end-- - return - - case '\'', '"': - z.pendingAttr[1].start = z.raw.end - for { - c := z.readByte() - if z.err != nil { - z.pendingAttr[1].end = z.raw.end - return - } - if c == quote { - z.pendingAttr[1].end = z.raw.end - 1 - return - } - } - - default: - z.pendingAttr[1].start = z.raw.end - 1 - for { - c := z.readByte() - if z.err != nil { - z.pendingAttr[1].end = z.raw.end - return - } - switch c { - case ' ', '\n', '\r', '\t', '\f': - z.pendingAttr[1].end = z.raw.end - 1 - return - case '>': - z.raw.end-- - z.pendingAttr[1].end = z.raw.end - return - } - } - } -} - -// Next scans the next token and returns its type. -func (z *Tokenizer) Next() TokenType { - if z.err != nil { - z.tt = ErrorToken - return z.tt - } - z.raw.start = z.raw.end - z.data.start = z.raw.end - z.data.end = z.raw.end - if z.rawTag != "" { - if z.rawTag == "plaintext" { - // Read everything up to EOF. - for z.err == nil { - z.readByte() - } - z.textIsRaw = true - } else { - z.readRawOrRCDATA() - } - if z.data.end > z.data.start { - z.tt = TextToken - return z.tt - } - } - z.textIsRaw = false - -loop: - for { - c := z.readByte() - if z.err != nil { - break loop - } - if c != '<' { - continue loop - } - - // Check if the '<' we have just read is part of a tag, comment - // or doctype. If not, it's part of the accumulated text token. - c = z.readByte() - if z.err != nil { - break loop - } - var tokenType TokenType - switch { - case 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z': - tokenType = StartTagToken - case c == '/': - tokenType = EndTagToken - case c == '!' || c == '?': - // We use CommentToken to mean any of "<!--actual comments-->", - // "<!DOCTYPE declarations>" and "<?xml processing instructions?>". - tokenType = CommentToken - default: - continue - } - - // We have a non-text token, but we might have accumulated some text - // before that. If so, we return the text first, and return the non- - // text token on the subsequent call to Next. - if x := z.raw.end - len("<a"); z.raw.start < x { - z.raw.end = x - z.data.end = x - z.tt = TextToken - return z.tt - } - switch tokenType { - case StartTagToken: - z.tt = z.readStartTag() - return z.tt - case EndTagToken: - c = z.readByte() - if z.err != nil { - break loop - } - if c == '>' { - // "</>" does not generate a token at all. - // Reset the tokenizer state and start again. - z.raw.start = z.raw.end - z.data.start = z.raw.end - z.data.end = z.raw.end - continue loop - } - if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' { - z.readEndTag() - z.tt = EndTagToken - return z.tt - } - z.raw.end-- - z.readUntilCloseAngle() - z.tt = CommentToken - return z.tt - case CommentToken: - if c == '!' { - z.tt = z.readMarkupDeclaration() - return z.tt - } - z.raw.end-- - z.readUntilCloseAngle() - z.tt = CommentToken - return z.tt - } - } - if z.raw.start < z.raw.end { - z.data.end = z.raw.end - z.tt = TextToken - return z.tt - } - z.tt = ErrorToken - return z.tt -} - -// Raw returns the unmodified text of the current token. Calling Next, Token, -// Text, TagName or TagAttr may change the contents of the returned slice. -func (z *Tokenizer) Raw() []byte { - return z.buf[z.raw.start:z.raw.end] -} - -// Text returns the unescaped text of a text, comment or doctype token. The -// contents of the returned slice may change on the next call to Next. -func (z *Tokenizer) Text() []byte { - switch z.tt { - case TextToken, CommentToken, DoctypeToken: - s := z.buf[z.data.start:z.data.end] - z.data.start = z.raw.end - z.data.end = z.raw.end - if !z.textIsRaw { - s = unescape(s) - } - return s - } - return nil -} - -// TagName returns the lower-cased name of a tag token (the `img` out of -// `<IMG SRC="foo">`) and whether the tag has attributes. -// The contents of the returned slice may change on the next call to Next. -func (z *Tokenizer) TagName() (name []byte, hasAttr bool) { - if z.data.start < z.data.end { - switch z.tt { - case StartTagToken, EndTagToken, SelfClosingTagToken: - s := z.buf[z.data.start:z.data.end] - z.data.start = z.raw.end - z.data.end = z.raw.end - return lower(s), z.nAttrReturned < len(z.attr) - } - } - return nil, false -} - -// TagAttr returns the lower-cased key and unescaped value of the next unparsed -// attribute for the current tag token and whether there are more attributes. -// The contents of the returned slices may change on the next call to Next. -func (z *Tokenizer) TagAttr() (key, val []byte, moreAttr bool) { - if z.nAttrReturned < len(z.attr) { - switch z.tt { - case StartTagToken, SelfClosingTagToken: - x := z.attr[z.nAttrReturned] - z.nAttrReturned++ - key = z.buf[x[0].start:x[0].end] - val = z.buf[x[1].start:x[1].end] - return lower(key), unescape(val), z.nAttrReturned < len(z.attr) - } - } - return nil, nil, false -} - -// Token returns the next Token. The result's Data and Attr values remain valid -// after subsequent Next calls. -func (z *Tokenizer) Token() Token { - t := Token{Type: z.tt} - switch z.tt { - case TextToken, CommentToken, DoctypeToken: - t.Data = string(z.Text()) - case StartTagToken, SelfClosingTagToken: - var attr []Attribute - name, moreAttr := z.TagName() - for moreAttr { - var key, val []byte - key, val, moreAttr = z.TagAttr() - attr = append(attr, Attribute{"", string(key), string(val)}) - } - t.Data = string(name) - t.Attr = attr - case EndTagToken: - name, _ := z.TagName() - t.Data = string(name) - } - return t -} - -// NewTokenizer returns a new HTML Tokenizer for the given Reader. -// The input is assumed to be UTF-8 encoded. -func NewTokenizer(r io.Reader) *Tokenizer { - return &Tokenizer{ - r: r, - buf: make([]byte, 0, 4096), - } -} diff --git a/src/pkg/html/token_test.go b/src/pkg/html/token_test.go deleted file mode 100644 index 672d60c420..0000000000 --- a/src/pkg/html/token_test.go +++ /dev/null @@ -1,590 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package html - -import ( - "bytes" - "io" - "strings" - "testing" -) - -type tokenTest struct { - // A short description of the test case. - desc string - // The HTML to parse. - html string - // The string representations of the expected tokens, joined by '$'. - golden string -} - -var tokenTests = []tokenTest{ - { - "empty", - "", - "", - }, - // A single text node. The tokenizer should not break text nodes on whitespace, - // nor should it normalize whitespace within a text node. - { - "text", - "foo bar", - "foo bar", - }, - // An entity. - { - "entity", - "one < two", - "one < two", - }, - // A start, self-closing and end tag. The tokenizer does not care if the start - // and end tokens don't match; that is the job of the parser. - { - "tags", - "<a>b<c/>d</e>", - "<a>$b$<c/>$d$</e>", - }, - // Angle brackets that aren't a tag. - { - "not a tag #0", - "<", - "<", - }, - { - "not a tag #1", - "</", - "</", - }, - { - "not a tag #2", - "</>", - "", - }, - { - "not a tag #3", - "a</>b", - "a$b", - }, - { - "not a tag #4", - "</ >", - "<!-- -->", - }, - { - "not a tag #5", - "</.", - "<!--.-->", - }, - { - "not a tag #6", - "</.>", - "<!--.-->", - }, - { - "not a tag #7", - "a < b", - "a < b", - }, - { - "not a tag #8", - "<.>", - "<.>", - }, - { - "not a tag #9", - "a<<<b>>>c", - "a<<$<b>$>>c", - }, - { - "not a tag #10", - "if x<0 and y < 0 then x*y>0", - "if x<0 and y < 0 then x*y>0", - }, - // EOF in a tag name. - { - "tag name eof #0", - "<a", - "", - }, - { - "tag name eof #1", - "<a ", - "", - }, - { - "tag name eof #2", - "a<b", - "a", - }, - { - "tag name eof #3", - "<a><b", - "<a>", - }, - { - "tag name eof #4", - `<a x`, - `<a x="">`, - }, - // Some malformed tags that are missing a '>'. - { - "malformed tag #0", - `<p</p>`, - `<p< p="">`, - }, - { - "malformed tag #1", - `<p </p>`, - `<p <="" p="">`, - }, - { - "malformed tag #2", - `<p id`, - `<p id="">`, - }, - { - "malformed tag #3", - `<p id=`, - `<p id="">`, - }, - { - "malformed tag #4", - `<p id=>`, - `<p id="">`, - }, - { - "malformed tag #5", - `<p id=0`, - `<p id="0">`, - }, - { - "malformed tag #6", - `<p id=0</p>`, - `<p id="0</p">`, - }, - { - "malformed tag #7", - `<p id="0</p>`, - `<p id="0</p>">`, - }, - { - "malformed tag #8", - `<p id="0"</p>`, - `<p id="0" <="" p="">`, - }, - // Raw text and RCDATA. - { - "basic raw text", - "<script><a></b></script>", - "<script>$<a></b>$</script>", - }, - { - "unfinished script end tag", - "<SCRIPT>a</SCR", - "<script>$a</SCR", - }, - { - "broken script end tag", - "<SCRIPT>a</SCR ipt>", - "<script>$a</SCR ipt>", - }, - { - "EOF in script end tag", - "<SCRIPT>a</SCRipt", - "<script>$a</SCRipt", - }, - { - "scriptx end tag", - "<SCRIPT>a</SCRiptx", - "<script>$a</SCRiptx", - }, - { - "' ' completes script end tag", - "<SCRIPT>a</SCRipt ", - "<script>$a$</script>", - }, - { - "'>' completes script end tag", - "<SCRIPT>a</SCRipt>", - "<script>$a$</script>", - }, - { - "self-closing script end tag", - "<SCRIPT>a</SCRipt/>", - "<script>$a$</script>", - }, - { - "nested script tag", - "<SCRIPT>a</SCRipt<script>", - "<script>$a</SCRipt<script>", - }, - { - "script end tag after unfinished", - "<SCRIPT>a</SCRipt</script>", - "<script>$a</SCRipt$</script>", - }, - { - "script/style mismatched tags", - "<script>a</style>", - "<script>$a</style>", - }, - { - "style element with entity", - "<style>'", - "<style>$&apos;", - }, - { - "textarea with tag", - "<textarea><div></textarea>", - "<textarea>$<div>$</textarea>", - }, - { - "title with tag and entity", - "<title><b>K&R C</b></title>", - "<title>$<b>K&R C</b>$</title>", - }, - // DOCTYPE tests. - { - "Proper DOCTYPE", - "<!DOCTYPE html>", - "<!DOCTYPE html>", - }, - { - "DOCTYPE with no space", - "<!doctypehtml>", - "<!DOCTYPE html>", - }, - { - "DOCTYPE with two spaces", - "<!doctype html>", - "<!DOCTYPE html>", - }, - { - "looks like DOCTYPE but isn't", - "<!DOCUMENT html>", - "<!--DOCUMENT html-->", - }, - { - "DOCTYPE at EOF", - "<!DOCtype", - "<!DOCTYPE >", - }, - // XML processing instructions. - { - "XML processing instruction", - "<?xml?>", - "<!--?xml?-->", - }, - // Comments. - { - "comment0", - "abc<b><!-- skipme --></b>def", - "abc$<b>$<!-- skipme -->$</b>$def", - }, - { - "comment1", - "a<!-->z", - "a$<!---->$z", - }, - { - "comment2", - "a<!--->z", - "a$<!---->$z", - }, - { - "comment3", - "a<!--x>-->z", - "a$<!--x>-->$z", - }, - { - "comment4", - "a<!--x->-->z", - "a$<!--x->-->$z", - }, - { - "comment5", - "a<!>z", - "a$<!---->$z", - }, - { - "comment6", - "a<!->z", - "a$<!----->$z", - }, - { - "comment7", - "a<!---<>z", - "a$<!---<>z-->", - }, - { - "comment8", - "a<!--z", - "a$<!--z-->", - }, - { - "comment9", - "a<!--z-", - "a$<!--z-->", - }, - { - "comment10", - "a<!--z--", - "a$<!--z-->", - }, - { - "comment11", - "a<!--z---", - "a$<!--z--->", - }, - { - "comment12", - "a<!--z----", - "a$<!--z---->", - }, - { - "comment13", - "a<!--x--!>z", - "a$<!--x-->$z", - }, - // An attribute with a backslash. - { - "backslash", - `<p id="a\"b">`, - `<p id="a\" b"="">`, - }, - // Entities, tag name and attribute key lower-casing, and whitespace - // normalization within a tag. - { - "tricky", - "<p \t\n iD=\"a"B\" foo=\"bar\"><EM>te<&;xt</em></p>", - `<p id="a"B" foo="bar">$<em>$te<&;xt$</em>$</p>`, - }, - // A nonexistent entity. Tokenizing and converting back to a string should - // escape the "&" to become "&". - { - "noSuchEntity", - `<a b="c&noSuchEntity;d"><&alsoDoesntExist;&`, - `<a b="c&noSuchEntity;d">$<&alsoDoesntExist;&`, - }, - /* - // TODO: re-enable this test when it works. This input/output matches html5lib's behavior. - { - "entity without semicolon", - `¬it;∉<a b="q=z&=5¬ice=hello¬=world">`, - `¬it;∉$<a b="q=z&amp=5&notice=hello¬=world">`, - }, - */ - { - "entity with digits", - "½", - "½", - }, - // Attribute tests: - // http://dev.w3.org/html5/spec/Overview.html#attributes-0 - { - "Empty attribute", - `<input disabled FOO>`, - `<input disabled="" foo="">`, - }, - { - "Empty attribute, whitespace", - `<input disabled FOO >`, - `<input disabled="" foo="">`, - }, - { - "Unquoted attribute value", - `<input value=yes FOO=BAR>`, - `<input value="yes" foo="BAR">`, - }, - { - "Unquoted attribute value, spaces", - `<input value = yes FOO = BAR>`, - `<input value="yes" foo="BAR">`, - }, - { - "Unquoted attribute value, trailing space", - `<input value=yes FOO=BAR >`, - `<input value="yes" foo="BAR">`, - }, - { - "Single-quoted attribute value", - `<input value='yes' FOO='BAR'>`, - `<input value="yes" foo="BAR">`, - }, - { - "Single-quoted attribute value, trailing space", - `<input value='yes' FOO='BAR' >`, - `<input value="yes" foo="BAR">`, - }, - { - "Double-quoted attribute value", - `<input value="I'm an attribute" FOO="BAR">`, - `<input value="I'm an attribute" foo="BAR">`, - }, - { - "Attribute name characters", - `<meta http-equiv="content-type">`, - `<meta http-equiv="content-type">`, - }, - { - "Mixed attributes", - `a<P V="0 1" w='2' X=3 y>z`, - `a$<p v="0 1" w="2" x="3" y="">$z`, - }, - { - "Attributes with a solitary single quote", - `<p id=can't><p id=won't>`, - `<p id="can't">$<p id="won't">`, - }, -} - -func TestTokenizer(t *testing.T) { -loop: - for _, tt := range tokenTests { - z := NewTokenizer(strings.NewReader(tt.html)) - if tt.golden != "" { - for i, s := range strings.Split(tt.golden, "$") { - if z.Next() == ErrorToken { - t.Errorf("%s token %d: want %q got error %v", tt.desc, i, s, z.Err()) - continue loop - } - actual := z.Token().String() - if s != actual { - t.Errorf("%s token %d: want %q got %q", tt.desc, i, s, actual) - continue loop - } - } - } - z.Next() - if z.Err() != io.EOF { - t.Errorf("%s: want EOF got %q", tt.desc, z.Err()) - } - } -} - -type unescapeTest struct { - // A short description of the test case. - desc string - // The HTML text. - html string - // The unescaped text. - unescaped string -} - -var unescapeTests = []unescapeTest{ - // Handle no entities. - { - "copy", - "A\ttext\nstring", - "A\ttext\nstring", - }, - // Handle simple named entities. - { - "simple", - "& > <", - "& > <", - }, - // Handle hitting the end of the string. - { - "stringEnd", - "& &", - "& &", - }, - // Handle entities with two codepoints. - { - "multiCodepoint", - "text ⋛︀ blah", - "text \u22db\ufe00 blah", - }, - // Handle decimal numeric entities. - { - "decimalEntity", - "Delta = Δ ", - "Delta = Δ ", - }, - // Handle hexadecimal numeric entities. - { - "hexadecimalEntity", - "Lambda = λ = λ ", - "Lambda = λ = λ ", - }, - // Handle numeric early termination. - { - "numericEnds", - "&# &#x €43 © = ©f = ©", - "&# &#x €43 © = ©f = ©", - }, - // Handle numeric ISO-8859-1 entity replacements. - { - "numericReplacements", - "Footnote‡", - "Footnote‡", - }, -} - -func TestUnescape(t *testing.T) { - for _, tt := range unescapeTests { - unescaped := UnescapeString(tt.html) - if unescaped != tt.unescaped { - t.Errorf("TestUnescape %s: want %q, got %q", tt.desc, tt.unescaped, unescaped) - } - } -} - -func TestUnescapeEscape(t *testing.T) { - ss := []string{ - ``, - `abc def`, - `a & b`, - `a&b`, - `a & b`, - `"`, - `"`, - `"<&>"`, - `"<&>"`, - `3&5==1 && 0<1, "0<1", a+acute=á`, - } - for _, s := range ss { - if s != UnescapeString(EscapeString(s)) { - t.Errorf("s != UnescapeString(EscapeString(s)), s=%q", s) - } - } -} - -func TestBufAPI(t *testing.T) { - s := "0<a>1</a>2<b>3<a>4<a>5</a>6</b>7</a>8<a/>9" - z := NewTokenizer(bytes.NewBuffer([]byte(s))) - result := bytes.NewBuffer(nil) - depth := 0 -loop: - for { - tt := z.Next() - switch tt { - case ErrorToken: - if z.Err() != io.EOF { - t.Error(z.Err()) - } - break loop - case TextToken: - if depth > 0 { - result.Write(z.Text()) - } - case StartTagToken, EndTagToken: - tn, _ := z.TagName() - if len(tn) == 1 && tn[0] == 'a' { - if tt == StartTagToken { - depth++ - } else { - depth-- - } - } - } - } - u := "14567" - v := string(result.Bytes()) - if u != v { - t.Errorf("TestBufAPI: want %q got %q", u, v) - } -} |
