summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/downloadspeed/downloadspeed.pro16
-rw-r--r--tests/downloadspeed/main.cpp203
-rw-r--r--tests/environmentvariable/environmentvariable.pro23
-rw-r--r--tests/extractarchiveoperationtest/extractarchiveoperationtest.pro20
-rw-r--r--tests/fileengineclient/fileengineclient.pro15
-rw-r--r--tests/fileengineserver/fileengineserver.pro12
-rw-r--r--tests/tests.pro12
7 files changed, 257 insertions, 44 deletions
diff --git a/tests/downloadspeed/downloadspeed.pro b/tests/downloadspeed/downloadspeed.pro
new file mode 100644
index 000000000..2ee3923f1
--- /dev/null
+++ b/tests/downloadspeed/downloadspeed.pro
@@ -0,0 +1,16 @@
+TEMPLATE = app
+DEPENDPATH += . ..
+INCLUDEPATH += . ..
+TARGET = downloadspeed
+
+include(../../installerfw.pri)
+
+QT -= gui
+QT += network
+LIBS += -linstaller
+
+CONFIG += console
+CONFIG -= app_bundle
+DESTDIR = $$IFW_APP_PATH
+
+SOURCES += main.cpp
diff --git a/tests/downloadspeed/main.cpp b/tests/downloadspeed/main.cpp
new file mode 100644
index 000000000..e0516b90b
--- /dev/null
+++ b/tests/downloadspeed/main.cpp
@@ -0,0 +1,203 @@
+/**************************************************************************
+**
+** This file is part of Installer Framework
+**
+** Copyright (c) 2011-2012 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+**
+** GNU Lesser General Public License Usage
+**
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this file.
+** Please review the following information to ensure the GNU Lesser General
+** Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** Other Usage
+**
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**************************************************************************/
+
+#include <kdupdaterfiledownloader.h>
+#include <kdupdaterfiledownloaderfactory.h>
+
+#include <QtCore/QCoreApplication>
+#include <QtCore/QDebug>
+#include <QtCore/QObject>
+#include <QtCore/QUrl>
+
+#include <QtNetwork/QNetworkProxy>
+
+static QString humanReadableSize(quint64 intSize)
+{
+ QString unit;
+ double size;
+
+ if (intSize < 1024 * 1024) {
+ size = 1. + intSize / 1024.;
+ unit = QObject::tr("kB");
+ } else if (intSize < 1024 * 1024 * 1024) {
+ size = 1. + intSize / 1024. / 1024.;
+ unit = QObject::tr("MB");
+ } else {
+ size = 1. + intSize / 1024. / 1024. / 1024.;
+ unit = QObject::tr("GB");
+ }
+
+ size = qRound(size * 10) / 10.0;
+ return QString::fromLatin1("%L1 %2").arg(size, 0, 'g', 4).arg(unit);
+}
+
+// -- Receiver
+
+class Receiver : public QObject
+{
+ Q_OBJECT
+
+public:
+ Receiver() : QObject(), m_downloadFinished(false) {}
+ ~Receiver() {}
+
+ inline bool downloaded() { return m_downloadFinished; }
+
+public slots:
+ void downloadStarted()
+ {
+ m_downloadFinished = false;
+ }
+
+ void downloadFinished()
+ {
+ m_downloadFinished = true;
+ }
+
+ void downloadAborted(const QString &error)
+ {
+ m_downloadFinished = true;
+ qDebug() << "Error:" << error;
+ }
+
+ void downloadSpeed(qint64 speed)
+ {
+ qDebug() << "Download speed:" << humanReadableSize(speed) + QLatin1String("/sec");
+ }
+
+ void downloadProgress(double progress)
+ {
+ qDebug() << "Progress:" << progress;
+ }
+
+ void estimatedDownloadTime(int time)
+ {
+ if (time <= 0) {
+ qDebug() << "Unknown time remaining.";
+ return;
+ }
+
+ const int d = time / 86400;
+ const int h = (time / 3600) - (d * 24);
+ const int m = (time / 60) - (d * 1440) - (h * 60);
+ const int s = time % 60;
+
+ QString days;
+ if (d > 0)
+ days = QString::number(d) + QLatin1String(d < 2 ? " day" : " days") + QLatin1String(", ");
+
+ QString hours;
+ if (h > 0)
+ hours = QString::number(h) + QLatin1String(h < 2 ? " hour" : " hours") + QLatin1String(", ");
+
+ QString minutes;
+ if (m > 0)
+ minutes = QString::number(m) + QLatin1String(m < 2 ? " minute" : " minutes");
+
+ QString seconds;
+ if (s >= 0 && minutes.isEmpty())
+ seconds = QString::number(s) + QLatin1String(s < 2 ? " second" : " seconds");
+
+ qDebug() << days + hours + minutes + seconds + tr("remaining.");
+ }
+
+ void downloadStatus(const QString &status)
+ {
+ qDebug() << status;
+ }
+
+ void downloadProgress(qint64 bytesReceived, qint64 bytesToReceive)
+ {
+ qDebug() << "Bytes received:" << bytesReceived << ", Bytes to receive:" << bytesToReceive;
+ }
+
+private:
+ volatile bool m_downloadFinished;
+};
+
+
+// http://get.qt.nokia.com/qt/source/qt-mac-opensource-4.7.4.dmg
+// ftp://ftp.trolltech.com/qt/source/qt-mac-opensource-4.7.4.dmg
+
+class ProxyFactory : public KDUpdater::FileDownloaderProxyFactory
+{
+public:
+ ProxyFactory() {}
+
+ ProxyFactory *clone() const
+ {
+ return new ProxyFactory();
+ }
+
+ QList<QNetworkProxy> queryProxy(const QNetworkProxyQuery &query = QNetworkProxyQuery())
+ {
+ return QNetworkProxyFactory::systemProxyForQuery(query);
+ }
+};
+
+int main(int argc, char *argv[])
+{
+ QCoreApplication a(argc, argv);
+
+ if (a.arguments().count() < 2)
+ return EXIT_FAILURE;
+
+ const QUrl url(a.arguments().value(1));
+ qDebug() << url.toString();
+ KDUpdater::FileDownloader *loader = KDUpdater::FileDownloaderFactory::instance().create(url.scheme(), 0);
+ if (loader) {
+ loader->setUrl(url);
+ loader->setProxyFactory(new ProxyFactory());
+
+ Receiver r;
+ r.connect(loader, SIGNAL(downloadStarted()), &r, SLOT(downloadStarted()));
+ r.connect(loader, SIGNAL(downloadCanceled()), &r, SLOT(downloadFinished()));
+ r.connect(loader, SIGNAL(downloadCompleted()), &r, SLOT(downloadFinished()));
+ r.connect(loader, SIGNAL(downloadAborted(QString)), &r, SLOT(downloadAborted(QString)));
+
+ r.connect(loader, SIGNAL(downloadSpeed(qint64)), &r, SLOT(downloadSpeed(qint64)));
+ r.connect(loader, SIGNAL(downloadStatus(QString)), &r, SLOT(downloadStatus(QString)));
+ r.connect(loader, SIGNAL(downloadProgress(double)), &r, SLOT(downloadProgress(double)));
+ r.connect(loader, SIGNAL(estimatedDownloadTime(int)), &r, SLOT(estimatedDownloadTime(int)));
+ r.connect(loader, SIGNAL(downloadProgress(qint64, qint64)), &r, SLOT(downloadProgress(qint64, qint64)));
+
+ loader->download();
+ while (!r.downloaded())
+ QCoreApplication::processEvents();
+
+ delete loader;
+ }
+
+ return EXIT_SUCCESS;
+}
+
+#include "main.moc"
diff --git a/tests/environmentvariable/environmentvariable.pro b/tests/environmentvariable/environmentvariable.pro
index edb45e797..8b268faa5 100644
--- a/tests/environmentvariable/environmentvariable.pro
+++ b/tests/environmentvariable/environmentvariable.pro
@@ -1,20 +1,17 @@
TEMPLATE = app
-TARGET = tst_environmentvariable
+DEPENDPATH += . ..
+INCLUDEPATH += . ..
+TARGET = environmentvariable
-DESTDIR = bin
+include(../../installerfw.pri)
-CONFIG -= app_bundle
-
-QT += testlib script
QT -= gui
+QT += testlib
+LIBS += -linstaller
-INCLUDEPATH += . .. ../../installerbuilder/libinstaller
-DEPENDPATH += . .. ../../installerbuilder/libinstaller
-
-include(../../installerbuilder/libinstaller/libinstaller.pri)
+CONFIG += console
+CONFIG -= app_bundle
+DESTDIR = $$IFW_APP_PATH
-SOURCES = environmentvariabletest.cpp
HEADERS = environmentvariabletest.h
-
-LIBS = -L../../installerbuilder/lib -linstaller $$LIBS
-
+SOURCES = environmentvariabletest.cpp
diff --git a/tests/extractarchiveoperationtest/extractarchiveoperationtest.pro b/tests/extractarchiveoperationtest/extractarchiveoperationtest.pro
index bc533abb3..c2517a50a 100644
--- a/tests/extractarchiveoperationtest/extractarchiveoperationtest.pro
+++ b/tests/extractarchiveoperationtest/extractarchiveoperationtest.pro
@@ -1,19 +1,17 @@
TEMPLATE = app
+DEPENDPATH += . ..
+INCLUDEPATH += . ..
TARGET = extractarchiveoperationtest
-DESTDIR = bin
+include(../../installerfw.pri)
-CONFIG -= app_bundle
-
-QT += testlib script
QT -= gui
+QT += testlib
+LIBS += -linstaller
-INCLUDEPATH += . .. ../../installerbuilder/libinstaller
-DEPENDPATH += . .. ../../installerbuilder/libinstaller
-
-include(../../installerbuilder/libinstaller/libinstaller.pri)
+CONFIG += console
+CONFIG -= app_bundle
+DESTDIR = $$IFW_APP_PATH
+HEADERS = extractarchiveoperationtest.h
SOURCES = extractarchiveoperationtest.cpp
-HEADERS = extractarchiveoperationtest.h
-
-LIBS = -L../../installerbuilder/lib -linstaller $$LIBS
diff --git a/tests/fileengineclient/fileengineclient.pro b/tests/fileengineclient/fileengineclient.pro
index e09ad0b94..32a1b4f97 100644
--- a/tests/fileengineclient/fileengineclient.pro
+++ b/tests/fileengineclient/fileengineclient.pro
@@ -1,17 +1,16 @@
TEMPLATE = app
DEPENDPATH += . ..
INCLUDEPATH += . ..
+TARGET = fileengineclient
-DESTDIR = ../../installerbuilder/bin
-
-CONFIG += console
-CONFIG -= app_bundle
+include(../../installerfw.pri)
+QT -= gui
QT += network
+LIBS += -linstaller
-include(../../installerbuilder/libinstaller/libinstaller.pri)
+CONFIG += console
+CONFIG -= app_bundle
+DESTDIR = $$IFW_APP_PATH
-# Input
SOURCES += fileengineclient.cpp
-
-LIBS = -L../../installerbuilder/lib -linstaller $$LIBS
diff --git a/tests/fileengineserver/fileengineserver.pro b/tests/fileengineserver/fileengineserver.pro
index d8481bb86..9d1019cb7 100644
--- a/tests/fileengineserver/fileengineserver.pro
+++ b/tests/fileengineserver/fileengineserver.pro
@@ -1,15 +1,15 @@
TEMPLATE = app
DEPENDPATH += . ..
INCLUDEPATH += . ..
+TARGET = fileengineserver
-DESTDIR = ../../installerbuilder/bin
+include(../../installerfw.pri)
+
+QT -= gui
+LIBS += -linstaller
CONFIG += console
CONFIG -= app_bundle
+DESTDIR = $$IFW_APP_PATH
-include(../../installerbuilder/libinstaller/libinstaller.pri)
-
-# Input
SOURCES += fileengineserver.cpp
-
-LIBS = -L../../installerbuilder/lib -linstaller $$LIBS
diff --git a/tests/tests.pro b/tests/tests.pro
index f8eb9fc8b..da0f4b60c 100644
--- a/tests/tests.pro
+++ b/tests/tests.pro
@@ -1,7 +1,7 @@
+CONFIG += ordered
TEMPLATE = subdirs
-
-DESTDIR = bin
-SUBDIRS += extractarchiveoperationtest environmentvariable fileengineclient fileengineserver
-
-unix:test.commands = ./bin/extractarchiveoperationtest
-win32:test.commands = bin\\extractarchiveoperationtest.exe
+SUBDIRS += downloadspeed \
+ environmentvariable \
+ extractarchiveoperationtest \
+ fileengineclient \
+ fileengineserver