fix(test): fix create category test
This commit is contained in:
parent
38a9b4a7f1
commit
40a157a5af
|
@ -42,7 +42,6 @@ class CommunityScreenComponents(Enum):
|
||||||
DELETE_CHANNEL_MENU_ITEM = "delete_Channel_StatusMenuItem"
|
DELETE_CHANNEL_MENU_ITEM = "delete_Channel_StatusMenuItem"
|
||||||
DELETE_CHANNEL_CONFIRMATION_DIALOG_DELETE_BUTTON = "delete_Channel_ConfirmationDialog_DeleteButton"
|
DELETE_CHANNEL_CONFIRMATION_DIALOG_DELETE_BUTTON = "delete_Channel_ConfirmationDialog_DeleteButton"
|
||||||
NOT_CATEGORIZED_CHAT_LIST = "mainWindow_communityColumnView_statusChatList"
|
NOT_CATEGORIZED_CHAT_LIST = "mainWindow_communityColumnView_statusChatList"
|
||||||
COMMUNITY_CHAT_LIST_CATEGORIES = "communityChatListCategories_Repeater"
|
|
||||||
CHAT_INPUT_ROOT = "chatInput_Root"
|
CHAT_INPUT_ROOT = "chatInput_Root"
|
||||||
TOGGLE_PIN_MESSAGE_BUTTON = "chatView_TogglePinMessageButton"
|
TOGGLE_PIN_MESSAGE_BUTTON = "chatView_TogglePinMessageButton"
|
||||||
REPLY_TO_MESSAGE_BUTTON = "chatView_ReplyToMessageButton"
|
REPLY_TO_MESSAGE_BUTTON = "chatView_ReplyToMessageButton"
|
||||||
|
@ -89,6 +88,7 @@ class CreateOrEditCommunityCategoryPopup(Enum):
|
||||||
COMMUNITY_CATEGORY_LIST: str = "createOrEditCommunityCategoryChannelList_ListView"
|
COMMUNITY_CATEGORY_LIST: str = "createOrEditCommunityCategoryChannelList_ListView"
|
||||||
COMMUNITY_CATEGORY_LIST_ITEM_PLACEHOLDER: str = "createOrEditCommunityCategoryChannelList_ListItem_Placeholder"
|
COMMUNITY_CATEGORY_LIST_ITEM_PLACEHOLDER: str = "createOrEditCommunityCategoryChannelList_ListItem_Placeholder"
|
||||||
COMMUNITY_CATEGORY_BUTTON: str = "createOrEditCommunityCategoryBtn_StatusButton"
|
COMMUNITY_CATEGORY_BUTTON: str = "createOrEditCommunityCategoryBtn_StatusButton"
|
||||||
|
MODAL_CLOSE_BUTTON = "modal_Close_Button"
|
||||||
|
|
||||||
class StatusCommunityScreen:
|
class StatusCommunityScreen:
|
||||||
|
|
||||||
|
@ -101,20 +101,23 @@ class StatusCommunityScreen:
|
||||||
|
|
||||||
for index in range(listView.count):
|
for index in range(listView.count):
|
||||||
listItem = listView.itemAtIndex(index)
|
listItem = listView.itemAtIndex(index)
|
||||||
if (listItem.objectName.toLower() == community_channel_name.lower()):
|
name = listItem.objectName.toLower()
|
||||||
|
if (listItem.item.objectName.toLower() == "category_item_name_" + community_channel_name.lower()):
|
||||||
return True, listItem
|
return True, listItem
|
||||||
return False, None
|
return False, None
|
||||||
|
|
||||||
def _find_category_in_chat(self, community_category_name: str):
|
def _find_category_in_chat(self, community_category_name: str):
|
||||||
chatListCategories = get_obj(CommunityScreenComponents.COMMUNITY_CHAT_LIST_CATEGORIES.value)
|
chat_and_category_list = get_obj(CommunityScreenComponents.CHAT_LIST.value)
|
||||||
|
for i in range(chat_and_category_list.count):
|
||||||
|
chat_or_cat_loader = chat_and_category_list.itemAtIndex(i)
|
||||||
|
if chat_or_cat_loader.item.objectName != "categoryItem":
|
||||||
|
continue
|
||||||
|
if str(chat_or_cat_loader.item.title).lower() == community_category_name.lower():
|
||||||
|
return True, chat_or_cat_loader.item
|
||||||
|
|
||||||
for index in range(chatListCategories.count):
|
|
||||||
item = chatListCategories.itemAt(index)
|
|
||||||
if (item.objectName == community_category_name):
|
|
||||||
return True, item
|
|
||||||
return False, None
|
return False, None
|
||||||
|
|
||||||
def _toggle_channels_in_category_popop(self, community_channel_names: str):
|
def _toggle_channels_in_category_popup(self, community_channel_names: str):
|
||||||
for channel_name in community_channel_names.split(", "):
|
for channel_name in community_channel_names.split(", "):
|
||||||
[loaded, channel] = self._find_channel_in_category_popup(channel_name)
|
[loaded, channel] = self._find_channel_in_category_popup(channel_name)
|
||||||
if loaded:
|
if loaded:
|
||||||
|
@ -132,9 +135,9 @@ class StatusCommunityScreen:
|
||||||
result = []
|
result = []
|
||||||
|
|
||||||
for index in range(listView.count):
|
for index in range(listView.count):
|
||||||
listItem = listView.itemAtIndex(index)
|
listItemLoader = listView.itemAtIndex(index)
|
||||||
if (listItem.checked):
|
if (listItemLoader.item.checked):
|
||||||
result.append(listItem.objectName.toLower())
|
result.append(listItemLoader.item.objectName.toLower())
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
@ -144,8 +147,9 @@ class StatusCommunityScreen:
|
||||||
|
|
||||||
def _open_category_edit_popup(self, category):
|
def _open_category_edit_popup(self, category):
|
||||||
# For some reason it clicks on a first channel in category instead of category
|
# For some reason it clicks on a first channel in category instead of category
|
||||||
click_obj(category.chatListCategory.statusChatListCategoryItem)
|
click_obj(category)
|
||||||
right_click_obj(category.chatListCategory.statusChatListCategoryItem)
|
right_click_obj(category)
|
||||||
|
sleep_test(0.1)
|
||||||
click_obj_by_name(CommunityScreenComponents.COMMUNITY_EDIT_CATEGORY_MENU_ITEM.value)
|
click_obj_by_name(CommunityScreenComponents.COMMUNITY_EDIT_CATEGORY_MENU_ITEM.value)
|
||||||
|
|
||||||
def verify_community_name(self, communityName: str):
|
def verify_community_name(self, communityName: str):
|
||||||
|
@ -193,10 +197,13 @@ class StatusCommunityScreen:
|
||||||
else:
|
else:
|
||||||
verify_failure("Unknown method to create a category: ", method)
|
verify_failure("Unknown method to create a category: ", method)
|
||||||
|
|
||||||
|
# Without that sleep, the click sometimes lands next to the context menu, closing it and making the rest of the test fail
|
||||||
|
# The sleep seems to help wait for the context menu to be loaded completely
|
||||||
|
sleep_test(0.1)
|
||||||
click_obj_by_name(CommunityScreenComponents.COMMUNITY_CREATE_CATEGORY_MENU_ITEM.value)
|
click_obj_by_name(CommunityScreenComponents.COMMUNITY_CREATE_CATEGORY_MENU_ITEM.value)
|
||||||
|
|
||||||
wait_for_object_and_type(CreateOrEditCommunityCategoryPopup.COMMUNITY_CATEGORY_NAME_INPUT.value, community_category_name)
|
wait_for_object_and_type(CreateOrEditCommunityCategoryPopup.COMMUNITY_CATEGORY_NAME_INPUT.value, community_category_name)
|
||||||
self._toggle_channels_in_category_popop(community_channel_names)
|
self._toggle_channels_in_category_popup(community_channel_names)
|
||||||
click_obj_by_name(CreateOrEditCommunityCategoryPopup.COMMUNITY_CATEGORY_BUTTON.value)
|
click_obj_by_name(CreateOrEditCommunityCategoryPopup.COMMUNITY_CATEGORY_BUTTON.value)
|
||||||
|
|
||||||
def edit_community_category(self, community_category_name, new_community_category_name, community_channel_names):
|
def edit_community_category(self, community_category_name, new_community_category_name, community_channel_names):
|
||||||
|
@ -208,7 +215,7 @@ class StatusCommunityScreen:
|
||||||
# Select all text in the input before typing
|
# Select all text in the input before typing
|
||||||
wait_for_object_and_type(CreateOrEditCommunityCategoryPopup.COMMUNITY_CATEGORY_NAME_INPUT.value, "<Ctrl+a>")
|
wait_for_object_and_type(CreateOrEditCommunityCategoryPopup.COMMUNITY_CATEGORY_NAME_INPUT.value, "<Ctrl+a>")
|
||||||
type_text(CreateOrEditCommunityCategoryPopup.COMMUNITY_CATEGORY_NAME_INPUT.value, new_community_category_name)
|
type_text(CreateOrEditCommunityCategoryPopup.COMMUNITY_CATEGORY_NAME_INPUT.value, new_community_category_name)
|
||||||
self._toggle_channels_in_category_popop(community_channel_names)
|
self._toggle_channels_in_category_popup(community_channel_names)
|
||||||
click_obj_by_name(CreateOrEditCommunityCategoryPopup.COMMUNITY_CATEGORY_BUTTON.value)
|
click_obj_by_name(CreateOrEditCommunityCategoryPopup.COMMUNITY_CATEGORY_BUTTON.value)
|
||||||
|
|
||||||
def delete_community_category(self, community_category_name):
|
def delete_community_category(self, community_category_name):
|
||||||
|
@ -232,15 +239,20 @@ class StatusCommunityScreen:
|
||||||
|
|
||||||
self._open_category_edit_popup(category)
|
self._open_category_edit_popup(category)
|
||||||
|
|
||||||
checked_channel_names = self._get_checked_channel_names_in_category_popup(community_channel_names[0])
|
community_channel_names_list = community_channel_names.split(", ")
|
||||||
split = community_channel_names.split(", ")
|
|
||||||
for channel_name in split:
|
checked_channel_names = self._get_checked_channel_names_in_category_popup(community_channel_names_list[0])
|
||||||
if channel_name in checked_channel_names:
|
|
||||||
split.remove(channel_name)
|
# Close popup before checking the lists as we want the state to be clean whether it's a success or failure
|
||||||
|
click_obj_by_name(CreateOrEditCommunityCategoryPopup.MODAL_CLOSE_BUTTON.value)
|
||||||
|
|
||||||
|
for community_channel_name in community_channel_names_list:
|
||||||
|
if "category_item_name_" + community_channel_name in checked_channel_names:
|
||||||
|
checked_channel_names.remove("category_item_name_" + community_channel_name)
|
||||||
else:
|
else:
|
||||||
verify_failure("Channel " + channel_name + " should be checked in category " + community_category_name)
|
verify_failure("Channel " + community_channel_name + " should be checked in category " + community_category_name)
|
||||||
comma = ", "
|
comma = ", "
|
||||||
verify(len(split) == 0, "Channel(s) " + comma.join(split) + " should not be checked in category " + community_category_name)
|
verify(len(checked_channel_names) == 0, "Channel(s) " + comma.join(checked_channel_names) + " should not be checked in category " + community_category_name)
|
||||||
|
|
||||||
def open_edit_community_by_community_header(self):
|
def open_edit_community_by_community_header(self):
|
||||||
click_obj_by_name(CommunityScreenComponents.COMMUNITY_HEADER_BUTTON.value)
|
click_obj_by_name(CommunityScreenComponents.COMMUNITY_HEADER_BUTTON.value)
|
||||||
|
|
|
@ -27,7 +27,7 @@ userContextmenu_AutomaticButton= {"container": statusDesktop_mainWindow_overlay,
|
||||||
userContextMenu_ViewMyProfileAction = {"container": statusDesktop_mainWindow_overlay, "objectName": "userStatusViewMyProfileAction", "type": "StatusMenuItem", "visible": True}
|
userContextMenu_ViewMyProfileAction = {"container": statusDesktop_mainWindow_overlay, "objectName": "userStatusViewMyProfileAction", "type": "StatusMenuItem", "visible": True}
|
||||||
|
|
||||||
# popups
|
# popups
|
||||||
modal_Close_Button = {"container": statusDesktop_mainWindow_overlay, "objectName": "modalCloseButtonRectangle", "type": "Rectangle", "visible": True}
|
modal_Close_Button = {"container": statusDesktop_mainWindow_overlay, "objectName": "headerCloseButton", "type": "StatusFlatRoundButton", "visible": True}
|
||||||
delete_Channel_ConfirmationDialog_DeleteButton = {"container": statusDesktop_mainWindow_overlay, "objectName": "deleteChatConfirmationDialogDeleteButton", "type": "StatusButton"}
|
delete_Channel_ConfirmationDialog_DeleteButton = {"container": statusDesktop_mainWindow_overlay, "objectName": "deleteChatConfirmationDialogDeleteButton", "type": "StatusButton"}
|
||||||
closeButton_StatusHeaderAction = {"container": statusDesktop_mainWindow_overlay, "objectName": "headerActionsCloseButton", "type": "StatusFlatRoundButton", "visible": True}
|
closeButton_StatusHeaderAction = {"container": statusDesktop_mainWindow_overlay, "objectName": "headerActionsCloseButton", "type": "StatusFlatRoundButton", "visible": True}
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,6 @@ edit_Channel_StatusMenuItem = {"container": statusDesktop_mainWindow_overlay, "e
|
||||||
delete_Channel_StatusMenuItem = {"container": statusDesktop_mainWindow_overlay, "enabled": True, "objectName": "deleteOrLeaveMenuItem", "type": "StatusMenuItem", "visible": True}
|
delete_Channel_StatusMenuItem = {"container": statusDesktop_mainWindow_overlay, "enabled": True, "objectName": "deleteOrLeaveMenuItem", "type": "StatusMenuItem", "visible": True}
|
||||||
mainWindow_communityColumnView_statusChatList = {"container": mainWindow_communityColumnView_CommunityColumnView, "objectName": "statusChatListAndCategoriesChatList", "type": "StatusChatList"}
|
mainWindow_communityColumnView_statusChatList = {"container": mainWindow_communityColumnView_CommunityColumnView, "objectName": "statusChatListAndCategoriesChatList", "type": "StatusChatList"}
|
||||||
mainWindow_chatInfoBtnInHeader_StatusChatInfoButton = {"container": statusDesktop_mainWindow, "objectName": "chatInfoBtnInHeader", "type": "StatusChatInfoButton", "visible": True}
|
mainWindow_chatInfoBtnInHeader_StatusChatInfoButton = {"container": statusDesktop_mainWindow, "objectName": "chatInfoBtnInHeader", "type": "StatusChatInfoButton", "visible": True}
|
||||||
communityChatListCategories_Repeater = {"container": statusDesktop_mainWindow, "objectName": "communityChatListCategories", "type": "Repeater"}
|
|
||||||
chatInput_Root = {"container": statusDesktop_mainWindow, "objectName": "statusChatInput", "type": "Rectangle", "visible": True}
|
chatInput_Root = {"container": statusDesktop_mainWindow, "objectName": "statusChatInput", "type": "Rectangle", "visible": True}
|
||||||
emojiPopup_Emoji_Button_Placeholder = {"container": statusDesktop_mainWindow, "objectName": "statusEmoji_%NAME%", "type": "StatusEmoji", "visible": True}
|
emojiPopup_Emoji_Button_Placeholder = {"container": statusDesktop_mainWindow, "objectName": "statusEmoji_%NAME%", "type": "StatusEmoji", "visible": True}
|
||||||
community_AddMembers_Button = {"container": statusDesktop_mainWindow, "objectName": "CommunityWelcomeBannerPanel_AddMembersButton", "type": "StatusButton", "visible": True}
|
community_AddMembers_Button = {"container": statusDesktop_mainWindow, "objectName": "CommunityWelcomeBannerPanel_AddMembersButton", "type": "StatusButton", "visible": True}
|
||||||
|
|
|
@ -55,8 +55,6 @@ Feature: Status Desktop community
|
||||||
When the admin deletes current channel
|
When the admin deletes current channel
|
||||||
Then the channel count is 1
|
Then the channel count is 1
|
||||||
|
|
||||||
@mayfail
|
|
||||||
# TODO: Weak. Sometimes passes sometimes fails (standalone or as part of the sequence). To analyze.
|
|
||||||
Scenario Outline: The admin creates a community category
|
Scenario Outline: The admin creates a community category
|
||||||
Given the admin creates a community channel named "<channel_name>", with description "Some description", with the method "<method>"
|
Given the admin creates a community channel named "<channel_name>", with description "Some description", with the method "<method>"
|
||||||
When the admin creates a community category named "<category_name>", with channels "<channel_name>" and with the method "<method>"
|
When the admin creates a community category named "<category_name>", with channels "<channel_name>" and with the method "<method>"
|
||||||
|
|
|
@ -54,6 +54,7 @@ Item {
|
||||||
id: categoryItemComponent
|
id: categoryItemComponent
|
||||||
StatusChatListCategoryItem {
|
StatusChatListCategoryItem {
|
||||||
id: statusChatListCategoryItem
|
id: statusChatListCategoryItem
|
||||||
|
objectName: "categoryItem"
|
||||||
|
|
||||||
function setupPopup() {
|
function setupPopup() {
|
||||||
categoryPopupMenuSlot.item.categoryItem = model
|
categoryPopupMenuSlot.item.categoryItem = model
|
||||||
|
|
|
@ -84,7 +84,7 @@ Rectangle {
|
||||||
|
|
||||||
StatusFlatRoundButton {
|
StatusFlatRoundButton {
|
||||||
id: closeButton
|
id: closeButton
|
||||||
objectName: "headerClosebutton"
|
objectName: "headerCloseButton"
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.rightMargin: 16
|
anchors.rightMargin: 16
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
|
|
|
@ -121,7 +121,7 @@ StatusModal {
|
||||||
|
|
||||||
sourceComponent: StatusListItem {
|
sourceComponent: StatusListItem {
|
||||||
readonly property bool checked: channelItemCheckbox.checked
|
readonly property bool checked: channelItemCheckbox.checked
|
||||||
objectName: model.name
|
objectName: "category_item_name_" + model.name
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
height: visible ? implicitHeight : 0
|
height: visible ? implicitHeight : 0
|
||||||
title: "#" + model.name
|
title: "#" + model.name
|
||||||
|
|
Loading…
Reference in New Issue