OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgo/] [go/] [go/] [doc/] [comment_test.go] - Rev 774

Go to most recent revision | Compare with Previous | Blame | View Log

// 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.

package doc

import (
        "bytes"
        "reflect"
        "testing"
)

var headingTests = []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 TestIsHeading(t *testing.T) {
        for _, tt := range headingTests {
                if h := heading(tt.line); (len(h) > 0) != tt.ok {
                        t.Errorf("isHeading(%q) = %v, want %v", tt.line, h, tt.ok)
                }
        }
}

var blocksTests = []struct {
        in  string
        out []block
}{
        {
                in: `Para 1.
Para 1 line 2.

Para 2.

Section

Para 3.

        pre
        pre1

Para 4.
        pre
        pre2
`,
                out: []block{
                        {opPara, []string{"Para 1.\n", "Para 1 line 2.\n"}},
                        {opPara, []string{"Para 2.\n"}},
                        {opHead, []string{"Section"}},
                        {opPara, []string{"Para 3.\n"}},
                        {opPre, []string{"pre\n", "pre1\n"}},
                        {opPara, []string{"Para 4.\n"}},
                        {opPre, []string{"pre\n", "pre2\n"}},
                },
        },
}

func TestBlocks(t *testing.T) {
        for i, tt := range blocksTests {
                b := blocks(tt.in)
                if !reflect.DeepEqual(b, tt.out) {
                        t.Errorf("#%d: mismatch\nhave: %v\nwant: %v", i, b, tt.out)
                }
        }
}

var emphasizeTests = []struct {
        in  string
        out string
}{
        {"http://www.google.com/", `<a href="http://www.google.com/">http://www.google.com/</a>`},
        {"https://www.google.com/", `<a href="https://www.google.com/">https://www.google.com/</a>`},
        {"http://www.google.com/path.", `<a href="http://www.google.com/path">http://www.google.com/path</a>.`},
        {"(http://www.google.com/)", `(<a href="http://www.google.com/">http://www.google.com/</a>)`},
        {"Foo bar http://example.com/ quux!", `Foo bar <a href="http://example.com/">http://example.com/</a> quux!`},
        {"Hello http://example.com/%2f/ /world.", `Hello <a href="http://example.com/%2f/">http://example.com/%2f/</a> /world.`},
        {"Lorem http: ipsum //host/path", "Lorem http: ipsum //host/path"},
        {"javascript://is/not/linked", "javascript://is/not/linked"},
}

func TestEmphasize(t *testing.T) {
        for i, tt := range emphasizeTests {
                var buf bytes.Buffer
                emphasize(&buf, tt.in, nil, true)
                out := buf.String()
                if out != tt.out {
                        t.Errorf("#%d: mismatch\nhave: %v\nwant: %v", i, out, tt.out)
                }
        }
}

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.