diff --git a/internal/form/geo_search_test.go b/internal/form/geo_search_test.go index d1fffc3cd..d8eb223a6 100644 --- a/internal/form/geo_search_test.go +++ b/internal/form/geo_search_test.go @@ -24,6 +24,36 @@ func TestGeoSearch(t *testing.T) { assert.Equal(t, uint(0x61a8), form.Dist) assert.Equal(t, float32(33.45343), form.Lat) }) + t.Run("valid query path empty folder not empty", func(t *testing.T) { + form := &GeoSearch{Query: "query:\"fooBar baz\" before:2019-01-15 dist:25000 lat:33.45343166666667 folder:test"} + + err := form.ParseQueryString() + + if err != nil { + t.Fatal("err should be nil") + } + + log.Debugf("%+v\n", form) + + assert.Equal(t, "fooBar baz", form.Query) + assert.Equal(t, "test", form.Path) + assert.Equal(t, "test", form.Folder) + assert.Equal(t, time.Date(2019, 01, 15, 0, 0, 0, 0, time.UTC), form.Before) + assert.Equal(t, uint(0x61a8), form.Dist) + assert.Equal(t, float32(33.45343), form.Lat) + }) +} + +func TestGeoSearch_Serialize(t *testing.T) { + form := &GeoSearch{Query: "query:\"fooBar baz\"", Favorite: true} + + assert.Equal(t, "q:\"query:fooBar baz\" favorite:true", form.Serialize()) +} + +func TestGeoSearch_SerializeAll(t *testing.T) { + form := &GeoSearch{Query: "query:\"fooBar baz\"", Favorite: true} + + assert.Equal(t, "q:\"query:fooBar baz\" favorite:true", form.SerializeAll()) } func TestNewGeoSearch(t *testing.T) { diff --git a/internal/form/login_test.go b/internal/form/login_test.go new file mode 100644 index 000000000..56034c211 --- /dev/null +++ b/internal/form/login_test.go @@ -0,0 +1,50 @@ +package form + +import ( + "github.com/stretchr/testify/assert" + "testing" +) + +func TestLogin_HasToken(t *testing.T) { + t.Run("false", func(t *testing.T) { + form := &Login{Email: "test@test.com", UserName: "John", Password: "passwd", Token: ""} + assert.Equal(t, false, form.HasToken()) + }) + t.Run("true", func(t *testing.T) { + form := &Login{Email: "test@test.com", UserName: "John", Password: "passwd", Token: "123"} + assert.Equal(t, true, form.HasToken()) + }) +} + +func TestLogin_HasUserName(t *testing.T) { + t.Run("false", func(t *testing.T) { + form := &Login{Email: "test@test.com", Password: "passwd", Token: ""} + assert.Equal(t, false, form.HasUserName()) + }) + t.Run("true", func(t *testing.T) { + form := &Login{Email: "test@test.com", UserName: "John", Password: "passwd", Token: "123"} + assert.Equal(t, true, form.HasUserName()) + }) +} + +func TestLogin_HasPassword(t *testing.T) { + t.Run("false", func(t *testing.T) { + form := &Login{Email: "test@test.com", Password: "", Token: ""} + assert.Equal(t, false, form.HasPassword()) + }) + t.Run("true", func(t *testing.T) { + form := &Login{Email: "test@test.com", UserName: "John", Password: "passwd", Token: "123"} + assert.Equal(t, true, form.HasPassword()) + }) +} + +func TestLogin_HasCredentials(t *testing.T) { + t.Run("false", func(t *testing.T) { + form := &Login{Email: "test@test.com", Password: "passwd123", Token: ""} + assert.Equal(t, false, form.HasCredentials()) + }) + t.Run("true", func(t *testing.T) { + form := &Login{Email: "test@test.com", UserName: "John", Password: "passwd", Token: "123"} + assert.Equal(t, true, form.HasCredentials()) + }) +} diff --git a/internal/form/photo_search_test.go b/internal/form/photo_search_test.go index a344b8767..3329fac5d 100644 --- a/internal/form/photo_search_test.go +++ b/internal/form/photo_search_test.go @@ -77,6 +77,21 @@ func TestParseQueryString(t *testing.T) { assert.Equal(t, false, form.Duplicate) assert.Equal(t, float32(33.45343), form.Lng) }) + t.Run("valid query with filter", func(t *testing.T) { + form := &PhotoSearch{Query: "label:cat title:\"fooBar baz\"", Filter: "label:dog"} + + err := form.ParseQueryString() + + log.Debugf("%+v\n", form) + + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, "dog", form.Label) + assert.Equal(t, "label:dog", form.Filter) + assert.Equal(t, "fooBar baz", form.Title) + }) t.Run("valid query with umlauts", func(t *testing.T) { form := &PhotoSearch{Query: "title:\"tübingen\""} @@ -192,3 +207,23 @@ func TestPhotoSearch_Serialize(t *testing.T) { assert.IsType(t, "string", result) } + +func TestPhotoSearch_SerializeAll(t *testing.T) { + form := PhotoSearch{ + Query: "foo BAR", + Private: true, + Photo: false, + Lat: 1.5, + Lng: -10.33333, + Year: 2002, + Chroma: 1, + Diff: 424242, + Before: time.Date(2019, 01, 15, 0, 0, 0, 0, time.UTC), + } + + result := form.SerializeAll() + + t.Logf("SERIALIZED: %s", result) + + assert.IsType(t, "string", result) +} diff --git a/internal/form/selection_test.go b/internal/form/selection_test.go index 45ea6170b..f5cb0f9e0 100644 --- a/internal/form/selection_test.go +++ b/internal/form/selection_test.go @@ -6,8 +6,24 @@ import ( ) func TestSelection_Empty(t *testing.T) { - t.Run("not empty", func(t *testing.T) { - sel := Selection{Photos: []string{"foo", "bar"}, Albums: []string{}, Labels: []string{}} + t.Run("not empty photos", func(t *testing.T) { + sel := Selection{Photos: []string{"foo", "bar"}, Albums: []string{}, Labels: []string{}, Files: []string{}, Places: []string{}} + assert.Equal(t, false, sel.Empty()) + }) + t.Run("not empty albums", func(t *testing.T) { + sel := Selection{Photos: []string{}, Albums: []string{"foo", "bar"}, Labels: []string{}, Files: []string{}, Places: []string{}} + assert.Equal(t, false, sel.Empty()) + }) + t.Run("not empty labels", func(t *testing.T) { + sel := Selection{Photos: []string{}, Albums: []string{}, Labels: []string{"foo", "bar"}, Files: []string{}, Places: []string{}} + assert.Equal(t, false, sel.Empty()) + }) + t.Run("not empty files", func(t *testing.T) { + sel := Selection{Photos: []string{}, Albums: []string{}, Labels: []string{}, Files: []string{"foo", "bar"}, Places: []string{}} + assert.Equal(t, false, sel.Empty()) + }) + t.Run("not empty places", func(t *testing.T) { + sel := Selection{Photos: []string{}, Albums: []string{}, Labels: []string{}, Files: []string{}, Places: []string{"foo", "bar"}} assert.Equal(t, false, sel.Empty()) }) t.Run("empty", func(t *testing.T) { @@ -15,3 +31,17 @@ func TestSelection_Empty(t *testing.T) { assert.Equal(t, true, sel.Empty()) }) } + +func TestSelection_All(t *testing.T) { + t.Run("success", func(t *testing.T) { + sel := Selection{Photos: []string{"p123", "p456"}, Albums: []string{"a123"}, Labels: []string{"l123", "l456", "l789"}, Files: []string{"f567", "f111"}, Places: []string{"p568"}} + assert.Equal(t, []string{"p123", "p456", "a123", "l123", "l456", "l789", "p568"}, sel.All()) + }) +} + +func TestSelection_String(t *testing.T) { + t.Run("success", func(t *testing.T) { + sel := Selection{Photos: []string{"p123", "p456"}, Albums: []string{"a123"}, Labels: []string{"l123", "l456", "l789"}, Files: []string{"f567", "f111"}, Places: []string{"p568"}} + assert.Equal(t, "p123, p456, a123, l123, l456, l789, p568", sel.String()) + }) +} diff --git a/internal/form/serialize_test.go b/internal/form/serialize_test.go index b25cbce34..168b4b7f4 100644 --- a/internal/form/serialize_test.go +++ b/internal/form/serialize_test.go @@ -94,4 +94,9 @@ func TestSerialize(t *testing.T) { assert.IsType(t, expectedAll, result) assert.Equal(t, expectedAll, result) }) + + t.Run("invalid argument", func(t *testing.T) { + result := Serialize("string", true) + assert.Equal(t, "", result) + }) }