Commit 776cdefc authored by Leigh McCulloch's avatar Leigh McCulloch Committed by Ian Lance Taylor

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/73890Reviewed-by: default avatarSam Whited <sam@samwhited.com>
Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
Run-TryBot: Sam Whited <sam@samwhited.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent 541bf9f8
......@@ -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)
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment