void HTTPStreamFactoryTest::testRedirect() { HTTPTestServer server; Poco::URIStreamOpener opener; opener.registerStreamFactory("http", new HTTPStreamFactory); URI uri("http://localhost/redirect"); uri.setPort(server.port()); std::auto_ptr<std::istream> pStr(opener.open(uri)); std::ostringstream ostr; StreamCopier::copyStream(*pStr.get(), ostr); assert (ostr.str() == HTTPTestServer::LARGE_BODY); }
void BundleStreamFactoryTest::testStreamFactory() { CodeCache cc("codeCache"); ServiceRegistry reg; LanguageTag lang("en", "US"); BundleFactory::Ptr pBundleFactory(new BundleFactory(lang)); Poco::OSP::SystemEvents systemEvents; BundleContextFactory::Ptr pBundleContextFactory(new BundleContextFactory(reg, systemEvents)); BundleLoader loader(cc, pBundleFactory, pBundleContextFactory); loader.loadBundle(findBundle("com.appinf.osp.bundle2_1.0.0")); Poco::URIStreamOpener opener; opener.registerStreamFactory("bndl", new BundleStreamFactory(loader)); std::auto_ptr<std::istream> pStream(opener.open("bndl://com.appinf.osp.bundle2/lang.txt")); assert (pStream.get() != 0); std::string s; *pStream >> s; assert (s == "en-US"); try { std::auto_ptr<std::istream> pStream(opener.open("bndl://com.appinf.osp.bundle2/notfound.txt")); fail("resource not found - must throw"); } catch (Poco::Exception&) { } try { std::auto_ptr<std::istream> pStream(opener.open("bndl://com.appinf.osp.bundle99/notfound.txt")); fail("bundle not found - must throw"); } catch (Poco::Exception&) { } }