diff options
author | Damian Jansen <damian.jansen@nokia.com> | 2011-02-17 15:16:37 +1000 |
---|---|---|
committer | Damian Jansen <damian.jansen@nokia.com> | 2011-02-17 15:16:37 +1000 |
commit | 5c4f4ef376bfdbfe30654096ac3067a4565b74ee (patch) | |
tree | fa27173f6402d099567b6dbeb581ea4658ff3fe5 | |
parent | 72f6a9ee7ca58fc0a9687fe29cd42f412aec6acf (diff) |
TextInput tests
3 files changed, 465 insertions, 0 deletions
diff --git a/Qt/examples/declarative/textinput/ToggleButton.qml b/Qt/examples/declarative/textinput/ToggleButton.qml new file mode 100644 index 0000000..a771b57 --- /dev/null +++ b/Qt/examples/declarative/textinput/ToggleButton.qml @@ -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 QtUiTest. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, 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. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Rectangle { + property bool active: false + property string effectname: "" + height: 30; width: 100; color: "gray"; radius: 5; border.color: "black" + Rectangle { + id: status + height: 10; width: 10; anchors.top: parent.top; anchors.left: parent.left; anchors.topMargin: 10; anchors.leftMargin: 10 + color: active ? "green" : "red" + } + Text { + anchors.verticalCenter: parent.verticalCenter; anchors.left: status.right; anchors.leftMargin: 5; text: effectname + } + MouseArea { + anchors.fill: parent; onClicked: { active = !active } + } +}
\ No newline at end of file diff --git a/Qt/examples/declarative/textinput/sys_textinput/sys_textinput.qtt b/Qt/examples/declarative/textinput/sys_textinput/sys_textinput.qtt new file mode 100644 index 0000000..51e4bf0 --- /dev/null +++ b/Qt/examples/declarative/textinput/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 QtUiTest. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, 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. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $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 is highlighted to represent selectByMouse = true | +| 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 is un-highlighted to represent selectByMouse = false | +| 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/Qt/examples/declarative/textinput/textinput.qml b/Qt/examples/declarative/textinput/textinput.qml new file mode 100644 index 0000000..011a210 --- /dev/null +++ b/Qt/examples/declarative/textinput/textinput.qml @@ -0,0 +1,269 @@ +/**************************************************************************** +** +** 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 QtUiTest. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, 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. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Rectangle { + height: 360; width: 640; color: "gray" + + Rectangle { id: textinput1box; width: 200; height: 30; color: "green" + anchors.left: parent.left; anchors.leftMargin: 20; anchors.top: parent.top; anchors.topMargin: 10 } + + Rectangle { + id: textinput2box; width: 200; height: 30; color: "lightblue" + anchors.left: parent.left; anchors.leftMargin: 20; anchors.top: textinput1.bottom; anchors.topMargin: 10 } + + TextInput { + id: textinput1 + anchors.fill: textinput1box + font.bold: bolded.active + font.italic: italics.active + font.strikeout : strikeouton.active + font.underline : underlineon.active + smooth: smoothon.active + cursorVisible: cursoron.active + autoScroll: autoscrollon.active + } + + Column { + anchors.left: textinput1.right; anchors.leftMargin: 5; spacing: 2 + Text { + id: textinputinfo + anchors.left: textinput1.right; anchors.leftMargin: 5 + text: "Pos: "+ textinput1.cursorPosition +" Sel: "+ textinput1.selectionStart +"-"+ textinput1.selectionEnd +" Max: "+ textinput1.maximumLength + } + + Row { + id: textcolor + Text { text: "Text Color: " } + Rectangle { color: "black"; height: 20; width: 20; MouseArea { anchors.fill: parent; onClicked: { textinput1.color = "black" } } } + Rectangle { color: "red"; height: 20; width: 20; MouseArea { anchors.fill: parent; onClicked: { textinput1.color = "red" } } } + Rectangle { color: "brown"; height: 20; width: 20; MouseArea { anchors.fill: parent; onClicked: { textinput1.color = "brown" } } } + } + Row { + id: selectedcolor + Text { text: "Selected Text Color: " } + Rectangle { color: "black"; height: 20; width: 20; MouseArea { anchors.fill: parent; onClicked: { textinput1.selectedTextColor = "black" } } } + Rectangle { color: "red"; height: 20; width: 20; MouseArea { anchors.fill: parent; onClicked: { textinput1.selectedTextColor = "red" } } } + Rectangle { color: "brown"; height: 20; width: 20; MouseArea { anchors.fill: parent; onClicked: { textinput1.selectedTextColor = "brown" } } } + } + Row { + id: selectioncolor + Text { text: "Selection Color: " } + Rectangle { color: "black"; height: 20; width: 20; MouseArea { anchors.fill: parent; onClicked: { textinput1.selectionColor = "black" } } } + Rectangle { color: "red"; height: 20; width: 20; MouseArea { anchors.fill: parent; onClicked: { textinput1.selectionColor = "red" } } } + Rectangle { color: "brown"; height: 20; width: 20; MouseArea { anchors.fill: parent; onClicked: { textinput1.selectionColor = "brown" } } } + } + } + + TextInput { + id: textinput2 + anchors.fill: textinput2box + } + + Rectangle { anchors.fill: controlsview; color: "transparent"; border.color: "black" } + ListView { + id: controlsview + model: controls + height: parent.height - 90; width: parent.width - 10; orientation: ListView.Horizontal + anchors.horizontalCenter: parent.horizontalCenter; anchors.bottom: parent.bottom; anchors.bottomMargin: 5 + } + + VisualItemModel { + id: controls + // Cut, copy and paste + Item { + id: cutcopypaste + height: controlsview.height; width: 100 + Column { + width: parent.width - 4; height: parent.height - 4; anchors.centerIn: parent + Rectangle { + id: copybutton + height: parent.height/3; width: parent.width; color: "gray"; border.color: "black"; radius: 5 + Text { anchors.centerIn: parent; text: "Copy" } + MouseArea { anchors.fill: parent; onClicked: { textinput1.copy(); } } + } + Rectangle { + id: cutbutton + height: parent.height/3; width: parent.width; color: "gray"; border.color: "black"; radius: 5 + Text { anchors.centerIn: parent; text: "Cut" } + MouseArea { anchors.fill: parent; onClicked: { textinput1.cut(); } } + } + Rectangle { + id: pastebutton + height: parent.height/3; width: parent.width; color: "gray"; border.color: "black"; radius: 5 + Text { anchors.centerIn: parent; text: "Paste" } + MouseArea { anchors.fill: parent; onClicked: { textinput2.paste(); } } + } + } + } + + // Text selection + Item { + id: selection + height: controlsview.height; width: 100 + Column { + width: parent.width - 4; height: parent.height - 4; anchors.centerIn: parent + Rectangle { + id: selectallbutton + height: parent.height/4; width: parent.width; color: "gray"; border.color: "black"; radius: 5 + Text { anchors.centerIn: parent; text: "Select All" } + MouseArea { anchors.fill: parent; onClicked: { textinput1.selectAll(); } } + } + Rectangle { + id: selectwordbutton + height: parent.height/4; width: parent.width; color: "gray"; border.color: "black"; radius: 5 + Text { anchors.centerIn: parent; text: "Select Word" } + MouseArea { anchors.fill: parent; onClicked: { textinput1.selectWord(); } } + } + Rectangle { + id: selectnonebutton + height: parent.height/4; width: parent.width; color: "gray"; border.color: "black"; radius: 5 + Text { anchors.centerIn: parent; text: "Select None" } + MouseArea { anchors.fill: parent; onClicked: { textinput1.deselect(); } } + } + Rectangle { + id: mouseselecttoggle + height: parent.height/4; width: parent.width; color: textinput1.selectByMouse ? "green" : "gray"; border.color: "black"; radius: 5 + Text { anchors.centerIn: parent; text: textinput1.selectByMouse ? "Mouse On" : "Mouse Off" } + MouseArea { anchors.fill: parent; onClicked: { textinput1.selectByMouse = !textinput1.selectByMouse; } } + } + } + } + + // Echo methods + Item { + id: echostyle + height: controlsview.height; width: 100 + Column { + width: parent.width - 4; height: parent.height - 4; anchors.centerIn: parent + Rectangle { + id: echonormalbutton + height: parent.height/4; width: parent.width; border.color: "black"; radius: 5 + color: textinput1.echoMode == TextInput.Normal ? "green" : "gray"; + Text { anchors.centerIn: parent; text: "Normal" } + MouseArea { anchors.fill: parent; onClicked: { textinput1.echoMode = TextInput.Normal; } } + } + Rectangle { + id: echopasswordbutton + height: parent.height/4; width: parent.width; border.color: "black"; radius: 5 + color: textinput1.echoMode == TextInput.Password ? "green" : "gray"; + Text { anchors.centerIn: parent; text: "Password" } + MouseArea { anchors.fill: parent; onClicked: { textinput1.echoMode = TextInput.Password; } } + } + Rectangle { + id: noechobutton + height: parent.height/4; width: parent.width; border.color: "black"; radius: 5 + color: textinput1.echoMode == TextInput.NoEcho ? "green" : "gray"; + Text { anchors.centerIn: parent; text: "No Echo" } + MouseArea { anchors.fill: parent; onClicked: { textinput1.echoMode = TextInput.NoEcho; } } + } + Rectangle { + id: echooneditbutton + height: parent.height/4; width: parent.width; border.color: "black"; radius: 5 + color: textinput1.echoMode == TextInput.PasswordEchoOnEdit ? "green" : "gray"; + Text { anchors.centerIn: parent; text: "Edit Password" } + MouseArea { anchors.fill: parent; onClicked: { textinput1.echoMode = TextInput.PasswordEchoOnEdit; } } + } + } + } + + // Text Styling + Item { + id: styling + height: controlsview.height; width: 100 + Column { + id: buttonlist + ToggleButton { id: bolded; effectname: "Bold" } + ToggleButton { id: italics; effectname: "Italics" } + ToggleButton { id: strikeouton; effectname: "Strikeout" } + ToggleButton { id: underlineon; effectname: "Underline" } + ToggleButton { id: smoothon; effectname: "Smooth" } + ToggleButton { id: cursoron; effectname: "Cursor" } + ToggleButton { id: autoscrollon; effectname: "Autoscroll" } + } + } + + // Capitalization - MixedCase, AllUppercase, AllLowercase, SmallCaps, Capitalize + Item { + id: capitals + height: controlsview.height; width: 100 + Column { + width: parent.width - 4; height: parent.height - 4; anchors.centerIn: parent + Rectangle { + id: capsmixedbutton + height: parent.height/5; width: parent.width; border.color: "black"; radius: 5 + color: textinput1.font.capitalization == Font.MixedCase ? "green" : "gray"; + Text { anchors.centerIn: parent; text: "Mixed" } + MouseArea { anchors.fill: parent; onClicked: { textinput1.font.capitalization = Font.MixedCase; } } + } + Rectangle { + id: capsallupperbutton + height: parent.height/5; width: parent.width; border.color: "black"; radius: 5 + color: textinput1.font.capitalization == Font.AllUppercase ? "green" : "gray" + Text { anchors.centerIn: parent; text: "All Upper" } + MouseArea { anchors.fill: parent; onClicked: { textinput1.font.capitalization = Font.AllUppercase; } } + } + Rectangle { + id: capsalllowerbutton + height: parent.height/5; width: parent.width; border.color: "black"; radius: 5 + color: textinput1.font.capitalization == Font.AllLowercase ? "green" : "gray" + Text { anchors.centerIn: parent; text: "All lower" } + MouseArea { anchors.fill: parent; onClicked: { textinput1.font.capitalization = Font.AllLowercase; } } + } + Rectangle { + id: capsmallbutton + height: parent.height/5; width: parent.width; border.color: "black"; radius: 5 + color: textinput1.font.capitalization == Font.SmallCaps ? "green" : "gray" + Text { anchors.centerIn: parent; text: "Small caps" } + MouseArea { anchors.fill: parent; onClicked: { textinput1.font.capitalization = Font.SmallCaps; } } + } + Rectangle { + id: capcapitilizebutton + height: parent.height/5; width: parent.width; border.color: "black"; radius: 5 + color: textinput1.font.capitalization == Font.Capitalize ? "green" : "gray" + Text { anchors.centerIn: parent; text: "Capitalize" } + MouseArea { anchors.fill: parent; onClicked: { textinput1.font.capitalization = Font.Capitalize; } } + } + } + } + } +}
\ No newline at end of file |