forked from mojocn/base64Captcha
-
Notifications
You must be signed in to change notification settings - Fork 0
/
item_audio_test.go
122 lines (114 loc) · 2.62 KB
/
item_audio_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
// Copyright 2017 Eric Zhou. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package base64Captcha
import (
"bytes"
"fmt"
"testing"
"time"
)
func Test_newAudio(t *testing.T) {
type args struct {
id string
digits []byte
lang string
}
tests := []struct {
name string
args args
want *ItemAudio
}{
{"zh3", args{RandomId(), randomDigits(3), "zh"}, nil},
{"en4", args{RandomId(), randomDigits(4), "en"}, nil},
{"ru2", args{RandomId(), randomDigits(2), "ru"}, nil},
{"jp5", args{RandomId(), randomDigits(5), "jp"}, nil},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := newAudio(tt.args.id, tt.args.digits, tt.args.lang)
if got == nil {
t.Errorf("newAudio() = %v, want %v", got, tt.want)
}
})
}
}
func TestItemAudio_encodedLen(t *testing.T) {
ia := newAudio(RandomId(), randomDigits(3), "zh")
tests := []struct {
name string
a *ItemAudio
want int
}{
{"encode", ia, 1},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := tt.a.encodedLen(); got < tt.want {
t.Errorf("ItemAudio.encodedLen() = %v, want %v", got, tt.want)
}
})
}
}
func TestItemAudio_longestDigitSndLen(t *testing.T) {
baseS := "0123456789abcdef"
base := int64(len(baseS))
num := time.Now().UnixNano()
fmt.Printf("%x\n", num)
newB := []byte{}
for {
idx := num % base
bbb := []byte{byte(baseS[idx])}
newB = append(bbb, newB...)
num = num / base
if num == 0 {
break
}
}
t.Log(string(newB))
}
func TestItemAudio_WriteTo(t *testing.T) {
ia := newAudio(RandomId(), randomDigits(3), "zh")
tests := []struct {
name string
a *ItemAudio
wantN int64
wantW string
wantErr bool
}{
{"one", ia, 0, "", false},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
w := &bytes.Buffer{}
gotN, err := tt.a.WriteTo(w)
if (err != nil) != tt.wantErr {
t.Errorf("ItemAudio.WriteTo() error = %v, wantErr %v", err, tt.wantErr)
return
}
if gotN < 1 {
t.Errorf("ItemAudio.WriteTo() = %v, want %v", gotN, tt.wantN)
}
if gotW := w.String(); len(gotW) < 1 {
t.Errorf("ItemAudio.WriteTo() = %v, want %v", gotW, tt.wantW)
}
})
}
}
func TestItemAudio_EncodeB64string(t *testing.T) {
ia := newAudio(RandomId(), randomDigits(5), "en")
tests := []struct {
name string
a *ItemAudio
want string
}{
{"b64", ia, ""},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := tt.a.EncodeB64string(); len(got) < 1 {
t.Errorf("ItemAudio.EncodeB64string() = %v, want %v", got, tt.want)
}
})
}
}