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") } }