qtmobileextensions/src/keycapture/tsrc/test_xqkeycapture.cpp
changeset 24 9d760f716ca8
parent 14 6fbed849b4f4
child 26 3d09643def13
--- a/qtmobileextensions/src/keycapture/tsrc/test_xqkeycapture.cpp	Wed Aug 18 10:38:12 2010 +0300
+++ b/qtmobileextensions/src/keycapture/tsrc/test_xqkeycapture.cpp	Thu Sep 02 21:20:48 2010 +0300
@@ -119,6 +119,7 @@
 	void testKeyMapperFile();
 
 private:
+	QString clearString(const QString& line);
 	QString clearString(const QString& line, const QString& prefix, const QString& comment);
     
 private:
@@ -1569,6 +1570,13 @@
     keyCapture->errorId();
 }
 
+QString TestXQKeyCapture::clearString(const QString& line) {
+    QString s(line);
+    s.replace(" ", "");
+    s.replace("\t", "");
+    return s.trimmed();
+}
+
 QString TestXQKeyCapture::clearString(const QString& line, const QString& prefix, const QString& comment) {
     QString s(line);
     s.replace(prefix, comment);
@@ -1582,45 +1590,64 @@
 ////////////////////////////////////////////////////////////////
 void TestXQKeyCapture::testKeyMapperFile()
 {
-    QString prefix("    keyMapping.append(KeyMapping(");
+    // test only for emulator build
+    #ifdef __WINSCW__   
+    
+    QString firstline("static const KeyMapping keyMapping[] = {");
+    QString lastline("};");
     QString comment("//");
     
     QStringList qt;
     QStringList kc;
 
     QFile qtFile("c:\\qkeymapper_s60.cpp");
-    QVERIFY(qtFile.open(QIODevice::ReadOnly | QIODevice::Text));
+    QVERIFY2(qtFile.open(QIODevice::ReadOnly | QIODevice::Text), "Failed to open: qtFile");
     
     QFile kcFile("c:\\keymapper.cpp");
-    QVERIFY(kcFile.open(QIODevice::ReadOnly | QIODevice::Text));
+    QVERIFY2(kcFile.open(QIODevice::ReadOnly | QIODevice::Text), "Failed to open: kcFile");
     
     QTextStream inQtFile(&qtFile);
+    bool test(false);
     while (!inQtFile.atEnd()) {
         QString line = inQtFile.readLine();
-        if (line.contains(prefix) && !line.contains(comment)) {
-            qt.append(clearString(line, prefix, comment));
+        // trim everything that is on right side of comment and add to list if needed
+        if (test) qt.append(clearString(line.split(comment).at(0)));
+        if (line.contains(firstline)) {
+            test = true;
+        }
+        if (line.contains(lastline)) {
+            test = false;
         }
     }
-
+    test = false;
     QTextStream inKcFile(&kcFile);
     while (!inKcFile.atEnd()) {
         QString line = inKcFile.readLine();
-        if (line.contains(prefix) && !line.contains(comment)) {
-            kc.append(clearString(line, prefix, comment));
+        // trim everything that is on right side of comment and add to list if needed
+        if (test) kc.append(clearString(line.split(comment).at(0)));
+        if (line.contains(firstline)) {
+            test = true;
+        }
+        if (line.contains(lastline)) {
+            test = false;
         }
     }
     
-    QVERIFY(qt.size() == kc.size());
+    QVERIFY2(qt.count() == kc.count(), "Amount of lines inside key definition is different");
     
     for(int i = 0; i < kc.size(); i++) {
         QString keys = kc.at(i);
-        QVERIFY(qt.contains(keys));
+        QVERIFY2(qt.contains(keys), "qtFile does not contain key(s) from capture keys");
     }
     
     for(int i = 0; i < qt.size(); i++) {
         QString keys = qt.at(i);
-        QVERIFY(kc.contains(keys));
+        QVERIFY2(kc.contains(keys), "kcFile does not conatin qt keys");
     }    
+#else
+    // Skip test on hw
+    QSKIP( "This test is valid only on emulator", SkipSingle);
+#endif // __WINSCW__
 }