mirror of
https://github.com/FairwindsOps/polaris.git
synced 2026-05-10 03:07:12 +00:00
109 lines
2.4 KiB
Go
109 lines
2.4 KiB
Go
// Copyright 2015 The Authors. All rights reserved.
|
||
// Use of this source code is governed by a BSD-style
|
||
// license that can be found in the LICENSE file.
|
||
|
||
package html
|
||
|
||
import (
|
||
"testing"
|
||
)
|
||
|
||
var parseEntityTests = []struct {
|
||
in string
|
||
length int
|
||
str string
|
||
}{
|
||
{in: "&;"},
|
||
{in: "&"},
|
||
{in: "&@;"},
|
||
{in: "&@"},
|
||
{in: "&#;"},
|
||
{in: "&#"},
|
||
{in: "&##;"},
|
||
{in: "&##"},
|
||
{in: "�"},
|
||
{in: "	"},
|
||
{in: "�a;"},
|
||
{in: "�a"},
|
||
{in: """, length: 5, str: `"`},
|
||
{in: "�", length: 11, str: BadEntity},
|
||
{in: "	", length: 4, str: "\t"},
|
||
{in: "&ffffffffffffffffuuuuuuuuuuuuuuuu;"},
|
||
{in: "&ffffffffffffffffuuuuuuuuuuuuuuuu"},
|
||
{in: "&q;"},
|
||
{in: "&q"},
|
||
{in: "&q#;"},
|
||
{in: "&q#"},
|
||
{in: "&Q"},
|
||
{in: "&q0;"},
|
||
{in: "&q0"},
|
||
{in: "&qu;"},
|
||
{in: "&qu"},
|
||
{in: """, length: 6, str: `"`},
|
||
{in: "&#x;"},
|
||
{in: "&#x"},
|
||
{in: "&#X;"},
|
||
{in: "&#X"},
|
||
{in: "�"},
|
||
{in: "�@;"},
|
||
{in: "�@"},
|
||
{in: "�"},
|
||
{in: ""},
|
||
{in: ""},
|
||
{in: "	"},
|
||
{in: "	", length: 6, str: "\t"},
|
||
{in: "	", length: 6, str: "\t"},
|
||
{in: "
", length: 6, str: "\n"},
|
||
{in: "
", length: 6, str: "\n"},
|
||
{in: "
", length: 6, str: "\n"},
|
||
{in: "
", length: 6, str: "\n"},
|
||
{in: """, length: 6, str: `"`},
|
||
{in: "�", length: 12, str: BadEntity},
|
||
{in: "
"},
|
||
{in: "
"},
|
||
{in: "
"},
|
||
{in: "
"},
|
||
{in: "�"},
|
||
{in: "�"},
|
||
{in: "�", length: 12, str: BadEntity},
|
||
{in: "&#xG;"},
|
||
{in: "&#xG"},
|
||
{in: "&#XG;"},
|
||
{in: "&#XG"},
|
||
}
|
||
|
||
var replaceEntitiesTests = []struct {
|
||
in string
|
||
out string // empty means == in
|
||
}{
|
||
{"", ""},
|
||
{"a b c d e f g h i j k l m n o p q r s t u v w x y z", ""},
|
||
{"&", ""},
|
||
{" & © "", ` & © "`},
|
||
{"" " "", `" " "`},
|
||
{"&x; &#; &#x; &ThisIsWayTooLongToBeAnEntityIsntIt; &hi?; © &MadeUpEntity;", ""},
|
||
}
|
||
|
||
func TestParseEntity(t *testing.T) {
|
||
for _, tc := range parseEntityTests {
|
||
str, length := ParseEntity(tc.in)
|
||
if str != tc.str || length != tc.length {
|
||
t.Errorf("ParseEntity(%q): want %d,%q, got %d,%q", tc.in,
|
||
tc.length, tc.str, length, str)
|
||
}
|
||
}
|
||
}
|
||
|
||
func TestUnescapeString(t *testing.T) {
|
||
for _, tc := range replaceEntitiesTests {
|
||
got := UnescapeString(tc.in)
|
||
want := tc.out
|
||
if want == "" {
|
||
want = tc.in
|
||
}
|
||
if got != want {
|
||
t.Errorf("UnescapeString(%q): want %q, got %q", tc.in, want, got)
|
||
}
|
||
}
|
||
}
|