From ffebd1112efda34d686ef798ed70c8ad9bc33af6 Mon Sep 17 00:00:00 2001 From: Simon Waldherr Date: Fri, 19 Oct 2018 21:51:55 +0200 Subject: [PATCH] more test coverage --- .gitignore | 2 +- README.md | 1 + test.png | Bin 0 -> 18129 bytes zplgfa_test.go | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 test.png diff --git a/.gitignore b/.gitignore index dba14d9..99e2e24 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ *.zpl -*.png +cmd/zplgfa/*.png cmd/zplgfa/zplgfa diff --git a/README.md b/README.md index 3b81789..601c1ef 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ [![Go Report Card](https://goreportcard.com/badge/github.com/SimonWaldherr/zplgfa)](https://goreportcard.com/report/github.com/SimonWaldherr/zplgfa) [![codebeat badge](https://codebeat.co/badges/28d795af-6f9b-453a-94c2-4fafb8b5b0d5)](https://codebeat.co/projects/github-com-simonwaldherr-zplgfa-master) [![BCH compliance](https://bettercodehub.com/edge/badge/SimonWaldherr/zplgfa?branch=master)](https://bettercodehub.com/results/SimonWaldherr/zplgfa) +[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FSimonWaldherr%2Fzplgfa.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2FSimonWaldherr%2Fzplgfa?ref=badge_shield) [![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/SimonWaldherr/zplgfa/master/LICENSE) The ZPLGFA Golang package implements some functions to convert PNG, JPEG and GIF files to ZPL compatible ^GF-elements ([Graphic Fields](https://www.zebra.com/us/en/support-downloads/knowledge-articles/gf-graphic-field-zpl-command.html)). diff --git a/test.png b/test.png new file mode 100644 index 0000000000000000000000000000000000000000..455f41476bac36f3b6cd9d1d87529925bdf8bbc2 GIT binary patch literal 18129 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 E0dyDT>;M1& literal 0 HcmV?d00001 diff --git a/zplgfa_test.go b/zplgfa_test.go index bde8965..3ee3ea9 100644 --- a/zplgfa_test.go +++ b/zplgfa_test.go @@ -1,7 +1,14 @@ package zplgfa import ( + "image" + _ "image/gif" + _ "image/jpeg" + _ "image/png" + "log" + "os" "testing" + "strings" ) func Test_CompressASCII(t *testing.T) { @@ -9,3 +16,44 @@ func Test_CompressASCII(t *testing.T) { t.Fatalf("CompressASCII failed") } } + +func Test_ConvertToZPL(t *testing.T) { + // open file + file, err := os.Open("./test.png") + if err != nil { + log.Printf("Warning: could not open the file: %s\n", err) + return + } + + defer file.Close() + + // load image head information + config, format, err := image.DecodeConfig(file) + if err != nil { + log.Printf("Warning: image not compatible, format: %s, config: %v, error: %s\n", format, config, err) + } + + // reset file pointer to the beginning of the file + file.Seek(0, 0) + + // load and decode image + img, _, err := image.Decode(file) + if err != nil { + log.Printf("Warning: could not decode the file, %s\n", err) + return + } + + // flatten image + flat := FlattenImage(img) + + // convert image to zpl compatible type + gfimg := ConvertToZPL(flat, CompressedASCII) + + // remove whitespace - only for the test + gfimg = strings.Replace(gfimg, " ", "", -1) + gfimg = strings.Replace(gfimg, "\n", "", -1) + + if gfimg != "^XA,^FS^FO0,0^GFA,32,51,3,,::01C000::,001C00::,1DDC00::,::^FS,^XZ" { + t.Fatalf("ConvertToZPL failed") + } +}