harbor/tests/resources/Harbor-Pages/ToolKit.robot
Yang Jiao 0107eb39f0
[cherry-pick]Refactor unstable test cases (#19351)
Refactor unstable test cases

Fix #19282

Signed-off-by: Yang Jiao <jiaoya@vmware.com>
2023-09-13 16:01:06 +08:00

115 lines
4.3 KiB
Plaintext

# Copyright Project Harbor Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License
*** Settings ***
Documentation This resource provides any keywords related to the Harbor private registry appliance
Resource ../../resources/Util.robot
*** Variables ***
*** Keywords ***
Delete Success
[Arguments] @{obj}
FOR ${obj} IN @{obj}
Retry Wait Until Page Contains Element //*[@id='contentAll']//div[contains(.,'${obj}')]/../div/clr-icon[@shape='success-standard']
END
Delete Fail
[Arguments] @{obj}
FOR ${obj} IN @{obj}
Retry Wait Until Page Contains Element //*[@id='contentAll']//div[contains(.,'${obj}')]/../div/clr-icon[@shape='error-standard']
END
Sleep 1
Filter Object
#Filter project repo user tag.
[Arguments] ${kw}
Retry Element Click xpath=//hbr-filter//clr-icon
${element}= Set Variable xpath=//hbr-filter//input
Wait Until Element Is Visible And Enabled ${element}
Retry Clear Element Text ${element}
Retry Text Input ${element} ${kw}
Sleep 3
Filter Project
[Arguments] ${kw}
Retry Element Click ${logs_xpath}
Retry Element Click ${projects_xpath}
Filter Object ${kw}
Select Object
#select single element such as user project repo tag
[Arguments] ${obj}
Retry Element Click xpath=//clr-dg-row[contains(.,'${obj}')]//label[contains(@class,'clr-control-label')]
Multi-delete Object
[Arguments] ${delete_btn} @{obj}
FOR ${obj} IN @{obj}
${element}= Set Variable xpath=//clr-dg-row[contains(.,'${obj}')]//label[contains(@class,'clr-control-label')]
Retry Element Click ${element}
END
Sleep 1
Retry Element Click ${delete_btn}
Sleep 1
Retry Element Click ${repo_delete_on_card_view_btn}
Sleep 1
Sleep 1
# This func cannot support as the delete user flow changed.
Multi-delete Artifact
[Arguments] @{obj}
FOR ${obj} IN @{obj}
${element}= Set Variable xpath=//clr-dg-row[contains(.,'${obj}')]//label[contains(@class,'clr-control-label')]
Retry Element Click ${element}
END
Sleep 1
Retry Element Click ${artifact_action_xpath}
Sleep 1
Retry Element Click ${artifact_action_delete_xpath}
Sleep 1
Retry Element Click ${repo_delete_on_card_view_btn}
Sleep 1
Sleep 1
Multi-delete User
[Arguments] @{obj}
FOR ${obj} IN @{obj}
Retry Element Click //clr-dg-row[contains(.,'${obj}')]//label[contains(@class,'clr-control-label')]
END
Retry Element Click ${member_action_xpath}
Retry Element Click //*[@id='deleteUser']
Retry Double Keywords When Error Retry Element Click ${delete_btn} Retry Wait Until Page Not Contains Element ${delete_btn}
Multi-delete Member
[Arguments] @{obj}
FOR ${obj} IN @{obj}
Retry Element Click //clr-dg-row[contains(.,'${obj}')]//div[contains(@class,'clr-checkbox-wrapper')]/label[contains(@class,'clr-control-label')]
END
Retry Double Keywords When Error Retry Element Click ${member_action_xpath} Retry Wait Until Page Contains Element ${delete_action_xpath}
Retry Double Keywords When Error Retry Element Click ${delete_action_xpath} Retry Wait Until Page Contains Element ${delete_btn}
Retry Double Keywords When Error Retry Element Click ${delete_btn} Retry Wait Until Page Not Contains Element ${delete_btn}
Multi-delete Object Without Confirmation
[Arguments] @{obj}
FOR ${obj} IN @{obj}
Retry Element Click //clr-dg-row[contains(.,'${obj}')]//label[contains(@class,'clr-control-label')]
END
Retry Double Keywords When Error Retry Element Click ${delete_btn_2} Retry Wait Until Page Not Contains Element ${delete_btn_2}
Select All On Current Page Object
Retry Element Click //div[@class='datagrid-head']//label[contains(@class,'clr-control-label')]