blob: 944f94d16d9ae8bf1afafc317002d11dc9de01e1 [file] [log] [blame]
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// These tests are carried forward from the old go/doc implementation.
package comment
import "testing"
var oldHeadingTests = []struct {
line string
ok bool
}{
{"Section", true},
{"A typical usage", true},
{"ΔΛΞ is Greek", true},
{"Foo 42", true},
{"", false},
{"section", false},
{"A typical usage:", false},
{"This code:", false},
{"δ is Greek", false},
{"Foo §", false},
{"Fermat's Last Sentence", true},
{"Fermat's", true},
{"'sX", false},
{"Ted 'Too' Bar", false},
{"Use n+m", false},
{"Scanning:", false},
{"N:M", false},
}
func TestIsOldHeading(t *testing.T) {
for _, tt := range oldHeadingTests {
if isOldHeading(tt.line, []string{"Text.", "", tt.line, "", "Text."}, 2) != tt.ok {
t.Errorf("isOldHeading(%q) = %v, want %v", tt.line, !tt.ok, tt.ok)
}
}
}
var autoURLTests = []struct {
in, out string
}{
{"", ""},
{"http://[::1]:8080/foo.txt", "http://[::1]:8080/foo.txt"},
{"https://www.google.com) after", "https://www.google.com"},
{"https://www.google.com:30/x/y/z:b::c. After", "https://www.google.com:30/x/y/z:b::c"},
{"http://www.google.com/path/:;!-/?query=%34b#093124", "http://www.google.com/path/:;!-/?query=%34b#093124"},
{"http://www.google.com/path/:;!-/?query=%34bar#093124", "http://www.google.com/path/:;!-/?query=%34bar#093124"},
{"http://www.google.com/index.html! After", "http://www.google.com/index.html"},
{"http://www.google.com/", "http://www.google.com/"},
{"https://www.google.com/", "https://www.google.com/"},
{"http://www.google.com/path.", "http://www.google.com/path"},
{"http://en.wikipedia.org/wiki/Camellia_(cipher)", "http://en.wikipedia.org/wiki/Camellia_(cipher)"},
{"http://www.google.com/)", "http://www.google.com/"},
{"http://gmail.com)", "http://gmail.com"},
{"http://gmail.com))", "http://gmail.com"},
{"http://gmail.com ((http://gmail.com)) ()", "http://gmail.com"},
{"http://example.com/ quux!", "http://example.com/"},
{"http://example.com/%2f/ /world.", "http://example.com/%2f/"},
{"http: ipsum //host/path", ""},
{"javascript://is/not/linked", ""},
{"http://foo", "http://foo"},
{"https://www.example.com/person/][Person Name]]", "https://www.example.com/person/"},
{"http://golang.org/)", "http://golang.org/"},
{"http://golang.org/hello())", "http://golang.org/hello()"},
{"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"},
{"https://foo.bar/bal/x(])", "https://foo.bar/bal/x"}, // inner ] causes (]) to be cut off from URL
{"http://bar(])", "http://bar"}, // same
}
func TestAutoURL(t *testing.T) {
for _, tt := range autoURLTests {
url, ok := autoURL(tt.in)
if url != tt.out || ok != (tt.out != "") {
t.Errorf("autoURL(%q) = %q, %v, want %q, %v", tt.in, url, ok, tt.out, tt.out != "")
}
}
}