From 3131fa0db3000fb5c944e3822361de6fe7bb1b82 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Tue, 6 Mar 2018 19:43:22 +0000 Subject: Add basic site setup --- site/test.cpp | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 site/test.cpp (limited to 'site/test.cpp') diff --git a/site/test.cpp b/site/test.cpp new file mode 100644 index 0000000..7fcc2ae --- /dev/null +++ b/site/test.cpp @@ -0,0 +1,107 @@ +#define BOOST_TEST_MODULE mirrorsearchsite +#include + +#include +#include +#include + +#include + +using namespace IceSpider; +using namespace MirrorSearch; + +class TestSerice : public Search { + public: + virtual SearchServices getServices(const ::Ice::Current& = ::Ice::Current()) override + { + return {}; + } + virtual SearchHits getMatches(const ::std::string & fn, const ::Ice::Current& = ::Ice::Current()) override + { + BOOST_TEST_INFO(fn); + if (fn == "good.txt") { + return { + new SearchHit(1, 1, "file:///some/file/path"), + new SearchHit(1, 1, "file:///some/other/path") + }; + } + return {}; + } + virtual ::IceUtil::Optional<::std::string> feelingLucky(const ::std::string & fn, const ::Ice::Current & c = ::Ice::Current()) override + { + auto ms = getMatches(fn, c); + if (ms.empty()) { + return IceUtil::None; + + } + return ms.front()->url; + } +}; + +class TestApp : public CoreWithDefaultRouter { + public: + TestApp() : + CoreWithDefaultRouter({ + "--MirrorSearch.Search=Search" + }), + adp(communicator->createObjectAdapterWithEndpoints("test", "default")) + { + adp->activate(); + adp->add(new TestSerice(), communicator->stringToIdentity("Search")); + } + + ~TestApp() + { + adp->deactivate(); + adp->destroy(); + } + + Ice::ObjectAdapterPtr adp; +}; + +BOOST_FIXTURE_TEST_SUITE(ta, TestApp); + +BOOST_AUTO_TEST_CASE( testCallIndexNoFile ) +{ + TestRequest requestGetIndex(this, HttpMethod::GET, "/list"); + process(&requestGetIndex); + auto h = requestGetIndex.getResponseHeaders(); + BOOST_CHECK_EQUAL(h["Status"], "404 Not found"); +} + +BOOST_AUTO_TEST_CASE( testCallIndex ) +{ + TestRequest requestGetIndex(this, HttpMethod::GET, "/list/somefile.txt"); + process(&requestGetIndex); + auto h = requestGetIndex.getResponseHeaders(); + BOOST_CHECK_EQUAL(h["Status"], "200 OK"); + BOOST_CHECK_EQUAL(h["Content-Type"], "application/json"); +} + +BOOST_AUTO_TEST_CASE( testCallDownloadNotFile ) +{ + TestRequest requestGetIndex(this, HttpMethod::GET, "/download"); + process(&requestGetIndex); + auto h = requestGetIndex.getResponseHeaders(); + BOOST_CHECK_EQUAL(h["Status"], "404 Not found"); +} + +BOOST_AUTO_TEST_CASE( testCallDownloadBad ) +{ + TestRequest requestGetIndex(this, HttpMethod::GET, "/download/bad.txt"); + process(&requestGetIndex); + auto h = requestGetIndex.getResponseHeaders(); + BOOST_CHECK_EQUAL(h["Status"], "404 No mirror found"); +} + +BOOST_AUTO_TEST_CASE( testCallDownloadGood ) +{ + TestRequest requestGetIndex(this, HttpMethod::GET, "/download/good.txt"); + process(&requestGetIndex); + auto h = requestGetIndex.getResponseHeaders(); + BOOST_CHECK_EQUAL(h["Status"], "303 Mirror found"); + BOOST_CHECK_EQUAL(h["Location"], "file:///some/file/path"); +} + +BOOST_AUTO_TEST_SUITE_END(); + -- cgit v1.2.3