157 lines
6.1 KiB
QML
157 lines
6.1 KiB
QML
import QtQuick 2.15
|
|
|
|
import QtTest 1.15
|
|
|
|
import AppLayouts.Wallet.services.dapps.types 1.0
|
|
|
|
import shared.stores 1.0
|
|
|
|
Item {
|
|
id: root
|
|
|
|
width: 600
|
|
height: 400
|
|
|
|
|
|
Component {
|
|
id: dappsStoreComponent
|
|
|
|
DAppsStore {
|
|
signal userAuthenticated(string topic, string id, string password, string pin)
|
|
signal userAuthenticationFailed(string topic, string id)
|
|
|
|
property var authenticateUserCalls: []
|
|
function authenticateUser(topic, id, address) {
|
|
authenticateUserCalls.push({topic, id, address})
|
|
}
|
|
}
|
|
}
|
|
|
|
Component {
|
|
id: sessionRequestComponent
|
|
|
|
SessionRequestWithAuth {
|
|
id: sessionRequest
|
|
readonly property SignalSpy executeSpy: SignalSpy { target: sessionRequest; signalName: "execute" }
|
|
readonly property SignalSpy rejectedSpy: SignalSpy { target: sessionRequest; signalName: "rejected" }
|
|
readonly property SignalSpy authFailedSpy: SignalSpy { target: sessionRequest; signalName: "authFailed" }
|
|
|
|
// SessionRequestResolved required properties
|
|
// Not of interest for this test
|
|
event: "event"
|
|
topic: "topic"
|
|
requestId: "id"
|
|
method: "method"
|
|
accountAddress: "address"
|
|
chainId: "chainID"
|
|
sourceId: 0
|
|
data: "data"
|
|
preparedData: "preparedData"
|
|
dappUrl: "dappUrl"
|
|
dappIcon: "dappIcon"
|
|
dappName: "dappName"
|
|
}
|
|
}
|
|
|
|
TestCase {
|
|
id: sessionRequestTest
|
|
name: "SessionRequestWithAuth"
|
|
// Ensure mocked GroupedAccountsAssetsModel is properly initialized
|
|
when: windowShown
|
|
|
|
property SessionRequestWithAuth componentUnderTest: null
|
|
|
|
function init() {
|
|
const store = createTemporaryObject(dappsStoreComponent, root)
|
|
componentUnderTest = createTemporaryObject(sessionRequestComponent, root, { store })
|
|
}
|
|
|
|
function test_acceptAndAuthenticated() {
|
|
componentUnderTest.accept()
|
|
compare(componentUnderTest.executeSpy.count, 0)
|
|
compare(componentUnderTest.rejectedSpy.count, 0)
|
|
compare(componentUnderTest.authFailedSpy.count, 0)
|
|
compare(componentUnderTest.store.authenticateUserCalls.length, 1)
|
|
|
|
componentUnderTest.store.userAuthenticated("topic", "id", "password", "pin")
|
|
|
|
compare(componentUnderTest.executeSpy.count, 1)
|
|
compare(componentUnderTest.rejectedSpy.count, 0)
|
|
compare(componentUnderTest.authFailedSpy.count, 0)
|
|
compare(componentUnderTest.store.authenticateUserCalls.length, 1)
|
|
}
|
|
|
|
function test_AcceptAndAuthFails() {
|
|
componentUnderTest.accept()
|
|
compare(componentUnderTest.executeSpy.count, 0)
|
|
compare(componentUnderTest.rejectedSpy.count, 0)
|
|
compare(componentUnderTest.authFailedSpy.count, 0)
|
|
compare(componentUnderTest.store.authenticateUserCalls.length, 1)
|
|
|
|
componentUnderTest.store.userAuthenticationFailed("topic", "id")
|
|
|
|
compare(componentUnderTest.executeSpy.count, 0)
|
|
compare(componentUnderTest.authFailedSpy.count, 1)
|
|
compare(componentUnderTest.store.authenticateUserCalls.length, 1)
|
|
}
|
|
|
|
function test_AcceptRequestExpired() {
|
|
ignoreWarning("Error: request expired")
|
|
componentUnderTest.expirationTimestamp = Date.now() / 1000 - 1
|
|
componentUnderTest.accept()
|
|
compare(componentUnderTest.executeSpy.count, 0)
|
|
compare(componentUnderTest.rejectedSpy.count, 1)
|
|
compare(componentUnderTest.authFailedSpy.count, 0)
|
|
compare(componentUnderTest.store.authenticateUserCalls.length, 0)
|
|
}
|
|
|
|
function test_AcceptAndReject() {
|
|
componentUnderTest.accept()
|
|
compare(componentUnderTest.executeSpy.count, 0)
|
|
compare(componentUnderTest.rejectedSpy.count, 0)
|
|
compare(componentUnderTest.authFailedSpy.count, 0)
|
|
compare(componentUnderTest.store.authenticateUserCalls.length, 1)
|
|
|
|
componentUnderTest.reject(false)
|
|
|
|
compare(componentUnderTest.executeSpy.count, 0)
|
|
compare(componentUnderTest.rejectedSpy.count, 1)
|
|
compare(componentUnderTest.authFailedSpy.count, 0)
|
|
compare(componentUnderTest.store.authenticateUserCalls.length, 1)
|
|
}
|
|
|
|
function test_AcceptAndExpiresAfterAuth() {
|
|
ignoreWarning("Error: request expired")
|
|
componentUnderTest.accept()
|
|
compare(componentUnderTest.executeSpy.count, 0)
|
|
compare(componentUnderTest.rejectedSpy.count, 0)
|
|
compare(componentUnderTest.authFailedSpy.count, 0)
|
|
compare(componentUnderTest.store.authenticateUserCalls.length, 1)
|
|
|
|
componentUnderTest.expirationTimestamp = Date.now() / 1000 - 1
|
|
componentUnderTest.store.userAuthenticated("topic", "id", "password", "pin")
|
|
|
|
compare(componentUnderTest.executeSpy.count, 0)
|
|
compare(componentUnderTest.rejectedSpy.count, 1)
|
|
compare(componentUnderTest.authFailedSpy.count, 0)
|
|
compare(componentUnderTest.store.authenticateUserCalls.length, 1)
|
|
}
|
|
|
|
function test_Reject() {
|
|
componentUnderTest.reject(false)
|
|
compare(componentUnderTest.executeSpy.count, 0)
|
|
compare(componentUnderTest.rejectedSpy.count, 1)
|
|
compare(componentUnderTest.authFailedSpy.count, 0)
|
|
compare(componentUnderTest.store.authenticateUserCalls.length, 0)
|
|
}
|
|
|
|
function test_RejectExpiredRequest() {
|
|
componentUnderTest.expirationTimestamp = Date.now() / 1000 - 1
|
|
componentUnderTest.reject(false)
|
|
compare(componentUnderTest.executeSpy.count, 0)
|
|
compare(componentUnderTest.rejectedSpy.count, 1)
|
|
compare(componentUnderTest.authFailedSpy.count, 0)
|
|
compare(componentUnderTest.store.authenticateUserCalls.length, 0)
|
|
}
|
|
}
|
|
} |