--- a/radiohswidget/tsrc/src/t_radiohswidget.cpp Tue Aug 31 15:15:02 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,405 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-// System includes
-#include <QVariant>
-
-// User Includes
-#include "t_radiohswidget.h"
-#include "xqsettingsmanager.h"
-#include "xqapplicationmanager.h"
-#include "xqaiwrequest.h"
-#include "xqaiwinterfacedescriptor.h"
-#include "radioservicedef.h"
-#include "radiologger.h"
-
-// Constants
-/**
-* From ProfileEngineSDKCRKeys.h
-* The id of the currently active profile, integer value.
-* Possible values:
-*
-* 0 = General profile (default value)<br>
-* 1 = Silent profile<br>
-* 2 = Meeting profile<br>
-* 3 = Outdoor profile<br>
-* 4 = Pager profile<br>
-* 5 = Off-line profile<br>
-* 6 = Drive profile<br>
-* 30-49 = User-created profiles<br>
-**/
-const int PROFILE_GENERAL(0);
-const int PROFILE_SILENT(1);
-const int PROFILE_MEETING(2);
-const int PROFILE_OUTDOOR(3);
-const int PROFILE_PAGER(4);
-const int PROFILE_OFFLINE(5);
-const int PROFILE_DRIVE(6);
-const int PROFILE_USER_CREATED(35);
-
-/** Requests are not embedded. */
-const bool EMBEDDED_REQUEST(false);
-
-/** Last request should be answered with empty reply. */
-int EMPTY_REPLY(-5);
-
-/** Test values for favorite station count. */
-const int FAVORITE_STATION_COUNT_INVALID_TOO_LOW1(-56);
-const int FAVORITE_STATION_COUNT_INVALID_TOO_LOW2(-1);
-const int FAVORITE_STATION_COUNT_VALID_LOWER_BOUNDARY(0);
-const int FAVORITE_STATION_COUNT_VALID1(1);
-const int FAVORITE_STATION_COUNT_VALID2(2);
-const int FAVORITE_STATION_COUNT_VALID3(3);
-const int FAVORITE_STATION_COUNT_VALID4(9);
-const int FAVORITE_STATION_COUNT_VALID5(78);
-const int FAVORITE_STATION_COUNT_VALID_UPPER_BOUNDARY(100);
-const int FAVORITE_STATION_COUNT_INVALID_TOO_HIGH1(101);
-const int FAVORITE_STATION_COUNT_INVALID_TOO_HIGH2(1256);
-
-/** Test values for textual information. */
-const QString TEST_FREQUENCY("99.9");
-const QString TEST_NAME("Radio Test");
-const QString TEST_GENRE("Test GenRe");
-const QString TEST_RADIO_TEXT("Test RDS");
-const QString TEST_DYNAMIC_PSNAME("Dynamic PS Name test");
-const QString TEST_EMPTY_STRING("");
-const QString TEST_INVALID_STRING;
-/** This test string contains 1000 characters. */
-const QString TEST_TOO_LONG_STRING("1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890");
-
-/** Test values for service notification types. */
-const int RADIO_SERVICE_NOTIFICATION_ID_INVALID_TOO_LOW1(-357);
-const int RADIO_SERVICE_NOTIFICATION_ID_INVALID_TOO_LOW2(-1);
-const int RADIO_SERVICE_NOTIFICATION_ID_INVALID_TOO_LOW3(0);
-const int RADIO_SERVICE_NOTIFICATION_ID_VALID_LOWER_BOUNDARY(1);
-const int RADIO_SERVICE_NOTIFICATION_ID_VALID_UPPER_BOUNDARY(8);
-const int RADIO_SERVICE_NOTIFICATION_ID_INVALID_TOO_HIGH1(9);
-const int RADIO_SERVICE_NOTIFICATION_ID_INVALID_TOO_HIGH2(57982);
-const int RADIO_STATUS_INVALID_TOO_LOW1(-581);
-const int RADIO_STATUS_INVALID_TOO_LOW2(-1);
-const int RADIO_STATUS_VALID_LOWER_BOUNDARY(0);
-const int RADIO_STATUS_VALID_UPPER_BOUNDARY(5);
-const int RADIO_STATUS_INVALID_TOO_HIGH1(6);
-const int RADIO_STATUS_INVALID_TOO_HIGH2(456);
-
-/** Mock returns for settings manager stub. */
-QVariant settings_manager_mock_return_profile;
-QVariant settings_manager_mock_return_2nd_profile;
-bool settings_manager_mock_bool_return;
-
-/** These request are defined in stub xqapplicationmanager.cpp. */
-extern XQAiwRequest *application_manager_mock_refresh_request;
-extern XQAiwRequest *application_manager_mock_monitor_request;
-
-/** List for request mocks. */
-QVariantList request_mocks;
-/** Amount of requests send. */
-int send_count;
-
-
-/*!
- \class TestRadioHsWidget
- \brief Unit testing for FM Radio hs widget.
-
- TestRadioHsWidget implements needed functions for the FM Radio home screen
- widget unit tests.
-*/
-
-// ======== MEMBER FUNCTIONS ========
-
-/*!
- Main function.
-
- There's been problems with QTEST_MAIN macro, so main function is defined
- here.
-*/
-int main(int /* argc*/, char *argv[])
-{
- LOG_METHOD_ENTER;
- TestRadioHsWidget tv;
-
- char *pass[3];
- pass[0] = argv[0];
- pass[1] = "-o";
- pass[2] = "c:\\data\\testradiohswidget.txt";
-
- int res = QTest::qExec(&tv, 3, pass);
-
- return res;
-}
-
-/*!
- Constructor.
- */
-TestRadioHsWidget::TestRadioHsWidget()
-{
- LOG_METHOD_ENTER;
-}
-
-
-/*!
- Destructor.
- */
-TestRadioHsWidget::~TestRadioHsWidget()
-{
- LOG_METHOD_ENTER;
-}
-
-/*!
- Called before each testfunction is executed.
- */
-void TestRadioHsWidget::init()
-{
- LOG_METHOD_ENTER;
- settings_manager_mock_return_profile = PROFILE_GENERAL;
- request_mocks.clear();
- mSendInfos.clear();
- send_count = -1;
- mRadioHsWidgetStub.data()->reset();
-}
-
-/*!
- Called after every testfunction.
- */
-void TestRadioHsWidget::cleanup()
-{
- LOG_METHOD_ENTER;
-}
-
-/*!
- Called before the first testfunction is executed
- */
-void TestRadioHsWidget::initTestCase()
-{
- LOG_METHOD_ENTER;
- mRadioHsWidgetStub.reset(new RadioHsWidget());
- QVERIFY(mRadioHsWidgetStub);
- mProfileReader.reset(new RadioHsWidgetProfileReader(mRadioHsWidgetStub.data()));
- QVERIFY(mProfileReader);
- mServiceClient.reset(new RadioHsWidgetRadioServiceClient(mRadioHsWidgetStub.data()));
- QVERIFY(mServiceClient);
-}
-
-/*!
- Called after the last testfunction was executed.
- */
-void TestRadioHsWidget::cleanupTestCase()
-{
- LOG_METHOD_ENTER;
-}
-
-/*!
- Tests RadioHsWidgetProfileReader and it's isCurrentProfileOffline()
- function.
- */
-void TestRadioHsWidget::offlineModeTest()
-{
- LOG_METHOD;
- settings_manager_mock_return_profile = PROFILE_GENERAL;
- bool isOffline = mProfileReader.data()->isCurrentProfileOffline();
- QVERIFY2(( isOffline == false ), "FmRadioHsWidget:RadioHsWidget profile is offline");
- settings_manager_mock_return_profile = PROFILE_OFFLINE;
- isOffline = mProfileReader.data()->isCurrentProfileOffline();
- QVERIFY2(( isOffline == true ), "FmRadioHsWidget:RadioHsWidget profile is not offline");
- settings_manager_mock_return_profile = PROFILE_USER_CREATED;
- isOffline = mProfileReader.data()->isCurrentProfileOffline();
- QVERIFY2(( isOffline == false ), "FmRadioHsWidget:RadioHsWidget profile is offline");
-}
-
-/*!
- Tests RadioHsWidgetRadioServiceClient class and it's ability to receive
- and forward valid information.
- */
-void TestRadioHsWidget::validReplies()
-{
- LOG_METHOD;
- // Replies that should be ok.
- createSendInfo(RadioServiceNotification::FavoriteCount, QVariant(FAVORITE_STATION_COUNT_VALID_LOWER_BOUNDARY));
- createSendInfo(RadioServiceNotification::FavoriteCount, QVariant(FAVORITE_STATION_COUNT_VALID1));
- createSendInfo(RadioServiceNotification::FavoriteCount, QVariant(FAVORITE_STATION_COUNT_VALID2));
- createSendInfo(RadioServiceNotification::FavoriteCount, QVariant(FAVORITE_STATION_COUNT_VALID3));
- createSendInfo(RadioServiceNotification::FavoriteCount, QVariant(FAVORITE_STATION_COUNT_VALID4));
- createSendInfo(RadioServiceNotification::FavoriteCount, QVariant(FAVORITE_STATION_COUNT_VALID5));
- createSendInfo(RadioServiceNotification::FavoriteCount, QVariant(FAVORITE_STATION_COUNT_VALID_UPPER_BOUNDARY));
- createSendInfo(RadioServiceNotification::CurrentIsFavorite, QVariant(true));
- createSendInfo(RadioServiceNotification::CurrentIsFavorite, QVariant(false));
- createSendInfo(RadioServiceNotification::RadioStatus, QVariant(RadioStatus::UnSpecified));
- createSendInfo(RadioServiceNotification::RadioStatus, QVariant(RadioStatus::Playing));
- createSendInfo(RadioServiceNotification::RadioStatus, QVariant(RadioStatus::Muted));
- createSendInfo(RadioServiceNotification::RadioStatus, QVariant(RadioStatus::Seeking));
- createSendInfo(RadioServiceNotification::RadioStatus, QVariant(RadioStatus::NoAntenna));
- createSendInfo(RadioServiceNotification::RadioStatus, QVariant(RadioStatus::PoweringOff));
- createSendInfo(RadioServiceNotification::RadioStatus, QVariant(RADIO_STATUS_VALID_LOWER_BOUNDARY));
- createSendInfo(RadioServiceNotification::RadioStatus, QVariant(RADIO_STATUS_VALID_UPPER_BOUNDARY));
- createSendInfo(RadioServiceNotification::Frequency, QVariant(TEST_FREQUENCY));
- createSendInfo(RadioServiceNotification::Name, QVariant(TEST_NAME));
- createSendInfo(RadioServiceNotification::Name, QVariant(TEST_EMPTY_STRING));
- createSendInfo(RadioServiceNotification::Genre, QVariant(TEST_GENRE));
- createSendInfo(RadioServiceNotification::RadioText, QVariant(TEST_RADIO_TEXT));
- createSendInfo(RadioServiceNotification::DynamicPS, QVariant(TEST_DYNAMIC_PSNAME));
- // Empty reply should be last to put RServiceClient to make an request, which is not replied.
- createSendInfo(EMPTY_REPLY, QVariant(EMPTY_REPLY));
-
- send_count = mSendInfos.count();
-
- mServiceClient.data()->startMonitoring(FmRadio::VisibiltyToBackground);
- mServiceClient.data()->stopMonitoring();
-
- int receivedCount = mRadioHsWidgetStub.data()->receivedInformationCount();
- QVERIFY2((receivedCount == send_count - 1), "Send and received counts doesn't match");
-
- ReceivedInfo temp;
- for (int i = 0; i < send_count - 1; i++) {
- temp = mRadioHsWidgetStub.data()->receivedInformation();
- QVERIFY(temp.informationType == mSendInfos.at(i).informationType);
- verifyReceivedInformation(temp.informationType, temp.information, mSendInfos.at(i).information);
- }
-}
-
-/*!
- Tests RadioHsWidgetRadioServiceClient class and it's ability to receive
- and forward invalid information.
- */
-void TestRadioHsWidget::invalidReplies()
-{
- LOG_METHOD;
- QList<int> skipSendInfo;
- // Replies that should not be ok.
- createSendInfo(RadioServiceNotification::FavoriteCount, QVariant(FAVORITE_STATION_COUNT_INVALID_TOO_LOW1));
- createSendInfo(RadioServiceNotification::FavoriteCount, QVariant(FAVORITE_STATION_COUNT_INVALID_TOO_LOW2));
- createSendInfo(RadioServiceNotification::FavoriteCount, QVariant(FAVORITE_STATION_COUNT_INVALID_TOO_HIGH1));
- createSendInfo(RadioServiceNotification::FavoriteCount, QVariant(FAVORITE_STATION_COUNT_INVALID_TOO_HIGH2));
- createSendInfo(RadioServiceNotification::FavoriteCount, QVariant());
- skipSendInfo.append(request_mocks.count() - 1);
- createSendInfo(RadioServiceNotification::CurrentIsFavorite, QVariant());
- skipSendInfo.append(request_mocks.count() - 1);
- createSendInfo(RadioServiceNotification::RadioStatus, QVariant(RADIO_STATUS_INVALID_TOO_LOW1));
- createSendInfo(RadioServiceNotification::RadioStatus, QVariant(RADIO_STATUS_INVALID_TOO_LOW1));
- createSendInfo(RadioServiceNotification::RadioStatus, QVariant(RADIO_STATUS_INVALID_TOO_HIGH1));
- createSendInfo(RadioServiceNotification::RadioStatus, QVariant(RADIO_STATUS_INVALID_TOO_HIGH2));
- createSendInfo(RadioServiceNotification::RadioStatus, QVariant());
- skipSendInfo.append(request_mocks.count() - 1);
- createSendInfo(RadioServiceNotification::Frequency, QVariant());
- skipSendInfo.append(request_mocks.count() - 1);
- createSendInfo(RadioServiceNotification::Name, QVariant(TEST_INVALID_STRING));
- createSendInfo(RadioServiceNotification::Name, QVariant(TEST_TOO_LONG_STRING));
- createSendInfo(RadioServiceNotification::Name, QVariant());
- skipSendInfo.append(request_mocks.count() - 1);
- createSendInfo(RadioServiceNotification::Genre, QVariant());
- skipSendInfo.append(request_mocks.count() - 1);
- createSendInfo(RadioServiceNotification::RadioText, QVariant());
- skipSendInfo.append(request_mocks.count() - 1);
- createSendInfo(RadioServiceNotification::DynamicPS, QVariant());
- skipSendInfo.append(request_mocks.count() - 1);
- // Replies that should generate a warning.
- createSendInfo(RADIO_SERVICE_NOTIFICATION_ID_VALID_LOWER_BOUNDARY, QVariant(TEST_EMPTY_STRING));
- createSendInfo(RADIO_SERVICE_NOTIFICATION_ID_VALID_UPPER_BOUNDARY, QVariant(TEST_EMPTY_STRING));
- createSendInfo(RADIO_SERVICE_NOTIFICATION_ID_INVALID_TOO_LOW1, QVariant(TEST_EMPTY_STRING));
- createSendInfo(RADIO_SERVICE_NOTIFICATION_ID_INVALID_TOO_LOW2, QVariant(TEST_EMPTY_STRING));
- createSendInfo(RADIO_SERVICE_NOTIFICATION_ID_INVALID_TOO_LOW3, QVariant(TEST_EMPTY_STRING));
- createSendInfo(RADIO_SERVICE_NOTIFICATION_ID_INVALID_TOO_HIGH1, QVariant(TEST_EMPTY_STRING));
- createSendInfo(RADIO_SERVICE_NOTIFICATION_ID_INVALID_TOO_HIGH2, QVariant(TEST_EMPTY_STRING));
- // Empty reply should be last to put RServiceClient to make an request, which is not replied.
- createSendInfo(EMPTY_REPLY, QVariant(EMPTY_REPLY));
-
- send_count = mSendInfos.count();
-
- mServiceClient.data()->startMonitoring(FmRadio::VisibiltyToBackground);
- mServiceClient.data()->stopMonitoring();
-
- int receivedCount = mRadioHsWidgetStub.data()->receivedInformationCount();
- int skippedCount = skipSendInfo.count();
- QVERIFY2((receivedCount == send_count - skippedCount - 1), "Send and received counts doesn't match");
-
- ReceivedInfo temp;
- for (int i = 0; i < send_count - 1; i++) {
- if (skipSendInfo.contains(i)) {
- // Skip verification for information that was filtered in
- // RadioHsWidgetRadioServiceClient.
- continue;
- }
- temp = mRadioHsWidgetStub.data()->receivedInformation();
- QVERIFY(temp.informationType == mSendInfos.at(i).informationType);
- verifyReceivedInformation(temp.informationType, temp.information, mSendInfos.at(i).information);
- }
-}
-
-/*!
- Helper function to store send information and append it to a request
- mocks.
- */
-void TestRadioHsWidget::createSendInfo(int informationType, const QVariant information)
-{
- SendInfo info;
- QVariantList notificationList;
-
- info.informationType = informationType;
- info.information = information;
- info.data = QVariant(mServiceClient.data()->
- createRadioNotificationData(
- info.informationType,
- info.information
- ));
-
- mSendInfos.append(info);
-
- notificationList.append(info.data);
- request_mocks.append(QVariant(notificationList));
-}
-
-/*!
- Helper function to verify receved information.
- */
-void TestRadioHsWidget::verifyReceivedInformation(int informationType,
- const QVariant &receivedInformation, const QVariant &sendInformation)
-{
- switch (informationType) {
- case RadioServiceNotification::CurrentIsFavorite:
- QVERIFY(receivedInformation.canConvert(QVariant::Bool));
- QCOMPARE(receivedInformation.toBool(), sendInformation.toBool());
- break;
- case RadioServiceNotification::FavoriteCount:
- // Fall through because of similar handling
- case RadioServiceNotification::RadioStatus:
- QVERIFY(receivedInformation.canConvert(QVariant::Int));
- QCOMPARE(receivedInformation.toInt(), sendInformation.toInt());
- break;
- case RadioServiceNotification::Frequency:
- // Fall through because of similar type of information and thus
- // similar handling
- case RadioServiceNotification::Name:
- // Fall through because of similar type of information and thus
- // similar handling
- case RadioServiceNotification::Genre:
- // Fall through because of similar type of information and thus
- // similar handling
- case RadioServiceNotification::RadioText:
- // Fall through because of similar type of information and thus
- // similar handling
- case RadioServiceNotification::DynamicPS:
- QVERIFY(receivedInformation.canConvert(QVariant::String));
- QCOMPARE(receivedInformation.toString(), sendInformation.toString());
- break;
- default:
- QWARN("Default case, shouldn't be here except if specifically testing RadioServiceNotification id out of bounds.");
- QVERIFY(receivedInformation.canConvert(QVariant::String));
- QCOMPARE(receivedInformation.toString(), sendInformation.toString());
- break;
- }
-}
-
-//QTEST_MAIN(t_radiohswidget)