- 48 个 Go 文件所有注释(行注释/块注释/行尾注释,含 _test.go)翻译为中文 - 保留技术标识符:SECURITY_TODO(n)、unsafe-inline、sqlite/mysql、路由参数等 - 代码、字符串字面量、日志消息保持英文原文,零逻辑改动 - go build/vet 通过,go test -count=1 ./... 全绿
33 lines
903 B
Go
33 lines
903 B
Go
package models
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
// TestRandomAdminPassword 覆盖 SECURITY_TODO #12:首次运行的管理员密码
|
|
// 来自无歧义安全的字符表、长度固定,且每次生成结果不同。
|
|
func TestRandomAdminPassword(t *testing.T) {
|
|
pw := randomAdminPassword()
|
|
if len(pw) != 16 {
|
|
t.Fatalf("password length = %d, want 16", len(pw))
|
|
}
|
|
for _, c := range pw {
|
|
if !strings.ContainsRune(adminPasswordAlphabet, c) {
|
|
t.Fatalf("password contains rune %q outside alphabet", c)
|
|
}
|
|
}
|
|
if pw == randomAdminPassword() {
|
|
t.Fatal("two generated passwords are identical")
|
|
}
|
|
}
|
|
|
|
// TestGravatarOffByDefault 覆盖 SECURITY_TODO #15:新部署不得将 MD5(邮箱)
|
|
// 泄露给 Gravatar,除非管理员明确启用。
|
|
func TestGravatarOffByDefault(t *testing.T) {
|
|
cc := defaultCommentConfig()
|
|
if cc.UseGravatar {
|
|
t.Fatal("default CommentConfig enables Gravatar")
|
|
}
|
|
}
|