aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-08-10 18:28:53 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-08-10 18:28:53 +0200
commit63aaad529c9ae9358f22fd9563aeabc679f4defd (patch)
tree67adfffcb14250f083d86b568577a8a2eb7bdf9f /tests
parent8e866579cb459c5104c532d5e41d562d45236ea5 (diff)
Add support for generating XHTML5
Diffstat (limited to 'tests')
-rw-r--r--tests/buildfile2
-rw-r--r--tests/web/buildfile7
-rw-r--r--tests/web/xhtml/buildfile8
-rw-r--r--tests/web/xhtml/driver.cxx44
-rw-r--r--tests/web/xhtml/test.out15
5 files changed, 75 insertions, 1 deletions
diff --git a/tests/buildfile b/tests/buildfile
index 41a9bcc..ed48d00 100644
--- a/tests/buildfile
+++ b/tests/buildfile
@@ -2,6 +2,6 @@
# copyright : Copyright (c) 2014-2015 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
-d = loader/
+d = loader/ web/
.: $d
include $d
diff --git a/tests/web/buildfile b/tests/web/buildfile
new file mode 100644
index 0000000..0077eae
--- /dev/null
+++ b/tests/web/buildfile
@@ -0,0 +1,7 @@
+# file : tests/web/buildfile
+# copyright : Copyright (c) 2014-2015 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+d = xhtml/
+.: $d
+include $d
diff --git a/tests/web/xhtml/buildfile b/tests/web/xhtml/buildfile
new file mode 100644
index 0000000..308a104
--- /dev/null
+++ b/tests/web/xhtml/buildfile
@@ -0,0 +1,8 @@
+# file : tests/web/xhtml/buildfile
+# copyright : Copyright (c) 2014-2015 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+import libs = libstudxml%lib{studxml}
+
+exe{driver}: cxx{driver} $libs
+exe{driver}: test.output = test.out
diff --git a/tests/web/xhtml/driver.cxx b/tests/web/xhtml/driver.cxx
new file mode 100644
index 0000000..23531f7
--- /dev/null
+++ b/tests/web/xhtml/driver.cxx
@@ -0,0 +1,44 @@
+// file : tests/web/xhtml/driver.cxx -*- C++ -*-
+// copyright : Copyright (c) 2014-2015 Code Synthesis Ltd
+// license : MIT; see accompanying LICENSE file
+
+#include <iostream>
+
+#include <xml/serializer>
+
+#include <web/xhtml>
+
+using namespace std;
+using namespace xml;
+
+int
+main ()
+{
+ using namespace web::xhtml;
+
+ serializer s (cout, "output");
+
+ s << HTML
+ << HEAD
+ << TITLE << "Example XHTML5 document" << ~TITLE
+ << ~HEAD
+ << BODY
+ //
+ // Inline elements (no indentation).
+ //
+ << P << "Here be " << B << "Dragons!" << ~B << *BR
+ << "and a newline" << ~P
+ //
+ // Various ways to specify attributes.
+ //
+ << P(ID=123, CLASS="cool") << "Text" << ~P
+ << P << (ID=123) << (CLASS="cool") << "Text" << ~P
+ << P << ID(123) << CLASS("cool") << "Text" << ~P
+ << P << ID << 123 << ~ID << CLASS << "cool" << ~CLASS << "Text" << ~P
+ //
+ // Empty element with attributes.
+ //
+ << P << "Text" << *BR(CLASS="double") << ~P
+ << ~BODY
+ << ~HTML;
+}
diff --git a/tests/web/xhtml/test.out b/tests/web/xhtml/test.out
new file mode 100644
index 0000000..ffa6df6
--- /dev/null
+++ b/tests/web/xhtml/test.out
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="UTF-8"/>
+ <title>Example XHTML5 document</title>
+ </head>
+ <body>
+ <p>Here be <b>Dragons!</b><br/>and a newline</p>
+ <p id="123" class="cool">Text</p>
+ <p id="123" class="cool">Text</p>
+ <p id="123" class="cool">Text</p>
+ <p id="123" class="cool">Text</p>
+ <p>Text<br class="double"/></p>
+ </body>
+</html>