Changeset View
Changeset View
Standalone View
Standalone View
src/tests/quick-tests/tst_UserPage.qml
| Show All 12 Lines | |||||
| import 'test-helpers.js' as Helpers | import 'test-helpers.js' as Helpers | ||||
| Item { | Item { | ||||
| id: upper | id: upper | ||||
| width: 800 | width: 800 | ||||
| height: 600 | height: 600 | ||||
| property var l10n: Helpers.fluentMock | property var l10n: Helpers.fluentMock | ||||
| property var matrixSdk: TestHelpers.MatrixSdkMock {} | property var matrixSdk: TestHelpers.MatrixSdkMock { | ||||
| property var userId: '@foo:example.com' | |||||
| } | |||||
| property var sdkVars: QtObject { | |||||
| property var userGivenNicknameMap: QtObject { | |||||
| id: gnMap | |||||
| property var map: ({}) | |||||
| property var _setAndUploadCalled: 0 | |||||
| property var _setAndUploadArgs: [] | |||||
| property var _setAndUploadPromise: null | |||||
| function setAndUpload(userId, value) { | |||||
| ++_setAndUploadCalled; | |||||
| _setAndUploadArgs = [userId, value]; | |||||
| _setAndUploadPromise = promiseComp.createObject(upper); | |||||
| return _setAndUploadPromise; | |||||
| } | |||||
| } | |||||
| } | |||||
| property var lastNotification: undefined | property var lastNotification: undefined | ||||
| function showPassiveNotification(msg) { | function showPassiveNotification(msg) { | ||||
| upper.lastNotification = msg; | upper.lastNotification = msg; | ||||
| } | } | ||||
| property var promiseComp: Component { | property var promiseComp: Component { | ||||
| ▲ Show 20 Lines • Show All 53 Lines • ▼ Show 20 Lines | property var room: ({ | ||||
| _unbanUserUserId: undefined, | _unbanUserUserId: undefined, | ||||
| _unbanUserPromise: undefined, | _unbanUserPromise: undefined, | ||||
| }) | }) | ||||
| ColumnLayout { | ColumnLayout { | ||||
| Kazv.UserPage { | Kazv.UserPage { | ||||
| id: userPage | id: userPage | ||||
| userId: '@mew:example.com' | userId: '@mew:example.com' | ||||
| user: ({}) | user: ({ userId: '@mew:example.com', name: 'mew' }) | ||||
| room: upper.room | room: upper.room | ||||
| } | } | ||||
| Kazv.UserPage { | |||||
| id: userPageSelf | |||||
| userId: '@foo:example.com' | |||||
| } | } | ||||
| } | |||||
| TestCase { | TestCase { | ||||
| id: userPageTest | id: userPageTest | ||||
| name: 'UserPageTest' | name: 'UserPageTest' | ||||
| when: windowShown | when: windowShown | ||||
| function cleanupTestCase() { | function cleanupTestCase() { | ||||
| upper.room._setUserPowerLevelUserId = undefined; | upper.room._setUserPowerLevelUserId = undefined; | ||||
| Show All 10 Lines | function cleanupTestCase() { | ||||
| upper.room._unbanUserPromise = undefined; | upper.room._unbanUserPromise = undefined; | ||||
| userPage.submittingPowerLevel = false; | userPage.submittingPowerLevel = false; | ||||
| userPage.editingPowerLevel = false; | userPage.editingPowerLevel = false; | ||||
| userPage.powerLevelsLoaded = false; | userPage.powerLevelsLoaded = false; | ||||
| userPage.banningUser = false; | userPage.banningUser = false; | ||||
| userPage.unbanningUser = false; | userPage.unbanningUser = false; | ||||
| upper.lastNotification = undefined; | upper.lastNotification = undefined; | ||||
| userPage.user = ({}); | userPage.user = ({}); | ||||
| gnMap.map = {}; | |||||
| gnMap._setAndUploadCalled = 0; | |||||
| gnMap._setAndUploadArgs = []; | |||||
| gnMap._setAndUploadPromise = null; | |||||
| } | } | ||||
| function test_powerLevel() { | function test_powerLevel() { | ||||
| verify(findChild(userPage, 'powerLevelLabel').visible); | verify(findChild(userPage, 'powerLevelLabel').visible); | ||||
| verify(findChild(userPage, 'powerLevelLabel').text.includes('100')); | verify(findChild(userPage, 'powerLevelLabel').text.includes('100')); | ||||
| verify(!findChild(userPage, 'newPowerLevelInput').visible); | verify(!findChild(userPage, 'newPowerLevelInput').visible); | ||||
| const editButton = findChild(userPage, 'editPowerLevelButton'); | const editButton = findChild(userPage, 'editPowerLevelButton'); | ||||
| ▲ Show 20 Lines • Show All 176 Lines • ▼ Show 20 Lines | function test_kickUser() { | ||||
| verify(room._kickUserUserId === '@mew:example.com'); | verify(room._kickUserUserId === '@mew:example.com'); | ||||
| verify(room._kickUserReason === 'some reason'); | verify(room._kickUserReason === 'some reason'); | ||||
| room._kickUserPromise.resolve(true, {}); | room._kickUserPromise.resolve(true, {}); | ||||
| tryVerify(() => textField.text === '', 1000); | tryVerify(() => textField.text === '', 1000); | ||||
| // still available only because this is a mock call, no real action | // still available only because this is a mock call, no real action | ||||
| // is performed on the user | // is performed on the user | ||||
| tryVerify(() => kickButton.enabled, 1000); | tryVerify(() => kickButton.enabled, 1000); | ||||
| } | |||||
| function test_overridedName() { | |||||
| const input = findChild(userPage, 'nameOverrideInput'); | |||||
| compare(input.text, ''); | |||||
| gnMap.map = { '@mew:example.com': 'something' }; | |||||
| compare(input.text, 'something'); | |||||
| verify(!findChild(userPageSelf, 'nameOverrideInput').visible); | |||||
| } | |||||
| function test_updateOverridedName() { | |||||
| const input = findChild(userPage, 'nameOverrideInput'); | |||||
| compare(input.text, ''); | |||||
| verify(input.enabled); | |||||
| input.text = 'something'; | |||||
| const saveButton = findChild(userPage, 'saveNameOverrideButton'); | |||||
| verify(saveButton.enabled); | |||||
| mouseClick(saveButton); | |||||
| tryVerify(() => !input.enabled); | |||||
| verify(!saveButton.enabled); | |||||
| compare(gnMap._setAndUploadCalled, 1); | |||||
| verify(TestHelpers.deepEqual(gnMap._setAndUploadArgs, ['@mew:example.com', 'something'])); | |||||
| gnMap._setAndUploadPromise.resolve(true, {}); | |||||
| tryVerify(() => input.enabled); | |||||
| verify(saveButton.enabled); | |||||
| } | |||||
| function test_updateOverridedNameFailed() { | |||||
| const input = findChild(userPage, 'nameOverrideInput'); | |||||
| compare(input.text, ''); | |||||
| verify(input.enabled); | |||||
| input.text = 'something'; | |||||
| const saveButton = findChild(userPage, 'saveNameOverrideButton'); | |||||
| verify(saveButton.enabled); | |||||
| mouseClick(saveButton); | |||||
| tryVerify(() => !input.enabled); | |||||
| verify(!saveButton.enabled); | |||||
| compare(gnMap._setAndUploadCalled, 1); | |||||
| verify(TestHelpers.deepEqual(gnMap._setAndUploadArgs, ['@mew:example.com', 'something'])); | |||||
| gnMap._setAndUploadPromise.resolve(false, {}); | |||||
| tryVerify(() => input.enabled); | |||||
| verify(saveButton.enabled); | |||||
| } | |||||
| function test_removeOverridedName() { | |||||
| gnMap.map = { '@mew:example.com': 'something' }; | |||||
| const input = findChild(userPage, 'nameOverrideInput'); | |||||
| compare(input.text, 'something'); | |||||
| input.text = ''; | |||||
| const saveButton = findChild(userPage, 'saveNameOverrideButton'); | |||||
| verify(saveButton.enabled); | |||||
| mouseClick(saveButton); | |||||
| tryVerify(() => !input.enabled); | |||||
| verify(!saveButton.enabled); | |||||
| compare(gnMap._setAndUploadCalled, 1); | |||||
| verify(TestHelpers.deepEqual(gnMap._setAndUploadArgs, ['@mew:example.com', null])); | |||||
| gnMap._setAndUploadPromise.resolve(true, {}); | |||||
| tryVerify(() => input.enabled); | |||||
| verify(saveButton.enabled); | |||||
| } | } | ||||
| } | } | ||||