summaryrefslogtreecommitdiff
path: root/icespider/unittests
diff options
context:
space:
mode:
Diffstat (limited to 'icespider/unittests')
-rw-r--r--icespider/unittests/Jamfile.jam7
-rw-r--r--icespider/unittests/testApp.cpp24
-rw-r--r--icespider/unittests/testCompile.cpp15
-rw-r--r--icespider/unittests/testRoutes.json7
-rw-r--r--icespider/unittests/xslt/transform.xslt14
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>