summaryrefslogtreecommitdiff
path: root/internal/example
diff options
context:
space:
mode:
authorKurt Jung <kurt.w.jung@gmail.com>2015-08-26 20:44:07 -0400
committerKurt Jung <kurt.w.jung@gmail.com>2015-08-26 20:44:07 -0400
commit18c33c52f49afda63dabe7952b0ed98de6aead3a (patch)
treebccaf58af2d87d6f075a6b0388e6eee534018d8d /internal/example
parente3a6324d33873b0347a190bfb82d7d04315c1c85 (diff)
Factor various test example helper routines into their own internal package
Diffstat (limited to 'internal/example')
-rw-r--r--internal/example/example.go104
-rw-r--r--internal/example/example_test.go31
2 files changed, 135 insertions, 0 deletions
diff --git a/internal/example/example.go b/internal/example/example.go
new file mode 100644
index 0000000..8486994
--- /dev/null
+++ b/internal/example/example.go
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2015 Kurt Jung (Gmail: kurt.w.jung)
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+/*
+Package example provides some helper routines for the test packages of
+gofpdf and its various contributed packages located beneath the contrib
+directory.
+*/
+package example
+
+import (
+ "fmt"
+ "os"
+ "path/filepath"
+ "strings"
+)
+
+var gofpdfDir string
+
+func init() {
+ setRoot()
+}
+
+// Assign the relative path to the gofpdfDir directory based on current working
+// directory
+func setRoot() {
+ wdStr, err := os.Getwd()
+ if err == nil {
+ gofpdfDir = ""
+ sepStr := string(os.PathSeparator)
+ list := strings.Split(wdStr, sepStr)
+ for j := len(list) - 1; j >= 0 && list[j] != "gofpdf"; j-- {
+ gofpdfDir = filepath.Join(gofpdfDir, "..")
+ }
+ } else {
+ panic(err)
+ }
+}
+
+// ImageFile returns a qualified filename in which the path to the image
+// directory is prepended to the specified filename.
+func ImageFile(fileStr string) string {
+ return filepath.Join(gofpdfDir, "image", fileStr)
+}
+
+// FontDir returns the path to the font directory.
+func FontDir() string {
+ return filepath.Join(gofpdfDir, "font")
+}
+
+// FontFile returns a qualified filename in which the path to the font
+// directory is prepended to the specified filename.
+func FontFile(fileStr string) string {
+ return filepath.Join(FontDir(), fileStr)
+}
+
+// TextFile returns a qualified filename in which the path to the text
+// directory is prepended to the specified filename.
+func TextFile(fileStr string) string {
+ return filepath.Join(gofpdfDir, "text", fileStr)
+}
+
+// PdfDir returns the path to the PDF output directory.
+func PdfDir() string {
+ return filepath.Join(gofpdfDir, "pdf")
+}
+
+// PdfFile returns a qualified filename in which the path to the PDF output
+// directory is prepended to the specified filename.
+func PdfFile(fileStr string) string {
+ return filepath.Join(PdfDir(), fileStr)
+}
+
+// Filename returns a qualified filename in which the example PDF directory
+// path is prepended and the suffix ".pdf" is appended to the specified
+// filename.
+func Filename(baseStr string) string {
+ return PdfFile(baseStr + ".pdf")
+}
+
+// Summary generates a predictable report for use by test examples. If the
+// specified error is nil, the filename delimiters are normalized and the
+// filename printed to standard output with a success message. If the specified
+// error is not nil, its String() value is printed to standard output.
+func Summary(err error, fileStr string) {
+ if err == nil {
+ fileStr = filepath.ToSlash(fileStr)
+ fmt.Printf("Successfully generated %s\n", fileStr)
+ } else {
+ fmt.Println(err)
+ }
+}
diff --git a/internal/example/example_test.go b/internal/example/example_test.go
new file mode 100644
index 0000000..54f4689
--- /dev/null
+++ b/internal/example/example_test.go
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2015 Kurt Jung (Gmail: kurt.w.jung)
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+package example_test
+
+import (
+ "fmt"
+ "path/filepath"
+
+ "github.com/jung-kurt/gofpdf/internal/example"
+)
+
+// Test the Filename() function.
+func ExampleExample_Filename() {
+ fmt.Println(filepath.ToSlash(example.Filename("foo")))
+ // Output:
+ // ../../pdf/foo.pdf
+}