Source file src/go/doc/comment/old_test.go

     1  // Copyright 2011 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // These tests are carried forward from the old go/doc implementation.
     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"}, // inner ] causes (]) to be cut off from URL
    70  	{"http://bar(])", "http://bar"},                       // same
    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