chore(tests_: remove tests that use public chats
This commit is contained in:
parent
fdc0dce782
commit
4a93fa14bc
|
@ -20,7 +20,6 @@ import time
|
||||||
class MainScreenComponents(Enum):
|
class MainScreenComponents(Enum):
|
||||||
MAIN_WINDOW = "statusDesktop_mainWindow"
|
MAIN_WINDOW = "statusDesktop_mainWindow"
|
||||||
POPUP_OVERLAY = "statusDesktop_mainWindow_overlay"
|
POPUP_OVERLAY = "statusDesktop_mainWindow_overlay"
|
||||||
PUBLIC_CHAT_ICON = "mainWindow_public_chat_icon_StatusIcon"
|
|
||||||
CHAT_NAVBAR_ICON = "navBarListView_Chat_navbar_StatusNavBarTabButton"
|
CHAT_NAVBAR_ICON = "navBarListView_Chat_navbar_StatusNavBarTabButton"
|
||||||
COMMUNITY_PORTAL_BUTTON = "navBarListView_Communities_Portal_navbar_StatusNavBarTabButton"
|
COMMUNITY_PORTAL_BUTTON = "navBarListView_Communities_Portal_navbar_StatusNavBarTabButton"
|
||||||
JOIN_PUBLIC_CHAT = "join_public_chat_StatusMenuItem"
|
JOIN_PUBLIC_CHAT = "join_public_chat_StatusMenuItem"
|
||||||
|
@ -99,12 +98,6 @@ class StatusMainScreen:
|
||||||
sleep_test(0.5)
|
sleep_test(0.5)
|
||||||
verify_failure(f"Banner is still visible after {timeoutMSec}ms")
|
verify_failure(f"Banner is still visible after {timeoutMSec}ms")
|
||||||
|
|
||||||
def join_chat_room(self, room: str):
|
|
||||||
click_obj_by_name(MainScreenComponents.PUBLIC_CHAT_ICON.value)
|
|
||||||
#click_obj_by_name(MainScreenComponents.JOIN_PUBLIC_CHAT.value)
|
|
||||||
type(ChatNamePopUp.INPUT_ROOM_TOPIC_TEXT.value, room)
|
|
||||||
click_obj_by_name(ChatNamePopUp.START_CHAT_BTN.value)
|
|
||||||
|
|
||||||
def open_chat_section(self):
|
def open_chat_section(self):
|
||||||
click_obj_by_name(MainScreenComponents.CHAT_NAVBAR_ICON.value)
|
click_obj_by_name(MainScreenComponents.CHAT_NAVBAR_ICON.value)
|
||||||
|
|
||||||
|
|
|
@ -38,15 +38,12 @@ closeButton_StatusHeaderAction = {"container": statusDesktop_mainWindow_overlay,
|
||||||
# Main Window - chat related:
|
# Main Window - chat related:
|
||||||
mainWindow_statusChatNavBarListView_ListView = {"container": statusDesktop_mainWindow, "objectName": "statusChatNavBarListView", "type": "ListView", "visible": True}
|
mainWindow_statusChatNavBarListView_ListView = {"container": statusDesktop_mainWindow, "objectName": "statusChatNavBarListView", "type": "ListView", "visible": True}
|
||||||
navBarListView_Chat_navbar_StatusNavBarTabButton = {"checkable": True, "container": mainWindow_statusChatNavBarListView_ListView, "objectName": "Messages-navbar", "type": "StatusNavBarTabButton", "visible": True}
|
navBarListView_Chat_navbar_StatusNavBarTabButton = {"checkable": True, "container": mainWindow_statusChatNavBarListView_ListView, "objectName": "Messages-navbar", "type": "StatusNavBarTabButton", "visible": True}
|
||||||
mainWindow_public_chat_icon_StatusIcon = {"container": statusDesktop_mainWindow, "objectName": "public-chat-icon", "source": "qrc:/StatusQ/src/assets/img/icons/public-chat.svg", "type": "StatusIcon", "visible": True}
|
|
||||||
chatList_Repeater = {"container": statusDesktop_mainWindow, "objectName": "chatListItems", "type": "Repeater", "visible": True}
|
chatList_Repeater = {"container": statusDesktop_mainWindow, "objectName": "chatListItems", "type": "Repeater", "visible": True}
|
||||||
chatList = {"container": statusDesktop_mainWindow, "objectName": "ContactsColumnView_chatList", "type": "StatusChatList"}
|
chatList = {"container": statusDesktop_mainWindow, "objectName": "ContactsColumnView_chatList", "type": "StatusChatList"}
|
||||||
mainWindow_startChat = {"checkable": True, "container": statusDesktop_mainWindow, "objectName": "startChatButton", "type": "StatusIconTabButton"}
|
mainWindow_startChat = {"checkable": True, "container": statusDesktop_mainWindow, "objectName": "startChatButton", "type": "StatusIconTabButton"}
|
||||||
join_public_chat_StatusMenuItem = {"checkable": False, "container": statusDesktop_mainWindow_overlay, "enabled": True, "text": "Join public chat", "type": "StatusMenuItem", "unnamed": 1, "visible": True}
|
|
||||||
chatView_messageInput = {"container": statusDesktop_mainWindow, "objectName": "messageInputField", "type": "TextArea", "visible": True}
|
chatView_messageInput = {"container": statusDesktop_mainWindow, "objectName": "messageInputField", "type": "TextArea", "visible": True}
|
||||||
chatView_StatusChatInfoButton = {"container": statusDesktop_mainWindow, "objectName": "chatInfoBtnInHeader", "type": "StatusChatInfoButton", "visible": True}
|
chatView_StatusChatInfoButton = {"container": statusDesktop_mainWindow, "objectName": "chatInfoBtnInHeader", "type": "StatusChatInfoButton", "visible": True}
|
||||||
chatInfoButton_Pin_Text = {"container": chatView_StatusChatInfoButton, "objectName": "StatusChatInfo_pinText", "type": "StatusBaseText", "visible": True}
|
chatInfoButton_Pin_Text = {"container": chatView_StatusChatInfoButton, "objectName": "StatusChatInfo_pinText", "type": "StatusBaseText", "visible": True}
|
||||||
joinPublicChat_input = {"container": statusDesktop_mainWindow_overlay, "objectName": "joinPublicChannelInput", "type": "TextEdit", "visible": True}
|
|
||||||
startChat_Btn = {"container": statusDesktop_mainWindow_overlay, "objectName": "startChatButton", "type": "StatusButton"}
|
startChat_Btn = {"container": statusDesktop_mainWindow_overlay, "objectName": "startChatButton", "type": "StatusButton"}
|
||||||
chatButtonsPanelConfirmDeleteMessageButton_StatusButton = {"container": statusDesktop_mainWindow_overlay, "objectName": "chatButtonsPanelConfirmDeleteMessageButton", "type": "StatusButton"}
|
chatButtonsPanelConfirmDeleteMessageButton_StatusButton = {"container": statusDesktop_mainWindow_overlay, "objectName": "chatButtonsPanelConfirmDeleteMessageButton", "type": "StatusButton"}
|
||||||
|
|
||||||
|
|
|
@ -114,12 +114,6 @@ def signs_up_with_seed_phrase_process_steps(context, seed_phrase: str, user: str
|
||||||
the_user_signs_up(user, password)
|
the_user_signs_up(user, password)
|
||||||
the_user_lands_on_the_signed_in_app()
|
the_user_lands_on_the_signed_in_app()
|
||||||
|
|
||||||
def the_user_joins_chat_room(chat_room: str):
|
|
||||||
main_screen = StatusMainScreen()
|
|
||||||
main_screen.join_chat_room(chat_room)
|
|
||||||
chat_screen = StatusChatScreen()
|
|
||||||
chat_screen.verify_chat_title(chat_room)
|
|
||||||
|
|
||||||
def the_user_opens_the_chat_section():
|
def the_user_opens_the_chat_section():
|
||||||
main_screen = StatusMainScreen()
|
main_screen = StatusMainScreen()
|
||||||
main_screen.open_chat_section()
|
main_screen.open_chat_section()
|
||||||
|
|
|
@ -40,27 +40,3 @@ Feature: Search feature (ctrl+F)
|
||||||
And the user searches for "automation"
|
And the user searches for "automation"
|
||||||
When the user clicks on the search result for channel "automation-community"
|
When the user clicks on the search result for channel "automation-community"
|
||||||
Then the channel named "automation-community" is open
|
Then the channel named "automation-community" is open
|
||||||
|
|
||||||
@mayfail
|
|
||||||
# myfail because of dekstop issue #7989. Once it is fixed, remove tag.
|
|
||||||
Scenario: The user can search for a public channel
|
|
||||||
Given the user opens the search menu
|
|
||||||
And the user searches for "automation"
|
|
||||||
When the user clicks on the search result for channel "search-automation-test-2"
|
|
||||||
Then the chat title is "search-automation-test-2"
|
|
||||||
|
|
||||||
@mayfail
|
|
||||||
# myfail because of desktop issue #7989. Once it is fixed, remove tag.
|
|
||||||
Scenario: The user can search for a message in a public channel
|
|
||||||
Given the user opens the chat section
|
|
||||||
And the user joins chat room "search-automation-test-1"
|
|
||||||
And the user sends a random chat message
|
|
||||||
# Go back to the portal so that we see if the search really redirects
|
|
||||||
And the user opens the community portal section
|
|
||||||
And the user opens the search menu
|
|
||||||
|
|
||||||
When the user searches the random message
|
|
||||||
Then the search menu shows 1 results
|
|
||||||
|
|
||||||
When the user clicks on the search result for the random message
|
|
||||||
Then the chat title is "search-automation-test-1"
|
|
||||||
|
|
|
@ -2,6 +2,6 @@ AUT=nim_status_client
|
||||||
ENVVARS=envvars
|
ENVVARS=envvars
|
||||||
LANGUAGE=Python
|
LANGUAGE=Python
|
||||||
OBJECTMAPSTYLE=script
|
OBJECTMAPSTYLE=script
|
||||||
TEST_CASES=tst_ChatFlow tst_groupChat tst_adminGroupChat tst_chatsNavigation
|
TEST_CASES=tst_groupChat tst_adminGroupChat
|
||||||
VERSION=3
|
VERSION=3
|
||||||
WRAPPERS=Qt
|
WRAPPERS=Qt
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# This file contains hook functions to run as the .feature file is executed
|
|
||||||
|
|
||||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../testSuites/global_shared/"))
|
|
||||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../src/"))
|
|
||||||
|
|
||||||
import steps.commonInitSteps as init_steps
|
|
||||||
|
|
||||||
# Global properties for the specific feature
|
|
||||||
_user = "tester123"
|
|
||||||
_password = "TesTEr16843/!@00"
|
|
||||||
_chat_room = "test"
|
|
||||||
|
|
||||||
@OnFeatureStart
|
|
||||||
def hook(context):
|
|
||||||
init_steps.context_init(context, testSettings)
|
|
||||||
init_steps.signs_up_process_steps(context, _user, _password)
|
|
||||||
init_steps.the_user_joins_chat_room(_chat_room)
|
|
||||||
|
|
||||||
@OnFeatureEnd
|
|
||||||
def hook(context):
|
|
||||||
currentApplicationContext().detach()
|
|
||||||
snooze(_app_closure_timeout)
|
|
||||||
|
|
||||||
@OnScenarioStart
|
|
||||||
def hook(context):
|
|
||||||
init_steps.the_user_opens_the_chat_section()
|
|
||||||
|
|
||||||
@OnStepEnd
|
|
||||||
def hook(context):
|
|
||||||
context.userData["step_name"] = context._data["text"]
|
|
|
@ -1,140 +0,0 @@
|
||||||
Feature: Status Desktop Chat Basic Flows
|
|
||||||
|
|
||||||
As a user I want to join the public chat room "test" and do basic interactions.
|
|
||||||
|
|
||||||
The following scenarios cover basic chat flows on "test" public channel.
|
|
||||||
|
|
||||||
The feature start sequence is the following (setup on its own `bdd_hooks`):
|
|
||||||
** 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"
|
|
||||||
** and the user lands on the signed in app
|
|
||||||
** and user joins chat room "test"
|
|
||||||
|
|
||||||
[Cleanup] Also each scenario starts with:
|
|
||||||
** when the user opens the chat section
|
|
||||||
# TODO: Add scenario end -> clear chat input.
|
|
||||||
|
|
||||||
Scenario Outline: The user can chat in a public room
|
|
||||||
When the user sends a chat message "<message>"
|
|
||||||
Then the last chat message contains "<message>"
|
|
||||||
Examples:
|
|
||||||
| message |
|
|
||||||
| Hello |
|
|
||||||
| How are you |
|
|
||||||
| I am from status |
|
|
||||||
| tell me how you do? |
|
|
||||||
|
|
||||||
Scenario Outline: The user can reply to own message
|
|
||||||
Given the user sends a chat message "<message>"
|
|
||||||
When the user replies to the message at index 0 with "<reply>"
|
|
||||||
Then the chat message "<reply>" is displayed as a reply of this user's "<message>"
|
|
||||||
Examples:
|
|
||||||
| message | reply |
|
|
||||||
| random chat message | This is a reply |
|
|
||||||
|
|
||||||
Scenario Outline: The user can edit a message
|
|
||||||
Given the user sends a chat message "Edit me"
|
|
||||||
# Checking that message can be edited several times
|
|
||||||
When the user edits the message at index 0 and changes it to "first edition"
|
|
||||||
Then the chat message "first edition" is displayed as an edited one
|
|
||||||
When the user edits the message at index 0 and changes it to "<edited>"
|
|
||||||
Then the chat message "<edited>" is displayed as an edited one
|
|
||||||
Examples:
|
|
||||||
| edited |
|
|
||||||
| Edited by me |
|
|
||||||
|
|
||||||
@relyon-mailserver
|
|
||||||
Scenario Outline: The user can reply to another message
|
|
||||||
When the user replies to the message at index 0 with "<reply>"
|
|
||||||
Then the chat message "<reply>" is displayed as a reply
|
|
||||||
Examples:
|
|
||||||
| reply |
|
|
||||||
| This is a reply |
|
|
||||||
|
|
||||||
|
|
||||||
Scenario Outline: The user can delete his/her own message
|
|
||||||
Given the user sends a chat message "<message>"
|
|
||||||
When the user deletes the message at index 0
|
|
||||||
Then the last message displayed is not "<message>"
|
|
||||||
Examples:
|
|
||||||
| message |
|
|
||||||
| random chat message |
|
|
||||||
|
|
||||||
Scenario: The user can clear chat history
|
|
||||||
Given the user sends a chat message "Hi hi"
|
|
||||||
And the user sends a chat message "testing chat"
|
|
||||||
And the user sends a chat message "history"
|
|
||||||
When the user clears chat history
|
|
||||||
Then the chat is cleared
|
|
||||||
|
|
||||||
Scenario: The user can send a GIF
|
|
||||||
Given the user opens app settings screen
|
|
||||||
And the user opens the messaging settings
|
|
||||||
When the user activates the link preview if it is deactivated
|
|
||||||
And the user activates tenor GIFs preview
|
|
||||||
And the user opens the chat section
|
|
||||||
And the user sends a GIF message
|
|
||||||
Then the GIF message is displayed
|
|
||||||
|
|
||||||
Scenario Outline: The user can activate image unfurling
|
|
||||||
Given the user sends a chat message "<image_url>"
|
|
||||||
And the image "<image_url>" is not unfurled in the chat
|
|
||||||
And the user opens app settings screen
|
|
||||||
And the user opens the messaging settings
|
|
||||||
When the user activates the link preview if it is deactivated
|
|
||||||
And the user activates image unfurling
|
|
||||||
And the user opens the chat section
|
|
||||||
Then the image "<image_url>" is unfurled in the chat
|
|
||||||
Examples:
|
|
||||||
| image_url |
|
|
||||||
| https://github.com/status-im/status-desktop/raw/master/test/ui-test/fixtures/images/doggo.jpeg |
|
|
||||||
|
|
||||||
Scenario: The user is able to use emoji suggestions
|
|
||||||
Given the user types "hello :thumbs"
|
|
||||||
And the user selects the emoji in the suggestion's list
|
|
||||||
When the user presses enter
|
|
||||||
Then the last chat message contains "👍"
|
|
||||||
|
|
||||||
@relyon-mailserver
|
|
||||||
Scenario: The user cannot delete another user's message
|
|
||||||
Then the user cannot delete the last message
|
|
||||||
|
|
||||||
@relyon-mailserver
|
|
||||||
Scenario Outline: The user can do a mention
|
|
||||||
When the user inputs a mention to "<displayName>" with message "<message>"
|
|
||||||
Then the "<displayName>" mention with message "<message>" have been sent
|
|
||||||
Examples:
|
|
||||||
| displayName | message |
|
|
||||||
| tester123 | testing mention |
|
|
||||||
|
|
||||||
@relyon-mailserver
|
|
||||||
Scenario Outline: The user can not do a mention to a not existing users
|
|
||||||
Then the user cannot input a mention to a not existing user "<displayName>"
|
|
||||||
Examples:
|
|
||||||
| displayName |
|
|
||||||
| notExistingAccount |
|
|
||||||
| asdfgNoNo |
|
|
||||||
|
|
||||||
Scenario: The user can send an emoji as a message
|
|
||||||
When the user sends the emoji "heart_eyes" as a message
|
|
||||||
Then the last chat message contains "😍"
|
|
||||||
|
|
||||||
Scenario Outline: The user can send an emoji in a message
|
|
||||||
When the user sends the emoji "sunglasses" with message "<message>"
|
|
||||||
Then the last chat message contains "😎"
|
|
||||||
And the last chat message contains "<message>"
|
|
||||||
Examples:
|
|
||||||
| message |
|
|
||||||
| wow I'm so cool |
|
|
||||||
|
|
||||||
Scenario: The user can type message with emoji autoreplace
|
|
||||||
When the user sends a chat message "Hello :)"
|
|
||||||
Then the last chat message contains "🙂"
|
|
||||||
And the last chat message contains "Hello"
|
|
||||||
|
|
||||||
@mayfail
|
|
||||||
# NOTE: It may be flaky due to undeterministic network conditions and 3rd party infura response.
|
|
||||||
Scenario: The user can send a sticker after installing a free pack
|
|
||||||
Given the user installs the sticker pack at position 4
|
|
||||||
When the user sends the sticker at position 2 in the list
|
|
||||||
Then the last chat message is a sticker
|
|
|
@ -1,8 +0,0 @@
|
||||||
source(findFile('scripts', 'python/bdd.py'))
|
|
||||||
|
|
||||||
setupHooks('bdd_hooks.py')
|
|
||||||
collectStepDefinitions('./steps', '../shared/steps/', '../../global_shared/steps/', '../../suite_onboarding/shared/steps/')
|
|
||||||
|
|
||||||
def main():
|
|
||||||
testSettings.throwOnFailure = True
|
|
||||||
runFeatureFile('test.feature')
|
|
|
@ -1,26 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# This file contains hook functions to run as the .feature file is executed
|
|
||||||
|
|
||||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../testSuites/global_shared/"))
|
|
||||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../../../src/"))
|
|
||||||
|
|
||||||
import steps.commonInitSteps as init_steps
|
|
||||||
|
|
||||||
# Global properties for the specific feature
|
|
||||||
_user = "tester123"
|
|
||||||
_password = "TesTEr16843/!@00"
|
|
||||||
_chat_room = "test"
|
|
||||||
|
|
||||||
@OnFeatureStart
|
|
||||||
def hook(context):
|
|
||||||
init_steps.context_init(context, testSettings)
|
|
||||||
init_steps.signs_up_process_steps(context, _user, _password)
|
|
||||||
|
|
||||||
@OnFeatureEnd
|
|
||||||
def hook(context):
|
|
||||||
currentApplicationContext().detach()
|
|
||||||
snooze(_app_closure_timeout)
|
|
||||||
|
|
||||||
@OnScenarioStart
|
|
||||||
def hook(context):
|
|
||||||
init_steps.the_user_opens_the_chat_section()
|
|
|
@ -1,42 +0,0 @@
|
||||||
Feature: Status Desktop Chat Navigation
|
|
||||||
|
|
||||||
As a user, I want the 1-1 and group chat navigation
|
|
||||||
to be ordered by chats that I was most recently active in first,
|
|
||||||
so that recent chats are easy to navigate to.
|
|
||||||
|
|
||||||
The feature start sequence is the following (setup on its own `bdd_hooks`):
|
|
||||||
** 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"
|
|
||||||
** and the user lands on the signed in app
|
|
||||||
|
|
||||||
[Cleanup] Also each scenario starts with:
|
|
||||||
** when the user opens the chat section
|
|
||||||
|
|
||||||
Scenario: The user joins a room and marks it as read
|
|
||||||
When the user joins chat room "test"
|
|
||||||
And the user marks the channel "test" as read
|
|
||||||
# TODO find a way to validate that it worked
|
|
||||||
|
|
||||||
Scenario: The user join chats and sees chats in reversed order
|
|
||||||
Given the user has joined chats
|
|
||||||
| first-chat |
|
|
||||||
| second-chat |
|
|
||||||
| third-chat |
|
|
||||||
Then the user chats are sorted accordingly
|
|
||||||
| third-chat |
|
|
||||||
| second-chat |
|
|
||||||
| first-chat |
|
|
||||||
|
|
||||||
Scenario: After sending a message the user sees chats sorder by most recent activity
|
|
||||||
Given the user has joined chats
|
|
||||||
| first-chat |
|
|
||||||
| second-chat |
|
|
||||||
| third-chat |
|
|
||||||
When the user switches to "second-chat" chat
|
|
||||||
And the user sends a random chat message
|
|
||||||
Then the random chat message is displayed
|
|
||||||
And the user chats are sorted accordingly
|
|
||||||
| second-chat |
|
|
||||||
| third-chat |
|
|
||||||
| first-chat |
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
source(findFile('scripts', 'python/bdd.py'))
|
|
||||||
|
|
||||||
setupHooks('bdd_hooks.py')
|
|
||||||
collectStepDefinitions('./steps', '../shared/steps/', '../../global_shared/steps/')
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
testSettings.throwOnFailure = True
|
|
||||||
runFeatureFile('test.feature')
|
|
|
@ -16,7 +16,8 @@ Feature: Status Desktop Contacts Flows
|
||||||
Then the contact request for chat key "zQ3shQihZMmciZWUrjvsY6kUoaqSKp9DFSjMPRkkKGty3XCKZ" is present in the pending requests tab
|
Then the contact request for chat key "zQ3shQihZMmciZWUrjvsY6kUoaqSKp9DFSjMPRkkKGty3XCKZ" is present in the pending requests tab
|
||||||
# TODO for future improvements: log into the other account and check that we received the request (will require some cleanup)
|
# TODO for future improvements: log into the other account and check that we received the request (will require some cleanup)
|
||||||
|
|
||||||
@relyon-mailserver
|
@relyon-mailserver @mayfail
|
||||||
|
# FIXME this test will fail because we no longer support public channels. Re-implement in a community channel. Issue #9252
|
||||||
Scenario: The user can add a contact from the chat
|
Scenario: The user can add a contact from the chat
|
||||||
# User 1 sends a message in the channel
|
# User 1 sends a message in the channel
|
||||||
When the user opens the chat section
|
When the user opens the chat section
|
||||||
|
|
Loading…
Reference in New Issue