diff options
-rw-r--r-- | gentoobrowse/Jamfile.jam | 1 | ||||
l--------- | gentoobrowse/gentoobrowse-cgi | 2 | ||||
-rw-r--r-- | gentoobrowse/src/Jamfile.jam | 40 | ||||
-rw-r--r-- | gentoobrowse/src/test.cpp | 126 | ||||
-rw-r--r-- | gentoobrowse/xslt/base.xslt | 42 | ||||
-rw-r--r-- | gentoobrowse/xslt/categories.xslt | 3 | ||||
-rw-r--r-- | gentoobrowse/xslt/category.xslt | 9 | ||||
-rw-r--r-- | gentoobrowse/xslt/home.xslt | 2 | ||||
-rw-r--r-- | gentoobrowse/xslt/news.xslt | 1 | ||||
-rw-r--r-- | gentoobrowse/xslt/package.xslt | 22 | ||||
-rw-r--r-- | gentoobrowse/xslt/popular.xslt | 3 | ||||
-rw-r--r-- | gentoobrowse/xslt/search.xslt | 8 | ||||
-rw-r--r-- | gentoobrowse/xslt/use-detail.xslt | 2 | ||||
-rw-r--r-- | gentoobrowse/xslt/use.xslt | 2 |
14 files changed, 208 insertions, 55 deletions
diff --git a/gentoobrowse/Jamfile.jam b/gentoobrowse/Jamfile.jam index e69de29..038361f 100644 --- a/gentoobrowse/Jamfile.jam +++ b/gentoobrowse/Jamfile.jam @@ -0,0 +1 @@ +build-project src ; diff --git a/gentoobrowse/gentoobrowse-cgi b/gentoobrowse/gentoobrowse-cgi index 190d839..e9129f0 120000 --- a/gentoobrowse/gentoobrowse-cgi +++ b/gentoobrowse/gentoobrowse-cgi @@ -1 +1 @@ -src/bin/gcc-5.4.0/release/allow-ice-yes/slicer-yes/strip-on/gentoobrowse-cgi
\ No newline at end of file +src/bin/gcc-5.4.0/debug/allow-ice-yes/gentoobrowse-cgi
\ No newline at end of file diff --git a/gentoobrowse/src/Jamfile.jam b/gentoobrowse/src/Jamfile.jam index 96b77e5..1e070a1 100644 --- a/gentoobrowse/src/Jamfile.jam +++ b/gentoobrowse/src/Jamfile.jam @@ -1,22 +1,25 @@ import icespider ; +import testing ; +lib icespider-core ; lib icespider-common ; lib icespider-xslt : : : : <library>../..//libxmlpp ; lib icespider-fcgi ; lib icespider-filesessions ; +lib icespider-testing ; lib adhocutil ; lib Ice ; lib IceUtil ; lib pthread ; lib boost_system ; +lib boost_filesystem ; lib slicer ; lib slicer-json ; lib slicer-xml ; lib slicer-db ; +lib boost_unit_test_framework ; lib gentoobrowse-domain ; -lib gentoobrowse : : - <name>gentoobrowse-api - : : +lib gentoobrowse-api : : : : <include>/usr/share/gentoobrowse-api <include>/usr/share/slicer/ice <include>/usr/include/gentoobrowse-api @@ -34,7 +37,6 @@ lib icespider : : <include>/usr/share/icespider/ice <library>icespider-common <library>icespider-xslt - <library>icespider-fcgi <library>icespider-filesessions <library>adhocutil <library>Ice @@ -45,15 +47,37 @@ lib icespider : : <allow-ice>yes ; -exe gentoobrowse-cgi : - [ glob *.cpp *.ice *.json ] +lib gentoobrowse : + [ glob *.cpp *.ice *.json : test.cpp ] : <variant>release:<cxxflags>-flto=3 <variant>release:<linkflags>-flto=3 <slicer>yes <include>. - <library>icespider - <library>gentoobrowse + <library>gentoobrowse-api <library>slicer-json <library>slicer-xml + <library>icespider + : : + <library>icespider ; + +exe gentoobrowse-cgi : + gentoobrowse + : + <library>gentoobrowse + <library>icespider-fcgi + <link>shared + ; + +path-constant me : . ; +run + test.cpp + : : : + <define>BOOST_TEST_DYN_LINK + <define>ROOT=\"$(me)\" + <library>boost_filesystem + <library>gentoobrowse + <library>icespider-testing + <library>boost_unit_test_framework + : gentoobrowse-test ; diff --git a/gentoobrowse/src/test.cpp b/gentoobrowse/src/test.cpp new file mode 100644 index 0000000..994a8df --- /dev/null +++ b/gentoobrowse/src/test.cpp @@ -0,0 +1,126 @@ +#define BOOST_TEST_MODULE TestGentooBrowse +#include <boost/test/unit_test.hpp> + +#include <core.h> +#include <definedDirs.h> +#include <boost/filesystem/operations.hpp> +#include <testRequest.h> + +using namespace IceSpider; + +class ChromiumRequest : public TestRequest { + public: + ChromiumRequest(const Core * c, HttpMethod m, const std::string & p) : + TestRequest(c, m, p) + { + hdr["User-Agent"] = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.21 Safari/537.36"; + hdr["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"; + hdr["Accept-Encoding"] = "gzip, deflate, sdch"; + hdr["Accept-Language"] = "en-GB,en;q=0.8"; + } + + void standardAssertions(const char * name) + { + auto h = getResponseHeaders(); + BOOST_REQUIRE_EQUAL(h["Status"], "200 OK"); + BOOST_REQUIRE_EQUAL(h["Content-Type"], "text/html"); + validateHtml(name); + } + + void validateHtml(const char * name) + { + char buf[BUFSIZ]; + sprintf(buf, "tidy --indent yes --wrap 0 -quiet -output %s/%s.html", + binDir.c_str(), name); + FILE * tidy = popen(buf, "w"); + while (fwrite(buf, output.readsome(buf, BUFSIZ), 1, tidy) > 0) ; + BOOST_REQUIRE_EQUAL(0, pclose(tidy)); + } +}; + +BOOST_AUTO_TEST_CASE( cd ) +{ + boost::filesystem::current_path(rootDir.parent_path()); +} + +BOOST_FIXTURE_TEST_SUITE(ta, CoreWithDefaultRouter); + +BOOST_AUTO_TEST_CASE( endpointCount ) +{ + BOOST_REQUIRE_EQUAL(22, AdHoc::PluginManager::getDefault()->getAll<IceSpider::RouteHandlerFactory>().size()); + BOOST_REQUIRE_EQUAL(5, routes.size()); +} + +BOOST_AUTO_TEST_CASE( home ) +{ + ChromiumRequest request(this, HttpMethod::GET, "/"); + process(&request); + request.standardAssertions(typeid(this).name()); +} + +BOOST_AUTO_TEST_CASE( news ) +{ + ChromiumRequest request(this, HttpMethod::GET, "/news"); + process(&request); + request.standardAssertions(typeid(this).name()); +} + +BOOST_AUTO_TEST_CASE( news_ruby_20_removal ) +{ + ChromiumRequest request(this, HttpMethod::GET, "/news/2016-12-06-ruby-20-removal"); + process(&request); + request.standardAssertions(typeid(this).name()); +} + +BOOST_AUTO_TEST_CASE( packages ) +{ + ChromiumRequest request(this, HttpMethod::GET, "/packages"); + process(&request); + request.standardAssertions(typeid(this).name()); +} + +BOOST_AUTO_TEST_CASE( packages_popular ) +{ + ChromiumRequest request(this, HttpMethod::GET, "/packages/popular"); + process(&request); + request.standardAssertions(typeid(this).name()); +} + +BOOST_AUTO_TEST_CASE( packages_virtual ) +{ + ChromiumRequest request(this, HttpMethod::GET, "/packages/virtual"); + process(&request); + request.standardAssertions(typeid(this).name()); +} + +BOOST_AUTO_TEST_CASE( packages_virtual_cron ) +{ + ChromiumRequest request(this, HttpMethod::GET, "/packages/virtual/cron"); + process(&request); + request.standardAssertions(typeid(this).name()); +} + +BOOST_AUTO_TEST_CASE( use ) +{ + ChromiumRequest request(this, HttpMethod::GET, "/use"); + process(&request); + request.standardAssertions(typeid(this).name()); +} + +BOOST_AUTO_TEST_CASE( use_gles ) +{ + ChromiumRequest request(this, HttpMethod::GET, "/use/gles"); + process(&request); + request.standardAssertions(typeid(this).name()); +} + +BOOST_AUTO_TEST_CASE( search_default ) +{ + ChromiumRequest request(this, HttpMethod::GET, "/search"); + request.qs["criteria"] = "default"; + process(&request); + request.standardAssertions(typeid(this).name()); +} + +BOOST_AUTO_TEST_SUITE_END(); + diff --git a/gentoobrowse/xslt/base.xslt b/gentoobrowse/xslt/base.xslt index 1efd644..b1474e0 100644 --- a/gentoobrowse/xslt/base.xslt +++ b/gentoobrowse/xslt/base.xslt @@ -73,9 +73,9 @@ <div class="navbar-inner"> <div class="container"> <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> + <span class="icon-bar"> </span> + <span class="icon-bar"> </span> + <span class="icon-bar"> </span> </button> <a class="brand" href="/">Gentoo Browse</a> <div class="nav-collapse collapse"> @@ -122,23 +122,23 @@ <p>Many thanks to the people behind the tech powering Gentoo Browse.</p> <ul class="footer-links"> <li class="muted">·</li> - <li><a href="http://www.gentoo.org/">Gentoo</a></li><wbr></wbr> + <li><a href="http://www.gentoo.org/">Gentoo</a></li> <li class="muted">·</li> - <li><a href="http://www.postgresql.org/">PostgreSQL</a></li><wbr></wbr> + <li><a href="http://www.postgresql.org/">PostgreSQL</a></li> <li class="muted">·</li> - <li><a href="http://httpd.apache.org/">Apache</a></li><wbr></wbr> + <li><a href="http://httpd.apache.org/">Apache</a></li> <li class="muted">·</li> - <li><a href="http://www.fastcgi.com/drupal/">FastCGI</a></li><wbr></wbr> + <li><a href="http://www.fastcgi.com/drupal/">FastCGI</a></li> <li class="muted">·</li> - <li><a href="http://www.w3.org/TR/xslt/">XSLT</a></li><wbr></wbr> + <li><a href="http://www.w3.org/TR/xslt/">XSLT</a></li> <li class="muted">·</li> - <li><a href="http://www.boost.org/">Boost</a></li><wbr></wbr> + <li><a href="http://www.boost.org/">Boost</a></li> <li class="muted">·</li> - <li><a href="https://zeroc.com/products/ice">ZeroC Ice</a></li><wbr></wbr> + <li><a href="https://zeroc.com/products/ice">ZeroC Ice</a></li> <li class="muted">·</li> - <li><a href="http://twitter.github.com/bootstrap/index.html">Bootstrap</a></li><wbr></wbr> + <li><a href="http://twitter.github.com/bootstrap/index.html">Bootstrap</a></li> <li class="muted">·</li> - <li><a href="http://icespider.randomdan.homeip.net/">IceSpider</a></li><wbr></wbr> + <li><a href="http://icespider.randomdan.homeip.net/">IceSpider</a></li> <li class="muted">·</li> </ul> </div> @@ -201,16 +201,16 @@ </a> : <xsl:value-of select="description" /> - <xsl:if test="/gentoo/usage/use[packageid = current()/packageid]"> - <ul> - <xsl:for-each select="/gentoo/usage/use[packageid = current()/packageid]"> - <li> - <xsl:value-of select="description" /> - </li> - </xsl:for-each> - </ul> - </xsl:if> </p> + <xsl:if test="/gentoo/usage/use[packageid = current()/packageid]"> + <ul> + <xsl:for-each select="/gentoo/usage/use[packageid = current()/packageid]"> + <li> + <xsl:value-of select="description" /> + </li> + </xsl:for-each> + </ul> + </xsl:if> </xsl:template> <xsl:template match="text()" name="split"> diff --git a/gentoobrowse/xslt/categories.xslt b/gentoobrowse/xslt/categories.xslt index c800717..553abe5 100644 --- a/gentoobrowse/xslt/categories.xslt +++ b/gentoobrowse/xslt/categories.xslt @@ -29,7 +29,8 @@ <li> <a> <xsl:attribute name="href">#<xsl:value-of select="name" /></xsl:attribute> - <i class="icon-chevron-right"></i> <xsl:value-of select="name" /> + <i class="icon-chevron-right"> </i> + <xsl:value-of select="name" /> </a> </li> </xsl:for-each> diff --git a/gentoobrowse/xslt/category.xslt b/gentoobrowse/xslt/category.xslt index 622b9eb..117113c 100644 --- a/gentoobrowse/xslt/category.xslt +++ b/gentoobrowse/xslt/category.xslt @@ -28,14 +28,13 @@ <xsl:template match="/gentoo/packages"> <div class="span3 bs-docs-sidebar"> <ul class="nav nav-list bs-docs-sidenav"> - <li> - </li> </ul> </div> <div class="span9"> - <p> - </p> - <xsl:apply-templates select="/gentoo/packages/package" /> + <section> + <h2 class="page-header">Package list</h2> + <xsl:apply-templates select="/gentoo/packages/package" /> + </section> </div> </xsl:template> </xsl:stylesheet> diff --git a/gentoobrowse/xslt/home.xslt b/gentoobrowse/xslt/home.xslt index bc7e657..4fa6046 100644 --- a/gentoobrowse/xslt/home.xslt +++ b/gentoobrowse/xslt/home.xslt @@ -36,7 +36,7 @@ <li> <a> <xsl:attribute name="href">#<xsl:value-of select="date:date(timestamp)" /></xsl:attribute> - <i class="icon-chevron-right"></i> + <i class="icon-chevron-right"> </i> <xsl:call-template name="humanDate"> <xsl:with-param name="date" select="timestamp" /> </xsl:call-template> diff --git a/gentoobrowse/xslt/news.xslt b/gentoobrowse/xslt/news.xslt index 76b5a3a..4126aad 100644 --- a/gentoobrowse/xslt/news.xslt +++ b/gentoobrowse/xslt/news.xslt @@ -23,6 +23,7 @@ <li> <a> <xsl:attribute name="href">#<xsl:value-of select="newsid" /></xsl:attribute> + <i class="icon-chevron-right"> </i> <xsl:call-template name="humanDate"> <xsl:with-param name="date" select="posted" /> </xsl:call-template> diff --git a/gentoobrowse/xslt/package.xslt b/gentoobrowse/xslt/package.xslt index f435ea3..a89fef7 100644 --- a/gentoobrowse/xslt/package.xslt +++ b/gentoobrowse/xslt/package.xslt @@ -34,29 +34,29 @@ <div class="span3 bs-docs-sidebar"> <ul class="nav nav-list bs-docs-sidenav"> <xsl:if test="/gentoo/package/summary != ''"> - <li><a href="#summary"><i class="icon-chevron-right"/>Summary</a></li> + <li><a href="#summary"><i class="icon-chevron-right"> </i>Summary</a></li> </xsl:if> - <li><a href="#versions"><i class="icon-chevron-right"/>Versions</a></li> + <li><a href="#versions"><i class="icon-chevron-right"> </i>Versions</a></li> <xsl:if test="/gentoo/uses/use"> - <li><a href="#uses"><i class="icon-chevron-right"/>USE flags</a></li> + <li><a href="#uses"><i class="icon-chevron-right"> </i>USE flags</a></li> </xsl:if> <xsl:if test="/gentoo/dependencies/package"> - <li><a href="#deps"><i class="icon-chevron-right"/>Dependencies</a></li> + <li><a href="#deps"><i class="icon-chevron-right"> </i>Dependencies</a></li> </xsl:if> <xsl:if test="/gentoo/rdependencies/package"> - <li><a href="#rdeps"><i class="icon-chevron-right"/>Runtime dependencies</a></li> + <li><a href="#rdeps"><i class="icon-chevron-right"> </i>Runtime dependencies</a></li> </xsl:if> <xsl:if test="/gentoo/depending/package"> - <li><a href="#depees"><i class="icon-chevron-right"/>Depending packages</a></li> + <li><a href="#depees"><i class="icon-chevron-right"> </i>Depending packages</a></li> </xsl:if> <xsl:if test="/gentoo/bugs/bug"> - <li><a href="#bugs"><i class="icon-chevron-right"/>Open bugs</a></li> + <li><a href="#bugs"><i class="icon-chevron-right"> </i>Open bugs</a></li> </xsl:if> <xsl:if test="/gentoo/masks/mask"> - <li><a href="#masks"><i class="icon-chevron-right"/>Masks</a></li> + <li><a href="#masks"><i class="icon-chevron-right"> </i>Masks</a></li> </xsl:if> <xsl:if test="/gentoo/changelog/entry"> - <li><a href="#changelog"><i class="icon-chevron-right"/>Change log</a></li> + <li><a href="#changelog"><i class="icon-chevron-right"> </i>Change log</a></li> </xsl:if> <xsl:if test="user"> <li> @@ -64,12 +64,12 @@ <xsl:attribute name="href">javascript:track(<xsl:value-of select="/gentoo/package/packageid" />);</xsl:attribute> <xsl:if test="tracked = 'true'"> <xsl:attribute name="style">display: none</xsl:attribute> - </xsl:if><i class="icon-eye-close"/>Follow</a> + </xsl:if><i class="icon-eye-close"> </i>Follow</a> <a id="dountrack"> <xsl:attribute name="href">javascript:untrack(<xsl:value-of select="/gentoo/package/packageid" />);</xsl:attribute> <xsl:if test="tracked = 'false'"> <xsl:attribute name="style">display: none</xsl:attribute> - </xsl:if><i class="icon-eye-open"/>Unfollow</a> + </xsl:if><i class="icon-eye-open"> </i>Unfollow</a> </li> </xsl:if> </ul> diff --git a/gentoobrowse/xslt/popular.xslt b/gentoobrowse/xslt/popular.xslt index 9e11307..5e45e11 100644 --- a/gentoobrowse/xslt/popular.xslt +++ b/gentoobrowse/xslt/popular.xslt @@ -34,7 +34,8 @@ <li> <a> <xsl:attribute name="href">#<xsl:value-of select="name" /></xsl:attribute> - <i class="icon-chevron-right"></i> <xsl:value-of select="name" /> + <i class="icon-chevron-right"> </i> + <xsl:value-of select="name" /> </a> </li> </xsl:for-each> diff --git a/gentoobrowse/xslt/search.xslt b/gentoobrowse/xslt/search.xslt index 5ec8c83..de5db9e 100644 --- a/gentoobrowse/xslt/search.xslt +++ b/gentoobrowse/xslt/search.xslt @@ -23,16 +23,16 @@ <xsl:if test="/gentoo/packages|bugs|news/*"> <ul class="nav nav-list bs-docs-sidenav"> <xsl:if test="/gentoo/packages/*"> - <li><a href="#packages"><i class="icon-chevron-right"></i>Packages</a></li> + <li><a href="#packages"><i class="icon-chevron-right"> </i>Packages</a></li> </xsl:if> <xsl:if test="/gentoo/uses/*"> - <li><a href="#uses"><i class="icon-chevron-right"></i>Use flags</a></li> + <li><a href="#uses"><i class="icon-chevron-right"> </i>Use flags</a></li> </xsl:if> <xsl:if test="/gentoo/bugs/*"> - <li><a href="#bugs"><i class="icon-chevron-right"></i>Bugs</a></li> + <li><a href="#bugs"><i class="icon-chevron-right"> </i>Bugs</a></li> </xsl:if> <xsl:if test="/gentoo/news/*"> - <li><a href="#news"><i class="icon-chevron-right"></i>News</a></li> + <li><a href="#news"><i class="icon-chevron-right"> </i>News</a></li> </xsl:if> </ul> </xsl:if> diff --git a/gentoobrowse/xslt/use-detail.xslt b/gentoobrowse/xslt/use-detail.xslt index 6d114ce..d37b245 100644 --- a/gentoobrowse/xslt/use-detail.xslt +++ b/gentoobrowse/xslt/use-detail.xslt @@ -36,7 +36,7 @@ <li> <a> <xsl:attribute name="href">#<xsl:value-of select="name" /></xsl:attribute> - <i class="icon-chevron-right"></i> <xsl:value-of select="name" /> + <i class="icon-chevron-right"> </i> <xsl:value-of select="name" /> </a> </li> </xsl:for-each> diff --git a/gentoobrowse/xslt/use.xslt b/gentoobrowse/xslt/use.xslt index e8c5ea8..3b148a2 100644 --- a/gentoobrowse/xslt/use.xslt +++ b/gentoobrowse/xslt/use.xslt @@ -25,7 +25,7 @@ <li> <a> <xsl:attribute name="href">#<xsl:value-of select="$char" /></xsl:attribute> - <i class="icon-chevron-right"></i> <xsl:value-of select="$char" /> + <i class="icon-chevron-right"> </i> <xsl:value-of select="$char" /> </a> </li> </xsl:for-each> |