photoprism/internal/search/photos_filter_type_test.go
Michael Mayer 9b3efe6872 Search: Update number of expected results in filter tests #2040
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-10-06 02:34:21 +02:00

671 lines
11 KiB
Go

package search
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/photoprism/photoprism/internal/form"
)
func TestPhotosFilterType(t *testing.T) {
t.Run("video", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "video"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 3)
})
t.Run("raw", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "raw"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 2)
})
t.Run("animated", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "animated"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 1)
})
t.Run("raw pipe video", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "raw|video"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 5)
})
t.Run("raw whitespace pipe whitespace video", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "raw | video"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 5)
})
t.Run("raw or video", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "raw or video"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("raw OR video", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "raw OR video"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("StartsWithPercent", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "%gold"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("CenterPercent", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "I love % dog"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("EndsWithPercent", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "sale%"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("StartsWithAmpersand", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "&IlikeFood"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("CenterAmpersand", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "Pets & Dogs"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("EndsWithAmpersand", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "Light&"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("StartsWithSingleQuote", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "'Family"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("CenterSingleQuote", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "Father's type"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("EndsWithSingleQuote", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "Ice Cream'"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("StartsWithAsterisk", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "*Forrest"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("CenterAsterisk", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "My*Kids"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("EndsWithAsterisk", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "Yoga***"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("StartsWithPipe", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "|Banana"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("CenterPipe", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "Red|Green"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("EndsWithPipe", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "Blue|"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("StartsWithNumber", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "345 Shirt"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("CenterNumber", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "type555 Blue"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("EndsWithNumber", func(t *testing.T) {
var f form.SearchPhotos
f.Type = "Route 66"
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
}
func TestPhotosQueryType(t *testing.T) {
t.Run("video", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"video\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 3)
})
t.Run("raw", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"raw\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 2)
})
t.Run("animated", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"animated\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 1)
})
t.Run("raw pipe video", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"raw|video\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 5)
})
t.Run("raw whitespace pipe whitespace video", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"raw | video\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 5)
})
t.Run("raw or video", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"raw or video\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("raw OR video", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"raw OR video\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("StartsWithPercent", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"%gold\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("CenterPercent", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"I love % dog\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("EndsWithPercent", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"sale%\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("StartsWithAmpersand", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"&IlikeFood\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("CenterAmpersand", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"Pets & Dogs\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("EndsWithAmpersand", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"Light&\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("StartsWithSingleQuote", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"'Family\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("CenterSingleQuote", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"Father's type\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("EndsWithSingleQuote", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"Ice Cream'\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("StartsWithAsterisk", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"*Forrest\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("CenterAsterisk", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"My*Kids\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("EndsWithAsterisk", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"Yoga***\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("StartsWithPipe", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"|Banana\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("CenterPipe", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"Red|Green\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("EndsWithPipe", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"Blue|\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("StartsWithNumber", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"345 Shirt\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("CenterNumber", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"type555 Blue\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
t.Run("EndsWithNumber", func(t *testing.T) {
var f form.SearchPhotos
f.Query = "type:\"Route 66\""
f.Merged = true
photos, _, err := Photos(f)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, len(photos), 0)
})
}