| Line | Source Code | Coverage |
|---|
| 1 | | - |
| 2 | | - |
| 3 | | - |
| 4 | | - |
| 5 | QNetworkReplyFileImplPrivate::QNetworkReplyFileImplPrivate() | - |
| 6 | : QNetworkReplyPrivate(), realFileSize(0) | - |
| 7 | { | - |
| 8 | } executed: }Execution Count:29 | 29 |
| 9 | | - |
| 10 | QNetworkReplyFileImpl::~QNetworkReplyFileImpl() | - |
| 11 | { | - |
| 12 | } | - |
| 13 | | - |
| 14 | QNetworkReplyFileImpl::QNetworkReplyFileImpl(QObject *parent, const QNetworkRequest &req, const QNetworkAccessManager::Operation op) | - |
| 15 | : QNetworkReply(*new QNetworkReplyFileImplPrivate(), parent) | - |
| 16 | { | - |
| 17 | setRequest(req); | - |
| 18 | setUrl(req.url()); | - |
| 19 | setOperation(op); | - |
| 20 | setFinished(true); | - |
| 21 | QNetworkReply::open(QIODevice::ReadOnly); | - |
| 22 | | - |
| 23 | QNetworkReplyFileImplPrivate *d = (QNetworkReplyFileImplPrivate*) d_func(); | - |
| 24 | | - |
| 25 | QUrl url = req.url(); | - |
| 26 | if (url.host() == QLatin1String("localhost")) evaluated: url.host() == QLatin1String("localhost")| yes Evaluation Count:1 | yes Evaluation Count:28 |
| 1-28 |
| 27 | url.setHost(QString()); executed: url.setHost(QString());Execution Count:1 | 1 |
| 28 | | - |
| 29 | | - |
| 30 | | - |
| 31 | if (!url.host().isEmpty()) { evaluated: !url.host().isEmpty()| yes Evaluation Count:1 | yes Evaluation Count:28 |
| 1-28 |
| 32 | | - |
| 33 | QString msg = QCoreApplication::translate("QNetworkAccessFileBackend", "Request for opening non-local file %1").arg(url.toString()); | - |
| 34 | setError(QNetworkReply::ProtocolInvalidOperationError, msg); | - |
| 35 | QMetaObject::invokeMethod(this, "error", Qt::QueuedConnection, | - |
| 36 | QArgument<QNetworkReply::NetworkError >("QNetworkReply::NetworkError", QNetworkReply::ProtocolInvalidOperationError)); | - |
| 37 | QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection); | - |
| 38 | return; executed: return;Execution Count:1 | 1 |
| 39 | } | - |
| 40 | | - |
| 41 | if (url.path().isEmpty()) evaluated: url.path().isEmpty()| yes Evaluation Count:1 | yes Evaluation Count:27 |
| 1-27 |
| 42 | url.setPath(QLatin1String("/")); executed: url.setPath(QLatin1String("/"));Execution Count:1 | 1 |
| 43 | setUrl(url); | - |
| 44 | | - |
| 45 | | - |
| 46 | QString fileName = url.toLocalFile(); | - |
| 47 | if (fileName.isEmpty()) { evaluated: fileName.isEmpty()| yes Evaluation Count:2 | yes Evaluation Count:26 |
| 2-26 |
| 48 | if (url.scheme() == QLatin1String("qrc")) partially evaluated: url.scheme() == QLatin1String("qrc")| yes Evaluation Count:2 | no Evaluation Count:0 |
| 0-2 |
| 49 | fileName = QLatin1Char(':') + url.path(); executed: fileName = QLatin1Char(':') + url.path();Execution Count:2 | 2 |
| 50 | else | - |
| 51 | fileName = url.toString(QUrl::RemoveAuthority | QUrl::RemoveFragment | QUrl::RemoveQuery); never executed: fileName = url.toString(QUrl::RemoveAuthority | QUrl::RemoveFragment | QUrl::RemoveQuery); | 0 |
| 52 | } | - |
| 53 | | - |
| 54 | QFileInfo fi(fileName); | - |
| 55 | if (fi.isDir()) { evaluated: fi.isDir()| yes Evaluation Count:3 | yes Evaluation Count:25 |
| 3-25 |
| 56 | QString msg = QCoreApplication::translate("QNetworkAccessFileBackend", "Cannot open %1: Path is a directory").arg(url.toString()); | - |
| 57 | setError(QNetworkReply::ContentOperationNotPermittedError, msg); | - |
| 58 | QMetaObject::invokeMethod(this, "error", Qt::QueuedConnection, | - |
| 59 | QArgument<QNetworkReply::NetworkError >("QNetworkReply::NetworkError", QNetworkReply::ContentOperationNotPermittedError)); | - |
| 60 | QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection); | - |
| 61 | return; executed: return;Execution Count:3 | 3 |
| 62 | } | - |
| 63 | | - |
| 64 | d->realFile.setFileName(fileName); | - |
| 65 | bool opened = d->realFile.open(QIODevice::ReadOnly | QIODevice::Unbuffered); | - |
| 66 | | - |
| 67 | | - |
| 68 | if (!opened) { evaluated: !opened| yes Evaluation Count:3 | yes Evaluation Count:22 |
| 3-22 |
| 69 | QString msg = QCoreApplication::translate("QNetworkAccessFileBackend", "Error opening %1: %2") | - |
| 70 | .arg(d->realFile.fileName(), d->realFile.errorString()); | - |
| 71 | | - |
| 72 | if (d->realFile.exists()) { evaluated: d->realFile.exists()| yes Evaluation Count:2 | yes Evaluation Count:1 |
| 1-2 |
| 73 | setError(QNetworkReply::ContentAccessDenied, msg); | - |
| 74 | QMetaObject::invokeMethod(this, "error", Qt::QueuedConnection, | - |
| 75 | QArgument<QNetworkReply::NetworkError >("QNetworkReply::NetworkError", QNetworkReply::ContentAccessDenied)); | - |
| 76 | } else { executed: }Execution Count:2 | 2 |
| 77 | setError(QNetworkReply::ContentNotFoundError, msg); | - |
| 78 | QMetaObject::invokeMethod(this, "error", Qt::QueuedConnection, | - |
| 79 | QArgument<QNetworkReply::NetworkError >("QNetworkReply::NetworkError", QNetworkReply::ContentNotFoundError)); | - |
| 80 | } executed: }Execution Count:1 | 1 |
| 81 | QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection); | - |
| 82 | return; executed: return;Execution Count:3 | 3 |
| 83 | } | - |
| 84 | | - |
| 85 | setHeader(QNetworkRequest::LastModifiedHeader, fi.lastModified()); | - |
| 86 | d->realFileSize = fi.size(); | - |
| 87 | setHeader(QNetworkRequest::ContentLengthHeader, d->realFileSize); | - |
| 88 | | - |
| 89 | QMetaObject::invokeMethod(this, "metaDataChanged", Qt::QueuedConnection); | - |
| 90 | QMetaObject::invokeMethod(this, "downloadProgress", Qt::QueuedConnection, | - |
| 91 | QArgument<qint64 >("qint64", d->realFileSize), QArgument<qint64 >("qint64", d->realFileSize)); | - |
| 92 | QMetaObject::invokeMethod(this, "readyRead", Qt::QueuedConnection); | - |
| 93 | QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection); | - |
| 94 | } executed: }Execution Count:22 | 22 |
| 95 | void QNetworkReplyFileImpl::close() | - |
| 96 | { | - |
| 97 | QNetworkReplyFileImplPrivate * const d = d_func(); | - |
| 98 | QNetworkReply::close(); | - |
| 99 | d->realFile.close(); | - |
| 100 | } | 0 |
| 101 | | - |
| 102 | void QNetworkReplyFileImpl::abort() | - |
| 103 | { | - |
| 104 | QNetworkReplyFileImplPrivate * const d = d_func(); | - |
| 105 | QNetworkReply::close(); | - |
| 106 | d->realFile.close(); | - |
| 107 | } executed: }Execution Count:1 | 1 |
| 108 | | - |
| 109 | qint64 QNetworkReplyFileImpl::bytesAvailable() const | - |
| 110 | { | - |
| 111 | const QNetworkReplyFileImplPrivate * const d = d_func(); | - |
| 112 | return QNetworkReply::bytesAvailable() + d->realFile.bytesAvailable(); executed: return QNetworkReply::bytesAvailable() + d->realFile.bytesAvailable();Execution Count:193 | 193 |
| 113 | } | - |
| 114 | | - |
| 115 | bool QNetworkReplyFileImpl::isSequential () const | - |
| 116 | { | - |
| 117 | return true; executed: return true;Execution Count:182 | 182 |
| 118 | } | - |
| 119 | | - |
| 120 | qint64 QNetworkReplyFileImpl::size() const | - |
| 121 | { | - |
| 122 | const QNetworkReplyFileImplPrivate * const d = d_func(); | - |
| 123 | return d->realFileSize; never executed: return d->realFileSize; | 0 |
| 124 | } | - |
| 125 | | - |
| 126 | | - |
| 127 | | - |
| 128 | | - |
| 129 | qint64 QNetworkReplyFileImpl::readData(char *data, qint64 maxlen) | - |
| 130 | { | - |
| 131 | QNetworkReplyFileImplPrivate * const d = d_func(); | - |
| 132 | qint64 ret = d->realFile.read(data, maxlen); | - |
| 133 | if (ret == 0 && bytesAvailable() == 0) evaluated: ret == 0| yes Evaluation Count:176 | yes Evaluation Count:168 |
evaluated: bytesAvailable() == 0| yes Evaluation Count:31 | yes Evaluation Count:145 |
| 31-176 |
| 134 | return -1; executed: return -1;Execution Count:31 | 31 |
| 135 | else | - |
| 136 | return ret; executed: return ret;Execution Count:313 | 313 |
| 137 | } | - |
| 138 | | - |
| 139 | | - |
| 140 | | - |
| 141 | | - |
| 142 | | - |
| | |