Merge pull request #4 from status-im/test/issue-profilepopup
Add test for edit avatar issue
This commit is contained in:
commit
c441df8c42
|
@ -1,6 +1,3 @@
|
|||
[submodule "StatusQ"]
|
||||
path = StatusQ
|
||||
url = https://github.com/status-im/StatusQ
|
||||
[submodule "status-desktop"]
|
||||
path = status-desktop
|
||||
url = https://github.com/status-im/status-desktop.git
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
import QtQuick 2.14
|
||||
|
||||
QtObject {
|
||||
id: chatsModel
|
||||
property var ensView: QtObject {
|
||||
function isEnsVerified(author) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
function alias(author) {
|
||||
return "some alias"
|
||||
}
|
||||
}
|
|
@ -27,6 +27,23 @@ QtObject {
|
|||
return null
|
||||
}
|
||||
|
||||
function getObjectByObjectName(parent, objectName) {
|
||||
for (var idx in parent.children) {
|
||||
var child = parent.children[idx]
|
||||
|
||||
if (child.objectName === objectName) {
|
||||
return child;
|
||||
} else {
|
||||
var res = getObjectByObjectName(child, objectName)
|
||||
if (!!res) {
|
||||
return res;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
function findChildByClassName(item, className) {
|
||||
for (var idx in item.children) {
|
||||
let child = item.children[idx]
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
import QtQuick 2.14
|
||||
|
||||
QtObject {
|
||||
id: profileModel
|
||||
property var contacts: QtObject {
|
||||
function isContactBlocked(author) {
|
||||
return false;
|
||||
}
|
||||
|
||||
function isAdded(author) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
property var profile: QtObject {
|
||||
property string pubKey: "Some author"
|
||||
}
|
||||
|
||||
function qrCode(author) {
|
||||
return ""
|
||||
}
|
||||
|
||||
property var ens: ({preferredUserName: "preffered User name"})
|
||||
}
|
3
setup.h
3
setup.h
|
@ -23,8 +23,7 @@ public slots:
|
|||
void qmlEngineAvailable(QQmlEngine *engine)
|
||||
{
|
||||
engine->rootContext()->setContextProperty("myContextProperty", QVariant(true));
|
||||
qDebug() << "StatusQ Path: " << QString(PWD(PROJECT_PATH));
|
||||
engine->addImportPath(QString(PWD(PROJECT_PATH)) + "/StatusQ/src");
|
||||
engine->addImportPath(QString(PWD(PROJECT_PATH)) + "/status-desktop/ui/StatusQ/src");
|
||||
engine->addImportPath(QString(PWD(PROJECT_PATH)) + "/status-desktop/ui/imports");
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 4b73d6849025c8272c3fc882855f73a0d113ced6
|
||||
Subproject commit abf2a46dc99353704e1432ad79990174ffd5cd6c
|
|
@ -6,55 +6,34 @@ import "base"
|
|||
import "status-desktop/ui/app/AppLayouts/Chat/components" as DesktopComponents
|
||||
|
||||
|
||||
TestCase {
|
||||
WindowTestCase {
|
||||
name: "ProfilePopup"
|
||||
when: windowShown
|
||||
|
||||
Helpers { id: helpers }
|
||||
|
||||
/// TODO: add good test data
|
||||
QtObject {
|
||||
ChatsModelData {
|
||||
id: chatsModel
|
||||
property var ensView: QtObject {
|
||||
function isEnsVerified(author) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
function alias(author) {
|
||||
return "some alias"
|
||||
}
|
||||
}
|
||||
|
||||
QtObject {
|
||||
ProfileModelData {
|
||||
id: profileModel
|
||||
property var contacts: QtObject {
|
||||
function isContactBlocked(author) {
|
||||
return false;
|
||||
}
|
||||
|
||||
function isAdded(author) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
property var profile: QtObject {
|
||||
property string pubKey: "Some author"
|
||||
}
|
||||
|
||||
function qrCode(author) {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
Window {
|
||||
id: window
|
||||
width: 800
|
||||
height: 600
|
||||
Component {
|
||||
id: popupComponent
|
||||
DesktopComponents.ProfilePopup {
|
||||
id: propfilePopup
|
||||
id: propfile
|
||||
}
|
||||
}
|
||||
|
||||
// Catching editClickedSignal
|
||||
SignalSpy {
|
||||
id: editClickedSpy
|
||||
signalName: "editAvatarButtonClicked"
|
||||
}
|
||||
|
||||
///////
|
||||
|
||||
function initTestCase() {
|
||||
|
@ -62,24 +41,49 @@ TestCase {
|
|||
}
|
||||
|
||||
function cleanupTestCase() {
|
||||
|
||||
window.close()
|
||||
}
|
||||
|
||||
function test_case1() {
|
||||
var propfilePopup = popupComponent.createObject(window)
|
||||
propfilePopup.openPopup(true, "Test user", "Some author", "", "bla bla test it bitch", "Nickname")
|
||||
wait(2000) // for show how its works
|
||||
mouseClick(propfilePopup.background, propfilePopup.width - 65, 20, Qt.LeftButton)
|
||||
verify(helpers.checkIfItemExists(propfilePopup.background, propfilePopup.width - 65, 20, "StatusFlatRoundButton"))
|
||||
wait(2000) // for show how its works
|
||||
verify(propfilePopup.contentItem.qrCodePopup.visible, "Qr code should be visible")
|
||||
propfilePopup.contentItem.qrCodePopup.close()
|
||||
verify(!propfilePopup.contentItem.qrCodePopup.visible, "Qr code should be visible")
|
||||
propfilePopup.destroy()
|
||||
}
|
||||
|
||||
function test_case2() {
|
||||
mouseClick(propfilePopup.background, propfilePopup.width - 25, 20, Qt.LeftButton)
|
||||
function test_case2CurrentUser() {
|
||||
profileModel.profile.pubKey = "current-user"
|
||||
var propfilePopup = popupComponent.createObject(window)
|
||||
wait(2000)
|
||||
verify(!propfilePopup.visible, "Profile popup should be invisible")
|
||||
propfilePopup.openPopup(true, "Test user", "current-user", "", "bla bla test it bitch", "Nickname")
|
||||
editClickedSpy.target = propfilePopup
|
||||
verify(propfilePopup.isCurrentUser, "User should be current")
|
||||
wait(5000)
|
||||
var editbButton = helpers.getObjectByObjectName(propfilePopup.background, "editAvatarButton")
|
||||
verify(!!editbButton, "object with name \"editAvatarButton\" not found")
|
||||
verify(editbButton.visible, "editAvatarButton should be visible")
|
||||
|
||||
compare(editClickedSpy.count, 0)
|
||||
mouseClick(editbButton, 1, 1, Qt.LeftButton)
|
||||
wait(5000)
|
||||
compare(editClickedSpy.count, 1, "Edit avatar button not clicked")
|
||||
propfilePopup.destroy()
|
||||
}
|
||||
|
||||
function test_case3NotCurrentUser() {
|
||||
profileModel.profile.pubKey = "another-user"
|
||||
var propfilePopup = popupComponent.createObject(window)
|
||||
wait(2000)
|
||||
propfilePopup.openPopup(true, "Test user", "current-user", "", "bla bla test it bitch", "Nickname")
|
||||
wait(5000)
|
||||
verify(!propfilePopup.isCurrentUser, "User should be is not current")
|
||||
var editbButton = helpers.getObjectByObjectName(propfilePopup.background, "editAvatarButton")
|
||||
verify(!!editbButton, "object with name \"editAvatarButton\" not found")
|
||||
verify(!editbButton.visible, "editAvatarButton should be not visible")
|
||||
propfilePopup.destroy()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,13 +7,14 @@ DESTDIR += $${PWD}/bin
|
|||
DEFINES += PROJECT_PATH=\"$${PWD}\"
|
||||
|
||||
DISTFILES += \
|
||||
base/ChatsModelData.qml \
|
||||
base/Helpers.qml \
|
||||
base/ProfileModelData.qml \
|
||||
base/WindowTestCase.qml \
|
||||
tst_Modals.qml \
|
||||
tst_initialtest.qml
|
||||
|
||||
DISTFILES += $$files("StatusQ/src/*", true)
|
||||
DISTFILES += $$files("status-desktop/ui/app/*", true)
|
||||
DISTFILES += $$files("status-desktop/ui/*", true)
|
||||
|
||||
SOURCES += \
|
||||
main.cpp \
|
||||
|
|
Loading…
Reference in New Issue