diff options
author | A-Team <ateam@pad.test.qt.nokia.com> | 2010-10-23 22:00:13 (GMT) |
---|---|---|
committer | A-Team <ateam@pad.test.qt.nokia.com> | 2010-10-23 22:00:13 (GMT) |
commit | 3c7b40623ea36fb0098d46451c3154ef83f7e564 (patch) | |
tree | c6873ce3c452387aac002daacc38bcaa036e0966 /tests/auto/qclipboard/tst_qclipboard.cpp | |
parent | 0787890a9a06a0f05c78c7e4d85655fdc1fc9398 (diff) | |
parent | bb2b9362ced23ff2aae824ef001efe7a34b464cc (diff) | |
download | Qt-3c7b40623ea36fb0098d46451c3154ef83f7e564.zip Qt-3c7b40623ea36fb0098d46451c3154ef83f7e564.tar.gz Qt-3c7b40623ea36fb0098d46451c3154ef83f7e564.tar.bz2 |
Merge branch '4.7-upstream' into 4.7-doc
Diffstat (limited to 'tests/auto/qclipboard/tst_qclipboard.cpp')
-rw-r--r-- | tests/auto/qclipboard/tst_qclipboard.cpp | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/tests/auto/qclipboard/tst_qclipboard.cpp b/tests/auto/qclipboard/tst_qclipboard.cpp index d1f3e86..2e0362c 100644 --- a/tests/auto/qclipboard/tst_qclipboard.cpp +++ b/tests/auto/qclipboard/tst_qclipboard.cpp @@ -47,6 +47,14 @@ #ifdef Q_WS_MAC #include <Carbon/Carbon.h> #endif +#ifdef Q_OS_SYMBIAN +#include "private/qcore_symbian_p.h" +#include "txtetext.h" +#include <baclipb.h> +#endif +#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS +#include "txtclipboard.h" +#endif //TESTED_CLASS= //TESTED_FILES= @@ -62,6 +70,10 @@ private slots: void testSignals(); void setMimeData(); void clearBeforeSetText(); +#ifdef Q_OS_SYMBIAN + void pasteCopySymbian(); + void copyPasteSymbian(); +#endif private: bool nativeClipboardWorking(); @@ -335,6 +347,76 @@ void tst_QClipboard::clearBeforeSetText() QCOMPARE(QApplication::clipboard()->text(), text); } +/* + Test that text copied from qt application + can be pasted with symbian clipboard +*/ +#ifdef Q_OS_SYMBIAN +// ### This test case only makes sense in symbian +void tst_QClipboard::pasteCopySymbian() +{ + if (!nativeClipboardWorking()) + QSKIP("Native clipboard not working in this setup", SkipAll); + const QString string("Test string symbian."); + QApplication::clipboard()->setText(string); + + const TInt KPlainTextBegin = 0; + RFs fs = qt_s60GetRFs(); + CClipboard* cb = CClipboard::NewForReadingLC(fs); + + CPlainText* text = CPlainText::NewL(); + CleanupStack::PushL(text); + TInt dataLength = text->PasteFromStoreL(cb->Store(), cb->StreamDictionary(), + KPlainTextBegin); + if (dataLength == 0) { + User::Leave(KErrNotFound); + } + HBufC* hBuf = HBufC::NewL(dataLength); + TPtr buf = hBuf->Des(); + text->Extract(buf, KPlainTextBegin, dataLength); + + QString storeString = qt_TDesC2QString(buf); + CleanupStack::PopAndDestroy(text); + CleanupStack::PopAndDestroy(cb); + + QCOMPARE(string, storeString); +} +#endif + +/* + Test that text copied to symbian clipboard + can be pasted to qt clipboard +*/ +#ifdef Q_OS_SYMBIAN +// ### This test case only makes sense in symbian +void tst_QClipboard::copyPasteSymbian() +{ + if (!nativeClipboardWorking()) + QSKIP("Native clipboard not working in this setup", SkipAll); + const QString string("Test string symbian."); + const TInt KPlainTextBegin = 0; + + RFs fs = qt_s60GetRFs(); + CClipboard* cb = CClipboard::NewForWritingLC(fs); + CStreamStore& store = cb->Store(); + CStreamDictionary& dict = cb->StreamDictionary(); + RStoreWriteStream symbianStream; + TStreamId symbianStId = symbianStream.CreateLC(cb->Store()); + + CPlainText* text = CPlainText::NewL(); + CleanupStack::PushL(text); + TPtrC textPtr(qt_QString2TPtrC(string)); + text->InsertL(KPlainTextBegin, textPtr); + text->CopyToStoreL(store, dict, KPlainTextBegin, textPtr.Length()); + CleanupStack::PopAndDestroy(text); + (cb->StreamDictionary()).AssignL(KClipboardUidTypePlainText, symbianStId); + cb->CommitL(); + CleanupStack::PopAndDestroy(2, cb); + + QCOMPARE(QApplication::clipboard()->text(), string); +} +#endif + QTEST_MAIN(tst_QClipboard) #include "tst_qclipboard.moc" |