summaryrefslogtreecommitdiffstats
path: root/simpletext_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'simpletext_test.go')
-rw-r--r--simpletext_test.go179
1 files changed, 104 insertions, 75 deletions
diff --git a/simpletext_test.go b/simpletext_test.go
index 8fdf754..d75a741 100644
--- a/simpletext_test.go
+++ b/simpletext_test.go
@@ -3,21 +3,21 @@ package cnm
import "testing"
var simpleEscapes = map[string]string{
- "": ``,
- "ContNet": `ContNet`,
- "\t": `\t`,
- "\n": `\n`,
- "\f": `\f`,
- "\r": `\r`,
- " ": `\ `,
- "\\": `\\`,
- "\x00": `\x00`,
- " ": `\ \ \ \ `,
- " ": `\ \ \ \ `,
- " ": `\ \ \ `,
- " ": `\ \ \ `,
- " ": `\ \ `,
- " ": `\ \ `,
+ "": ``,
+ "ContNet": `ContNet`,
+ "\t": `\t`,
+ "\n": `\n`,
+ "\f": `\f`,
+ "\r": `\r`,
+ " ": `\ `,
+ "\\": `\\`,
+ "\x00": `\x00`,
+ " ": `\ \ \ \ `,
+ " ": `\ \ \ \ `,
+ " ": `\ \ \ `,
+ " ": `\ \ \ `,
+ " ": `\ \ `,
+ " ": `\ \ `,
"\b\v\\\x00\xff\u00ff\\xff": "\b\v\\\\\\x00\xff\u00ff\\\\xff",
}
@@ -33,21 +33,21 @@ func TestEscape(t *testing.T) {
}
var nonspaceEscapes = map[string]string{
- "": ``,
- "ContNet": `ContNet`,
- "\t": "\t",
- "\n": "\n",
- "\f": `\f`,
- "\r": `\r`,
- " ": ` `,
- "\\": `\\`,
- "\x00": `\x00`,
- " ": ` `,
- " ": ` `,
- " ": ` `,
- " ": ` `,
- " ": ` `,
- " ": ` `,
+ "": ``,
+ "ContNet": `ContNet`,
+ "\t": "\t",
+ "\n": "\n",
+ "\f": `\f`,
+ "\r": `\r`,
+ " ": ` `,
+ "\\": `\\`,
+ "\x00": `\x00`,
+ " ": ` `,
+ " ": ` `,
+ " ": ` `,
+ " ": ` `,
+ " ": ` `,
+ " ": ` `,
"\b\v\\\x00\xff\u00ff\\xff": "\b\v\\\\\\x00\xff\u00ff\\\\xff",
}
@@ -63,21 +63,21 @@ func TestEscapeNonspace(t *testing.T) {
}
var spaceEscapes = map[string]string{
- "": ``,
- "ContNet": `ContNet`,
- "\t": `\t`,
- "\n": `\n`,
- "\f": "\f",
- "\r": "\r",
- " ": `\ `,
- "\\": `\`,
- "\x00": "\x00",
- " ": `\ \ \ \ `,
- " ": `\ \ \ \ `,
- " ": `\ \ \ `,
- " ": `\ \ \ `,
- " ": `\ \ `,
- " ": `\ \ `,
+ "": ``,
+ "ContNet": `ContNet`,
+ "\t": `\t`,
+ "\n": `\n`,
+ "\f": "\f",
+ "\r": "\r",
+ " ": `\ `,
+ "\\": `\`,
+ "\x00": "\x00",
+ " ": `\ \ \ \ `,
+ " ": `\ \ \ \ `,
+ " ": `\ \ \ `,
+ " ": `\ \ \ `,
+ " ": `\ \ `,
+ " ": `\ \ `,
"\b\v\\\x00\xff\u00ff\\xff": "\b\v\\\x00\xff\u00ff\\xff",
}
@@ -92,37 +92,66 @@ func TestEscapeSpace(t *testing.T) {
}
}
+var allEscapes = map[string]string{
+ "": ``,
+ "ContNet": `ContNet`,
+ "\t": `\t`,
+ "\n": `\n`,
+ "\f": `\f`,
+ "\r": `\r`,
+ " ": `\ `,
+ "\\": `\\`,
+ "\x00": `\x00`,
+ " ": `\ \ \ \ \ \ \ `,
+ " ": `\ \ \ \ \ \ `,
+ " ": `\ \ \ \ `,
+ " ": `\ \ \ `,
+ " ": `\ \ `,
+ "\b\v\\\x00\xff\u00ff\\xff": "\b\v\\\\\\x00\xff\u00ff\\\\xff",
+}
+
+func TestEscapeAll(t *testing.T) {
+ for k, v := range allEscapes {
+ t.Run(k, func(t *testing.T) {
+ e := EscapeAll(k)
+ if e != v {
+ t.Errorf("EscapeAll(%q) -> %q, expected %q", k, e, v)
+ }
+ })
+ }
+}
+
var simpleUnescapes = map[string]string{
- ``: "",
- `ContNet`: "ContNet",
- `\b`: "\b",
- `\t`: "\t",
- `\n`: "\n",
- `\v`: "\v",
- `\f`: "\f",
- `\r`: "\r",
- `\ `: " ",
- `\\`: "\\",
- `\`: "\\",
- `\x00`: "\x00",
- `a\nb\ c\rd\be\\f`: "a\nb c\rd\be\\f",
- `\n\n\n`: "\n\n\n",
- `\x00\xff\n\x123`: "\x00\u00ff\n\x123",
- " \b\\b\t\n\v\f\r\\x00\x00\\\\xff": " \b\b\t\n\v\f\r\x00\x00\\xff",
- `\xAA\xAa\xaA\xaa`: "\u00aa\u00aa\u00aa\u00aa",
- `\x00\xfg`: "\x00\\xfg",
- `\\\\\\`: "\\\\\\",
- "\b5Ὂg̀9!\\n℃ᾭG": "\b5Ὂg̀9!\n℃ᾭG",
- "\xff\\x00\xee\xaa\xee": "\xff\x00\xee\xaa\xee",
- "\\x00\x10\\ \x30\x40": "\x00\x10\x20\x30\x40",
- "\x10\x50\x90\xe0": "\x10\x50\x90\xe0",
- `Hello,\ 世界`: "Hello, 世界",
- "\xed\x9f\xbf": "\xed\x9f\xbf",
- "\xee\x80\x80": "\xee\x80\x80",
- "\xef\xbf\xbd": "\xef\xbf\xbd",
- "\x80\x80\x80\x80": "\x80\x80\x80\x80",
- `\ \ \ `: " ",
- `\uffff\u0000\u0123\ufedc\ufffe`: "\uffff\u0000\u0123\ufedc\ufffe",
+ ``: "",
+ `ContNet`: "ContNet",
+ `\b`: "\b",
+ `\t`: "\t",
+ `\n`: "\n",
+ `\v`: "\v",
+ `\f`: "\f",
+ `\r`: "\r",
+ `\ `: " ",
+ `\\`: "\\",
+ `\`: "\\",
+ `\x00`: "\x00",
+ `a\nb\ c\rd\be\\f`: "a\nb c\rd\be\\f",
+ `\n\n\n`: "\n\n\n",
+ `\x00\xff\n\x123`: "\x00\u00ff\n\x123",
+ " \b\\b\t\n\v\f\r\\x00\x00\\\\xff": " \b\b\t\n\v\f\r\x00\x00\\xff",
+ `\xAA\xAa\xaA\xaa`: "\u00aa\u00aa\u00aa\u00aa",
+ `\x00\xfg`: "\x00\\xfg",
+ `\\\\\\`: "\\\\\\",
+ "\b5Ὂg̀9!\\n℃ᾭG": "\b5Ὂg̀9!\n℃ᾭG",
+ "\xff\\x00\xee\xaa\xee": "\xff\x00\xee\xaa\xee",
+ "\\x00\x10\\ \x30\x40": "\x00\x10\x20\x30\x40",
+ "\x10\x50\x90\xe0": "\x10\x50\x90\xe0",
+ `Hello,\ 世界`: "Hello, 世界",
+ "\xed\x9f\xbf": "\xed\x9f\xbf",
+ "\xee\x80\x80": "\xee\x80\x80",
+ "\xef\xbf\xbd": "\xef\xbf\xbd",
+ "\x80\x80\x80\x80": "\x80\x80\x80\x80",
+ `\ \ \ `: " ",
+ `\uffff\u0000\u0123\ufedc\ufffe`: "\uffff\u0000\u0123\ufedc\ufffe",
`\Uffff0000\U0003fedc\U0010ffff\U00110000`: "\ufffd\U0003fedc\U0010ffff\ufffd",
`\x0x\u012x\U0123456x`: "\\x0x\\u012x\\U0123456x",
`\U0123456`: "\\U0123456",