--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/contacts/symbian/contactsmodel/tsrc/cntplsql/src/t_cqwertykeymap.cpp Wed Aug 25 15:49:42 2010 +0300
@@ -0,0 +1,242 @@
+/*
+* 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: Unit test class for testing CQwertyKeyMap
+*
+*/
+
+// INTERNAL INCLUDES
+#include "t_cqwertykeymap.h"
+#include "cqwertykeymap.h"
+#include <QString>
+
+// SYSTEM INCLUDES
+#include <digia/eunit/eunitmacros.h>
+#if defined(USE_ORBIT_KEYMAP)
+#include <hbinputkeymapfactory.h>
+#endif
+
+
+// -----------------------------------------------------------------------------
+// UT_CQwertyKeyMap::NewL
+// -----------------------------------------------------------------------------
+//
+UT_CQwertyKeyMap* UT_CQwertyKeyMap::NewL()
+ {
+ UT_CQwertyKeyMap* self = UT_CQwertyKeyMap::NewLC();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// UT_CQwertyKeyMap::NewLC
+// -----------------------------------------------------------------------------
+//
+UT_CQwertyKeyMap* UT_CQwertyKeyMap::NewLC()
+ {
+ UT_CQwertyKeyMap* self = new (ELeave) UT_CQwertyKeyMap();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// UT_CQwertyKeyMap::~UT_CQwertyKeyMap
+// -----------------------------------------------------------------------------
+//
+UT_CQwertyKeyMap::~UT_CQwertyKeyMap()
+ {
+ delete iKeyMap;
+ iKeyMap = NULL;
+ }
+
+// -----------------------------------------------------------------------------
+// UT_CQwertyKeyMap::UT_CQwertyKeyMap
+// -----------------------------------------------------------------------------
+//
+UT_CQwertyKeyMap::UT_CQwertyKeyMap()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// UT_CQwertyKeyMap::ConstructL
+// -----------------------------------------------------------------------------
+//
+void UT_CQwertyKeyMap::ConstructL()
+ {
+ // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+ // It generates the test case table.
+ CEUnitTestSuiteClass::ConstructL();
+
+
+ // When instantiating keymap was moved to here, it removed a resource leak.
+ iKeyMap = CQwertyKeyMap::NewL();
+ }
+
+// -----------------------------------------------------------------------------
+// UT_CQwertyKeyMap::SetupL
+// -----------------------------------------------------------------------------
+//
+void UT_CQwertyKeyMap::SetupL()
+ {
+#if defined(USE_ORBIT_KEYMAP)
+ // Create singleton outside actual test cases so that it is not treated as
+ // resource leak, since it can't be deleted.
+ HbKeymapFactory::instance();
+#endif
+ }
+
+// -----------------------------------------------------------------------------
+// UT_CQwertyKeyMap::Teardown
+// -----------------------------------------------------------------------------
+//
+void UT_CQwertyKeyMap::Teardown()
+ {
+ }
+
+
+// TEST CASES
+
+// -----------------------------------------------------------------------------
+// UT_CQwertyKeyMap::UT_NewLL
+// -----------------------------------------------------------------------------
+//
+void UT_CQwertyKeyMap::UT_NewLL()
+ {
+#if defined(USE_ORBIT_KEYMAP)
+ // Check each key has been mapped
+ EUNIT_ASSERT_EQUALS(CQwertyKeyMap::EAmountOfKeysInQwertyKeypad,
+ iKeyMap->iKeyMapping.count());
+
+ const TInt KAmountOfKeysInUse = 32;
+ // Note: depending on the language, the keymaps have 32..36 keys.
+ // So far no language has the full 44 keys.
+ for (TInt i = 0; i < KAmountOfKeysInUse; ++i)
+ {
+ EUNIT_ASSERT(iKeyMap->iKeyMapping.at(i).length() > 0);
+ }
+#endif
+ }
+
+// -----------------------------------------------------------------------------
+// UT_CQwertyKeyMap::UT_GetMappedStringL
+// -----------------------------------------------------------------------------
+//
+void UT_CQwertyKeyMap::UT_GetMappedStringL()
+ {
+ _LIT(KAlpha, "AbCQWe");
+ _LIT(KNumeric, "abcqwe");
+ HBufC* numericBuf = iKeyMap->GetMappedStringL( KAlpha );
+ CleanupStack::PushL( numericBuf );
+ EUNIT_ASSERT_EQUALS( *numericBuf, KNumeric );
+ CleanupStack::PopAndDestroy( numericBuf );
+ numericBuf = NULL;
+ }
+
+// -----------------------------------------------------------------------------
+// UT_CQwertyKeyMap::UT_GetNumericLimitsL
+// -----------------------------------------------------------------------------
+//
+void UT_CQwertyKeyMap::UT_GetNumericLimitsL()
+ {
+ QString lowerLimit;
+ QString upperLimit;
+ TInt err = iKeyMap->GetNumericLimits("we", lowerLimit, upperLimit);
+ QString expectedLowerLimit("18577348462903295");
+ QString expectedUpperLimit("18858823439613952");
+ EUNIT_ASSERT(lowerLimit == expectedLowerLimit);
+ EUNIT_ASSERT(upperLimit == expectedUpperLimit);
+ }
+
+// -----------------------------------------------------------------------------
+// UT_CQwertyKeyMap::UT_GetNumericLimitsBeginsByFirstKeyL
+// Input string begins by the first key (key Q)
+// -----------------------------------------------------------------------------
+//
+void UT_CQwertyKeyMap::UT_GetNumericLimitsBeginsByFirstKeyL()
+ {
+ QString lowerLimit;
+ QString upperLimit;
+ TInt err = iKeyMap->GetNumericLimits("qwe", lowerLimit, upperLimit);
+ QString expectedLowerLimit("290271069732863");
+ QString expectedUpperLimit("294669116243968");
+ EUNIT_ASSERT(lowerLimit == expectedLowerLimit);
+ EUNIT_ASSERT(upperLimit == expectedUpperLimit);
+ }
+
+// -----------------------------------------------------------------------------
+// UT_CQwertyKeyMap::UT_GetNumericLimitsLongValueL
+// Input string has more than maximum characters
+// -----------------------------------------------------------------------------
+//
+void UT_CQwertyKeyMap::UT_GetNumericLimitsLongValueL()
+ {
+ QString lowerLimit;
+ QString upperLimit;
+ // "aaqqsswwddee" => "ee" is ignored, rest are as binary:
+ // 001010 001010 000000 000000 001011 001011 000001 000001 001100 001100
+ // =
+ // 0010 1000 1010 0000 0000 0000 0010 1100 1011 0000 0100 0001 0011 0000 1100
+ // as hex = 28A0002CB04130C, as decimal = 182958746857902860
+ TInt err = iKeyMap->GetNumericLimits("aaqqsswwddee", lowerLimit, upperLimit);
+ QString expectedLowerLimit("182958746857902859");
+ QString expectedUpperLimit("182958746857902861");
+ EUNIT_ASSERT(lowerLimit == expectedLowerLimit);
+ EUNIT_ASSERT(upperLimit == expectedUpperLimit);
+ }
+
+// TEST TABLE
+
+EUNIT_BEGIN_TEST_TABLE(
+ UT_CQwertyKeyMap,
+ "UT_CQwertyKeyMap",
+ "UNIT" )
+
+EUNIT_TEST(
+ "NewL - test ",
+ "UT_CQwertyKeyMap",
+ "NewL",
+ "FUNCTIONALITY",
+ SetupL, UT_NewLL, Teardown )
+
+EUNIT_TEST(
+ "GetMappedString - test ",
+ "UT_CQwertyKeyMap",
+ "GetMappedStringL",
+ "FUNCTIONALITY",
+ SetupL, UT_GetMappedStringL, Teardown )
+
+EUNIT_TEST(
+ "GetNumericLimits",
+ "UT_CQwertyKeyMap",
+ "GetNumericLimits",
+ "FUNCTIONALITY",
+ SetupL, UT_GetNumericLimitsL, Teardown )
+
+EUNIT_TEST(
+ "GetNumericLimits - begins by first key",
+ "UT_CQwertyKeyMap",
+ "GetNumericLimits",
+ "FUNCTIONALITY",
+ SetupL, UT_GetNumericLimitsBeginsByFirstKeyL, Teardown )
+
+EUNIT_TEST(
+ "GetNumericLimits - long input",
+ "UT_CQwertyKeyMap",
+ "GetNumericLimits",
+ "FUNCTIONALITY",
+ SetupL, UT_GetNumericLimitsLongValueL, Teardown )
+
+EUNIT_END_TEST_TABLE
+
+// END OF FILE