test(settings/profile): test bio and social links
Note: interaction between clients is not tested here to avoid dependency on mailserver. When mailserver is mocked more comprehensive tests should be provided, that is: verify if identity properties are propagated and read correctly between two different clients. closes: #6950
This commit is contained in:
parent
88ad09f7c2
commit
aeb64e2029
|
@ -0,0 +1 @@
|
||||||
|
*__pycache__*
|
|
@ -182,6 +182,16 @@ def wait_for_object_and_type(objName: str, text: str):
|
||||||
except LookupError:
|
except LookupError:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
# It sets the specified text into the given object (first erase, then type)
|
||||||
|
def setText(objName: str, text: str):
|
||||||
|
try:
|
||||||
|
obj = squish.waitForObject(getattr(names, objName))
|
||||||
|
squish.type(obj, "<Ctrl+a>")
|
||||||
|
squish.type(obj, text)
|
||||||
|
return True
|
||||||
|
except LookupError:
|
||||||
|
return False
|
||||||
|
|
||||||
# Clicking link in label / textedit
|
# Clicking link in label / textedit
|
||||||
def click_link(objName: str, link: str):
|
def click_link(objName: str, link: str):
|
||||||
point = _find_link(getattr(names, objName), link)
|
point = _find_link(getattr(names, objName), link)
|
||||||
|
|
|
@ -15,11 +15,15 @@ from drivers.SquishDriverVerification import *
|
||||||
from .StatusMainScreen import MainScreenComponents
|
from .StatusMainScreen import MainScreenComponents
|
||||||
from .StatusMainScreen import StatusMainScreen
|
from .StatusMainScreen import StatusMainScreen
|
||||||
|
|
||||||
|
class SettingsScreenComponents(Enum):
|
||||||
|
SAVE_BUTTON: str = "settingsSave_StatusButton"
|
||||||
|
|
||||||
class SidebarComponents(Enum):
|
class SidebarComponents(Enum):
|
||||||
ADVANCED_OPTION: str = "advanced_StatusBaseText"
|
ADVANCED_OPTION: str = "advanced_StatusBaseText"
|
||||||
WALLET_ITEM: str = "wallet_AppMenu_StatusNavigationListItem"
|
WALLET_ITEM: str = "wallet_AppMenu_StatusNavigationListItem"
|
||||||
SIGN_OUT_AND_QUIT: str = "sign_out_Quit_ExtraMenu_StatusNavigationListItem"
|
SIGN_OUT_AND_QUIT: str = "sign_out_Quit_ExtraMenu_StatusNavigationListItem"
|
||||||
COMMUNITIES_ITEM: str = "communities_AppMenu_StatusNavigationListItem"
|
COMMUNITIES_ITEM: str = "communities_AppMenu_StatusNavigationListItem"
|
||||||
|
PROFILE_ITEM: str = "profile_MainMenu_StatusNavigationListItem"
|
||||||
|
|
||||||
|
|
||||||
class AdvancedOptionScreen(Enum):
|
class AdvancedOptionScreen(Enum):
|
||||||
|
@ -40,6 +44,17 @@ class WalletSettingsScreen(Enum):
|
||||||
ACCOUNT_VIEW_ACCOUNT_NAME: str = "settings_Wallet_AccountView_AccountName"
|
ACCOUNT_VIEW_ACCOUNT_NAME: str = "settings_Wallet_AccountView_AccountName"
|
||||||
ACCOUNT_VIEW_ICON_SETTINGS: str = "settings_Wallet_AccountView_IconSettings"
|
ACCOUNT_VIEW_ICON_SETTINGS: str = "settings_Wallet_AccountView_IconSettings"
|
||||||
|
|
||||||
|
class ProfileSettingsScreen(Enum):
|
||||||
|
DISPLAY_NAME: str = "displayName_TextEdit"
|
||||||
|
BIO: str = "bio_TextEdit"
|
||||||
|
TWITTER_SOCIAL_LINK: str = "twitter_StaticSocialLinkInput"
|
||||||
|
PERSONAL_SITE_SOCIAL_LINK: str = "personalSite_StaticSocialLinkInput"
|
||||||
|
OPEN_SOCIAL_LINKS_DIALOG: str = "addMoreSocialLinks_StatusIconTextButton"
|
||||||
|
CLOSE_SOCIAL_LINKS_DIALOG: str = "close_popup_StatusFlatRoundButton"
|
||||||
|
TWITTER_SOCIAL_LINK_IN_DIALOG: str = "twitter_popup_TextEdit"
|
||||||
|
PERSONAL_SITE_LINK_IN_DIALOG: str = "personalSite_popup_TextEdit"
|
||||||
|
CUSTOM_LINK_IN_DIALOG: str = "customLink_popup_TextEdit"
|
||||||
|
CUSTOM_URL_IN_DIALOG: str = "customUrl_popup_TextEdit"
|
||||||
|
|
||||||
class ConfirmationDialog(Enum):
|
class ConfirmationDialog(Enum):
|
||||||
SIGN_OUT_CONFIRMATION: str = "signOutConfirmation_StatusButton"
|
SIGN_OUT_CONFIRMATION: str = "signOutConfirmation_StatusButton"
|
||||||
|
@ -148,3 +163,56 @@ class SettingsScreen:
|
||||||
# In our case we have only one visible community and only one button
|
# In our case we have only one visible community and only one button
|
||||||
click_obj_by_name(CommunitiesSettingsScreen.LEAVE_COMMUNITY_BUTTONS.value)
|
click_obj_by_name(CommunitiesSettingsScreen.LEAVE_COMMUNITY_BUTTONS.value)
|
||||||
click_obj_by_name(CommunitiesSettingsScreen.LEAVE_COMMUNITY_POPUP_LEAVE_BUTTON.value)
|
click_obj_by_name(CommunitiesSettingsScreen.LEAVE_COMMUNITY_POPUP_LEAVE_BUTTON.value)
|
||||||
|
|
||||||
|
def open_profile_settings(self):
|
||||||
|
verify_object_enabled(SidebarComponents.PROFILE_ITEM.value)
|
||||||
|
click_obj_by_name(SidebarComponents.PROFILE_ITEM.value)
|
||||||
|
|
||||||
|
def verify_display_name(self, display_name: str):
|
||||||
|
verify_text_matching(ProfileSettingsScreen.DISPLAY_NAME.value, display_name)
|
||||||
|
|
||||||
|
def set_display_name(self, display_name: str):
|
||||||
|
click_obj_by_name(ProfileSettingsScreen.DISPLAY_NAME.value)
|
||||||
|
name_changed = setText(ProfileSettingsScreen.DISPLAY_NAME.value, display_name)
|
||||||
|
verify(name_changed, "set display name")
|
||||||
|
click_obj_by_name(SettingsScreenComponents.SAVE_BUTTON.value)
|
||||||
|
self.verify_display_name(display_name)
|
||||||
|
|
||||||
|
def verify_bio(self, bio: str):
|
||||||
|
verify_text_matching(ProfileSettingsScreen.BIO.value, bio)
|
||||||
|
|
||||||
|
def set_bio(self, bio: str):
|
||||||
|
click_obj_by_name(ProfileSettingsScreen.BIO.value)
|
||||||
|
verify(setText(ProfileSettingsScreen.BIO.value, bio), "set bio")
|
||||||
|
click_obj_by_name(SettingsScreenComponents.SAVE_BUTTON.value)
|
||||||
|
self.verify_bio(bio)
|
||||||
|
|
||||||
|
def set_social_links(self, twitter, personal_site, custom_link_name, custom_link: str):
|
||||||
|
click_obj_by_name(ProfileSettingsScreen.OPEN_SOCIAL_LINKS_DIALOG.value)
|
||||||
|
|
||||||
|
click_obj_by_name(ProfileSettingsScreen.TWITTER_SOCIAL_LINK_IN_DIALOG.value)
|
||||||
|
verify(type(ProfileSettingsScreen.TWITTER_SOCIAL_LINK_IN_DIALOG.value, twitter), "set twitter")
|
||||||
|
|
||||||
|
click_obj_by_name(ProfileSettingsScreen.PERSONAL_SITE_LINK_IN_DIALOG.value)
|
||||||
|
verify(type(ProfileSettingsScreen.PERSONAL_SITE_LINK_IN_DIALOG.value, personal_site), "set personal site")
|
||||||
|
|
||||||
|
click_obj_by_name(ProfileSettingsScreen.CUSTOM_LINK_IN_DIALOG.value)
|
||||||
|
verify(type(ProfileSettingsScreen.CUSTOM_LINK_IN_DIALOG.value, custom_link_name), "set custom link name")
|
||||||
|
|
||||||
|
click_obj_by_name(ProfileSettingsScreen.CUSTOM_URL_IN_DIALOG.value)
|
||||||
|
verify(type(ProfileSettingsScreen.CUSTOM_URL_IN_DIALOG.value, custom_link), "set custom link url")
|
||||||
|
|
||||||
|
click_obj_by_name(ProfileSettingsScreen.CLOSE_SOCIAL_LINKS_DIALOG.value)
|
||||||
|
click_obj_by_name(SettingsScreenComponents.SAVE_BUTTON.value)
|
||||||
|
|
||||||
|
def verify_social_links(self, twitter, personal_site, custom_link_name, custom_link: str):
|
||||||
|
verify_text_matching(ProfileSettingsScreen.TWITTER_SOCIAL_LINK.value, twitter)
|
||||||
|
verify_text_matching(ProfileSettingsScreen.PERSONAL_SITE_SOCIAL_LINK.value, personal_site)
|
||||||
|
|
||||||
|
click_obj_by_name(ProfileSettingsScreen.OPEN_SOCIAL_LINKS_DIALOG.value)
|
||||||
|
verify_text_matching(ProfileSettingsScreen.TWITTER_SOCIAL_LINK_IN_DIALOG.value, twitter)
|
||||||
|
verify_text_matching(ProfileSettingsScreen.PERSONAL_SITE_LINK_IN_DIALOG.value, personal_site)
|
||||||
|
verify_text_matching(ProfileSettingsScreen.CUSTOM_LINK_IN_DIALOG.value, custom_link_name)
|
||||||
|
verify_text_matching(ProfileSettingsScreen.CUSTOM_URL_IN_DIALOG.value, custom_link)
|
||||||
|
click_obj_by_name(ProfileSettingsScreen.CLOSE_SOCIAL_LINKS_DIALOG.value)
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ class CommunitySettingsComponents(Enum):
|
||||||
EDIT_COMMUNITY_NAME_INPUT = "communitySettings_EditCommunity_Name_Input"
|
EDIT_COMMUNITY_NAME_INPUT = "communitySettings_EditCommunity_Name_Input"
|
||||||
EDIT_COMMUNITY_DESCRIPTION_INPUT = "communitySettings_EditCommunity_Description_Input"
|
EDIT_COMMUNITY_DESCRIPTION_INPUT = "communitySettings_EditCommunity_Description_Input"
|
||||||
EDIT_COMMUNITY_COLOR_PICKER_BUTTON = "communitySettings_EditCommunity_ColorPicker_Button"
|
EDIT_COMMUNITY_COLOR_PICKER_BUTTON = "communitySettings_EditCommunity_ColorPicker_Button"
|
||||||
SAVE_BUTTON = "communitySettings_Save_Button"
|
SAVE_BUTTON = "settingsSave_StatusButton"
|
||||||
BACK_TO_COMMUNITY_BUTTON = "communitySettings_BackToCommunity_Button"
|
BACK_TO_COMMUNITY_BUTTON = "communitySettings_BackToCommunity_Button"
|
||||||
COMMUNITY_NAME_TEXT = "communitySettings_CommunityName_Text"
|
COMMUNITY_NAME_TEXT = "communitySettings_CommunityName_Text"
|
||||||
COMMUNITY_DESCRIPTION_TEXT = "communitySettings_CommunityDescription_Text"
|
COMMUNITY_DESCRIPTION_TEXT = "communitySettings_CommunityDescription_Text"
|
||||||
|
|
|
@ -9,3 +9,4 @@ from sections.login_names import *
|
||||||
from sections.onboarding_names import *
|
from sections.onboarding_names import *
|
||||||
from sections.settings_names import *
|
from sections.settings_names import *
|
||||||
from sections.wallet_names import *
|
from sections.wallet_names import *
|
||||||
|
displayNameInput_StatusInput_2 = {"container": mainWindow_ScrollView_2, "objectName": "displayNameInput", "type": "StatusInput", "visible": True}
|
||||||
|
|
|
@ -41,7 +41,6 @@ communitySettings_EditCommunity_ScrollView = {"container": statusDesktop_mainWin
|
||||||
communitySettings_EditCommunity_Name_Input = {"container": communitySettings_EditCommunity_ScrollView, "objectName": "editCommunityNameInput", "type": "TextEdit"}
|
communitySettings_EditCommunity_Name_Input = {"container": communitySettings_EditCommunity_ScrollView, "objectName": "editCommunityNameInput", "type": "TextEdit"}
|
||||||
communitySettings_EditCommunity_Description_Input = {"container": communitySettings_EditCommunity_ScrollView, "objectName": "editCommunityDescriptionInput", "type": "TextEdit"}
|
communitySettings_EditCommunity_Description_Input = {"container": communitySettings_EditCommunity_ScrollView, "objectName": "editCommunityDescriptionInput", "type": "TextEdit"}
|
||||||
communitySettings_EditCommunity_ColorPicker_Button = {"container": communitySettings_EditCommunity_ScrollView, "objectName": "editCommunityColorPicker", "type": "CommunityColorPicker"}
|
communitySettings_EditCommunity_ColorPicker_Button = {"container": communitySettings_EditCommunity_ScrollView, "objectName": "editCommunityColorPicker", "type": "CommunityColorPicker"}
|
||||||
communitySettings_Save_Button = {"container": statusDesktop_mainWindow, "objectName": "settingsDirtyToastMessageSaveButton", "type": "StatusButton", "visible": True}
|
|
||||||
|
|
||||||
# Community color popup:
|
# Community color popup:
|
||||||
communitySettings_ColorPanel_HexColor_Input = {"container": statusDesktop_mainWindow_overlay, "objectName": "communityColorPanelHexInput", "type": "TextEdit"}
|
communitySettings_ColorPanel_HexColor_Input = {"container": statusDesktop_mainWindow_overlay, "objectName": "communityColorPanelHexInput", "type": "TextEdit"}
|
||||||
|
|
|
@ -6,3 +6,6 @@ chatView_log = {"container": statusDesktop_mainWindow, "objectName": "chatLogVie
|
||||||
chatMessageListView_msgDelegate_MessageView = {"container": chatView_log, "objectName": "chatMessageViewDelegate", "index": 1, "type": "MessageView", "visible": True}
|
chatMessageListView_msgDelegate_MessageView = {"container": chatView_log, "objectName": "chatMessageViewDelegate", "index": 1, "type": "MessageView", "visible": True}
|
||||||
moduleWarning_Banner = {"container": statusDesktop_mainWindow, "objectName": "moduleWarningBanner", "type": "Rectangle", "visible": True}
|
moduleWarning_Banner = {"container": statusDesktop_mainWindow, "objectName": "moduleWarningBanner", "type": "Rectangle", "visible": True}
|
||||||
statusDesktop_mainWindow_AppMain_EmojiPopup_SearchTextInput = {"container": statusDesktop_mainWindow_overlay, "objectName": "StatusEmojiPopup_searchBox", "type": "TextEdit", "visible": True}
|
statusDesktop_mainWindow_AppMain_EmojiPopup_SearchTextInput = {"container": statusDesktop_mainWindow_overlay, "objectName": "StatusEmojiPopup_searchBox", "type": "TextEdit", "visible": True}
|
||||||
|
|
||||||
|
# popups
|
||||||
|
close_popup_StatusFlatRoundButton = {"container": statusDesktop_mainWindow_overlay, "id": "closeButton", "type": "StatusFlatRoundButton", "unnamed": 1, "visible": True}
|
||||||
|
|
|
@ -6,14 +6,33 @@ navBarListView_Settings_navbar_StatusNavBarTabButton = {"checkable": True, "cont
|
||||||
settings_navbar_settings_icon_StatusIcon = {"container": navBarListView_Settings_navbar_StatusNavBarTabButton, "objectName": "settings-icon", "type": "StatusIcon", "visible": True}
|
settings_navbar_settings_icon_StatusIcon = {"container": navBarListView_Settings_navbar_StatusNavBarTabButton, "objectName": "settings-icon", "type": "StatusIcon", "visible": True}
|
||||||
advanced_StatusBaseText = {"container": statusDesktop_mainWindow, "text": "Advanced", "type": "StatusBaseText", "unnamed": 1, "visible": True}
|
advanced_StatusBaseText = {"container": statusDesktop_mainWindow, "text": "Advanced", "type": "StatusBaseText", "unnamed": 1, "visible": True}
|
||||||
mainWindow_ScrollView = {"container": statusDesktop_mainWindow, "type": "StatusScrollView", "unnamed": 1, "visible": True}
|
mainWindow_ScrollView = {"container": statusDesktop_mainWindow, "type": "StatusScrollView", "unnamed": 1, "visible": True}
|
||||||
|
mainWindow_ScrollView_2 = {"container": statusDesktop_mainWindow, "occurrence": 2, "type": "StatusScrollView", "unnamed": 1, "visible": True}
|
||||||
wallet_AppMenu_StatusNavigationListItem = {"container": mainWindow_ScrollView, "objectName": "Wallet-AppMenu", "type": "StatusNavigationListItem", "visible": True}
|
wallet_AppMenu_StatusNavigationListItem = {"container": mainWindow_ScrollView, "objectName": "Wallet-AppMenu", "type": "StatusNavigationListItem", "visible": True}
|
||||||
communities_AppMenu_StatusNavigationListItem = {"container": mainWindow_ScrollView, "objectName": "Communities-AppMenu", "type": "StatusNavigationListItem", "visible": True}
|
communities_AppMenu_StatusNavigationListItem = {"container": mainWindow_ScrollView, "objectName": "Communities-AppMenu", "type": "StatusNavigationListItem", "visible": True}
|
||||||
|
profile_MainMenu_StatusNavigationListItem = {"container": mainWindow_ScrollView, "objectName": "Profile-MainMenu", "type": "StatusNavigationListItem", "visible": True}
|
||||||
|
settingsSave_StatusButton = {"container": statusDesktop_mainWindow, "objectName": "settingsDirtyToastMessageSaveButton", "type": "StatusButton", "visible": True}
|
||||||
|
|
||||||
|
# Profile Settings:
|
||||||
|
displayName_StatusInput = {"container": mainWindow_ScrollView_2, "objectName": "displayNameInput", "type": "StatusInput", "visible": True}
|
||||||
|
displayName_TextEdit = {"container": displayName_StatusInput, "type": "TextEdit", "unnamed": 1, "visible": True}
|
||||||
|
bio_StatusInput = {"container": mainWindow_ScrollView_2, "objectName": "bioInput", "type": "StatusInput", "visible": True}
|
||||||
|
bio_TextEdit = {"container": bio_StatusInput, "type": "TextEdit", "unnamed": 1, "visible": True}
|
||||||
|
twitter_StaticSocialLinkInput = {"container": mainWindow_ScrollView_2, "objectName": "__twitter-socialLinkInput", "type": "StaticSocialLinkInput", "visible": True}
|
||||||
|
personalSite_StaticSocialLinkInput = {"container": mainWindow_ScrollView_2, "objectName": "__personal_site-socialLinkInput", "type": "StaticSocialLinkInput", "visible": True}
|
||||||
|
addMoreSocialLinks_StatusIconTextButton = {"container": mainWindow_ScrollView_2, "objectName": "addMoreSocialLinksButton", "type": "StatusIconTextButton", "visible": True}
|
||||||
|
twitter_popup_StaticSocialLinkInput = {"container": statusDesktop_mainWindow_overlay, "objectName": "__twitter-socialLinkInput", "type": "StaticSocialLinkInput", "visible": True}
|
||||||
|
twitter_popup_TextEdit = {"container": twitter_popup_StaticSocialLinkInput, "type": "TextEdit", "unnamed": 1, "visible": True}
|
||||||
|
personalSite_popup_StaticSocialLinkInput = {"container": statusDesktop_mainWindow_overlay, "objectName": "__personal_site-socialLinkInput", "type": "StaticSocialLinkInput", "visible": True}
|
||||||
|
personalSite_popup_TextEdit = {"container": personalSite_popup_StaticSocialLinkInput, "type": "TextEdit", "unnamed": 1, "visible": True}
|
||||||
|
customLink_popup_StatusInput = {"container": statusDesktop_mainWindow_overlay, "objectName": "hyperlinkInput", "type": "StatusInput", "visible": True}
|
||||||
|
customLink_popup_TextEdit = {"container": customLink_popup_StatusInput, "type": "TextEdit", "unnamed": 1, "visible": True}
|
||||||
|
customUrl_popup_StatusInput = {"container": statusDesktop_mainWindow_overlay, "objectName": "urlInput", "type": "StatusInput", "visible": True}
|
||||||
|
customUrl_popup_TextEdit = {"container": customUrl_popup_StatusInput, "type": "TextEdit", "unnamed": 1, "visible": True}
|
||||||
|
|
||||||
# Wallet Settings:
|
# Wallet Settings:
|
||||||
settings_Wallet_MainView_GeneratedAccounts = {"container": statusDesktop_mainWindow, "objectName":'generatedAccounts', "type": 'ListView'}
|
settings_Wallet_MainView_GeneratedAccounts = {"container": statusDesktop_mainWindow, "objectName":'generatedAccounts', "type": 'ListView'}
|
||||||
settings_Wallet_AccountView_DeleteAccount = {"container": statusDesktop_mainWindow, "type": "StatusButton", "objectName": "deleteAccountButton"}
|
settings_Wallet_AccountView_DeleteAccount = {"container": statusDesktop_mainWindow, "type": "StatusButton", "objectName": "deleteAccountButton"}
|
||||||
settings_Wallet_AccountView_DeleteAccount_Confirm = {"container": statusDesktop_mainWindow, "type": "StatusButton", "objectName": "confirmDeleteAccountButton"}
|
settings_Wallet_AccountView_DeleteAccount_Confirm = {"container": statusDesktop_mainWindow, "type": "StatusButton", "objectName": "confirmDeleteAccountButton"}
|
||||||
mainWindow_ScrollView_2 = {"container": statusDesktop_mainWindow, "occurrence": 2, "type": "StatusScrollView", "unnamed": 1, "visible": True}
|
|
||||||
settings_Wallet_MainView_Networks = {"container": statusDesktop_mainWindow, "objectName": "networksItem", "type": "StatusListItem"}
|
settings_Wallet_MainView_Networks = {"container": statusDesktop_mainWindow, "objectName": "networksItem", "type": "StatusListItem"}
|
||||||
settings_Wallet_NetworksView_TestNet_Toggle = {"container": statusDesktop_mainWindow, "objectName": "testnetModeSwitch", "type": "StatusSwitch"}
|
settings_Wallet_NetworksView_TestNet_Toggle = {"container": statusDesktop_mainWindow, "objectName": "testnetModeSwitch", "type": "StatusSwitch"}
|
||||||
settings_Wallet_AccountView_EditAccountButton = {"container": statusDesktop_mainWindow, "type": "StatusFlatRoundButton", "objectName": "walletAccountViewEditAccountButton"}
|
settings_Wallet_AccountView_EditAccountButton = {"container": statusDesktop_mainWindow, "type": "StatusFlatRoundButton", "objectName": "walletAccountViewEditAccountButton"}
|
||||||
|
|
|
@ -69,3 +69,39 @@ def step(context: any):
|
||||||
@When("the user leaves the community")
|
@When("the user leaves the community")
|
||||||
def step(context: any):
|
def step(context: any):
|
||||||
_settingsScreen.leave_community()
|
_settingsScreen.leave_community()
|
||||||
|
|
||||||
|
@When("the user opens the profile settings")
|
||||||
|
def step(context: any):
|
||||||
|
_settingsScreen.open_profile_settings()
|
||||||
|
|
||||||
|
@When("the user sets display name to \"|any|\"")
|
||||||
|
def step(context, display_name):
|
||||||
|
_settingsScreen.set_display_name(display_name)
|
||||||
|
|
||||||
|
@Then("the user's display name should be \"|any|\"")
|
||||||
|
def step(context, display_name):
|
||||||
|
_settingsScreen.verify_display_name(display_name)
|
||||||
|
|
||||||
|
@When("the user sets bio to \"|any|\"")
|
||||||
|
def step(context, bio):
|
||||||
|
_settingsScreen.set_bio(bio)
|
||||||
|
|
||||||
|
@Then("the user's bio should be empty")
|
||||||
|
def step(context):
|
||||||
|
_settingsScreen.verify_bio("")
|
||||||
|
|
||||||
|
@Then("the user's bio should be \"|any|\"")
|
||||||
|
def step(context, bio):
|
||||||
|
_settingsScreen.verify_bio(bio)
|
||||||
|
|
||||||
|
@When("the user sets display links to twitter: \"|any|\", personal site: \"|any|\", \"|any|\": \"|any|\"")
|
||||||
|
def step(context, twitter, personal_site, custom_link_name, custom_link):
|
||||||
|
_settingsScreen.set_social_links(twitter, personal_site, custom_link_name, custom_link)
|
||||||
|
|
||||||
|
@Then("the user's social links should be empty")
|
||||||
|
def step(context):
|
||||||
|
_settingsScreen.verify_social_links("", "", "", "")
|
||||||
|
|
||||||
|
@Then("the user's social links should be: \"|any|\", personal site: \"|any|\", \"|any|\": \"|any|\"")
|
||||||
|
def step(context, twitter, personal_site, custom_link_name, custom_link):
|
||||||
|
_settingsScreen.verify_social_links(twitter, personal_site, custom_link_name, custom_link)
|
||||||
|
|
|
@ -5,6 +5,6 @@ HOOK_SUB_PROCESSES=false
|
||||||
IMPLICITAUTSTART=0
|
IMPLICITAUTSTART=0
|
||||||
LANGUAGE=Python
|
LANGUAGE=Python
|
||||||
OBJECTMAPSTYLE=script
|
OBJECTMAPSTYLE=script
|
||||||
TEST_CASES=tst_statusLoginPassword tst_basicChatFlow tst_wallet tst_communityFlows tst_groupChat tst_transaction tst_settingsMenu
|
TEST_CASES=tst_statusLoginPassword tst_basicChatFlow tst_wallet tst_communityFlows tst_groupChat tst_transaction tst_settingsMenu tst_userIdentity
|
||||||
VERSION=3
|
VERSION=3
|
||||||
WRAPPERS=Qt
|
WRAPPERS=Qt
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
Feature: User Identity
|
||||||
|
|
||||||
|
As a user I want to set my identity, that is: display name, bio and social links.
|
||||||
|
|
||||||
|
Scenario: User sets display name, bio and social links
|
||||||
|
Given A first time user lands on the status desktop and generates new key
|
||||||
|
When user signs up with username tester123 and password TesTEr16843/!@00
|
||||||
|
Then the user lands on the signed in app
|
||||||
|
When the user opens app settings screen
|
||||||
|
And the user opens the profile settings
|
||||||
|
Then the user's display name should be "tester123"
|
||||||
|
And the user's bio should be empty
|
||||||
|
And the user's social links should be empty
|
||||||
|
When the user sets display name to "tester123_changed"
|
||||||
|
And the user sets bio to "Hello, I am super tester!"
|
||||||
|
And the user sets display links to twitter: "twitter_handle", personal site: "status.im", "customLink": "customUrl"
|
||||||
|
And the user restarts the app
|
||||||
|
And the user tester123_changed logs in with password TesTEr16843/!@00
|
||||||
|
Then the user lands on the signed in app
|
||||||
|
When the user opens app settings screen
|
||||||
|
And the user opens the profile settings
|
||||||
|
Then the user's display name should be "tester123_changed"
|
||||||
|
And the user's bio should be "Hello, I am super tester!"
|
||||||
|
And the user's social links should be: "twitter_handle", personal site: "status.im", "customLink": "customUrl"
|
|
@ -0,0 +1,8 @@
|
||||||
|
source(findFile('scripts', 'python/bdd.py'))
|
||||||
|
|
||||||
|
setupHooks('../shared/scripts/bdd_hooks.py')
|
||||||
|
collectStepDefinitions('./steps', '../shared/steps')
|
||||||
|
|
||||||
|
def main():
|
||||||
|
testSettings.throwOnFailure = True
|
||||||
|
runFeatureFile('test.feature')
|
|
@ -31,6 +31,7 @@ Item {
|
||||||
|
|
||||||
StatusInput {
|
StatusInput {
|
||||||
id: hyperlinkInput
|
id: hyperlinkInput
|
||||||
|
objectName: "hyperlinkInput"
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
label: qsTr("Hyperlink Text")
|
label: qsTr("Hyperlink Text")
|
||||||
|
@ -40,6 +41,7 @@ Item {
|
||||||
|
|
||||||
StatusInput {
|
StatusInput {
|
||||||
id: urlInput
|
id: urlInput
|
||||||
|
objectName: "urlInput"
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
label: qsTr("URL")
|
label: qsTr("URL")
|
||||||
|
|
|
@ -25,6 +25,7 @@ Column {
|
||||||
Repeater {
|
Repeater {
|
||||||
id: mainMenuItems
|
id: mainMenuItems
|
||||||
delegate: StatusNavigationListItem {
|
delegate: StatusNavigationListItem {
|
||||||
|
objectName: model.text + "-MainMenu"
|
||||||
itemId: model.subsection
|
itemId: model.subsection
|
||||||
title: model.text
|
title: model.text
|
||||||
icon.name: model.icon
|
icon.name: model.icon
|
||||||
|
|
|
@ -31,6 +31,7 @@ Item {
|
||||||
|
|
||||||
StatusInput {
|
StatusInput {
|
||||||
id: displayNameInput
|
id: displayNameInput
|
||||||
|
objectName: "displayNameInput"
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
@ -43,6 +44,7 @@ Item {
|
||||||
|
|
||||||
StatusInput {
|
StatusInput {
|
||||||
id: bioInput
|
id: bioInput
|
||||||
|
objectName: "bioInput"
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 5 // by design
|
Layout.topMargin: 5 // by design
|
||||||
|
@ -59,6 +61,8 @@ Item {
|
||||||
Repeater {
|
Repeater {
|
||||||
model: root.socialLinksModel
|
model: root.socialLinksModel
|
||||||
delegate: StaticSocialLinkInput {
|
delegate: StaticSocialLinkInput {
|
||||||
|
objectName: model.text + "-socialLinkInput"
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
linkType: model.linkType
|
linkType: model.linkType
|
||||||
text: model.url
|
text: model.url
|
||||||
|
@ -68,6 +72,7 @@ Item {
|
||||||
}
|
}
|
||||||
|
|
||||||
StatusIconTextButton {
|
StatusIconTextButton {
|
||||||
|
objectName: "addMoreSocialLinksButton"
|
||||||
Layout.topMargin: -8 // by design
|
Layout.topMargin: -8 // by design
|
||||||
text: qsTr("Add more social links")
|
text: qsTr("Add more social links")
|
||||||
onClicked: root.addSocialLinksClicked()
|
onClicked: root.addSocialLinksClicked()
|
||||||
|
|
|
@ -15,6 +15,7 @@ import SortFilterProxyModel 0.2
|
||||||
|
|
||||||
StatusDialog {
|
StatusDialog {
|
||||||
id: root
|
id: root
|
||||||
|
objectName: "socialLinksModal"
|
||||||
|
|
||||||
property ProfileStore profileStore
|
property ProfileStore profileStore
|
||||||
|
|
||||||
|
@ -76,6 +77,8 @@ StatusDialog {
|
||||||
Repeater {
|
Repeater {
|
||||||
id: staticLinksRepeater
|
id: staticLinksRepeater
|
||||||
delegate: StaticSocialLinkInput {
|
delegate: StaticSocialLinkInput {
|
||||||
|
objectName: model.text + "-socialLinkInput"
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
linkType: model.linkType
|
linkType: model.linkType
|
||||||
text: model.url
|
text: model.url
|
||||||
|
@ -100,6 +103,8 @@ StatusDialog {
|
||||||
Repeater {
|
Repeater {
|
||||||
id: customLinksRepeater
|
id: customLinksRepeater
|
||||||
delegate: CustomSocialLinkInput {
|
delegate: CustomSocialLinkInput {
|
||||||
|
objectName: "customSocialLinkInput"
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
hyperlink: model.text
|
hyperlink: model.text
|
||||||
|
|
Loading…
Reference in New Issue