summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@nokia.com>2011-07-20 13:01:24 +0200
committerLiang Qi <liang.qi@nokia.com>2011-07-20 13:01:24 +0200
commitb7b20e33f36fd942811af33eae906ccdcf486112 (patch)
treeb79f93c0cb2ef72056a378aec0d28a770ae07b8a
parente35c073c72bb297b4760ee4041ce487c08723d14 (diff)
parentb8205bd9dc0288f66f1c23e9f227e703bc6712bd (diff)
downloadqt4-tools-b7b20e33f36fd942811af33eae906ccdcf486112.tar.gz
Merge remote-tracking branch 'origin/4.7' into qt-4.8-from-4.7
Conflicts: src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-gpos.c3
-rw-r--r--src/declarative/graphicsitems/qdeclarativetextinput.cpp2
-rw-r--r--src/gui/widgets/qlinecontrol.cpp54
-rw-r--r--src/gui/widgets/qlinecontrol_p.h26
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp20
-rw-r--r--src/openvg/qwindowsurface_vgegl.cpp2
-rw-r--r--src/openvg/qwindowsurface_vgegl_p.h4
-rw-r--r--src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp4
-rw-r--r--tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp61
-rw-r--r--tests/auto/qlineedit/tst_qlineedit.cpp51
-rw-r--r--tests/system/declarative/sys_calculator/sys_calculator.pro2
-rw-r--r--tests/system/declarative/sys_calculator/sys_calculator.qtt136
-rw-r--r--tests/system/declarative/sys_dial/sys_dial.pro2
-rw-r--r--tests/system/declarative/sys_dial/sys_dial.qtt53
-rw-r--r--tests/system/declarative/sys_flickr/sys_flickr.pro2
-rw-r--r--tests/system/declarative/sys_flickr/sys_flickr.qtt69
-rw-r--r--tests/system/declarative/sys_parallax/sys_parallax.pro2
-rw-r--r--tests/system/declarative/sys_parallax/sys_parallax.qtt59
-rw-r--r--tests/system/declarative/sys_pincharea/sys_pincharea.pro2
-rw-r--r--tests/system/declarative/sys_pincharea/sys_pincharea.qtt78
-rw-r--r--tests/system/declarative/sys_rtl/sys_rtl.pro2
-rw-r--r--tests/system/declarative/sys_rtl/sys_rtl.qtt100
-rw-r--r--tests/system/declarative/sys_samegame/sys_samegame.pro2
-rw-r--r--tests/system/declarative/sys_samegame/sys_samegame.qtt60
-rw-r--r--tests/system/declarative/sys_textedit/sys_textedit.pro2
-rw-r--r--tests/system/declarative/sys_textedit/sys_textedit.qtt116
-rw-r--r--tests/system/declarative/sys_textinput/sys_textinput.pro2
-rw-r--r--tests/system/declarative/sys_textinput/sys_textinput.qtt137
-rw-r--r--tests/system/declarative/sys_twitter/sys_twitter.pro2
-rw-r--r--tests/system/declarative/sys_twitter/sys_twitter.qtt59
-rw-r--r--tests/system/declarative/sys_webbrowser/sys_webbrowser.pro2
-rw-r--r--tests/system/declarative/sys_webbrowser/sys_webbrowser.qtt60
-rw-r--r--tests/system/sys_addressbook/sys_addressbook.pro2
-rw-r--r--tests/system/sys_addressbook/sys_addressbook.qtt69
-rw-r--r--tests/system/sys_analogclock/sys_analogclock.pro2
-rw-r--r--tests/system/sys_analogclock/sys_analogclock.qtt53
-rw-r--r--tests/system/sys_animatedtiles/sys_animatedtiles.pro2
-rw-r--r--tests/system/sys_animatedtiles/sys_animatedtiles.qtt73
-rw-r--r--tests/system/sys_anomaly/sys_anomaly.pro2
-rw-r--r--tests/system/sys_anomaly/sys_anomaly.qtt89
-rw-r--r--tests/system/sys_collidingmice/sys_collidingmice.pro2
-rw-r--r--tests/system/sys_collidingmice/sys_collidingmice.qtt58
-rw-r--r--tests/system/sys_imagegestures/sys_imagegestures.pro2
-rw-r--r--tests/system/sys_imagegestures/sys_imagegestures.qtt57
-rw-r--r--tests/system/sys_masterdetail/sys_masterdetail.pro2
-rw-r--r--tests/system/sys_masterdetail/sys_masterdetail.qtt74
-rw-r--r--tests/system/sys_previewer/sys_previewer.pro2
-rw-r--r--tests/system/sys_previewer/sys_previewer.qtt63
-rw-r--r--tests/system/sys_qftp/sys_qftp.pro2
-rw-r--r--tests/system/sys_qftp/sys_qftp.qtt72
-rw-r--r--tests/system/sys_svgviewer/sys_svgviewer.pro2
-rw-r--r--tests/system/sys_svgviewer/sys_svgviewer.qtt56
-rw-r--r--tests/system/sys_wiggly/sys_wiggly.pro2
-rw-r--r--tests/system/sys_wiggly/sys_wiggly.qtt63
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 a21600579e..7bd3b3b3a4 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 3fd4fcdac0..5245236a47 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 bf36033c08..84674a51d3 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 cca4bfaeba..6a1b4e33be 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 5d2221f50c..0d2f2a29c3 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 f7961b4a7d..e16eeb3629 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 231c5488a9..2226e2838e 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 ec6c33fa07..73435dfdbb 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 19b7a76c1c..280f952204 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 f0f168510b..6abbdcdf17 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 0000000000..0ce297354a
--- /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 0000000000..2b6b008cd0
--- /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 0000000000..6840b598dd
--- /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 0000000000..d2ae77ef79
--- /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 0000000000..df7bd6fa7a
--- /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 0000000000..fafb19cb54
--- /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 0000000000..f37fc7fe06
--- /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 0000000000..5b720d9fba
--- /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 0000000000..0aed02e989
--- /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 0000000000..b980cb6acf
--- /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 0000000000..1837d72dd1
--- /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 0000000000..66eb64b49a
--- /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 0000000000..495a843fff
--- /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 0000000000..13177fa84d
--- /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 0000000000..30d6d5b17c
--- /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 0000000000..7c54611204
--- /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 0000000000..a11f821742
--- /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 0000000000..e0d0490752
--- /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 0000000000..96f61f0825
--- /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 0000000000..64dc024e87
--- /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 0000000000..958bd0c656
--- /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 0000000000..6313691cf8
--- /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 0000000000..ba86106905
--- /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 0000000000..5159be37b2
--- /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 0000000000..a124cb7f55
--- /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 0000000000..9fe42cf84f
--- /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 0000000000..3efa4e07ca
--- /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 0000000000..6b14a510db
--- /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 0000000000..99f9b9da7f
--- /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 0000000000..330ec8525c
--- /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 0000000000..dff65ca27d
--- /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 0000000000..8334ce51c9
--- /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 0000000000..640803dbc4
--- /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 0000000000..78d5f23244
--- /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 0000000000..792a3ce9ce
--- /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 0000000000..67599abf89
--- /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 0000000000..39850e7b72
--- /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 0000000000..a6e1293d9a
--- /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 0000000000..00d6cc7398
--- /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 0000000000..0c791f8919
--- /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 0000000000..95bb0ca161
--- /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 0000000000..e087175764
--- /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 0000000000..9481a837b3
--- /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 0000000000..0d3dd189a6
--- /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^^$^"]
+ },
+}