1
2
3
4
5
6
7 package comment
8
9 import "testing"
10
11 var oldHeadingTests = []struct {
12 line string
13 ok bool
14 }{
15 {"Section", true},
16 {"A typical usage", true},
17 {"ΔΛΞ is Greek", true},
18 {"Foo 42", true},
19 {"", false},
20 {"section", false},
21 {"A typical usage:", false},
22 {"This code:", false},
23 {"δ is Greek", false},
24 {"Foo §", false},
25 {"Fermat's Last Sentence", true},
26 {"Fermat's", true},
27 {"'sX", false},
28 {"Ted 'Too' Bar", false},
29 {"Use n+m", false},
30 {"Scanning:", false},
31 {"N:M", false},
32 }
33
34 func TestIsOldHeading(t *testing.T) {
35 for _, tt := range oldHeadingTests {
36 if isOldHeading(tt.line, []string{"Text.", "", tt.line, "", "Text."}, 2) != tt.ok {
37 t.Errorf("isOldHeading(%q) = %v, want %v", tt.line, !tt.ok, tt.ok)
38 }
39 }
40 }
41
42 var autoURLTests = []struct {
43 in, out string
44 }{
45 {"", ""},
46 {"http://[::1]:8080/foo.txt", "http://[::1]:8080/foo.txt"},
47 {"https://www.google.com) after", "https://www.google.com"},
48 {"https://www.google.com:30/x/y/z:b::c. After", "https://www.google.com:30/x/y/z:b::c"},
49 {"http://www.google.com/path/:;!-/?query=%34b#093124", "http://www.google.com/path/:;!-/?query=%34b#093124"},
50 {"http://www.google.com/path/:;!-/?query=%34bar#093124", "http://www.google.com/path/:;!-/?query=%34bar#093124"},
51 {"http://www.google.com/index.html! After", "http://www.google.com/index.html"},
52 {"http://www.google.com/", "http://www.google.com/"},
53 {"https://www.google.com/", "https://www.google.com/"},
54 {"http://www.google.com/path.", "http://www.google.com/path"},
55 {"http://en.wikipedia.org/wiki/Camellia_(cipher)", "http://en.wikipedia.org/wiki/Camellia_(cipher)"},
56 {"http://www.google.com/)", "http://www.google.com/"},
57 {"http://gmail.com)", "http://gmail.com"},
58 {"http://gmail.com))", "http://gmail.com"},
59 {"http://gmail.com ((http://gmail.com)) ()", "http://gmail.com"},
60 {"http://example.com/ quux!", "http://example.com/"},
61 {"http://example.com/%2f/ /world.", "http://example.com/%2f/"},
62 {"http: ipsum //host/path", ""},
63 {"javascript://is/not/linked", ""},
64 {"http://foo", "http://foo"},
65 {"https://www.example.com/person/][Person Name]]", "https://www.example.com/person/"},
66 {"http://golang.org/)", "http://golang.org/"},
67 {"http://golang.org/hello())", "http://golang.org/hello()"},
68 {"http://git.qemu.org/?p=qemu.git;a=blob;f=qapi-schema.json;hb=HEAD", "http://git.qemu.org/?p=qemu.git;a=blob;f=qapi-schema.json;hb=HEAD"},
69 {"https://foo.bar/bal/x(])", "https://foo.bar/bal/x"},
70 {"http://bar(])", "http://bar"},
71 }
72
73 func TestAutoURL(t *testing.T) {
74 for _, tt := range autoURLTests {
75 url, ok := autoURL(tt.in)
76 if url != tt.out || ok != (tt.out != "") {
77 t.Errorf("autoURL(%q) = %q, %v, want %q, %v", tt.in, url, ok, tt.out, tt.out != "")
78 }
79 }
80 }
81
View as plain text