Removed ValueString method
This commit is contained in:
parent
e3cedf5de7
commit
24f8fe6ba9
15
hatmill.go
15
hatmill.go
@ -36,13 +36,6 @@ type Attrib struct {
|
|||||||
Value fmt.Stringer
|
Value fmt.Stringer
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a Attrib) ValueString() string {
|
|
||||||
if a.Value == nil {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
return html.EscapeString(a.Value.String())
|
|
||||||
}
|
|
||||||
|
|
||||||
// WriteTo writes a to w as an HTML attribute in the form key="value", or
|
// WriteTo writes a to w as an HTML attribute in the form key="value", or
|
||||||
// simply key if value is empty. Special characters in value are replaced with
|
// simply key if value is empty. Special characters in value are replaced with
|
||||||
// HTML entities. It returns the number of bytes written and any
|
// HTML entities. It returns the number of bytes written and any
|
||||||
@ -52,8 +45,12 @@ func (a Attrib) WriteTo(w io.Writer) (n int64, err error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if a.ValueString() != "" {
|
var value string
|
||||||
err = writeStringsTo(w, &n, "='", a.ValueString(), "'")
|
if a.Value != nil {
|
||||||
|
value = html.EscapeString(a.Value.String())
|
||||||
|
}
|
||||||
|
if value != "" {
|
||||||
|
err = writeStringsTo(w, &n, "='", value, "'")
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -70,25 +70,27 @@ func stringNotEmpty(v interface{}) bool {
|
|||||||
|
|
||||||
var nonEmptyAlphaString = gen.AlphaString().SuchThat(stringNotEmpty)
|
var nonEmptyAlphaString = gen.AlphaString().SuchThat(stringNotEmpty)
|
||||||
|
|
||||||
type valueString string
|
type stringStringer string
|
||||||
|
|
||||||
func (s valueString) String() string {
|
func (s stringStringer) String() string {
|
||||||
return string(s)
|
return string(s)
|
||||||
}
|
}
|
||||||
|
|
||||||
func attribGen(value gopter.Gen) gopter.Gen {
|
func attribGen(value gopter.Gen) gopter.Gen {
|
||||||
return gen.Struct(reflect.TypeOf(hatmill.Attrib{}), map[string]gopter.Gen{
|
return gen.Struct(reflect.TypeOf(hatmill.Attrib{}),
|
||||||
"Key": nonEmptyAlphaString,
|
map[string]gopter.Gen{
|
||||||
"Value": value.Map(func(v string) fmt.Stringer {
|
"Key": nonEmptyAlphaString,
|
||||||
return valueString(v)
|
"Value": value.Map(func(s string) fmt.Stringer {
|
||||||
}),
|
return stringStringer(s)
|
||||||
})
|
}),
|
||||||
|
},
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAttrib(t *testing.T) {
|
func TestAttrib(t *testing.T) {
|
||||||
properties := gopter.NewProperties(nil)
|
properties := gopter.NewProperties(nil)
|
||||||
|
|
||||||
properties.Property("WriteTo only writes key when value is empty", prop.ForAll(
|
properties.Property("WriteTo only writes key when value is nil", prop.ForAll(
|
||||||
func(key string) bool {
|
func(key string) bool {
|
||||||
attrib := hatmill.Attrib{
|
attrib := hatmill.Attrib{
|
||||||
Key: key,
|
Key: key,
|
||||||
@ -98,9 +100,20 @@ func TestAttrib(t *testing.T) {
|
|||||||
nonEmptyAlphaString,
|
nonEmptyAlphaString,
|
||||||
))
|
))
|
||||||
|
|
||||||
properties.Property("writes key=value with ValueString() when value is not empty", prop.ForAll(
|
properties.Property("WriteTo only writes key when value.String() is empty", prop.ForAll(
|
||||||
|
func(key string) bool {
|
||||||
|
attrib := hatmill.Attrib{
|
||||||
|
Key: key,
|
||||||
|
Value: stringStringer(""),
|
||||||
|
}
|
||||||
|
return checkWrite(attrib, key)
|
||||||
|
},
|
||||||
|
nonEmptyAlphaString,
|
||||||
|
))
|
||||||
|
|
||||||
|
properties.Property("writes key=value with with escaped value.String() when value is not nil and value.String() is not empty", prop.ForAll(
|
||||||
func(attrib hatmill.Attrib) bool {
|
func(attrib hatmill.Attrib) bool {
|
||||||
expected := fmt.Sprintf("%s='%s'", attrib.Key, attrib.ValueString())
|
expected := fmt.Sprintf("%s='%s'", attrib.Key, html.EscapeString(attrib.Value.String()))
|
||||||
return checkWrite(attrib, expected)
|
return checkWrite(attrib, expected)
|
||||||
},
|
},
|
||||||
attribGen(dangerousASCII.SuchThat(stringNotEmpty)),
|
attribGen(dangerousASCII.SuchThat(stringNotEmpty)),
|
||||||
|
Loading…
Reference in New Issue
Block a user