summaryrefslogtreecommitdiff
path: root/tests/ConnectionHandlerTest
diff options
context:
space:
mode:
authorgeronimo <geronimo013@gmx.de>2012-07-13 04:26:40 +0200
committergeronimo <geronimo013@gmx.de>2012-07-13 04:26:40 +0200
commit2d48ae784ea6828e8626c32c848f64232d8f35c0 (patch)
treefab114b03e91125783a778b835dd1913b039cebe /tests/ConnectionHandlerTest
downloadcmp-2d48ae784ea6828e8626c32c848f64232d8f35c0.tar.gz
cmp-2d48ae784ea6828e8626c32c848f64232d8f35c0.tar.bz2
initial import
Diffstat (limited to 'tests/ConnectionHandlerTest')
-rw-r--r--tests/ConnectionHandlerTest/ConnectionHandlerTest.cbp69
-rw-r--r--tests/ConnectionHandlerTest/ConnectionHandlerTest.cc135
-rw-r--r--tests/ConnectionHandlerTest/ConnectionHandlerTest.depend1
-rw-r--r--tests/ConnectionHandlerTest/ConnectionHandlerTest.layout9
-rw-r--r--tests/ConnectionHandlerTest/ConnectionHandlerTest.layout.save9
5 files changed, 223 insertions, 0 deletions
diff --git a/tests/ConnectionHandlerTest/ConnectionHandlerTest.cbp b/tests/ConnectionHandlerTest/ConnectionHandlerTest.cbp
new file mode 100644
index 0000000..b2d783b
--- /dev/null
+++ b/tests/ConnectionHandlerTest/ConnectionHandlerTest.cbp
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_project_file>
+ <FileVersion major="1" minor="6" />
+ <Project>
+ <Option title="Tests.ConnectionHandlerTest" />
+ <Option pch_mode="2" />
+ <Option compiler="gcc" />
+ <Build>
+ <Target title="Debug">
+ <Option output="bin/Debug/Tests" prefix_auto="1" extension_auto="1" />
+ <Option object_output="obj/Debug/" />
+ <Option type="1" />
+ <Option compiler="gcc" />
+ <Compiler>
+ <Add option="-g" />
+ </Compiler>
+ <Linker>
+ <Add library="../../libs/fsScan/libfsScan.a" />
+ <Add library="../../libs/networking/libnetworking.a" />
+ <Add library="../../libs/util/libutil.a" />
+ <Add library="../../libs/vdr/libvdr.a" />
+ <Add library="ssl" />
+ <Add library="crypt" />
+ </Linker>
+ </Target>
+ <Target title="Release">
+ <Option output="bin/Release/Tests" prefix_auto="1" extension_auto="1" />
+ <Option object_output="obj/Release/" />
+ <Option type="1" />
+ <Option compiler="gcc" />
+ <Compiler>
+ <Add option="-O2" />
+ </Compiler>
+ <Linker>
+ <Add option="-s" />
+ </Linker>
+ </Target>
+ </Build>
+ <Compiler>
+ <Add option="-Wall" />
+ <Add option="-std=gnu++0x -fomit-frame-pointer -fPIC -pthread -Wall -Wno-parentheses -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=implicit-function-declaration -ansi" />
+ <Add option="-D_REENTRANT" />
+ <Add option="-D_GNU_SOURCE=1" />
+ <Add directory="../../cmps/serverlib/include" />
+ <Add directory="../../libs/fsScan/include" />
+ <Add directory="../../libs/networking/include" />
+ <Add directory="../../libs/util/include" />
+ <Add directory="../../libs/vdr/include" />
+ </Compiler>
+ <Linker>
+ <Add library="../../cmps/serverlib/libserverlib.a" />
+ <Add library="../../libs/fsScan/libfsScan.a" />
+ <Add library="../../libs/networking/libnetworking.a" />
+ <Add library="../../libs/util/libutil.a" />
+ <Add library="../../libs/vdr/libvdr.a" />
+ <Add library="ssl" />
+ <Add library="crypt" />
+ <Add library="pthread" />
+ <Add library="rt" />
+ </Linker>
+ <Unit filename="ConnectionHandlerTest.cc" />
+ <Extensions>
+ <code_completion />
+ <envvars />
+ <lib_finder disable_auto="1" />
+ <debugger />
+ </Extensions>
+ </Project>
+</CodeBlocks_project_file>
diff --git a/tests/ConnectionHandlerTest/ConnectionHandlerTest.cc b/tests/ConnectionHandlerTest/ConnectionHandlerTest.cc
new file mode 100644
index 0000000..1dc3659
--- /dev/null
+++ b/tests/ConnectionHandlerTest/ConnectionHandlerTest.cc
@@ -0,0 +1,135 @@
+/*
+ * File: ConnectionHandlerTest.cc
+ * Author: django
+ *
+ * Created on 10.07.2012, 05:48:23
+ */
+#include <ConnectionHandler.h>
+#include <ServerConfig.h>
+#include <FilesystemScanner.h>
+#include <MediaFactory.h>
+#include <MediaListHandler.h>
+#include <MediaFileHandler.h>
+#include <CommandHandler.h>
+#include <JSonListAssembler.h>
+#include <HTMLListAssembler.h>
+#include <HTTPRequest.h>
+#include <HTTPResponse.h>
+#include <TimeMs.h>
+#include <stdlib.h>
+#include <iostream>
+#include <stdio.h>
+#include <sys/types.h>
+
+class cTestUnit {
+public:
+ cTestUnit(const char *Name, cConnectionPoint &cp);
+ ~cTestUnit();
+
+ void test1(void);
+ void test2(void);
+
+ const char *Name(void) const { return name; }
+ void SetUp(void);
+
+private:
+ cServerConfig config;
+ cConnectionHandler ch;
+ const char *name;
+ cFilesystemScanner *scanner;
+};
+
+cTestUnit::cTestUnit(const char* Name, cConnectionPoint &cp)
+ : config(12345)
+ , ch(cp, config)
+ , name(Name)
+ , scanner(NULL)
+{
+ config.SetAuthorizationRequired(false);
+ config.SetDocumentRoot("/media/video");
+ config.SetAppIcon("/media/favicon.ico");
+
+ scanner = new cFilesystemScanner();
+ if (!scanner) {
+ fprintf(stderr, "could not initialize application! (1)");
+ exit(-1);
+ }
+ scanner->SetMediaFactory(new cMediaFactory(config.DocumentRoot()));
+
+ cAbstractMediaRequestHandler::SetFilesystemScanner(scanner);
+ cConnectionHandler::RegisterRequestHandler("/cmd", new cCommandHandler());
+ cMediaListHandler *listHandler = new cMediaListHandler();
+
+ listHandler->SetListAssembler("json", new cJSonListAssembler());
+ listHandler->SetDefaultListAssembler(new cHTMLListAssembler());
+ cConnectionHandler::RegisterRequestHandler("/", listHandler);
+ cConnectionHandler::RegisterDefaultHandler(new cMediaFileHandler());
+}
+
+cTestUnit::~cTestUnit()
+{
+ cCommandHandler::Cleanup();
+ delete scanner;
+}
+
+void cTestUnit::SetUp()
+{
+ if (scanner) scanner->Refresh();
+}
+
+void cTestUnit::test1()
+{
+ std::cout << "ConnectionHandlerTest test 1" << std::endl;
+
+ cHTTPRequest rq(cHTTPRequest::GET, "/");
+
+ rq.SetHeader("Host", "localhost:43567");
+ rq.SetHeader("User-Agent", "TestUnit");
+ rq.SetHeader("Accept", "image/png,image/*;q=0.8,*/*;q=0.5");
+ rq.SetHeader("Accept-Language", "de-de,de;q=0.8,en-us;q=0.5,en;q=0.3");
+ rq.SetHeader("Accept-Encoding", "gzip,deflate");
+ rq.SetHeader("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
+ rq.SetHeader("Keep-Alive", "300");
+ rq.SetHeader("Connection", "keep-alive");
+
+ rq.Dump();
+ cHTTPResponse *res = ch.ProcessRequest(rq);
+
+ std::cout << "response looks like ..." << std::endl;
+ res->Dump();
+ delete res;
+}
+
+void cTestUnit::test2()
+{
+ std::cout << "ConnectionHandlerTest test 2" << std::endl;
+ std::cout << "%TEST_FAILED% time=0 testname=test2 (ConnectionHandlerTest) message=error message sample" << std::endl;
+}
+
+int main(int argc, char** argv)
+{
+ uint64_t t0 = cTimeMs::Now();
+ cConnectionPoint localHost("localhost", 40902);
+ cTestUnit unit("ConnectionHandlerTest", localHost);
+
+ unit.SetUp();
+ std::cout << "%SUITE_STARTING% " << unit.Name() << std::endl;
+ std::cout << "%SUITE_STARTED%" << std::endl;
+
+ std::cout << "%TEST_STARTED% test1 (" << unit.Name() << ")" << std::endl;
+ uint64_t start = cTimeMs::Now();
+ unit.test1();
+ uint64_t end = cTimeMs::Now();
+ std::cout << "%TEST_FINISHED% time=" << (double)(end - start) / 1000 << " test1 (" << unit.Name() << ")" << std::endl;
+
+ std::cout << "%TEST_STARTED% test2 (" << unit.Name() << ")\n" << std::endl;
+ start = cTimeMs::Now();
+ unit.test2();
+ end = cTimeMs::Now();
+ std::cout << "%TEST_FINISHED% time=" << (double)(end - start) / 1000 << " test2 (" << unit.Name() << ")" << std::endl;
+
+ std::cout << "%SUITE_FINISHED% time=" << (double)(cTimeMs::Now() - t0) / 1000 << std::endl;
+
+ return (EXIT_SUCCESS);
+}
+
diff --git a/tests/ConnectionHandlerTest/ConnectionHandlerTest.depend b/tests/ConnectionHandlerTest/ConnectionHandlerTest.depend
new file mode 100644
index 0000000..c4ac310
--- /dev/null
+++ b/tests/ConnectionHandlerTest/ConnectionHandlerTest.depend
@@ -0,0 +1 @@
+# depslib dependency file v1.0
diff --git a/tests/ConnectionHandlerTest/ConnectionHandlerTest.layout b/tests/ConnectionHandlerTest/ConnectionHandlerTest.layout
new file mode 100644
index 0000000..84f2aab
--- /dev/null
+++ b/tests/ConnectionHandlerTest/ConnectionHandlerTest.layout
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_layout_file>
+ <ActiveTarget name="Debug" />
+ <File name="ConnectionHandlerTest.cc" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+ <Cursor>
+ <Cursor1 position="2048" topLine="0" />
+ </Cursor>
+ </File>
+</CodeBlocks_layout_file>
diff --git a/tests/ConnectionHandlerTest/ConnectionHandlerTest.layout.save b/tests/ConnectionHandlerTest/ConnectionHandlerTest.layout.save
new file mode 100644
index 0000000..84f2aab
--- /dev/null
+++ b/tests/ConnectionHandlerTest/ConnectionHandlerTest.layout.save
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_layout_file>
+ <ActiveTarget name="Debug" />
+ <File name="ConnectionHandlerTest.cc" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
+ <Cursor>
+ <Cursor1 position="2048" topLine="0" />
+ </Cursor>
+ </File>
+</CodeBlocks_layout_file>