mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
xml: allow attributes without value in non-strict mode.
Attributes without value are commen in html and the xml parser will accept them in non-strict mode and use the attribute name as value. Thus parsing <p nowrap> as <p norwar="nowrap">. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/4601053
This commit is contained in:
parent
d81147b617
commit
7f3e109d2f
2 changed files with 41 additions and 9 deletions
|
|
@ -445,6 +445,33 @@ func TestUnquotedAttrs(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestValuelessAttrs(t *testing.T) {
|
||||
tests := [][3]string{
|
||||
{"<p nowrap>", "p", "nowrap"},
|
||||
{"<p nowrap >", "p", "nowrap"},
|
||||
{"<input checked/>", "input", "checked"},
|
||||
{"<input checked />", "input", "checked"},
|
||||
}
|
||||
for _, test := range tests {
|
||||
p := NewParser(StringReader(test[0]))
|
||||
p.Strict = false
|
||||
token, err := p.Token()
|
||||
if _, ok := err.(*SyntaxError); ok {
|
||||
t.Errorf("Unexpected error: %v", err)
|
||||
}
|
||||
if token.(StartElement).Name.Local != test[1] {
|
||||
t.Errorf("Unexpected tag name: %v", token.(StartElement).Name.Local)
|
||||
}
|
||||
attr := token.(StartElement).Attr[0]
|
||||
if attr.Value != test[2] {
|
||||
t.Errorf("Unexpected attribute value: %v", attr.Value)
|
||||
}
|
||||
if attr.Name.Local != test[2] {
|
||||
t.Errorf("Unexpected attribute name: %v", attr.Name.Local)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestCopyTokenCharData(t *testing.T) {
|
||||
data := []byte("same data")
|
||||
var tok1 Token = CharData(data)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue