Commit dd6c5cad88a56fb3a342fe9d4fc3b113ffe3fd53
QNetworkReply: Fix canReadLine()
Reviewed-by: Peter Hartmann
| |   |
| 206 | 206 | { |
| 207 | 207 | return buffers[i]; |
| 208 | 208 | } |
|
| inline bool canReadLine() const { |
| for (int i = 0; i < buffers.length(); i++) |
| if (buffers.at(i).contains('\n')) |
| return true; |
| return false; |
| } |
| 209 | 216 | }; |
| 210 | 217 | |
| 211 | 218 | QT_END_NAMESPACE |
| |   |
| 723 | 723 | d->finished(); |
| 724 | 724 | } |
| 725 | 725 | |
| bool QNetworkReplyImpl::canReadLine () const |
| { |
| Q_D(const QNetworkReplyImpl); |
| return QNetworkReply::canReadLine() || d->readBuffer.canReadLine(); |
| } |
|
|
| 726 | 733 | /*! |
| 727 | 734 | Returns the number of bytes available for reading with |
| 728 | 735 | QIODevice::read(). The number of bytes available may grow until |
| |   |
| 77 | 77 | ~QNetworkReplyImpl(); |
| 78 | 78 | virtual void abort(); |
| 79 | 79 | |
| // reimplemented from QNetworkReply |
| // reimplemented from QNetworkReply / QIODevice |
| 81 | 81 | virtual void close(); |
| 82 | 82 | virtual qint64 bytesAvailable() const; |
| 83 | 83 | virtual void setReadBufferSize(qint64 size); |
| virtual bool canReadLine () const; |
| 84 | 85 | |
| 85 | 86 | virtual qint64 readData(char *data, qint64 maxlen); |
| 86 | 87 | virtual bool event(QEvent *); |
| |   |
| 237 | 237 | void lastModifiedHeaderForFile(); |
| 238 | 238 | void lastModifiedHeaderForHttp(); |
| 239 | 239 | |
| void httpCanReadLine(); |
|
| 240 | 242 | void rateControl_data(); |
| 241 | 243 | void rateControl(); |
| 242 | 244 | |
| … | … | |
| 3315 | 3315 | realDate.setTimeSpec(Qt::UTC); |
| 3316 | 3316 | |
| 3317 | 3317 | QCOMPARE(header, realDate); |
| } |
|
| void tst_QNetworkReply::httpCanReadLine() |
| { |
| QNetworkRequest request(QUrl("http://" + QtNetworkSettings::serverName() + "/qtest/rfc3252.txt")); |
| QNetworkReplyPtr reply = manager.get(request); |
|
| connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); |
| QTestEventLoop::instance().enterLoop(10); |
| QVERIFY(!QTestEventLoop::instance().timeout()); |
| QCOMPARE(reply->error(), QNetworkReply::NoError); |
|
| QVERIFY(reply->canReadLine()); |
| QVERIFY(!reply->readAll().isEmpty()); |
| QVERIFY(!reply->canReadLine()); |
| 3318 | 3333 | } |
| 3319 | 3334 | |
| 3320 | 3335 | void tst_QNetworkReply::rateControl_data() |