/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the test suite of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:GPL-EXCEPT$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/

//TESTED_COMPONENT=qtdeclarative

testcase = {

    pre_existing_elements_data: {
        Rectangle: ["Rectangle"],
        Image: ["Image"],
        AnimatedImage: ["AnimatedImage"],
        BorderImage: ["BorderImage"],
        SystemPalette: ["SystemPalette"],
        Text: ["Text"],
        TextInput: ["TextInput"],
        TextEdit: ["TextEdit"],
        FontLoader: ["FontLoader"],
        Flipable: ["Flipable"],
        Flickable: ["Flickable"],
        IntValidator: ["IntValidator"],
        DoubleValidator: ["DoubleValidator"],
        RegExpValidator: ["RegExpValidator"],
        Column: ["Column"],
        Row: ["Row"],
        Flow: ["Flow"],
        Grid: ["Grid"],
        Repeater: ["Repeater"],
        ListView: ["ListView"],
        Keys: ["Keys"],
        MouseArea: ["MouseArea"],
        SequentialAnimation: ["SequentialAnimation"],
        ParallelAnimation: ["ParallelAnimation"],
        XmlListModel: ["XmlListModel"],
        Scale: ["Scale"]
    },

    pre_existing_elements: function(name) {
        // Test Meta-data
        testTitle = name+ " Element";
        testBinary = "qmlscene tests/testapplications/elements/elements.qml";
        testGoal = "Verify the "+name+" element is shown correctly";
        testPreconditions = "None";
        testGroups = "BAT";

        // Test Steps
        prompt(twiki('---+++ ' + testTitle + '<br><br>
        *Goal:* ' + testGoal + '<br>
        *Pre-Requisites:* ' + testPreconditions + '<br>
        *Tested Binary:* ' + testBinary + '<br>
    | Select the '+name+' list item | Verify that the '+name+' application is displayed |
    | Follow the instructions in the in-app test | Verify all steps are completed successfully |'));
    },

    new_elements_data: {
        ParticleSystem: ["ParticleSystem"],
        ImageParticle: ["ImageParticle"],
        Emitter: ["Emitter"],
        Affector: ["Affector"],
        Shape: ["Shape",],
        TrailEmitter: ["TrailEmitter"],
        Direction: ["Direction"]
    },

    new_elements: function(name) {
        // Test Meta-data
        testTitle = name+ " Element";
        testBinary = "qmlscene tests/testapplications/elements/elements.qml";
        testGoal = "Verify the "+name+" element is shown correctly";
        testPreconditions = "None";
        testGroups = "BAT";

        // Test Steps
        prompt(twiki('---+++ ' + testTitle + '<br><br>
        *Goal:* ' + testGoal + '<br>
        *Pre-Requisites:* ' + testPreconditions + '<br>
        *Tested Binary:* ' + testBinary + '<br>
    | Select the '+name+' list item | Verify that the '+name+' application is displayed |
    | Follow the instructions in the in-app test | Verify all steps are completed successfully |'));
    }
}
