diff options
Diffstat (limited to 'icespider/unittests')
-rw-r--r-- | icespider/unittests/Jamfile.jam | 7 | ||||
-rw-r--r-- | icespider/unittests/testApp.cpp | 24 | ||||
-rw-r--r-- | icespider/unittests/testCompile.cpp | 15 | ||||
-rw-r--r-- | icespider/unittests/testRoutes.json | 7 | ||||
-rw-r--r-- | icespider/unittests/xslt/transform.xslt | 14 |
5 files changed, 66 insertions, 1 deletions
diff --git a/icespider/unittests/Jamfile.jam b/icespider/unittests/Jamfile.jam index 234e715..05fecb4 100644 --- a/icespider/unittests/Jamfile.jam +++ b/icespider/unittests/Jamfile.jam @@ -46,6 +46,8 @@ run <library>test-api <library>dl <library>adhocutil + <library>slicer-xml + <library>../xslt//icespider-xslt <library>../core//icespider-core <library>../compile//icespider-compile <implicit-dependency>../compile//icespider-compile @@ -56,7 +58,9 @@ run run testApp.cpp testRoutes.json - : : : + : : + xslt/transform.xslt + : <define>BOOST_TEST_DYN_LINK <icespider>../compile//icespider <library>testCommon @@ -67,6 +71,7 @@ run <library>slicer-xml <library>../common//icespider-common <library>../core//icespider-core + <library>../xslt//icespider-xslt <implicit-dependency>../common//icespider-common <implicit-dependency>test-api <dependency>../compile diff --git a/icespider/unittests/testApp.cpp b/icespider/unittests/testApp.cpp index bb7c3c6..fb79b0a 100644 --- a/icespider/unittests/testApp.cpp +++ b/icespider/unittests/testApp.cpp @@ -9,9 +9,17 @@ #include <Ice/ObjectAdapter.h> #include <boost/algorithm/string/split.hpp> #include <boost/algorithm/string/classification.hpp> +#include <boost/filesystem/operations.hpp> +#include <definedDirs.h> using namespace IceSpider; +static void forceEarlyChangeDir() __attribute__((constructor(101))); +void forceEarlyChangeDir() +{ + boost::filesystem::current_path(XSTR(ROOT)); +} + BOOST_AUTO_TEST_CASE( testLoadConfiguration ) { BOOST_REQUIRE_EQUAL(6, AdHoc::PluginManager::getDefault()->getAll<IRouteHandler>().size()); @@ -253,6 +261,22 @@ BOOST_AUTO_TEST_CASE( testCallIndexAcceptXml ) BOOST_REQUIRE_EQUAL(requestXml.output.str(), "Status: 200 OK\r\n\r\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<SomeModel><value>index</value></SomeModel>\n"); } +BOOST_AUTO_TEST_CASE( testCallIndexAcceptTextHtml ) +{ + TestRequest requestHtml(this, HttpMethod::GET, "/"); + requestHtml.hdr["Accept"] = "text/html"; + process(&requestHtml); + BOOST_REQUIRE_EQUAL(requestHtml.output.str(), "Status: 200 OK\r\n\r\n<html><head><title>Some Model</title></head><body><p><b>value</b>: index</p></body></html>\n"); +} + +BOOST_AUTO_TEST_CASE( testCallViewSomethingAcceptHtml ) +{ + TestRequest requestHtml(this, HttpMethod::GET, "/view/something/1234"); + requestHtml.hdr["Accept"] = "text/html"; + process(&requestHtml); + BOOST_REQUIRE_EQUAL(requestHtml.output.str(), "Status: 406 Unacceptable\r\n\r\n"); +} + BOOST_AUTO_TEST_CASE( testCallIndexAcceptNotSupported ) { TestRequest requestBadAccept(this, HttpMethod::GET, "/"); diff --git a/icespider/unittests/testCompile.cpp b/icespider/unittests/testCompile.cpp index 411f703..46175ef 100644 --- a/icespider/unittests/testCompile.cpp +++ b/icespider/unittests/testCompile.cpp @@ -10,6 +10,12 @@ using namespace IceSpider; +static void forceEarlyChangeDir() __attribute__((constructor(101))); +void forceEarlyChangeDir() +{ + boost::filesystem::current_path(XSTR(ROOT)); +} + class CoreFixture { protected: CoreFixture() : @@ -73,9 +79,18 @@ BOOST_AUTO_TEST_CASE( testCompile ) auto compileCommand = boost::algorithm::join<std::vector<std::string>>({ "gcc", "-c", "-std=c++1y", "-fPIC", "-fvisibility=hidden", "-O3", "-I", "/usr/include/adhocutil", + "-I", "/usr/include/glib-2.0", + "-I", "/usr/include/glibmm-2.4", + "-I", "/usr/include/libxml2", + "-I", "/usr/include/libxml++-2.6", + "-I", "/usr/include/libxslt", "-I", "/usr/include/slicer", + "-I", "/usr/lib/glib-2.0/include", + "-I", "/usr/lib/glibmm-2.4/include", + "-I", "/usr/lib/libxml++-2.6/include", "-I", (rootDir.parent_path() / "core").string(), "-I", (rootDir.parent_path() / "common").string(), + "-I", (rootDir.parent_path() / "xslt").string(), "-I", (rootDir.parent_path() / "common" / "bin" / modeDir / "allow-ice-yes").string(), "-I", libGenDir.string(), "-o", outputo.string(), diff --git a/icespider/unittests/testRoutes.json b/icespider/unittests/testRoutes.json index cf5d289..921d983 100644 --- a/icespider/unittests/testRoutes.json +++ b/icespider/unittests/testRoutes.json @@ -6,6 +6,13 @@ "name": "index", "path": "/", "method": "GET", + "outputSerializers": [ + { + "contentType": "text/html", + "serializer": "IceSpider.XsltStreamSerializer", + "params": [ "\"xslt/transform.xslt\"" ] + } + ], "operation": "TestIceSpider.TestApi.index" }, { diff --git a/icespider/unittests/xslt/transform.xslt b/icespider/unittests/xslt/transform.xslt new file mode 100644 index 0000000..b70c90c --- /dev/null +++ b/icespider/unittests/xslt/transform.xslt @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:output encoding="utf-8" method="html" media-type="text/html" indent="yes"/> + <xsl:template match="/SomeModel"> + <html> + <head> + <title>Some Model</title> + </head> + <body> + <p><b>value</b>: <xsl:value-of select="value"/></p> + </body> + </html> + </xsl:template> +</xsl:stylesheet> |