package html // import "github.com/tdewolff/parse/html" import ( "testing" "github.com/tdewolff/test" ) func TestEscapeAttrVal(t *testing.T) { var escapeAttrValTests = []struct { attrVal string expected string }{ {"xyz", "xyz"}, {"", ""}, {"x&z", "x&z"}, {"x/z", "x/z"}, {"x'z", "\"x'z\""}, {"x\"z", "'x\"z'"}, {"'x\"z'", "'x\"z'"}, {"'x'\"'z'", "\"x'"'z\""}, {"\"x"'"z\"", "'x\"'\"z'"}, {"\"x'z\"", "\"x'z\""}, {"'x"z'", "'x\"z'"}, {"'x\">'", "'x\">'"}, {"You're encouraged to log in; however, it's not mandatory. [o]", "\"You're encouraged to log in; however, it's not mandatory. [o]\""}, {"a'b=\"\"", "'a'b=\"\"'"}, {"x 1 && (b[0] == '"' || b[0] == '\'') && b[0] == b[len(b)-1] { b = b[1 : len(b)-1] } val := EscapeAttrVal(&buf, orig, []byte(b)) test.String(t, string(val), tt.expected) }) } }