aurora / internal /imageflow /flow_test.go
qwen2api's picture
Upload 113 files
6bc074c verified
Raw
History Blame Contribute Delete
3.25 kB
package imageflow
import (
"testing"
)
func TestNormalizeImageURL_Empty(t *testing.T) {
_, ok, err := NormalizeImageURL(nil, "")
if err != nil {
t.Errorf("unexpected error: %v", err)
}
if ok {
t.Error("expected ok=false for empty string")
}
}
func TestNormalizeImageURL_Whitespace(t *testing.T) {
_, ok, err := NormalizeImageURL(nil, " ")
if err != nil {
t.Errorf("unexpected error: %v", err)
}
if ok {
t.Error("expected ok=false for whitespace string")
}
}
func TestDecodeDataURL_ValidPNG(t *testing.T) {
// data:image/png;base64,iVBORw0KGgo=
dataURL := "data:image/png;base64,iVBORw0KGgo="
src, ok, err := decodeDataURL(dataURL)
if err != nil {
t.Errorf("unexpected error: %v", err)
}
if !ok {
t.Error("expected ok=true")
}
if src.ContentType != "image/png" {
t.Errorf("expected content type image/png, got %s", src.ContentType)
}
if src.Filename != "image_url.png" {
t.Errorf("expected filename image_url.png, got %s", src.Filename)
}
}
func TestDecodeDataURL_Invalid(t *testing.T) {
_, _, err := decodeDataURL("not-a-data-url")
if err == nil {
t.Error("expected error for invalid data URL")
}
}
func TestNormalizeMultipartImages_Empty(t *testing.T) {
result := NormalizeMultipartImages(nil)
if len(result) != 0 {
t.Errorf("expected empty result, got %d items", len(result))
}
}
func TestCollectResponsesAPIParts_Nil(t *testing.T) {
text, urls := CollectResponsesAPIParts(nil)
if text != "" {
t.Errorf("expected empty text, got %q", text)
}
if len(urls) != 0 {
t.Errorf("expected empty urls, got %d items", len(urls))
}
}
func TestCollectResponsesAPIParts_String(t *testing.T) {
text, urls := CollectResponsesAPIParts("hello world")
if text != "hello world" {
t.Errorf("expected 'hello world', got %q", text)
}
if len(urls) != 0 {
t.Errorf("expected empty urls, got %d items", len(urls))
}
}
func TestCollectResponsesAPIParts_TextPart(t *testing.T) {
input := []interface{}{
map[string]interface{}{
"type": "input_text",
"text": "describe this image",
},
}
text, urls := CollectResponsesAPIParts(input)
if text != "describe this image" {
t.Errorf("expected 'describe this image', got %q", text)
}
if len(urls) != 0 {
t.Errorf("expected empty urls, got %d items", len(urls))
}
}
func TestCollectResponsesAPIParts_ImagePart(t *testing.T) {
input := []interface{}{
map[string]interface{}{
"type": "input_image",
"image_url": "https://example.com/image.png",
},
}
text, urls := CollectResponsesAPIParts(input)
if text != "" {
t.Errorf("expected empty text, got %q", text)
}
if len(urls) != 1 || urls[0] != "https://example.com/image.png" {
t.Errorf("expected one url, got %v", urls)
}
}
func TestCollectResponsesAPIParts_MixedParts(t *testing.T) {
input := []interface{}{
map[string]interface{}{
"type": "input_text",
"text": "what is this?",
},
map[string]interface{}{
"type": "input_image",
"image_url": "https://example.com/photo.jpg",
},
}
text, urls := CollectResponsesAPIParts(input)
if text != "what is this?" {
t.Errorf("expected 'what is this?', got %q", text)
}
if len(urls) != 1 || urls[0] != "https://example.com/photo.jpg" {
t.Errorf("expected one url, got %v", urls)
}
}