From f525611b29b34a6bcc9ff9dd3e7ab3883d986f8a Mon Sep 17 00:00:00 2001 From: Tomas Aparicio Date: Wed, 8 Apr 2015 00:00:13 +0200 Subject: [PATCH] fix(image): tests --- README.md | 27 +++++++++++++++++++++++++++ image.go | 6 ++++++ image_test.go | 31 +++++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+) diff --git a/README.md b/README.md index bec38f9..f50c44e 100644 --- a/README.md +++ b/README.md @@ -163,6 +163,33 @@ if err != nil { bimg.Write("new.jpg", newImage) ``` +#### Fluent interface + +```go +buffer, err := bimg.Read("image.jpg") +if err != nil { + fmt.Fprintln(os.Stderr, err) +} + +image := bimg.NewImage(buffer) + +// first crop image +_, err := image.CropByWidth(300) +if err != nil { + fmt.Fprintln(os.Stderr, err) +} + +// then flip it +newImage, err := image.Flip() +if err != nil { + fmt.Fprintln(os.Stderr, err) +} + +// save the cropped and flipped image +bimg.Write("new.jpg", newImage) +``` + + #### func DetermineImageTypeName ```go diff --git a/image.go b/image.go index 269bda9..3c59e4d 100644 --- a/image.go +++ b/image.go @@ -87,6 +87,12 @@ func (i *Image) Flip() ([]byte, error) { } // Flop the image about the horizontal X axis +func (i *Image) Flop() ([]byte, error) { + options := Options{Flip: VERTICAL} + return i.Process(options) +} + +// Convert image to another format func (i *Image) Convert(t ImageType) ([]byte, error) { options := Options{Type: t} return i.Process(options) diff --git a/image_test.go b/image_test.go index 7095ba1..1c22ca7 100644 --- a/image_test.go +++ b/image_test.go @@ -144,6 +144,37 @@ func TestImageMetadata(t *testing.T) { } } +func TestFluentInterface(t *testing.T) { + image := initImage("test.jpg") + _, err := image.CropByWidth(300) + if err != nil { + t.Errorf("Cannot process the image: %#v", err) + } + + _, err = image.Flip() + if err != nil { + t.Errorf("Cannot process the image: %#v", err) + } + + buf, err := image.Convert(PNG) + if err != nil { + t.Errorf("Cannot process the image: %#v", err) + } + + data, _ := image.Metadata() + if data.Alpha != true { + t.Fatal("Invalid alpha channel") + } + if data.Size.Width != 300 { + t.Fatal("Invalid width size") + } + if data.Type != "png" { + t.Fatal("Invalid image type") + } + + Write("fixtures/test_image_fluent_out.png", buf) +} + func initImage(file string) *Image { buf, _ := Read(path.Join("fixtures", file)) return NewImage(buf)