mirror of
https://github.com/golang/go
synced 2024-11-19 20:54:39 -07:00
encoding/xml: add docs and tests for bool whitespace
Whitespace is ignored in bool values and attrs, but there are no tests capturing this behavior. Change-Id: I7a7249de4886f510869e91de937e69b83c3254c8 Reviewed-on: https://go-review.googlesource.com/73890 Reviewed-by: Sam Whited <sam@samwhited.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Sam Whited <sam@samwhited.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
541bf9f8ea
commit
776cdefc07
@ -107,7 +107,8 @@ import (
|
|||||||
// to the newly created value.
|
// to the newly created value.
|
||||||
//
|
//
|
||||||
// Unmarshal maps an XML element or attribute value to a bool by
|
// Unmarshal maps an XML element or attribute value to a bool by
|
||||||
// setting it to the boolean value represented by the string.
|
// setting it to the boolean value represented by the string. Whitespace
|
||||||
|
// is trimmed and ignored.
|
||||||
//
|
//
|
||||||
// Unmarshal maps an XML element or attribute value to an integer or
|
// Unmarshal maps an XML element or attribute value to an integer or
|
||||||
// floating-point field by setting the field to the result of
|
// floating-point field by setting the field to the result of
|
||||||
|
@ -908,3 +908,60 @@ func TestUnmarshalEmptyValues(t *testing.T) {
|
|||||||
t.Fatalf("populated: Unmarshal:\nhave: %#+v\nwant: %#+v", v, want)
|
t.Fatalf("populated: Unmarshal:\nhave: %#+v\nwant: %#+v", v, want)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type WhitespaceValuesParent struct {
|
||||||
|
BFalse bool
|
||||||
|
BTrue bool
|
||||||
|
}
|
||||||
|
|
||||||
|
const whitespaceValuesXML = `
|
||||||
|
<WhitespaceValuesParent>
|
||||||
|
<BFalse> false </BFalse>
|
||||||
|
<BTrue> true </BTrue>
|
||||||
|
</WhitespaceValuesParent>
|
||||||
|
`
|
||||||
|
|
||||||
|
// golang.org/issues/22146
|
||||||
|
func TestUnmarshalWhitespaceValues(t *testing.T) {
|
||||||
|
v := WhitespaceValuesParent{}
|
||||||
|
if err := Unmarshal([]byte(whitespaceValuesXML), &v); err != nil {
|
||||||
|
t.Fatalf("whitespace values: Unmarshal failed: got %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
want := WhitespaceValuesParent{
|
||||||
|
BFalse: false,
|
||||||
|
BTrue: true,
|
||||||
|
}
|
||||||
|
if v != want {
|
||||||
|
t.Fatalf("whitespace values: Unmarshal:\nhave: %#+v\nwant: %#+v", v, want)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type WhitespaceAttrsParent struct {
|
||||||
|
BFalse bool `xml:",attr"`
|
||||||
|
BTrue bool `xml:",attr"`
|
||||||
|
}
|
||||||
|
|
||||||
|
const whitespaceAttrsXML = `
|
||||||
|
<WhitespaceAttrsParent
|
||||||
|
BFalse=" false "
|
||||||
|
BTrue=" true "
|
||||||
|
>
|
||||||
|
</WhitespaceAttrsParent>
|
||||||
|
`
|
||||||
|
|
||||||
|
// golang.org/issues/22146
|
||||||
|
func TestUnmarshalWhitespaceAttrs(t *testing.T) {
|
||||||
|
v := WhitespaceAttrsParent{}
|
||||||
|
if err := Unmarshal([]byte(whitespaceAttrsXML), &v); err != nil {
|
||||||
|
t.Fatalf("whitespace attrs: Unmarshal failed: got %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
want := WhitespaceAttrsParent{
|
||||||
|
BFalse: false,
|
||||||
|
BTrue: true,
|
||||||
|
}
|
||||||
|
if v != want {
|
||||||
|
t.Fatalf("whitespace attrs: Unmarshal:\nhave: %#+v\nwant: %#+v", v, want)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user