Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
ListView system tests
Tests: Change of model, delegate and orientation at runtime Use of add, move and remove view transitions Changing of view transitions at runtime Task-number: QTBUG-21504 Change-Id: Icaeb5c0305c7db5db4c4b8c5ad5fd1d6393cc599 Reviewed-by: Bea Lam <bea.lam@nokia.com>
- Loading branch information
Damian Jansen
authored and
Qt by Nokia
committed
Mar 21, 2012
1 parent
669cbe4
commit dd952a2
Showing
5 changed files
with
1,009 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,221 @@ | ||
/**************************************************************************** | ||
** | ||
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). | ||
** Contact: http://www.qt-project.org/ | ||
** | ||
** This file is part of the test suite 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=qtdeclarative | ||
|
||
testcase = { | ||
|
||
altering_listview_primary_properties: function() | ||
{ | ||
// Test Meta-data | ||
testTitle = "Altering ListView primary properties"; | ||
testBinary = "alteredViews.qml"; | ||
testSource: "$QTDIR/qtdeclarative/tests/system/listview"; | ||
testGoal = "Verify that the model and delegate for a ListView can be changed"; | ||
testPreconditions = "None"; | ||
testGroups = "BAT,QtQuick 2.0"; | ||
|
||
// Test Steps | ||
prompt(twiki('---+++ ' + testTitle + '<br><br> | ||
*Goal:* ' + testGoal + '<br> | ||
*Pre-Requisites:* ' + testPreconditions + '<br> | ||
*Tested Binary:* ' + testBinary + '<br> | ||
| *Step* | *Verification* | | ||
| Run '+testBinary+' | Application has started, showing a ListView | | ||
| | The view shows items named Model1_1 - 5, and the delegates are white with a black border | | ||
| Press the Mod button | The view now shows items named Model2_1 - 5 | | ||
| Press Del | The delegates are now golden with a black border | | ||
| Press Mod, then Del | The view again shows items named Model1_1 - 5, and are white |')); | ||
}, | ||
|
||
altering_listview_orientation: function() | ||
{ | ||
// Test Meta-data | ||
testTitle = "Altering ListView orientation"; | ||
testBinary = "alteredViews.qml"; | ||
testSource: "$QTDIR/qtdeclarative/tests/system/listview"; | ||
testGoal = "Verify that the orientation of a listview can be changed at runtime"; | ||
testPreconditions = "None"; | ||
testGroups = "BAT,QtQuick 2.0"; | ||
|
||
// Test Steps | ||
prompt(twiki('---+++ ' + testTitle + '<br><br> | ||
*Goal:* ' + testGoal + '<br> | ||
*Pre-Requisites:* ' + testPreconditions + '<br> | ||
*Tested Binary:* ' + testBinary + '<br> | ||
| *Step* | *Verification* | | ||
| Run '+testBinary+' | Application has started, showing a ListView | | ||
| | The view shows items named Model1_1 - 5, and the delegates are white with a black border | | ||
| Press the Ori button | The view is now displayed in a horizontal orientation | | ||
| | The delegates should have resized quickly and smoothly, and the text rotated anticlockwise (both animated) | | ||
| Press Del | The delegates are now golden with a black border, still in horizontal orientation | | ||
| Press Ori | The view again shows in a vertical orientation, with the golden delegates |')); | ||
}, | ||
|
||
basic_view_transition: function() | ||
{ | ||
// Test Meta-data | ||
testTitle = "Basic View Transitions"; | ||
testBinary = "viewTransitions.qml"; | ||
testSource: "$QTDIR/qtdeclarative/tests/system/listview"; | ||
testGoal = "Verify a basic transition can be applied to a ListView action"; | ||
testPreconditions = "None"; | ||
testGroups = "BAT,QtQuick 2.0"; | ||
testRequirements = "QTBUG-21504: Enable transitions for add/move/remove operations on views"; | ||
|
||
// Test Steps | ||
prompt(twiki('---+++ ' + testTitle + '<br><br> | ||
*Goal:* ' + testGoal + '<br> | ||
*Pre-Requisites:* ' + testPreconditions + '<br> | ||
*Tested Binary:* ' + testBinary + '<br> | ||
| *Step* | *Verification* | | ||
| Run '+testBinary+' | Application has started, showing a ListView | | ||
| Press the Set A button | The Set A button shows green | | ||
| Press Add | A new yellow item fades in after the currently selected item | | ||
| | The other items slide down, with a slight delay for each item, giving it a flowing effect | | ||
| Select the new item | | | ||
| Press To Top | The item changes to light blue and moves to the top, curving out to the right of the ListView | | ||
| Select an item near the top and press Remove | The selected item fades out | | ||
| | The other items slide up, with a slight delay for each item, giving it a flowing effect |')); | ||
}, | ||
|
||
switching_view_transition: function() { | ||
// Test Meta-data | ||
testTitle = "Switching View Transitions"; | ||
testBinary = "viewTransitions.qml"; | ||
testSource: "$QTDIR/qtdeclarative/tests/system/listview"; | ||
testGoal = "Verify a basic ListView transition can be changed to another"; | ||
testPreconditions = "None"; | ||
testGroups = "BAT,QtQuick 2.0"; | ||
testRequirements = "QTBUG-21504: Enable transitions for add/move/remove operations on views"; | ||
|
||
// Test Steps | ||
prompt(twiki('---+++ ' + testTitle + '<br><br> | ||
*Goal:* ' + testGoal + '<br> | ||
*Pre-Requisites:* ' + testPreconditions + '<br> | ||
*Tested Binary:* ' + testBinary + '<br> | ||
| *Step* | *Verification* | | ||
| Run '+testBinary+' | Application has started, showing a ListView | | ||
| Press the Set A button | The Set A button shows green | | ||
| Press Add | A new yellow item fades in after the currently selected item | | ||
| | The other items slide down, with a slight delay for each item, giving it a flowing effect | | ||
| Select the new item | | | ||
| Press To Top | The item changes to light blue and moves to the top, curving out to the right of the ListView | | ||
| Select an item near the top and press Remove | The selected item fades out | | ||
| | The other items slide up, with a slight delay for each item, giving it a flowing effect | | ||
| Press the Set B button | The Set B button shows green | | ||
| Press Add | A new yellow item pops in after the currently selected item | | ||
| | The other items tumble down in a disorderly manner | | ||
| Select the new item | | | ||
| Press To Top | The item changes from red to light blue and curves out to the right of the ListView, bouncing in at the top | | ||
| Select an item near the top and press Remove | The selected item pops out | | ||
| | The other items slide up, with a slight delay for each item, giving it a flowing effect |')); | ||
}, | ||
|
||
different_transitions_for_every_operation: function() { | ||
// Test Meta-data | ||
testTitle = "Different Transitions for all Operations"; | ||
testBinary = "viewTransitions.qml"; | ||
testSource: "$QTDIR/qtdeclarative/tests/system/listview"; | ||
testGoal = "Verify a different Transition can be applied to displacement from adding, moving and removing."; | ||
testPreconditions = "None"; | ||
testGroups = "BAT,QtQuick 2.0"; | ||
testRequirements = "QTBUG-21504: Enable transitions for add/move/remove operations on views"; | ||
|
||
// Test Steps | ||
prompt(twiki('---+++ ' + testTitle + '<br><br> | ||
*Goal:* ' + testGoal + '<br> | ||
*Pre-Requisites:* ' + testPreconditions + '<br> | ||
*Tested Binary:* ' + testBinary + '<br> | ||
| *Step* | *Verification* | | ||
| Run '+testBinary+' | Application has started, showing a ListView | | ||
| Press the Set C button | The Set C button shows green | | ||
| Press Add | A new yellow item swoops in from the side | | ||
| | The other items jitter down, with a slight delay for each item | | ||
| Select the new item | | | ||
| Press To Top | The item changes from red to light blue and moves to the top, curving out to the right of the ListView | | ||
| | The other items bounce down in a solid block | | ||
| Select an item near the top and press Remove | The selected item fades out in a flashing manner | | ||
| | The other items snap up, with a slight delay for each item | | ||
| Press the Append button a few times | Each added item swoops in from alternating sides | ')); | ||
}, | ||
|
||
delegates_and_effects: function() { | ||
testTitle = "Delegates and effects"; | ||
testBinary = "viewTransitions.qml"; | ||
testSource: "$QTDIR/qtdeclarative/tests/system/listview"; | ||
testGoal = "Verify a delegate in transition can show effects."; | ||
testPreconditions = "None"; | ||
testGroups = "BAT,QtQuick 2.0"; | ||
testRequirements = "QTBUG-21504: Enable transitions for add/move/remove operations on views"; | ||
|
||
// Test Steps | ||
prompt(twiki('---+++ ' + testTitle + '<br><br> | ||
*Goal:* ' + testGoal + '<br> | ||
*Pre-Requisites:* ' + testPreconditions + '<br> | ||
*Tested Binary:* ' + testBinary + '<br> | ||
| *Step* | *Verification* | | ||
| Run '+testBinary+' | Application has started, showing a ListView | | ||
| Press the Set D button | The Set D button shows green | | ||
| Select a lower item | The item is highlighted | | ||
| Press To Top | The item fades to red particles, shifts to the top, and fades back to a normal delegate | | ||
| | The other items shuffle down |')); | ||
}, | ||
|
||
attached_onremove_property: function() { | ||
testTitle = "Using the attached onRemove property"; | ||
testBinary = "onRemove.qml"; | ||
testSource: "$QTDIR/qtdeclarative/tests/system/listview"; | ||
testGoal = "Verify the onRemove attached property can be assigned."; | ||
testPreconditions = "None"; | ||
testGroups = "BAT,QtQuick 2.0"; | ||
testRequirements = "QTBUG-21504: Enable transitions for add/move/remove operations on views"; | ||
|
||
// Test Steps | ||
prompt(twiki('---+++ ' + testTitle + '<br><br> | ||
*Goal:* ' + testGoal + '<br> | ||
*Pre-Requisites:* ' + testPreconditions + '<br> | ||
*Tested Binary:* ' + testBinary + '<br> | ||
| *Step* | *Verification* | | ||
| Run '+testBinary+' | Application has started, showing a ListView | | ||
| Press the <b>-</b> button | The selected item disappears in a shower of sparks |')); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,153 @@ | ||
/**************************************************************************** | ||
** | ||
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). | ||
** Contact: http://www.qt-project.org/ | ||
** | ||
** This file is part of the test suite of the Qt Toolkit. | ||
** | ||
** $QT_BEGIN_LICENSE:BSD$ | ||
** You may use this file under the terms of the BSD license as follows: | ||
** | ||
** "Redistribution and use in source and binary forms, with or without | ||
** modification, are permitted provided that the following conditions are | ||
** met: | ||
** * Redistributions of source code must retain the above copyright | ||
** notice, this list of conditions and the following disclaimer. | ||
** * Redistributions in binary form must reproduce the above copyright | ||
** notice, this list of conditions and the following disclaimer in | ||
** the documentation and/or other materials provided with the | ||
** distribution. | ||
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor | ||
** the names of its contributors may be used to endorse or promote | ||
** products derived from this software without specific prior written | ||
** permission. | ||
** | ||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." | ||
** | ||
** $QT_END_LICENSE$ | ||
** | ||
****************************************************************************/ | ||
|
||
import QtQuick 2.0 | ||
|
||
Rectangle { | ||
width: 300 | ||
height: 400 | ||
|
||
ListView { | ||
id: listview | ||
model: model1 | ||
delegate: delegate1 | ||
anchors.fill: parent | ||
anchors.margins: 20 | ||
} | ||
|
||
Component { | ||
id: delegate1 | ||
Rectangle { | ||
height: listview.orientation == ListView.Horizontal ? 260 : 50 | ||
Behavior on height { NumberAnimation { duration: 500 } } | ||
width: listview.orientation == ListView.Horizontal ? 50 : 260 | ||
Behavior on width { NumberAnimation { duration: 500 } } | ||
border.color: "black" | ||
Text { | ||
anchors.centerIn: parent; color: "black"; text: model.name | ||
rotation: listview.orientation == ListView.Horizontal ? -90 : 0 | ||
Behavior on rotation { NumberAnimation { duration: 500 } } | ||
|
||
} | ||
} | ||
} | ||
|
||
Component { | ||
id: delegate2 | ||
Rectangle { | ||
height: listview.orientation == ListView.Horizontal ? 260 : 50 | ||
Behavior on height { NumberAnimation { duration: 500 } } | ||
width: listview.orientation == ListView.Horizontal ? 50 : 260 | ||
Behavior on width { NumberAnimation { duration: 500 } } | ||
color: "goldenrod"; border.color: "black" | ||
Text { | ||
anchors.centerIn: parent; color: "royalblue"; text: model.name | ||
rotation: listview.orientation == ListView.Horizontal ? -90 : 0 | ||
Behavior on rotation { NumberAnimation { duration: 1500 } } | ||
} | ||
} | ||
|
||
} | ||
|
||
Column { | ||
Rectangle { | ||
height: 50 | ||
width: 50 | ||
color: "blue" | ||
border.color: "orange" | ||
Text { | ||
anchors.centerIn: parent | ||
text: "Mod" | ||
} | ||
MouseArea { | ||
anchors.fill: parent | ||
onClicked: listview.model = listview.model == model2 ? model1 : model2 | ||
} | ||
} | ||
|
||
Rectangle { | ||
height: 50 | ||
width: 50 | ||
color: "blue" | ||
border.color: "orange" | ||
Text { | ||
anchors.centerIn: parent | ||
text: "Del" | ||
} | ||
MouseArea { | ||
anchors.fill: parent | ||
onClicked: listview.delegate = listview.delegate == delegate2 ? delegate1 : delegate2 | ||
} | ||
} | ||
|
||
Rectangle { | ||
height: 50 | ||
width: 50 | ||
color: "blue" | ||
border.color: "orange" | ||
Text { | ||
anchors.centerIn: parent | ||
text: "Ori" | ||
} | ||
MouseArea { | ||
anchors.fill: parent | ||
onClicked: listview.orientation = listview.orientation == ListView.Horizontal ? ListView.Vertical : ListView.Horizontal | ||
} | ||
} | ||
} | ||
|
||
ListModel { | ||
id: model1 | ||
ListElement { name: "model1_1" } | ||
ListElement { name: "model1_2" } | ||
ListElement { name: "model1_3" } | ||
ListElement { name: "model1_4" } | ||
ListElement { name: "model1_5" } | ||
} | ||
|
||
ListModel { | ||
id: model2 | ||
ListElement { name: "model2_1" } | ||
ListElement { name: "model2_2" } | ||
ListElement { name: "model2_3" } | ||
ListElement { name: "model2_4" } | ||
ListElement { name: "model2_5" } | ||
} | ||
} |
Oops, something went wrong.