--- a/qtmobileextensions/src/keycapture/tsrc/test_xqkeycapture.cpp Fri Apr 16 15:51:22 2010 +0300
+++ b/qtmobileextensions/src/keycapture/tsrc/test_xqkeycapture.cpp Mon May 03 13:18:40 2010 +0300
@@ -23,6 +23,8 @@
#include <W32STD.H>
#include <xqkeycapture.h>
+#include <QFile>
+
class TestXqKeyCapture : public QObject
{
Q_OBJECT
@@ -41,24 +43,47 @@
void testCaptureKey_data();
void testCaptureKey();
+
+ void testCaptureKey_S60_data();
+ void testCaptureKey_S60();
void testCaptureKeyUpAndDowns_data();
void testCaptureKeyUpAndDowns();
+
+ void testCaptureKeyUpAndDowns_S60_data();
+ void testCaptureKeyUpAndDowns_S60();
void testCaptureLongKey_data();
void testCaptureLongKey();
+
+ void testCaptureLongKey_S60_data();
+ void testCaptureLongKey_S60();
void testCancelCaptureKey_data();
void testCancelCaptureKey();
+
+ void testCancelCaptureKey_S60_data();
+ void testCancelCaptureKey_S60();
void testCancelCaptureKeyUpAndDowns_data();
void testCancelCaptureKeyUpAndDowns();
+
+ void testCancelCaptureKeyUpAndDowns_S60_data();
+ void testCancelCaptureKeyUpAndDowns_S60();
void testCancelCaptureLongKey_data();
void testCancelCaptureLongKey();
-
+
+ void testCancelCaptureLongKey_S60_data();
+ void testCancelCaptureLongKey_S60();
+
void testErrorString();
void testErrorId();
+
+ void testKeyMapperFile();
+
+private:
+ QString clearString(const QString& line, const QString& prefix, const QString& comment);
private:
XqKeyCapture* keyCapture;
@@ -189,10 +214,10 @@
<< true
<< static_cast<unsigned int> ( EKeyRightCtrl );
- QTest::newRow("meta_key") << static_cast<unsigned int> ( Qt::Key_Meta )
+ QTest::newRow("meta_key") << static_cast<unsigned int> ( Qt::Key_Super_R )
<< static_cast<unsigned int> ( Qt::NoModifier )
<< static_cast<unsigned int> ( Qt::NoModifier )
- << static_cast<unsigned int> ( EKeyLeftFunc )
+ << static_cast<unsigned int> ( EKeyRightFunc )
<< static_cast<unsigned int> ( 0 )
<< static_cast<unsigned int> ( 0 )
<< static_cast<long int> ( 12 )
@@ -296,6 +321,67 @@
}
////////////////////////////////////////////////////////////////
+//Capture Key Up And Downs
+////////////////////////////////////////////////////////////////
+void TestXqKeyCapture::testCaptureKeyUpAndDowns_S60_data()
+{
+ QTest::addColumn<unsigned int>("qtKey");
+ QTest::addColumn<unsigned int>("qtMask");
+ QTest::addColumn<unsigned int>("qtModifier");
+
+ QTest::addColumn<unsigned int>("symbianKey");
+ QTest::addColumn<unsigned int>("symbianMask");
+ QTest::addColumn<unsigned int>("symbianModifier");
+
+ QTest::addColumn<long int>("reqNum");
+
+ QTest::addColumn<bool>("additional");
+ QTest::addColumn<unsigned int>("additionalSymbianKey");
+
+ QTest::newRow("esc_key") << static_cast<unsigned int> ( EStdKeyEscape )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<unsigned int> ( EStdKeyEscape )
+ << static_cast<unsigned int> ( 0 )
+ << static_cast<unsigned int> ( 0 )
+ << static_cast<long int> ( 12 )
+ << false
+ << static_cast<unsigned int> ( 0 );
+}
+
+void TestXqKeyCapture::testCaptureKeyUpAndDowns_S60()
+{
+ numOfArgs = 3;
+ actionType = WGATCaptureKeyUpAndDowns;
+ additionalResult = false;
+ ignoreWindowGroupAction = false;
+
+ QFETCH(unsigned int, qtKey);
+ QFETCH(unsigned int, qtMask);
+ QFETCH(unsigned int, qtModifier);
+
+ QFETCH(unsigned int, symbianKey);
+ QFETCH(unsigned int, symbianMask);
+ QFETCH(unsigned int, symbianModifier);
+
+ QFETCH(long int, reqNum);
+
+ QFETCH(bool, additional);
+ QFETCH(unsigned int, additionalSymbianKey);
+
+ willBeAdditionalRequest = additional;
+
+ results.clear();
+ results << symbianKey << symbianMask << symbianModifier;
+
+ additionalResults.clear();
+ additionalResults << additionalSymbianKey << symbianMask << symbianModifier;
+
+ MyTestWindowGroup::Instance()->setRequestNumber(reqNum);
+ keyCapture->captureKeyUpAndDowns( static_cast<TUint> (qtKey), Qt::KeyboardModifier( qtMask ), Qt::KeyboardModifier( qtModifier ) );
+}
+
+////////////////////////////////////////////////////////////////
//Capture Long Key
////////////////////////////////////////////////////////////////
void TestXqKeyCapture::testCaptureLongKey_data()
@@ -368,6 +454,78 @@
}
////////////////////////////////////////////////////////////////
+//Capture Long Key
+////////////////////////////////////////////////////////////////
+void TestXqKeyCapture::testCaptureLongKey_S60_data()
+{
+ QTest::addColumn<unsigned int>("qtKey");
+ QTest::addColumn<unsigned int>("qtMask");
+ QTest::addColumn<unsigned int>("qtModifier");
+ QTest::addColumn<int>("longFlags");
+
+ QTest::addColumn<unsigned int>("symbianKey");
+ QTest::addColumn<unsigned int>("symbianMask");
+ QTest::addColumn<unsigned int>("symbianModifier");
+ QTest::addColumn<int>("symbianPriority");
+ QTest::addColumn<int>("symbianLongFlags");
+
+ QTest::addColumn<long int>("reqNum");
+
+ QTest::addColumn<bool>("additional");
+ QTest::addColumn<unsigned int>("additionalSymbianKey");
+
+
+ QTest::newRow("esc_key") << static_cast<unsigned int> ( EKeyEscape )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<int> ( XqKeyCapture::LongNormal )
+ << static_cast<unsigned int> ( EKeyEscape )
+ << static_cast<unsigned int> ( 0 )
+ << static_cast<unsigned int> ( 0 )
+ << static_cast<int> ( 0 ) //priority
+ << static_cast<int> ( XqKeyCapture::LongNormal )
+ << static_cast<long int> ( 12 )
+ << false
+ << static_cast<unsigned int> ( 0 );
+
+}
+
+void TestXqKeyCapture::testCaptureLongKey_S60()
+{
+ numOfArgs = 6;
+ actionType = WGATCaptureLongKey;
+ additionalResult = false;
+ ignoreWindowGroupAction = false;
+
+ QFETCH(unsigned int, qtKey);
+ QFETCH(unsigned int, qtMask);
+ QFETCH(unsigned int, qtModifier);
+ QFETCH(int, longFlags);
+
+ QFETCH(unsigned int, symbianKey);
+ QFETCH(unsigned int, symbianMask);
+ QFETCH(unsigned int, symbianModifier);
+ QFETCH(int, symbianPriority);
+ QFETCH(int, symbianLongFlags);
+
+ QFETCH(long int, reqNum);
+
+ QFETCH(bool, additional);
+ QFETCH(unsigned int, additionalSymbianKey);
+
+ willBeAdditionalRequest = additional;
+
+ results.clear();
+ results << symbianKey << symbianKey << symbianMask << symbianModifier << symbianPriority << symbianLongFlags;
+
+ additionalResults.clear();
+ additionalResults << additionalSymbianKey << symbianMask << symbianModifier << symbianPriority << symbianLongFlags;
+
+ MyTestWindowGroup::Instance()->setRequestNumber(reqNum);
+ keyCapture->captureLongKey( static_cast<TUint> (qtKey), Qt::KeyboardModifier( qtMask ), Qt::KeyboardModifier( qtModifier ), static_cast<XqKeyCapture::LongFlags> (longFlags) );
+}
+
+////////////////////////////////////////////////////////////////
// CANCEL
//Cancel Capture Key
////////////////////////////////////////////////////////////////
@@ -460,6 +618,98 @@
}
////////////////////////////////////////////////////////////////
+// CANCEL
+//Cancel Capture Key
+////////////////////////////////////////////////////////////////
+void TestXqKeyCapture::testCancelCaptureKey_S60_data()
+{
+ QTest::addColumn<unsigned int>("qtKey");
+ QTest::addColumn<unsigned int>("qtMask");
+ QTest::addColumn<unsigned int>("qtModifier");
+
+ QTest::addColumn<long int>("reqNum");
+
+ QTest::addColumn<bool>("additional");
+ QTest::addColumn<long int>("additionalReqNum");
+
+ QTest::newRow("esc_key") << static_cast<unsigned int> ( EKeyEscape )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<long int> ( 12 )
+ << false
+ << static_cast<long int> ( 0 );
+
+ QTest::newRow("esc_key_not_supported") << static_cast<unsigned int> ( EKeyEscape )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<long int> ( KErrNotSupported )
+ << false
+ << static_cast<long int> ( 0 );
+
+ QTest::newRow("esc_key_modifiers") << static_cast<unsigned int> ( EKeyEscape )
+ << static_cast<unsigned int> ( Qt::ShiftModifier | Qt::ControlModifier | Qt::AltModifier | Qt:: KeypadModifier )
+ << static_cast<unsigned int> ( Qt::ShiftModifier | Qt::ControlModifier | Qt::AltModifier | Qt:: KeypadModifier )
+ << static_cast<long int> ( 13 )
+ << false
+ << static_cast<long int> ( 0 );
+
+ QTest::newRow("shift_key") << static_cast<unsigned int> ( EKeyLeftShift )
+ << static_cast<unsigned int> ( Qt::ShiftModifier )
+ << static_cast<unsigned int> ( Qt::ControlModifier )
+ << static_cast<long int> ( 15 )
+ << true
+ << static_cast<long int> ( 16 );
+
+ QTest::newRow("control_key") << static_cast<unsigned int> ( EKeyLeftCtrl )
+ << static_cast<unsigned int> ( Qt::ControlModifier )
+ << static_cast<unsigned int> ( Qt::ShiftModifier )
+ << static_cast<long int> ( 17 )
+ << true
+ << static_cast<long int> ( 18 );
+
+ QTest::newRow("meta_key") << static_cast<unsigned int> ( EKeyRightCtrl )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<long int> ( 19 )
+ << true
+ << static_cast<long int> ( 20 );
+
+
+}
+
+void TestXqKeyCapture::testCancelCaptureKey_S60()
+{
+ numOfArgs = 1;
+ actionType = WGATCancelCaptureKey;
+ additionalResult = false;
+
+ QFETCH(unsigned int, qtKey);
+ QFETCH(unsigned int, qtMask);
+ QFETCH(unsigned int, qtModifier);
+
+ QFETCH(long int, reqNum);
+
+ QFETCH(bool, additional);
+ QFETCH(long int, additionalReqNum);
+
+ willBeAdditionalRequest = additional;
+ additionalRequestHandle = additionalReqNum;
+
+ cancelResults.clear();
+ cancelResults << reqNum;
+
+ cancelAdditionalResults.clear();
+ cancelAdditionalResults << additionalReqNum;
+
+ MyTestWindowGroup::Instance()->setRequestNumber(reqNum);
+ ignoreWindowGroupAction = true;
+ keyCapture->captureKey( static_cast<TUint> (qtKey), Qt::KeyboardModifier( qtMask ), Qt::KeyboardModifier( qtModifier ) );
+ ignoreWindowGroupAction = false;
+ willBeAdditionalRequest = additional;
+ keyCapture->cancelCaptureKey( static_cast<TUint> (qtKey), Qt::KeyboardModifier( qtMask ), Qt::KeyboardModifier( qtModifier ) );
+}
+
+////////////////////////////////////////////////////////////////
//Cancel Capture Key Up And Downs
////////////////////////////////////////////////////////////////
void TestXqKeyCapture::testCancelCaptureKeyUpAndDowns_data()
@@ -515,6 +765,61 @@
}
////////////////////////////////////////////////////////////////
+//Cancel Capture Key Up And Downs
+////////////////////////////////////////////////////////////////
+void TestXqKeyCapture::testCancelCaptureKeyUpAndDowns_S60_data()
+{
+ QTest::addColumn<unsigned int>("qtKey");
+ QTest::addColumn<unsigned int>("qtMask");
+ QTest::addColumn<unsigned int>("qtModifier");
+
+ QTest::addColumn<long int>("reqNum");
+
+ QTest::addColumn<bool>("additional");
+ QTest::addColumn<long int>("additionalReqNum");
+
+ QTest::newRow("esc_key") << static_cast<unsigned int> ( EKeyEscape )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<long int> ( 34 )
+ << false
+ << static_cast<long int> ( 35 );
+
+}
+
+void TestXqKeyCapture::testCancelCaptureKeyUpAndDowns_S60()
+{
+ numOfArgs = 1;
+ actionType = WGATCancelCaptureKeyUpAndDowns;
+ additionalResult = false;
+
+ QFETCH(unsigned int, qtKey);
+ QFETCH(unsigned int, qtMask);
+ QFETCH(unsigned int, qtModifier);
+
+ QFETCH(long int, reqNum);
+
+ QFETCH(bool, additional);
+ QFETCH(long int, additionalReqNum);
+
+ willBeAdditionalRequest = additional;
+ additionalRequestHandle = additionalReqNum;
+
+ cancelResults.clear();
+ cancelResults << reqNum;
+
+ cancelAdditionalResults.clear();
+ cancelAdditionalResults << additionalReqNum;
+
+ MyTestWindowGroup::Instance()->setRequestNumber(reqNum);
+ ignoreWindowGroupAction = true;
+ keyCapture->captureKeyUpAndDowns( static_cast<TUint> (qtKey), Qt::KeyboardModifier( qtMask ), Qt::KeyboardModifier( qtModifier ) );
+ ignoreWindowGroupAction = false;
+ willBeAdditionalRequest = additional;
+ keyCapture->cancelCaptureKeyUpAndDowns( static_cast<TUint> (qtKey), Qt::KeyboardModifier( qtMask ), Qt::KeyboardModifier( qtModifier ) );
+}
+
+////////////////////////////////////////////////////////////////
//Cancel Capture Long Key
////////////////////////////////////////////////////////////////
void TestXqKeyCapture::testCancelCaptureLongKey_data()
@@ -577,6 +882,178 @@
}
////////////////////////////////////////////////////////////////
+//Cancel Capture Long Key
+////////////////////////////////////////////////////////////////
+void TestXqKeyCapture::testCancelCaptureLongKey_S60_data()
+{
+ QTest::addColumn<unsigned int>("qtKey");
+ QTest::addColumn<unsigned int>("qtMask");
+ QTest::addColumn<unsigned int>("qtModifier");
+ QTest::addColumn<int>("longFlags");
+
+ QTest::addColumn<long int>("reqNum");
+
+ QTest::addColumn<bool>("additional");
+ QTest::addColumn<long int>("additionalReqNum");
+
+ QTest::newRow("esc_key") << static_cast<unsigned int> ( EKeyEscape )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<int> ( XqKeyCapture::LongNormal )
+ << static_cast<long int> ( 22 )
+ << false
+ << static_cast<long int> ( 23 );
+
+
+
+
+
+}
+
+void TestXqKeyCapture::testCancelCaptureLongKey_S60()
+{
+ numOfArgs = 1;
+ actionType = WGATCancelCaptureLongKey;
+ additionalResult = false;
+
+ QFETCH(unsigned int, qtKey);
+ QFETCH(unsigned int, qtMask);
+ QFETCH(unsigned int, qtModifier);
+ QFETCH(int, longFlags);
+
+ QFETCH(long int, reqNum);
+
+ QFETCH(bool, additional);
+ QFETCH(long int, additionalReqNum);
+
+ willBeAdditionalRequest = additional;
+ additionalRequestHandle = additionalReqNum;
+
+ cancelResults.clear();
+ cancelResults << reqNum;
+
+ cancelAdditionalResults.clear();
+ cancelAdditionalResults << additionalReqNum;
+
+ MyTestWindowGroup::Instance()->setRequestNumber(reqNum);
+ ignoreWindowGroupAction = true;
+ keyCapture->captureLongKey( static_cast<TUint> (qtKey), Qt::KeyboardModifier( qtMask ), Qt::KeyboardModifier( qtModifier ), static_cast<XqKeyCapture::LongFlags> (longFlags) );
+ ignoreWindowGroupAction = false;
+ willBeAdditionalRequest = additional;
+ keyCapture->cancelCaptureLongKey( static_cast<TUint> (qtKey), Qt::KeyboardModifier( qtMask ), Qt::KeyboardModifier( qtModifier ), static_cast<XqKeyCapture::LongFlags> (longFlags) );
+}
+
+void TestXqKeyCapture::testCaptureKey_S60_data()
+{
+ QTest::addColumn<unsigned int>("s60Key");
+ QTest::addColumn<unsigned int>("qtMask");
+ QTest::addColumn<unsigned int>("qtModifier");
+
+ QTest::addColumn<unsigned int>("symbianKey");
+ QTest::addColumn<unsigned int>("symbianMask");
+ QTest::addColumn<unsigned int>("symbianModifier");
+
+ QTest::addColumn<long int>("reqNum");
+
+ QTest::addColumn<bool>("additional");
+ QTest::addColumn<unsigned int>("additionalSymbianKey");
+
+ QTest::newRow("esc_key") << static_cast<unsigned int> ( EKeyEscape )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<unsigned int> ( EKeyEscape )
+ << static_cast<unsigned int> ( 0 )
+ << static_cast<unsigned int> ( 0 )
+ << static_cast<long int> ( 12 )
+ << false
+ << static_cast<unsigned int> ( 0 );
+
+ QTest::newRow("esc_key_not_supported") << static_cast<unsigned int> ( EKeyEscape )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<unsigned int> ( EKeyEscape )
+ << static_cast<unsigned int> ( 0 )
+ << static_cast<unsigned int> ( 0 )
+ << static_cast<long int> ( KErrNotSupported )
+ << false
+ << static_cast<unsigned int> ( 0 );
+
+ QTest::newRow("esc_key_modifiers") << static_cast<unsigned int> ( EKeyEscape )
+ << static_cast<unsigned int> ( Qt::ShiftModifier | Qt::ControlModifier | Qt::AltModifier | Qt:: KeypadModifier )
+ << static_cast<unsigned int> ( Qt::ShiftModifier | Qt::ControlModifier | Qt::AltModifier | Qt:: KeypadModifier )
+ << static_cast<unsigned int> ( EKeyEscape )
+ << static_cast<unsigned int> ( EModifierShift | EModifierCtrl | EModifierAlt | EModifierKeypad )
+ << static_cast<unsigned int> ( EModifierShift | EModifierCtrl | EModifierAlt | EModifierKeypad )
+ << static_cast<long int> ( 13 )
+ << false
+ << static_cast<unsigned int> ( 0 );
+
+ QTest::newRow("shift_key") << static_cast<unsigned int> ( EKeyLeftShift )
+ << static_cast<unsigned int> ( Qt::ShiftModifier )
+ << static_cast<unsigned int> ( Qt::ShiftModifier )
+ << static_cast<unsigned int> ( EKeyLeftShift )
+ << static_cast<unsigned int> ( EModifierShift )
+ << static_cast<unsigned int> ( EModifierShift )
+ << static_cast<long int> ( 12 )
+ << true
+ << static_cast<unsigned int> ( EKeyRightShift );
+
+ QTest::newRow("control_key") << static_cast<unsigned int> ( EKeyRightCtrl )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<unsigned int> ( EKeyRightCtrl )
+ << static_cast<unsigned int> ( 0 )
+ << static_cast<unsigned int> ( 0 )
+ << static_cast<long int> ( 12 )
+ << true
+ << static_cast<unsigned int> ( EKeyRightFunc );
+
+ QTest::newRow("meta_key") << static_cast<unsigned int> ( EKeyLeftCtrl )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<unsigned int> ( Qt::NoModifier )
+ << static_cast<unsigned int> ( EKeyLeftCtrl )
+ << static_cast<unsigned int> ( 0 )
+ << static_cast<unsigned int> ( 0 )
+ << static_cast<long int> ( 12 )
+ << true
+ << static_cast<unsigned int> ( EKeyLeftFunc );
+
+
+}
+
+void TestXqKeyCapture::testCaptureKey_S60()
+{
+ numOfArgs = 3;
+ actionType = WGATCaptureKey;
+ additionalResult = false;
+ ignoreWindowGroupAction = false;
+
+ QFETCH(unsigned int, s60Key);
+ QFETCH(unsigned int, qtMask);
+ QFETCH(unsigned int, qtModifier);
+
+ QFETCH(unsigned int, symbianKey);
+ QFETCH(unsigned int, symbianMask);
+ QFETCH(unsigned int, symbianModifier);
+
+ QFETCH(long int, reqNum);
+
+ QFETCH(bool, additional);
+ QFETCH(unsigned int, additionalSymbianKey);
+
+ willBeAdditionalRequest = additional;
+
+ results.clear();
+ results << symbianKey << symbianMask << symbianModifier;
+
+ additionalResults.clear();
+ additionalResults << additionalSymbianKey << symbianMask << symbianModifier;
+
+ MyTestWindowGroup::Instance()->setRequestNumber(reqNum);
+ keyCapture->captureKey( static_cast<TUint> (s60Key), Qt::KeyboardModifier( qtMask ), Qt::KeyboardModifier( qtModifier ) );
+}
+
+////////////////////////////////////////////////////////////////
// ERRORS
//errorString
////////////////////////////////////////////////////////////////
@@ -594,6 +1071,61 @@
keyCapture->errorId();
}
+QString TestXqKeyCapture::clearString(const QString& line, const QString& prefix, const QString& comment) {
+ QString s(line);
+ s.replace(prefix, comment);
+ s.replace(" ", "");
+ s.replace("\t", "");
+ return s.trimmed();
+}
+
+////////////////////////////////////////////////////////////////
+// TEST KEY MAPPER FILE
+////////////////////////////////////////////////////////////////
+void TestXqKeyCapture::testKeyMapperFile()
+{
+ QString prefix(" keyMapping.append(KeyMapping(");
+ QString comment("//");
+
+ QStringList qt;
+ QStringList kc;
+
+ QFile qtFile("c:\qkeymapper_s60.cpp");
+ QVERIFY(qtFile.open(QIODevice::ReadOnly | QIODevice::Text));
+
+ QFile kcFile("c:\keymapper.cpp");
+ QVERIFY(kcFile.open(QIODevice::ReadOnly | QIODevice::Text));
+
+ QTextStream inQtFile(&qtFile);
+ while (!inQtFile.atEnd()) {
+ QString line = inQtFile.readLine();
+ if (line.contains(prefix) && !line.contains(comment)) {
+ qt.append(clearString(line, prefix, comment));
+ }
+ }
+
+ QTextStream inKcFile(&kcFile);
+ while (!inKcFile.atEnd()) {
+ QString line = inKcFile.readLine();
+ if (line.contains(prefix) && !line.contains(comment)) {
+ kc.append(clearString(line, prefix, comment));
+ }
+ }
+
+ QVERIFY(qt.size() == kc.size());
+
+ for(int i = 0; i < kc.size(); i++) {
+ QString keys = kc.at(i);
+ QVERIFY(qt.contains(keys));
+ }
+
+ for(int i = 0; i < qt.size(); i++) {
+ QString keys = qt.at(i);
+ QVERIFY(kc.contains(keys));
+ }
+}
+
+
////////////////////////////////////////////////////////////////
// REQUEST SLOT
//windowGroupAction