summaryrefslogtreecommitdiff
path: root/xsd-tests/cxx/parser/validation/built-in/uri
diff options
context:
space:
mode:
Diffstat (limited to 'xsd-tests/cxx/parser/validation/built-in/uri')
-rw-r--r--xsd-tests/cxx/parser/validation/built-in/uri/buildfile10
-rw-r--r--xsd-tests/cxx/parser/validation/built-in/uri/driver.cxx53
2 files changed, 63 insertions, 0 deletions
diff --git a/xsd-tests/cxx/parser/validation/built-in/uri/buildfile b/xsd-tests/cxx/parser/validation/built-in/uri/buildfile
new file mode 100644
index 0000000..a8fdf82
--- /dev/null
+++ b/xsd-tests/cxx/parser/validation/built-in/uri/buildfile
@@ -0,0 +1,10 @@
+# file : cxx/parser/validation/built-in/uri/buildfile
+# license : GNU GPL v2 + exceptions; see accompanying LICENSE file
+
+import libs = libxsd%lib{xsd}
+
+exe{driver}: {hxx cxx}{*} $libs
+
+# Define XSD_CXX11 since we include libxsd headers directly.
+#
+cxx.poptions += -DXSD_CXX11
diff --git a/xsd-tests/cxx/parser/validation/built-in/uri/driver.cxx b/xsd-tests/cxx/parser/validation/built-in/uri/driver.cxx
new file mode 100644
index 0000000..dcc9242
--- /dev/null
+++ b/xsd-tests/cxx/parser/validation/built-in/uri/driver.cxx
@@ -0,0 +1,53 @@
+// file : cxx/parser/validation/built-in/uri/driver.cxx
+// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
+
+// Test the built-in anyURI type validation.
+//
+#include <cassert>
+
+#include <xsd/cxx/parser/validating/exceptions.hxx>
+#include <xsd/cxx/parser/validating/xml-schema-pimpl.hxx>
+
+using namespace xsd::cxx::parser::validating;
+
+int
+main ()
+{
+ // Good.
+ //
+ {
+ uri_pimpl<char> p;
+ p.pre ();
+ p._pre ();
+ p._characters (" ");
+ p._post ();
+ assert (p.post_uri () == "");
+ }
+
+ {
+ uri_pimpl<char> p;
+ p.pre ();
+ p._pre ();
+ p._characters ("relative");
+ p._post ();
+ assert (p.post_uri () == "relative");
+ }
+
+ {
+ uri_pimpl<char> p;
+ p.pre ();
+ p._pre ();
+ p._characters ("#id");
+ p._post ();
+ assert (p.post_uri () == "#id");
+ }
+
+ {
+ uri_pimpl<char> p;
+ p.pre ();
+ p._pre ();
+ p._characters ("http://www.example.com/foo#bar");
+ p._post ();
+ assert (p.post_uri () == "http://www.example.com/foo#bar");
+ }
+}