diff --git a/t/Output.t b/t/Output.t
new file mode 100644
index 0000000000..059c2c6788
--- /dev/null
+++ b/t/Output.t
@@ -0,0 +1,282 @@
+BEGIN { $| = 1; print "1..25\n"; }
+END {print "not ok 1\n" unless $loaded;}
+use C4::Output;
+$loaded = 1;
+print "ok 1\n";
+
+#
+# ensure &startpage returns correct value
+#
+if ("\n" eq startpage()) {
+ print "ok 2\n";
+} else {
+ print "not ok 2\n";
+}
+
+#
+# Check that &gotopage returns proper value
+#
+if ("" eq gotopage('foo')) {
+ print "ok 3\n";
+} else {
+ print "not ok 3\n";
+}
+
+#
+# skipping &startmenu for now
+#
+
+#
+# skipping &endmenu for now
+
+#
+# ensure &mktablehdr returns a proper value
+#
+
+if ("
\n" eq mktablehdr()) {
+ print "ok 4\n";
+} else {
+ print "not ok 4\n";
+}
+
+#
+# ensure &mktablerow returns a proper value
+#
+# 1 row, no background image
+if ("| text |
\n" eq
+ mktablerow(1,'red','text')) {
+ print "ok 5\n";
+} else {
+ print "not ok 5\n";
+}
+# 1 row, background image
+if ("| text |
\n" eq
+ mktablerow(1,'red','text','foo.jpg')) {
+ print "ok 6\n";
+} else {
+ print "not ok 6\n";
+}
+#2 rows, no background image
+if ("| text | text |
\n" eq
+ mktablerow(2,'red','text','text')) {
+ print "ok 7\n";
+} else {
+ print "not ok 7\n";
+}
+
+# 2 rows, background image
+if ("| text | text |
\n" eq
+ mktablerow(2,'red','text','text', 'foo.jpg')) {
+ print "ok 8\n";
+} else {
+ print "not ok 8\n";
+}
+
+#
+# ensure mktableft returns the proper value
+#
+
+if ("
\n" eq mktableft()) {
+ print "ok 9\n";
+} else {
+ print "not ok 9\n";
+}
+
+
+#
+# skipping mkform for now
+#
+
+#
+# skipping mkform3 for now
+#
+
+#
+# skipping mkform2 for now
+#
+
+#
+# ensure endpage returns the proper value
+#
+
+if ("