gogs/internal/strutil/strutil_test.go

58 lines
1.1 KiB
Go

// Copyright 2020 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package strutil
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestToUpperFirst(t *testing.T) {
tests := []struct {
name string
s string
expStr string
}{
{
name: "empty string",
},
{
name: "first letter is a digit",
s: "123 let's go",
expStr: "123 let's go",
},
{
name: "lower to upper",
s: "this is a sentence",
expStr: "This is a sentence",
},
{
name: "already in upper case",
s: "Let's go",
expStr: "Let's go",
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
assert.Equal(t, test.expStr, ToUpperFirst(test.s))
})
}
}
func TestRandomChars(t *testing.T) {
cache := make(map[string]bool)
for i := 0; i < 100; i++ {
chars, err := RandomChars(10)
if err != nil {
t.Fatal(err)
}
if cache[chars] {
t.Fatalf("Duplicated chars %q", chars)
}
cache[chars] = true
}
}