diff options
54 files changed, 1905 insertions, 20 deletions
diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-gpos.c b/src/3rdparty/harfbuzz/src/harfbuzz-gpos.c index a216005..7bd3b3b 100644 --- a/src/3rdparty/harfbuzz/src/harfbuzz-gpos.c +++ b/src/3rdparty/harfbuzz/src/harfbuzz-gpos.c @@ -3012,6 +3012,9 @@ static HB_Error Lookup_MarkMarkPos( GPOS_Instance* gpi, j--; } + if ( i > buffer->in_pos ) + return HB_Err_Not_Covered; + error = _HB_OPEN_Coverage_Index( &mmp->Mark2Coverage, IN_GLYPH( j ), &mark2_index ); if ( error ) diff --git a/src/declarative/graphicsitems/qdeclarativetextinput.cpp b/src/declarative/graphicsitems/qdeclarativetextinput.cpp index 3fd4fcd..5245236 100644 --- a/src/declarative/graphicsitems/qdeclarativetextinput.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextinput.cpp @@ -1046,7 +1046,7 @@ void QDeclarativeTextInputPrivate::focusChanged(bool hasFocus) Q_Q(QDeclarativeTextInput); focused = hasFocus; q->setCursorVisible(hasFocus && scene && scene->hasFocus()); - if(q->echoMode() == QDeclarativeTextInput::PasswordEchoOnEdit && !hasFocus) + if(!hasFocus && control->passwordEchoEditing()) control->updatePasswordEchoEditing(false);//QLineControl sets it on key events, but doesn't deal with focus events if (!hasFocus) control->deselect(); diff --git a/src/gui/widgets/qlinecontrol.cpp b/src/gui/widgets/qlinecontrol.cpp index bf36033..84674a5 100644 --- a/src/gui/widgets/qlinecontrol.cpp +++ b/src/gui/widgets/qlinecontrol.cpp @@ -59,6 +59,22 @@ QT_BEGIN_NAMESPACE +#ifdef QT_GUI_PASSWORD_ECHO_DELAY +static int qt_passwordEchoDelay = QT_GUI_PASSWORD_ECHO_DELAY; +#endif + +/*! + \macro QT_GUI_PASSWORD_ECHO_DELAY + + \internal + + Defines the amount of time in milliseconds the last entered character + should be displayed unmasked in the Password echo mode. + + If not defined in qplatformdefs.h there will be no delay in masking + password characters. +*/ + /*! \internal @@ -74,9 +90,25 @@ void QLineControl::updateDisplayText(bool forceUpdate) else str = m_text; - if (m_echoMode == QLineEdit::Password || (m_echoMode == QLineEdit::PasswordEchoOnEdit - && !m_passwordEchoEditing)) + if (m_echoMode == QLineEdit::Password) { str.fill(m_passwordCharacter); +#ifdef QT_GUI_PASSWORD_ECHO_DELAY + if (m_passwordEchoTimer != 0 && !str.isEmpty()) { + int cursor = m_text.length() - 1; + QChar uc = m_text.at(cursor); + str[cursor] = uc; + if (cursor > 0 && uc.unicode() >= 0xdc00 && uc.unicode() < 0xe000) { + // second half of a surrogate, check if we have the first half as well, + // if yes restore both at once + uc = m_text.at(cursor - 1); + if (uc.unicode() >= 0xd800 && uc.unicode() < 0xdc00) + str[cursor - 1] = uc; + } + } +#endif + } else if (m_echoMode == QLineEdit::PasswordEchoOnEdit && !m_passwordEchoEditing) { + str.fill(m_passwordCharacter); + } // replace certain non-printable characters with spaces (to avoid // drawing boxes when using fonts that don't have glyphs for such @@ -311,6 +343,7 @@ void QLineControl::init(const QString &txt) */ void QLineControl::updatePasswordEchoEditing(bool editing) { + cancelPasswordEchoTimer(); m_passwordEchoEditing = editing; updateDisplayText(); } @@ -640,6 +673,7 @@ bool QLineControl::finishChange(int validateFromState, bool update, bool edited) */ void QLineControl::internalSetText(const QString &txt, int pos, bool edited) { + cancelPasswordEchoTimer(); internalDeselect(); emit resetInputContext(); QString oldText = m_text; @@ -692,6 +726,13 @@ void QLineControl::addCommand(const Command &cmd) */ void QLineControl::internalInsert(const QString &s) { +#ifdef QT_GUI_PASSWORD_ECHO_DELAY + if (m_echoMode == QLineEdit::Password) { + if (m_passwordEchoTimer != 0) + killTimer(m_passwordEchoTimer); + m_passwordEchoTimer = startTimer(qt_passwordEchoDelay); + } +#endif if (hasSelectedText()) addCommand(Command(SetSelection, m_cursor, 0, m_selstart, m_selend)); if (m_maskData) { @@ -729,6 +770,7 @@ void QLineControl::internalInsert(const QString &s) void QLineControl::internalDelete(bool wasBackspace) { if (m_cursor < (int) m_text.length()) { + cancelPasswordEchoTimer(); if (hasSelectedText()) addCommand(Command(SetSelection, m_cursor, 0, m_selstart, m_selend)); addCommand(Command((CommandType)((m_maskData ? 2 : 0) + (wasBackspace ? Remove : Delete)), @@ -755,6 +797,7 @@ void QLineControl::internalDelete(bool wasBackspace) void QLineControl::removeSelectedText() { if (m_selstart < m_selend && m_selend <= (int) m_text.length()) { + cancelPasswordEchoTimer(); separate(); int i ; addCommand(Command(SetSelection, m_cursor, 0, m_selstart, m_selend)); @@ -1153,6 +1196,7 @@ void QLineControl::internalUndo(int until) { if (!isUndoAvailable()) return; + cancelPasswordEchoTimer(); internalDeselect(); while (m_undoState && m_undoState > until) { Command& cmd = m_history[--m_undoState]; @@ -1357,6 +1401,12 @@ void QLineControl::timerEvent(QTimerEvent *event) } else if (event->timerId() == m_tripleClickTimer) { killTimer(m_tripleClickTimer); m_tripleClickTimer = 0; +#ifdef QT_GUI_PASSWORD_ECHO_DELAY + } else if (event->timerId() == m_passwordEchoTimer) { + killTimer(m_passwordEchoTimer); + m_passwordEchoTimer = 0; + updateDisplayText(); +#endif } } diff --git a/src/gui/widgets/qlinecontrol_p.h b/src/gui/widgets/qlinecontrol_p.h index cca4bfa..6a1b4e3 100644 --- a/src/gui/widgets/qlinecontrol_p.h +++ b/src/gui/widgets/qlinecontrol_p.h @@ -66,6 +66,8 @@ #include "QtGui/qcompleter.h" #include "QtGui/qaccessible.h" +#include "qplatformdefs.h" + QT_BEGIN_HEADER QT_BEGIN_NAMESPACE @@ -85,6 +87,9 @@ public: m_ascent(0), m_maxLength(32767), m_lastCursorPos(-1), m_tripleClickTimer(0), m_maskData(0), m_modifiedState(0), m_undoState(0), m_selstart(0), m_selend(0), m_passwordEchoEditing(false) +#ifdef QT_GUI_PASSWORD_ECHO_DELAY + , m_passwordEchoTimer(0) +#endif { init(txt); } @@ -222,6 +227,7 @@ public: uint echoMode() const { return m_echoMode; } void setEchoMode(uint mode) { + cancelPasswordEchoTimer(); m_echoMode = mode; m_passwordEchoEditing = false; updateDisplayText(); @@ -271,7 +277,13 @@ public: QString preeditAreaText() const { return m_textLayout.preeditAreaText(); } void updatePasswordEchoEditing(bool editing); - bool passwordEchoEditing() const { return m_passwordEchoEditing; } + bool passwordEchoEditing() const { +#ifdef QT_GUI_PASSWORD_ECHO_DELAY + if (m_passwordEchoTimer != 0) + return true; +#endif + return m_passwordEchoEditing ; + } QChar passwordCharacter() const { return m_passwordCharacter; } void setPasswordCharacter(const QChar &character) { m_passwordCharacter = character; updateDisplayText(); } @@ -419,6 +431,18 @@ private: bool m_passwordEchoEditing; QChar m_passwordCharacter; +#ifdef QT_GUI_PASSWORD_ECHO_DELAY + int m_passwordEchoTimer; +#endif + void cancelPasswordEchoTimer() + { +#ifdef QT_GUI_PASSWORD_ECHO_DELAY + if (m_passwordEchoTimer != 0) { + killTimer(m_passwordEchoTimer); + m_passwordEchoTimer = 0; + } +#endif + } Q_SIGNALS: void cursorPositionChanged(int, int); diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index 5d2221f..0d2f2a2 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -90,10 +90,9 @@ QT_BEGIN_NAMESPACE -inline static bool isPowerOfTwo(int x) +inline static bool isPowerOfTwo(uint x) { - // Assumption: x >= 1 - return x == (x & -x); + return x && !(x & (x - 1)); } #if defined(Q_WS_WIN) @@ -248,16 +247,13 @@ void QGL2PaintEngineExPrivate::updateBrushTexture() QGLTexture *tex = ctx->d_func()->bindTexture(currentBrushPixmap, GL_TEXTURE_2D, GL_RGBA, QGLContext::InternalBindOption | QGLContext::CanFlipNativePixmapBindOption); -#if !defined(QT_NO_DEBUG) && defined(QT_OPENGL_ES_2) - QGLFunctions funcs(QGLContext::currentContext()); - bool npotSupported = funcs.hasOpenGLFeature(QGLFunctions::NPOTTextures); - bool isNpot = !isPowerOfTwo(currentBrushPixmap.size().width()) - || !isPowerOfTwo(currentBrushPixmap.size().height()); - if (isNpot && !npotSupported) { - qWarning("GL2 Paint Engine: This system does not support the REPEAT wrap mode for non-power-of-two textures."); - } + GLenum wrapMode = GL_REPEAT; +#ifdef QT_OPENGL_ES_2 + // should check for GL_OES_texture_npot or GL_IMG_texture_npot extension + if (!isPowerOfTwo(currentBrushPixmap.width()) || !isPowerOfTwo(currentBrushPixmap.height())) + wrapMode = GL_CLAMP_TO_EDGE; #endif - updateTextureFilter(GL_TEXTURE_2D, GL_REPEAT, q->state()->renderHints & QPainter::SmoothPixmapTransform); + updateTextureFilter(GL_TEXTURE_2D, wrapMode, q->state()->renderHints & QPainter::SmoothPixmapTransform); textureInvertedY = tex->options & QGLContext::InvertedYBindOption ? -1 : 1; } brushTextureDirty = false; diff --git a/src/openvg/qwindowsurface_vgegl.cpp b/src/openvg/qwindowsurface_vgegl.cpp index f7961b4..e16eeb3 100644 --- a/src/openvg/qwindowsurface_vgegl.cpp +++ b/src/openvg/qwindowsurface_vgegl.cpp @@ -686,6 +686,8 @@ QEglContext *QVGEGLWindowSurfaceDirect::ensureContext(QWidget *widget) #endif EGLSurface surface = context->createSurface(widget, &surfaceProps); if (surface == EGL_NO_SURFACE) { + qt_vg_destroy_paint_engine(engine); + engine = 0; qt_vg_destroy_context(context, QInternal::Widget); context = 0; return 0; diff --git a/src/openvg/qwindowsurface_vgegl_p.h b/src/openvg/qwindowsurface_vgegl_p.h index 231c548..2226e28 100644 --- a/src/openvg/qwindowsurface_vgegl_p.h +++ b/src/openvg/qwindowsurface_vgegl_p.h @@ -80,10 +80,8 @@ public: virtual bool supportsStaticContents() const { return false; } virtual bool scroll(QWidget *, const QRegion&, int, int) { return false; } -private: - QVGPaintEngine *engine; - protected: + QVGPaintEngine *engine; QWindowSurface *winSurface; void destroyPaintEngine(); diff --git a/src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp b/src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp index ec6c33f..73435df 100644 --- a/src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp +++ b/src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp @@ -159,7 +159,9 @@ Qt::HANDLE QMeeGoPixmapData::imageToEGLSharedImage(const QImage &image) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glBindTexture(GL_TEXTURE_2D, textureId); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + EGLImageKHR eglimage = QEgl::eglCreateImageKHR(QEgl::display(), QEglContext::currentContext(QEgl::OpenGL)->context(), EGL_GL_TEXTURE_2D_KHR, (EGLClientBuffer) textureId, diff --git a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp index 19b7a76..280f952 100644 --- a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp +++ b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp @@ -52,6 +52,8 @@ #include <QInputContext> #include <private/qapplication_p.h> +#include "qplatformdefs.h" + #ifdef Q_OS_SYMBIAN // In Symbian OS test data is located in applications private dir #define SRCDIR "." @@ -133,6 +135,9 @@ private slots: void focusOutClearSelection(); void echoMode(); +#ifdef QT_GUI_PASSWORD_ECHO_DELAY + void passwordEchoDelay(); +#endif void geometrySignals(); void testQtQuick11Attributes(); void testQtQuick11Attributes_data(); @@ -2051,6 +2056,62 @@ void tst_qdeclarativetextinput::echoMode() delete canvas; } + +#ifdef QT_GUI_PASSWORD_ECHO_DELAY +void tst_qdeclarativetextinput::passwordEchoDelay() +{ + QDeclarativeView *canvas = createView(SRCDIR "/data/echoMode.qml"); + canvas->show(); + canvas->setFocus(); + QApplication::setActiveWindow(canvas); + QTest::qWaitForWindowShown(canvas); + QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(canvas)); + + QVERIFY(canvas->rootObject() != 0); + + QDeclarativeTextInput *input = qobject_cast<QDeclarativeTextInput *>(qvariant_cast<QObject *>(canvas->rootObject()->property("myInput"))); + + QChar fillChar = QLatin1Char('*'); + + input->setEchoMode(QDeclarativeTextInput::Password); + QCOMPARE(input->displayText(), QString(8, fillChar)); + input->setText(QString()); + QCOMPARE(input->displayText(), QString()); + + QTest::keyPress(canvas, '0'); + QTest::keyPress(canvas, '1'); + QTest::keyPress(canvas, '2'); + QCOMPARE(input->displayText(), QString(2, fillChar) + QLatin1Char('2')); + QTest::keyPress(canvas, '3'); + QTest::keyPress(canvas, '4'); + QCOMPARE(input->displayText(), QString(4, fillChar) + QLatin1Char('4')); + QTest::keyPress(canvas, Qt::Key_Backspace); + QCOMPARE(input->displayText(), QString(4, fillChar)); + QTest::keyPress(canvas, '4'); + QCOMPARE(input->displayText(), QString(4, fillChar) + QLatin1Char('4')); + QTest::qWait(QT_GUI_PASSWORD_ECHO_DELAY); + QTRY_COMPARE(input->displayText(), QString(5, fillChar)); + QTest::keyPress(canvas, '5'); + QCOMPARE(input->displayText(), QString(5, fillChar) + QLatin1Char('5')); + input->setFocus(false); + QVERIFY(!input->hasFocus()); + QCOMPARE(input->displayText(), QString(6, fillChar)); + input->setFocus(true); + QTRY_VERIFY(input->hasFocus()); + QCOMPARE(input->displayText(), QString(6, fillChar)); + QTest::keyPress(canvas, '6'); + QCOMPARE(input->displayText(), QString(6, fillChar) + QLatin1Char('6')); + + QInputMethodEvent ev; + ev.setCommitString(QLatin1String("7")); + QApplication::sendEvent(canvas, &ev); + QCOMPARE(input->displayText(), QString(7, fillChar) + QLatin1Char('7')); + + delete canvas; +} +#endif + + void tst_qdeclarativetextinput::simulateKey(QDeclarativeView *view, int key) { QKeyEvent press(QKeyEvent::KeyPress, key, 0); diff --git a/tests/auto/qlineedit/tst_qlineedit.cpp b/tests/auto/qlineedit/tst_qlineedit.cpp index f0f1685..6abbdcd 100644 --- a/tests/auto/qlineedit/tst_qlineedit.cpp +++ b/tests/auto/qlineedit/tst_qlineedit.cpp @@ -72,6 +72,8 @@ #include "qcommonstyle.h" #include "qstyleoption.h" +#include "qplatformdefs.h" + QT_BEGIN_NAMESPACE class QPainter; QT_END_NAMESPACE @@ -180,6 +182,10 @@ private slots: void echoMode(); void passwordEchoOnEdit(); +#ifdef QT_GUI_PASSWORD_ECHO_DELAY + void passwordEchoDelay(); +#endif + void maxLength_mask_data(); void maxLength_mask(); @@ -1724,6 +1730,51 @@ void tst_QLineEdit::passwordEchoOnEdit() testWidget->setEchoMode(QLineEdit::Normal); } +#ifdef QT_GUI_PASSWORD_ECHO_DELAY +void tst_QLineEdit::passwordEchoDelay() +{ + QStyleOptionFrameV2 opt; + QChar fillChar = testWidget->style()->styleHint(QStyle::SH_LineEdit_PasswordCharacter, &opt, testWidget); + + testWidget->setEchoMode(QLineEdit::Password); + testWidget->setFocus(); + testWidget->raise(); + QTRY_VERIFY(testWidget->hasFocus()); + + QTest::keyPress(testWidget, '0'); + QTest::keyPress(testWidget, '1'); + QTest::keyPress(testWidget, '2'); + QCOMPARE(testWidget->displayText(), QString(2, fillChar) + QLatin1Char('2')); + QTest::keyPress(testWidget, '3'); + QTest::keyPress(testWidget, '4'); + QCOMPARE(testWidget->displayText(), QString(4, fillChar) + QLatin1Char('4')); + QTest::keyPress(testWidget, Qt::Key_Backspace); + QCOMPARE(testWidget->displayText(), QString(4, fillChar)); + QTest::keyPress(testWidget, '4'); + QCOMPARE(testWidget->displayText(), QString(4, fillChar) + QLatin1Char('4')); + QTest::qWait(QT_GUI_PASSWORD_ECHO_DELAY); + QTRY_COMPARE(testWidget->displayText(), QString(5, fillChar)); + QTest::keyPress(testWidget, '5'); + QCOMPARE(testWidget->displayText(), QString(5, fillChar) + QLatin1Char('5')); + testWidget->clearFocus(); + QVERIFY(!testWidget->hasFocus()); + QCOMPARE(testWidget->displayText(), QString(6, fillChar)); + testWidget->setFocus(); + QTRY_VERIFY(testWidget->hasFocus()); + QCOMPARE(testWidget->displayText(), QString(6, fillChar)); + QTest::keyPress(testWidget, '6'); + QCOMPARE(testWidget->displayText(), QString(6, fillChar) + QLatin1Char('6')); + + QInputMethodEvent ev; + ev.setCommitString(QLatin1String("7")); + QApplication::sendEvent(testWidget, &ev); + QCOMPARE(testWidget->displayText(), QString(7, fillChar) + QLatin1Char('7')); + + // restore clean state + testWidget->setEchoMode(QLineEdit::Normal); +} +#endif + void tst_QLineEdit::maxLength_mask_data() { QTest::addColumn<QString>("mask"); diff --git a/tests/system/declarative/sys_calculator/sys_calculator.pro b/tests/system/declarative/sys_calculator/sys_calculator.pro new file mode 100644 index 0000000..0ce2973 --- /dev/null +++ b/tests/system/declarative/sys_calculator/sys_calculator.pro @@ -0,0 +1,2 @@ +SOURCES=sys_calculator.qtt +CONFIG+=systemtest diff --git a/tests/system/declarative/sys_calculator/sys_calculator.qtt b/tests/system/declarative/sys_calculator/sys_calculator.qtt new file mode 100644 index 0000000..2b6b008 --- /dev/null +++ b/tests/system/declarative/sys_calculator/sys_calculator.qtt @@ -0,0 +1,136 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +var add = "+"; +var sub = "-"; +var mul = "x"; +var div = "/"; +var xsquared = "x²"; +var plusminus = "±"; + +testcase = { + initTestCase: function() + { + print("Please ensure that $PATH contains $QTDIR/bin, and $QT_SRC_DIR is set to the Qt source directory"); + }, + + init: function() { + testcase.keyCache = {}; + }, + + binary_operations_data: { + operation1: ["0", add, "0", "0"], + operation2: ["0", sub, "0", "0"], + operation3: ["0", mul, "0", "0"], + operation4: ["0", div, "0", "NaN"], + operation5: ["0", add, "1", "1"], + operation6: ["0", sub, "1", "-1"], + operation7: ["0", mul, "1", "0"], + operation8: ["0", div, "1", "0"], + operation9: ["0.56789", add, "7453.0145", "7453.58239"], + operation10: ["0.56789", sub, "7453.0145", "-7452.44661"], + operation11: ["0.56789", mul, "7453.0145", "4232.492404405"], + operation12: ["0.56789", div, "7453.0145", "0.00007619601437780645"] + }, + + binary_operations: function(FirstOperand, Operator, SecondOperand, ExpectedResult) + { + startDemo("calculator"); + + var display = findByProperty("qmlType", "Text")[1]; + + enterNumber( FirstOperand ); + select( Operator ); + enterNumber( SecondOperand ); + select( "=" ); + + compare(getValue(display), ExpectedResult); + }, + + advanced_mode_data: { + operation1: ["-123", "Abs", "123"], + operation2: ["3.14159", "Int", "3"], + operation3: ["65536", "Sqrt", "256"], + operation4: ["123", "^2", "15129"], + operation5: ["500", "1/x", "0.002"], + operation6: ["999", "+/-", "-999"] + }, + + advanced_mode: function(Operand, Operator, ExpectedResult) + { + startDemo("calculator"); + select("Advanced Mode"); + wait(1000); + + var display = findWidget("qmlType", "Text")[1]; + + enterNumber( Operand ); + select( Operator ); + + compare(getValue(display), ExpectedResult); + } +} + +// Enter num as a series of CalcButton activations +function enterNumber(num) { + var numString = num.toString(); + for (var i=0; i<numString.length; i++) { + var digit = numString[i]; + if (testcase.keyCache[digit] == undefined) { + // It is necessary to do this instead of select(digit) because + // the display may have the same text as the required button... + var button = findWidget( { qmlType: "CalcButton", label: digit } ); + testcase.keyCache[digit] = button; + select(button); + } else { + select(testcase.keyCache[digit]); + } + } +} + +// Starts a demo QML file +function startDemo(demo, demoQml) { + if (demoQml == undefined) { + demoQml = demo; + } + startApplication("qml", ["$QT_SRC_DIR/demos/declarative/" + demo + "/" + demoQml + ".qml"]); +} diff --git a/tests/system/declarative/sys_dial/sys_dial.pro b/tests/system/declarative/sys_dial/sys_dial.pro new file mode 100644 index 0000000..6840b59 --- /dev/null +++ b/tests/system/declarative/sys_dial/sys_dial.pro @@ -0,0 +1,2 @@ +CONFIG+=systemtest +SOURCES=sys_dial.qtt diff --git a/tests/system/declarative/sys_dial/sys_dial.qtt b/tests/system/declarative/sys_dial/sys_dial.qtt new file mode 100644 index 0000000..d2ae77e --- /dev/null +++ b/tests/system/declarative/sys_dial/sys_dial.qtt @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +testcase = { + + qtqmlbat9202: function() + { + prompt(twiki('---+++ QTQMLBAT9202 - Dial example + +| *Step* | *Verification* | +| Execute examples/declarative/ui-components/dialcontrol/dialcontrol.qml | | +| Press and drag the slider across and back | Verify that the dial responds appropriately with the position of the slider |')); + } +} diff --git a/tests/system/declarative/sys_flickr/sys_flickr.pro b/tests/system/declarative/sys_flickr/sys_flickr.pro new file mode 100644 index 0000000..df7bd6f --- /dev/null +++ b/tests/system/declarative/sys_flickr/sys_flickr.pro @@ -0,0 +1,2 @@ +SOURCES=sys_flickr.qtt +CONFIG+=systemtest diff --git a/tests/system/declarative/sys_flickr/sys_flickr.qtt b/tests/system/declarative/sys_flickr/sys_flickr.qtt new file mode 100644 index 0000000..fafb19c --- /dev/null +++ b/tests/system/declarative/sys_flickr/sys_flickr.qtt @@ -0,0 +1,69 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//TESTED_COMPONENT=src/declarative + +testcase = { + + qtqmlbat9201: function() + { + prompt(twiki('---+++ QTQMLBAT9201 - Flickr demo + | *Step* | *Verification* | + | Execute demos/declarative/flickr/flickr.qml | Verify that a dialog with progress wheel is displayed | + | Wait for a few moments for the network to connect and download images | Verify that a proper grid is displayed showing flickrs latest images | + | On mobile: Select the *View Mode* button | Verify that the view changes to a list in a smooth Wipe transition | + | On desktop: Select the *View Mode* button | Verify that the view changes to scrollable dial | + | Select the *View Mode* button | Verify that the view reverts to the grid | + | Click on the ellipses icon or tags command (if applicable) | Verify that you can enter a tag | + | Click OK | Verify that images referring to given tag are displayed | + | Select an image | Verify that picture icon moves in to the information panel smoothly and that a new copy of the image is displayed | + | Click on the Star Rating (if applicable) | Verify that you can change your rating for the image | + | Click on [View]/[More] | Verify that the Flip transition is displayed smoothly and that a full size image is shown | + | Move slider to right | Verify that the image zooms in smoothly corresponding with the slider position | + | Zoom in completely | Verify that the image zooms in smoothly | + | Drag image| Verify that you are able to pan the image up/down left/right (if applicable) | + | Leave image in maximum zoom view | | + | Click on [Back]/[More] | Verify that the Flip transition is displayed smoothly and that you are returned to the information panel for the image | + | Click on [View]/[More] again | Verify that the Flip transition is displayed smoothly and that the image is shown in its original size (not zoomed) | + | Revert back to the starting Grid display | Verify that a proper grid is displayed showing flickrs | + | Click [Update] | Verify that the grid has updated with fresh images |')); + } +} diff --git a/tests/system/declarative/sys_parallax/sys_parallax.pro b/tests/system/declarative/sys_parallax/sys_parallax.pro new file mode 100644 index 0000000..f37fc7f --- /dev/null +++ b/tests/system/declarative/sys_parallax/sys_parallax.pro @@ -0,0 +1,2 @@ +CONFIG+=systemtest +SOURCES=sys_parallax.qtt diff --git a/tests/system/declarative/sys_parallax/sys_parallax.qtt b/tests/system/declarative/sys_parallax/sys_parallax.qtt new file mode 100644 index 0000000..5b720d9 --- /dev/null +++ b/tests/system/declarative/sys_parallax/sys_parallax.qtt @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//TESTED_COMPONENT=examples/parallax + +testcase = { + + qtqmlbat9203: function() + { + prompt(twiki('---+++ QTQMLBAT9203 - Parallax example + +| *Step* | *Verification* | +| Execute examples/declarative/modelviews/parallax/parallax.qml | Verify that a ticking clock is displayed | +| Press and drag the right side of the display across to the left | Verify that the display shifts to the second screen | +| - | Verify that a "smiley" is visible, repeatedly bouncing with an approx. 1 second delay | +| Press and drag the right side of the display across to the left | Verify that the display shifts to the third screen | +| Press the leftmost side of the scrollbar entity at the bottom of the display | Verify that the display shifts gently to the first screen |')); + } + +} + diff --git a/tests/system/declarative/sys_pincharea/sys_pincharea.pro b/tests/system/declarative/sys_pincharea/sys_pincharea.pro new file mode 100644 index 0000000..0aed02e --- /dev/null +++ b/tests/system/declarative/sys_pincharea/sys_pincharea.pro @@ -0,0 +1,2 @@ +CONFIG+=systemtest +SOURCES=sys_pincharea.qtt diff --git a/tests/system/declarative/sys_pincharea/sys_pincharea.qtt b/tests/system/declarative/sys_pincharea/sys_pincharea.qtt new file mode 100644 index 0000000..b980cb6 --- /dev/null +++ b/tests/system/declarative/sys_pincharea/sys_pincharea.qtt @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +testcase = { + + pincharea_resize: function() + { + prompt(twiki('---+++ Scaling +| *Step* | *Verification* | +| Execute SystemTests/Qt/examples/declarative/pincharea/pincharea.qml | | +| Press Enable | Enabler button turns green | +| Place two fingers apart on any place in the display, and bring them together | Verify that the qt logo is scaled down (becomes smaller), no less than 50% | +| Place two fingers close together on any place in the display, and push them apart | Verify that the qt logo is scaled up (becomes larger), no more than 200% | +| Place two fingers apart on any place in the display, and bring them together, then push them apart | Verify that the qt logo is scaled down, then up | +| Evaluate | All scaling of the logo should be done in sync with the movement of the fingers |')); + }, + + pincharea_rotate: function() + { + prompt(twiki('---+++ Rotation +If the target device is an N8, expect odd behavior when executing this test. The device does not have a multiple touch screen. +| *Step* | *Verification* | +| Execute SystemTests/Qt/examples/declarative/pincharea/pincharea.qml | | +| Press Enable | Enabler button turns green | +| Place two fingers apart on any place in the display, and turn them in a clockwise circle | The logo rotates with the movement of the fingers | +| Rotate the logo beyond 180 degrees | The logo stops at 150 degrees and does not invert to -150 degrees |')); + }, + + pincharea_drag: function() + { + prompt(twiki('---+++ Dragging +If the target device is an N8, expect odd behavior when executing this test. The device does not have a multiple touch screen. +| *Step* | *Verification* | +| Execute SystemTests/Qt/examples/declarative/pincharea/pincharea.qml | | +| Press Enable | Enabler button turns green | +| Place two fingers on the display, and drag around the screen | | +| | The logo moves in sync with the gesture. The logo does not move its center beyond the bounds of the rectangle |')); + } + +} diff --git a/tests/system/declarative/sys_rtl/sys_rtl.pro b/tests/system/declarative/sys_rtl/sys_rtl.pro new file mode 100644 index 0000000..1837d72 --- /dev/null +++ b/tests/system/declarative/sys_rtl/sys_rtl.pro @@ -0,0 +1,2 @@ +CONFIG+=systemtest +SOURCES=sys_rtl.qtt diff --git a/tests/system/declarative/sys_rtl/sys_rtl.qtt b/tests/system/declarative/sys_rtl/sys_rtl.qtt new file mode 100644 index 0000000..66eb64b --- /dev/null +++ b/tests/system/declarative/sys_rtl/sys_rtl.qtt @@ -0,0 +1,100 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +testcase = { + + implicit_text_alignment: function() + { + prompt(twiki('---++ Implicit Text alignment +Note: Empty/whitepace text has no direction, thus TextEdits will still show the cursor to the left. See http://bugreports.qt.nokia.com/browse/QTBUG-17973 +| *Step* | *Verification* | +| Execute systemtests/Qt/examples/declarative/rtl/rtltext.qml | Verify that the indicator at the bottom shows Implicit alignment | +| Observe the three different element types - Text, TextInput, TextEdit | Verify that for each case where the text box shows right-to-left text, the text is aligned to the right | + }, + + left_center_and_right_text_alignment_data: + { + left: ["Left", "left"], + center: ["Center", "center"], + right: ["Right", "right"] + }, + + left_center_and_right_text_alignment: function(name,alignment) + { + prompt(twiki('---++ '+name+' Text alignment +Note: Empty/whitepace text has no direction, thus TextEdits will still show the cursor to the left. See http://bugreports.qt.nokia.com/browse/QTBUG-17973 +| *Step* | *Verification* | +| Execute systemtests/Qt/examples/declarative/rtl/rtltext.qml | Verify that the indicator at the bottom shows Implicit alignment | +| Press the indicator until '+name+' alignment shows | Verify that the indicator at the bottom shows '+name+' alignment | +| Observe the three different element types - Text, TextInput, TextEdit | Verify that for each case where the text box shows right-to-left text, the text is aligned to the '+alignment+' | + }, + + justified_text_alignment: function() + { + prompt(twiki('---++ Justified Text alignment +Note that this only applies to Text and TextEdit. AlignJustify is not available for TextInput +Note: Empty/whitepace text has no direction, thus TextEdits will still show the cursor to the left. See http://bugreports.qt.nokia.com/browse/QTBUG-17973 +| *Step* | *Verification* | +| Execute systemtests/Qt/examples/declarative/rtl/rtltext.qml | Verify that the indicator at the bottom shows Implicit alignment | +| Press the indicator until Justify alignment shows | Verify that the indicator at the bottom shows Justify alignment | +| Observe two of the three different element types - Text, TextEdit | Verify that for each case where the text box shows right-to-left text, the text is aligned to the right | + }, + + left_center_and_right_text_alignment_data: + { + left: ["Left", "left"], + center: ["Center", "center"], + right: ["Right", "right"] + }, + + select_copy_paste: function(name,alignment) + { +| *Step* | *Verification* | +| Execute systemtests/Qt/examples/declarative/rtl/rtltexteditselection.qml | Verify that the indicator at the bottom button shows Implicit alignment | +| (Skip this on devices with no Home/End key) In the right-to-left TextInput, press Home, then End | Verify the cursor moves fully to the right of the text only, and then fully to the left side respectively | +| Press the lower button until it shows '+name+' Alignment | | +| In the TextEdit field, select some of the text some of the Arabic text | The selected text is shown in the Paste: <text> button - it is now copied | +| At the leftmost position of the text, press Enter on the keypad or soft keyboard | A new line is created below the existing text | +| Press the Paste: <text> button | The text is pasted into the box, also '+alignment+' aligned |')); + } + +} diff --git a/tests/system/declarative/sys_samegame/sys_samegame.pro b/tests/system/declarative/sys_samegame/sys_samegame.pro new file mode 100644 index 0000000..495a843 --- /dev/null +++ b/tests/system/declarative/sys_samegame/sys_samegame.pro @@ -0,0 +1,2 @@ +CONFIG+=systemtest +SOURCES=sys_samegame.qtt diff --git a/tests/system/declarative/sys_samegame/sys_samegame.qtt b/tests/system/declarative/sys_samegame/sys_samegame.qtt new file mode 100644 index 0000000..13177fa --- /dev/null +++ b/tests/system/declarative/sys_samegame/sys_samegame.qtt @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//TESTED_COMPONENT=demos/samegame + +testcase = { + + qtqmlbat9204: function(){ + prompt(twiki('---+++ QTQMLBAT9204 - Samegame demo + + | *Step* | *Verification* | + | Execute demos/declarative/samegame/samegame.qml | Verify that the Samegame application starts smoothly | + | Click on [New Game] | Verify that the balls drop down from top in a smooth fashion | + | Click on a grouping of same colored balls | Verify that the balls disappear smoothly and that visual effects (sparkles) are properly shown | + | Keep on playing until you clear a whole column of balls | Verify that the body of balls to the right of the column move smoothly to fill the void | + | Click on a single colored ball | Verify that this has no effect on the game | + | Play the game till the end | Verify that you are prompted to enter your name | + | | Verify that you are displayed your score and time taken to achieve that | + | Click on [New Game] again | Verify that the transition from score screen to new playing field is smooth |')); + } +} + diff --git a/tests/system/declarative/sys_textedit/sys_textedit.pro b/tests/system/declarative/sys_textedit/sys_textedit.pro new file mode 100644 index 0000000..30d6d5b --- /dev/null +++ b/tests/system/declarative/sys_textedit/sys_textedit.pro @@ -0,0 +1,2 @@ +CONFIG+=systemtest +SOURCES=sys_textedit.qtt diff --git a/tests/system/declarative/sys_textedit/sys_textedit.qtt b/tests/system/declarative/sys_textedit/sys_textedit.qtt new file mode 100644 index 0000000..7c54611 --- /dev/null +++ b/tests/system/declarative/sys_textedit/sys_textedit.qtt @@ -0,0 +1,116 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +testcase = { + + select_text: function() + { + prompt(twiki('---++ Text Selection + +| *Step* | *Verification* | +| Execute systemtests/Qt/examples/declarative/textedit/textedit.qml | | +| Enter Hello World into the green textedit field | Hello World is shown | +| Press the Select Word button, ensuring the previously entered text in no longer in pre-commit mode | World is selected | +| Press the Select All button | Hello World is selected | +| Press the Select None button | No text is selected | +| Press the Mouse Select button | The button turns green and indicates Mouse On | +| Click and drag over some text | Only that text is selected. On sans-keyboard Symbian, the soft keyboard may show with selected text highlighted | +| If the soft keyboard is shown, close it | | +| Press the Mouse Select button | The button turns gray and indicates Mouse Off | +| Click and drag over some text | No text is selected. On sans-keyboard Symbian, the soft keyboard may show | +')); + }, + + cut_copy_and_paste: function() + { + prompt(twiki('---++ Cut, copy and paste + +| *Step* | *Verification* | +| Execute systemtests/Qt/examples/declarative/textedit/textedit.qml | | +| Enter Hello World into the green textedit field | Hello World is shown | +| Press the Select All button | Hello World is selected | +| Press the Copy Button | | +| Press the Paste Button | Hello World is copied to the light-blue textedit | +| Press the Select Word button | World is highlighted | +| Press the Cut button | World is removed from the green textedit | +| Press the Paste button | World is added to the light-blue textedit | +')); + }, + + styling: function() + { + prompt(twiki('---++ Text Styling + +| *Step* | *Verification* | +| Execute systemtests/Qt/examples/declarative/textedit/textedit.qml | | +| Enter Hello World into the green textedit field | Hello World is shown | +| Press the Bold button | Hello World is now in bold | +| Press the Italics button | Hello World is now in italics | +| Press the Strikeout button | Hello World now has a line passing through it | +| Press the Underline button | Hello World is now underlined | ')); + }, + + cursor_behavior: function() + { + prompt(twiki('---++ Cursor Behavior + +| *Step* | *Verification* | +| Execute systemtests/Qt/examples/declarative/textedit/textedit.qml | The Cursor button shows enabled (green) | +| Enter enough text into the field such that it passes beyond the far right | The text wraps to line 2 | +| Press the Cursor button as to disable it | The cursor disappears | +| Press the Cursor button as to enable it | The cursor appears | ')); + }, + + capitalization: function() + { + prompt(twiki('---++ Capitalization + +| *Step* | *Verification* | +| Execute systemtests/Qt/examples/declarative/textedit/textedit.qml | | +| Enter Hello to this World into the green textedit field | Hello to this World is shown | +| Press the All Upper button | The text is converted to all upper case | +| Press the All Lower button | The text is converted to all lower case | +| Press the Small Caps button | The text is converted to all small sized upper case characters | +| Press the Capitalize button | The text is shown with each first character of every word capitalized | ')); + } + +} diff --git a/tests/system/declarative/sys_textinput/sys_textinput.pro b/tests/system/declarative/sys_textinput/sys_textinput.pro new file mode 100644 index 0000000..a11f821 --- /dev/null +++ b/tests/system/declarative/sys_textinput/sys_textinput.pro @@ -0,0 +1,2 @@ +CONFIG+=systemtest +SOURCES=sys_textinput.qtt diff --git a/tests/system/declarative/sys_textinput/sys_textinput.qtt b/tests/system/declarative/sys_textinput/sys_textinput.qtt new file mode 100644 index 0000000..e0d0490 --- /dev/null +++ b/tests/system/declarative/sys_textinput/sys_textinput.qtt @@ -0,0 +1,137 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +testcase = { + + select_text: function() + { + prompt(twiki('---++ Text Selection + +| *Step* | *Verification* | +| Execute systemtests/Qt/examples/declarative/textinput/textinput.qml | | +| Enter Hello World into the green textinput field | Hello World is shown | +| Press the Select Word button | World is selected | +| Press the Select All button | Hello World is selected | +| Press the Select None button | No text is selected | +| Press the Mouse Select button | The button turns green and indicates Mouse On | +| Click and drag over some text | Only that text is selected. On sans-keyboard Symbian, the soft keyboard will show with selected text highlighted | +| Press the Mouse Select button | The button turns gray and indicates Mouse Off | +| Click and drag over some text | No text is selected. On sans-keyboard Symbian, the soft keyboard will show | +')); + }, + + cut_copy_and_paste: function() + { + prompt(twiki('---++ Cut, copy and paste + +| *Step* | *Verification* | +| Execute systemtests/Qt/examples/declarative/textinput/textinput.qml | | +| Enter Hello World into the green textinput field | Hello World is shown | +| Press the Select All button | Hello World is selected | +| Press the Copy Button | | +| Press the Paste Button | Hello World is copied to the light-blue textinput | +| Press the Select Word button | World is highlighted | +| Press the Cut button | World is removed from the green textinput | +| Press the Paste button | World is added to the light-blue textinput | +')); + }, + + password_echo_mode: function() + { + prompt(twiki('---++ Password Echo + +| *Step* | *Verification* | +| Execute systemtests/Qt/examples/declarative/textinput/textinput.qml | | +| Enter Hello World into the green textinput field | Hello World is shown | +| Press the Password button | Hello World is now a string of asterisks | +| Enter an exclamation mark | An asterisk is added to the string | +| Press the No Echo button | No text is visible | +| Enter an exclamation mark | No text is shown | +| Press the Password Edit button | A string of asterisks is shown | +| Enter an exclamation mark | An exclamation mark appears at the end of the asterisks, but shortly becomes an asterisk | +| Press the Normal button | Hello World!!! is now displayed | +')); + }, + + styling: function() + { + prompt(twiki('---++ Text Styling + +| *Step* | *Verification* | +| Execute systemtests/Qt/examples/declarative/textinput/textinput.qml | | +| Enter Hello World into the green textinput field | Hello World is shown | +| Press the Bold button | Hello World is now in bold | +| Press the Italics button | Hello World is now in italics | +| Press the Strikeout button | Hello World now has a line passing through it | +| Press the Underline button | Hello World is now underlined | ')); + }, + + cursor_behavior: function() + { + prompt(twiki('---++ Cursor Behavior + +| *Step* | *Verification* | +| Execute systemtests/Qt/examples/declarative/textinput/textinput.qml | | +| Enter enough text into the field such that it passes beyond the far right | The first half of the text is shown | +| Press the Autoscroll button | The far right edge shows the last character of the text | +| Enter some more text | The TextInput scrolls the text so that the last character is always visible | +| Move the cursor to the left of the input field | | +| Move a couple of characters further to the left | Scrolling follows the cursor | +| Press the Autoscroll button | The text is shown from the start | +| Press the Cursor button as to disable it | The cursor disappears | +| Press the Cursor button as to enable it | The cursor appears | ')); + }, + + capitalization: function() + { + prompt(twiki('---++ Capitalization + +| *Step* | *Verification* | +| Execute systemtests/Qt/examples/declarative/textinput/textinput.qml | | +| Enter Hello to this World into the green textinput field | Hello to this World is shown | +| Press the All Upper button | The text is converted to all upper case | +| Press the All Lower button | The text is converted to all lower case | +| Press the Small Caps button | The text is converted to all small sized upper case characters | +| Press the Capitalize button | The text is shown with each first character of every word capitalized | ')); + } + +} diff --git a/tests/system/declarative/sys_twitter/sys_twitter.pro b/tests/system/declarative/sys_twitter/sys_twitter.pro new file mode 100644 index 0000000..96f61f0 --- /dev/null +++ b/tests/system/declarative/sys_twitter/sys_twitter.pro @@ -0,0 +1,2 @@ +CONFIG+=systemtest +SOURCES=sys_twitter.qtt diff --git a/tests/system/declarative/sys_twitter/sys_twitter.qtt b/tests/system/declarative/sys_twitter/sys_twitter.qtt new file mode 100644 index 0000000..64dc024 --- /dev/null +++ b/tests/system/declarative/sys_twitter/sys_twitter.qtt @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//TESTED_COMPONENT=demos/twitter + +testcase = { + + qtxmlbat9205: function() { + prompt(twiki('---+++ QTQMLBAT9205 - Twitter demo + + | *Step* | *Verification* | + | Execute the demos/declarative/twitter/twitter.qml | Verify that the Twitter application starts smoothly | + | Either enter you Twitter credentials or click [Guest] | Verify that Twitter opens up as expected | + | Scroll down the list of tweets | Verify that the list scrolls smoothly as expected | + | Click the [Ellipsis] icon and enter a search term | Verify that the latest tweets from the searched twitter are displayed | + | Click [Return Home] | Verify that you are taken to the main twitter display screen | + | Click [Update] | Verify that the list of twitts has updated| + | Click on a Twitters handle | Verify that twitts from that twitter are displayed |')); + } + +} diff --git a/tests/system/declarative/sys_webbrowser/sys_webbrowser.pro b/tests/system/declarative/sys_webbrowser/sys_webbrowser.pro new file mode 100644 index 0000000..958bd0c --- /dev/null +++ b/tests/system/declarative/sys_webbrowser/sys_webbrowser.pro @@ -0,0 +1,2 @@ +SOURCES=sys_webbrowser.qtt +CONFIG+=systemtest diff --git a/tests/system/declarative/sys_webbrowser/sys_webbrowser.qtt b/tests/system/declarative/sys_webbrowser/sys_webbrowser.qtt new file mode 100644 index 0000000..6313691 --- /dev/null +++ b/tests/system/declarative/sys_webbrowser/sys_webbrowser.qtt @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +testcase = { + + web1: function() + { + startApplication("qmlviewer", ["$QT_SRC_DIR/demos/declarative/webbrowser/webbrowser.qml"]); + print(getenv("QT_SRC_DIR")); + if(getenv("QT_SRC_DIR") == "") { + skip("Please set environment variable QT_SRC_DIR to source root", SkipAll); + } + var url = findWidget( { qmlType: "TextInput" } ); + var title = findWidget( { qmlType: "Text" } )[0]; + var web = findWidget( { qmlType: "WebView" } ); + expect(function(){ return getProperty(web, "progress") == 1 }, 5000, 1, "Page not loaded in time"); + enter("http://www.google.com", url); + expect(function(){ return getProperty(web, "progress") == 1 }, 5000, 1, "Page not loaded in time"); + } +} + diff --git a/tests/system/sys_addressbook/sys_addressbook.pro b/tests/system/sys_addressbook/sys_addressbook.pro new file mode 100644 index 0000000..ba86106 --- /dev/null +++ b/tests/system/sys_addressbook/sys_addressbook.pro @@ -0,0 +1,2 @@ +CONFIG+=systemtest +SOURCES=sys_addressbook.qtt diff --git a/tests/system/sys_addressbook/sys_addressbook.qtt b/tests/system/sys_addressbook/sys_addressbook.qtt new file mode 100644 index 0000000..5159be3 --- /dev/null +++ b/tests/system/sys_addressbook/sys_addressbook.qtt @@ -0,0 +1,69 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +testcase = { + + // addressbook + // if the contact name is not at between A~Z or (a~z),which Tab it will in? + test_addressbook:function(contact_name,contact_address,tabname) { + startApplication("$QTDIR/examples/itemviews/addressbook/addressbook"); + select("Add"); + + enter(contact_name, "Name"); + compare(getText("Name"), contact_name); + enter(contact_address, "Address"); + compare( getText("Address"), contact_address); + + select("OK"); + + select(tabname, tabBar()); + var table = findByProperty({inherits: "QAbstractTableModel"}); + selectIndex([0,0],table); + compare(getSelectedText(table), contact_name); + selectIndex([0,1],table); + compare(getSelectedText(table), contact_address); + }, + test_addressbook_data: { + contact1: ["AAA", "bbb", "ABC"], + contact2: ["EEE", "fff", "DEF"] + } +} diff --git a/tests/system/sys_analogclock/sys_analogclock.pro b/tests/system/sys_analogclock/sys_analogclock.pro new file mode 100644 index 0000000..a124cb7 --- /dev/null +++ b/tests/system/sys_analogclock/sys_analogclock.pro @@ -0,0 +1,2 @@ +CONFIG+=systemtest +SOURCES=sys_analogclock.qtt diff --git a/tests/system/sys_analogclock/sys_analogclock.qtt b/tests/system/sys_analogclock/sys_analogclock.qtt new file mode 100644 index 0000000..9fe42cf --- /dev/null +++ b/tests/system/sys_analogclock/sys_analogclock.qtt @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +testcase = { + + // analogclock + test_analogclock: function() { + startApplication("$QTDIR/examples/widgets/analogclock/analogclock"); + verifyImage("analogclock_1"); + // wait for the screensaver + wait(6000); + verifyImage("analogclock_2"); + } +} diff --git a/tests/system/sys_animatedtiles/sys_animatedtiles.pro b/tests/system/sys_animatedtiles/sys_animatedtiles.pro new file mode 100644 index 0000000..3efa4e0 --- /dev/null +++ b/tests/system/sys_animatedtiles/sys_animatedtiles.pro @@ -0,0 +1,2 @@ +CONFIG+=systemtest +SOURCES=sys_animatedtiles.qtt diff --git a/tests/system/sys_animatedtiles/sys_animatedtiles.qtt b/tests/system/sys_animatedtiles/sys_animatedtiles.qtt new file mode 100644 index 0000000..6b14a51 --- /dev/null +++ b/tests/system/sys_animatedtiles/sys_animatedtiles.qtt @@ -0,0 +1,73 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +testcase = { + + // verifyImage() *is* useful here, as the images should match on subsequent test runs + + test_animatedtiles: function() { + + startApplication("$QTDIR/examples/animation/animatedtiles/animatedtiles"); + var buttons = findWidget( { className: "Button" } ); + var ellipse = buttons[0]; + var figure8 = buttons[1]; + var random = buttons[2]; + var tiled = buttons[3]; + var center = buttons[4]; + + mouseClick(ellipse); + wait(3000); + verifyImage("animatedtiles_ellipse"); + mouseClick(figure8); + wait(3000); + verifyImage("animatedtiles_figure8"); + mouseClick(random); + wait(3000); + verifyImage("animatedtiles_random"); + mouseClick(tiled); + wait(3000); + verifyImage("animatedtiles_tiled"); + mouseClick(center); + wait(3000); + verifyImage("animatedtiles_centered"); + } +} diff --git a/tests/system/sys_anomaly/sys_anomaly.pro b/tests/system/sys_anomaly/sys_anomaly.pro new file mode 100644 index 0000000..99f9b9d --- /dev/null +++ b/tests/system/sys_anomaly/sys_anomaly.pro @@ -0,0 +1,2 @@ +SOURCES=sys_anomaly.qtt +CONFIG+=systemtest diff --git a/tests/system/sys_anomaly/sys_anomaly.qtt b/tests/system/sys_anomaly/sys_anomaly.qtt new file mode 100644 index 0000000..330ec85 --- /dev/null +++ b/tests/system/sys_anomaly/sys_anomaly.qtt @@ -0,0 +1,89 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +testcase = { + + // anomaly + test_anomaly: function() { + + startApplication("$QTDIR/demos/embedded/anomaly/anomaly"); + + var lineEdit = findWidget( {className: "QLineEdit"} ); + enter("qt.nokia.com", lineEdit); + select("Go"); + var browserView = findWidget( {className: "BrowserView"} ); + var web = findWidget( { inherits: "QWebView" } ); + waitFor(20000) { return getProperty(web, "progress") == 1; } + var back = backButton(); + + var zoomIn = zoomInButton(); + var zoomOut = zoomOutButton(); + + //zoom in + mouseClick(zoomIn); + wait(2000); + mouseClick(zoomIn); + wait(2000); + + //zoom out + mouseClick(zoomOut); + wait(2000); + + select("Introducing the Qt Board Verification Program",web); + waitFor(20000) { return getProperty(web, "progress") == 1; } + wait(1000); + mouseClick(back); + waitFor(20000) { return getProperty(web, "progress") == 1; } + select("Official News",web); + waitFor(20000) { return getProperty(web, "progress") == 1; } + verify(getProperty(web, "title").contains("News")); + wait(1000); + mouseClick(back); + waitFor(20000) { return getProperty(web, "progress") == 1; } + select("Downloads",web); + waitFor(20000) { return getProperty(web, "progress") == 1; } + verify(getProperty(web, "title").contains("Downloads")); + wait(1000); + mouseClick(back); + waitFor(20000) { return getProperty(web, "progress") == 1; } + } +} diff --git a/tests/system/sys_collidingmice/sys_collidingmice.pro b/tests/system/sys_collidingmice/sys_collidingmice.pro new file mode 100644 index 0000000..dff65ca --- /dev/null +++ b/tests/system/sys_collidingmice/sys_collidingmice.pro @@ -0,0 +1,2 @@ +CONFIG+=systemtest +SOURCES=sys_collidingmice.qtt diff --git a/tests/system/sys_collidingmice/sys_collidingmice.qtt b/tests/system/sys_collidingmice/sys_collidingmice.qtt new file mode 100644 index 0000000..8334ce5 --- /dev/null +++ b/tests/system/sys_collidingmice/sys_collidingmice.qtt @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +testcase = { + + // collidingmice + test_collidingmice: function() { + + startApplication("$QTDIR/examples/graphicsview/collidingmice/collidingmice"); + verifyImage("collidingmice_1"); + wait(500); + verifyImage("collidingmice_2"); + wait(500); + verifyImage("collidingmice_3"); + wait(500); + verifyImage("collidingmice_4"); + + } +} diff --git a/tests/system/sys_imagegestures/sys_imagegestures.pro b/tests/system/sys_imagegestures/sys_imagegestures.pro new file mode 100644 index 0000000..640803d --- /dev/null +++ b/tests/system/sys_imagegestures/sys_imagegestures.pro @@ -0,0 +1,2 @@ +CONFIG+=systemtest +SOURCES=sys_imagegestures.qtt diff --git a/tests/system/sys_imagegestures/sys_imagegestures.qtt b/tests/system/sys_imagegestures/sys_imagegestures.qtt new file mode 100644 index 0000000..78d5f23 --- /dev/null +++ b/tests/system/sys_imagegestures/sys_imagegestures.qtt @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +testcase = { + + // imagegestures + // ?? QtUiTest should support these gestures: swipe, pan and pinch.?? + // ?? How to press the minimize button, maximize button and close button in QtUiTest? + + test_imagegestures: function() { + + startApplication("imagegestures"); + verifyImage("imagegestures_1"); + + select("Choose"); + wait(6000); + } +} diff --git a/tests/system/sys_masterdetail/sys_masterdetail.pro b/tests/system/sys_masterdetail/sys_masterdetail.pro new file mode 100644 index 0000000..792a3ce --- /dev/null +++ b/tests/system/sys_masterdetail/sys_masterdetail.pro @@ -0,0 +1,2 @@ +CONFIG+=systemtest +SOURCES=sys_masterdetail.qtt diff --git a/tests/system/sys_masterdetail/sys_masterdetail.qtt b/tests/system/sys_masterdetail/sys_masterdetail.qtt new file mode 100644 index 0000000..67599ab --- /dev/null +++ b/tests/system/sys_masterdetail/sys_masterdetail.qtt @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +testcase = { + + // ?? How to select image?? + // ?? How to compare image?? + test_masterdetail: function() { + + startApplication("$QTDIR/examples/sql/masterdetail/masterdetail"); + // need to verifyImage + verifyImage("masterdetail_1"); + + //select an art form artilst + var artist = findWidget({className: "QComboBox"}); + select("Ane Brun",artist); + //print(getLabels()); + verify(getLabels().join().contains("Details/Artist : Ane Brun")); + verify(getLabels().join().contains("Number of Albums: 2")); + + verifyImage("masterdetail_2"); + + // choose the albums, please see the chages in the datails. + var album = findWidget({className: "QTableView"}); + select("Spending Time With Morgan",album); + //print(getLabels()); + verify(getLabels().join().contains("Details/Title: Spending Time With Morgan (2003)")); + verifyImage("masterdetail_3"); + + select("A Temporary Dive",album); + //print(getLabels()); + verify(getLabels().join().contains("Details/Title: A Temporary Dive (2005)")); + verifyImage("masterdetail_4"); + } +} diff --git a/tests/system/sys_previewer/sys_previewer.pro b/tests/system/sys_previewer/sys_previewer.pro new file mode 100644 index 0000000..39850e7 --- /dev/null +++ b/tests/system/sys_previewer/sys_previewer.pro @@ -0,0 +1,2 @@ +CONFIG+=systemtest +SOURCES=sys_previewer.qtt diff --git a/tests/system/sys_previewer/sys_previewer.qtt b/tests/system/sys_previewer/sys_previewer.qtt new file mode 100644 index 0000000..a6e1293 --- /dev/null +++ b/tests/system/sys_previewer/sys_previewer.qtt @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +testcase = { + + // previewer + test_previewer: function() { + startApplication("$QTDIR/examples/webkit/previewer/previewer"); + verifyImage("previewer_1"); + + //get editor + var editor = findWidget({className: "QPlainTextEdit"}); + + //get previewer + var previewer = findWidget({className: "QWebView"}); + + prompt(getText(editor)); + prompt(getText(previewer)); + + select("Clear"); + select("Preview"); + verifyImage("previewer_2"); + } +} diff --git a/tests/system/sys_qftp/sys_qftp.pro b/tests/system/sys_qftp/sys_qftp.pro new file mode 100644 index 0000000..00d6cc7 --- /dev/null +++ b/tests/system/sys_qftp/sys_qftp.pro @@ -0,0 +1,2 @@ +CONFIG+=systemtest +SOURCES=sys_qftp.qtt diff --git a/tests/system/sys_qftp/sys_qftp.qtt b/tests/system/sys_qftp/sys_qftp.qtt new file mode 100644 index 0000000..0c791f8 --- /dev/null +++ b/tests/system/sys_qftp/sys_qftp.qtt @@ -0,0 +1,72 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +testcase = { + + // qftp + test_qftp: function() { + startApplication("$QTDIR/examples/network/qftp/qftp"); + + select("Connect"); + + //wait for connection to server + waitFor() { return getLabels().contains("Logged onto ftp.qt.nokia.com."); } + + //select a file robots.txt + var fileList = findWidget( {inherits: "QTreeWidget"} ); + waitFor() { return getList(fileList).contains("robots.txt"); } + + select("robots.txt", fileList); + select("Download"); + + var messageBox = findByProperty({inherits: "QMessageBox"}); + var progressDialog = findByProperty({inherits: "QProgressDialog"}); + + if(isVisible(messageBox) && progressDialog.length == 0) + { + select("OK"); + print("The file exists."); + } else { + waitFor() { return getLabels().contains("Downloaded robots.txt to current directory."); } + } + } +} diff --git a/tests/system/sys_svgviewer/sys_svgviewer.pro b/tests/system/sys_svgviewer/sys_svgviewer.pro new file mode 100644 index 0000000..95bb0ca --- /dev/null +++ b/tests/system/sys_svgviewer/sys_svgviewer.pro @@ -0,0 +1,2 @@ +CONFIG+=systemtest +SOURCES=sys_svgviewer.qtt diff --git a/tests/system/sys_svgviewer/sys_svgviewer.qtt b/tests/system/sys_svgviewer/sys_svgviewer.qtt new file mode 100644 index 0000000..e087175 --- /dev/null +++ b/tests/system/sys_svgviewer/sys_svgviewer.qtt @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +testcase = { + + // svgviewer + test_svgviewer: function() { + + startApplication("$QTDIR/examples/painting/svgviewer/svgviewer"); + verifyImage("svgviewer_1"); + + //select menu + select("Renderer/Image",menuBar()); + // select("Image"); + verifyImage("svgviewer_2"); + } +} diff --git a/tests/system/sys_wiggly/sys_wiggly.pro b/tests/system/sys_wiggly/sys_wiggly.pro new file mode 100644 index 0000000..9481a83 --- /dev/null +++ b/tests/system/sys_wiggly/sys_wiggly.pro @@ -0,0 +1,2 @@ +CONFIG+=systemtest +SOURCES=sys_wiggly.qtt diff --git a/tests/system/sys_wiggly/sys_wiggly.qtt b/tests/system/sys_wiggly/sys_wiggly.qtt new file mode 100644 index 0000000..0d3dd18 --- /dev/null +++ b/tests/system/sys_wiggly/sys_wiggly.qtt @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the FOO module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +testcase = { + + // wiggly + // ?? How to compare the text which we input in the lineEdit and the animated text in the wigglywidget ?? + test_wiggly: function(text) { + + startApplication("$QTDIR/examples/widgets/wiggly/wiggly"); + verifyImage("wiggly_1"); + + var lineEdit = findWidget({classname: "QLineEdit"}); + enter(text,lineEdit); + compare(getSelectedText(lineEdit), text); + verifyImage("wiggly_2"); + wait(1000); + verifyImage("wiggly_3"); + }, + test_wiggly_data:{ + text1: ["hello Qt"], + text2: ["a#b %c^defghighllahdal^^$^"] + }, +} |