forked from mttsner/luautil
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathquote_test.go
66 lines (54 loc) · 1.37 KB
/
quote_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package luautil
import (
"strconv"
"testing"
)
func TestAll(t *testing.T) {
var test []byte
var expected string
for i := 0; i < 256; i++ {
test = append(test, byte(i))
expected += "\\" + strconv.Itoa(i)
}
result := Quote(string(test))
if expected != result {
t.Errorf("Expected got %s", result)
}
}
func TestEscapes(t *testing.T) {
test := "\\ \" \a \b \t \n \v \f \r"
expected := `"\\ \" \a \b \t \n \v \f \r"`
result := Quote(test)
if expected != result {
t.Errorf("Expected %s, got %s", expected, result)
}
}
func TestValid(t *testing.T) {
test := " !#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~"
expected := "\" !#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~\""
result := Quote(test)
if expected != result {
t.Errorf("Expected %s, got %s", expected, result)
}
}
func TestExtended(t *testing.T) {
var test []byte
expected := `"`
for i := 0; i < 7; i++ {
test = append(test, byte(i))
expected += "\\00" + strconv.Itoa(i)
}
for i := 14; i < 32; i++ {
test = append(test, byte(i))
expected += "\\0" + strconv.Itoa(i)
}
for i := 127; i < 256; i++ {
test = append(test, byte(i))
expected += "\\" + strconv.Itoa(i)
}
expected += `"`
result := Quote(string(test))
if expected != result {
t.Errorf("Expected %s, got %s", expected, result)
}
}