diff --git a/cmd/fdroidcl/endtoend_test.go b/cmd/fdroidcl/endtoend_test.go index 1d7ecee..2d3576a 100644 --- a/cmd/fdroidcl/endtoend_test.go +++ b/cmd/fdroidcl/endtoend_test.go @@ -5,14 +5,22 @@ package main import ( "io/ioutil" + "net/http" "os" "os/exec" "path/filepath" "regexp" "testing" + "time" ) func TestEndToEnd(t *testing.T) { + url := config.Repos[0].URL + client := http.Client{Timeout: 2 * time.Second} + if _, err := client.Get(url); err != nil { + t.Skipf("skipping since %s is unreachable: %v", url, err) + } + dir, err := ioutil.TempDir("", "fdroidcl") if err != nil { t.Fatal(err) @@ -53,6 +61,19 @@ func TestEndToEnd(t *testing.T) { t.Run("UpdateCached", func(t *testing.T) { mustSucceed(t, `not modified`, "update") }) + + t.Run("SearchNoArgs", func(t *testing.T) { + mustSucceed(t, `F-Droid`, "search") + }) + t.Run("SearchWithArgs", func(t *testing.T) { + mustSucceed(t, `F-Droid`, "search", "fdroid.fdroid") + }) + t.Run("SearchWithArgsNone", func(t *testing.T) { + mustSucceed(t, `^$`, "search", "nomatches") + }) + t.Run("SearchOnlyPackageNames", func(t *testing.T) { + mustSucceed(t, `^[^ ]*$`, "search", "-q", "fdroid.fdroid") + }) } func mustRun(t *testing.T, success bool, wantRe, name string, args ...string) {