Signed-off-by: Brian Goff <cpuguy83@gmail.com>
| ... | ... |
@@ -2,6 +2,7 @@ package main |
| 2 | 2 |
|
| 3 | 3 |
import ( |
| 4 | 4 |
"encoding/json" |
| 5 |
+ "net/url" |
|
| 5 | 6 |
"testing" |
| 6 | 7 |
|
| 7 | 8 |
"github.com/docker/docker/api/types" |
| ... | ... |
@@ -24,3 +25,45 @@ func TestLegacyImages(t *testing.T) {
|
| 24 | 24 |
|
| 25 | 25 |
logDone("images - checking legacy json")
|
| 26 | 26 |
} |
| 27 |
+ |
|
| 28 |
+func TestApiImagesFilter(t *testing.T) {
|
|
| 29 |
+ name := "utest:tag1" |
|
| 30 |
+ name2 := "utest/docker:tag2" |
|
| 31 |
+ name3 := "utest:5000/docker:tag3" |
|
| 32 |
+ defer deleteImages(name, name2, name3) |
|
| 33 |
+ dockerCmd(t, "tag", "busybox", name) |
|
| 34 |
+ dockerCmd(t, "tag", "busybox", name2) |
|
| 35 |
+ dockerCmd(t, "tag", "busybox", name3) |
|
| 36 |
+ |
|
| 37 |
+ type image struct{ RepoTags []string }
|
|
| 38 |
+ getImages := func(filter string) []image {
|
|
| 39 |
+ v := url.Values{}
|
|
| 40 |
+ v.Set("filter", filter)
|
|
| 41 |
+ _, b, err := sockRequest("GET", "/images/json?"+v.Encode(), nil)
|
|
| 42 |
+ if err != nil {
|
|
| 43 |
+ t.Fatal(err) |
|
| 44 |
+ } |
|
| 45 |
+ var images []image |
|
| 46 |
+ if err := json.Unmarshal(b, &images); err != nil {
|
|
| 47 |
+ t.Fatal(err) |
|
| 48 |
+ } |
|
| 49 |
+ |
|
| 50 |
+ return images |
|
| 51 |
+ } |
|
| 52 |
+ |
|
| 53 |
+ errMsg := "incorrect number of matches returned" |
|
| 54 |
+ if images := getImages("utest*/*"); len(images[0].RepoTags) != 2 {
|
|
| 55 |
+ t.Fatal(errMsg) |
|
| 56 |
+ } |
|
| 57 |
+ if images := getImages("utest"); len(images[0].RepoTags) != 1 {
|
|
| 58 |
+ t.Fatal(errMsg) |
|
| 59 |
+ } |
|
| 60 |
+ if images := getImages("utest*"); len(images[0].RepoTags) != 1 {
|
|
| 61 |
+ t.Fatal(errMsg) |
|
| 62 |
+ } |
|
| 63 |
+ if images := getImages("*5000*/*"); len(images[0].RepoTags) != 1 {
|
|
| 64 |
+ t.Fatal(errMsg) |
|
| 65 |
+ } |
|
| 66 |
+ |
|
| 67 |
+ logDone("images - filter param is applied")
|
|
| 68 |
+} |
| 27 | 69 |
deleted file mode 100644 |
| ... | ... |
@@ -1,44 +0,0 @@ |
| 1 |
-package docker |
|
| 2 |
- |
|
| 3 |
-import "testing" |
|
| 4 |
- |
|
| 5 |
-func TestImagesFilter(t *testing.T) {
|
|
| 6 |
- eng := NewTestEngine(t) |
|
| 7 |
- defer nuke(mkDaemonFromEngine(eng, t)) |
|
| 8 |
- |
|
| 9 |
- if err := eng.Job("tag", unitTestImageName, "utest", "tag1").Run(); err != nil {
|
|
| 10 |
- t.Fatal(err) |
|
| 11 |
- } |
|
| 12 |
- |
|
| 13 |
- if err := eng.Job("tag", unitTestImageName, "utest/docker", "tag2").Run(); err != nil {
|
|
| 14 |
- t.Fatal(err) |
|
| 15 |
- } |
|
| 16 |
- |
|
| 17 |
- if err := eng.Job("tag", unitTestImageName, "utest:5000/docker", "tag3").Run(); err != nil {
|
|
| 18 |
- t.Fatal(err) |
|
| 19 |
- } |
|
| 20 |
- |
|
| 21 |
- images := getImages(eng, t, false, "utest*/*") |
|
| 22 |
- |
|
| 23 |
- if len(images[0].RepoTags) != 2 {
|
|
| 24 |
- t.Fatal("incorrect number of matches returned")
|
|
| 25 |
- } |
|
| 26 |
- |
|
| 27 |
- images = getImages(eng, t, false, "utest") |
|
| 28 |
- |
|
| 29 |
- if len(images[0].RepoTags) != 1 {
|
|
| 30 |
- t.Fatal("incorrect number of matches returned")
|
|
| 31 |
- } |
|
| 32 |
- |
|
| 33 |
- images = getImages(eng, t, false, "utest*") |
|
| 34 |
- |
|
| 35 |
- if len(images[0].RepoTags) != 1 {
|
|
| 36 |
- t.Fatal("incorrect number of matches returned")
|
|
| 37 |
- } |
|
| 38 |
- |
|
| 39 |
- images = getImages(eng, t, false, "*5000*/*") |
|
| 40 |
- |
|
| 41 |
- if len(images[0].RepoTags) != 1 {
|
|
| 42 |
- t.Fatal("incorrect number of matches returned")
|
|
| 43 |
- } |
|
| 44 |
-} |