summaryrefslogtreecommitdiff
path: root/tests/auto/material/tst_ripple.qml
blob: b79b18e88aa71efe086c60fae9be3de6432e7925 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/*
 * This file is part of Fluid.
 *
 * Copyright (C) 2017 Michael Spencer <sonrisesoftware@gmail.com>
 *
 * $BEGIN_LICENSE:MPL2$
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * $END_LICENSE$
 */

import QtQuick 2.4
import QtTest 1.0
import Fluid.Material 1.0

Ripple {
    id: ripple

    width: 100
    height: 100

    TestCase {
        name: "RippleTests"
        when: windowShown

        function test_mouse_press_shows_ripple() {
            compare(getRipples().length, 0)
            mousePress(ripple)
            compare(getRipples().length, 1)
            mouseRelease(ripple)
            wait(1000)
        }

        function test_mouse_up_hides_ripple() {
            mouseClick(ripple)
            compare(getRipples().length, 1)
            wait(1000)
            compare(getRipples().length, 0)
        }

        function test_focused_ripple_shows_focus_background() {
            var focusBackground = findChild(ripple, "focusBackground")
            compare(focusBackground.opacity, 0)

            ripple.focused = true
            wait(1000)

            compare(focusBackground.opacity, 1)

            ripple.focused = false
            wait(1000)
        }

        function test_focused_ripple_shows_focus_ripple() {
            var focusRipple = findChild(ripple, "focusRipple")
            compare(focusRipple.opacity, 0)

            ripple.focused = true
            wait(1000)

            compare(focusRipple.opacity, 1)

            ripple.focused = false
            wait(1000)
        }

        function getRipples() {
            return filteredChildren("tapRipple")
        }

        function filteredChildren(objectName) {
            var filtered = []

            for (var i = 0; i < ripple.children.length; i++) {
                var child = ripple.children[i]

                if (child.objectName == objectName) {
                    filtered.push(child)
                }
            }

            return filtered
        }
    }
}