summaryrefslogtreecommitdiffstats
path: root/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Rewrite QNetworkReply downloadProgress autotestShane Kearns2012-06-141-54/+56
| | | | | | | | | | | The existing autotest was made invalid by the downloadProgress signal choking patch. Rewrote the autotest to download files from the test server with some rate limiting applied to ensure more than one signal is emitted. Change-Id: I6026bacdf356b4e1796b80f6983e5bdce0d1bfce Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* choke uploadProgress signalsShane Kearns2012-06-141-1/+4
| | | | | | | | | | | | | | | | | | The QNetworkReply::uploadProgress signal is intended for updating UI elements such as a progress bar. Limit the signal emissions to 10 per second to prevent overloading the UI with updates. As with the downloadProgress choke, this is implemented by dropping signals that occur within 100ms of the previous emission. The 100% signal is always emitted (bytesSent == bytesTotal) When the upload size is initially unknown, this behaviour is still provided by the upload device emitting a suitable readProgress signal when EOF is reached. Task-number: QTBUG-20449 Change-Id: I77e03c8a49109106e1c375ee00380293fd326b63 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* Make tst_qnetworkreply parallel-safe.Rohan McGovern2012-05-291-2/+2
| | | | | | | | | Ensure we always use a unique filename when writing to test files. The test already contained code for this, but it was not applied in a couple of places. Change-Id: I1e29ee162c390e014688ab46e3658e2a463d203e Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
* Fallback to IPv4 when IPv6 is not present.Jonas M. Gastal2012-05-211-3/+2
| | | | | | | In tests when IPv6 is not present QSKIP IPv6 tests. Task-number: QTBUG-23660 Change-Id: I02abc7322d765a93cbf661e53c76257f03dca73e Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* tst_QNetworkReply: enable the ioGetFromBuiltinHttp test.Martin Petersson2012-05-161-6/+5
| | | | | | | | | | This can be enabled again now. The sender transfer test is still not re-enabled since the test would take to long to run if sending enough data to overwhelm the reciever's kernel buffers. Change-Id: I4056fdca53ec8ebbcc53dfdc814d8bfdbc73f7ce Reviewed-by: Shane Kearns <shane.kearns@accenture.com> Reviewed-by: Prasanth Ullattil <prasanth.ullattil@nokia.com>
* tst_QNetworkReply: fix backgroundRequestInterruption test.Martin Petersson2012-05-111-0/+3
| | | | | | | | After we have change the policy we should set the readbuffersize to unlimited again, so that we try to download all data. Change-Id: I1b9bdb6c2e5f408c920f6e6d7e85a39e4c18316b Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Change remaining uses of {to,from}Ascii to {to,from}Latin1 [QtNetwork]Thiago Macieira2012-05-041-10/+10
| | | | | | | | | | | | This operation should be a no-op anyway, since at this point in time, the fromAscii and toAscii functions simply call their fromLatin1 and toLatin1 counterparts. Task-number: QTBUG-21872 Change-Id: I94cc301ea75cc689bcb6e2d417120cf14e36808d Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Shane Kearns <shane.kearns@accenture.com> Reviewed-by: Richard J. Moore <rich@kde.org>
* Optimise windows cert fetching and fix test case.Shane Kearns2012-05-031-2/+1
| | | | | | | | | | | | | If we're not going to verify the peer, or we know in advance that windows won't have a CA root then don't ask it to verify the certificate chain. The test case started failing in CI when the windows cert fetcher was integrated due to timing change. I've relaxed the timing requirement of the test to avoid it being unstable. Task-number: QTBUG-24827 Change-Id: I694f193f7d96962667f00aa01b9483b326e3e054 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* Stabilisation of tst_qnetworkreply on windowsShane Kearns2012-04-201-8/+14
| | | | | | | | | | Workaround QTBUG-24451 by retrying creation of SocketPair if it fails (waitForConnected and waitForNewConnection are used in the factory function). Skip very unstable test cases due to QTBUG-25386 Change-Id: I32129922329b895eb3719d61719c487a4d52c466 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add test case for checking ConnectInBackground is setShane Kearns2012-04-191-1/+64
| | | | | | | | | | | | | ConnectInBackground should be set when opening a network session due to a background request. This test checks that. Unfortunately, none of the bearer plugins currently in Qt Base support this attribute, so the test result is inconclusive. (testing with a debugger shows the attribute is set correctly, but it can't be read back as the set is discarded by the plugin implementation) Change-Id: Idcf777fe489a62d4ff5007ffd291a84ba052311b Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* Abort background requests if policy changes to disallow themShane Kearns2012-04-191-0/+73
| | | | | | | | | | | | | Using the policy change signal from QNetworkSession. If the new policy disallows background requests and this is a background request, then generate an error. This results in a TCP RST on the socket, and a BackgroundRequestNotAllowedError on the QNetworkReply. If the reply is already finished, no action is taken. Change-Id: I4ff5c681a8b7b852727bb95f03664d666f4efe07 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* Expand tst_QNetworkReply::backgroundRequest to ftp & httpsShane Kearns2012-04-191-5/+35
| | | | | | | | Ftp and Http have different implementations of QNetworkReply, so test both of them. Change-Id: If502fa1788110edf89e619966534eea08830a19b Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* Add unit test for BackgroundRequestAttributeShane Kearns2012-04-131-1/+47
| | | | | Change-Id: I807953cac3d23825461f9ae860badbd148835330 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* Merge remote-tracking branch 'origin/master' into api_changesOswald Buddenhagen2012-04-101-0/+32
|\ | | | | | | | | | | | | | | | | | | Conflicts: configure src/widgets/styles/qwindowsxpstyle.cpp tests/auto/gui/kernel/qwindow/qwindow.pro tests/auto/gui/kernel/qwindow/tst_qwindow.cpp Change-Id: I624b6d26abce9874c610c04954c1c45bc074bef3
| * QNetworkAccessFtpBackend: remove entry from QNetworkAccessCacheMartin Petersson2012-04-011-0/+32
| | | | | | | | | | | | | | | | | | | | | | When FTP login fails we fail to remove the entry from the cache. This is because the cache key is created from the url with the userInfo. So this needs to be set again to match the key used when inserted. Task-number: QTBUG-11824 Change-Id: Ib3fd2d737581653ae59c56d0810d42e2d8dc2176 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* | Port to the new QUrl APIThiago Macieira2012-03-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The use of any broken-down components of the query now needs QUrlQuery. The QUrl constructor and toString() are now rehabilitated and the preferred forms. Use toEncoded() and fromEncoded() now only when we need to store data in a QByteArray or the data comes from a QByteArray anyway. Change to toString() or the constructor if the data was in a QString. Change-Id: I9d761a628bef9c70185a48e927a61779a1642342 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* | tst_qnetworkreply: don't inherit from QSharedPointerMarc Mutz2012-03-231-146/+145
|/ | | | | | | | | | | | | | | QSharedPointer isn't meant to be used as a base class. Instead of inheriting from it to add implicit conversions to and from QNetworkReply*, make QNetworkReplyPtr a typedef, overload two oft-used functions to take a QNetworkReplyPtr in addition to QNetworkReply*, and otherwise make the conversions explicit. Change-Id: I1eff1793a19f2d5bad1cce8de74c0786675a50f3 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Mark tst_QNetworkReply::getThenDeleteObject as unstableShane Kearns2012-03-081-0/+1
| | | | | | | | | | It's unstable on all platforms, because the reply can be finished due to a race with the http thread. It isn't crashing (which the test was trying to test for), but rather the QVERIFY(!reply->isFinished()) fails, which is an inconclusive verdict. Change-Id: Ib815a7cedd220544a0c9cb83023e3334df4a0fb3 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* tst_qnetworkreply - remove qRegisterMetaType duplicatesShane Kearns2012-03-081-28/+0
| | | | | | | | | | The metatypes are registered in the constructor, don't need to register them in test cases as well. Registering in a test case is bad practice, as it could result in tests failing when run individually due to unknown metatype. Change-Id: Ic4d65d0f5fe3cdd3ab57cf2512a4906d71205a05 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* Add windows XFAIL to qnetworkreply autotestShane Kearns2012-03-081-0/+4
| | | | | | | | The test case that depends on QLocalSocket consistently fails due to bugs in QLocalSocket windows implementation Change-Id: Ibfe9eb3590be4f72b52f14cd4fbe5be61f6cf70e Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Fix tst_QNetworkReply::httpWithNoCredentialUsage autotestShane Kearns2012-03-061-16/+39
| | | | | | | | | | | | The test was testing the wrong thing, and passing even though QNetworkRequest::AuthenticationReuseAttribute was not being respected, until recently when I fixed username/password in URLs Now the cache is properly bypassed when this attribute is set to manual, and the autotest is updated to check this. Change-Id: I87943515562d0b16b03504f0758ba265758d1c22 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* Fix QNetworkReply ioGetFromHttpWithCache test caseShane Kearns2012-03-061-0/+1
| | | | | | | | | | | | | | Expiration date is calculated from max-age header when a response is inserted into the cache. Because the test case is prepopulating the cache outside of QNAM's control, the expiration date was uninitialised, causing the test to fail. This is due to a 2 year old change in QNAM, where max age calculation was removed from cache retrieval, and more recent changes to QDateTime where secsTo() returns 0 if one of the arguments is invalid. Change-Id: Ieecd46123dde4ca0fd0be3ae79e70e1528ec02bc Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* Change bugreports.qt.nokia.com -> bugreports.qt-project.orgSergio Ahumada2012-03-021-1/+1
| | | | | Change-Id: Ia795098f24cf358b15067f54cd08dff0bd792bc5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Changed qnetworkreply unittest to return correct codeKurt Korbatits2012-02-271-7/+5
| | | | | | | | - Changed waitForFinished() to return correct return code Change-Id: Ic6b0dfa195254783a2106011c4a108d907d73557 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com> Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
* compile fix: missing #include <unistd.h>sMarc Mutz2012-02-231-0/+5
| | | | | Change-Id: I3bd34f67033fb921c49da97419c107811d8da6ff Reviewed-by: David Faure <faure@kde.org>
* Test for QT_NO_SSL instead of QT_NO_OPENSSLShane Kearns2012-02-211-32/+32
| | | | | | | | Change the ifdefs in our own code (except openssl backend) to use the new configure flag. Change-Id: I8774734771c66b22164b5fae8fdb27814ac3df7b Reviewed-by: Richard J. Moore <rich@kde.org>
* Fix handling of urls containing username/password in QNetworkAccessManagerShane Kearns2012-02-171-10/+53
| | | | | | | | | | | | | | | | | | QNetworkAccessManager was ignoring the supplied credentials, although webkit seems to support these urls at a higher level. Following the behaviour of browsers: We use supplied credentials if authentication is required. We add supplied credentials to the authentication cache. We emit authenticationRequired signal if the credentials were wrong. We do not use previously cached credentials for that url Synchronous http requests fail, if the credentials were wrong. Task-number: QTBUG-18107 Change-Id: If46e8eab1511ba8a0f4bbe0d4efaabc4df0b8ab4 Reviewed-by: Richard J. Moore <rich@kde.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Changed qnetworkreply unittest to work from install directoryKurt Korbatits2012-02-171-266/+235
| | | | | | | | | | | | | | | | | - made subdir test depend on echo - remove SRCDIR and changed to use TESTDATA and QFINDTESTDATA - added waitForFinish() to handle slow networks - removed core module header from echo subprogram and replaced with needed header only - Added ipv6 skip to connectToIPV6Address() if not available - Added check QT_BUILD_INTERNAL and skip tests if backend not available - Skip permission tests if run as root - Removed win32 debug and release directory locations so that application is in known location relative to test data Change-Id: I58c3c2fca3cd2fee72fdb81d016bb4fd7fe08ac2 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Abort FTP download, not the whole applicationShane Kearns2012-02-151-0/+24
| | | | | | | | | | An old coding error meant that the C runtime abort() function was being called instead of QFtp::abort() when cancelling an FTP download using QNetworkReply::close() Task-number: QTBUG-22820 Change-Id: Ib97fda9769b2b55a08c042c66c4444cb6216d2b1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Windows: Fixed helper process finding in network testsMiikka Heikkinen2012-02-151-1/+9
| | | | | | | | | | | | | | | | | | | | Helper processes were not found properly on all network tests when the test was run with "nmake check": - tst_qtcpsocket - tst_qtcpserver - tst_qnetworksession - tst_qnetworkreply Task-number: QTBUG-24199 Task-number: QTBUG-24203 Task-number: QTBUG-24226 Task-number: QTBUG-24231 Task-number: QTBUG-24232 Change-Id: Ia4451b5a5e3fe9f81aba3837baf8292411f995d8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Shane Kearns <ext-shane.2.kearns@nokia.com>
* Replace Q_WS_WINCE against Q_OS_WINCE.Andreas Holzammer2012-02-091-1/+1
| | | | | | | | | | Window system Macros where deprecated so use Q_OS_WINCE for now. This code will need some refactoring, but this is the first step to it. Change-Id: I5876b80ee45d4b38ac63fc7d51e775dc70bbd485 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* tst_qnetworkreply: remove no such signal warningsMartin Petersson2012-02-071-2/+2
| | | | | | | | The QNetworkReply finished signal does not have a bool parameter. Change-Id: I87bd0410545f7a2fc2ab63cca90548f0585bf7a0 Reviewed-by: Shane Kearns <ext-shane.2.kearns@nokia.com> Reviewed-by: Jonas Gastal <jgastal@profusion.mobi>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-301-1/+1
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: I311e001373776812699d6efc045b5f742890c689 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update contact information in license headers.Jason McDonald2012-01-231-1/+1
| | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Fixed build break when bearer is disabled.Xizhi Zhu2012-01-161-0/+2
| | | | | Change-Id: I29e88b046f6502c84acc9c6f566ecc328cf24e38 Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
* Fixes examples/tests to use qinptr in QTcpServer::incomingConnection.Jonas M. Gastal2012-01-131-3/+3
| | | | | | | | This is a fix for problems introduced by bf7f170. Change-Id: If5dd8e031ef2efea578b3efb188c2e950e1ba41a Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Cleaning up header includes.Jonas M. Gastal2012-01-131-0/+1
| | | | | | | | | | QNetworkCookie doesn't need to know about QNetworkCookieJar and for QNetworkCookieJar header a forward declared QNetworkCookie is enough. Change-Id: I21145ce0f67a0a6bd68a46a5e757f82105cdf520 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
* Make QFtp private.Jonas M. Gastal2012-01-121-21/+21
| | | | | | | | | All references to QFtp in documentation have been removed, QFtp's documentaiton was marked internal. The QFtp example was removed. Task-number: QTBUG-23199 Change-Id: Ifff83cac069fb350e8ebeae63e605850e65c0c30 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Add regression test for QTBUG-22660Sami Rosendahl2012-01-061-0/+23
| | | | | | | | | | QHttpNetworkReply crashed in Qt4.7 and 4.8 if a HTTP server responded with gzip-encoded empty content without defining Content-Length in the response header. This commit adds the test for the problem as a regression test to Qt5. Change-Id: Iddfb970a31d92a66fd1dd524811cf54bb06e5157 Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
* Update copyright year in license headers.Jason McDonald2012-01-051-1/+1
| | | | | Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* network auto tests: add QNetworkReply test for pipeliningPeter Hartmann2011-12-251-0/+39
| | | | | | | | | Reviewed-by: Markus Goetz Task-number: QTBUG-21369 (cherry picked from commit a32bfdef6d6b45c916f143dcf8495a2e102c3eec) Change-Id: Iecde23c56f128008c5172675601928d83180358a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix http authentication to a different realm on the same serverShane Kearns2011-12-221-0/+33
| | | | | | | | | | This is a regression caused by the NTLMv2 authentication patch. I have manually tested NTLMv2 authentication against MS IIS and reverting these two lines does not break it. Task-number: QT-5209 Change-Id: I64159cbe468e1a7f834f8726fd0c9d4ab4c54b38 Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
* Test case for QTBUG-22875Shane Kearns2011-12-221-1/+188
| | | | | | | | | | | | | Test the authentication cache works properly with "cancelled dialogs" or if the user enters username/password incorrectly. Expected behaviour is based on web browsers: If cancelled, current request fails, and prompt again the next time. If wrong password is given, prompt again and retry the current request. If bad credentials are in the cache, prompt again Task-number: QTBUG-22875 Change-Id: Ic02ccac8dbeb3f2580ca4ffe47d0773982c4ab25 Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
* Fix QNetworkReply test cases that use the MiniHttpServer on windowsShane Kearns2011-12-191-1/+1
| | | | | | | | | | | | | The "happy eyeballs" connection code means that IPv4 and IPv6 connections are both attempted for a http request. For a normal http server, this is no problem, but the MiniHttpServer in the test code is very simplistic and cannot cope with more than one client connected at the same time. On windows this causes all these tests to fail with timeouts. Changed the MiniHttpServer to listen on IPv4 only instead of Any address. Change-Id: I81e249997d894d266001da474a351b1f5642599e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix sanity check of network test serverJason McDonald2011-11-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Some of Qt's autotests depend on access to a test server. For each test that used the test server, tests/auto/network-settings.h created a global object to verify at startup that host lookups to the test server will succeed (and abort the test otherwise). There are two problems with that approach: First, the sanity check happens before main(), and thus before the test framework has started logging test results. This means that if the sanity check aborts the test, the failure message will not be visible in the test output if logging to a file or will cause the output to be malformed if logging to the console in XML format. Second, since Qt 4.7, the host lookup uses a class that connects to the QCoreApplication instance, which doesn't exist before main(), and this caused all tests that included network-settings.h to output an error message from QObject::connect() at the beginning of the test. Both of these problems are solved by removing the global object from network-settings.h and instead performing the sanity check in the initTestCase() function of each test. Task-number: QTBUG-22876 Change-Id: Id49c1826906327bf571686cc11527f0265e5af44 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Don't depend on moc to disable test functions.Jason McDonald2011-11-181-2/+6
| | | | | | | | | | | | | | | | | | | | | The moc tool is not aware of all defines (particularly those that are compiler builtins) and does not correctly evaluate others that depend on compiler builtins, such as Q_OS_FOO. This commit reverts parts of the following commits, but is not a complete fix as there were many instances of this problem in the tests prior to those commits: 924d810dbdcd5b5b0fa860922b2487ea9062d002 8aaff6751038b88d17e23be6fcee945771297c5b 338d3f11973412047c2c9cd41cbd0c961d738ef3 a55034062ba2bf73a9f1ed3d9cf31745b38149e3 253497b7446c7d723aa3bdd7152e25d6852f2604 7cfad460c56319ba89c4a3a0bbcb2e54ab1cdbc6 9d2ff58f3642828e494e7e9b2df7dbb8e2cd408f 0cf6baa2d61ebaad2a2a0530c37f27e719b68f4b Change-Id: I947d797fe3ec76139ba1b55561cea569895662c5 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* QNAM: Fix authentication cache when the password is in the URLOlivier Goffart2011-11-081-5/+83
| | | | | | | | | | | | | | | Two problems: - The signal cacheCredidentials was not connected in the synchronous case while it must be connected. (Regression when the threaded http was merged) - We cannot cache the credidentials when we proceed the url because at that point, we do not know the realm (this basically reverts 9bc5a32b875b812c3a706034c8c27614f86bd138) Task-number: QTBUG-18411 Change-Id: I8ea11fa23db4314c3f17ed06d2d7f9ee934ccdba Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
* QNetworkReply autotest no longer needs private_testsShane Kearns2011-10-251-2/+1
| | | | | | | | | Due to clearAccessCache being made part of the public API in Qt5, this autotest can be run on normal Qt builds again Task-number: QTBUG-17312 Change-Id: I3b70237a28ed141ffb49762cc40c8a528f9be6a8 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* Remove SkipMode parameter from QSKIP calls.Jason McDonald2011-10-211-4/+4
| | | | | | | | | The previous commit removed SkipMode from the testlib APi. This commit removes the parameter from all calls to QSKIP. Task-number: QTBUG-21851, QTBUG-21652 Change-Id: I21c0ee6731c1bc6ac6d962590d9b31d7459dfbc5 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Create auto test for http HEAD requestShane Kearns2011-10-061-0/+61
| | | | | | | | | | | | This is in order to have a regression test for QT-5304. However the test is also checking basic functionality of head requests too. Task-Number: QT-5304 Change-Id: I0d98bd1f1125ffd49d9f3c859a51b2aaee95379a Reviewed-By: Martin Petersson Reviewed-on: http://codereview.qt-project.org/6033 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>