reset status code
This commit is contained in:
parent
41c842edf7
commit
5ce60584ad
|
@ -79,12 +79,14 @@ describe Capybara::Session do
|
||||||
subject.click_button('ボタン')
|
subject.click_button('ボタン')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "status code" do
|
context "status code" do
|
||||||
before(:all) do
|
before(:all) do
|
||||||
@app = lambda do |env|
|
@app = lambda do |env|
|
||||||
params = ::Rack::Utils.parse_query(env['QUERY_STRING'])
|
params = ::Rack::Utils.parse_query(env['QUERY_STRING'])
|
||||||
if params["img"] == "true"
|
if params["img"] == "true"
|
||||||
return [404, { 'Content-Type' => 'image/gif', 'Content-Length' => '0' }, ['not found']]
|
body = 'not found'
|
||||||
|
return [404, { 'Content-Type' => 'image/gif', 'Content-Length' => body.length.to_s }, [body]]
|
||||||
end
|
end
|
||||||
body = <<-HTML
|
body = <<-HTML
|
||||||
<html>
|
<html>
|
||||||
|
|
|
@ -11,8 +11,9 @@ void Reset::start(QStringList &arguments) {
|
||||||
page()->triggerAction(QWebPage::Stop);
|
page()->triggerAction(QWebPage::Stop);
|
||||||
page()->currentFrame()->setHtml("<html><body></body></html>");
|
page()->currentFrame()->setHtml("<html><body></body></html>");
|
||||||
page()->networkAccessManager()->setCookieJar(new QNetworkCookieJar());
|
page()->networkAccessManager()->setCookieJar(new QNetworkCookieJar());
|
||||||
page()->setNetworkAccessManager(new NetworkAccessManager());
|
page()->setCustomNetworkAccessManager();
|
||||||
page()->setUserAgent(NULL);
|
page()->setUserAgent(NULL);
|
||||||
|
page()->resetLastStatus();
|
||||||
emit finished(new Response(true));
|
emit finished(new Response(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,10 +9,7 @@ WebPage::WebPage(QObject *parent) : QWebPage(parent) {
|
||||||
setUserStylesheet();
|
setUserStylesheet();
|
||||||
|
|
||||||
m_loading = false;
|
m_loading = false;
|
||||||
|
this->setCustomNetworkAccessManager();
|
||||||
NetworkAccessManager *manager = new NetworkAccessManager();
|
|
||||||
this->setNetworkAccessManager(manager);
|
|
||||||
connect(manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(replyFinished(QNetworkReply *)));
|
|
||||||
|
|
||||||
connect(this, SIGNAL(loadStarted()), this, SLOT(loadStarted()));
|
connect(this, SIGNAL(loadStarted()), this, SLOT(loadStarted()));
|
||||||
connect(this, SIGNAL(loadFinished(bool)), this, SLOT(loadFinished(bool)));
|
connect(this, SIGNAL(loadFinished(bool)), this, SLOT(loadFinished(bool)));
|
||||||
|
@ -20,6 +17,12 @@ WebPage::WebPage(QObject *parent) : QWebPage(parent) {
|
||||||
this, SLOT(frameCreated(QWebFrame *)));
|
this, SLOT(frameCreated(QWebFrame *)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WebPage::setCustomNetworkAccessManager() {
|
||||||
|
NetworkAccessManager *manager = new NetworkAccessManager();
|
||||||
|
this->setNetworkAccessManager(manager);
|
||||||
|
connect(manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(replyFinished(QNetworkReply *)));
|
||||||
|
}
|
||||||
|
|
||||||
void WebPage::loadJavascript() {
|
void WebPage::loadJavascript() {
|
||||||
QResource javascript(":/capybara.js");
|
QResource javascript(":/capybara.js");
|
||||||
if (javascript.isCompressed()) {
|
if (javascript.isCompressed()) {
|
||||||
|
@ -168,7 +171,7 @@ QString WebPage::getLastAttachedFileName() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void WebPage::replyFinished(QNetworkReply *reply) {
|
void WebPage::replyFinished(QNetworkReply *reply) {
|
||||||
if (reply->url() == this->mainFrame()->url()) {
|
if (reply->url() == this->currentFrame()->url()) {
|
||||||
QStringList headers;
|
QStringList headers;
|
||||||
lastStatus = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
lastStatus = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
||||||
QList<QByteArray> list = reply->rawHeaderList();
|
QList<QByteArray> list = reply->rawHeaderList();
|
||||||
|
@ -186,6 +189,10 @@ int WebPage::getLastStatus() {
|
||||||
return lastStatus;
|
return lastStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WebPage::resetLastStatus() {
|
||||||
|
lastStatus = 0;
|
||||||
|
}
|
||||||
|
|
||||||
QString WebPage::pageHeaders() {
|
QString WebPage::pageHeaders() {
|
||||||
return m_pageHeaders;
|
return m_pageHeaders;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,8 @@ class WebPage : public QWebPage {
|
||||||
QString userAgentForUrl(const QUrl &url ) const;
|
QString userAgentForUrl(const QUrl &url ) const;
|
||||||
void setUserAgent(QString userAgent);
|
void setUserAgent(QString userAgent);
|
||||||
int getLastStatus();
|
int getLastStatus();
|
||||||
|
void resetLastStatus();
|
||||||
|
void setCustomNetworkAccessManager();
|
||||||
bool render(const QString &fileName);
|
bool render(const QString &fileName);
|
||||||
virtual bool extension (Extension extension, const ExtensionOption *option=0, ExtensionReturn *output=0);
|
virtual bool extension (Extension extension, const ExtensionOption *option=0, ExtensionReturn *output=0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue