summaryrefslogtreecommitdiffstats
path: root/tcllib/modules/doctools2toc/export_json.test
diff options
context:
space:
mode:
Diffstat (limited to 'tcllib/modules/doctools2toc/export_json.test')
-rw-r--r--tcllib/modules/doctools2toc/export_json.test74
1 files changed, 74 insertions, 0 deletions
diff --git a/tcllib/modules/doctools2toc/export_json.test b/tcllib/modules/doctools2toc/export_json.test
new file mode 100644
index 0000000..dc9c772
--- /dev/null
+++ b/tcllib/modules/doctools2toc/export_json.test
@@ -0,0 +1,74 @@
+# -*- tcl -*-
+# toc_export_json.test: tests for the doctools::toc::export::json package/plugin.
+#
+# Copyright (c) 2009 by Andreas Kupries <andreas_kupries@users.sourceforge.net>
+# All rights reserved.
+#
+# RCS: @(#) $Id: export_json.test,v 1.2 2009/11/15 05:50:03 andreas_kupries Exp $
+
+# -------------------------------------------------------------------------
+
+source [file join \
+ [file dirname [file dirname [file join [pwd] [info script]]]] \
+ devtools testutilities.tcl]
+
+testsNeedTcl 8.4
+testsNeedTcltest 2.0
+
+support {
+ use fileutil/fileutil.tcl fileutil ;# tests/common
+ use textutil/adjust.tcl textutil::adjust
+ useLocal structure.tcl doctools::toc::structure
+}
+testing {
+ package provide doctools::toc::export::plugin 1
+ # The above fakes the export plugin environment.
+
+ useLocal export_json.tcl doctools::toc::export::json
+}
+
+source [tcllibPath doctools2base/tests/common]
+set mytestdir tests/data
+
+# -------------------------------------------------------------------------
+
+# General set of error cases regarding the number of arguments.
+
+test doctools-toc-export-json-1.0 {export, wrong#args} -body {
+ export
+} -returnCodes error -result {wrong # args: should be "export serial configuration"}
+
+test doctools-toc-export-json-1.1 {export, wrong#args} -body {
+ export S
+} -returnCodes error -result {wrong # args: should be "export serial configuration"}
+
+test doctools-toc-export-json-1.2 {export, wrong#args} -body {
+ export S C XXX
+} -returnCodes error -result {wrong # args: should be "export serial configuration"}
+
+# -------------------------------------------------------------------------
+
+# Testing the generation of json output, from toc serialization,
+# for all possible plugin configurations.
+
+foreach {k in al section} {
+ 0 0 0 -ultracompact
+ 1 1 0 -indented
+ 2 0 1 -indalign
+ 3 1 1 -indalign
+} {
+ TestFilesProcess $mytestdir ok serial json$section -> n label input data expected {
+ test doctools-toc-export-json-2.$k.$n "doctools::toc::export::json, $label$section, ok" -setup {
+ set configuration [list indented $in aligned $al]
+ } -body {
+ export $data $configuration
+ } -cleanup {
+ unset configuration
+ } -result $expected
+ }
+}
+
+#----------------------------------------------------------------------
+unset n label input data expected
+testsuiteCleanup
+return