phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetengine/src/ut_infowidgetengine.cpp
changeset 37 ba76fc04e6c2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetengine/src/ut_infowidgetengine.cpp	Fri Jun 04 10:19:18 2010 +0100
@@ -0,0 +1,279 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include "ut_infowidgetengine.h"
+#include "infowidgetengine.h"
+#include "qtestmains60.h"
+#include "infowidgetpreferences.h"
+
+// mocked dependencies of the class under test
+#include "infowidgetnetworkhandler.h"
+#include "infowidgetsathandler.h"
+
+const QString KSpnName("Spn name");    // 
+
+const QString KHomeZoneTextTag("HomeZoneText0");    // max length 13
+const TNWViagIndicatorType 
+    KHomeZoneIndicatorType = ENWViagIndicatorTypeHomeZone;
+
+const QString KMcnName("McnNameMcnNameMcnNam");     // max length 20 
+const TNWMCNIndicatorType 
+    KMcnIndicatorType = ENWMCNIndicatorTypeActive;
+
+/*!
+  UT_InfoWidgetEngine::UT_InfoWidgetEngine
+ */
+UT_InfoWidgetEngine::UT_InfoWidgetEngine() 
+    : 
+    m_infoWidgetEngine(0)
+{
+    
+}
+
+/*!
+  UT_InfoWidgetEngine::~UT_InfoWidgetEngine
+ */
+UT_InfoWidgetEngine::~UT_InfoWidgetEngine()
+{
+    delete m_infoWidgetEngine;
+}
+
+/*!
+  UT_InfoWidgetEngine::init
+ */
+void UT_InfoWidgetEngine::init()
+{
+    initialize();
+    
+    SmcDefaultValue<QString>::SetL("");
+    SmcDefaultValue<const QString & >::SetL("");
+    
+    EXPECT(InfoWidgetNetworkHandler::logCurrentInfo);
+    EXPECT(InfoWidgetNetworkHandler::isOnline)
+        .returns(true);    
+    
+    EXPECT(InfoWidgetNetworkHandler::serviceProviderName)
+        .returns(KSpnName);
+    EXPECT(InfoWidgetNetworkHandler::serviceProviderNameDisplayRequired)
+        .returns(true);
+
+    EXPECT(InfoWidgetNetworkHandler::mcnName).returns(KMcnName);
+    EXPECT(InfoWidgetNetworkHandler::mcnIndicatorType)
+        .returns(KMcnIndicatorType);
+
+    EXPECT(InfoWidgetNetworkHandler::homeZoneIndicatorType)
+        .returns(KHomeZoneIndicatorType);
+    EXPECT(InfoWidgetNetworkHandler::homeZoneTextTag)
+        .returns(KHomeZoneTextTag);
+    
+    m_infoWidgetEngine = new InfoWidgetEngine();
+    
+    QVERIFY(verify());
+}
+
+/*!
+  UT_InfoWidgetEngine::cleanup
+ */
+void UT_InfoWidgetEngine::cleanup()
+{
+    reset();
+    
+    delete m_infoWidgetEngine;
+    m_infoWidgetEngine = 0;
+}
+
+/*!
+  UT_InfoWidgetEngine::t_modelData
+ */
+void UT_InfoWidgetEngine::t_modelData()
+{
+    const InfoWidgetEngine::ModelData& data = m_infoWidgetEngine->modelData();
+    QVERIFY(data.serviceProviderName() == KSpnName);
+    QVERIFY(data.serviceProviderNameDisplayRequired() == true);
+    QVERIFY(data.homeZoneTextTag() == KHomeZoneTextTag);
+    QVERIFY(data.homeZoneIndicatorType() == KHomeZoneIndicatorType);
+    QVERIFY(data.mcnName() == KMcnName);
+    QVERIFY(data.mcnIndicatorType() == KMcnIndicatorType);
+}
+
+/*!
+  UT_InfoWidgetEngine::t_updateNetworkDataToModel
+ */
+void UT_InfoWidgetEngine::t_updateNetworkDataToModel()
+{
+    // Test: network status is online
+    EXPECT(InfoWidgetNetworkHandler::logCurrentInfo);
+    EXPECT(InfoWidgetNetworkHandler::isOnline)
+        .returns(true);    
+    
+    EXPECT(InfoWidgetNetworkHandler::serviceProviderName)
+        .returns(KSpnName);
+    EXPECT(InfoWidgetNetworkHandler::serviceProviderNameDisplayRequired)
+        .returns(true);
+
+    EXPECT(InfoWidgetNetworkHandler::mcnName).returns(KMcnName);
+    EXPECT(InfoWidgetNetworkHandler::mcnIndicatorType)
+        .returns(KMcnIndicatorType);
+
+    EXPECT(InfoWidgetNetworkHandler::homeZoneIndicatorType)
+        .returns(KHomeZoneIndicatorType);
+    EXPECT(InfoWidgetNetworkHandler::homeZoneTextTag)
+        .returns(KHomeZoneTextTag);
+    
+    QSignalSpy spy(m_infoWidgetEngine, SIGNAL(modelChanged()));
+    m_infoWidgetEngine->updateNetworkDataToModel();
+    
+    const int KExpectedNumOfSignalEmissions = 1;
+    QCOMPARE(spy.count(), KExpectedNumOfSignalEmissions);
+    const QList<QVariant> &arguments = spy.takeFirst(); 
+    QCOMPARE(arguments.count(), 0);
+    
+    QVERIFY(verify());
+    
+    // Test: network status is offline
+    EXPECT(InfoWidgetNetworkHandler::logCurrentInfo);
+    EXPECT(InfoWidgetNetworkHandler::isOnline)
+          .returns(false);    
+    EXPECT(InfoWidgetNetworkHandler::serviceProviderName).times(0);
+    EXPECT(InfoWidgetNetworkHandler::serviceProviderNameDisplayRequired).times(0);
+    EXPECT(InfoWidgetNetworkHandler::mcnName).times(0);
+    EXPECT(InfoWidgetNetworkHandler::mcnIndicatorType).times(0);
+    EXPECT(InfoWidgetNetworkHandler::homeZoneIndicatorType).times(0);
+    EXPECT(InfoWidgetNetworkHandler::homeZoneTextTag).times(0);
+      
+    m_infoWidgetEngine->updateNetworkDataToModel();
+    QCOMPARE(spy.count(), KExpectedNumOfSignalEmissions);
+    const QList<QVariant> &arguments2 = spy.takeFirst(); 
+    QCOMPARE(arguments2.count(), 0);
+    
+    QVERIFY(verify());
+    
+    const InfoWidgetEngine::ModelData& data = m_infoWidgetEngine->modelData();
+    QVERIFY(data.serviceProviderName() == QString(""));
+    QVERIFY(data.homeZoneTextTag() == QString(""));
+    QVERIFY(data.mcnName() == QString(""));
+    
+}
+
+/*!
+  UT_InfoWidgetEngine::t_updateSatDataToModel
+ */
+void UT_InfoWidgetEngine::t_updateSatDataToModel()
+{
+    EXPECT(InfoWidgetSatHandler::satDisplayText)
+        .returns(QString(""));
+    
+    m_infoWidgetEngine->updateSatDataToModel();
+}
+
+/*!
+  UT_InfoWidgetEngine::t_updateLineDataToModel
+ */
+void UT_InfoWidgetEngine::t_updateLineDataToModel()
+{
+    m_infoWidgetEngine->updateLineDataToModel();
+    
+    QVERIFY(verify());
+}
+
+/*!
+  UT_InfoWidgetEngine::t_handleNetworkError
+ */
+void UT_InfoWidgetEngine::t_handleNetworkError()
+{
+    m_infoWidgetEngine->handleNetworkError(0, 0);
+    
+    QVERIFY(verify());
+}
+
+/*!
+  UT_InfoWidgetEngine::t_handleSatError
+ */
+void UT_InfoWidgetEngine::t_handleSatError()
+{
+    m_infoWidgetEngine->handleSatError(0, 0);
+    
+    QVERIFY(verify());
+}
+
+/*!
+  UT_InfoWidgetEngine::t_handleLineError
+ */
+void UT_InfoWidgetEngine::t_handleLineError()
+{
+    m_infoWidgetEngine->handleLineError(0, 0);
+    
+    QVERIFY(verify());
+}
+
+/*!
+  UT_InfoWidgetEngine::t_handleLineError
+ */
+void UT_InfoWidgetEngine::t_logModelData()
+{
+    m_infoWidgetEngine->logModelData();
+    
+    QVERIFY(verify());
+}
+
+/*!
+  UT_InfoWidgetEngine::t_preferenceChanged
+ */
+void UT_InfoWidgetEngine::t_preferenceChanged()
+{
+    m_infoWidgetEngine->preferenceChanged
+        (InfoWidgetPreferences::DisplayMcn,
+            InfoWidgetPreferences::DisplayOn);
+
+    m_infoWidgetEngine->preferenceChanged
+        (InfoWidgetPreferences::DisplayMcn,
+            InfoWidgetPreferences::DisplayOff);
+
+    m_infoWidgetEngine->preferenceChanged
+        (InfoWidgetPreferences::DisplaySatText,
+            InfoWidgetPreferences::DisplayOn);        
+
+    m_infoWidgetEngine->preferenceChanged
+        (InfoWidgetPreferences::DisplaySatText,
+            InfoWidgetPreferences::DisplayOff);        
+
+    m_infoWidgetEngine->preferenceChanged(-1,
+            InfoWidgetPreferences::DisplayOff);        
+
+    QVERIFY(verify());
+}
+
+/*!
+  UT_InfoWidgetEngine::t_suspend
+ */
+void UT_InfoWidgetEngine::t_suspend()
+{
+    m_infoWidgetEngine->suspend();
+        
+    QVERIFY(verify());
+}
+
+/*!
+  UT_InfoWidgetEngine::t_resume
+ */
+void UT_InfoWidgetEngine::t_resume()
+{
+    m_infoWidgetEngine->resume();
+        
+    QVERIFY(verify());
+}
+
+QTEST_MAIN_S60(UT_InfoWidgetEngine)