1689
void OAuth2PluginTest::testTokenPath_data()
1691
QTest::addColumn<QString>("host");
1692
QTest::addColumn<QString>("tokenPath");
1693
QTest::addColumn<QString>("expectedTokenUrl");
1695
QTest::newRow("relative") <<
1698
"https://localhost/access_token";
1700
QTest::newRow("relative with slashes") <<
1702
"path/to/access_token" <<
1703
"https://localhost/path/to/access_token";
1705
QTest::newRow("absolute") <<
1707
"https://another.host/and/a/path" <<
1708
"https://another.host/and/a/path";
1711
void OAuth2PluginTest::testTokenPath()
1713
QFETCH(QString, host);
1714
QFETCH(QString, tokenPath);
1715
QFETCH(QString, expectedTokenUrl);
1717
SignOn::UiSessionData info;
1718
OAuth2PluginData data;
1720
data.setAuthPath("authorize");
1721
data.setTokenPath(tokenPath);
1722
data.setClientId("104660106251471");
1723
data.setRedirectUri("http://localhost/resp.html");
1725
QSignalSpy result(m_testPlugin, SIGNAL(result(const SignOn::SessionData&)));
1726
QSignalSpy error(m_testPlugin, SIGNAL(error(const SignOn::Error &)));
1727
QSignalSpy userActionRequired(m_testPlugin,
1728
SIGNAL(userActionRequired(const SignOn::UiSessionData&)));
1730
TestNetworkAccessManager *nam = new TestNetworkAccessManager;
1731
m_testPlugin->m_networkAccessManager = nam;
1732
TestNetworkReply *reply = new TestNetworkReply(this);
1733
reply->setStatusCode(200);
1734
reply->setContentType("application/json");
1735
reply->setContent("{ \"access_token\":\"t0k3n\", \"expires_in\": 3600 }");
1736
nam->setNextReply(reply);
1738
m_testPlugin->process(data, QString("web_server"));
1739
QTRY_COMPARE(userActionRequired.count(), 1);
1740
QString state = parseState(userActionRequired);
1742
info.setUrlResponse("http://localhost/resp.html?code=c0d3&state=" + state);
1743
m_testPlugin->userActionFinished(info);
1745
QTRY_COMPARE(result.count(), 1);
1746
QCOMPARE(error.count(), 0);
1747
QCOMPARE(nam->m_lastRequest.url(), QUrl(expectedTokenUrl));
1689
1752
//end test cases
1691
1754
QTEST_MAIN(OAuth2PluginTest)