diff options
| author | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-09-03 20:12:27 +0100 | 
|---|---|---|
| committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-09-03 20:12:27 +0100 | 
| commit | ed53a8d000c50f3c9969284d642fd15e12258772 (patch) | |
| tree | 765f23a135b5aa43f2bc0b7419c734e59076e1a7 | |
| parent | Add missing override attribute (diff) | |
| download | gentoobrowse-ed53a8d000c50f3c9969284d642fd15e12258772.tar.bz2 gentoobrowse-ed53a8d000c50f3c9969284d642fd15e12258772.tar.xz gentoobrowse-ed53a8d000c50f3c9969284d642fd15e12258772.zip | |
Default sitemap to XMLgentoobrowse-2.1.6
| -rw-r--r-- | gentoobrowse/src/search.cpp | 13 | ||||
| -rw-r--r-- | gentoobrowse/src/test.cpp | 22 | 
2 files changed, 27 insertions, 8 deletions
| diff --git a/gentoobrowse/src/search.cpp b/gentoobrowse/src/search.cpp index d1241fa..52a5846 100644 --- a/gentoobrowse/src/search.cpp +++ b/gentoobrowse/src/search.cpp @@ -25,10 +25,10 @@ namespace GentooBrowse {  	public:  		sitemap(const IceSpider::Core * core) :  			IceSpider::IRouteHandler(IceSpider::HttpMethod::GET, "/sitemap.xml"), -			prx0(core->getProxy<Gentoo::Portage>()) +			prx0(core->getProxy<Gentoo::Portage>()), +			sitemaps {std::make_shared<IceSpider::XsltStreamSerializer::IceSpiderFactory>("xslt/sitemap.xslt")}  		{ -			addRouteSerializer({"application", "xml"}, -					std::make_shared<IceSpider::XsltStreamSerializer::IceSpiderFactory>("xslt/sitemap.xslt")); +			addRouteSerializer({"application", "xml"}, sitemaps);  		}  		void @@ -53,8 +53,15 @@ namespace GentooBrowse {  			request->response(this, _responseModel);  		} +		IceSpider::ContentTypeSerializer +		defaultSerializer(std::ostream & strm) const override +		{ +			return {{"application", "xml"}, sitemaps->create(strm)}; +		} +  	private:  		const Gentoo::PortagePrxPtr prx0; +		StreamSerializerFactoryPtr sitemaps;  	};  } // namespace GentooBrowse diff --git a/gentoobrowse/src/test.cpp b/gentoobrowse/src/test.cpp index 238efb4..aa49a07 100644 --- a/gentoobrowse/src/test.cpp +++ b/gentoobrowse/src/test.cpp @@ -86,12 +86,9 @@ public:  	}  }; -class ChromiumRequestXml : public ChromiumRequest { +class ChromiumRequestDefaultXml : public ChromiumRequest {  public: -	ChromiumRequestXml(const Core * c, HttpMethod m, const std::string & p) : ChromiumRequest(c, m, p) -	{ -		hdr["Accept"] = "application/xml"; -	} +	using ChromiumRequest::ChromiumRequest;  	virtual void  	standardAssertions(const char *) override @@ -104,6 +101,14 @@ public:  	}  }; +class ChromiumRequestXml : public ChromiumRequestDefaultXml { +public: +	ChromiumRequestXml(const Core * c, HttpMethod m, const std::string & p) : ChromiumRequestDefaultXml(c, m, p) +	{ +		hdr["Accept"] = "application/xml"; +	} +}; +  class ChromiumRequestAtom : public ChromiumRequest {  public:  	ChromiumRequestAtom(const Core * c, HttpMethod m, const std::string & p) : ChromiumRequest(c, m, p) @@ -255,6 +260,13 @@ BOOST_AUTO_TEST_CASE(search_sitemap)  	request.standardAssertions(typeid(*this).name());  } +BOOST_AUTO_TEST_CASE(search_sitemap_dfl) +{ +	ChromiumRequestDefaultXml request(this, HttpMethod::GET, "/sitemap.xml"); +	process(&request); +	request.standardAssertions(typeid(*this).name()); +} +  BOOST_AUTO_TEST_CASE(home_atom)  {  	ChromiumRequestAtom request(this, HttpMethod::GET, "/"); | 
