]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/gdome_xslt/ocaml/test/test.ml
Initial version.
[helm.git] / helm / DEVEL / gdome_xslt / ocaml / test / test.ml
diff --git a/helm/DEVEL/gdome_xslt/ocaml/test/test.ml b/helm/DEVEL/gdome_xslt/ocaml/test/test.ml
new file mode 100644 (file)
index 0000000..3e313ed
--- /dev/null
@@ -0,0 +1,60 @@
+(* This file is part of an ocaml binding of an XSLT engine working on Gdome
+ * documents.
+ * 
+ * The code is largely based on the code of T.J. Mather's XML::GDOME::XSLT
+ * Perl module (http://kobesearch.cpan.org/search?dist=XML-GDOME-XSLT)
+ *
+ * Copyright (C) 2002 Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * For more information, please send an email to <sacerdot@cs.unibo.it>
+ *)
+
+let domImpl = Gdome.domImplementation () in
+ let input =
+  domImpl#createDocumentFromURI ~uri:"../../test_files/input.xml" ()
+ and style =
+  domImpl#createDocumentFromURI ~uri:"../../test_files/stylesheet.xsl" ()
+ in
+  (* First of all, let's try the exception handling machinery *)
+  let _ =
+   try
+    ignore (Gdome_xslt.processStylesheet input) ;
+    assert false (* previous line should rise an exception *)
+   with
+    Gdome_xslt_init.ProcessStylesheetException -> ()
+  in
+  let pstyle = Gdome_xslt.processStylesheet style in
+   let output =
+    Gdome_xslt.applyStylesheet input pstyle
+     ["parameter1","'value1'" ;
+      "parameter2","'value2'" ;
+      "parameter3","'value3'"
+     ]
+   in
+    let res =
+     domImpl#saveDocumentToFile ~doc:output ~name:"../../test_files/output.xml"
+      ()
+    in
+     if not res then
+      prerr_endline "Error saving to document ../../test_files/output.xml"
+     else
+      begin
+       print_endline
+        "The test was successful iff ../../test_files/output.xml.correct is" ;
+       print_endline "equal to ../../test_files/output.xml"
+      end
+;;