// // OAuth20CredentialsTest.cpp // // Copyright (c) 2014, Applied Informatics Software Engineering GmbH. // and Contributors. // // SPDX-License-Identifier: BSL-1.0 // #include "OAuth20CredentialsTest.h" #include "CppUnit/TestCaller.h" #include "CppUnit/TestSuite.h" #include "Poco/Net/HTTPRequest.h" #include "Poco/Net/OAuth20Credentials.h" #include "Poco/Net/NetException.h" using Poco::Net::HTTPRequest; using Poco::Net::OAuth20Credentials; using Poco::Net::NotAuthenticatedException; OAuth20CredentialsTest::OAuth20CredentialsTest(const std::string& name): CppUnit::TestCase(name) { } OAuth20CredentialsTest::~OAuth20CredentialsTest() { } void OAuth20CredentialsTest::testAuthorize() { OAuth20Credentials creds("s3cr3tt0k3n"); HTTPRequest request(HTTPRequest::HTTP_GET, "/"); creds.authenticate(request); std::string auth = request.get("Authorization"); assertTrue (auth == "Bearer s3cr3tt0k3n"); } void OAuth20CredentialsTest::testAuthorizeCustomScheme() { OAuth20Credentials creds("s3cr3tt0k3n", "token"); HTTPRequest request(HTTPRequest::HTTP_GET, "/"); creds.authenticate(request); std::string auth = request.get("Authorization"); assertTrue (auth == "token s3cr3tt0k3n"); } void OAuth20CredentialsTest::testExtract() { HTTPRequest request(HTTPRequest::HTTP_GET, "/"); request.set("Authorization", "Bearer s3cr3tt0k3n"); OAuth20Credentials creds(request); assertTrue (creds.getBearerToken() == "s3cr3tt0k3n"); } void OAuth20CredentialsTest::testExtractCustomScheme() { HTTPRequest request(HTTPRequest::HTTP_GET, "/"); request.set("Authorization", "token s3cr3tt0k3n"); OAuth20Credentials creds(request, "token"); assertTrue (creds.getBearerToken() == "s3cr3tt0k3n"); } void OAuth20CredentialsTest::testExtractNoCreds() { HTTPRequest request(HTTPRequest::HTTP_GET, "/"); try { OAuth20Credentials creds(request); fail("no credentials - must throw"); } catch (NotAuthenticatedException&) { } } void OAuth20CredentialsTest::setUp() { } void OAuth20CredentialsTest::tearDown() { } CppUnit::Test* OAuth20CredentialsTest::suite() { CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("OAuth20CredentialsTest"); CppUnit_addTest(pSuite, OAuth20CredentialsTest, testAuthorize); CppUnit_addTest(pSuite, OAuth20CredentialsTest, testAuthorizeCustomScheme); CppUnit_addTest(pSuite, OAuth20CredentialsTest, testExtract); CppUnit_addTest(pSuite, OAuth20CredentialsTest, testExtractCustomScheme); CppUnit_addTest(pSuite, OAuth20CredentialsTest, testExtractNoCreds); return pSuite; }