返回 DeepSeek-Reasonix
image_test.go
根目录 / internal / provider / image_test.go
1 package provider
2
3 import "testing"
4
5 func TestClassifyImage(t *testing.T) {
6 cases := []struct {
7 in string
8 want ImageKind
9 }{
10 {"data:image/png;base64,AQIDBA==", ImageDataURL},
11 {"https://cdn.example.com/cat.png", ImageHTTPURL},
12 {"https://cdn.example.com/cat.png?w=800", ImageHTTPURL},
13 {"http://cdn.example.com/shot.WEBP", ImageHTTPURL},
14 {"file-api-0a1b2c3d4e5f60718293a4b5c6d7e8f9", ImageFileID},
15 {"https://example.com/readme.md", ImageNone},
16 {"https://user:pass@cdn.example.com/cat.png", ImageNone},
17 {"file-api-", ImageNone},
18 {"", ImageNone},
19 }
20 for _, tc := range cases {
21 if got := ClassifyImage(tc.in); got != tc.want {
22 t.Errorf("ClassifyImage(%q) = %v, want %v", tc.in, got, tc.want)
23 }
24 }
25 }
26
27 func TestParseImageDataURL(t *testing.T) {
28 mt, data, ok := ParseImageDataURL("data:image/png;base64,AQIDBA==")
29 if !ok || mt != "image/png" || data != "AQIDBA==" {
30 t.Fatalf("got (%q, %q, %v), want (image/png, AQIDBA==, true)", mt, data, ok)
31 }
32 for _, bad := range []string{
33 "",
34 "data:image/png,AQID", // not base64-encoded
35 "http://example.com/x.png", // not a data URL
36 "data:image/png;base64", // no payload separator
37 "data:;base64,AAAA", // empty media type
38 } {
39 if _, _, ok := ParseImageDataURL(bad); ok {
40 t.Errorf("ParseImageDataURL(%q) = ok, want not-ok", bad)
41 }
42 }
43 }
44
44 lines GO