Warning, /pim/kube/views/conversation/tests/tst_conversationview.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * Copyright 2017 Christian Mollekopf <mollekopf@kolabsys.com> 0003 * 0004 * This program is free software; you can redistribute it and/or modify 0005 * it under the terms of the GNU Library General Public License as 0006 * published by the Free Software Foundation; either version 2, or 0007 * (at your option) any later version. 0008 * 0009 * This program is distributed in the hope that it will be useful, 0010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0012 * GNU Library General Public License for more details 0013 * 0014 * You should have received a copy of the GNU Library General Public 0015 * License along with this program; if not, write to the 0016 * Free Software Foundation, Inc., 0017 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 0018 */ 0019 0020 import QtQuick 2.7 0021 import QtTest 1.0 0022 import "../qml" 0023 import org.kube.framework 1.0 as Kube 0024 import org.kube.test 1.0 0025 0026 ViewTestCase { 0027 id: testCase 0028 name: "MailView" 0029 0030 Component { 0031 id: mailViewComponent 0032 View { 0033 focus: true 0034 } 0035 } 0036 0037 function test_1start() { 0038 var mailView = createTemporaryObject(mailViewComponent, testCase, {}) 0039 verify(mailView) 0040 } 0041 0042 function test_2verifyInitialFocus() { 0043 var mailView = createTemporaryObject(mailViewComponent, testCase, {}) 0044 var newMailButton = findChild(mailView, "newMailButton"); 0045 verify(newMailButton) 0046 // verify(newMailButton.activeFocus) 0047 } 0048 0049 function test_3selectMessage() { 0050 var initialState = { 0051 accounts: [{ 0052 id: "account1", 0053 name: "Test Account" 0054 }], 0055 identities: [{ 0056 account: "account1", 0057 name: "Test Identity", 0058 address: "identity@example.org" 0059 }], 0060 resources: [{ 0061 id: "resource1", 0062 account: "account1", 0063 type: "dummy" 0064 }, 0065 { 0066 id: "resource2", 0067 account: "account1", 0068 type: "mailtransport" 0069 }], 0070 folders: [{ 0071 id: "folder1", 0072 resource: "resource1", 0073 name: "Folder 1", 0074 specialpurpose: ["inbox"], 0075 mails: [{ 0076 resource: "resource1", 0077 subject: "subject1", 0078 body: "body", 0079 to: ["to@example.org"], 0080 cc: ["cc@example.org"], 0081 bcc: ["bcc@example.org"], 0082 draft: true 0083 }, 0084 { 0085 resource: "resource1", 0086 subject: "subject2", 0087 body: "body", 0088 to: ["to@example.org"], 0089 cc: ["cc@example.org"], 0090 bcc: ["bcc@example.org"], 0091 draft: true 0092 } 0093 ], 0094 }], 0095 } 0096 TestStore.setup(initialState) 0097 Kube.Context.currentAccountId = "account1" 0098 var mailView = createTemporaryObject(mailViewComponent, testCase, {}) 0099 var folderListView = findChild(mailView, "folderListView"); 0100 verify(folderListView) 0101 0102 var folder = TestStore.load("folder", {resource: "resource1"}) 0103 verify(folder) 0104 0105 Kube.Fabric.postMessage(Kube.Messages.folderSelection, {"folder": folder, "trash": false}); 0106 0107 var mailListView = findChild(mailView, "mailListView"); 0108 verify(mailListView) 0109 var listView = findChild(mailListView, "listView"); 0110 verify(listView) 0111 tryCompare(listView, "count", 2) 0112 0113 var conversationView = findChild(mailView, "mailView"); 0114 verify(conversationView) 0115 var listView = findChild(conversationView, "listView"); 0116 verify(listView) 0117 } 0118 0119 function test_4moveToTrash() { 0120 var initialState = { 0121 accounts: [{ 0122 id: "account1", 0123 name: "Test Account" 0124 }], 0125 identities: [{ 0126 account: "account1", 0127 name: "Test Identity", 0128 address: "identity@example.org" 0129 }], 0130 resources: [{ 0131 id: "resource3", 0132 account: "account1", 0133 type: "dummy" 0134 }], 0135 folders: [{ 0136 id: "folder1", 0137 resource: "resource3", 0138 name: "Folder 1", 0139 specialpurpose: ["inbox"], 0140 mails: [{ 0141 resource: "resource3", 0142 subject: "subject1", 0143 body: "body", 0144 to: ["to@example.org"], 0145 cc: ["cc@example.org"], 0146 bcc: ["bcc@example.org"] 0147 } 0148 ], 0149 }], 0150 } 0151 TestStore.setup(initialState) 0152 var mailView = createTemporaryObject(mailViewComponent, testCase, {}) 0153 var folderListView = findChild(mailView, "folderListView"); 0154 verify(folderListView) 0155 0156 var folder = TestStore.load("folder", {resource: "resource3"}) 0157 verify(folder) 0158 0159 Kube.Fabric.postMessage(Kube.Messages.folderSelection, {"folder": folder, "trash": false}); 0160 0161 var mailListView = findChild(mailView, "mailListView"); 0162 verify(mailListView) 0163 var listView = findChild(mailListView, "listView"); 0164 verify(listView) 0165 tryCompare(listView, "count", 1) 0166 0167 listView.currentIndex = 0 0168 var currentItem = listView.currentItem 0169 verify(currentItem) 0170 //Pretend we're hovering over the delegate so the button becomes visible 0171 currentItem.buttonsVisible = true 0172 0173 var deleteButton = findChild(currentItem, "deleteButton"); 0174 verify(deleteButton) 0175 deleteButton.clicked() 0176 0177 tryCompare(listView, "count", 0) 0178 } 0179 0180 function test_5selectFolder() { 0181 var initialState = { 0182 accounts: [{ 0183 id: "account1", 0184 name: "Test Account1" 0185 }, { 0186 id: "account2", 0187 name: "Test Account2" 0188 }], 0189 identities: [{ 0190 account: "account1", 0191 name: "Test Identity", 0192 address: "identity@example.org" 0193 }], 0194 resources: [{ 0195 id: "resource1", 0196 account: "account1", 0197 type: "dummy" 0198 }, 0199 { 0200 id: "resource2", 0201 account: "account1", 0202 type: "mailtransport" 0203 }, 0204 { 0205 id: "resource3", 0206 account: "account2", 0207 type: "dummy" 0208 } 0209 ], 0210 folders: [{ 0211 id: "folder1", 0212 resource: "resource1", 0213 name: "Folder 1", 0214 specialpurpose: ["inbox"], 0215 mails: [{ 0216 resource: "resource1", 0217 subject: "subject1", 0218 body: "body", 0219 to: ["to@example.org"], 0220 cc: ["cc@example.org"], 0221 bcc: ["bcc@example.org"], 0222 draft: true 0223 } 0224 ], 0225 }, 0226 { 0227 id: "folder2", 0228 resource: "resource3", 0229 name: "Folder 2", 0230 specialpurpose: ["inbox"], 0231 mails: [{ 0232 resource: "resource3", 0233 subject: "subject2", 0234 body: "body", 0235 to: ["to@example.org"], 0236 cc: ["cc@example.org"], 0237 bcc: ["bcc@example.org"], 0238 draft: true 0239 } 0240 ], 0241 } 0242 ], 0243 } 0244 TestStore.setup(initialState) 0245 var mailView = createTemporaryObject(mailViewComponent, testCase, {}) 0246 var folderListView = findChild(mailView, "folderListView") 0247 verify(folderListView) 0248 0249 var mailListView = findChild(mailView, "mailListView"); 0250 verify(mailListView) 0251 0252 var folder = TestStore.load("folder", {resource: "resource1"}) 0253 verify(folder) 0254 tryCompare(mailListView, "parentFolder", folder) 0255 0256 var listView = findChild(mailListView, "listView"); 0257 verify(listView) 0258 tryCompare(listView, "count", 1) 0259 0260 //Switch to second account 0261 Kube.Context.currentAccountId = "account2" 0262 0263 var folder2 = TestStore.load("folder", {resource: "resource3"}) 0264 verify(folder2) 0265 tryCompare(mailListView, "parentFolder", folder2) 0266 tryCompare(listView, "count", 1) 0267 } 0268 }