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); | |||||
} | } | ||||
} | } |