const commonPage = require ( './common.page' ) ;
module . exports = {
// conversation view
sessionLoader : commonPage . divWithClass ( 'session-loader' ) ,
leftPaneOverlay : commonPage . divWithClass ( 'module-left-pane-overlay' ) ,
sendMessageTextarea : commonPage . textAreaWithClass ( 'send-message' ) ,
sendFriendRequestTextarea : commonPage . textAreaWithPlaceholder (
'Send your first message'
) ,
existingSendMessageText : textMessage =>
` //*[contains(@class, "module-message__text--outgoing") and .//span[contains(@class, "text-selectable")][contains(string(), ' ${ textMessage } ')]] ` ,
existingFriendRequestText : textMessage =>
` //*[contains(@class, "module-message-friend-request__container") and .//span[contains(@class, "text-selectable")][contains(string(), ' ${ textMessage } ')]] ` ,
existingReceivedMessageText : textMessage =>
` //*[contains(@class, "module-message__text--incoming") and .//span[contains(@class, "text-selectable")][contains(string(), ' ${ textMessage } ')]] ` ,
// conversations
conversationButtonSection :
'//*[contains(@class,"session-icon-button") and .//*[contains(@class, "chatBubble")]]' ,
retrySendButton : commonPage . divWithClassAndText (
'module-friend-request__buttonContainer--outgoing' ,
'Retry Send'
) ,
headerTitleMembers : number =>
commonPage . spanWithClassAndText (
'module-conversation-header__title-text' ,
` ${ number } members `
) ,
conversationItem : commonPage . divWithClass ( 'module-conversation-list-item' ) ,
attachmentInput : '//*[contains(@class, "choose-file")]/input[@type="file"]' ,
attachmentButton : '//*[contains(@class, "choose-file")]/button' ,
messageCtxMenu : message =>
` //div[contains(@class, 'message-wrapper')]//span[contains(string(), ' ${ message } ')]/parent::div/parent::div/parent::div/parent::div//div[contains(@class, 'module-message__buttons__menu')] ` ,
deleteMessageCtxButton :
'//*[contains(@class, "react-contextmenu--visible")]/div[contains(string(), "Delete")]' ,
deleteMessageModalButton :
'//*[contains(@class, "session-modal")]//div[contains(string(), "Delete") and contains(@class, "session-button")]' ,
// channels
joinOpenGroupButton : commonPage . divRoleButtonWithText ( 'Join Open Group' ) ,
openGroupInputUrl : commonPage . textAreaWithPlaceholder ( 'chat.getsession.org' ) ,
sessionToastJoinOpenGroupSuccess : commonPage . toastWithText (
'Successfully connected to new open group server'
) ,
sessionToastJoinOpenGroupAlreadyExist : commonPage . toastWithText (
'You are already connected to this public channel'
) ,
rowOpenGroupConversationName : groupName =>
commonPage . spanWithClassAndText (
'module-conversation__user__profile-number' ,
groupName
) ,
// closed group
createClosedGroupButton : commonPage . divRoleButtonWithText (
'Create Closed Group'
) ,
closedGroupNameTextarea : commonPage . textAreaWithPlaceholder (
'Enter a group name'
) ,
createClosedGroupMemberItem : idx =>
commonPage . divWithClass ( ` session-member-item- ${ idx } ` ) ,
createClosedGroupSealedSenderToggle : commonPage . divWithClass (
'session-toggle'
) ,
createClosedGroupMemberItemSelected : commonPage . divWithClass (
'session-member-item selected'
) ,
validateCreationClosedGroupButton : commonPage . divRoleButtonWithText (
'Create Closed Group'
) ,
sessionToastGroupCreatedSuccess : commonPage . toastWithText (
'Group created successfully'
) ,
headerTitleGroupName : groupname =>
commonPage . spanWithClassAndText (
'module-contact-name__profile-name' ,
groupname
) ,
// contacts
contactsButtonSection :
'//*[contains(@class,"session-icon-button") and .//*[contains(@class, "users")]]' ,
addContactButton : commonPage . divRoleButtonWithText ( 'Add Contact' ) ,
sessionIDInput : commonPage . textAreaWithPlaceholder ( 'Enter a Session ID' ) ,
nextButton : commonPage . divRoleButtonWithText ( 'Next' ) ,
oneNotificationFriendRequestLeft :
'//*[contains(@class,"session-icon-button") and .//*[contains(@class, "users")] and .//*[contains(@class, "notification-count") and contains(string(), "1")] ]' ,
oneNotificationFriendRequestTop :
'//*[contains(@class,"notification-count hover") and contains(string(), "1")]' ,
friendRequestFromUser : ( displayName , pubkey ) =>
` //*[contains(@class,"module-left-pane__list-popup") and .//*[contains(@class, "module-conversation__user") and .//*[contains(string(), " ${ displayName } ")] and .//*[contains(string(), "(... ${ pubkey . substring (
60
) } ) " ) ] ] ] ` ,
acceptFriendRequestButton :
'//*[contains(@role, "button")][contains(@class, "session-button")][contains(string(), "Accept")]' ,
acceptedFriendRequestMessage :
'//*[contains(@class, "module-friend-request__title")][contains(string(), "Friend request accepted")]' ,
descriptionDeleteAccount : commonPage . spanWithClassAndText (
'session-confirm-main-message' ,
'Are you sure you want to delete your account?'
) ,
validateDeleteAccount : commonPage . divRoleButtonDangerWithText ( 'OK' ) ,
// device linking
noPairedDeviceMessage :
'//*[contains(@class, "session-settings-item__title")][contains(string(), "No linked devices")]' ,
linkDeviceButton : commonPage . divRoleButtonWithText ( 'Link New Device' ) ,
linkDeviceButtonDisabled : commonPage . divRoleButtonWithTextDisabled (
'Link New Device'
) ,
devicePairingDialog : '//*[contains(@class,"device-pairing-dialog")]' ,
qrImageDiv : commonPage . divWithClass ( 'qr-image' ) ,
allowPairingButton : commonPage . divRoleButtonWithText ( 'Allow Linking' ) ,
okButton : commonPage . divRoleButtonWithText ( 'OK' ) ,
devicePairedDescription : secretWords =>
commonPage . divWithClassAndText (
'session-settings-item__description' ,
secretWords
) ,
unpairDeviceButton : commonPage . divRoleButtonDangerWithText ( 'Unlink Device' ) ,
deleteAccountButton : commonPage . divRoleButtonDangerWithText ( 'Delete Account' ) ,
validateUnpairDevice : commonPage . divRoleButtonDangerWithText ( 'Unlink' ) ,
} ;