Files
photoprism/pkg/fs/ext_list_test.go
2025-03-25 11:58:59 +01:00

148 lines
3.9 KiB
Go

package fs
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestNewExtLists(t *testing.T) {
t.Run("WithExtensions", func(t *testing.T) {
lists := NewExtLists()
lists["foo"] = NewExtList("RAF, Cr3, aaf ")
assert.True(t, lists["foo"].Contains(".raf"))
assert.True(t, lists["foo"].Contains("cr3"))
assert.True(t, lists["foo"].Contains("AAF"))
assert.False(t, lists["foo"].Contains(""))
assert.False(t, lists["foo"].Contains(".raw"))
assert.False(t, lists["foo"].Contains("raw"))
})
}
func TestNewExtList(t *testing.T) {
t.Run("WithExtensions", func(t *testing.T) {
list := NewExtList("RAF, Cr3, aaf ")
assert.True(t, list.Contains(".raf"))
assert.True(t, list.Contains("cr3"))
assert.True(t, list.Contains("AAF"))
assert.False(t, list.Contains(""))
assert.False(t, list.Contains(".raw"))
assert.False(t, list.Contains("raw"))
})
}
func TestExtList_Ok(t *testing.T) {
t.Run("CanonCR2", func(t *testing.T) {
list := NewExtList("cr2")
assert.False(t, list.Allow(".cr2"))
assert.True(t, list.Contains(".cr2"))
})
t.Run("Raw", func(t *testing.T) {
list := NewExtList("RAF, Cr3, aaf ")
assert.False(t, list.Allow(".raf"))
assert.False(t, list.Allow("cr3"))
assert.False(t, list.Allow("AAF"))
assert.True(t, list.Allow(""))
assert.True(t, list.Allow(".raw"))
assert.True(t, list.Allow("raw"))
})
}
func TestExtList_Contains(t *testing.T) {
t.Run("Success", func(t *testing.T) {
list := NewExtList("dng")
assert.True(t, list.Contains("dng"))
assert.False(t, list.Contains("cr2"))
})
t.Run("Empty", func(t *testing.T) {
list := NewExtList("")
assert.False(t, list.Contains(""))
})
}
func TestExtList_Excludes(t *testing.T) {
t.Run("Success", func(t *testing.T) {
list := NewExtList("dng")
assert.False(t, list.Excludes("dng"))
assert.True(t, list.Excludes("cr2"))
})
t.Run("Empty", func(t *testing.T) {
list := NewExtList("")
assert.False(t, list.Excludes(""))
assert.False(t, list.Excludes("dng"))
assert.False(t, list.Excludes("cr2"))
})
}
func TestExtList_Set(t *testing.T) {
t.Run("Success", func(t *testing.T) {
list := NewExtList("dng")
assert.True(t, list.Contains("dng"))
assert.False(t, list.Contains("cr2"))
list.Set("cr2")
assert.True(t, list.Contains("dng"))
assert.True(t, list.Contains("cr2"))
})
t.Run("Empty", func(t *testing.T) {
list := NewExtList("dng")
assert.True(t, list.Contains("dng"))
assert.False(t, list.Contains("cr2"))
list.Set("")
assert.True(t, list.Contains("dng"))
assert.False(t, list.Contains("cr2"))
})
}
func TestExtList_Add(t *testing.T) {
t.Run("Success", func(t *testing.T) {
list := NewExtList("dng")
assert.True(t, list.Contains("dng"))
assert.False(t, list.Contains("cr2"))
list.Add("cr2")
assert.True(t, list.Contains("dng"))
assert.True(t, list.Contains("cr2"))
})
t.Run("Empty", func(t *testing.T) {
list := NewExtList("dng")
assert.True(t, list.Contains("dng"))
assert.False(t, list.Contains("cr2"))
list.Add("")
assert.True(t, list.Contains("dng"))
assert.False(t, list.Contains("cr2"))
})
}
func TestExtList_String(t *testing.T) {
t.Run("One", func(t *testing.T) {
list := NewExtList("jpg")
assert.Equal(t, "jpg", list.String())
})
t.Run("Two", func(t *testing.T) {
list := NewExtList("dng, CR2")
assert.Equal(t, "cr2, dng", list.String())
})
t.Run("Empty", func(t *testing.T) {
list := NewExtList("")
assert.Equal(t, "", list.String())
})
}
func TestExtList_Accept(t *testing.T) {
t.Run("One", func(t *testing.T) {
list := NewExtList("jpg")
assert.Equal(t, ".jpg", list.Accept())
})
t.Run("Two", func(t *testing.T) {
list := NewExtList("mp4, avi")
assert.Equal(t, ".avi,.mp4", list.Accept())
})
t.Run("Jpeg", func(t *testing.T) {
list := NewExtList("jpg,jpeg,jxl")
assert.Equal(t, ".jpeg,.jpg,.jxl", list.Accept())
})
t.Run("Empty", func(t *testing.T) {
list := NewExtList("")
assert.Equal(t, "", list.Accept())
})
}