summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2011-05-18 14:44:52 +1000
committerQt Continuous Integration System <qt-info@nokia.com>2011-05-18 14:44:52 +1000
commit62cb6a5684a390af55141073604d881115f6fd42 (patch)
treea9ffe6a8a1ea3dc1db40e5a42423d92de60a875b
parent19a97c2afdfc6acf0e4f41c3b14c1e6adaa6d973 (diff)
parent6af983589ec185a0a42772d65a3d59adedc343a7 (diff)
Merge branch '1.1' of scm.dev.nokia.troll.no:qtmobility/qtm-multimedia into 1.1-integration
* '1.1' of scm.dev.nokia.troll.no:qtmobility/qtm-multimedia: (75 commits) Add licence headers. added tests created some new test cases for 1.2 fixed z value bug added three new sensor tests for mobility 1.2 fixing typo replacing Fetchgooglemaps with lightmaps_with_location geocoding and reverse geocoding tests implemented a few test cases in request of Alexander Remove tabs Add 1.1 tests for landmarks and maps Add qml location's tests added several proposed system tests list, implementing in the future Removed extra parentheses inserted by 06ecb6fb5b377ed0167295dd866c110277e0b5d8 (on Natalia's behalf): Add location's 1.2 tests added more messageing and sensors system tests from bluewheel project some bug fixed refined messaging tests Added several messaging system tests Provide a more complex iCalender file example ...
-rw-r--r--tests/systemtests/sys_bearer/sys_bearer.pro12
-rw-r--r--tests/systemtests/sys_bearer/sys_bearer.qtt151
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/original_wiki287
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/symbian/added_interfaces14
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/symbian/change_status23
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/symbian/enumeration8
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/symbian/interface_priority33
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/symbian/removed_interfaces14
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/symbian/symbian91
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/unix/added_interfaces14
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/unix/change_status23
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/unix/enumeration12
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/unix/linux_mac63
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/unix/removed_interfaces14
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/wince/added_interfaces13
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/wince/change_status22
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/wince/enumeration14
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/wince/removed_interfaces13
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/wince/wince61
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/windows/added_interfaces22
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/windows/change_status34
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/windows/enumeration11
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/windows/removed_interfaces13
-rw-r--r--tests/systemtests/sys_bearer/testdata/testtext/windows/windows87
-rw-r--r--tests/systemtests/sys_contacts/sys_contacts.pro11
-rw-r--r--tests/systemtests/sys_contacts/sys_contacts.qtt407
-rw-r--r--tests/systemtests/sys_contacts/testdata/avatar1.pngbin0 -> 8031 bytes
-rw-r--r--tests/systemtests/sys_contacts/testdata/avatar2.pngbin0 -> 19412 bytes
-rw-r--r--tests/systemtests/sys_contacts/testdata/avatar3.pngbin0 -> 20374 bytes
-rw-r--r--tests/systemtests/sys_crsysteminfo/sys_crsysteminfo.pro11
-rw-r--r--tests/systemtests/sys_crsysteminfo/sys_crsysteminfo.qtt121
-rw-r--r--tests/systemtests/sys_declarative-music-browser/sys_declarative-music-browser.pro11
-rw-r--r--tests/systemtests/sys_declarative-music-browser/sys_declarative-music-browser.qtt124
-rw-r--r--tests/systemtests/sys_declarative-sfw-notes/sys_declarative-sfw-notes.pro12
-rw-r--r--tests/systemtests/sys_declarative-sfw-notes/sys_declarative-sfw-notes.qtt127
-rw-r--r--tests/systemtests/sys_feedback/sys_feedback.pro3
-rw-r--r--tests/systemtests/sys_feedback/sys_feedback.qtt147
-rw-r--r--tests/systemtests/sys_location/sys_location.pro11
-rw-r--r--tests/systemtests/sys_location/sys_location.qtt463
-rw-r--r--tests/systemtests/sys_messaging/sys_messaging.pro11
-rw-r--r--tests/systemtests/sys_messaging/sys_messaging.qtt920
-rw-r--r--tests/systemtests/sys_multimedia/sys_multimedia.pro11
-rw-r--r--tests/systemtests/sys_multimedia/sys_multimedia.qtt433
-rw-r--r--tests/systemtests/sys_oopserviceframework/sys_oopserviceframework.pro11
-rw-r--r--tests/systemtests/sys_oopserviceframework/sys_oopserviceframework.qtt82
-rw-r--r--tests/systemtests/sys_organizer/sys_organizer.pro11
-rw-r--r--tests/systemtests/sys_organizer/sys_organizer.qtt629
-rw-r--r--tests/systemtests/sys_qmlcontacts/sys_qmlcontacts.pro3
-rw-r--r--tests/systemtests/sys_qmlcontacts/sys_qmlcontacts.qtt206
-rw-r--r--tests/systemtests/sys_sensors/sys_sensors.pro11
-rw-r--r--tests/systemtests/sys_sensors/sys_sensors.qtt294
-rw-r--r--tests/systemtests/sys_systeminfo/sys_systeminfo.pro3
-rw-r--r--tests/systemtests/sys_systeminfo/sys_systeminfo.qtt161
-rw-r--r--tests/systemtests/sys_tactilefeedback/sys_tactilefeedback.pro11
-rw-r--r--tests/systemtests/sys_tactilefeedback/sys_tactilefeedback.qtt103
-rw-r--r--tests/systemtests/sys_telephony/sys_telephony.pro11
-rw-r--r--tests/systemtests/sys_telephony/sys_telephony.qtt92
-rw-r--r--tests/systemtests/sys_versit/sys_versit.pro11
-rw-r--r--tests/systemtests/sys_versit/sys_versit.qtt174
-rw-r--r--tests/systemtests/sys_versit/testdata/testimport1.vcf65
-rw-r--r--tests/systemtests/sys_versitorganizer/sys_versitorganizer.pro11
-rw-r--r--tests/systemtests/sys_versitorganizer/sys_versitorganizer.qtt166
-rw-r--r--tests/systemtests/sys_versitorganizer/testdata/exampleEvents.ics168
-rw-r--r--tests/systemtests/systemtests.pro2
64 files changed, 6097 insertions, 0 deletions
diff --git a/tests/systemtests/sys_bearer/sys_bearer.pro b/tests/systemtests/sys_bearer/sys_bearer.pro
new file mode 100644
index 0000000000..e81bb971ef
--- /dev/null
+++ b/tests/systemtests/sys_bearer/sys_bearer.pro
@@ -0,0 +1,12 @@
+SOURCES=sys_bearer.qtt
+CONFIG+=systemtest
+
+unix:!symbian {
+ maemo5 {
+ target.path = /opt/usr/bin
+ } else {
+ target.path = /usr/local/bin
+ }
+ INSTALLS += target
+}
+
diff --git a/tests/systemtests/sys_bearer/sys_bearer.qtt b/tests/systemtests/sys_bearer/sys_bearer.qtt
new file mode 100644
index 0000000000..b68823efe6
--- /dev/null
+++ b/tests/systemtests/sys_bearer/sys_bearer.qtt
@@ -0,0 +1,151 @@
+****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//TESTED_COMPONENT=src/bearer
+
+testcase = {
+
+ initTestCase: function()
+ {
+ testcase.qtuitest_platform = getLocalEnv("TESTPLATFORM");
+ if (!checkPlatform(testcase.qtuitest_platform)){
+ fail("TESTPLATFORM "+ testcase.qtuitest_platform +" not valid");
+ }
+ if (testcase.platform == "linux" || testcase.platform == "mac") {
+ testcase.platform = "unix";
+ }
+ },
+
+ enumeration: function()
+ {
+ prompt(twiki(readLocalFile(baseDataPath() + "testtext/" + testcase.platform + "/" + currentTestFunction())));
+ },
+
+ added_interfaces: function()
+ {
+ prompt(twiki(readLocalFile(baseDataPath() + "testtext/" + testcase.platform + "/" + currentTestFunction())));
+ },
+
+ removed_interfaces: function()
+ {
+ prompt(twiki(readLocalFile(baseDataPath() + "testtext/" + testcase.platform + "/" + currentTestFunction())));
+ },
+
+ change_status: function()
+ {
+ prompt(twiki(readLocalFile(baseDataPath() + "testtext/" + testcase.platform + "/" + currentTestFunction())));
+ },
+
+ interface_priority: function()
+ {
+ if (testcase.platform != "symbian" && testcase.platform != "maemo") {
+ skip("This test only applies to Symbian platform");
+ }
+ prompt(twiki('---++++ Interfaces are used in order of priority
+
+ 1. Pre: GPRS is available to the device
+ 1. Pre: WLAN is available to the device
+
+ 1. Press the Menu key
+ 1. Select Settings->Connectivity->Destinations
+ 1. Select Option->New Destination, enter a name
+ 1. Select a picture
+ 1. Select the destination
+ 1. Select Option->New access point
+ 1. Select Yes
+ 1. Verify that the WLAN "x networks avail." is greater than 0
+ 1. Select Wireless LAN
+ 1. Select the test WLAN (and enter a key if necessary)
+ 1. Select Option->New access point
+ 1. Select Yes
+ 1. Select Packet data
+ 1. Enter a name and commit
+ 1. Press Back
+ 1. Select Options->Default connection
+ 1. Select the new Destination
+ 1. Verify the Destination has a check mark
+ 1. Start the bearermonitor example application
+ 1. In the list, select the new Destination
+ 1. Verify "Roaming" is shown as "Available"
+ 1. Move the device into an area not covered by the WLAN or simulate an uncovered environment
+ 1. Verify the application indicates loss of WLAN network (may take 1 - 2 minutes)
+ 1. Verify the application indicates a change of bearer to the GPRS network - may take 1 - 2 minutes
+ 1. Move the device into or simulate the area covered by both networks
+ 1. Verify the device connects to the network using the WLAN bearer
+ '));
+ }
+
+}
+
+function checkPlatform(platform)
+{
+ if (platform == undefined){
+ return false;
+ }
+ if (platform.contains("S60") || platform.contains("Symbian")) {
+ testcase.platform = "symbian";
+ return true;
+ } else if (platform.contains("maemo")) {
+ testcase.platform = "maemo";
+ } else if (platform.contains("linux") || platform.contains("mac")) {
+ testcase.platform = "unix";
+ return true;
+ } else if (platform.contains("windows")) {
+ testcase.platform = "windows";
+ return true;
+ } else if (platform.contains("wince")) {
+ testcase.platform = "wince";
+ return true;
+ }
+ return false;
+}
+
+function getLocalEnv(name)
+{
+ var env = QProcess.systemEnvironment();
+ var re = new RegExp("^" + name + "=(.*)$");
+ for (var i=0; i<env.length; ++i) {
+ var res = env[i].match(re);
+ if (res != null) {
+ return res[1];
+ }
+ }
+}
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/original_wiki b/tests/systemtests/sys_bearer/testdata/testtext/original_wiki
new file mode 100644
index 0000000000..ebe8fe2120
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/original_wiki
@@ -0,0 +1,287 @@
+---+!! Qt Mobility Bearer Management System Tests
+
+%TOC%
+
+---++ Results Template
+
+ * [[%ATTACHURL%/TEMPLATE_systemtest.xls][TEMPLATE_systemtest.xls]]: Template to use for test results; attach the test results report to the following paragraph where the file is name follows the format =&lt;platform&gt;_bearermanagement_&lt;date&gt;.xsl=
+ * [[%ATTACHURL%/linux_bearermanagemt_15112009.xls][Test results for Linux 15th Oct 2009]]
+ * [[%ATTACHURL%/wince_bearermanagement_24112009.xls][Test results for WinCE testing 24th Nov 2009]]
+ * [[%ATTACHURL%/windows_vista_msvc2008_qtbearermanagement_231109.xls][QtBearerManagement test results, Windows Vista MSVC 2008, 23/11/2009]]
+ * [[%ATTACHURL%/windows_xp_msvc2008_qtbearermanagement_231109.xls][QtBearerManagement test results, Windows XP MSVC 2008, 23/11/2009]]
+
+
+---++ Requirements
+ 1. The device is in an area covered by both a WLAN and GPRS network
+
+---++ Tests
+
+---+++ Symbian Platforms
+
+---++++ Enumeration of connections
+
+ 1. On an S60 device, use Menu->Settings->Connectivity settings application to list visible networks
+ 1. Run the bearermonitor example application
+ 1. Press 'Scan'
+ 1. Verify all previously listed networks are shown in the application view
+
+---++++ Adding and removing networks
+
+---+++++ Added network interfaces
+
+ 1. Pre: no network access points are defined on the device; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Wireless networks
+ 1. Select the WLAN from the list
+ 1. Press Connect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is displayed in the circle
+
+---+++++ Removed network interfaces
+
+ 1. Pre: Added network interfaces has been executed successfully
+ 1. Run the bearercloud application
+ 1. Verify the cloud space shows a network in the green circle
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Destinations -> Uncategorised
+ 1. Select the WLAN from the list
+ 1. Press Options -> Delete, and then Yes in the confirm dialog
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is not displayed in the circle
+
+---++++ Changing the status of a network
+
+ 1. Pre: no network access points are defined on the device; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Wireless networks
+ 1. Select the WLAN from the list
+ 1. Press Connect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is displayed in the green circle (connected)
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Connection Mgr
+ 1. Select the WLAN from the list
+ 1. Press Options -> Disconnect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is now displayed in the blue circle (disconnected)
+ 1. Disable the network device (eg. unplug the access point)
+ 1. Verify that bearercloud shows the network moves to the grey circle (unavailable)
+
+---++++ Interfaces are used in order of priority
+
+ 1. Pre: GPRS is available to the device
+ 1. Pre: WLAN is available to the device
+
+ 1. Press the Menu key
+ 1. Select Settings->Connectivity->Destinations
+ 1. Select Option->New Destination, enter a name
+ 1. Select a picture
+ 1. Select the destination
+ 1. Select Option->New access point
+ 1. Select Yes
+ 1. Verify that the WLAN "x networks avail." is greater than 0
+ 1. Select Wireless LAN
+ 1. Select the test WLAN (and enter a key if necessary)
+ 1. Select Option->New access point
+ 1. Select Yes
+ 1. Select Packet data
+ 1. Enter a name and commit
+ 1. Press Back
+ 1. Select Options->Default connection
+ 1. Select the new Destination
+ 1. Verify the Destination has a check mark
+ 1. Start the bearermonitor example application
+ 1. In the list, select the new Destination
+ 1. Verify 'Roaming' is shown as 'Available'
+ 1. Move the device into an area not covered by the WLAN (or simulate an uncovered environment)
+ 1. Verify the application indicates loss of WLAN network (may take 1 - 2 minutes)
+ 1. Verify the application indicates a change of bearer to the GPRS network (may take 1 - 2 minutes)
+ 1. Move the device into (or simulate) the area covered by both networks
+ 1. Verify the device connects to the network using the WLAN bearer
+
+---+++ Windows Desktop Platforms
+
+---++++ Enumeration of connections
+
+ 1. On a desktop machine, use command line tool ipconfig /a to list visible networks:
+ 1. Run the bearermonitor example application
+ 1. Press 'Scan'
+ 1. Verify all previously listed networks are shown in the application view
+
+---++++ Adding and removing networks
+
+---+++++ Added network interfaces
+
+ 1. Pre: no network access points are connected to; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Press the Menu key to background the application
+ 1. Open Control Panel->Network Connections
+ 1. Select the WLAN from the list
+ 1. Right click and Connect to an available WLAN
+ 1. Verify the new network is displayed in the circle in bearercloud
+
+---+++++ Removed network interfaces
+
+ 1. Pre: Added network interfaces has been executed successfully
+ 1. Run the bearercloud application
+ 1. Verify the cloud space shows a network in the green circle
+ 1. Select Control Panel->Network Connections
+ 1. Select the WLAN from the list
+ 1. Right click and select Disable
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the network is not displayed in the circle
+
+---++++ Changing the status of a network
+
+ 1. Pre: no network access points are defined on the device; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Select Control Panel->Network Connections
+ 1. Select the WLAN from the list
+ 1. Right click and Connect to an available WLAN
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is displayed in the green circle (connected)
+ 1. Select Control Panel->Network Connections
+ 1. Select the WLAN from the list
+ 1. Right click and select Disconnect
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is now displayed in the blue circle (disconnected)
+ 1. Disable the network device (eg. unplug the access point)
+ 1. Verify that bearercloud shows the network moves to the grey circle (unavailable)
+
+---+++ Windows CE Platforms
+
+---++++ Enumeration of connections
+
+ 1. On a desktop device, use the following method to list visible networks:
+ 1. Click StartMenu
+ 1. Click "All Settings" button at bottom of screen
+ 1. Click "Connections" tab
+ 1. Select "Connections" icon
+ 1. Select "Wi-fi"
+ 1. Click "Wireless Networks"
+ 1. Run the bearermonitor example application
+ 1. Press 'Scan'
+ 1. Verify all previously listed networks are shown in the application view
+
+---++++ Adding and removing networks
+
+---+++++ Added network interfaces
+
+ 1. Pre: no network access points are defined on the device; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Open StartMenu -> All Settings -> Connections tab -> Connections icon -> Wireless networks
+ 1. Select the WLAN from the list
+ 1. Press Connect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is displayed in the circle
+
+---+++++ Removed network interfaces
+
+ 1. Pre: Added network interfaces has been executed successfully
+ 1. Run the bearercloud application
+ 1. Verify the cloud space shows a network in the green circle
+ 1. Open StartMenu -> All Settings -> Connections tab -> Connections icon -> Wireless Networks
+ 1. Select the WLAN from the list
+ 1. Press Options -> Delete, and then Yes in the confirm dialog
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is not displayed in the circle
+
+---++++ Changing the status of a network
+
+ 1. Pre: no network access points are defined on the device; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Open StartMenu -> All Settings -> Connections tab -> Connections icon -> Wireless networks
+ 1. Select the WLAN from the list
+ 1. Press Connect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is displayed in the green circle (connected)
+ 1. Press the Menu key to background the application
+ 1. Open StartMenu -> All Settings -> Connections tab -> Connections icon -> Connection Mgr?
+ 1. Select the WLAN from the list
+ 1. Press Options -> Disconnect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is now displayed in the blue circle (disconnected)
+ 1. Disable the network device (eg. unplug the access point)
+ 1. Verify that bearercloud shows the network moves to the grey circle (unavailable)
+
+---+++ Linux/Mac Platforms
+
+---++++ Enumeration of connections
+
+ 1. On a desktop device, use the corresponding method to list visible networks:
+ 1. ifconfig (as superuser on linux/Mac)
+ 1. ipconfig (on Windows)
+ 1. Connectivity settings application (S60)
+ 1. (Howto) (on Windows CE)
+ 1. Run the bearermonitor example application
+ 1. Press 'Scan'
+ 1. Verify all previously listed networks are shown in the application view
+
+---++++ Adding and removing networks
+
+---+++++ Added network interfaces
+
+ 1. Pre: no network access points are defined on the device; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Wireless networks
+ 1. Select the WLAN from the list
+ 1. Press Connect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is displayed in the circle
+
+---+++++ Removed network interfaces
+
+ 1. Pre: Added network interfaces has been executed successfully
+ 1. Run the bearercloud application
+ 1. Verify the cloud space shows a network in the green circle
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Destinations -> Uncategorised
+ 1. Select the WLAN from the list
+ 1. Press Options -> Delete, and then Yes in the confirm dialog
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is not displayed in the circle
+
+---++++ Changing the status of a network
+
+ 1. Pre: no network access points are defined on the device; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Wireless networks
+ 1. Select the WLAN from the list
+ 1. Press Connect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is displayed in the green circle (connected)
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Connection Mgr
+ 1. Select the WLAN from the list
+ 1. Press Options -> Disconnect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is now displayed in the blue circle (disconnected)
+ 1. Disable the network device (eg. unplug the access point)
+ 1. Verify that bearercloud shows the network moves to the grey circle (unavailable)
+
+
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/symbian/added_interfaces b/tests/systemtests/sys_bearer/testdata/testtext/symbian/added_interfaces
new file mode 100644
index 0000000000..c69b32b2d2
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/symbian/added_interfaces
@@ -0,0 +1,14 @@
+%RED% Instructions for Symbian Platform %ENDCOLOR%
+
+---++++ Added network interfaces
+
+ 1. Pre: no network access points are defined on the device; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Wireless networks
+ 1. Select the WLAN from the list
+ 1. Press Connect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is displayed in the circle
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/symbian/change_status b/tests/systemtests/sys_bearer/testdata/testtext/symbian/change_status
new file mode 100644
index 0000000000..06858c1742
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/symbian/change_status
@@ -0,0 +1,23 @@
+%RED% Instructions for Symbian Platform %ENDCOLOR%
+
+---++++ Changing the status of a network
+
+ 1. Pre: no network access points are defined on the device; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Wireless networks
+ 1. Select the WLAN from the list
+ 1. Press Connect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is displayed in the green circle (connected)
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Connection Mgr
+ 1. Select the WLAN from the list
+ 1. Press Options -> Disconnect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is now displayed in the blue circle (disconnected)
+ 1. Disable the network device (eg. unplug the access point)
+ 1. Verify that bearercloud shows the network moves to the grey circle (unavailable)
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/symbian/enumeration b/tests/systemtests/sys_bearer/testdata/testtext/symbian/enumeration
new file mode 100644
index 0000000000..968f012075
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/symbian/enumeration
@@ -0,0 +1,8 @@
+%RED% Instructions for Symbian Platform %ENDCOLOR%
+
+---++++ Enumeration of connections
+
+ 1. On an S60 device, use Menu->Settings->Connectivity settings application to list visible networks
+ 1. Run the bearermonitor example application
+ 1. Press 'Scan'
+ 1. Verify all previously listed networks are shown in the application view
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/symbian/interface_priority b/tests/systemtests/sys_bearer/testdata/testtext/symbian/interface_priority
new file mode 100644
index 0000000000..fc945ceee8
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/symbian/interface_priority
@@ -0,0 +1,33 @@
+%RED% Instructions for Symbian Platform %ENDCOLOR%
+
+---++++ Interfaces are used in order of priority
+
+ 1. Pre: GPRS is available to the device
+ 1. Pre: WLAN is available to the device
+
+ 1. Press the Menu key
+ 1. Select Settings->Connectivity->Destinations
+ 1. Select Option->New Destination, enter a name
+ 1. Select a picture
+ 1. Select the destination
+ 1. Select Option->New access point
+ 1. Select Yes
+ 1. Verify that the WLAN "x networks avail." is greater than 0
+ 1. Select Wireless LAN
+ 1. Select the test WLAN (and enter a key if necessary)
+ 1. Select Option->New access point
+ 1. Select Yes
+ 1. Select Packet data
+ 1. Enter a name and commit
+ 1. Press Back
+ 1. Select Options->Default connection
+ 1. Select the new Destination
+ 1. Verify the Destination has a check mark
+ 1. Start the bearermonitor example application
+ 1. In the list, select the new Destination
+ 1. Verify 'Roaming' is shown as 'Available'
+ 1. Move the device into an area not covered by the WLAN (or simulate an uncovered environment)
+ 1. Verify the application indicates loss of WLAN network (may take 1 - 2 minutes)
+ 1. Verify the application indicates a change of bearer to the GPRS network (may take 1 - 2 minutes)
+ 1. Move the device into (or simulate) the area covered by both networks
+ 1. Verify the device connects to the network using the WLAN bearer
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/symbian/removed_interfaces b/tests/systemtests/sys_bearer/testdata/testtext/symbian/removed_interfaces
new file mode 100644
index 0000000000..ac6c1e8192
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/symbian/removed_interfaces
@@ -0,0 +1,14 @@
+%RED% Instructions for Symbian Platform %ENDCOLOR%
+
+---++++ Removed network interfaces
+
+ 1. Pre: Added network interfaces has been executed successfully
+ 1. Run the bearercloud application
+ 1. Verify the cloud space shows a network in the green circle
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Destinations -> Uncategorised
+ 1. Select the WLAN from the list
+ 1. Press Options -> Delete, and then Yes in the confirm dialog
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is not displayed in the circle
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/symbian/symbian b/tests/systemtests/sys_bearer/testdata/testtext/symbian/symbian
new file mode 100644
index 0000000000..891777e86c
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/symbian/symbian
@@ -0,0 +1,91 @@
+---+++ Symbian Platforms
+
+---++++ Enumeration of connections
+
+ 1. On an S60 device, use Menu->Settings->Connectivity settings application to list visible networks
+ 1. Run the bearermonitor example application
+ 1. Press 'Scan'
+ 1. Verify all previously listed networks are shown in the application view
+
+---++++ Adding and removing networks
+
+---+++++ Added network interfaces
+
+ 1. Pre: no network access points are defined on the device; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Wireless networks
+ 1. Select the WLAN from the list
+ 1. Press Connect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is displayed in the circle
+
+---+++++ Removed network interfaces
+
+ 1. Pre: Added network interfaces has been executed successfully
+ 1. Run the bearercloud application
+ 1. Verify the cloud space shows a network in the green circle
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Destinations -> Uncategorised
+ 1. Select the WLAN from the list
+ 1. Press Options -> Delete, and then Yes in the confirm dialog
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is not displayed in the circle
+
+---++++ Changing the status of a network
+
+ 1. Pre: no network access points are defined on the device; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Wireless networks
+ 1. Select the WLAN from the list
+ 1. Press Connect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is displayed in the green circle (connected)
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Connection Mgr
+ 1. Select the WLAN from the list
+ 1. Press Options -> Disconnect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is now displayed in the blue circle (disconnected)
+ 1. Disable the network device (eg. unplug the access point)
+ 1. Verify that bearercloud shows the network moves to the grey circle (unavailable)
+
+---++++ Interfaces are used in order of priority
+
+ 1. Pre: GPRS is available to the device
+ 1. Pre: WLAN is available to the device
+
+ 1. Press the Menu key
+ 1. Select Settings->Connectivity->Destinations
+ 1. Select Option->New Destination, enter a name
+ 1. Select a picture
+ 1. Select the destination
+ 1. Select Option->New access point
+ 1. Select Yes
+ 1. Verify that the WLAN "x networks avail." is greater than 0
+ 1. Select Wireless LAN
+ 1. Select the test WLAN (and enter a key if necessary)
+ 1. Select Option->New access point
+ 1. Select Yes
+ 1. Select Packet data
+ 1. Enter a name and commit
+ 1. Press Back
+ 1. Select Options->Default connection
+ 1. Select the new Destination
+ 1. Verify the Destination has a check mark
+ 1. Start the bearermonitor example application
+ 1. In the list, select the new Destination
+ 1. Verify 'Roaming' is shown as 'Available'
+ 1. Move the device into an area not covered by the WLAN (or simulate an uncovered environment)
+ 1. Verify the application indicates loss of WLAN network (may take 1 - 2 minutes)
+ 1. Verify the application indicates a change of bearer to the GPRS network (may take 1 - 2 minutes)
+ 1. Move the device into (or simulate) the area covered by both networks
+ 1. Verify the device connects to the network using the WLAN bearer
+
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/unix/added_interfaces b/tests/systemtests/sys_bearer/testdata/testtext/unix/added_interfaces
new file mode 100644
index 0000000000..ae52a491b2
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/unix/added_interfaces
@@ -0,0 +1,14 @@
+%RED% Instructions for Linux and Mac Platforms %ENDCOLOR%
+
+---++++ Added network interfaces
+
+ 1. Pre: no network access points are defined on the device; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Wireless networks
+ 1. Select the WLAN from the list
+ 1. Press Connect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is displayed in the circle
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/unix/change_status b/tests/systemtests/sys_bearer/testdata/testtext/unix/change_status
new file mode 100644
index 0000000000..684c1c37c3
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/unix/change_status
@@ -0,0 +1,23 @@
+%RED% Instructions for Linux and Mac Platforms %ENDCOLOR%
+
+---++++ Changing the status of a network
+
+ 1. Pre: no network access points are defined on the device; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Wireless networks
+ 1. Select the WLAN from the list
+ 1. Press Connect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is displayed in the green circle (connected)
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Connection Mgr
+ 1. Select the WLAN from the list
+ 1. Press Options -> Disconnect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is now displayed in the blue circle (disconnected)
+ 1. Disable the network device (eg. unplug the access point)
+ 1. Verify that bearercloud shows the network moves to the grey circle (unavailable)
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/unix/enumeration b/tests/systemtests/sys_bearer/testdata/testtext/unix/enumeration
new file mode 100644
index 0000000000..1d6a72ed67
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/unix/enumeration
@@ -0,0 +1,12 @@
+%RED% Instructions for Linux and Mac Platforms %ENDCOLOR%
+
+---++++ Enumeration of connections
+
+ 1. On a desktop device, use the corresponding method to list visible networks:
+ 1. ifconfig (as superuser on linux/Mac)
+ 1. ipconfig (on Windows)
+ 1. Connectivity settings application (S60)
+ 1. (Howto) (on Windows CE)
+ 1. Run the bearermonitor example application
+ 1. Press 'Scan'
+ 1. Verify all previously listed networks are shown in the application view
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/unix/linux_mac b/tests/systemtests/sys_bearer/testdata/testtext/unix/linux_mac
new file mode 100644
index 0000000000..22f5d33948
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/unix/linux_mac
@@ -0,0 +1,63 @@
+---+++ Linux/Mac Platforms
+
+---++++ Enumeration of connections
+
+ 1. On a desktop device, use the corresponding method to list visible networks:
+ 1. ifconfig (as superuser on linux/Mac)
+ 1. ipconfig (on Windows)
+ 1. Connectivity settings application (S60)
+ 1. (Howto) (on Windows CE)
+ 1. Run the bearermonitor example application
+ 1. Press 'Scan'
+ 1. Verify all previously listed networks are shown in the application view
+
+---++++ Adding and removing networks
+
+---+++++ Added network interfaces
+
+ 1. Pre: no network access points are defined on the device; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Wireless networks
+ 1. Select the WLAN from the list
+ 1. Press Connect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is displayed in the circle
+
+---+++++ Removed network interfaces
+
+ 1. Pre: Added network interfaces has been executed successfully
+ 1. Run the bearercloud application
+ 1. Verify the cloud space shows a network in the green circle
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Destinations -> Uncategorised
+ 1. Select the WLAN from the list
+ 1. Press Options -> Delete, and then Yes in the confirm dialog
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is not displayed in the circle
+
+---++++ Changing the status of a network
+
+ 1. Pre: no network access points are defined on the device; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Wireless networks
+ 1. Select the WLAN from the list
+ 1. Press Connect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is displayed in the green circle (connected)
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Connection Mgr
+ 1. Select the WLAN from the list
+ 1. Press Options -> Disconnect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is now displayed in the blue circle (disconnected)
+ 1. Disable the network device (eg. unplug the access point)
+ 1. Verify that bearercloud shows the network moves to the grey circle (unavailable)
+
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/unix/removed_interfaces b/tests/systemtests/sys_bearer/testdata/testtext/unix/removed_interfaces
new file mode 100644
index 0000000000..8f458cabb1
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/unix/removed_interfaces
@@ -0,0 +1,14 @@
+%RED% Instructions for Linux and Mac Platforms %ENDCOLOR%
+
+---++++ Removed network interfaces
+
+ 1. Pre: Added network interfaces has been executed successfully
+ 1. Run the bearercloud application
+ 1. Verify the cloud space shows a network in the green circle
+ 1. Press the Menu key to background the application
+ 1. Open Settings -> Connectivity -> Destinations -> Uncategorised
+ 1. Select the WLAN from the list
+ 1. Press Options -> Delete, and then Yes in the confirm dialog
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is not displayed in the circle
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/wince/added_interfaces b/tests/systemtests/sys_bearer/testdata/testtext/wince/added_interfaces
new file mode 100644
index 0000000000..223a4b4dc3
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/wince/added_interfaces
@@ -0,0 +1,13 @@
+%RED% Instructions for Windows CE Platform %ENDCOLOR%
+
+---++++ Added network interfaces
+
+ 1. Pre: no network access points are defined on the device; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Open StartMenu -> All Settings -> Connections tab -> Connections icon -> Wireless networks
+ 1. Select the WLAN from the list
+ 1. Press Connect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is displayed in the circle
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/wince/change_status b/tests/systemtests/sys_bearer/testdata/testtext/wince/change_status
new file mode 100644
index 0000000000..01b23fe54b
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/wince/change_status
@@ -0,0 +1,22 @@
+%RED% Instructions for Windows CE Platform %ENDCOLOR%
+
+---++++ Changing the status of a network
+
+ 1. Pre: no network access points are defined on the device; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Open StartMenu -> All Settings -> Connections tab -> Connections icon -> Wireless networks
+ 1. Select the WLAN from the list
+ 1. Press Connect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is displayed in the green circle (connected)
+ 1. Press the Menu key to background the application
+ 1. Open StartMenu -> All Settings -> Connections tab -> Connections icon -> Connection Mgr?
+ 1. Select the WLAN from the list
+ 1. Press Options -> Disconnect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is now displayed in the blue circle (disconnected)
+ 1. Disable the network device (eg. unplug the access point)
+ 1. Verify that bearercloud shows the network moves to the grey circle (unavailable)
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/wince/enumeration b/tests/systemtests/sys_bearer/testdata/testtext/wince/enumeration
new file mode 100644
index 0000000000..f123bc5680
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/wince/enumeration
@@ -0,0 +1,14 @@
+%RED% Instructions for Windows CE Platform %ENDCOLOR%
+
+---++++ Enumeration of connections
+
+ 1. On a desktop device, use the following method to list visible networks:
+ 1. Click StartMenu
+ 1. Click "All Settings" button at bottom of screen
+ 1. Click "Connections" tab
+ 1. Select "Connections" icon
+ 1. Select "Wi-fi"
+ 1. Click "Wireless Networks"
+ 1. Run the bearermonitor example application
+ 1. Press 'Scan'
+ 1. Verify all previously listed networks are shown in the application view
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/wince/removed_interfaces b/tests/systemtests/sys_bearer/testdata/testtext/wince/removed_interfaces
new file mode 100644
index 0000000000..714939f4cc
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/wince/removed_interfaces
@@ -0,0 +1,13 @@
+%RED% Instructions for Windows CE Platform %ENDCOLOR%
+
+---++++ Removed network interfaces
+
+ 1. Pre: Added network interfaces has been executed successfully
+ 1. Run the bearercloud application
+ 1. Verify the cloud space shows a network in the green circle
+ 1. Open StartMenu -> All Settings -> Connections tab -> Connections icon -> Wireless Networks
+ 1. Select the WLAN from the list
+ 1. Press Options -> Delete, and then Yes in the confirm dialog
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is not displayed in the circle
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/wince/wince b/tests/systemtests/sys_bearer/testdata/testtext/wince/wince
new file mode 100644
index 0000000000..8b71a824f5
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/wince/wince
@@ -0,0 +1,61 @@
+---+++ Windows CE Platforms
+
+---++++ Enumeration of connections
+
+ 1. On a desktop device, use the following method to list visible networks:
+ 1. Click StartMenu
+ 1. Click "All Settings" button at bottom of screen
+ 1. Click "Connections" tab
+ 1. Select "Connections" icon
+ 1. Select "Wi-fi"
+ 1. Click "Wireless Networks"
+ 1. Run the bearermonitor example application
+ 1. Press 'Scan'
+ 1. Verify all previously listed networks are shown in the application view
+
+---++++ Adding and removing networks
+
+---+++++ Added network interfaces
+
+ 1. Pre: no network access points are defined on the device; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Open StartMenu -> All Settings -> Connections tab -> Connections icon -> Wireless networks
+ 1. Select the WLAN from the list
+ 1. Press Connect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is displayed in the circle
+
+---+++++ Removed network interfaces
+
+ 1. Pre: Added network interfaces has been executed successfully
+ 1. Run the bearercloud application
+ 1. Verify the cloud space shows a network in the green circle
+ 1. Open StartMenu -> All Settings -> Connections tab -> Connections icon -> Wireless Networks
+ 1. Select the WLAN from the list
+ 1. Press Options -> Delete, and then Yes in the confirm dialog
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is not displayed in the circle
+
+---++++ Changing the status of a network
+
+ 1. Pre: no network access points are defined on the device; a WLAN is available
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of networks
+ 1. Open StartMenu -> All Settings -> Connections tab -> Connections icon -> Wireless networks
+ 1. Select the WLAN from the list
+ 1. Press Connect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is displayed in the green circle (connected)
+ 1. Press the Menu key to background the application
+ 1. Open StartMenu -> All Settings -> Connections tab -> Connections icon -> Connection Mgr?
+ 1. Select the WLAN from the list
+ 1. Press Options -> Disconnect
+ 1. Press the Menu key
+ 1. Select the bearercloud application to foreground it
+ 1. Verify the new network is now displayed in the blue circle (disconnected)
+ 1. Disable the network device (eg. unplug the access point)
+ 1. Verify that bearercloud shows the network moves to the grey circle (unavailable)
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/windows/added_interfaces b/tests/systemtests/sys_bearer/testdata/testtext/windows/added_interfaces
new file mode 100644
index 0000000000..fbcd7f1935
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/windows/added_interfaces
@@ -0,0 +1,22 @@
+%RED% Instructions for Windows Platform %ENDCOLOR%
+
+---++++ Added network interfaces
+
+ 1. Pre: no network access points are connected to; a WLAN is available eg:
+ * Start Menu -> Settings -> Network Connections
+ * Select the *Wireless Network Connection* from the list
+ * Right mouse click, select *Properties* , select *Wireless Network* tab
+ * For any configured WIFI network select and click *Remove* button
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of WIFI networks
+ 1. Enable a new Wireless Access Point via one of the following:
+ * turn on wireless access point
+ * insert Wireless Lan USB adaptor
+ * use function key on Laptop to enable Wireless hardware
+ 1. Open Start Menu -> Settings -> Network Connections
+ 1. Select the *Wireless Network Connection* from the list
+ 1. Right click and *View available Wireless Networks*
+ 1. using the *Wireless Network Connection* control panel mentioned in earlier step
+ * select an WIFI interface
+ * configure it with default details
+ 1. Verify the new WIFI network is displayed in one of the circles in bearercloud \ No newline at end of file
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/windows/change_status b/tests/systemtests/sys_bearer/testdata/testtext/windows/change_status
new file mode 100644
index 0000000000..f116a0a4cc
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/windows/change_status
@@ -0,0 +1,34 @@
+%RED% Instructions for Windows Platform %ENDCOLOR%
+
+---++++ Changing the status of a network
+
+ 1. Pre: no network access points are connected to; a WLAN is available eg:
+ * Start Menu -> Settings -> Network Connections
+ * Select the *Wireless Network Connection* from the list
+ * Right mouse click, select *Properties* , select *Wireless Network* tab
+ * For any configured WIFI network select and click *Remove* button
+ 1. Pre: no LAN is connected to (unplug LAN cable)
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of WIFI networks
+ 1. Verify the LAN network is displayed in the second from inner/*Discovered* circle in bearercloud
+ 1. Enable a new Wireless Access Point via one of the following:
+ * turn on wireless access point
+ * insert Wireless Lan USB adaptor
+ * use function key on Laptop to enable Wireless hardware
+ 1. Open Start Menu -> Settings -> Network Connections
+ 1. Select the *Wireless Network Connection* from the list
+ 1. Right click and *View available Wireless Networks*
+ 1. using the *Wireless Network Connection* control panel mentioned in earlier step
+ * select an WIFI interface
+ * configure it with the correct details
+ 1. Verify the new WIFI network is displayed in the innermost/*Active* circle in bearercloud
+ 1. Connect the LAN cable
+ 1. Verify the LAN network is displayed in the innermost/*Active* circle in bearercloud
+ 1. using the *Wireless Network Connection* control panel mentioned in earlier step
+ * select an WIFI interface
+ * click *Disconnect*
+ 1. Verify the new WIFI network is now displayed in the second from inner/*Discovered* circle in bearercloud
+ 1. Disable the network device (eg. unplug the access point)
+ 1. Verify that bearercloud shows the network moves to outermost/*Undefined* circle in bearercloud
+ 1. Disconect the LAN cable
+ 1. Verify the LAN network is now displayed in the second from inner/*Discovered* circle in bearercloud \ No newline at end of file
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/windows/enumeration b/tests/systemtests/sys_bearer/testdata/testtext/windows/enumeration
new file mode 100644
index 0000000000..7c455147a6
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/windows/enumeration
@@ -0,0 +1,11 @@
+%RED% Instructions for Windows Platform %ENDCOLOR%
+
+---++++ Enumeration of connections
+
+ 1. On a desktop machine, use command line tool ipconfig /a to list visible networks
+ 1. To list what WIFI networks are present, Start Menu -> Control Panel -> Network Connections -> Wireless Connection.
+ 1. Run the bearermonitor example application
+ 1. Press 'Scan'
+ 1. Verify all previously listed networks are shown in the application view
+
+*Note*: The Windows Wireless tool is known to be buggy, eg showing WIFI points as connected when they are not. \ No newline at end of file
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/windows/removed_interfaces b/tests/systemtests/sys_bearer/testdata/testtext/windows/removed_interfaces
new file mode 100644
index 0000000000..cea75f3f97
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/windows/removed_interfaces
@@ -0,0 +1,13 @@
+%RED% Instructions for Windows Platform %ENDCOLOR%
+
+---++++ Removed network interfaces
+
+ 1. Pre: Added network interfaces has been executed successfully
+ 1. Run the bearercloud application
+ 1. Verify the a WIFI network is displayed in one of the circles in bearercloud
+ 1. Open Start Menu -> Settings -> Network Connections
+ * Select the *Wireless Network Connection* from the list
+ * Right mouse click, select *Properties* , select *Wireless Network* tab
+ * For any configured WIFI network select and click *Remove* button
+ 1. Disable the WIFI access point ( eg remove USB WIFI adapter)
+ 1. Verify the WIFI network is not displayed in any circle in bearercloud \ No newline at end of file
diff --git a/tests/systemtests/sys_bearer/testdata/testtext/windows/windows b/tests/systemtests/sys_bearer/testdata/testtext/windows/windows
new file mode 100644
index 0000000000..d1b133fb8f
--- /dev/null
+++ b/tests/systemtests/sys_bearer/testdata/testtext/windows/windows
@@ -0,0 +1,87 @@
+---+++ Windows Desktop Platforms
+
+For Window Desktop Windows must be managing the WIFI connection
+ * service pack 2 and later is required
+ * start menu -> Control Panels -> Administrative Tools -> Services start the *Wireless Zero Configuration* service
+ * set properties of *Wireless Zero Configuration* service to start automaticly
+
+Using a USB WIFI adapter is recommended for Desktop platforms such as Linux, Mac, Windows to test BearerManagement's WIFI capabilities
+
+---++++ Enumeration of connections
+
+ 1. On a desktop machine, use command line tool ipconfig /a to list visible networks
+ 1. To list what WIFI networks are present, Start Menu -> Control Panel -> Network Connections -> Wireless Connection.
+ 1. Run the bearermonitor example application
+ 1. Press 'Scan'
+ 1. Verify all previously listed networks are shown in the application view
+
+ *Note*: The Windows Wireless tool is known to be buggy, eg showing WIFI points as connected when they are not.
+
+---++++ Adding and removing networks
+
+---+++++ Added network interfaces
+
+ 1. Pre: no network access points are connected to; a WLAN is available eg:
+ * Start Menu -> Settings -> Network Connections
+ * Select the *Wireless Network Connection* from the list
+ * Right mouse click, select *Properties* , select *Wireless Network* tab
+ * For any configured WIFI network select and click *Remove* button
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of WIFI networks
+ 1. Enable a new Wireless Access Point via one of the following:
+ * turn on wireless access point
+ * insert Wireless Lan USB adaptor
+ * use function key on Laptop to enable Wireless hardware
+ 1. Open Start Menu -> Settings -> Network Connections
+ 1. Select the *Wireless Network Connection* from the list
+ 1. Right click and *View available Wireless Networks*
+ 1. using the *Wireless Network Connection* control panel mentioned in earlier step
+ * select an WIFI interface
+ * configure it with default details
+ 1. Verify the new WIFI network is displayed in one of the circles in bearercloud
+
+---+++++ Removed network interfaces
+
+ 1. Pre: Added network interfaces has been executed successfully
+ 1. Run the bearercloud application
+ 1. Verify the a WIFI network is displayed in one of the circles in bearercloud
+ 1. Open Start Menu -> Settings -> Network Connections
+ * Select the *Wireless Network Connection* from the list
+ * Right mouse click, select *Properties* , select *Wireless Network* tab
+ * For any configured WIFI network select and click *Remove* button
+ 1. Disable the WIFI access point ( eg remove USB WIFI adapter)
+ 1. Verify the WIFI network is not displayed in any circle in bearercloud
+
+---++++ Changing the status of a network
+
+ 1. Pre: no network access points are connected to; a WLAN is available eg:
+ * Start Menu -> Settings -> Network Connections
+ * Select the *Wireless Network Connection* from the list
+ * Right mouse click, select *Properties* , select *Wireless Network* tab
+ * For any configured WIFI network select and click *Remove* button
+ 1. Pre: no LAN is connected to (unplug LAN cable)
+ 1. Run the bearercloud application
+ 1. Verify the cloud space is clear of WIFI networks
+ 1. Verify the LAN network is displayed in the second from inner/*Discovered* circle in bearercloud
+ 1. Enable a new Wireless Access Point via one of the following:
+ * turn on wireless access point
+ * insert Wireless Lan USB adaptor
+ * use function key on Laptop to enable Wireless hardware
+ 1. Open Start Menu -> Settings -> Network Connections
+ 1. Select the *Wireless Network Connection* from the list
+ 1. Right click and *View available Wireless Networks*
+ 1. using the *Wireless Network Connection* control panel mentioned in earlier step
+ * select an WIFI interface
+ * configure it with the correct details
+ 1. Verify the new WIFI network is displayed in the innermost/*Active* circle in bearercloud
+ 1. Connect the LAN cable
+ 1. Verify the LAN network is displayed in the innermost/*Active* circle in bearercloud
+ 1. using the *Wireless Network Connection* control panel mentioned in earlier step
+ * select an WIFI interface
+ * click *Disconnect*
+ 1. Verify the new WIFI network is now displayed in the second from inner/*Discovered* circle in bearercloud
+ 1. Disable the network device (eg. unplug the access point)
+ 1. Verify that bearercloud shows the network moves to outermost/*Undefined* circle in bearercloud
+ 1. Disconect the LAN cable
+ 1. Verify the LAN network is now displayed in the second from inner/*Discovered* circle in bearercloud
+
diff --git a/tests/systemtests/sys_contacts/sys_contacts.pro b/tests/systemtests/sys_contacts/sys_contacts.pro
new file mode 100644
index 0000000000..def9d9eeae
--- /dev/null
+++ b/tests/systemtests/sys_contacts/sys_contacts.pro
@@ -0,0 +1,11 @@
+SOURCES=sys_contacts.qtt
+CONFIG+=systemtest
+
+unix:!symbian {
+ maemo5 {
+ target.path = /opt/usr/bin
+ } else {
+ target.path = /usr/local/bin
+ }
+ INSTALLS += target
+}
diff --git a/tests/systemtests/sys_contacts/sys_contacts.qtt b/tests/systemtests/sys_contacts/sys_contacts.qtt
new file mode 100644
index 0000000000..df70668bb0
--- /dev/null
+++ b/tests/systemtests/sys_contacts/sys_contacts.qtt
@@ -0,0 +1,407 @@
+****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//TESTED_COMPONENT=src/contacts
+
+function startTestApp()
+{
+ startApplication("samplephonebook");
+}
+
+function selectContactList()
+{
+ if (!runAsManualTest()){
+ var contactList = findWidget( { className: "QListWidget" } );
+ mouseClick(contactList[0]);
+ }else{
+ prompt("Select the contact list");
+ }
+}
+
+function createFilter(contactName)
+{
+
+ if (!runAsManualTest()){
+ if (checkOS("maemo")){
+ skip("Maemo menus not supported yet", SkipAll);
+ /* mouseClick(400,10); // raise menu manually
+ var maemoMenuBar = findByProperty({ className : "QMaemo5ApplicationMenu" });
+ print("Maemo menu = " + maemoMenuBar);
+ print("filterCheck:" + activeWidgetInfo());
+ */
+ }
+ }
+
+ if (!runAsManualTest()){
+ //print("Labels are" + getLabels());
+ //print("filterCheck widgetInfo:" + activeWidgetInfo());
+ var menuItemName = "Apply &Filter...";
+ var menuItem = contactsMenuItem(menuItemName);
+ verify(menuItem != undefined, "No such \"" + menuItemName + "\" menu");
+ select(menuItem, menuBar());
+ }else{
+ prompt("Select menu entry \'Apply Filter\'");
+ }
+
+ enter(contactName, "Name");
+ select("&Filter");
+}
+
+
+function clearFilter()
+{
+ if (!runAsManualTest()){
+ if (checkOS("maemo")){
+ skip("Maemo menus not supported yet", SkipAll);
+ }else{
+ select(contactsMenuItem("&Clear Filter"), menuBar());
+ }
+ }else {
+ prompt('Select \'Clear Filter\' menu entry');
+ }
+}
+
+// helper function re :contact actions may be in a separate "Contacts menu"
+function contactsMenuItem(menuText)
+{
+ var menuEntries = getValue(menuBar()).toString().split("\n");
+ var index = 0;
+ var separateMenu = false; // optimize number of calls to indexOf
+
+ for (index = 0; index < menuEntries.length; index++){
+ if (!separateMenu && menuEntries[index].indexOf("&Contacts") >= 0){
+ separateMenu = true;
+ menuText = "&Contacts/" + menuText;
+ }
+ if (menuEntries[index] == menuText)
+ return menuText;
+ }
+
+ return undefined;
+}
+
+// if were are adding a new contact the oldName is empty
+// otherwise find the oldName then edit contact details
+function updateContact(name, phone, email, address, avatar, oldName) {
+ if ((oldName == undefined) || (oldName == "")){
+ select("Add");
+ }else{
+ if (!runAsManualTest()){
+ var contactList = findWidget( { className: "QListWidget" } );
+ select(oldName, contactList);
+ }else{
+ prompt("Select contact named:\'" + oldName + "\'");
+ }
+ select("Edit");
+ }
+
+ enter(name, "Name");
+ // add/set all extra details if value for phone is specified
+ if ((phone != undefined) && (phone != "")){
+ enter(phone, "Phone");
+ enter(email, "Email");
+ enter(address, "Address");
+ /* TODO support setting the avatar
+ if (!runAsManualTest()){
+ var selectPictureBtn = findByProperty( { className: "QPushButton", text : "Set picture" });
+ select(selectPictureBtn[0]);
+ }else {
+ select("Set picture");
+ }
+
+ if (!runAsManualTest()){
+ // try and find the "Name:" label
+ var labels = getLabels();
+ for (var index=0; index < labels.length; index++){
+ if (labels[index].indexOf("ame")){
+ enter(avatar,labels[index]);
+ // need to accept entry due to autocompletion
+ keyClick(Qt.Key_Enter);
+ break;
+ }
+ }
+ // try and find the "Open:" button
+ for (var index=0; index < labels.length; index++){
+ if (labels[index].indexOf("pen")){
+ select(labels[index]);
+ break;
+ }
+ }
+ }else{
+ enter(avatar, "File name:");
+ }
+ */
+ }
+
+ select("Save");
+ if (!runAsManualTest())
+ waitForSave();
+}
+
+function deleteContact(name)
+{
+ selectContactList();
+ select(name);
+ select("Delete");
+}
+
+function checkContactExists(name, exists)
+{
+ if (!runAsManualTest()){
+ var contactWidget = findWidget( { className: "QListWidget" } );
+ var contactList = getValue(contactWidget);
+ if (exists)
+ verify(contactList.indexOf(name) != -1, "Contact was missing:" + name);
+ else
+ verify(contactList.indexOf(name) == -1, "Contact was found expectedly:" + name);
+ }else{
+ if (exists)
+ prompt("Verify that Contact exists:\'" + name + "\'");
+ else
+ prompt("Verify that Contact is missing:\'" + name + "\'");
+ }
+}
+
+// Returns true if contact named,name, can be found in contact list
+function checkContactDetails(name, phone, email, address, avatar){
+ if (!runAsManualTest()){
+ var contactList = findWidget( { className: "QListWidget" } );
+ select(name, contactList);
+ }else{
+ prompt("Select in list Contact named:\'" + name + "\'");
+ }
+ select("Edit");
+ // check all values if a phone value is provided
+ if ((phone != undefined) && (phone != "")){
+ // make verify and prompt messages as clear as possible
+ var phonePrompt = "";
+ var emailPrompt = "";
+ var addressPrompt = "";
+ if (!runAsManualTest()){
+ phonePrompt = " instead has Phone of:" + getText("Phone");
+ emailPrompt = " instead has Email of:" + getText("Email");
+ addressPrompt = " instead has Address of:" + getText("Phone");
+ }
+
+ verify(getText("Phone") == phone, "Contact " + name + " is expected to have Phone of:\'" + phone + "\'" + phonePrompt);
+ verify(getText("Email") == email, "Contact " + name + " is expected to have Email of:\'" + email + "\'" +emailPrompt);
+ verify(getText("Address")== address, "Contact " + name + " is expected to have Address of:\'" + address + "\'" + addressPrompt);
+ }
+
+ select("Cancel");
+}
+
+
+// not ideal, there is need to programaticly check that
+// the contact details dialog is not longer showing, ie no "Save" button
+function waitForSave(){
+ for (var loop=0; loop < 5; loop++){
+ if (getLabels().contains("&Save"))
+ wait(1000); // wait to try again
+ else
+ break;
+ }
+
+ // should not happen
+ verify(!getLabels().contains("&Save"));
+}
+
+testcase = {
+
+
+ initTestCase: function()
+ {
+/*
+ startTestApp();
+
+ if (!runAsManualTest()){
+ var contactList = findWidget( { className: "QListWidget" } );
+ verify(getValue(contactList).length == 0, "There must be zero contacts prior to running test, there are the following contacts:" + getValue(contactList));
+ }else{
+ prompt("Verify that no contacts are present");
+ }
+*/
+ },
+
+ cleanup: function()
+ {
+ // While there are names, delete the names from the list
+ if (!runAsManualTest()){
+ /* TODO delete contact added by test cases
+ // make use we remove all contacts that has been added
+ startTestApp();
+
+ var contactWidget = findWidget( { className: "QListWidget" } );
+ var contactList = getValue(contactWidget);
+ // delete all contact that contain "Name"
+ for (var index = 0; index < contactList.length; index){
+ if (contactList[index].indexOf("Name") != -1)
+ deleteContact(contactList[index]);
+ }
+ */
+ }else{
+ prompt("Delete all Contacts whos name contains: \'Name\'");
+ }
+ },
+
+ addContact_data : {
+ ContactSet1: [ [
+ {name:"Name1", phone:"111111", email:"Email1@com", address:"Address1", avatar:"testdata/avatar1.png"},
+ {name:"Name2", phone:"222222", email:"Email2@com", address:"Address2", avatar:"testdata/avatar2.png"},
+ {name:"Name3", phone:"333333", email:"Email3@com", address:"Address3", avatar:"testdata/avatar3.png"}
+ ] ]
+ },
+
+ /* Requirement: Add some contacts */
+ addContact: function(contactSet)
+ {
+ startTestApp();
+ for (var index = 0; index < contactSet.length; index++){
+ var contact = contactSet[index];
+ // create new contact
+ updateContact(contact.name, contact.phone,contact.email, contact.avatar, "");
+ checkContactDetails(contact.name, contact.phone,contact.email, contact.avatar);
+ }
+ },
+
+ updateContactDetails_data : {
+ ContactSet1: [ [
+ {name:"Name1", phone:"111111", email:"Email1@com", address:"Address1", avatar:"testdata/avatar1.png"},
+ {name:"Name2", phone:"222222", email:"Email2@com", address:"Address2", avatar:"testdata/avatar2.png"},
+ {name:"Name3", phone:"333333", email:"Email3@com", address:"Address3", avatar:"testdata/avatar3.png"}
+ ] ]
+ },
+
+ /* Requirement: Verify the contact details and confirm that it can be updated */
+ /* verify added contact details and update contact name */
+ updateContactDetails : function(contactSet)
+ {
+ startTestApp();
+ for (var index = 0; index < contactSet.length; index++){
+ var contact = contactSet[index];
+ var newname = contact.name + '9';
+ var newphone = contact.phone + '9';
+ var newaddress = contact.address + '9';
+ var newemail = contact.email + '9';
+ // create new contact
+ updateContact(contact.name, contact.phone, contact.email, contact.address, contact.avatar, "");
+ // edit its values and verify correctness
+ updateContact(newname, newphone, newemail, newaddress, contact.avatar, contact.name);
+ checkContactDetails(newname, newphone, newemail, newaddress, contact.avatar);
+ }
+ },
+
+ filterCheck_data : {
+ Name1 : ["NameA", true, "Full contact name match"],
+ Name2 : ["NonExistant", false, "Non-existant contact name"]
+
+ },
+
+ filterCheck_extraData: {
+ Names: ["NameA", "NameB"]
+ },
+
+ /* Requirement : Verify the correct match of contacts against a simple filter */
+ /* Test the "Apply &Filter" function */
+ filterCheck : function(name, exists, message) {
+ startTestApp();
+ // add some contacts for this tests use
+ var extraNames = testcase.filterCheck_extraData['Names'];
+ updateContact(extraNames[0]);
+ updateContact(extraNames[1]);
+ createFilter(name);
+ checkContactExists(name, exists);
+ },
+
+
+ clearFilterCheck_data : {
+ Name1: ["NameA"]
+ },
+
+ clearFilterCheck_extraData: {
+ Names: ["NameC", "NameD"]
+ },
+
+ /* Test the "Clear Filter" function */
+ clearFilterCheck : function(nameFilter){
+ startTestApp();
+ // add some contacts for this tests use
+ var extraNames = testcase.clearFilterCheck_extraData['Names'];
+ updateContact(extraNames[0]);
+ updateContact(extraNames[1]);
+ // Note that the filter will not match any of these contacts
+ createFilter(nameFilter);
+ checkContactExists(extraNames[0], false);
+ checkContactExists(extraNames[1], false);
+ // Remove filter and now the contacts should be seen
+ clearFilter();
+ checkContactExists(extraNames[0], true);
+ checkContactExists(extraNames[1], true);
+ },
+
+
+ deleteContact_data: {
+ Name1 : ["NameE", "NameG", "NameH"]
+ },
+
+ /* Requirement: Verify that a contact can be deleted */
+ deleteContact : function(name1, name2, name3){
+ startTestApp();
+ // add some contacts for this tests use
+ updateContact(name1);
+ updateContact(name2);
+ updateContact(name3);
+ // delete contacts in different order to creation
+ deleteContact(name2);
+ deleteContact(name1);
+ deleteContact(name3);
+
+ if (!runAsManualTest()){
+ wait(5000); // wait long enough for contact to be deleted
+ checkContactExists(name1, false);
+ checkContactExists(name2, false);
+ checkContactExists(name3, false);
+ }else{
+ prompt("Verify that Contacts have been deleted:" + name1 + ", " + name2 + ", " + name3);
+ }
+ }
+
+}
diff --git a/tests/systemtests/sys_contacts/testdata/avatar1.png b/tests/systemtests/sys_contacts/testdata/avatar1.png
new file mode 100644
index 0000000000..ba516d6849
--- /dev/null
+++ b/tests/systemtests/sys_contacts/testdata/avatar1.png
Binary files differ
diff --git a/tests/systemtests/sys_contacts/testdata/avatar2.png b/tests/systemtests/sys_contacts/testdata/avatar2.png
new file mode 100644
index 0000000000..94f85d7b21
--- /dev/null
+++ b/tests/systemtests/sys_contacts/testdata/avatar2.png
Binary files differ
diff --git a/tests/systemtests/sys_contacts/testdata/avatar3.png b/tests/systemtests/sys_contacts/testdata/avatar3.png
new file mode 100644
index 0000000000..36d43aa563
--- /dev/null
+++ b/tests/systemtests/sys_contacts/testdata/avatar3.png
Binary files differ
diff --git a/tests/systemtests/sys_crsysteminfo/sys_crsysteminfo.pro b/tests/systemtests/sys_crsysteminfo/sys_crsysteminfo.pro
new file mode 100644
index 0000000000..5c5bdf075f
--- /dev/null
+++ b/tests/systemtests/sys_crsysteminfo/sys_crsysteminfo.pro
@@ -0,0 +1,11 @@
+SOURCES=sys_crsysteminfo.qtt
+CONFIG+=systemtest
+
+unix:!symbian {
+ maemo5 {
+ target.path = /opt/usr/bin
+ } else {
+ target.path = /usr/local/bin
+ }
+ INSTALLS += target
+}
diff --git a/tests/systemtests/sys_crsysteminfo/sys_crsysteminfo.qtt b/tests/systemtests/sys_crsysteminfo/sys_crsysteminfo.qtt
new file mode 100644
index 0000000000..c2e64fbe49
--- /dev/null
+++ b/tests/systemtests/sys_crsysteminfo/sys_crsysteminfo.qtt
@@ -0,0 +1,121 @@
+****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//TESTED_COMPONENT=src/systeminfo
+
+testcase = {
+
+ Configurable_Signal_Strength: function()
+ {
+ skip('Configurable Signal Strength not implemented yet', SkipAll);
+ },
+
+ Storage_changed_notification: function()
+ {
+ prompt(twiki('*Storage changed notification*
+
+ 1 Verify that target supports removable storage, if not then pass this test now otherwise continue with the next steps
+ 1 Ensure that target system does not have any removable storage inserted/mounted
+ 1 Start application *examples/qsysinfo*
+ 1 Switch to the *Storage* tab
+ 1 Verify that the removable storage status is unavailable
+ 1 Insert/mount the storage
+ 1 Verify that the storage appears with correct size
+ 1 Remove/unmount the removable media
+ 1 Verify that the storage disappears or marked unavailable
+ 1 *Note:* On S60 platforms removing a media might cause qsysinfo to be closed, which is usual
+ '));
+ }
+
+ Query_OS_Qt_firmware_versions: function()
+ {
+ prompt(twiki('*Query OS, Qt and firmware versions*
+
+ 1 Start the bluewheel application and open *SystemInfo*
+ 1 Open *General/Features*
+ 1 From the *Version* pulldown menu select *Os*
+ 1 Verify the Os version is what is expected for the platform
+ 1 From the *Version* pulldown menu select *QtCore*
+ 1 Verify the Qt version is what is expected
+ 1 From the *Version* pulldown menu select *Firmware*
+ 1 Verify the Firmware version is what is expected for the platform
+ 1 From the *Version* pulldown menu select *QtMobility*
+ 1 Verify the QtMobility version is what is expected
+ '));
+ }
+
+ Query_device_hardware_features: function()
+ {
+ prompt(twiki('*Query device hardware features*
+
+ 1 Start the bluewheel application and open *SystemInfo*
+ 1 Open *General/Features*
+ 1 From the *Feature* pulldown menu select *Bluetooth*
+ 1 Verify the Bluetooth status is what is expected for the platform
+ 1 From the *Feature* pulldown menu select *Camera*
+ 1 Verify the camera status is what is expected for the platform
+ 1 From the *Feature* pulldown menu select *Fmradio*
+ 1 Verify the Fmradio status is what is expected for the platform
+ 1 From the *Feature* pulldown menu select *Ir*
+ 1 Verify the Ir status is what is expected for the platform
+ 1 From the *Feature* pulldown menu select *Led*
+ 1 Verify the Led status is what is expected for the platform
+ 1 From the *Feature* pulldown menu select *Memcard*
+ 1 Verify the Memcard status is what is expected for the platform
+ 1 From the *Feature* pulldown menu select *Usb*
+ 1 Verify the Usb status is what is expected for the platform
+ 1 From the *Feature* pulldown menu select *Vib*
+ 1 Verify the Vib status is what is expected for the platform
+ 1 From the *Feature* pulldown menu select *Wlan*
+ 1 Verify the Wlan status is what is expected for the platform
+ 1 From the *Feature* pulldown menu select *Sim*
+ 1 Verify the Sim status is what is expected for the platform
+ 1 From the *Feature* pulldown menu select *Location*
+ 1 Verify the Location status is what is expected for the platform
+ 1 From the *Feature* pulldown menu select *VideoOut*
+ 1 Verify the VideoOut status is what is expected for the platform
+ 1 From the *Feature* pulldown menu select *Haptics*
+ 1 Verify the Haptics status is what is expected for the platform
+ 1 From the *Feature* pulldown menu select *FmTransmitter*
+ 1 Verify the FmTransmitter status is what is expected for the platform
+ '));
+ }
+}
diff --git a/tests/systemtests/sys_declarative-music-browser/sys_declarative-music-browser.pro b/tests/systemtests/sys_declarative-music-browser/sys_declarative-music-browser.pro
new file mode 100644
index 0000000000..5d89ff9abb
--- /dev/null
+++ b/tests/systemtests/sys_declarative-music-browser/sys_declarative-music-browser.pro
@@ -0,0 +1,11 @@
+CONFIG+=systemtest
+SOURCES = sys_declarative-music-browser.qtt
+
+unix:!symbian {
+ maemo5 {
+ target.path = /opt/usr/bin
+ } else {
+ target.path = /usr/local/bin
+ }
+ INSTALLS += target
+}
diff --git a/tests/systemtests/sys_declarative-music-browser/sys_declarative-music-browser.qtt b/tests/systemtests/sys_declarative-music-browser/sys_declarative-music-browser.qtt
new file mode 100644
index 0000000000..6aa85ebab0
--- /dev/null
+++ b/tests/systemtests/sys_declarative-music-browser/sys_declarative-music-browser.qtt
@@ -0,0 +1,124 @@
+****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//TESTED_COMPONENT=src/gallery
+
+function startTestApp()
+{
+ prompt('Start application \'declarative-music-browser\'
+ Verify test application started and closed without issue');
+}
+
+
+testcase = {
+
+ // prove that the test application starts before anything else is tested.
+ Run_Test_Application: function()
+ {
+ startTestApp();
+ if (!runAsManualTest()){
+ // ensure we have a widget to work with, dump its details
+ // TODO when run this test case 'automaticly' then enable this following code
+ //print('Focus widget is' + focusWidget());
+ }
+ },
+
+ List_Albums: function()
+ {
+ prompt(twiki('*List Albums*
+
+ 1 Start application *declarative-music-browser*
+ 1 Click Albums icon
+ 1 Verify that the albums listed match what is seen via the native music/document browser
+ 1 Verify that albums have the expected cover thumbnail above the album title
+ 1 Click on an album in view that is known to have more that once song in it
+ 1 Verify that the expected songs are listed in view
+ 1 Click *Back* button
+ 1 Click *Back* button to return to top \"menu\"
+ '));
+ },
+
+
+ List_Artists : function()
+ {
+ prompt(twiki('*List Artists*
+
+ 1 Start application *declarative-music-browser*
+ 1 Click Artists icon
+ 1 Verify that the artists listed match what is seen via the native music/document browser
+ 1 Click on an artist in view
+ 1 Verify that the artist name is listed correctly at top of view
+ 1 Verify that expected songs are listed in view
+ 1 Click *Back* button
+ 1 Click *Back* button to return to top \"menu\"
+ '));
+ },
+
+
+ List_Genres : function()
+ {
+ prompt(twiki('*List Genres*
+
+ 1 Start application *declarative-music-browser*
+ 1 Click Genres icon
+ 1 Verify that the genres listed match what is seen via the native music/document browser
+ 1 Click on an genre in view
+ 1 Verify that albums matching the genres are listed
+ 1 Verify that the expected songs are listed in view
+ 1 Click *Back* button
+ 1 Click *Back* button to return to top \"menu\"
+ '));
+ },
+
+
+ List_Songs : function()
+ {
+ prompt(twiki('*List Songs*
+
+ 1 Start application *declarative-music-browser*
+ 1 Click Songs icon
+ 1 Verify that the song listed match what is seen via the native music/document browser
+ 1 Verify that two of the listed songs have the correct song length mentioned on right
+ 1 Click *Back* button to return to top \"menu\"
+ '));
+ }
+
+}
diff --git a/tests/systemtests/sys_declarative-sfw-notes/sys_declarative-sfw-notes.pro b/tests/systemtests/sys_declarative-sfw-notes/sys_declarative-sfw-notes.pro
new file mode 100644
index 0000000000..1b558ec599
--- /dev/null
+++ b/tests/systemtests/sys_declarative-sfw-notes/sys_declarative-sfw-notes.pro
@@ -0,0 +1,12 @@
+CONFIG += systemtest
+SOURCES = sys_declarative-sfw-notes.qtt
+
+
+unix:!symbian {
+ maemo5 {
+ target.path = /opt/usr/bin
+ } else {
+ target.path = /usr/local/bin
+ }
+ INSTALLS += target
+}
diff --git a/tests/systemtests/sys_declarative-sfw-notes/sys_declarative-sfw-notes.qtt b/tests/systemtests/sys_declarative-sfw-notes/sys_declarative-sfw-notes.qtt
new file mode 100644
index 0000000000..b4d8c10fee
--- /dev/null
+++ b/tests/systemtests/sys_declarative-sfw-notes/sys_declarative-sfw-notes.qtt
@@ -0,0 +1,127 @@
+****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//TESTED_COMPONENT=src/serviceframework
+
+function startTestApp()
+{
+ prompt('Start application \'declarative-sfw-notes\'
+ Verify test application started and closed without issue');
+}
+
+
+testcase = {
+
+ // prove that the test application starts before anything else is tested.
+ Run_Test_Application: function()
+ {
+ startTestApp();
+ if (!runAsManualTest()){
+ // ensure we have a widget to work with, dump its details
+ // TODO when run this test case 'automaticly' then enable this following code
+ //print('Focus widget is' + focusWidget());
+ }
+ },
+
+ Add_Note_With_Date: function()
+ {
+ prompt(twiki('*Add Note with date*
+
+ 1 If not done so register the notes manager service: eg run *servicefw add xmldata/notesmanagerservice.xml*
+ 1 Start application *declarative-sfw-notes*
+ 1 Click \"+\" button
+ 1 Enter a note in the form *Note1#2010-10-01#10:30*
+ 1 Click *Ok* button
+ 1 Verify that note entered is listed with date mentioned
+ '));
+ },
+
+ Add_Note_Without_Date: function()
+ {
+ prompt(twiki('*Add Note without date*
+
+ 1 If not done so register the notes manager service: eg run *servicefw add xmldata/notesmanagerservice.xml*
+ 1 Start application *declarative-sfw-notes*
+ 1 Click \"+\" button
+ 1 Enter a note in the form *My Note*
+ 1 Click *Ok* button
+ 1 Verify that note entered has the current date
+ '));
+ },
+
+ Browse_Notes: function()
+ {
+ prompt(twiki('*Browse Notes*
+
+ 1 If not done so register the notes manager service: eg run *servicefw add xmldata/notesmanagerservice.xml*
+ 1 Start application *declarative-sfw-notes*
+ 1 If not done so enter at least three notes see in this System Test the functions *Add_Note_With_Date* and *Add_Note_Without_Date*
+ 1 Verify that *right* arrow button on dialog can be used to navigate to last note
+ 1 Verify that the *left* arrow button on dialog can be used to navigate to first note
+ '));
+ },
+
+ Find_Note: function()
+ {
+ prompt(twiki('*Find Note*
+
+ 1 If not done so register the notes manager service: eg run *servicefw add xmldata/notesmanagerservice.xml*
+ 1 Start application *declarative-sfw-notes*
+ 1 Click *Search* button ( looking glass )
+ 1 Enter text from previously entered note, eg *My Note*
+ 1 Click *OK* button
+ 1 Verify that expected note is displayed
+ '));
+ },
+
+ Delete_Note: function()
+ {
+ prompt(twiki('*Delete Note*
+
+ 1 If not done so register the notes manager service: eg run *servicefw add xmldata/notesmanagerservice.xml*
+ 1 Start application *declarative-sfw-notes*
+ 1 Click the *Delete* button ( in between Add and Search buttons )
+ 1 Verify that the current note was deleted, ie use left and right arrow buttons to browse notes.
+ '));
+ },
+
+}
+
diff --git a/tests/systemtests/sys_feedback/sys_feedback.pro b/tests/systemtests/sys_feedback/sys_feedback.pro
new file mode 100644
index 0000000000..374cc1ec73
--- /dev/null
+++ b/tests/systemtests/sys_feedback/sys_feedback.pro
@@ -0,0 +1,3 @@
+TEMPLATE = subdirs
+CONFIG += systemtest
+SOURCES = sys_feedback.qtt
diff --git a/tests/systemtests/sys_feedback/sys_feedback.qtt b/tests/systemtests/sys_feedback/sys_feedback.qtt
new file mode 100644
index 0000000000..94871013d6
--- /dev/null
+++ b/tests/systemtests/sys_feedback/sys_feedback.qtt
@@ -0,0 +1,147 @@
+****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//TESTED_COMPONENT=src/feedback
+
+function startHapticsPlayerTestApp()
+{
+ prompt('Start application \'hapticsplayer\'');
+}
+
+function startHapticsSquareTestApp()
+{
+ prompt('Start application \'hapticsquare\'');
+}
+
+
+testcase = {
+
+ runTestApplication: function()
+ {
+ startHapticsPlayerTestApp();
+ if (!runAsManualTest()){
+ // ensure we have a widget to work with, dump its details
+ // TODO when run this test case 'automaticly' then enable this following code
+ //print('Focus widget is' + focusWidget());
+ }else{
+ prompt('Verify test application started and closed without issue');
+ }
+
+ startHapticsSquareTestApp();
+ if (!runAsManualTest()){
+ // ensure we have a widget to work with, dump its details
+ // TODO when run this test case 'automaticly' then enable this following code
+ //print('Focus widget is' + focusWidget());
+ }else{
+ prompt('Verify test application started and closed without issue');
+ }
+ },
+
+
+ vibrate_using_lowlevel_API_data : {
+ vibrateSet : [
+ [
+ {duration:2000, intensity:1, comment:'intense vibration, for two seconds'},
+ {duration:4000, intensity:1, comment:'intense vibration for four seconds'},
+ {duration:2000, intensity:0.5, comment:'half strength vibration, for two seconds'},
+ {duration:2000, intensity:0.1, comment:'very low vibration, for two seconds'},
+ {duration:2000, intensity:0.0 ,comment:'no vibration, for two seconds'},
+ ]
+ ]
+ },
+
+ vibrate_using_lowlevel_API: function(vibrateSet)
+ {
+ startHapticsPlayerTestApp();
+ for (var index = 0; index < vibrateSet.length; index++){
+ enter(vibrateSet[index].duration, 'duration');
+ enter(vibrateSet[index].intensity, 'intensity');
+ select('Play');
+ prompt('Verify that sound matches:' + vibrateSet[index].comment);
+ }
+ },
+
+
+ vibrate_using_highlevel_API: function()
+ {
+ startHapticsPlayerTestApp();
+ prompt('If \'high-level\' tab is disabled skip this test');
+ select('high-level', tabBar());
+ prompt('For each value of combobox');
+ prompt('* Click the \'Play\' button');
+ prompt('* Verify that the expected effect is heard');
+ },
+
+
+ vibrate_using_file_API: function()
+ {
+ startHapticsPlayerTestApp();
+ prompt('If \'file\' tab is disabled or no platform specific effect file is aviable skip this test');
+ select('file', tabBar());
+ select('...');
+ prompt('Enter locations to effect file');
+ select ('Open');
+ select('Play/pause');
+ prompt('Verify that the expected effect is heard');
+ select('Play/pause');
+ select('Stop');
+ prompt('Verify that the expected effect is stoped before it is completed');
+ },
+
+
+ simple_vibrate_test_data: {
+ effectNames : [
+ ['Rumble', 'Ocean', 'Click', 'Oops']
+ ]
+ },
+
+ simple_vibrate_test: function(effectNames)
+ {
+ startHapticsSquareTestApp();
+ prompt('If device does not have a touch screen/mouse skip this test');
+ for (var index=0; index < effectNames.length; index++){
+ select(effectNames[index]);
+ prompt('Verify effects sounds like:' + effectNames[index]);
+ }
+ }
+
+} // end of testcase
+
diff --git a/tests/systemtests/sys_location/sys_location.pro b/tests/systemtests/sys_location/sys_location.pro
new file mode 100644
index 0000000000..86e874233f
--- /dev/null
+++ b/tests/systemtests/sys_location/sys_location.pro
@@ -0,0 +1,11 @@
+CONFIG+=systemtest
+SOURCES=sys_location.qtt
+
+unix:!symbian {
+ maemo5 {
+ target.path = /opt/usr/bin
+ } else {
+ target.path = /usr/local/bin
+ }
+ INSTALLS += target
+}
diff --git a/tests/systemtests/sys_location/sys_location.qtt b/tests/systemtests/sys_location/sys_location.qtt
new file mode 100644
index 0000000000..639a6f652f
--- /dev/null
+++ b/tests/systemtests/sys_location/sys_location.qtt
@@ -0,0 +1,463 @@
+****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//TESTED_COMPONENT=src/location
+
+testcase = {
+
+ current_position: function()
+ {
+ prompt(twiki('---+++ Position is detected
+ | *Step* | *Verification* |
+ | Run the weatherinfo_with_location example | Verify that weather information for your local area is displayed |'
+ ));
+ },
+
+ location_is_updated: function()
+ {
+ prompt(twiki('---+++ Position changes are detected
+ Note that GPS and internet connection is required for this test case.
+ | *Step* | *Verification* |
+ | Run the lightmaps_with_location app (sources are in demos\lightmaps). | Verify that map is displayed and centered with the current position |
+ | Move to a different location | Verify that map is updated and centered with new location |'
+ ));
+ },
+
+ third_party_position_source: function()
+ {
+ //test case for QTMOBILITY-873: Allow 3rd party position sources
+ prompt(twiki('---+++ Position is detected via cusom plugin
+ Note that GPS and internet connection is required for this test case
+ | *Step* | *Verification* |
+ | Run the testQtLocation application (this is part of BlueWeel project, sources are in git@scm.dev.nokia.troll.no:qtmobility/qtmobility-tests.git | |
+ | Select the Custom Service | Verify that no "Unable to register location service" and "Not valid interface." messages appear |
+ | Press the Update Map button | Verify that map was loaded and correct current position is displayed |'
+ ));
+ },
+
+ shift_to_the_given_offset: function()
+ {
+ //test case for QTMOBILITY-658: Add a method to QGeoCoordinate which takes an offset and returns another QGeoCoordinate
+ prompt(twiki('---+++ New coordinats are calculated
+ Note that significand precision should be taken into account during comparing real numbers, that is why we consider 5.48417e-16 value equal to zero
+ | *Step* | *Verification* |
+ | Run the testQtLocation application | |
+ | Select the MapNavigation | |
+ | Fill in "0" in to Start Latitude field | |
+ | Fill in "100" in to Start Longitude field | |
+ | Select Distance/Bearing from *Pre-defined* dropdown list | |
+ | Fill "1000000, 90" in to the given field | |
+ | Press the Ok button | Verify that Destination fields are updated with 5.48417e-16 latitude and 108.9932 longitude |
+ | Fill in "60" in to Start Latitude field | |
+ | Fill in "100" in to Start Longitude field | |
+ | Select Distance/Bearing from *Pre-defined* dropdown list | |
+ | Fill "1000000, 180" in to the given field | |
+ | Press the Ok button | Verify that Destination fields are updated with 51.0068 latitude and 100 longitude |
+ | Fill in "60" in to Start Latitude field | |
+ | Fill in "100" in to Start Longitude field | |
+ | Select Distance/Bearing from *Pre-defined* dropdown list | |
+ | Fill "1000000, 20" in to the given field | |
+ | Press the Ok button | Verify that Destination fields are updated with 68.2523 latitude and 108.296 longitude |'
+ ));
+ },
+
+ // Landmarks
+
+ store_and_load_a_landmark_data: {
+ // Valid landmarks are -90~90 latitude, and -180~180 longitude
+ landmark : ["landmark", "20", "120"]
+ },
+
+ store_and_load_a_landmark: function(name, latitude, longitude)
+ {
+ startApplication("landmarkbrowser");
+ select("Add Landmark");
+ enter("Latitude", latitude);
+ enter("Longitude", longitude);
+ enter("Name", name);
+ select("Ok");
+ prompt("Verify that the landmark record is created");
+ },
+
+ negative_store_and_load_a_landmark_data: {
+ // Landmarks outside the ranges -90~90 latitude, and -180~180 longitude
+ bad_landmark_lat : ["bad_landmark", "100", "120"],
+ bad_landmark_long : ["bad_landmark", "80", "300"]
+ },
+
+ negative_store_and_load_a_landmark: function(name, latitude, longitude)
+ {
+ startApplication("landmarkbrowser");
+ select("Add Landmark");
+ enter("Latitude", latitude);
+ enter("Longitude", longitude);
+ enter("Name", name);
+ //expectMessageBox("Invalid");
+ prompt("Verify a message box is shown indicating the values are ouside the valid range")
+ select("Ok");
+ select("Cancel");
+ },
+
+ sorted_search_based_on_category: function()
+ {
+ prompt(twiki('---+++ Landmarks for the specified category are displayed
+ | *Step* | *Verification* |
+ | Create Accomodation category | |
+ | Create Businesses category | |
+ | Run the landmarkbrowser application | |
+ | Create A1 landmark in Accomodation category | |
+ | Create A2 landmark in Accomodation category | |
+ | Create BB landmark in Businesses category | |
+ | Press the Set Filter button | |
+ | Select the Category checkbox | |
+ | Select Accomodation category | |
+ | Press Ok button | Verify that only A1 and A2 landmark is in the list and they are present in alphabetical order |
+ | Press the Set Filter button | |
+ | Select Education category | |
+ | Press Ok button | Verify that no landmarks are in the list |'
+ ));
+ },
+
+ sort_landmarks_in_alphabetical_and_nearest: function()
+ {
+ prompt(twiki('---+++ Nearest landmarks are displayed
+ | *Step* | *Verification* |
+ | Run the landmarkbrowser application | |
+ | Create landmark A(12;0) | |
+ | Create landmark B(10;0) | |
+ | Create landmark C(8;0) | |
+ | Create landmark D(8;0) | |
+ | Press Set Filter button | |
+ | Select Proximity checkbox | |
+ | Fill in 0 in to Lat field | |
+ | Fill in 0 in to Long field |
+ | Fill in 10000000 in to Radius field| |
+ | Press Ok button | Verify that C, D, B, A landmarks are in the list (not in alphabetical order) |
+ | Press Set Filter button | |
+ | Change radius value to 1000000 | |
+ | Press Ok button | Verify that only C and D landmarks are in the list |
+ | Press Set Filter button | |
+ | Deselect Proximity checkbox | |
+ | Press Ok button | Verify that landmarks appear in alphabetical order from A to Z |'
+ ));
+ },
+
+ landmarks_within_range_of_a_position: function()
+ {
+ prompt(twiki('---+++ Landmarks within range are displayed
+ | *Step* | *Verification* |
+ | Run the landmarkbrowser application | |
+ | Create landmark A(12;0) | |
+ | Create landmark B(10;0) | |
+ | Create landmark C(8;0) | |
+ | Create landmark D(8;0) | |
+ | Press Set Filter button | |
+ | Select Box checkbox | |
+ | Fill in 9 in to Top Left Lat field | |
+ | Fill in 0 in to Top Left Long field | |
+ | Fill in 0 i to Bottom Right Lat filed | |
+ | Fill in 1 in to Bottom Right Long field | |
+ | Press Ok button | Verify that only C and D landmarks are in the list and landmarks appear in alphabetical order |'
+ ));
+ },
+
+ create_edit_and_delete_a_landmark: function()
+ {
+ //Landmark manager provides notifications whenever landmarks are added, updated or deleted
+ prompt(twiki('---+++ Landmarks are added, edited and deleted
+ | *Step* | *Verification* |
+ | Run the landmarkbrowser application | |
+ | Press Add Landmark button | |
+ | Fill in AAA in to Name field | |
+ | Fill in 30 into Latitude field | |
+ | Fill in 30 into Longitude field | |
+ | Press Ok button | Verify that message "Landmark(s) have been added" appears on the screen |
+ | Press Ok button | Verify that AAA landmark is in the landmarks list |
+ | Select AAA landmark | |
+ | Press Edit Landmark button | |
+ | Change Latitude value to 40 | |
+ | Change Longitude value to 40 | |
+ | Change Name value to BBB | |
+ | Press Ok button | Verify that message "Landmark(s) have been edited" appears on the screen |
+ | Press Ok button | Verify that BBB landmark has new latitude and longitude |
+ | Select BBB landmark | |
+ | Press Delete Landmarks button | Verify that message "Landmark(s) have been removed" appears on the screen |
+ | Press Ok button | Verify that only BBB landmark has been deleted |
+ | Create 2 new landmarks A1 and A2 | |
+ | Select both A1 and A2 landmarks |
+ | Press Delete Landmarks button | Verify that message "Landmark(s) have been removed" appears on the screen |
+ | Press Ok button | Verify that only A1 and A2 landmarks have been deleted |'
+ ));
+ },
+
+ enumerate_categories: function()
+ {
+ prompt(twiki('---+++ Categories are displayed
+ | *Step* | *Verification* |
+ | Run the landmarkbrowser application | |
+ | Select Category tab | |
+ | Create several categories | |
+ | Swith to the Landmark tab and back to the Category tab | Verify that the created categories are present in the list |'
+ ));
+ },
+
+ add_and_delete_a_category: function()
+ {
+ //Landmark manager provides notifications whenever categories are added, updated or deleted
+ prompt(twiki('---+++ Categories are added, edited and deleted
+ | *Step* | *Verification* |
+ | Run the landmarkbrowser application | |
+ | Select Category tab | |
+ | Press Add Category button | |
+ | Fill in AAA in to Name field | |
+ | Press Ok button | Verify that message "Category(ies) have been added" |
+ | Press Ok button | Verify that AAA is added in list of categories in alphabetical order |
+ | Press Add Category button | |
+ | Fill in AAA in to Name field | |
+ | Press Ok button | Verify that message "Add Category Failed: category already Exists" appears on the screen |
+ | Press Ok button | |
+ | Press Add Category button | |
+ | Press Ok button | Verify that message "Category name must not be empty" appears on the screen |
+ | Press Ok button | |
+ | Select AAA category | |
+ | Press Delete Categories button | Verify that message "Categoty(ies) have been removed" appears on the screen |
+ | Press Ok button | Verify that list of categories does not contain AAA category only|
+ | Add A1 and A2 categories | |
+ | Select A1 and A2 categories | |
+ | Press Delete Categories button | Verify that message "Categoty(ies) have been removed" appears on the screen |
+ | Press Ok button | Verify that list of categories does not contain A1 and A2 categories only |
+ | Select some of predefined categories | |
+ | Press Delete Category button | Verify tha message "Cannot delete a global category" appears on the screen |
+ | Press Ok button | Verify that no categories have been deleted |'
+ ));
+ },
+
+ // Maps and Navigation
+ select_service_provider: function()
+ {
+ startApplication("geoservicedemo");
+ select("Service Providers");
+ select("nokia");
+ select("Set Service Provider");
+ prompt("Verify selected service provider is indicated as current service provider");
+ },
+
+ request_route_from_one_GPS_location_to_another_data: {
+ route:["-27.575", "153.088", "-27.465", "153.023", "15901", "15987"]
+ },
+
+ request_route_from_one_GPS_location_to_another: function(lat1, long1, lat2, long2, distance1, distance2)
+ {
+ startApplication("geoservicedemo");
+ select("Service Providers");
+ select("nokia");
+ select("Set Service Provider");
+ select("Route");
+ select("Request Route");
+ enter(lat1);
+ enter(long1);
+ enter(lat2);
+ enter(long2);
+ select("Ok");
+ prompt(twiki("Wait until the route is calculated (should be less than 10 seconds)"));
+ prompt(twiki("Verify the there are 8 segments, first and last instructions indicate to 'Head toward Logan rd' and 'Turn right onto Bartley St'"));
+ select("routes/route");
+ compare(getText("distance"), distance1);
+ select("Request Route");
+ enter(lat2);
+ enter(long2);
+ enter(lat1);
+ enter(long1);
+ select("Ok");
+ prompt(twiki('Wait until the route is calculated (should be less than 10 seconds)'));
+ prompt(twiki('Verify the instructions for segments 1 and 2 indicate to Head towards Sedgebrook st and Turn right onto Sedgebrook st'));
+ compare(getText("distance"), distance2);
+ },
+
+ geocoding: function()
+ {
+ prompt(twiki('---+++ Geocoding
+ Note that testing via proxy is not recommended, incorrect settings can be a cause of the " Socket operation timed out" error
+ | *Step* | *Verification* |
+ | Run the GeoServiceDemo application (sources are /tests/location-testing-tools/geoservicedemo) | |
+ | Select Search By Adress tab | |
+ | Select One-box Search checkbox | |
+ | Fill in "Brandl st, Eight Mile Plains, Australia" in search field | |
+ | Select Geocoding search | |
+ | Press Ok button | |
+ | Wait until data is recieved | |
+ | Select places | Verify that count = 1 |
+ | Select place | Verify that latitude is -27.5798, longitude is 153.1 |
+ | Select address | Verify that Country is AUSTRALIA, country code is AUS, city is Eight Mile Plains, street name is Branl St, post code is 4113 |'
+ ));
+
+ },
+
+ reverse_geocoding: function()
+ {
+ prompt(twiki('---+++ Reverse geocoding
+ Note that testing via proxy is not recommended, incorrect settings can be a cause of the " Socket operation timed out" error
+ | *Step* | *Verification* |
+ | Run the GeoServiceDemo application | |
+ | Select Reverse Geocoding tab | |
+ | Press Search By Coordinates button | |
+ | Fill in -27.5798 in Latitude field | |
+ | Fill in 153.1 in Longitude field | |
+ | Press Ok button | |
+ | Wait until data is recieved | |
+ | Select places/place/adress | Verify that Country is AUSTRALIA, country code is AUS, city is Eight Mile Plains, street name is 54 Branl St, post code is 4113 |'
+ ));
+ },
+
+ displaying_a_map: function()
+ {
+ prompt(twiki('---+++ Different views are displayed
+ Note that internet connection is required for this test case.
+ Note that Nokia map engine supports only Street, Satellite and Terrain map types
+ | *Step* | *Verification* |
+ | Run the MapView application (sources are /tests/location-testing-tools/mapviewer) | Map for current location is displayed on the screen |
+ | Press Option button | |
+ | Press Street button (if button is enabled) | Map is drawn in Street view |
+ | Press Option button | |
+ | Press Satellite button (if button is enabled) | Map is drawn in Satellite view |
+ | Press Option button | |
+ | Press Terrain button (if button is enabled) | Map is drawn in Satellite view |'
+ ));
+ },
+
+ zooming_support:function()
+ {
+ prompt(twiki('---+++ Map is zoomed in and out
+ Note that internet connection is required for this test case.
+ | *Step* | *Verification* |
+ | Run the MapView application | Map is displayed on the screen |
+ | Scroll mouse wheel down | Map is zoomed out correctly |
+ | Scroll mouse wheel up | Map is zoomed in correctly|
+ | Double click on the map | Map is zoomed in correctly, step of zooming is consistent|'
+ ));
+ },
+
+ capturing_coordinates:function()
+ {
+ prompt(twiki('---+++ Coordinates are captured
+ Note that internet connection is required for this test case.
+ | *Step* | *Verification* |
+ | Run the MapView application | Map is displayed on the screen |
+ | Zoom in tha map to see Brisbane | |
+ | Right mouse click on the square which represents Brisbane | |
+ | Select Coordinates menu item | |
+ | Select Capture menu item | Verify that dialog with coordinates appears on the screen. Latitude is about -27.46, longitude is about 153.02 |'
+ ));
+ },
+
+ pixmap_object_zooming: function()
+ {
+ //test case for QTMOBILITY-757: Be able to prevent a QGeoMapPixmapObject from being scaled when zooming occurs
+ //test case for QTMOBILITY-701: Add a QGraphicsItem based map object.
+ //Test application testqtLocation covers just one use case meanwhile we have 8 different situation
+ //depending on what units and transforms are in use (we have 4 types of units (PixelUnit, MeterUnit, RelativeArcSecondUnit, AbsoluteArcSecondUnit)
+ //and 2 types of transforms (BilinearTransform, ExactTransform)). New set of tests has to be created as soon as testqtLocation is improved.
+ prompt(twiki('---+++ Pixmap object is not scaled during zooming
+ Note that GPS and internet connection is required for this test case
+ | *Step* | *Verification* |
+ | Run the testQtLocation application | |
+ | Select the MapNavigation | |
+ | Go to Map tab | Verify that map is loaded for current position |
+ | Swith to MapObject mode | |
+ | Tap on the screen to create pixmap object | Verify that blue square appears on the screen in place of touch |
+ | Switch to Pan/Zoom mode | |
+ | Increase zoom level | Verify that the blue square is not scaled |
+ | Decrease zoom level | Verify that the blue square is not scaled |'
+ ));
+ },
+
+ request_landmarks_for_given_coordinate_with_reverse_geocoding: function()
+ {
+ skip( "Nothing tested", SkipAll );
+ },
+
+ //TESTED_COMPONENT=plugins/declarative/location
+
+ qml_display_map: function()
+ {
+ //test case for QTMOBILITY-796: QML for Maps & Navigation:mapping
+ prompt(twiki('---+++ Map is displayed
+ Note that GPS and internet connection is required for this test case
+ | *Step* | *Verification* |
+ | Run the testQtLocation application | |
+ | Select the MapNavigation.qml | |
+ | Tap on Mode button | Verify that map is loaded for current position |'
+ ));
+ },
+
+ qml_zoom_map: function()
+ {
+ //test case for QTMOBILITY-796: QML for Maps & Navigation:mapping
+ prompt(twiki('---+++ Zoom in and out the map
+ Note that GPS and internet connection is required for this test case
+ | *Step* | *Verification* |
+ | Run the testQtLocation application | |
+ | Select the MapNavigation.qml | |
+ | Tap on the Mode button | Verify that map is loaded |
+ | Tap on Plus button | Verify that map is zoomed in |
+ | Tap on Plus button | Verify that zoom level is decreased and map is displayed correctly with new zoom level |'
+ ));
+ }
+
+
+} // end of testcase
+
+
+/*
+
+----Maps And Navigation use cases
+
+ list_of_way_points: function() { },
+
+ distinguish_pedestrian_and_car_navigation: function() { },
+
+ find_matching_landmarks_for_given_search_criteria_with_geocoding: function() { },
+
+ provide_map_for_given_coordinate: function() { },
+
+ online_and_offline: function() { }
+
+*/
diff --git a/tests/systemtests/sys_messaging/sys_messaging.pro b/tests/systemtests/sys_messaging/sys_messaging.pro
new file mode 100644
index 0000000000..b0055d7981
--- /dev/null
+++ b/tests/systemtests/sys_messaging/sys_messaging.pro
@@ -0,0 +1,11 @@
+SOURCES=sys_messaging.qtt
+CONFIG+=systemtest
+
+unix:!symbian {
+ maemo5 {
+ target.path = /opt/usr/bin
+ } else {
+ target.path = /usr/local/bin
+ }
+ INSTALLS += target
+}
diff --git a/tests/systemtests/sys_messaging/sys_messaging.qtt b/tests/systemtests/sys_messaging/sys_messaging.qtt
new file mode 100644
index 0000000000..34e044d03a
--- /dev/null
+++ b/tests/systemtests/sys_messaging/sys_messaging.qtt
@@ -0,0 +1,920 @@
+****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//TESTED_COMPONENT=src/messaging
+
+// returns true if automated testing can be done, false manual testing is to be done
+function automatedTestEnvironment(){
+ //Automated testing not supported for this test case yet
+
+ return false;
+
+ //return (checkOS("symbian") || checkOS("maemo"));
+ //return (checkOS("symbian") || checkOS("maemo") || checkOS("linux"));
+}
+
+testcase = {
+
+ serviceAction_startQuit : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Write Message: Start and Quit
+ 1. Launch *serviceaction* application
+ 1. Verify that the UI is shown
+ 1. Verify that the UI layout is proper and usable on the specific device
+ 1. Exit the application, verify it exits properly without error
+ '));
+ }
+ },
+
+
+ serviceAction_sendplainTextMessage: function (){
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ ServiceAction: Send Message in Plain Text
+ 1. Launch *serviceeaction* application
+ 1. Fill in To, Subject, Content
+ 1. Click "Add attachment" menu item and select file(s) to attach
+ 1. Click on "Send" menu entry
+ 1. Check if the mail has been sent to the desired mailbox with the correct subject, body and complete attachment(s)
+ '));
+ }
+ },
+
+ serviceAction_sendHTMLMessage : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ ServiceAction: Send Message in HTML
+ 1. Launch *serviceaction* application
+ 1. Fill in To, Subject, Content
+ 1. Click "Add attachment" menu item and select file(s) to attach
+ 1. Click on "Send as HTML" menu entry
+ 1. Check if the mail has been sent to the desired mailbox with the correct subject, body and complete attachment(s)
+ '));
+ }
+ },
+
+
+ serviceAction_composeAndSend : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ ServiceAction: Compose and Send
+ 1. Launch *serviceaction* application
+ 1. Fill in To, Subject, Content
+ 1. Click "Add attachment" menu item and select file(s) to attach
+ 1. Click on "Compose" menu entry
+ 1. On Windows, confirm that the Outlook mail client for Windows is now showing
+ 1. Click on the "Send" menu button in Outlook client, on other platforms, choose send from action
+ 1. Check if the mail has been sent to the desired mailbox with the correct subject, body and complete attachment(s)
+ '));
+ }
+ },
+
+ writeMessage_startQuit : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Write Message: Start and Quit
+ 1. Launch *writemessage* application
+ 1. Verify that the UI is shown
+ 1. Verify that the UI layout is proper and usable on the specific device
+ 1. Exit the application, verify it exits properly without error
+ '));
+ }
+ },
+
+
+ writeMessage_sendSMS : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Write Message: Send SMS
+ 1. Launch *writemessage* application
+ 1. Choose *SMS* in *Account* field
+ 1. Fill in a known mobile phone number to *To* field
+ 1. Verify that the *Subject* field is disabled
+ 1. Fill in some random text to the body text area
+ 1. Verify that the *Add*/ *Remove* buttons are disabled for SMS
+ 1. Click on *Send*
+ 1. On the recever mobile phone, verify the correct SMS is received
+ '));
+ }
+ },
+
+ writeMessage_sendMMS : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Write Message: Send MMS
+ 1. Launch *writemessage* application
+ 1. Choose *MMS* in *Account* field
+ 1. Fill in a known mobile phone number to *To* field
+ 1. Fill in some random subject to *Subject* field
+ 1. Fill in some random text to the body text area
+ 1. Click on *Add* button to add an attachment file to the message
+ 1. Choose the attachment just added, click on *Remove* to remove it
+ 1. Click on *Add* button to add two more attachments file to the message
+ 1. Click on *Send*
+ 1. On the recever mobile phone, verify the correct MMS is received with attachments
+ '));
+ }
+ },
+
+ writeMessage_sendEmail : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Write Message: Send Email
+ 1. Create an Email account called *Email* on the device, verify it sends and receives email properly
+ 1. Launch *writemessage* application
+ 1. Choose *Email* in *Account* field
+ 1. Fill in a known email address to *To* field
+ 1. Fill in some random subject to *Subject* field
+ 1. Fill in some random text to the body text area
+ 1. Click on *Add* button to add an attachment file to the message
+ 1. Choose the attachment just added, click on *Remove* to remove it
+ 1. Click on *Add* button to add two more attachments file to the message
+ 1. Click on *Send*
+ 1. On the recever email client, verify the correct Email is received with attachments
+ '));
+ }
+ },
+
+ queryMessage_startQuit : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Query Message: Start and Quit
+ Note: *querymessage* is a console application, it must be launched from command line, and the results are shown on command line only
+
+ 1. Launch *querymessage* application using command line
+ 1. Verify the application runs with no crash
+ 1. Exit the application, verify it exits properly without error
+ '));
+ }
+ },
+
+ queryMessage_queryMessage : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Query Message: Start and Quit
+ Note: *querymessage* is a console application, it must be launched from command line, and the results are shown on command line only
+ Currently the test is not available for Symbian platforms.
+
+ 1. Synchronize a set of test messages to the phone using Nokia Ovi Suite or an equal tool
+ 1. Launch *querymessage* application using command line
+ 1. Verify that the messages are properly queried and results are correct
+ 1. Exit the application, verify it exits properly without error
+ '));
+ }
+ },
+
+ keepInTouch_startQuit : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Keep In Touch: Start and Quit
+
+ 1. Launch *keepintouch* application using command line
+ 1. Verify the application runs with no crash
+ 1. Exit the application, verify it exits properly without error
+ '));
+ }
+ },
+
+
+ keepInTouch_queryContacts : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Keep In Touch: query contacts
+
+ 1. Synchronize a set of test messages sent on a range of dates from various contacts to the phone using Nokia Ovi Suite or an equal tool
+ 1. Launch *keepintouch* application using command line
+ 1. Select *Year* from *Contacted within the last* combo box
+ 1. Click on *Search*
+ 1. Verify that all contacts contacted in the last year are displayed
+ 1. Select *3 Months* from *Contacted within the last* combo box
+ 1. Click on *Search*
+ 1. Verify that all contacts contacted in the last three months are displayed
+ 1. Check the *But not in the last* checkbox
+ 1. Choose *Month* in the combo box next to the checkbox
+ 1. click on *Search*
+ 1. Verify that the contacts contacted in the last three months but not in the last month are shown
+ '));
+ }
+ },
+
+ keepInTouch_showMessages : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Keep In Touch: show messages
+
+ 1. Synchronize a set of test messages sent on a range of dates from various contacts to the phone using Nokia Ovi Suite or an equal tool
+ 1. Launch *keepintouch* application using command line
+ 1. Select *Year* from *Contacted within the last* combo box
+ 1. Click on *Search*
+ 1. Verify that all contacts contacted in the last year are displayed
+ 1. Click on a contact name
+ 1. Verify the messages with the contact are shown
+ 1. Select one message
+ 1. Click on *Show* button and verify the message details are shown
+ 1. Go back and click on *Forward* button, verify the forward dialog is shown
+ '));
+ }
+ },
+
+ messagingEx_startQuit : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ MessageEx: Start and Quit
+ 1. Launch *messagingex* application
+ 1. Verify that the UI is shown
+ 1. Verify that the UI layout is proper and usable on the specific device
+ 1. Exit the application, verify it exits properly without error
+ '));
+ }
+ },
+
+ messagingEx_sendSMS : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ MessagingEx: Send SMS
+ 1. Launch *messagingEx* application
+ 1. Choose *SMS* in *Account* field
+ 1. Fill in a known mobile phone number to *To* field
+ 1. Fill in some random text to the body text area
+ 1. Click on *Send Message*
+ 1. On the recever mobile phone, verify the correct SMS is received
+ '));
+ }
+ },
+
+ messagingEx_storeSMS : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ MessagingEx: Store SMS
+ 1. Launch *messagingEx* application
+ 1. Choose *SMS* in *Account* field
+ 1. Fill in a known mobile phone number to *To* field
+ 1. Fill in some random text to the body text area
+ 1. Click on *Store Message*
+ 1. Verify the correct SMS is stored in the system
+ '));
+ }
+ },
+
+ messagingEx_sendMMS : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ MessagingEx: Send MMS
+ 1. Launch *messagingex* application
+ 1. Choose *MMS* in *Account* field
+ 1. Fill in a known mobile phone number to *To* field
+ 1. Fill in some random subject to *Subject* field
+ 1. Fill in some random text to the body text area
+ 1. Click on *Add Attachment* button to add an attachment file to the message
+ 1. Choose the attachment just added, click on *Remove Attachment* to remove it
+ 1. Click on *Add Attachment* button to add two more attachments file to the message
+ 1. Click on *Send Message*
+ 1. On the recever mobile phone, verify the correct MMS is received with attachments
+ '));
+ }
+ },
+
+ messagingEx_storeMMS : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ MessagingEx: Store MMS
+ 1. Launch *messagingex* application
+ 1. Choose *MMS* in *Account* field
+ 1. Fill in a known mobile phone number to *To* field
+ 1. Fill in some random subject to *Subject* field
+ 1. Fill in some random text to the body text area
+ 1. Click on *Add Attachment* button to add an attachment file to the message
+ 1. Choose the attachment just added, click on *Remove Attachment* to remove it
+ 1. Click on *Add Attachment* button to add two more attachments file to the message
+ 1. Click on *Store Message*
+ 1. Verify the correct MMS is stored with attachments
+ '));
+ }
+ },
+
+ messagingEx_sendEmail : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ messagingEx: Send Email
+ 1. Create an Email account called *Email* on the device, verify it sends and receives email properly
+ 1. Launch *messagingex* application
+ 1. Choose *Email* in *Account* field
+ 1. Fill in a known email address to *To* field
+ 1. Fill in some random subject to *Subject* field
+ 1. Fill in some random text to the body text area
+ 1. Click on *Add Attachment* button to add an attachment file to the message
+ 1. Choose the attachment just added, click on *Remove Attachment* to remove it
+ 1. Click on *Add Attachment* button to add two more attachments file to the message
+ 1. Click on *Send Message*
+ 1. On the recever email client, verify the correct Email is received with attachments
+ '));
+ }
+ },
+
+ messagingEx_storeEmail : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ messagingEx: Store Email
+ 1. Create an Email account called *Email* on the device, verify it sends and receives email properly
+ 1. Launch *messagingex* application
+ 1. Choose *Email* in *Account* field
+ 1. Fill in a known email address to *To* field
+ 1. Fill in some random subject to *Subject* field
+ 1. Fill in some random text to the body text area
+ 1. Click on *Add Attachment* button to add an attachment file to the message
+ 1. Choose the attachment just added, click on *Remove Attachment* to remove it
+ 1. Click on *Add Attachment* button to add two more attachments file to the message
+ 1. Click on *Store Message*
+ 1. Verify the correct Email is stored with attachments
+ '));
+ }
+ },
+
+ declarativeMessaging_startQuit : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Declarative Messaging: Start and Quit
+ 1. Launch *declarativemessaging* application
+ 1. Verify that the UI is shown
+ 1. Verify that the UI layout is proper and usable on the specific device
+ 1. Exit the application, verify it exits properly without error
+ '));
+ }
+ },
+
+ declarativeMessaging_ShowDetails : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Declarative Messaging: Show Details
+
+ 1. Start declarativeMessaging application
+ 1. Verify that the sample messages are listed
+ 1. Randomly click on a sample message
+ 1. Verify that the message details are shown
+ '));
+ }
+ },
+
+ bluewheelMessaging_startQuit : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: Start and Quit
+
+ 1. Start blue wheel test application
+ 1. Verify the application is loaded properly
+ 1. Select Messaging from the list
+ 1. Verify the messaging test application is launched
+ '));
+ }
+ },
+
+ bluewheelMessaging_SMS_Compose : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: SMS Compose
+
+ 1. Start messaging test application
+ 1. select SMS tab
+ 1. Type in destination phone number
+ 1. Type in some content
+ 1. Click on Compose
+ 1. Verify the native SMS client program is launched
+ 1. Save draft and return
+ '));
+ }
+ },
+ bluewheelMessaging_SMS_Store : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: SMS Store
+
+ 1. Start messaging test application
+ 1. select SMS tab
+ 1. Type in destination phone number
+ 1. Type in some content
+ 1. Click on Store
+ 1. Verify the message has been stored in draft folder
+ '));
+ }
+ },
+
+ bluewheelMessaging_SMS_Send : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: SMS Send
+
+ 1. Start messaging test application
+ 1. select SMS tab
+ 1. Type in destination phone number
+ 1. Type in some content
+ 1. Click on Send
+ 1. Verify the message has been sent correctly
+ '));
+ }
+ },
+
+ bluewheelMessaging_Email_Compose : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: Email Compose
+
+ 1. Create at least one email account on the phone
+ 1. Start messaging test application
+ 1. select Email tab
+ 1. Select account for From, if necessary, change Settings by clicking on Settings
+ 1. Type in destination email address, together with To, CC, BCC
+ 1. Type in subject and some content
+ 1. Insert some attachments
+ 1. Click on Compose
+ 1. Verify the native Email client program is launched
+ 1. Save draft and return
+ '));
+ }
+ },
+
+ bluewheelMessaging_Email_Store : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: Email Store
+
+ 1. Create at least one email account on the phone
+ 1. Start messaging test application
+ 1. select Email tab
+ 1. Select account for From, if necessary, change Settings by clicking on Settings
+ 1. Type in destination email address, together with To, CC, BCC
+ 1. Type in subject and some content
+ 1. Insert some attachments
+ 1. Click on Store
+ 1. Verify the email is stored in the draft folder of selected account
+ '));
+ }
+ },
+
+ bluewheelMessaging_Email_Send : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: Email Send
+
+ 1. Create at least one email account on the phone
+ 1. Start messaging test application
+ 1. select Email tab
+ 1. Select account for From, if necessary, change Settings by clicking on Settings
+ 1. Type in destination email address, together with To, CC, BCC
+ 1. Type in subject and some content
+ 1. Insert some attachments
+ 1. Click on Send
+ 1. Verify the email has been sent to the receivers, including to, cc, and bcc
+ '));
+ }
+ },
+
+/*
+ New tests proposed
+ bluewheelMessaging_Email_Add_Attachments
+ bluewheelMessaging_Email_Clear_Attachments
+ bluewheelMessaging_Email_Store_with_Attachments
+ bluewheelMessaging_Email_Send_with_Attachments
+ bluewheelMessaging_Email_Settings_Add_Charsets
+ bluewheelMessaging_Email_Settings_Clear_Charsets
+ bluewheelMessaging_Email_Settings_Change_Bodytype
+ bluewheelMessaging_Email_Send_cross_Charsets
+ bluewheelMessaging_Email_Store_cross_Charsets
+ bluewheelMessaging_Email_Compose_cross_Charsets
+ bluewheelMessaging_Email_Send_cross_Bodytype
+ bluewheelMessaging_Email_Store_cross_Bodytype
+ bluewheelMessaging_Email_Compose_cross_Bodytype
+ bluewheelMessaging_Email_ManageAccounts_Select_Account
+ bluewheelMessaging_Email_ManageAccounts_Delete_Account
+*/
+
+ bluewheelMessaging_MMS_Compose : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: MMS Compose
+
+ 1. Start messaging test application
+ 1. select MMS tab
+ 1. Type in destination phone number
+ 1. Type in a subject and some content
+ 1. Insert some attachments
+ 1. Click on Compose
+ 1. Verify the native SMS client program is launched
+ 1. Save draft and return
+ '));
+ }
+ },
+ bluewheelMessaging_MMS_Store : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: MMS Store
+
+ 1. Start messaging test application
+ 1. select MMS tab
+ 1. Type in destination phone number
+ 1. Type in a subject and some content
+ 1. Insert some attachments
+ 1. Click on Store
+ 1. Verify the message has been stored in draft folder
+ '));
+ }
+ },
+
+ bluewheelMessaging_MMS_Send : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: MMS Send
+
+ 1. Start messaging test application
+ 1. select MMS tab
+ 1. Type in destination phone number
+ 1. Type in a subject and some content
+ 1. Insert some attachments
+ 1. Click on Send
+ 1. Verify the message has been sent correctly
+ '));
+ }
+ },
+
+/*
+ New tests proposed
+ bluewheelMessaging_MMS_Add_Attachments
+ bluewheelMessaging_MMS_Clear_Attachments
+ bluewheelMessaging_MMS_Store_with_Attachments
+ bluewheelMessaging_MMS_Send_with_Attachments
+*/
+
+ bluewheelMessaging_Search_Accounts_By_Name : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: Search Accounts by Name
+
+ 1. Start Messaging test application
+ 1. Select Search Accounts tab
+ 1. Type in an account name, eg. sms, which is not case sensitive
+ 1. Click on Search
+ 1. Verify the correct accounts are found and shown in dialog
+ '));
+ }
+ },
+
+ bluewheelMessaging_Search_Accounts_By_Id : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: Search Accounts by Id
+
+ 1. Start Messaging test application
+ 1. Select Search Accounts tab
+ 1. Type in a full Id, case sensitive. You can find the Id strings by doing a search by name
+ 1. Click on Search
+ 1. Verify the correct accounts are found and shown in dialog
+ '));
+ }
+ },
+
+ bluewheelMessaging_Search_Messages : function() {
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: Search Messages
+
+ 1. Start Messaging test application
+ 1. Select Search Messsages tab
+ 1. Select a search type
+ 1. Fill in according parameters
+ 1. Click on Make Query
+ 1. Verify correct messages are found and shown
+ 1. Select an message and click on Show
+ 1. Answer Yes to open it in native client
+ 1. Verify the message is properly shown
+http://www.google.com/ 1. return to search results
+ 1. Select an message and click on Show
+ 1. Answer No to open it within the test application
+ 1. Verify the message is properly shown
+ 1. Repeat the test for each search type with random query parameters
+ '));
+ }
+ },
+
+ bluewheelMessaging_Account_Settings : function(){
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: Account settings can be set
+
+ 1. Start Messaging test application
+ 1. Select Create Message item
+ 1. Select Email Message button
+ 1. Click on Manage Accounts button
+ 1. Click on Select account combo box and choose an Email account
+ 1. Verify all Email account properties are properly displayed
+ 1. Click on Select account button
+ 1. Go back to the Email creating dialog, fill in all fields with valid values
+ 1. Store/Compose/Send the message
+ 1. Verify the message has been properly stored/composed/sent with desired account
+ '));
+ }
+ },
+
+ bluewheelMessaging_Encoding_Format_Settings : function(){
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: Encoding and format settings can be set
+
+ 1. Start Messaging test application
+ 1. Select Create Message item
+ 1. Select Email Message button
+ 1. Click on Settings button
+ 1. Click on Charsets button
+ 1. Click on Add button to add some charsets
+ 1. Click on Done button
+ 1. Change the Text/Html settings
+ 1. Click on Done to return to the Email creating dialog
+ 1. Store/compose/send the message
+ 1. Verify the message has been properly stored/composed/sent using desired charsets and format
+ '));
+ }
+ },
+
+
+ bluewheelMessaging_Specify_Addresses : function(){
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: Can specify addresses for: To, CC, BCC
+
+ 1. Start Messaging test application
+ 1. Select Create Message item
+ 1. Select SMS Message button
+ 1. Fill in the To address
+ 1. Send the message and verify the message is sent to desired receiver
+ 1. Go back and Select MMS Message button
+ 1. Fill in the To address and other fields
+ 1. Send the message and verify the message is sent to desired receiver
+ 1. Go back and Select Email Message button
+ 1. Fill in the To/CC/BCC with three email addresses each, separated by ;
+ 1. Fill in subject and content, add some attachments
+ 1. Send the message
+ 1. Verify that all the addresses receives the message correctly
+ 1. Verify that all the receivers can see the addresses in To and CC correctly, but not BCC
+ '));
+ }
+ },
+
+
+ bluewheelMessaging_Read_SMS : function(){
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: Able to read SMS
+
+ 1. Start Messaging test application
+ 1. Make sure there are some messages in SMS account, and network available
+ 1. Select Search Message item
+ 1. Use By type as search type, SMS account, tick SMS box
+ 1. click on Make query
+ 1. In the result page, select a message, click on Show button
+ 1. Select No button
+ 1. Verify the message is properly displayed
+ 1. Click on Close
+ 1. Click on Show button again, select Yes this time
+ 1. Verify the message is properly displayed using the native client
+ '));
+ }
+ },
+
+ bluewheelMessaging_Read_MMS : function(){
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: Able to read MMS
+
+ 1. Start Messaging test application
+ 1. Make sure there are some messages in MMS account, and network available
+ 1. Select Search Message item
+ 1. Use By type as search type, MMS account, tick MMS box
+ 1. click on Make query
+ 1. In the result page, select a message, click on Show button
+ 1. Select No button
+ 1. Verify the message is properly displayed
+ 1. Click on Close
+ 1. Click on Show button again, select Yes this time
+ 1. Verify the message is properly displayed using the native client
+ '));
+ }
+ },
+
+
+ bluewheelMessaging_Read_Email : function(){
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: Able to read Email
+
+ 1. Start Messaging test application
+ 1. Make sure there are some messages in Email account, and network available
+ 1. Select Search Message item
+ 1. Use By type as search type, Email account, tick Email box
+ 1. click on Make query
+ 1. In the result page, select a message, click on Show button
+ 1. Select No button
+ 1. Verify the message is properly displayed
+ 1. Click on Close
+ 1. Click on Show button again, select Yes this time
+ 1. Verify the message is properly displayed using the native client
+ '));
+ }
+ },
+
+
+ bluewheelMessaging_Delete_Message : function(){
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: Able to delete messages
+ 1. Start Messaging test application
+ 1. Start Messaging test application
+ 1. Make sure there are some messages in Email account, and network available
+ 1. Select Search Message item
+ 1. Use By type as search type, Email account, tick Email box
+ 1. click on Make query
+ 1. In the result page, select a message, click on Show button
+ 1. Select No button
+ 1. Verify the message is properly displayed
+ 1. Click on Delete button
+ 1. Verify the message is deleted from selected account
+ 1. Repeat this test for SMS and MMS
+ '));
+ }
+ },
+
+
+ bluewheelMessaging_Receive_Message : function(){
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: Able to receive SMS, MMS and Email
+
+ 1. Start Messaging test application
+ 1. Make sure there are some messages in Email account, and network available
+ 1. Select Search Message item
+ 1. Use By type as search type, Email account, tick Email box
+ 1. click on Make query
+ 1. Send a new message to the selected account from other device
+ 1. In the result page, select a message, click on Send/Receive button
+ 1. Wait for a while, verify the new message is retrived to the list
+ 1. Repeat this test for SMS and MMS
+ '));
+ }
+ },
+
+ bluewheelMessaging_Search_Message_Wildcard_Search : function(){
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: Wildcard Search
+
+ 1. Start Messaging test application
+ 1. Make sure there are some messages in Email account, and network available
+ 1. Select Search Message item
+ 1. Use By Receipient as search type, Email account as account
+ 1. Select Like as condition type
+ 1. Fill in the Receipient text box with wildcard, eg %@hotmail.com, use SQL like syntax wildcards
+ 1. Click on search button to make search
+ 1. Verify that the correct results has been returned
+ 1. Repeat this test with Not Like condition type
+ 1. Repeat this test for SMS and MMS
+ '));
+ }
+ },
+
+ bluewheelMessaging_Synchronize: function(){
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: Synchronize
+
+ 1. Start Messaging test application
+ 1. Make sure there are some messages in Email account, and network available
+ 1. Select Search Message item
+ 1. Use By Type as search type, Email account as account
+ 1. Click on search button to make search
+ 1. In the message view, click on Synchronize button
+ 1. Verify synchronization returns in reasonable time
+ 1. Send a message to the Email account
+ 1. Click on the Synchronize button again
+ 1. Verify the new message shows up in the view
+ 1. Repeat this test for SMS and MMS
+ '));
+ }
+ },
+
+ bluewheelMessaging_Send_Receive: function(){
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: Send Receive
+
+ 1. Start Messaging test application
+ 1. Make sure there are some messages in Email account, and network available
+ 1. Select Search Message item
+ 1. Use By Type as search type, Email account as account
+ 1. Click on search button to make search
+ 1. In the message view, click on Send Receive button
+ 1. Verify synchronization returns in reasonable time
+ 1. Send a message to the Email account
+ 1. Click on the Send Receive button again
+ 1. Verify the new message shows up in the view
+ 1. Repeat this test for SMS and MMS
+ '));
+ }
+ },
+
+ bluewheelMessaging_Show_Message: function(){
+ if (automatedTestEnvironment()){
+ }else{
+ prompt(twiki('---++++ Blue Wheel Messaging: Show_Message
+
+ 1. Start Messaging test application
+ 1. Make sure there are some messages in Email account, and network available
+ 1. Select Search Message item
+ 1. Use By Type as search type, Email account as account
+ 1. Click on search button to make search
+ 1. In the message view, click on a message, and click on Show
+ 1. When being asked, choose Yes
+ 1. Verify the message is properly shown with native client
+ 1. Close the native messaging client
+ 1. Click on another message, and click on Show again
+ 1. When being asked, choose to download details
+ 1. Verify the message is shown in Bluewheel message client
+ 1. Click on Attachments, verify the attachments are shown
+ 1. Select an attachment, save it and verify it saves fine
+ 1. Close attachment dialog
+ 1. Click on Properties, verify the properties are properly shown
+ 1. Close properties dialog
+ 1. Click on Unread, switch to the native message client, verify the message is marked as Unread status
+ 1. Go back to the Bluewheel application, click on Read
+ 1. Verify the message is marked as Read status
+ 1. Click on Reply button, send reply, verify the message is replied
+ 1. Go back, click on Forward button, send, verify the message is forwarded
+ 1. Go back, click on Edit button, change something in the message, verify the change are saved
+ 1. Go back, click on Move button, select a target folder, verify the message is moved to that folder
+ 1. Go back, click on Delete button, verify the message is deleted
+ 1. Repeat this test for SMS and MMS
+ '));
+ }
+ },
+
+
+
+
+*/
+ New tests proposed
+ bluewheelMessaging_Search_Messages_By_Type
+ bluewheelMessaging_Search_Messages_By_Priority
+ bluewheelMessaging_Search_Messages_By_Sender
+ bluewheelMessaging_Search_Messages_By_Receipient_To
+ bluewheelMessaging_Search_Messages_By_Receipient_CC
+ bluewheelMessaging_Search_Messages_By_Receipient_BCC
+ bluewheelMessaging_Search_Messages_By_Receipient_Any
+ bluewheelMessaging_Search_Messages_By_Status
+ bluewheelMessaging_Search_Messages_By_Subject
+ bluewheelMessaging_Search_Messages_By_Timestamp
+ bluewheelMessaging_Search_Messages_By_Receiption_Time
+ bluewheelMessaging_Search_Messages_By_Folder
+ bluewheelMessaging_Search_Messages_By_Account
+
+ bluewheelMessaging_Search_Messages_Search_SMS
+ bluewheelMessaging_Search_Messages_Search_MMS
+ bluewheelMessaging_Search_Messages_Search_Email
+ bluewheelMessaging_Search_Messages_Search_Cross_Email_Account_Types
+
+*/
+}
diff --git a/tests/systemtests/sys_multimedia/sys_multimedia.pro b/tests/systemtests/sys_multimedia/sys_multimedia.pro
new file mode 100644
index 0000000000..e9a59e7faa
--- /dev/null
+++ b/tests/systemtests/sys_multimedia/sys_multimedia.pro
@@ -0,0 +1,11 @@
+SOURCES=sys_multimedia.qtt
+CONFIG+=systemtest
+
+unix:!symbian {
+ maemo5 {
+ target.path = /opt/usr/bin
+ } else {
+ target.path = /usr/local/bin
+ }
+ INSTALLS += target
+}
diff --git a/tests/systemtests/sys_multimedia/sys_multimedia.qtt b/tests/systemtests/sys_multimedia/sys_multimedia.qtt
new file mode 100644
index 0000000000..0a6858ef5e
--- /dev/null
+++ b/tests/systemtests/sys_multimedia/sys_multimedia.qtt
@@ -0,0 +1,433 @@
+****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//TESTED_COMPONENT=src/multimedia
+
+testcase = {
+
+/* Notes
+Ensure 2 test .mp4 files are available on device
+Ensure 2 test .mp3 file available on device
+Ensure 2 test .wav file available on device
+Ensure a number of .jpg, .gif and .png files are available on device
+Ensure a valid m3u file referring to locations of indicated media is available on the device
+Ensure the device can ping destinations on the network (if applicable)
+Have an audio stream url available (e.g. http://202.6.74.107:8060/triplej.mp3 for example)
+Have a video stream url available (e.g. http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4)
+Ensure access to Internet available to device
+Ensure radio reception is available in testing area
+A device specific headset is required to be connected to device for radio testing
+*/
+ initTestCase: function()
+ {
+ },
+
+ play_an_audio_file_data: {
+ mp3:[".mp3", "filename", "mpeg audio layer 3"],
+ wav:[".wav", "filename", "waveform audio"]
+ },
+
+ play_an_audio_file: function(extension, filename, format)
+ {
+ prompt(twiki("Ensure a test "+extension+" file is available on device"));
+ prompt(twiki("Launch player application
+Select [Open]
+In [Open File] select the "+filename+extension+" file to return to player UI
+Verify selected file has populated playlist window
+Highlight file in playlist window by clicking on it
+Select [Play]
+Verify that the "+format+" file is audible on device"));
+ },
+
+ basic_player_controls_for_audio_data: {
+ mp3:[".mp3", "filename", "mpeg audio layer 3"],
+ },
+
+ basic_player_controls_for_audio: function(extension, filename, format)
+ {
+ prompt(twiki("Ensure a test "+extension+" file is available on device"));
+prompt(twiki("Launch player application
+Select [Open]
+In [Open File] select the "+filename+extension+" file to return to player UI
+Select [Play] to play the file
+Select [Pause]
+Verify that file has paused
+Verify that [Pause] control has now changed to [Play] control
+Select [Play]
+Verify that file continues to play from where previously paused.
+Verify that [Play] icon is now a [Pause] icon
+Select [Next File] control
+Verify that next file in playlist is playing from start
+After some time (10-20 sec) Select [Beginning of File] control
+Verify that current file is being played from start
+Let some arbitrary time pass, then Select [Beginning of File] control twice in quick succession.
+Verify that previous file in playlist is playing from start
+Select [Stop] control
+Verify that file has stopped playing
+Select [Play]
+Verify that file continues to play from start of file.
+Let file play till end
+Verify player continues playing the next file in the playlist window
+After some arbitrary time, Select [Stop]
+Select [Next File] control
+Verify that next file in playlist is highlighted
+Verify that file is not automatically playing
+Select [Beginning of File] control
+Verify that previous file in playlist is highlighted
+Select file in playlist
+Verify that file plays in player.
+Select number of files greater than can be displayed without scrolling in to playlist
+Verify that list can be scrolled through
+With file playing, verify that hardware keys can change volume up and down
+With file playing, verify that UI volume control slider can change volume up and down
+Select volume at 50% (or thereabout)
+Select [Mute]
+Verify that sound is muted while file is playing
+Verify that [Mute] control is displaying the Muted icon
+Select [Mute] control again
+Verify that sound has reverted back to level selected prior to muting
+Drag positional slider to right, then release
+Verify that player continues to play file at later part of file
+Drag positional slider to left, then release
+Verify that player continues to play file at earlier part of file"));
+
+// Note: [Color Option] is not implemented so far in player
+// Note: [Full Screen] opens a blank screen with no content
+
+ },
+
+ seek_controls_for_audio_data: {
+ mp3:[".mp3", "filename", "mpeg audio layer 3"],
+ },
+
+ seek_controls_for_audio: function(extension, filename, format)
+ {
+ prompt(twiki("Ensure a test "+extension+" file is available on device"));
+prompt(twiki("Launch player application
+Select [Open]
+In [Open File] select the "+filename+extension+" file to return to player UI
+Select [Play] to play the file
+Select the [1.0] (Multiplier) control.
+Select [2.0]
+Verify that file is playing at double speed
+With multiplier control set on [2.0], select a new file from the playlist window
+Verify that the Multiplier control has reverted back to [1.0]
+Verify that the audio is playing at normal speed
+Select [Multiplier] control.
+Select [0.5]
+Verify that file is playing at half speed
+With multiplier control set on [0.5], select a new file from the playlist window
+Verify that the Multiplier control has reverted back to [1.0]
+Verify that the audio is playing at normal speed"));
+ },
+
+ play_a_video_file_data: {
+ mp4:[".mp4", "filename", "mpeg video layer 4"]
+ },
+
+ play_a_video_file: function(extension, filename, format)
+ {
+ prompt(twiki("Ensure a test "+extension+" file is available on device"));
+prompt(twiki("Launch player application
+Select [Open]
+In [Open File] select the "+filename+extension+" file to return to player UI
+Select [Play] to play the file
+Verify selected file has populated playlist
+Highlight file in playlist by clicking on it
+Select [Play]
+Verify that .MP4 file is playing on device"));
+ },
+
+ basic_controls_for_video_data: {
+ mp4:[".mp4", "filename", "mpeg video layer 4"]
+ },
+
+ basic_controls_for_video: function(extension, filename, format)
+ {
+ prompt(twiki("Launch player application
+Select [Open]
+In [Open File] select the "+filename+extension+" file to return to player UI
+Select [Play] to play the file
+Select [Pause]
+Verify that file has paused
+Verify that the [Pause] icon has changed to a [Play] icon
+Select [Play]
+Verify that the [Play] icon has changed to a [Pause] icon
+Verify that file continues to play from where previously paused.
+Select [Next File]
+Verify that next file in playlist is playing from start
+After some time (10-20 sec) Select [Beginning of File] control
+Verify that current file is being played from start
+Let arbitrary time pass, then Select [Beginning of File] control twice in quick succession.
+Verify that previous file in playlist is playing from start
+Select [Stop]
+Verify that file has stopped playing
+Select [Play]
+Verify that file continues to play from start of file.
+Let file play till end
+Verify player stops at end of file.
+Start playing file.
+After arbitrary time, Select [Stop]
+Select [Next File]
+Verify that next file in playlist is highlighted
+Verify that file is not automatically playing
+Select [Beginning of File]
+Verify that previous file in playlist is highlighted
+Select file in playlist
+Verify that file plays in player.
+Select number of files greater than can be displayed without scrolling in to playlist
+Verify that list can be scrolled through
+With file playing, verify that hardware keys can change volume up and down
+With file playing, verify that UI volume control slider can change volume up and down
+Select volume at 50% (or thereabout)
+Select [Mute] control
+Verify that sound is muted while file is playing
+Verify that [Mute] control is displaying the Muted icon
+Select [Mute] control again
+Verify that sound has reverted back to level selected prior to muting
+Drag positional slider to right, then release
+Verify that player continues to play file at later part of file
+Drag positional slider to left, then release
+Verify that player continues to play file at earlier part of file
+Start playing file
+Select [FullScreen] control
+Verify that video is now playing in Fullscreen mode
+When at end of current file, verify that next file in playlist is being played
+When at last file in playlist and at end of file, verify that fullscreen mode is exited and user returned to player interface and that [FullScreen] is no longer selected."));
+ },
+
+ seek_controls_for_video: function()
+ {
+ prompt(twiki("
+While playing a video file, Select or Tap on [1.0] (Multiplier) control
+Select [2.0]
+Verify that file is playing at double speed
+Select [Multiplier] control
+Select [0.5]
+Verify that file is playing at half speed"));
+ },
+
+ basic_controls_for_streamed_content: function()
+ {
+
+//*Note* Functionality for this feature is being implemented due to bugs in .m3u playback on Maemo. Once resolved, this test will revert back to its original form
+//*Note* In order to play stream on Maemo, invoke player with following command from console:
+// run-standalone.sh ./player http://202.6.74.107:8060/triplej.mp3
+//*Note* For this test you need a playlist of streaming media urls. Suggest: http://202.6.74.107:8060/triplej.mp3 ; http://www.abc.net.au/streaming/triplej.asx ; rtsp://media1.abc.net.au/broadcast/triplej.rm ; mms://media3.abc.net.au/triplej ; depending on your platform and backend support.
+
+ prompt(twiki("Launch player application
+In player application, Select or Tap [Open]
+In [Open File] navigate and highlight test playlist file
+Select or Tap on selected file to return to player UI
+Verify selected file has populated playlist
+Highlight file in playlist by selecting or clicking it
+Select [Play]
+Verify that stream is playing on device
+Select [Pause]
+Verify that stream is paused on device
+Verify that the [Pause] button has changed to a [Play] button
+Select [Play] again
+Verify that stream is playing on device
+Select [Stop]
+Open local mp3 file in to play list and select it to play
+Verify that the mp3 plays while the stream name is still present in the playlist
+Re-select the stream in the playlist
+Verify that the stream starts playing again
+Select [Next File]
+Verify that the player started playing the next file in the playlist
+Select [Previous File]
+Verify that the original stream is playing again
+During stream playback, have headphones connected to device
+Verify that the sound is now playing through the headphones
+Invoke a system notification on the device (such as an incoming SMS)
+Verify that the device correctly transmits the audible system notification through the devices speakers and then returns to playing the stream through the headphones"));
+ },
+
+ play_a_radio_transmission: function()
+ {
+// *Note* This test requires radio reception and headphones to be connected to device
+// *Note* Audible system notifications should be enabled for this test
+
+ prompt(twiki("Start Radio application
+Verify that 0 KHz and No Signal is displayed
+Select [Scan Up]
+Audible white noise should be heard as the radio searches for a frequency lock
+Frequency should be increasing in 100 KHz steps until a strong signal is found
+Verify that a radio signal can be heard. It is possible for the radio to lock on a silent station signal, in that case progress further up the frequencies
+Once a strong audible signal is found
+Verify that the stations frequency and Got Signal message is displayed
+Select [Scan Up]
+Verify that the radio has moved off the previous station and in progressing through the frequencies
+Once on a radio station, Select [Freq Up]
+Verify that the radio frequency has moved off the station by 100KHz and is stationary
+Select [Freq Up] again
+Verify that the radio frequency has moved up another 100KHz and is stationary
+Select [Freq Down] twice
+Verify that you are now at the frequency of the previous radio station and that the signal is audible
+Select [Scan Down]
+Verify that the radio has moved off the previous station, progressing through the frequencies, and finds the original station from this test
+Exit the radio application
+Verify that the radio station is no longer heard"));
+ },
+
+ radio_interrupted_by_system_notification: function()
+ {
+ prompt(twiki("Launch the radio application
+Locate a strong radio station signal by scanning upwards
+While on a strong and audible radio signal, evoke a system notification on device (eg: incoming SMS, alarm notification)
+Verify that after the system notification has been delivered, the radio reverts to outputting the audio signal back through the headphones"));
+ },
+
+ basic_radio_controls: function()
+ {
+ prompt(twiki("Launch the radio application
+Locate a strong radio station signal by scanning upwards
+While on a strong and audible radio signal, move volume slider to the right
+Verify that the audio volume of the radio station is amplified
+Move volume slider to the left
+Verify that the audio volume is lowered
+Move the volume slider all the way to the left
+Verify that the sound is now completely muted"));
+ },
+
+ take_a_photo: function()
+ {
+ prompt(twiki("Launch camera application
+ If device has lens cover, make sure it is open
+ Select Image tab to put camera in still mode
+ Verify the intended scene is reproduced in the preview/viewfinder
+ Select Capture Photo
+ If applicable, verify that flash has triggered
+ Verify that image is shown on screen for preview
+ Verify that a new file is in the Images folder and accessabble with the image viewer
+ Select given image and Verify that it is a true representation of the intended sceen
+ Verify the image has no unintended artifacts and noise and is properly formatted"));
+ },
+
+ record_an_audio_file: function()
+ {
+
+// Note: On Maemo5, accepting the default for Input Device, Audio Codec, File Container and Sample Rate will produce a valid audio file.
+// Note: Selecting the alternative selection, if available, works as well.
+
+ prompt(twiki("Open audiorecorder application
+ Select Input Device
+ Select Audio Codec
+ Select File Container
+ Select Sample Rate
+ Select Quality and Bitrate
+ Select Output... and select location and name of output file
+ Select Record
+ Verify that [Record] button has changed in to [Stop]
+ Verify that Duration is counting seconds
+ Verify that Recording is displayed
+ Select Stop
+ Verify that Duration is now 0
+ Select Output File in file browser
+ Verify that an audio file has been generated
+ Play output file in media player
+ Verify that audible audio is recorded in file"));
+ },
+
+pause_recording_an_audio_file: function()
+ {
+// Note: On Maemo5, accepting the default for Input Device, Audio Codec, File Container and Sample Rate will produce a valid audio file.
+// Note: Selecting the alternative selection, if available, works as well.
+
+ prompt(twiki("Open audiorecorder application
+ Select Input Device
+ Select Audio Codec
+ Select File Container
+ Select Sample Rate
+ Select Quality and Bitrate
+ Select Output... and select location and name of output file
+ Select Record
+ Verify that [Record] button has changed in to [Stop]
+ Verify that Duration is counting seconds
+ Verify that Recording is displayed
+ Select Pause
+ Verify that instead of Duration, Paused is displayed
+ Select Resume
+ Verify that the counter has resumed the seconds count from where it was previously paused.
+ After a arbitrary time, Stop the recording.
+ Select Output File in file browser
+ Verify that an audio file has been generated
+ Play output file in media player
+ Verify that audible audio is recorded in file and that audio is only recorded for period that Pause was not selected
+ Verify there is no audible artifact that separates the two or more recording periods, that is that the joint is seamless"));
+ },
+
+ play_a_slideshow: function()
+ {
+ prompt(twiki("Launch the slideshow application
+Select [Open] Icon
+Select Directory from the list
+Navigate to desired directory
+Select desired directory containing pictures
+Select [Play]
+Verify that the slideshow starts
+Select [Pause]
+Verify that slideshow stops on given image
+Select [Play] again
+Verify that slideshow resumes
+Select [Next File]
+Verify that slideshow jumps to next image in directory
+Select [Previous File]
+Verify that slideshow jumps to previous image in directory
+Select [Stop]
+Verify that slideshow has stopped
+Select [Open] Icon
+Select Playlist from the list
+Select [Play]
+Verify that slideshow starts
+Select [Pause]
+Verify that slideshow stops on given image
+Select [Play] again
+Verify that slideshow resumes
+Select [Next File]
+Verify that slideshow jumps to next image in directory
+Select [Previous File]
+Verify that slideshow jumps to previous image in directory
+Select [Stop]
+Verify that slideshow has stopped"));
+ }
+
+}
diff --git a/tests/systemtests/sys_oopserviceframework/sys_oopserviceframework.pro b/tests/systemtests/sys_oopserviceframework/sys_oopserviceframework.pro
new file mode 100644
index 0000000000..1864533aa4
--- /dev/null
+++ b/tests/systemtests/sys_oopserviceframework/sys_oopserviceframework.pro
@@ -0,0 +1,11 @@
+CONFIG+=systemtest
+SOURCES = sys_oopserviceframework.qtt
+
+unix:!symbian {
+ maemo5 {
+ target.path = /opt/usr/bin
+ } else {
+ target.path = /usr/local/bin
+ }
+ INSTALLS += target
+}
diff --git a/tests/systemtests/sys_oopserviceframework/sys_oopserviceframework.qtt b/tests/systemtests/sys_oopserviceframework/sys_oopserviceframework.qtt
new file mode 100644
index 0000000000..0c677b1436
--- /dev/null
+++ b/tests/systemtests/sys_oopserviceframework/sys_oopserviceframework.qtt
@@ -0,0 +1,82 @@
+****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//TESTED_COMPONENT=src/serviceframework
+
+testcase = {
+
+ Start_out_of_process_Service : function()
+ {
+
+ prompt(twiki('*Start out of process Service*
+
+ 1. Start sfwecho_service application (as background process)
+ 1. Verify that the application(service) is running in background as Daemon
+ '));
+ },
+
+ Broadcasting_messages_send_correctly : function()
+ {
+ prompt(twiki('*Broadcasting messages send correctly*
+
+ 1. The purpose of this test is to send a Broadcasting message to sfw server which will bounce it back
+ 1. Start sfwecho_client application (it will ensure the service is running automatically)
+ 1. Choose *Shared Chat* radio button
+ 1. Input some random text in the Message input box
+ 1. Click on Send button
+ 1. Verify that the message is echoed to the message box in the middle of current window
+ '));
+ },
+
+
+ Private_messages_send_correctly : function()
+ {
+ prompt(twiki('*Private messages send correctly*
+
+ 1. The purpose of this test is to send a private message to sfw server which will bounce it back
+ 1. Start sfwecho_client application (it will ensure the service is running automatically)
+ 1. Choose *Unique Chat* radio button
+ 1. Input some random text in the Message input box
+ 1. Click on Send button
+ 1. Verify that the message is echoed to the message box in the middle of current window
+ '));
+ }
+}
diff --git a/tests/systemtests/sys_organizer/sys_organizer.pro b/tests/systemtests/sys_organizer/sys_organizer.pro
new file mode 100644
index 0000000000..65cf6c8bc6
--- /dev/null
+++ b/tests/systemtests/sys_organizer/sys_organizer.pro
@@ -0,0 +1,11 @@
+SOURCES=sys_organizer.qtt
+CONFIG+=systemtest
+
+unix:!symbian {
+ maemo5 {
+ target.path = /opt/usr/bin
+ } else {
+ target.path = /usr/local/bin
+ }
+ INSTALLS += target
+}
diff --git a/tests/systemtests/sys_organizer/sys_organizer.qtt b/tests/systemtests/sys_organizer/sys_organizer.qtt
new file mode 100644
index 0000000000..9d3ef0e4e4
--- /dev/null
+++ b/tests/systemtests/sys_organizer/sys_organizer.qtt
@@ -0,0 +1,629 @@
+****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//TESTED_COMPONENT=src/organizer
+
+// Note: for test casess relating to functions such as import iCalendar entries see src/versitorganiser tests
+
+testcase = {
+
+ initTestCase: function()
+ {
+ prompt(twiki('---++ Preconditions to the Organizer tests
+
+ 1. Verify that the devices system time is correct
+ 1. Verify that the appropriate backend is listed in the backend list for given device
+ '));
+ },
+
+ select_backends: function()
+ {
+ prompt(twiki('---++ Various backends can be selected
+
+ 1. Launch the *calendardemo* application
+ 1. For each item in the backend ( combo box at top of dialog )
+ 1. Choose as current backend
+ 1. Verify that the backend can be selected without any error or crash
+ 1. Close the *calendardemo* application
+ '));
+ },
+
+ add_event: function()
+ {
+ prompt(twiki('---++ Add Calendar Event
+
+ 1. Launch the *calendardemo* application
+ 1. Verify the layout and UI of the application is appropriate for device
+ 1. Verify the correct day and month is shown.
+ 1. Verify that todays date is highlighted
+ 1. Verify that no events are listed. If events are listed then
+ 1. Remove the events
+ 1. Close the *calendardemo* application
+ 1. Restart this test case
+ 1. Verify that the current backend is the best to suit device
+ 1. Add a *valid* event:
+ 1. Select \'Add Event\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Event 1\' |
+ | Start time | today\'s date, 08:00 AM |
+ | End time | today\'s date, 01:00 PM |
+ | Alarm | \'30 minutes before\' |
+ | Repeat | \'None\' |
+ 1. Click \'Save\' button
+ 1. Verify that you are presented with the day view for today and that \'Event 1\' is listed with start time shown
+ 1. Click \'View Month\' button
+ 1. Verify that you are in the Month View with todays date underlined.
+ 1. Add an *invalid* event:
+ 1. Select \'Add Event\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Invalid Event\' |
+ | Start time | today\'s date, 08:00 AM |
+ | End time | yesterday\'s date, 01:00 PM |
+ | Alarm | \'30 minutes before\' |
+ | Repeat | \'None\' |
+ 1. Click \'Save\' button
+ 1. Verify that you are presented with an error: \'Failed! Start date is not before due date\'.
+ 1. Click \'Done\'(or \'OK\') button
+ 1. Click \'Cancel\' button
+ 1. Verify that \'Event Invalid\' is not listed in either Today\'s, nor Yesterday\'s date.
+ 1. Add a *valid* event for later today:
+ 1. Select \'Add Event\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Event 2\' |
+ | Start time | today\'s date at 02:00 PM |
+ | End time | today\'s date at 03:00 PM |
+ | Alarm | \'15 minutes before\' |
+ | Repeat | \'None\' |
+ 1. Click \'Save\' button
+ 1. Verify that events \'Event 1\' and \'Event 2\' are listed against today\'s date
+ 1. Click \'View Month\' button
+ 1. Verify that events \'Event 1\' and \'Event 2\' are listed for today\'s date
+ 1. Add *valid* event for 2 days into the future:
+ 1. Clicking date 2 days into the future in the Calendar View
+ 1. Select \'Add Event\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Event 3\' |
+ | Start time | future date, 06:00 PM |
+ | End time | future date, 07:00 PM |
+ | Alarm | \'05 minutes before\' |
+ | Repeat | \'None\' |
+ 1. Click \'Save\' button
+ 1. If \'Memory\' backend is not being used
+ 1. Close the *calendardemo* application
+ 1. Launch the *calendardemo* application
+ 1. Verify that today\'s date has events \'Event 1\' and \'Event 2\' listed with correct details
+ 1. Verify that the day after tomorrow has the event \'Event 3\'
+ 1. Delete events \'Event 1\', \'Event 2\', \'Event 3\' (using native calendar application if neccessary)
+ 1. Close the *calendardemo* application
+ '));
+ },
+
+ delete_event: function()
+ {
+ prompt(twiki('---++ Delete Calendar Event
+
+ 1. Launch the *calendardemo* application
+ 1. Select appropriate backend
+ 1. Verify that no events are listed. If events are listed then
+ 1. Remove the events
+ 1. Close the *calendardemo* application
+ 1. Restart this test case
+ 1. Add the event \'Event 1\':
+ 1. Select \'Add Event\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Event 1\' |
+ 1. Click \'Save\' button
+ 1. Add the event \'Event 2\':
+ 1. Select \'Add Event\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Event 2\' |
+ 1. Click \'Save\' button
+ 1. Verify that \'Event 1\' and \'Event 2\' are listed
+ 1. Without selecting any events (no events highlighted), click \'Remove\' button
+ 1. Verify that no event has been removed from list.
+ 1. Return back to Month View, and reselect todays date.
+ 1. Verify that \'Event 1\' and \'Event 2\' are still listed
+ 1. Select \'Event 1\'
+ 1. Click \'Remove\' button
+ 1. Verify that \'Event 1\' has been removed from list of events.
+ 1. If \'Memory\' backend is not being used
+ 1. Close the *calendardemo* application
+ 1. Launch the *calendardemo* application
+ 1. Verify that \'Event 1\' is not listed in the list of today\'s events
+ 1. Delete events \'Event 1\'and \'Event 2\' (using native calendar application if neccessary)
+ 1. Close the *calendardemo* application
+ '));
+ },
+
+ edit_event: function()
+ {
+ prompt(twiki('---++ Edit Calendar Event
+
+ 1. Launch the *calendardemo* application
+ 1. Select appropriate backend
+ 1. Select today\'s date
+ 1. Verify that no events are listed. If events are listed then
+ 1. Remove the events
+ 1. Close the *calendardemo* application
+ 1. Restart this test case
+ 1. Add the event \'Event 1\':
+ 1. Select \'Add Event\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Event 1\' |
+ | Start time | today\'s date, 08:00 AM |
+ | End time | today\'s date, 01:00 PM |
+ | Alarm | \'30 minutes before\' |
+ | Repeat | \'None\' |
+ 1. Click \'Save\' button
+ 1. Add the event \'Event 2\':
+ 1. Select \'Add Event\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Event 2\' |
+ | Start time | today\'s date, 08:00 AM |
+ | End time | today\'s date, 01:00 PM |
+ | Alarm | \'30 minutes before\' |
+ | Repeat | \'None\' |
+ 1. Click \'Save\' button
+ 1. Verify that \'Event 1\' and \'Event 2\' are listed
+ 1. Edit event \'Event 1\':
+ 1. Click(Highlight) event \'Event 1\'
+ 1. Click \'Edit\' button
+ 1. Enter new details for event \'Event 1\':
+ | Subject | \'Event 1 Edited\' |
+ | Start time | tomorrow\'s date, 08:00 AM |
+ | End time | tomorrow\'s date, 01:00 PM |
+ | Alarm | \'30 minutes before\' |
+ | Repeat | \'None\' |
+ 1. Click \'Save\' button
+ 1. Verify that \'Event 1 Edited\' is now listed under tomorrow\'s date
+ 1. Select \'Event 1 Edited\' and click the \'Edit\' button
+ 1. Change \'End time\' of event to today\'s date, leaving \'Start time\' to refer to tomorrow\'s date
+ 1. Verify that you are presented with an error: \'Failed! Start date is not before end date\'.
+ 1. Click \'Done\' (or \'OK\' button)
+ 1. Click \'Cancel\' button
+ 1. Verify that \'Event 1 Edited\' has not been edited
+ 1. Highlight \'Event 1 Edited\' and click the \'Edit\' button
+ 1. Change both \'Start time\' and \'End time\' to today\'s date with a valid range
+ 1. Select in Calendar view today\'s date
+ 1. Verify that \'Event 2 Edited\' is now listed
+ 1. Delete events \'Event 1 Edited\'and \'Event 2\' (using native calendar application if neccessary)
+ 1. Close the *calendardemo* application
+ '));
+ },
+
+ event_recurrence: function()
+ {
+ prompt(twiki('---++ Event Recurrence
+
+ 1. Launch the *calendardemo* application
+ 1. Select appropriate backend
+ 1. Verify that no events are listed. If events are listed then
+ 1. Remove the events
+ 1. Close the *calendardemo* application
+ 1. Restart this test case
+ 1. Add events *without* no re-occurance:
+ 1. Select \'Add Event\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Event 1\' |
+ | Repeat | \'None\' |
+ 1. Click \'Save\' button
+ 1. Select \'Add Event\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Event 2\' |
+ | Repeat | \'None\' |
+ 1. Click \'Save\' button
+ 1. Add an event *with* an re-occurance:
+ 1. Select \'Add Event\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Recurring Event\' |
+ | Start time | today\'s date, 30 min in the future |
+ | End time | today\'s date, 60 min in the future |
+ | Repeat | \'Weekly\' |
+ | Repeat period | \'For a number of occurances\' |
+ | Repeat count | \'5\' |
+ 1. Click \'Save\' button
+ 1. Verify that the \'Recurring Event\' is listed in event list
+ 1. Click \'View Month\' button
+ 1. Select in Calendar View a date 7 days from today
+ 1. Verify that \'Recurring Event\' is listed on that day
+ 1. Verify that \'Event 1\' and \'Event 2\' are *not* listed on that day
+ 1. Select in Calendar View a date a futher *21 days* in the future
+ 1. Verify that \'Reacurring Event\' is listed on that day
+ 1. Select in Calendar View a date a futher *14 days* in the future
+ 1. Verify that \'Reacurring Event\' is ont present on that day
+ 1. Select in Calendar View a date *1 year* in the future on the given day of the week for \'Reacurring Event\'
+ 1. Verify that \'Recurring Event\' is not listed on that day
+ 1. Delete events \'Event 1\', \'Event 2\' and \'Recurring Event\' (using native calendar application if neccessary)
+ 1. Close the *calendardemo* application
+ '));
+ },
+
+ add_todo: function()
+ {
+ prompt(twiki('---++ Add Calendar Todo
+
+ 1. Launch the *calendardemo* application
+ 1. Select appropriate backend
+ 1. Verify that no todos are listed. If todos are listed then
+ 1. Remove the todos
+ 1. Close the *calendardemo* application
+ 1. Restart this test case
+ 1. Add a *valid* Todo:
+ 1. Select: \'Add Todo\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter Todo details:
+ | Subject | \'Todo 1\' |
+ | Start time | tomorrow\'s date 08:00 AM |
+ | End time | tomorrow\'s date 04:00 PM |
+ | Priority | \'High\' |
+ | Status | default |
+ | Alarm option | \'30 minutes before\' |
+ 1. Click \'Save\' button
+ 1. Verify that you are presented with the day view for tomorrow and that \'Todo 1\' is listed with start time shown
+ 1. Click \'View Month\' button
+ 1. Verify that you are in the Month View with today\'s date underlined, and that tomorrow\'s date is highlighted in green.
+ 1. Add an *invalid* Todo:
+ 1. Select: \'Add Todo\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter Todo details:
+ | Subject | \'Todo Invalid\' |
+ | Start time | today\'s date 08:00 AM |
+ | End time | yesterday\'s date 04:00 PM |
+ | Priority | \'High\' |
+ | Status | \'In progress\' |
+ | Alarm option | \'5 minutes before\' |
+ 1. Click \'Save\' button
+ 1. Verify that you are presented with an error: \'Failed! Start date is not before due date.\'
+ 1. Click \'Done\' (or \'OK\') button
+ 1. Click \'Cancel\' button
+ 1. Verify that \'Todo Invalid\' is not listed in either today\'s, nor yesterday\'s date.
+ 1. Add a *valid* Todo with later start time:
+ 1. Select: \'Add Todo\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter Todo details:
+ | Subject | \'Todo 2\' |
+ | Start time | tomorrow\'s date 05:00 PM |
+ | End time | tomorrow\'s date 06:00 PM |
+ | Priority | \'Low\' |
+ | Status | default |
+ | Alarm option | \'15 minutes before\' |
+ 1. Click \'Save\' button
+ 1. Verify that \'Todo 1\' and \'Todo 2\' are listed for today\'s date in Day View
+ 1. Click \'View Month\' button
+ 1. Clicking a date 2 days into the future in the Calendar View
+ 1. Add a *valid* Todo:
+ 1. Select: \'Add Todo\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter Todo details:
+ | Subject | \'Todo 3\' |
+ 1. Click \'Save\' button
+ 1. If \'Memory\' backend is not being used
+ 1. Close the *calendardemo* application
+ 1. Launch the *calendardemo* application
+ 1. Select the above mentioned backend again.
+ 1. Verify that today\s date has \'Todo 1\' and \'Todo 2\' listed with correct details
+ 1. Verify that \'Todo 3\' is listed for 2 days in the future
+ 1. Delete events \'Todo 1\', \'Todo 2\' and \'Todo 3\' (using native calendar application if neccessary)
+ 1. Close the *calendardemo* application
+ '));
+ },
+
+ edit_todo: function()
+ {
+ prompt(twiki('---++ Edit Calendar Todo
+
+ 1. Launch the *calendardemo* application
+ 1. Select appropriate backend
+ 1. Verify that no todos are listed. If todos are listed then
+ 1. Remove the todos
+ 1. Close the *calendardemo* application
+ 1. Restart this test case
+ 1. Add a Todo:
+ 1. Select: \'Add Todo\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter Todo details:
+ | Subject | \'Todo 1\' |
+ | Start time | tomorrow\'s date 08:00 AM |
+ | End time | tomorrow\'s date 04:00 PM |
+ | Priority | \'High\' |
+ | Status | default |
+ | Alarm option | \'30 minutes before\' |
+ 1. Click \'Save\' button
+ 1. Add a Todo with later start time:
+ 1. Select: \'Add Todo\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter Todo details:
+ | Subject | \'Todo 2\' |
+ | Start time | tomorrow\'s date 05:00 PM |
+ | End time | tomorrow\'s date 06:00 PM |
+ | Priority | \'Low\' |
+ | Status | default |
+ | Alarm option | \'15 minutes before\' |
+ 1. Click \'Save\' button
+ 1. Add a Todo:
+ 1. Select: \'Add Todo\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter Todo details:
+ | Subject | \'Todo 3\' |
+ | Start time | today\'s date 05:00 PM |
+ | End time | today\'s date 06:00 PM |
+ | Priority | \'Medium\' |
+ | Status | default |
+ | Alarm option | \'5 minutes before\' |
+ 1. Click \'Save\' button
+ 1. Click \'View Month\' button
+ 1. Click todo entry \'Todo 2\'
+ 1. Click \'Edit\' menu entry
+ 1. Enter new Todo details:
+ | Subject | \'Todo 2 Edited\' |
+ | Start time | tomorrow\'s date 02:00 PM |
+ | End time | tomorrow\'s date 03:00 PM |
+ | Priority | \'Medium\' |
+ | Status | default |
+ | Alarm option | \'30 minutes before\' |
+ 1. Click \'Save\' button
+ 1. Verify that todo \'Todo 2 Edited\' exists and has details:
+ | Subject | \'Todo 2 Edited\' |
+ | Start time | tomorrow\'s date 02:00 PM |
+ | End time | tomorrow\'s date 03:00 PM |
+ | Priority | \'Medium\' |
+ | Status | default |
+ | Alarm option | \'30 minutes before\' |
+ 1. Verify that \'Todo 1\' and \'Todo3\' are unchanged
+ 1. Delete events \'Todo 1\', \'Todo 2 Edited\' and \'Todo 3\' (using native calendar application if neccessary)
+ 1. Close the *calendardemo* application
+ '));
+ },
+
+ add_journal: function()
+ {
+ prompt(twiki('---++ Add Journal Entry
+
+ 1. Launch the *calendardemo* application
+ 1. Select appropriate backend
+ 1. Verify that no journal entries are listed. If journal entries are listed then
+ 1. Remove the journal entries
+ 1. Close the *calendardemo* application
+ 1. Restart this test case
+ 1. Verify that the current backend is the best to suit device
+ 1. If platform(backend) does not support Journal entries then skip all steps in this test.
+ 1. Add a Journal entry:
+ 1. Select \'Add Journal\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Journal 1\' |
+ | Time | today\'s date, 08:00 AM |
+ | Alarm | \'30 minutes before\' |
+ 1. Click \'Save\' button
+ 1. Verify that you are presented with the day view for today and that \'Journal 1\' is listed with start time shown
+ 1. Click \'View Month\' button
+ 1. Verify that you are in the Month View with todays date underlined.
+ 1. Add a journal entry for later today:
+ 1. Select \'Add Journal\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Journal 2\' |
+ | Time | today\'s date at 02:00 PM |
+ | Alarm | \'15 minutes before\' |
+ 1. Click \'Save\' button
+ 1. Verify that events \'Journal 1\' and \'Journal 2\' are listed against today\'s date
+ 1. Click \'View Month\' button
+ 1. Verify that events \'Journal 1\' and \'Journal 2\' are listed for today\'s date
+ 1. Add Journal for 2 days in the future:
+ 1. Clicking date 2 days into the future in the Calendar View
+ 1. Select \'Add Journal\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Journal 3\' |
+ | Time | future date, 06:00 PM |
+ | Alarm | \'05 minutes before\' |
+ 1. Click \'Save\' button
+ 1. If \'Memory\' backend is not being used
+ 1. Close the *calendardemo* application
+ 1. Launch the *calendardemo* application
+ 1. Verify that today\'s date has Journal entries \'Journal 1\' and \'Journal 2\' listed with correct details
+ 1. Verify that the day after tomorrow has the Journal entry \'Journal 3\'
+ 1. Delete Journal entries \'Journal 1\', \'Journal 2\', \'Journal 3\' (using native calendar application if neccessary)
+ 1. Close the *calendardemo* application
+ '));
+ },
+
+ edit_journal: function()
+ {
+ prompt(twiki('---++ Edit Journal Entry
+
+ 1. Launch the *calendardemo* application
+ 1. Select appropriate backend
+ 1. Verify that no journal entries are listed. If journal entries are listed then
+ 1. Remove the journal entries
+ 1. Close the *calendardemo* application
+ 1. Restart this test case
+ 1. If platform(backend) does not support Journal entries then skip all steps in this test.
+ 1. Add a Journal entry:
+ 1. Select \'Add Journal\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Journal 1\' |
+ | Time | today\'s date, 08:00 AM |
+ | Alarm | \'30 minutes before\' |
+ 1. Click \'Save\' button
+ 1. Add a journal entry for later today:
+ 1. Select \'Add Journal\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Journal 2\' |
+ | Time | today\'s date at 02:00 PM |
+ | Alarm | \'15 minutes before\' |
+ 1. Click \'Save\' button
+ 1. Add Journal for 2 days in the future:
+ 1. Clicking date 2 days into the future in the Calendar View
+ 1. Select \'Add Journal\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Journal 3\' |
+ | Time | future date, 06:00 PM |
+ | Alarm | \'05 minutes before\' |
+ 1. Click \'Save\' button
+ 1. Click Journal Entry \'Journal 2\'
+ 1. Click \'Edit\' menu entry
+ 1. Enter new details for \'Journal 2\':
+ | Subject | \'Journal 2 Edited\' |
+ | Time | today\'s date at 02:00 PM |
+ | Alarm | \'5 minutes before\' |
+ 1. Click \'Save\' button
+ 1. Verify details of \'Journal 2 Edited\', eg
+ 1. Click \'Edit\' menu entry
+ 1. Verify Journal details seen with:
+ | Subject | \'Journal 2 Edited\' |
+ | Time | today\'s date at 02:00 PM |
+ | Alarm | \'5 minutes before\' |
+ 1. Click \'Cancel\' button
+ 1. Verify that the details of \'Journal 1\' and \'Journal 3\' have not changed
+ 1. Delete Journal entries \'Journal 1\', \'Journal 2 Edited\', \'Journal 3\' (using native calendar application if neccessary)
+ 1. Close the *calendardemo* application
+ '));
+ },
+
+// Candidate for future fully described tests, disable for the moment.
+/*
+ search_items_by_time: function()
+ {
+ prompt(twiki('---++ Search Items By Time
+
+ 1. Launch the *calendardemo* application
+ 1. Access all organizer items corresponding to a particular period. For example, an application that shows all organizer items occurring on the current day.
+ 1. Close the *calendardemo* application
+ '));
+ },
+*/
+
+// Candidate for future fully described tests, disable for the moment.
+/*
+ search_items_any_attribute: function()
+ {
+ prompt(twiki('---++ Search Items Using Any Attribute
+
+ 1. Launch the *calendardemo* application
+ 1. Access organizer items corresponding to one or more attribute values.
+ 1. For example a user may search for all items that occurred January to March 2009, at Brisbane where the description contains \'birthday party\' .
+ 1. Close the *calendardemo* application
+ '));
+ },\'Event 1\'
+ */
+
+// Candidate for future fully described tests, disable for the moment.
+/*
+ online_calendar: function()
+ {
+ prompt(twiki('---++ Search Items Using Any Attribute
+
+ 1. Launch the *calendardemo* application
+ 1. Access organizer items corresponding to one or more attribute values.
+ 1. For example a user may search for all items that occurred January to March 2009, at Brisbane where the description contains \'birthday party\'.
+ 1. Close the *calendardemo* application
+ '));
+ },
+ */
+
+// Candidate for future fully described tests, disable for the moment.
+/*
+ custom_data: function()
+ {
+ prompt(twiki('---++ Custom Data
+
+ 1. Launch the *calendardemo* application
+ 1. Add custom data to an organizer item.
+ 1. For example a travel organizer application may want to add non-standard new fields to an organizer item representing travel information.
+ 1. Close the *calendardemo* application
+ '));
+ },
+ */
+
+// Candidate for future fully described tests, disable for the moment.
+/*
+ multiple_stores: function()
+ {
+ prompt(twiki('---++ Supporting Multiple Stores
+
+ 1. Launch the *calendardemo* application
+ 1. Application may want to choose between the internal calendar store and an online calendar store.
+ 1. It is possible for there to be more than one store on the local device.
+ 1. Close the *calendardemo* application
+ '));
+ },
+ */
+
+// Candidate for future fully described tests, disable for the moment.
+/*
+ change_notification: function()
+ {
+ prompt(twiki('---++ Notifications of Changes in Data
+
+ 1. Launch the *calendardemo* application
+ 1. An application can use the API to be notified of changed in the underlying data.
+ 1. For example an application that shows the coming weeks organizer items would want to be notified when the underlying calendar data changes so it can check if it needs to update the displayed organizer items.
+ 1. Close the *calendardemo* application
+ '));
+ },
+ */
+
+// Candidate for future fully described tests, disable for the moment.
+/*
+ access_control: function()
+ {
+ prompt(twiki('---++ Access Control
+
+ 1. Launch the *calendardemo* application
+ 1. Control who can and who cannot view organizer items.
+ 1. Close the *calendardemo* application
+ '));
+ },
+ */
+
+
+// Candidate for future fully described tests, disable for the moment.
+/*
+ import_vcal: function()
+ {
+ prompt(twiki('---++ Import vCal items
+
+ 1. Launch the *calendardemo* application
+ 1. On app menu, select \'Delete all items\' to insure you are dealing with a pristine calendar
+ 1. On app menu, select \'Import items\', then navigate to a saved instance of an vCal file
+ 1. Click on file
+ 1. Verify that calendar items have populated the dates in the calendar.
+ 1. Close the *calendardemo* application
+ '));
+ }
+ */
+}
+
+/*
+---++ Access Online Calendar Store
+Work with entries in an online organizer item store such as Google Calendar.
+*/
diff --git a/tests/systemtests/sys_qmlcontacts/sys_qmlcontacts.pro b/tests/systemtests/sys_qmlcontacts/sys_qmlcontacts.pro
new file mode 100644
index 0000000000..1ea640942e
--- /dev/null
+++ b/tests/systemtests/sys_qmlcontacts/sys_qmlcontacts.pro
@@ -0,0 +1,3 @@
+TEMPLATE = subdirs
+CONFIG += systemtest
+SOURCES = sys_qmlcontacts.qtt
diff --git a/tests/systemtests/sys_qmlcontacts/sys_qmlcontacts.qtt b/tests/systemtests/sys_qmlcontacts/sys_qmlcontacts.qtt
new file mode 100644
index 0000000000..ca0f23f4fe
--- /dev/null
+++ b/tests/systemtests/sys_qmlcontacts/sys_qmlcontacts.qtt
@@ -0,0 +1,206 @@
+
+//TESTED_COMPONENT=src/contacts
+
+// make it simple to change the name of test application later on
+function startTestApp()
+{
+ startApplication('qmlcontacts');
+}
+
+// create a re-usable contact set
+function exampleContactSet()
+{
+ return [
+ {name:'Mr. Andy Clark',
+ firstName:'Andy',
+ title:'Engineer',
+ organization:'Example',
+ department:'',
+ phone:'07-2342322',
+ email:'andy@example.com',
+ address:'',
+ birthday:'1/01/4500',
+ avatar:'http://qt.nokia.com/logo.png'},
+ {name:'Mr. Bob Green',
+ firstName:'Bob',
+ title:'Engineer',
+ organization:'Example',
+ phone:'07-3242325',
+ email:'bob@example.com',
+ address:'',
+ birthday:'1/01/4500',
+ },
+ {
+ name:'Mr. Charles Brows',
+ firstName:'Charles',
+ title:'Engineer',
+ organization:'Example',
+ department:'',
+ phone:'32324534233',
+ email:'charles@example.com',
+ address:'',
+ birthday:'1/01/4500'
+ },
+ {
+ name:'Mr. David Edie',
+ firstName:'David',
+ title:'Manager',
+ organization:'Example',
+ department:'',
+ phone:'(07) 3245-2323',
+ email:'david@example.com',
+ address:'',
+ birthday:'1/01/4500'
+ },
+ {
+ name:'Mrs. Carol Eden',
+ firstName:'Carol',
+ title:'Manager',
+ organization:'Example',
+ department:'',
+ phone:'2323242',
+ email:'carol@example.com',
+ address:'',
+ birthday:'1/01/4500'
+ },
+ {
+ name:'Mr. Bill Chilton',
+ firstName:'Bill',
+ title:'Manager',
+ organization:'Example',
+ department:'',
+ phone:'564412232',
+ email:'bill@example.com',
+ address:'',
+ birthday:'1/01/4500'
+ },
+ {
+ name:'Ms. Aaron Gates',
+ firstName:'Aaron',
+ title:'Engineer',
+ organization:'Example',
+ department:'',
+ phone:'33333',
+ email:'aaron@example.com',
+ address:'',
+ birthday:'1/01/4500'
+ },
+ {
+ name:'Mr. Jason Black',
+ firstName:'Jason',
+ title:'Engineer',
+ organization:'Example',
+ department:'',
+ phone:'33333333333',
+ email:'jason@example.com',
+ address:'',
+ birthday:'1/01/4500'
+ },
+ {
+ name:'Mr. Alexander Mcdonald',
+ firstName:'Alexander',
+ title:'Engineer',
+ organization:'Example',
+ department:'',
+ phone:'111111111',
+ email:'alex@example.com',
+ address:'',
+ birthday:'1/01/4500'
+ }
+ ]
+}
+
+// given a contact object check its details
+function checkContact(contact)
+{
+ select(contact.firstName);
+ select('More..');
+ compare('Contact', getText('Type'));
+ compare(contact.name, getText('DisplayLabel'));
+ compare(contact.email, getText('EmailAddress'));
+ compare(contact.name, getText('Name'));
+ compare(contact.department, getText('Department'));
+ compare(contact.phone, getText('PhoneNumber'));
+ compare(contact.avatar, getText('Avatar'));
+ select('Back');
+}
+
+testcase = {
+
+ // prove that the test application starts before anything else is tested.
+ Run_Test_Application: function()
+ {
+ startTestApp();
+ if (!runAsManualTest()){
+ // ensure we have a widget to work with, dump its details
+ print('Focus widget is' + focusWidget());
+ }else{
+ prompt('Verify test application started and closed without issue');
+ }
+ },
+
+
+ Check_Contact_List_data : {
+ ContactSet : [ exampleContactSet() ]
+ },
+
+ // verify that overview of contact names is correct
+ Check_Contact_List: function(contactSet)
+ {
+ startTestApp();
+ for (var index=0; index < contactSet.length; index++){
+ // note the contact list should be the focus widget
+ select(contactSet[index].firstName);
+ }
+ },
+
+
+ Expand_A_Contact_data : {
+ ContactSet : [ exampleContactSet() ]
+ },
+
+ // verify that when selecting a contact its summary is shown
+ Expand_A_Contact: function(contactSet)
+ {
+ startTestApp();
+ for (var index = 0; index < 3; index++){
+ prompt("Verify that no details for " + contactSet[index].firstName +' is seen');
+ select(contactSet[index].firstName);
+ verify(getValue().contains(contactSet[index].name), 'Verify contact summary for ' + contactSet[index].name);
+ verify(getLabels().contains('More...'), 'Verify \'More..\' button is present');
+ }
+ },
+
+
+ Show_All_Contact_Detail_data : {
+ ContactSet : [ exampleContactSet() ]
+ },
+
+ // verify that the details page for contacts can be seen
+ Show_All_Contact_Detail : function(contactSet)
+ {
+ startTestApp();
+ for (var index = 0; index < 3; index++){
+ select(contactSet[index].firstName);
+ select('More..')
+ verify(getLabels().contains('DisplayLabel'), 'Verify contact details are shown for ' + contactSet[index].name);
+ select('Back');
+ }
+ },
+
+
+ Check_Contact_Details_data :{
+ ContactSet : [ exampleContactSet() ]
+ },
+
+ // check that each contact has the details expected
+ Check_Contact_Details: function(contactSet)
+ {
+ startTestApp();
+ for (var index=0; index < contactSet.length; index++){
+ checkContact(contactSet[index]);
+ }
+ }
+
+} // end of testcase
+
diff --git a/tests/systemtests/sys_sensors/sys_sensors.pro b/tests/systemtests/sys_sensors/sys_sensors.pro
new file mode 100644
index 0000000000..ac5b996da5
--- /dev/null
+++ b/tests/systemtests/sys_sensors/sys_sensors.pro
@@ -0,0 +1,11 @@
+CONFIG+=systemtest
+SOURCES=sys_sensors.qtt
+
+unix:!symbian {
+ maemo5 {
+ target.path = /opt/usr/bin
+ } else {
+ target.path = /usr/local/bin
+ }
+ INSTALLS += target
+}
diff --git a/tests/systemtests/sys_sensors/sys_sensors.qtt b/tests/systemtests/sys_sensors/sys_sensors.qtt
new file mode 100644
index 0000000000..f5b96403a3
--- /dev/null
+++ b/tests/systemtests/sys_sensors/sys_sensors.qtt
@@ -0,0 +1,294 @@
+****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//TESTED_COMPONENT=src/sensors
+
+testcase = {
+
+ Generic_Rotation : function()
+ {
+ prompt(twiki('*Verify Generic Rotation values*
+
+ | *Step* | *Verification* |
+ | Launch *Sensor Explorer* application | |
+ | Select Generic Rotation from the sensors list | |
+ | In *Sensor Properties* click *Start* | |
+ | Position device flat on its back with screen showing upwards | Verify that values for x, y and z gravitate around zero* |
+ | Rotate device on x axis toward user | Verify that x axis value increases from 0 all the way to 90 when held straight up |
+ | Keep rotating device past vertical position | Verify that x axis value decrees from 90 down towards to 0 when held upside down (screen towards ground) |
+ | Return device flat on its back with screen showing upwards | Verify that value for x has returned to zero** |
+ | Rotate device on y axis to right side | Verify that y axis value increases from 0 all the way to 90 when held straight up |
+ | Keep rotating device past vertical position | Verify that y axis value keeps increasing from 90 towards 180 |
+ | Rotate device on y axis until upside down - screen towards ground | Verify that y axis value gravitates around and switches between 180/-180 |
+ | Keep rotating device on y axis past inverted horizontal | Verify that y axis value rises from -180 towards 0 |
+ | In this test, z values will always be 0 | |
+
+Notes:
+ * * Small variations in value due to sensor sensitivity and large precision employed
+ * ** On some Maemo5 devices, due to camera housing, device is not flat when resting on hard surface, so small variation will be present
+ '));
+ },
+
+ Sym_Rotation : function()
+ {
+ prompt(twiki('*Verify Sym Rotation values*
+
+ | *Step* | *Verification* |
+ | Launch *Sensor Explorer* application | |
+ | Select Sym Rotation from the sensors list | |
+ | In *Sensor Properties* click *Start* | |
+ | Position device flat on its back with screen showing upwards | Verify that values for x, y and z gravitate around zero* |
+ | Rotate device on x axis toward user | Verify that x axis value increases from 0 all the way to 90 when held straight up |
+ | Keep rotating device past vertical position | Verify that x axis value decrees from 90 down towards to 0 when held upside down (screen towards ground) |
+ | Return device flat on its back with screen showing upwards | Verify that value for x has returned to zero** |
+ | Rotate device on y axis to right side | Verify that y axis value increases from 0 all the way to 90 when held straight up |
+ | Keep rotating device past vertical position | Verify that y axis value keeps increasing from 90 towards 180 |
+ | Rotate device on y axis until upside down - screen towards ground | Verify that y axis value gravitates around and switches between 180/-180 |
+ | Keep rotating device on y axis past inverted horizontal | Verify that y axis value rises from -180 towards 0 |
+ | In this test, z values will always be 0 | |
+
+Notes:
+ * * Small variations in value due to sensor sensitivity and large precision employed
+ * ** On some Maemo5 devices, due to camera housing, device is not flat when resting on hard surface, so small variation will be present
+ '));
+ },
+
+
+ Sym_Proximity_values: function()
+ {
+ prompt(twiki('*Verify Sym Proximity values*
+
+ *Note: On Maemo5 devices, Proximity is a bool value
+
+ | *Step* | *Verification* |
+ | Launch *Sensor Explorer* application | |
+ | Select Proximity from the sensors list | |
+ | In *Sensor Properties* click *Start* | Verify that the reading for Close is False |
+ |With an open palm of the hand, approach the device where the proximity sensor is located | Verify that the value of Index 0 changes to True once close enough to the device |
+ | Move hand away from device | Verify that the value of Close changes to False once again one far enough from device |
+ '));
+ },
+
+
+ Sym_Accelerometer: function()
+ {
+ prompt(twiki('*Verify Sym Accelerometer*
+
+ | *Step* | *Verification* |
+ | Launch *Sensor Explorer* application | |
+ | Select Accelerometer from the sensors list | |
+ | Position device flat on a suffice | |
+ | In *Sensor Properties* click *Start* | Verify that the reading for x and y values are gravitating around zero and that z is around 9.8 |
+ | Lift device on to its x axis | Verify that the value of x changes 0 to 9.8, and that z changes from 9.8 to 0 while y remains 0 |
+ | Lift device on to its y axis | Verify that the value of y changes to 9.8, x changes to 0, while z remains 0 |
+ '));
+ },
+
+
+ Sym_Ambient_Light: function()
+ {
+ prompt(twiki('*Verify Sym Ambient Light Sensor*
+
+
+ | *Step* | *Verification* |
+ | Launch *Sensor Explorer* application | |
+ | Select Ambient Light from the sensors list | |
+ | In *Sensor Properties* click *Start* | Verify that the reading for Light Level is Light |
+ | With the thumb of the left hand, cover the light sensor on the device* | Verify that the value of Index 0 changes from Light through Twilight to Dark |
+ | Move hand away from device | Verify that the value of Light Level changes from Dark through Twilight to Light |
+ | Take torch and point at face of device | Verify that the value of Light Level changes from Light to Bright |
+ | Move torch in on the light sensor | Verify that the value of Light Level changes from Bright to Sunny |
+ | Move torch away from device | Verify that the value of Light Level changes from Sunny back to Light |
+
+ Note:
+ * Hand held torch or other light source required for this test
+ * * Located at the top-left of the device
+ '));
+ },
+
+ Freefall_Detection : function()
+ {
+ prompt(twiki('*Verify Free Fall Detection*
+
+ | *Step* | *Verification* |
+ | Launch *Small Sensors* application | |
+ | From menu, select Free Fall | |
+ | Click on Setup free fall trigger | |
+ | Drop device from arbitrary hight * (within reason, preserving device integrity) | Verify that the value of Free fall time and Hight reflect the the actual test parameters |
+
+Note:
+ * * With every intention of catching device before it hits the ground
+ '));
+ },
+
+
+ Small_Sensor_Orientation: function()
+ {
+ prompt(twiki('*Verify Sensor Orientation*
+
+ | *Step* | *Verification* |
+ | Launch *Small Sensors* application | |
+ | From menu, select *Orientation* | |
+ | Position device flat down on surface | Verify that device recognizes that it is *Face Up*, all sliders should be in middle position |
+ | Lift device on x axis to vertical | Verify that device recognizes that it is *Top Up*, x slider should be in right position and x = 90 |
+ | Return device to the starting position | Verify that device recognizes that it is *Face Up*, all sliders should return to the middle position and all values gravitate towards 0 |
+ | Lift device on y axis to vertical | Verify that device recognizes that it is *Left Up*, y slider should be in right position and y = 90 |
+ | Invert device on x axis to vertical | Verify that device recognizes that it is *Top Down*, x slider should be in left position and x = -90 |
+ | Invert device on y axis to vertical | Verify that device recognizes that it is *Right Up*, y slider should be in left position and y = -90 |
+ | Turn device upside down (face down) | Verify that device recognizes that it is *Face Down*, y slider should be changing from extreme right to extreme left, and y = -180/+ 180 |
+ | Return device to the starting position | Verify that device recognizes that it is *Face Up*, all sliders should be in middle position |
+ | On Harmattan/Meggo devices, z will not change during this test given there is hardware support, this doesn't apply to Symbian devices and N900. | |
+ '));
+ },
+
+
+ Small_Sensor_Acceleration : function()
+ {
+ prompt(twiki('*Verify Sensor Acceleration*
+
+ | *Step* | *Verification* |
+ | Launch *Small Sensors* application | |
+ | Position device flat on working surface | Verify the values displayed are close to: x=0, y=0, z=9.8 |
+ | Position device flat on its y axis | Verify the values displayed are close to: x=0, y=9.8, z=0 |
+ | Position device flat on its x axis | Verify the values displayed are close to: x=9.8, y=0, z=0 |
+ | Position device flat on its z axis | Verify the values displayed are close to: x=0, y=0, z=9.8 |
+ '));
+ }
+
+ Sym_Tap : function()
+ {
+ prompt(twiki('*Verify Sym Tap Sensor*
+
+ | *Step* | *Verification* |
+ | Launch *bluewheel* application | |
+ | select *Sensors* and click on *sensor explorer* ||
+ | select *sym.tap* as sensor type ||
+ | click on *start* button ||
+ | select *reading properties* tab ||
+ | double tap on the device | Verify the values displayed are changed |
+ '));
+ }
+
+ Sym_Orientation : function()
+ {
+ prompt(twiki('*Verify Sym Orientation Sensor*
+
+ | *Step* | *Verification* |
+ | Launch *bluewheel* application | |
+ | select *Sensors* and click on *sensor explorer* ||
+ | select *sym.orientation* as sensor type ||
+ | click on *start* button ||
+ | select *reading properties* tab ||
+ | slowly rotate the device | Verify the values displayed are changed accordingly |
+ '));
+ }
+
+ Sym_MagnetoMeter : function()
+ {
+ prompt(twiki('*Verify Sym Magneto Meter*
+
+ | *Step* | *Verification* |
+ | Launch *bluewheel* application | |
+ | select *Sensors* and click on *sensor explorer* ||
+ | select *sym.magnetometer* as sensor type ||
+ | click on *start* button ||
+ | select *reading properties* tab ||
+ | put the device closer to a iron or steel object | Verify the values displayed are changed accordingly |
+ '));
+ }
+
+ Sym_Compass : function()
+ {
+ prompt(twiki('*Verify Sym Compass Sensor*
+
+ | *Step* | *Verification* |
+ | Launch *bluewheel* application | |
+ | select *Sensors* and click on *sensor explorer* ||
+ | select *sym.compass* as sensor type ||
+ | click on *start* button ||
+ | select *reading properties* tab ||
+ | slowly turn the device around | Verify the values displayed are changed accordingly |
+ '));
+ }
+
+ Sym_Lux : function()
+ {
+ prompt(twiki('*Verify Sym Compass Sensor*
+
+ | *Step* | *Verification* |
+ | Launch *bluewheel* application | |
+ | select *Sensors* and click on *sensor explorer* ||
+ | select *sym.luxsensor* as sensor type ||
+ | click on *start* button ||
+ | select *reading properties* tab ||
+ | change the luminance value around the device | verify the values displayed are changed accordingly |
+ '));
+ }
+
+ Sym_Dynamic : function()
+ {
+ prompt(twiki('*Verify Sym Compass Sensor*
+
+ | *Step* | *Verification* |
+ | Launch *bluewheel* application | |
+ | register a dynamic sensor device ||
+ | select *Sensors* and click on *sensor explorer* | verify the dynamic sensor appears in the sensor list|
+ | click on *start* button ||
+ | select *reading properties* tab ||
+ | change the sensor value depends on the sensor type | verify the values displayed are changed accordingly |
+ '));
+ }
+
+ Sym_Gyroscope : function()
+ {
+ prompt(twiki('*Verify Sym Compass Sensor*
+
+ | *Step* | *Verification* |
+ | Launch *bluewheel* application | |
+ | select *Sensors* and click on *sensor explorer* ||
+ | select *sym.gyroscope* as sensor type ||
+ | click on *start* button ||
+ | select *reading properties* tab ||
+ | slowly turn and move the device around | verify the values displayed are changed accordingly |
+ '));
+ }
+
+}
diff --git a/tests/systemtests/sys_systeminfo/sys_systeminfo.pro b/tests/systemtests/sys_systeminfo/sys_systeminfo.pro
new file mode 100644
index 0000000000..dc727dd2fb
--- /dev/null
+++ b/tests/systemtests/sys_systeminfo/sys_systeminfo.pro
@@ -0,0 +1,3 @@
+TEMPLATE = subdirs
+CONFIG += systemtest
+SOURCES = sys_systeminfo.qtt
diff --git a/tests/systemtests/sys_systeminfo/sys_systeminfo.qtt b/tests/systemtests/sys_systeminfo/sys_systeminfo.qtt
new file mode 100644
index 0000000000..8617262af5
--- /dev/null
+++ b/tests/systemtests/sys_systeminfo/sys_systeminfo.qtt
@@ -0,0 +1,161 @@
+****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//TESTED_COMPONENT=src/systeminfo
+
+testcase = {
+
+ General_Tab: function()
+ {
+ prompt(twiki('*Verify General Tab Information
+
+ 1 Start qsysinfo application
+ 1 Select *General* tab
+ 1 Verify that *Current Language* matches the expected language value
+ 1 Verify that *Current Country* matches the expected country value
+ 1 Verify that the *Available Languages* list the expected languages for
+ '));
+ },
+
+ General2_Tab: function()
+ {
+ prompt(twiki('*Verify General 2 Tab Information
+
+ 1 Start qsysinfo application
+ 1 Select *General 2* tab
+ 1 For each choice in *Version* QComboBox verify that the correct value is displayed ( on right)
+ 1 For each choice in the *Feature supported* *Version* QComboBox verify that the correct value is displayed ( on right)
+ '));
+ },
+
+ Device_Tab: function()
+ {
+ prompt(twiki('*Verify Device Tab Information
+ 1 Start qsysinfo application
+ 1 Select *Device* tab
+ 1 If target is not a phone Verify that *Product* value is correct and skip the rest of this test
+ 1 Verify that the *IMEI* value is correct
+ 1 Verify that the *IMSEI* value is correct
+ 1 Verify that the *Manufacturer* value is correct
+ 1 Verify that the *Model* value is correct
+ 1 Verify that the *Product* value is correct
+ '));
+ },
+
+ Device2_Tab: function()
+ {
+ prompt(twiki('*Verify Device 2 Tab Information
+
+ 1 Start qsysinfo application
+ 1 If target is not a phone Select *Device* tab, Verify that *Input method* value is correct and skip the rest of this test
+ 1 Select *Device 2* tab
+ 1 Verify that the *Device Lock* values is correct
+ 1 Verify that the *Sim status* values is correct
+ 1 Verify that the *Currrent Profile* value is correct
+ 1 If target is a phone, using the targets settings menu change the current profile
+ 1 If target is a phone, verify that the *Currrent Profile* value has changed correctly
+ 1 Verify that the *Input method* value is correct
+ 1 If target is a phone, using the targets settings menu change the input method
+ 1 If target is a phone, verify that the *Input method* value has changed correctly
+ 1 Verify that the *Bluetooth* value is correct
+ 1 If target is a phone, using the targets settings menu toggle the enabling of Bluetooth
+ 1 If target is a phone, verify that the *Input method* value has changed correctly
+ '));
+ },
+
+ Device3_Tab: function()
+ {
+ prompt(twiki('*Verify Device 3 Tab Information
+
+ 1 Start qsysinfo application
+ 1 If target is not a phone Verify that *Charging Status* indicates *Wall Power* and skip the rest of this test
+ 1 If target is a phone Select *Device 3* tab
+ 1 Connect/disconnect the phone fron its charger
+ 1 Verify that the charging status has change correctly
+ '));
+
+ },
+
+ Display_Tab: function()
+ {
+ prompt(twiki('*Verify Display Tab Information
+
+ 1 Start qsysinfo application
+ 1 Select *Display* tab
+ 1 Verify the *Brightness* vaue is correct
+ 1 Verify the *Color Depth* vaue is correct
+ '));
+ },
+
+ Storage_Tab: function()
+ {
+ prompt(twiki('*Verify Storage Tab Information
+
+ 1 Start qsysinfo application
+ 1 Select *Storage* tab
+ 1 Verify that all expected file system are listed in the table corrected
+ '));
+ },
+
+ Network_Tab: function()
+ {
+ prompt(twiki('*Verify Device 2 Tab Information
+
+ 1 Start qsysinfo application
+ 1 Select *Storage* tab
+ 1 Verify that all expected file system are listed in the table corrected
+ '));
+ },
+
+ Network2_Tab: function()
+ {
+ },
+
+ Network3_Tab: function()
+ {
+ },
+
+ ScreenSaver_Tab: function()
+ {
+ },
+
+} // end of testcase
+
diff --git a/tests/systemtests/sys_tactilefeedback/sys_tactilefeedback.pro b/tests/systemtests/sys_tactilefeedback/sys_tactilefeedback.pro
new file mode 100644
index 0000000000..fdc4b5cf32
--- /dev/null
+++ b/tests/systemtests/sys_tactilefeedback/sys_tactilefeedback.pro
@@ -0,0 +1,11 @@
+SOURCES=sys_tactilefeedback.qtt
+CONFIG+=systemtest
+
+unix:!symbian {
+ maemo5 {
+ target.path = /opt/usr/bin
+ } else {
+ target.path = /usr/local/bin
+ }
+ INSTALLS += target
+}
diff --git a/tests/systemtests/sys_tactilefeedback/sys_tactilefeedback.qtt b/tests/systemtests/sys_tactilefeedback/sys_tactilefeedback.qtt
new file mode 100644
index 0000000000..c3756feed3
--- /dev/null
+++ b/tests/systemtests/sys_tactilefeedback/sys_tactilefeedback.qtt
@@ -0,0 +1,103 @@
+****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//TESTED_COMPONENT=src/feedback
+
+testcase = {
+
+ initTestCase: function()
+ {
+ testcase.qtuitest_platform = getLocalEnv("TESTPLATFORM");
+ if (!checkPlatform(testcase.qtuitest_platform)){
+ fail("TESTPLATFORM "+ testcase.qtuitest_platform +" not valid");
+ }
+ if (testcase.platform == "linux" || testcase.platform == "mac") {
+ testcase.platform = "unix";
+ }
+ },
+
+ user_interface_response: function() {
+ startApplication("hapticsquare");
+ select("Click");
+ prompt("Verify the device emits a short, light vibe");
+ select("Rumble");
+ prompt("Verify the device emits a long vibe that increases in intensity");
+ },
+
+ gameplay_feedback: function() {
+ prompt("Verify the QML snake game vibrates the device slightly when consuming yellow points.");
+ }
+}
+
+function checkPlatform(platform)
+{
+ if (platform == undefined){
+ return false;
+ }
+ if (platform.contains("S60") || platform.contains("Symbian")) {
+ testcase.platform = "symbian";
+ return true;
+ } else if (platform.contains("maemo")) {
+ testcase.platform = "maemo";
+ } else if (platform.contains("linux") || platform.contains("mac")) {
+ testcase.platform = "unix";
+ return true;
+ } else if (platform.contains("windows")) {
+ testcase.platform = "windows";
+ return true;
+ } else if (platform.contains("wince")) {
+ testcase.platform = "wince";
+ return true;
+ }
+ return false;
+}
+
+function getLocalEnv(name)
+{
+ var env = QProcess.systemEnvironment();
+ var re = new RegExp("^" + name + "=(.*)$");
+ for (var i=0; i<env.length; ++i) {
+ var res = env[i].match(re);
+ if (res != null) {
+ return res[1];
+ }
+ }
+}
diff --git a/tests/systemtests/sys_telephony/sys_telephony.pro b/tests/systemtests/sys_telephony/sys_telephony.pro
new file mode 100644
index 0000000000..9831bcc805
--- /dev/null
+++ b/tests/systemtests/sys_telephony/sys_telephony.pro
@@ -0,0 +1,11 @@
+SOURCES=sys_telephony.qtt
+CONFIG+=systemtest
+
+unix:!symbian {
+ maemo5 {
+ target.path = /opt/usr/bin
+ } else {
+ target.path = /usr/local/bin
+ }
+ INSTALLS += target
+}
diff --git a/tests/systemtests/sys_telephony/sys_telephony.qtt b/tests/systemtests/sys_telephony/sys_telephony.qtt
new file mode 100644
index 0000000000..ffe33dbb06
--- /dev/null
+++ b/tests/systemtests/sys_telephony/sys_telephony.qtt
@@ -0,0 +1,92 @@
+****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//TESTED_COMPONENT=src/telephony
+
+testcase = {
+ // Under construction
+ initTestCase: {
+ // if qtmobility.version < 1.1
+ // skip("Telephony exists only for Qt Mobility 1.1 and greater"
+ },
+
+ current_state_data: {
+ nocall:["Do nothing", "there is no call shown"],
+ ringing:["Call another device but do not answer", "callmonitor displays 'ringing'"],
+ inprogress:["Call another device and answer", "callmonitor displays 'call in progress'"],
+ inprogress:["Call another device, answer and place on hold", "callmonitor displays 'call on hold'"]
+ },
+
+ current_state: function(action, result) {
+ var prompttext = "Start callmonitor\n" + action + "\n" + "Verify that " +result;
+ prompt(twiki(prompttext));
+ },
+
+ notified_of_status_change: function() {
+ prompt("Start callmonitor
+Call the device from a secondary device
+Verify that the callmonitor shows incoming call
+Answer the call
+Verify that the callmonitor changes the status to connected
+Set the call to held
+Verify that the callmonitor changes the status to on hold
+Terminate the call on the secondary device
+Verify that the callmonitor changes the status to terminated");
+ },
+
+ current_call_information: function() {
+ prompt("Start callmonitor
+Call the device from a secondary device
+Verify that the callmonitor shows incoming call
+Answer the call
+Verify that the callmonitor changes the status to connected
+Verify that the call type shows as 'Voice' and the source phone number matches that of the calling device");
+ },
+
+ notified_of_list_change: function() {
+ prompt("Verify the callmonitor gets a notification on a change of list of calls.");
+ },
+
+ query_the_open_calls: function() {
+ prompt("Verify the callmonitor can query open calls at any given time.");
+ }
+
+}
diff --git a/tests/systemtests/sys_versit/sys_versit.pro b/tests/systemtests/sys_versit/sys_versit.pro
new file mode 100644
index 0000000000..cc01cbe2e9
--- /dev/null
+++ b/tests/systemtests/sys_versit/sys_versit.pro
@@ -0,0 +1,11 @@
+SOURCES=sys_versit.qtt
+CONFIG+=systemtest
+
+unix:!symbian {
+ maemo5 {
+ target.path = /opt/usr/bin
+ } else {
+ target.path = /usr/local/bin
+ }
+ INSTALLS += target
+}
diff --git a/tests/systemtests/sys_versit/sys_versit.qtt b/tests/systemtests/sys_versit/sys_versit.qtt
new file mode 100644
index 0000000000..f6155a3345
--- /dev/null
+++ b/tests/systemtests/sys_versit/sys_versit.qtt
@@ -0,0 +1,174 @@
+****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//TESTED_COMPONENT=src/versit
+
+// helper function re :contact actions may be in a separate "Contacts menu"
+function contactsMenuItem(menuText)
+{
+ var menuEntries = getValue(menuBar()).toString().split("\n");
+ var index = 0;
+ var separateMenu = false; // optimize number of calls to indexOf
+
+ for (index = 0; index < menuEntries.length; index++){
+ if (!separateMenu && menuEntries[index].indexOf("&Contacts") >= 0){
+ separateMenu = true;
+ menuText = "&Contacts/" + menuText;
+ }
+ if (menuEntries[index] == menuText)
+ return menuText;
+ }
+
+ return undefined;
+
+}
+
+function importContactsMenu() {
+ return contactsMenuItem("&Import contacts...");
+}
+
+function exportVCardContactsMenu() {
+ return contactsMenuItem("Ex&port contacts...");
+}
+
+var checkImportedVCardContactData = new Array(
+ ["John Smith", "+123456", "John.Smith@SmithsComputerServices.com", "1/21 Anywhere St", "BAT"],
+ ["Bill Smith", "+9876", "Bill.Smith@SmithsComputerServices.com", "2/21 Anywhere St", "BAT"]
+);
+
+testcase = {
+
+ importVCardContacts_data : {
+ vCard1 : ["testdata/testimport1.vcf"]
+ },
+
+ importVCardContacts: function(vCardFile) {
+
+ if (!runAsManualTest()){
+ startApplication("samplephonebook");
+ var menuItem = importContactsMenu();
+ if (menuItem == undefined)
+ skip("Versit support not enabled", SkipAll);
+
+ select(menuItem, menuBar());
+
+
+ enter(vCardFile, "File name:");
+ // need to accept entry due to autocompletion
+ keyClick(Qt.Key_Enter);
+ // verify the contacts
+ for (var contactIndex=0; contactIndex < checkImportedVCardContactData.length;contactIndex++){
+ var contactList = findWidget( { className: "QListWidget" } );
+ select(checkImportedVCardContactData[contactIndex][0], contactList[0]);
+ select("&Edit");
+ compare(getText("Name"), checkImportedVCardContactData[contactIndex][0]);
+ compare(getText("Phone"), checkImportedVCardContactData[contactIndex][1]);
+ compare(getText("Email"), checkImportedVCardContactData[contactIndex][2]);
+ compare(getText("Address"), checkImportedVCardContactData[contactIndex][3]);
+ prompt("Verify that the Avatar looks like the word *BAT*");
+ select("Cancel");
+ }
+
+ } else {
+ var promptText = "| *Name* | *Phone Number* | *Email* | *Address* | *Avatar* |\n";
+ for (var contactIndex=0; contactIndex < checkImportedVCardContactData.length;contactIndex++){
+ for (var contactDataIndex=0; contactDataIndex < checkImportedVCardContactData[0].length; contactDataIndex++){
+ promptText += "|" + checkImportedVCardContactData[contactIndex][contactDataIndex];
+ }
+ promptText += "|\n";
+ }
+
+ prompt(twiki('---+++ Verify Can Import vCard Contacts
+
+ 1. Launch application *samplephonebook*
+ 1. If =Import Contacts...= menu entry is missing skip this test
+ 1. Select the =Import Contacts...= menu entry
+ 1. Enter the vCard file name of : *' + vCardFile + '*
+ 1. Accept the value for vCard file (close file selection dialog)
+ 1. Verify that no errors are present on screen
+ 1. Verify the imported contacts :\n' + promptText + '
+ '));
+ }
+
+
+ },
+
+
+ exportVCardContacts_data : {
+ NameSet1 : ["testdata/contacts.vcf", "FN:John Smith", "FN:Bill Smith"]
+ },
+
+ /* Requirement : Verify contact export*/
+ /* If versit suport is present test it */
+ exportVCardContacts: function(vCardFile, name1, name2)
+ {
+ if (!runAsManualTest()){
+ startApplication("samplephonebook");
+ var menuItem = exportVCardContactsMenu();
+ if (menuItem == undefined)
+ skip("Versit support not enabled", SkipAll);
+
+ select(menuItem, menuBar());
+
+ enter(vCardFile, "File name:");
+ // need to accept entry due to autocompletion
+ keyClick(Qt.Key_Enter);
+ var contactVCFData = getData(vCardFile);
+ if (!(contactVCFData.indexOf(name1)
+ && contactVCFData.indexOf(name2))) {
+ print(".vcf contains:" + contactVCFData);
+ deletePath(contactsVCFFile);
+ fail("Did not find in .vcf:" + name1 + "," + name2);
+ }
+ deletePath(vCardFile);
+ }else{
+ prompt(twiki('---+++ Verify Exported vCard Contacts
+
+ 1. Launch application *samplephonebook*
+ 1. If =Export Contacts...= menu entry is missing skip this test
+ 1. Select the =Export Contacts...= menu entry
+ 1. Enter name of contacts vCard as *' + vCardFile + '*
+ 1. Verify that *' + vCardFile + '* contains *' + name1 + '* and *' + name2 + '*
+ '));
+ }
+
+ }
+}
diff --git a/tests/systemtests/sys_versit/testdata/testimport1.vcf b/tests/systemtests/sys_versit/testdata/testimport1.vcf
new file mode 100644
index 0000000000..514e01f0f5
--- /dev/null
+++ b/tests/systemtests/sys_versit/testdata/testimport1.vcf
@@ -0,0 +1,65 @@
+BEGIN:VCARD
+VERSION:2.1
+N:John;Smith
+FN:John Smith
+ORG:Smiths Computer Services.
+TITLE:Computer Technician
+EMAIL:John.Smith@SmithsComputerServices.com
+ADR;WORK;DOM:;Your Office;1/21 Anywhere St;Any Town;Global;12345;Any Country
+X-IRMC_LUID:0002000002A7
+PHOTO;ENCODING=BASE64;TYPE=GIF:
+ R0lGODlhIAAgAOf/AAAAAFUAAIAAAKoAANUAAP8AAAArAFUrAIArAKorANUrAP8rAABVAFVVAIBV
+ AKpVANVVAP9VAACAAFWAAICAAKqAANWAAP+AAACqAFWqAICqAKqqANWqAP+qAADVAFXVAIDVAKrV
+ ANXVAP/VAAD/AFX/AID/AKr/ANX/AP//AAAAVVUAVYAAVaoAVdUAVf8AVQArVVUrVYArVaorVdUr
+ Vf8rVQBVVVVVVYBVVapVVdVVVf9VVQCAVVWAVYCAVaqAVdWAVf+AVQCqVVWqVYCqVaqqVdWqVf+q
+ VQDVVVXVVYDVVarVVdXVVf/VVQD/VVX/VYD/Var/VdX/Vf//VQAAgFUAgIAAgKoAgNUAgP8AgAAr
+ gFUrgIArgKorgNUrgP8rgABVgFVVgIBVgKpVgNVVgP9VgACAgFWAgICAgKqAgNWAgP+AgACqgFWq
+ gICqgKqqgNWqgP+qgADVgFXVgIDVgKrVgNXVgP/VgAD/gFX/gID/gKr/gNX/gP//gAAAqlUAqoAA
+ qqoAqtUAqv8AqgArqlUrqoArqqorqtUrqv8rqgBVqlVVqoBVqqpVqtVVqv9VqgCAqlWAqoCAqqqA
+ qtWAqv+AqgCqqlWqqoCqqqqqqtWqqv+qqgDVqlXVqoDVqqrVqtXVqv/VqgD/qlX/qoD/qqr/qtX/
+ qv//qgAA1VUA1YAA1aoA1dUA1f8A1QAr1VUr1YAr1aor1dUr1f8r1QBV1VVV1YBV1apV1dVV1f9V
+ 1QCA1VWA1YCA1aqA1dWA1f+A1QCq1VWq1YCq1aqq1dWq1f+q1QDV1VXV1YDV1arV1dXV1f/V1QD/
+ 1VX/1YD/1ar/1dX/1f//1QAA/1UA/4AA/6oA/9UA//8A/wAr/1Ur/4Ar/6or/9Ur//8r/wBV/1VV
+ /4BV/6pV/9VV//9V/wCA/1WA/4CA/6qA/9WA//+A/wCq/1Wq/4Cq/6qq/9Wq//+q/wDV/1XV/4DV
+ /6rV/9XV///V/wD//1X//4D//6r//9X//z8/P2tra5WVlcDAwP///ywAAAAAIQAgAAAIuQD/CRxI
+ sKDBgwgTKlzIsCFCaRAjSpxIsaLEfxYzapyIcaNHix0/ioz4z57JkyhTqlyJsiTLlzBbxpz5smRF
+ ltJQarRn02LKiCd39rwZVKJJofaAHlVKdClEmUqTAs1Y9OnJoVWd5jSqFWrTqGCj8pQ6UadVslVz
+ XiVb1mnWrmvDqqUK1yTWrnTZelWrNy9Xu2zbyk27l6Lbw3rjfj0rl+9YmpBlRp7scjLkkCNFYs7s
+ cTNnjZ4/gwwIADs=
+TEL;PREF:+123456
+TEL;CELL;PREF:+1234563
+VOICE:2536
+END:VCARD
+
+BEGIN:VCARD
+VERSION:2.1
+N:Bill;Smith
+FN:Bill Smith
+ORG:Smiths Computer Services.
+TITLE:Computer Technician
+EMAIL:Bill.Smith@SmithsComputerServices.com
+ADR;WORK;DOM:;Your Office;2/21 Anywhere St;Any Town;Global;12345;Any Country
+X-IRMC_LUID:0002000002A8
+PHOTO;ENCODING=BASE64;TYPE=GIF:
+ R0lGODlhIAAgAOf/AAAAAFUAAIAAAKoAANUAAP8AAAArAFUrAIArAKorANUrAP8rAABVAFVVAIBV
+ AKpVANVVAP9VAACAAFWAAICAAKqAANWAAP+AAACqAFWqAICqAKqqANWqAP+qAADVAFXVAIDVAKrV
+ ANXVAP/VAAD/AFX/AID/AKr/ANX/AP//AAAAVVUAVYAAVaoAVdUAVf8AVQArVVUrVYArVaorVdUr
+ Vf8rVQBVVVVVVYBVVapVVdVVVf9VVQCAVVWAVYCAVaqAVdWAVf+AVQCqVVWqVYCqVaqqVdWqVf+q
+ VQDVVVXVVYDVVarVVdXVVf/VVQD/VVX/VYD/Var/VdX/Vf//VQAAgFUAgIAAgKoAgNUAgP8AgAAr
+ gFUrgIArgKorgNUrgP8rgABVgFVVgIBVgKpVgNVVgP9VgACAgFWAgICAgKqAgNWAgP+AgACqgFWq
+ gICqgKqqgNWqgP+qgADVgFXVgIDVgKrVgNXVgP/VgAD/gFX/gID/gKr/gNX/gP//gAAAqlUAqoAA
+ qqoAqtUAqv8AqgArqlUrqoArqqorqtUrqv8rqgBVqlVVqoBVqqpVqtVVqv9VqgCAqlWAqoCAqqqA
+ qtWAqv+AqgCqqlWqqoCqqqqqqtWqqv+qqgDVqlXVqoDVqqrVqtXVqv/VqgD/qlX/qoD/qqr/qtX/
+ qv//qgAA1VUA1YAA1aoA1dUA1f8A1QAr1VUr1YAr1aor1dUr1f8r1QBV1VVV1YBV1apV1dVV1f9V
+ 1QCA1VWA1YCA1aqA1dWA1f+A1QCq1VWq1YCq1aqq1dWq1f+q1QDV1VXV1YDV1arV1dXV1f/V1QD/
+ 1VX/1YD/1ar/1dX/1f//1QAA/1UA/4AA/6oA/9UA//8A/wAr/1Ur/4Ar/6or/9Ur//8r/wBV/1VV
+ /4BV/6pV/9VV//9V/wCA/1WA/4CA/6qA/9WA//+A/wCq/1Wq/4Cq/6qq/9Wq//+q/wDV/1XV/4DV
+ /6rV/9XV///V/wD//1X//4D//6r//9X//z8/P2tra5WVlcDAwP///ywAAAAAIQAgAAAIuQD/CRxI
+ sKDBgwgTKlzIsCFCaRAjSpxIsaLEfxYzapyIcaNHix0/ioz4z57JkyhTqlyJsiTLlzBbxpz5smRF
+ ltJQarRn02LKiCd39rwZVKJJofaAHlVKdClEmUqTAs1Y9OnJoVWd5jSqFWrTqGCj8pQ6UadVslVz
+ XiVb1mnWrmvDqqUK1yTWrnTZelWrNy9Xu2zbyk27l6Lbw3rjfj0rl+9YmpBlRp7scjLkkCNFYs7s
+ cTNnjZ4/gwwIADs=
+TEL;PREF:+9876
+TEL;CELL;PREF:+987654321
+VOICE:4321
+END:VCARD
diff --git a/tests/systemtests/sys_versitorganizer/sys_versitorganizer.pro b/tests/systemtests/sys_versitorganizer/sys_versitorganizer.pro
new file mode 100644
index 0000000000..cc01cbe2e9
--- /dev/null
+++ b/tests/systemtests/sys_versitorganizer/sys_versitorganizer.pro
@@ -0,0 +1,11 @@
+SOURCES=sys_versit.qtt
+CONFIG+=systemtest
+
+unix:!symbian {
+ maemo5 {
+ target.path = /opt/usr/bin
+ } else {
+ target.path = /usr/local/bin
+ }
+ INSTALLS += target
+}
diff --git a/tests/systemtests/sys_versitorganizer/sys_versitorganizer.qtt b/tests/systemtests/sys_versitorganizer/sys_versitorganizer.qtt
new file mode 100644
index 0000000000..de0766b778
--- /dev/null
+++ b/tests/systemtests/sys_versitorganizer/sys_versitorganizer.qtt
@@ -0,0 +1,166 @@
+****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//TESTED_COMPONENT=src/versitorganizer
+
+function startTestApp()
+{
+ prompt('Start application \'calendardemo\'
+ Verify test application started and closed without issue');
+}
+
+
+// Note for test cases relating to functionality such as add event see test relating to src/organizer
+testcase = {
+
+ // prove that the test application starts before anything else is tested.
+ runTestApplication: function()
+ {
+ startTestApp();
+ if (!runAsManualTest()){
+ // ensure we have a widget to work with, dump its details
+ // TODO when run this test case 'automaticly' then enable this following code
+ //print('Focus widget is' + focusWidget());
+ }
+ },
+
+
+ import_ical: function()
+ {
+ prompt(twiki('---++ Import iCalendar items
+
+ 1. Launch the *calendardemo* application
+ 1. On app menu, select \'Delete all items\' to insure you are dealing with a pristine calendar
+ 1. As required transfer exampleEvents.ics onto a location on the target
+ 1. On app menu, select \'Import items\' menu entry
+ 1. In file dialog that presents select the exampleEvents.ics that was transfer to the target
+ 1. Click \'Open\'
+ 1. In the case of the importing exampleEvents.ics:
+ 1. Verify there is now the following event:
+ | Subject | \'Bastille Day Party\' |
+ | Start time | July 14, 1997 17:00 (UTC) |
+ | End time | July 15, 1997 03:59:59 (UTC) |
+ 1. Verify there is the following Todo:
+ | Subject | \'Submit Income Taxes\' |
+ | Time | April 15, 1998 |
+ 1. if the platform(backend) supports journal entries:
+ | Subject | \'Project xyz Review Meeting Minutes\' |
+ | Time | March 24, 1997 |
+ * *Hint:* Possibly using the target system\'s Todo, Calendar and Journal applications will be easiest to verify above details
+ 1. On app menu, select \'Delete all items\'
+ 1. Close the *calendardemo* application
+ '));
+ },
+
+ export_ical: function()
+ {
+ prompt(twiki('---++ Export iCalendar items
+
+ 1. Launch the *calendardemo* application
+ 1. On app menu, select \'Delete all items\' to insure you are dealing with a pristine calendar
+ 1. Verify that the current backend is the best to suit device
+ 1. Add *valid* events
+ 1. Select \'Add Event\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Event 1\' |
+ | Start time | today\'s date, 08:00 AM |
+ | End time | today\'s date, 01:00 PM |
+ | Alarm | \'30 minutes before\' |
+ | Repeat | \'None\' |
+ 1. Click \'Save\' button
+ 1. Select \'Add Event\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Event 2\' |
+ | Start time | tomorrow\'s date, 02:00 PM |
+ | End time | tomorrow\'s date, 03:00 PM |
+ | Alarm | \'15 minutes before\' |
+ | Repeat | \'None\' |
+ 1. Click \'Save\' button
+ 1. Add a *valid* Todos:
+ 1. Select: \'Add Todo\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter Todo detail:
+ | Subject | \'Todo 1\' |
+ | Start time | today\'s date 08:00 AM |
+ | End time | today\'s date 04:00 PM |
+ | Priority | \'High\' |
+ | Status | default |
+ | Alarm option | \'30 minutes before\' |
+ 1. Click \'Save\' button
+ 1. Select: \'Add Todo\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter Todo detail:
+ | Subject | \'Todo 2\' |
+ | Start time | tomorrow\'s date 03:00 PM |
+ | End time | tomorrow\'s date 04:00 PM |
+ | Priority | \'Low\' |
+ | Status | default |
+ | Alarm option | \'5 minutes before\' |
+ 1. Click \'Save\' button
+ 1. If platform(backend) supports Journal entries then add a Journal entry:
+ 1. Select \'Add Journal\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Journal 1\' |
+ | Time | today\'s date, 08:00 AM |
+ | Alarm | \'30 minutes before\' |
+ 1. Click \'Save\' button
+ 1. If platform(backend) supports Journal entries then add a journal entry for later today:
+ 1. Select \'Add Journal\' menu entry (maybe listed under \'Options\' menu)
+ 1. Enter event details:
+ | Subject | \'Journal 2\' |
+ | Time | today\'s date at 02:00 PM |
+ | Alarm | \'15 minutes before\' |
+ 1. Click \'Save\' button
+ 1. On app menu, select \'Export items\' menu entry
+ 1 Enter/select suitable location saving as testcalendar.ics
+ 1. Click on \'Save\'
+ 1. Ideally the testcalendar.ics be opened on a separate system and its contents validated, if that is not possible then ..
+ 1. On app menu, select \'Delete all items\' to remove all calendar items
+ 1. Close the *calendardemo* application
+ 1. Launch the *calendardemo* application
+ 1. On app menu, select menu entry \'Import items\'
+ 1. Select location for testcalendar.ics entered earlier
+ 1. Click \'Select\' button
+ 1. Verify that calendar items \'Event 1\', \'Event 2\', \'Todo 1\' and \'Todo 2\' are present and have expected details
+ 1. If platform(backend) supports Journal entries then Verify that calendar items \'Journal 1\' and \'Journal 2\' are present and have expected details
+ 1. Delete events \'Event 1\', \'Event 2\', \'Todo 1\', \'Todo 2\', \'Journal 1\' and \'Journal 2\' (using native calendar application if neccessary)
+ 1. Close the *calendardemo* application
+ '));
+ },
+}
diff --git a/tests/systemtests/sys_versitorganizer/testdata/exampleEvents.ics b/tests/systemtests/sys_versitorganizer/testdata/exampleEvents.ics
new file mode 100644
index 0000000000..d0202a2c0c
--- /dev/null
+++ b/tests/systemtests/sys_versitorganizer/testdata/exampleEvents.ics
@@ -0,0 +1,168 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//hacksw/handcal//NONSGML v1.0//EN
+BEGIN:VEVENT
+UID:uid1@example.com
+DTSTAMP:19970714T170000Z
+ORGANIZER;CN=John Doe:MAILTO:john.doe@example.com
+DTSTART:19970714T170000Z
+DTEND:19970715T035959Z
+SUMMARY:Bastille Day Party
+END:VEVENT
+END:VCALENDAR
+
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//ABC Corporation//NONSGML My Product//EN
+BEGIN:VTODO
+DTSTAMP:19980130T134500Z
+SEQUENCE:2
+UID:uid4@host1.com
+ORGANIZER:MAILTO:unclesam@us.gov
+ATTENDEE;PARTSTAT=ACCEPTED:MAILTO:jqpublic@example.com
+DUE:19980415T235959
+STATUS:NEEDS-ACTION
+SUMMARY:Submit Income Taxes
+BEGIN:VALARM
+ACTION:AUDIO
+TRIGGER:19980403T120000
+ATTACH;FMTTYPE=audio/basic:http://example.com/pub/audio-
+ files/ssbanner.aud
+REPEAT:4
+DURATION:PT1H
+END:VALARM
+END:VTODO
+END:VCALENDAR
+
+
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//ABC Corporation//NONSGML My Product//EN
+BEGIN:VJOURNAL
+DTSTAMP:19970324T120000Z
+UID:uid5@host1.com
+ORGANIZER:MAILTO:jsmith@example.com
+STATUS:DRAFT
+CLASS:PUBLIC
+CATEGORIES:Project Report, XYZ, Weekly Meeting
+SUMMARY:Project xyz Review Meeting Minutes
+DESCRIPTION:Project xyz Review Meeting Minutes\n
+ Agenda\n1. Review of project version 1.0 requirements.\n2.
+ Definition
+ of project processes.\n3. Review of project schedule.\n
+ Participants: John Smith, Jane Doe, Jim Dandy\n-It was
+ decided that the requirements need to be signed off by
+ product marketing.\n-Project processes were accepted.\n
+ -Project schedule needs to account for scheduled holidays
+ and employee vacation time. Check with HR for specific
+ dates.\n-New schedule will be distributed by Friday.\n-
+ Next weeks meeting is cancelled. No meeting until 3/23.
+END:VJOURNAL
+END:VCALENDAR
+
+
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//hacksw/handcal//NONSGML v1.0//EN
+BEGIN:VEVENT
+UID:uid2@example.com
+DTSTAMP:19970324T120000Z
+DTSTART;VALUE=DATE:19970801
+SUMMARY:Our Blissful Anniversary
+CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION
+RRULE:FREQ=YEARLY
+END:VEVENT
+END:VCALENDAR
+
+
+BEGIN:VCALENDAR
+PRODID:-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN
+VERSION:2.0
+METHOD:PUBLISH
+X-CALSTART:20101201T010000Z
+X-CALSTART:20101201T000000
+X-CALEND:20101201T013000Z
+X-CALEND:20101202T000000
+X-CLIPSTART:20101130T140000Z
+X-CLIPEND:20101201T140000Z
+X-WR-RELCALID:{0000002E-914A-650B-ABCB-45AB96FA99E9}
+X-WR-CALNAME:Example
+X-PRIMARY-CALENDAR:TRUE
+X-OWNER;CN="Example":mailto:example@nokia.com
+X-MS-OLK-WKHRSTART;TZID=Brisbane:080000
+X-MS-OLK-WKHREND;TZID=Brisbane:170000
+X-MS-OLK-WKHRDAYS:MO,TU,WE,TH,FR
+BEGIN:VTIMEZONE
+TZID:Brisbane
+BEGIN:STANDARD
+DTSTART:16010101T000000
+TZOFFSETFROM:+1000
+TZOFFSETTO:+1000
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+CLASS:PUBLIC
+CREATED:20101201T042132Z
+DESCRIPTION:Re-occuring event body\n
+DTEND;TZID=Brisbane:20101201T113000
+DTSTAMP:20101201T044615Z
+DTSTART;TZID=Brisbane:20101201T110000
+LAST-MODIFIED:20101201T044046Z
+LOCATION:Re-occuring event Location
+PRIORITY:1
+RRULE:FREQ=WEEKLY;COUNT=4;BYDAY=WE
+SEQUENCE:0
+SUMMARY;LANGUAGE=en-au:Re-occuring event subject
+TRANSP:OPAQUE
+UID:040000008200E00074C5B7101A82E0080000000000A7582F6391CB01000000000000000
+ 010000000D93A5A43910FE843977B1D508F38FED5
+X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//E
+ N">\n<HTML>\n<HEAD>\n<META NAME="Generator" CONTENT="MS Exchange Server ve
+ rsion 08.00.0681.000">\n<TITLE></TITLE>\n</HEAD>\n<BODY>\n<!-- Converted f
+ rom text/rtf format -->\n\n<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG
+ ="en-au"><FONT FACE="Calibri">Re-occuring</FONT></SPAN><SPAN LANG="en-us">
+ </SPAN><SPAN LANG="en-au">&nbsp\;<FONT FACE="Calibri"> e</FONT></SPAN><SPA
+ N LANG="en-us"></SPAN><SPAN LANG="en-au"><FONT FACE="Calibri">vent body</F
+ ONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-au"></SPAN></P>\n\n</B
+ ODY>\n</HTML>
+X-MICROSOFT-CDO-BUSYSTATUS:BUSY
+X-MICROSOFT-CDO-IMPORTANCE:2
+X-MICROSOFT-DISALLOW-COUNTER:FALSE
+X-MS-OLK-ALLOWEXTERNCHECK:TRUE
+X-MS-OLK-AUTOFILLLOCATION:FALSE
+X-MS-OLK-CONFTYPE:0
+BEGIN:VALARM
+TRIGGER:-PT15M
+ACTION:DISPLAY
+DESCRIPTION:Reminder
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+CLASS:PUBLIC
+CREATED:20101201T043058Z
+DESCRIPTION:Test body\n
+DTEND;VALUE=DATE:20101202
+DTSTAMP:20101201T044615Z
+DTSTART;VALUE=DATE:20101201
+LAST-MODIFIED:20101201T043129Z
+LOCATION:Test location
+PRIORITY:5
+SEQUENCE:0
+SUMMARY;LANGUAGE=en-au:Test Subject
+TRANSP:TRANSPARENT
+UID:040000008200E00074C5B7101A82E00800000000B0D9FC6F6491CB01000000000000000
+ 0100000008A193A47E64DCC43A0E841A7AB597F86
+X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//E
+ N">\n<HTML>\n<HEAD>\n<META NAME="Generator" CONTENT="MS Exchange Server ve
+ rsion 08.00.0681.000">\n<TITLE></TITLE>\n</HEAD>\n<BODY>\n<!-- Converted f
+ rom text/rtf format -->\n\n<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG
+ ="en-au"><FONT FACE="Calibri">Test body</FONT></SPAN><SPAN LANG="en-us"></
+ SPAN><SPAN LANG="en-au"></SPAN></P>\n\n</BODY>\n</HTML>
+X-MICROSOFT-CDO-BUSYSTATUS:FREE
+X-MICROSOFT-CDO-IMPORTANCE:1
+X-MICROSOFT-DISALLOW-COUNTER:FALSE
+X-MS-OLK-ALLOWEXTERNCHECK:TRUE
+X-MS-OLK-AUTOFILLLOCATION:FALSE
+X-MS-OLK-CONFTYPE:0
+END:VEVENT
+END:VCALENDAR
diff --git a/tests/systemtests/systemtests.pro b/tests/systemtests/systemtests.pro
new file mode 100644
index 0000000000..ae878ba29a
--- /dev/null
+++ b/tests/systemtests/systemtests.pro
@@ -0,0 +1,2 @@
+TEMPLATE=subdirs
+SUBDIRS+=sys_bearer sys_calendar sys_contacts sys_messaging sys_multimedia sys_sensors \ No newline at end of file