~mardy/ubuntu-system-settings-online-accounts/click-plugins-old

« back to all changes in this revision

Viewing changes to tests/online-accounts-ui/qml/tst_SignOnUiDialog.qml

  • Committer: Alberto Mardegan
  • Date: 2014-11-26 14:25:29 UTC
  • mfrom: (207.2.5 master)
  • Revision ID: alberto.mardegan@canonical.com-20141126142529-ebpr7endi4lejhaf
Merge master

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import QtQuick 2.0
 
2
import QtTest 1.0
 
3
import Source 1.0
 
4
import Ubuntu.Test 0.1
 
5
 
 
6
Item {
 
7
    id: root
 
8
    width: 400
 
9
    height: 400
 
10
 
 
11
    QtObject {
 
12
        id: request
 
13
        property string title
 
14
        property string message
 
15
        property string loginText
 
16
 
 
17
        property bool queryUserName: false
 
18
        property string userNameText
 
19
        property string userName
 
20
 
 
21
        property bool queryPassword: false
 
22
        property string passwordText
 
23
        property string password
 
24
 
 
25
        property string forgotPasswordText
 
26
        property url forgotPasswordUrl
 
27
 
 
28
        property string registerText
 
29
        property url registerUrl
 
30
 
 
31
        signal accept()
 
32
        signal cancel()
 
33
    }
 
34
 
 
35
    SignalSpy {
 
36
        id: spyAccept
 
37
        target: request
 
38
        signalName: "accept"
 
39
    }
 
40
 
 
41
    SignalSpy {
 
42
        id: spyCancel
 
43
        target: request
 
44
        signalName: "cancel"
 
45
    }
 
46
 
 
47
    Component {
 
48
        id: pageComponent
 
49
        SignOnUiDialog {}
 
50
    }
 
51
 
 
52
    UbuntuTestCase {
 
53
        name: "SignOnUiDialog"
 
54
        when: windowShown
 
55
 
 
56
        function tapButton(button) {
 
57
            mouseClick(button, button.width / 2, button.height / 2, Qt.LeftButton, 0, 0)
 
58
        }
 
59
 
 
60
        function createPage() {
 
61
            var page = pageComponent.createObject(root)
 
62
            spyCancel.clear()
 
63
            spyAccept.clear()
 
64
            return page
 
65
        }
 
66
 
 
67
        function test_request_data() {
 
68
            return [
 
69
                {
 
70
                    tag: "only password",
 
71
                    request: {
 
72
                        queryPassword: true,
 
73
                        queryUserName: false,
 
74
                        passwordText: "What's your password?",
 
75
                        password: "prefilled pw"
 
76
                    }
 
77
                },
 
78
                {
 
79
                    tag: "only username",
 
80
                    request: {
 
81
                        queryPassword: false,
 
82
                        queryUserName: true,
 
83
                        userNameText: "What's your name?",
 
84
                        userName: "Tommy"
 
85
                    }
 
86
                },
 
87
                {
 
88
                    tag: "username and password",
 
89
                    request: {
 
90
                        queryPassword: true,
 
91
                        passwordText: "What's your password?",
 
92
                        password: "prefilled pw",
 
93
                        queryUserName: true,
 
94
                        userNameText: "What's your name?",
 
95
                        userName: "Tommy"
 
96
                    }
 
97
                },
 
98
                {
 
99
                    tag: "forgot password",
 
100
                    request: {
 
101
                        queryPassword: true,
 
102
                        passwordText: "What's your password?",
 
103
                        password: "prefilled pw",
 
104
                        forgotPasswordUrl: "http://localhost/remember",
 
105
                        forgotPasswordText: "Reset your password"
 
106
                    }
 
107
                }
 
108
            ]
 
109
        }
 
110
 
 
111
        function test_request(data) {
 
112
            for (var p in data.request) {
 
113
                request[p] = data.request[p]
 
114
            }
 
115
 
 
116
            var page = createPage()
 
117
            verify(page != null)
 
118
 
 
119
            var passwordLabel = findChild(page, "passwordLabel")
 
120
            verify(passwordLabel != null)
 
121
            compare(passwordLabel.visible, request.queryPassword)
 
122
 
 
123
            var passwordField = findChild(page, "passwordField")
 
124
            verify(passwordField != null)
 
125
            compare(passwordField.visible, request.queryPassword)
 
126
 
 
127
            if (request.queryPassword) {
 
128
                compare(passwordLabel.text, request.passwordText)
 
129
                compare(passwordField.text, request.password)
 
130
            }
 
131
 
 
132
            var userNameLabel = findChild(page, "userNameLabel")
 
133
            verify(userNameLabel != null)
 
134
            compare(userNameLabel.visible, request.queryUserName)
 
135
 
 
136
            var userNameField = findChild(page, "userNameField")
 
137
            verify(userNameField != null)
 
138
            compare(userNameField.visible, request.queryUserName)
 
139
 
 
140
            if (request.queryUserName) {
 
141
                compare(userNameLabel.text, request.userNameText)
 
142
                compare(userNameField.text, request.userName)
 
143
            }
 
144
 
 
145
            var forgotPasswordLabel = findChild(page, "forgotPasswordLabel")
 
146
            verify(forgotPasswordLabel != null)
 
147
            compare(forgotPasswordLabel.visible,
 
148
                    request.forgotPasswordUrl.toString() != "")
 
149
 
 
150
            page.destroy()
 
151
        }
 
152
 
 
153
        function test_buttons_data() {
 
154
            return [
 
155
                {
 
156
                    tag: "cancel",
 
157
                    buttonName: "cancelButton",
 
158
                    expectedCancelCount: 1,
 
159
                    expectedAcceptCount: 0
 
160
                },
 
161
                {
 
162
                    tag: "accept",
 
163
                    buttonName: "acceptButton",
 
164
                    expectedCancelCount: 0,
 
165
                    expectedAcceptCount: 1
 
166
                }
 
167
            ]
 
168
        }
 
169
 
 
170
        function test_buttons(data) {
 
171
            request.queryPassword = true
 
172
            request.passwordText = "Enter your password"
 
173
 
 
174
            var page = createPage()
 
175
            verify(page != null)
 
176
 
 
177
            var button = findChild(page, data.buttonName)
 
178
            verify(button != null)
 
179
            verify(button.visible)
 
180
 
 
181
            tapButton(button)
 
182
            compare(spyAccept.count, data.expectedAcceptCount)
 
183
            compare(spyCancel.count, data.expectedCancelCount)
 
184
 
 
185
            page.destroy()
 
186
        }
 
187
    }
 
188
}