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.
|
||||
//
|
||||
// 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
|
||||
// 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)
|
||||
}
|
||||
}
|
||||
|
||||
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