docker_api_images_test.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package main
  2. import (
  3. "encoding/json"
  4. "net/url"
  5. "testing"
  6. "github.com/docker/docker/api/types"
  7. )
  8. func TestLegacyImages(t *testing.T) {
  9. _, body, err := sockRequest("GET", "/v1.6/images/json", nil)
  10. if err != nil {
  11. t.Fatalf("Error on GET: %s", err)
  12. }
  13. images := []types.LegacyImage{}
  14. if err = json.Unmarshal(body, &images); err != nil {
  15. t.Fatalf("Error on unmarshal: %s", err)
  16. }
  17. if len(images) == 0 || images[0].Tag == "" || images[0].Repository == "" {
  18. t.Fatalf("Bad data: %q", images)
  19. }
  20. logDone("images - checking legacy json")
  21. }
  22. func TestApiImagesFilter(t *testing.T) {
  23. name := "utest:tag1"
  24. name2 := "utest/docker:tag2"
  25. name3 := "utest:5000/docker:tag3"
  26. defer deleteImages(name, name2, name3)
  27. dockerCmd(t, "tag", "busybox", name)
  28. dockerCmd(t, "tag", "busybox", name2)
  29. dockerCmd(t, "tag", "busybox", name3)
  30. type image struct{ RepoTags []string }
  31. getImages := func(filter string) []image {
  32. v := url.Values{}
  33. v.Set("filter", filter)
  34. _, b, err := sockRequest("GET", "/images/json?"+v.Encode(), nil)
  35. if err != nil {
  36. t.Fatal(err)
  37. }
  38. var images []image
  39. if err := json.Unmarshal(b, &images); err != nil {
  40. t.Fatal(err)
  41. }
  42. return images
  43. }
  44. errMsg := "incorrect number of matches returned"
  45. if images := getImages("utest*/*"); len(images[0].RepoTags) != 2 {
  46. t.Fatal(errMsg)
  47. }
  48. if images := getImages("utest"); len(images[0].RepoTags) != 1 {
  49. t.Fatal(errMsg)
  50. }
  51. if images := getImages("utest*"); len(images[0].RepoTags) != 1 {
  52. t.Fatal(errMsg)
  53. }
  54. if images := getImages("*5000*/*"); len(images[0].RepoTags) != 1 {
  55. t.Fatal(errMsg)
  56. }
  57. logDone("images - filter param is applied")
  58. }