# 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 Harbor BATs Resource ../../resources/Util.robot Suite Setup Nightly Test Setup ${ip} ${SSH_PWD} ${HARBOR_PASSWORD} ${ip1} Suite Teardown Collect Nightly Logs ${ip} ${SSH_PWD} ${ip1} Default Tags Nightly *** Variables *** ${HARBOR_URL} https://${ip} ${SSH_USER} root ${HARBOR_ADMIN} admin *** Test Cases *** Test Case - Get Harbor Version #Just get harbor version and log it Get Harbor Version Test Case - Clair Is Default Scanner And It Is immutable Init Chrome Driver Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Switch To Scanners Page Should Display The Default Clair Scanner Clair Is Immutable Scanner Test Case - Read Only Mode Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New Project With New User url=${HARBOR_URL} username=tester${d} email=tester${d}@harbortest.com realname=tester${d} newPassword=Test1@34 comment=harbor projectname=project${d} public=true Enable Read Only Cannot Push image ${ip} tester${d} Test1@34 project${d} busybox:latest Disable Read Only Push image ${ip} tester${d} Test1@34 project${d} busybox:latest Close Browser Test Case - Repo Size Init Chrome Driver ${d}= Get Current Date result_format=%m%s Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Push Image With Tag ${ip} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} library alpine 2.6 2.6 Go Into Project library Go Into Repo alpine Page Should Contain 1.92MB Close Browser Test Case - Staticsinfo Init Chrome Driver ${d}= Get Current Date result_format=%m%s Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} ${privaterepocount1}= Get Statics Private Repo ${privateprojcount1}= Get Statics Private Project ${publicrepocount1}= Get Statics Public Repo ${publicprojcount1}= Get Statics Public Project ${totalrepocount1}= Get Statics Total Repo ${totalprojcount1}= Get Statics Total Project Create An New Project private${d} Create An New Project public${d} true Push Image ${ip} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} private${d} hello-world Push Image ${ip} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} public${d} hello-world Reload Page ${privaterepocount2}= Get Statics Private Repo ${privateprojcount2}= get statics private project ${publicrepocount2}= get statics public repo ${publicprojcount2}= get statics public project ${totalrepocount2}= get statics total repo ${totalprojcount2}= get statics total project ${privateprojcount}= evaluate ${privateprojcount1}+1 ${privaterepocount}= evaluate ${privaterepocount1}+1 ${publicprojcount}= evaluate ${publicprojcount1}+1 ${publicrepocount}= evaluate ${publicrepocount1}+1 ${totalrepocount}= evaluate ${totalrepocount1}+2 ${totalprojcount}= evaluate ${totalprojcount1}+2 Should Be Equal As Integers ${privateprojcount2} ${privateprojcount} Should be equal as integers ${privaterepocount2} ${privaterepocount} Should be equal as integers ${publicprojcount2} ${publicprojcount} Should be equal as integers ${publicrepocount2} ${publicrepocount} Should be equal as integers ${totalprojcount2} ${totalprojcount} Should be equal as integers ${totalrepocount2} ${totalrepocount} Test Case - Create An New User Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New User url=${HARBOR_URL} username=tester${d} email=tester${d}@harbortest.com realname=harbortest newPassword=Test1@34 comment=harbortest Close Browser Test Case - Sign With Admin Init Chrome Driver Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Close Browser Test Case - Update User Comment Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New User url=${HARBOR_URL} username=tester${d} email=tester${d}@harbortest.com realname=harbortest newPassword=Test1@34 comment=harbortest Update User Comment Test12#4 Logout Harbor Test Case - Update Password Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New User url=${HARBOR_URL} username=tester${d} email=tester${d}@harbortest.com realname=harbortest newPassword=Test1@34 comment=harbortest Change Password Test1@34 Test12#4 Logout Harbor Sign In Harbor ${HARBOR_URL} tester${d} Test12#4 Close Browser Test Case - Create An New Project Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New User url=${HARBOR_URL} username=tester${d} email=tester${d}@harbortest.com realname=harbortest newPassword=Test1@34 comment=harbortest Create An New Project test${d} Close Browser Test Case - User View Projects Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New User url=${HARBOR_URL} username=tester${d} email=tester${d}@harbortest.com realname=harbortest newPassword=Test1@34 comment=harbortest Create An New Project test${d}1 Create An New Project test${d}2 Create An New Project test${d}3 Switch To Log Capture Page Screenshot UserViewProjects.png Wait Until Page Contains test${d}1 Wait Until Page Contains test${d}2 Wait Until Page Contains test${d}3 Close Browser Test Case - Push Image Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New User url=${HARBOR_URL} username=tester${d} email=tester${d}@harbortest.com realname=harbortest newPassword=Test1@34 comment=harbortest Create An New Project test${d} Push image ${ip} tester${d} Test1@34 test${d} hello-world:latest Go Into Project test${d} Wait Until Page Contains test${d}/hello-world Test Case - User View Logs Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New Project With New User url=${HARBOR_URL} username=tester${d} email=tester${d}@harbortest.com realname=tester${d} newPassword=Test1@34 comment=harbor projectname=project${d} public=true Push image ${ip} tester${d} Test1@34 project${d} busybox:latest Pull image ${ip} tester${d} Test1@34 project${d} busybox:latest Go Into Project project${d} Delete Repo project${d} Go To Project Log Advanced Search Should Display Do Log Advanced Search Close Browser Test Case - Manage project publicity Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New User url=${HARBOR_URL} username=usera${d} email=usera${d}@harbortest.com realname=usera${d} newPassword=Test1@34 comment=harbor Logout Harbor Create An New User url=${HARBOR_URL} username=userb${d} email=userb${d}@harbortest.com realname=userb${d} newPassword=Test1@34 comment=harbor Logout Harbor Sign In Harbor ${HARBOR_URL} usera${d} Test1@34 Create An New Project project${d} public=true Push image ${ip} usera${d} Test1@34 project${d} hello-world:latest Pull image ${ip} userb${d} Test1@34 project${d} hello-world:latest Logout Harbor Sign In Harbor ${HARBOR_URL} userb${d} Test1@34 Project Should Display project${d} Search Private Projects Project Should Not Display project${d} Logout Harbor Sign In Harbor ${HARBOR_URL} usera${d} Test1@34 Make Project Private project${d} Logout Harbor Sign In Harbor ${HARBOR_URL} userb${d} Test1@34 Project Should Not Display project${d} Cannot Pull image ${ip} userb${d} Test1@34 project${d} hello-world:latest Logout Harbor Sign In Harbor ${HARBOR_URL} usera${d} Test1@34 Make Project Public project${d} Logout Harbor Sign In Harbor ${HARBOR_URL} userb${d} Test1@34 Project Should Display project${d} Close Browser Test Case - Project Level Policy Public Init Chrome Driver ${d}= Get Current Date result_format=%m%s Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Create An New Project project${d} Go Into Project project${d} has_image=${false} Goto Project Config Click Project Public Save Project Config # Verify Public Should Be Selected # Project${d} default should be private # Here logout and login to try avoid a bug only in autotest Logout Harbor Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Filter Object project${d} Project Should Be Public project${d} Close Browser Test Case - Project Level Policy Content Trust Init Chrome Driver ${d}= Get Current Date result_format=%m%s Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Create An New Project project${d} Push Image ${ip} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} project${d} hello-world:latest Go Into Project project${d} Goto Project Config Click Content Trust Save Project Config # Verify Content Trust Should Be Selected Cannot Pull Unsigned Image ${ip} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} project${d} hello-world:latest Close Browser Test Case - Edit Project Creation # Create normal user and login Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New User url=${HARBOR_URL} username=tester${d} email=tester${d}@harbortest.com realname=harbortest newPassword=Test1@34 comment=harbortest Project Creation Should Display Logout Harbor Sleep 3 Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Set Pro Create Admin Only Logout Harbor Sign In Harbor ${HARBOR_URL} tester${d} Test1@34 Project Creation Should Not Display Logout Harbor Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Set Pro Create Every One Close browser Test Case - Edit Self-Registration Init Chrome Driver Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Disable Self Reg Logout Harbor Sign Up Should Not Display Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Switch To Configure Self Reg Should Be Disabled Sleep 1 # Restore setting Enable Self Reg Close Browser Test Case - Edit Email Settings Init Chrome Driver Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Switch To Email Config Email Logout Harbor Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Switch To Email Verify Email Close Browser Test Case - Edit Token Expire Init Chrome Driver Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Switch To System Settings Modify Token Expiration 20 Logout Harbor Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Switch To System Settings Token Must Be Match 20 #reset to default Modify Token Expiration 30 Close Browser Test Case - Create A New Labels Init Chrome Driver ${d}= Get Current Date Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Switch To System Labels Create New Labels label_${d} Close Browser Test Case - Update Label Init Chrome Driver ${d}= Get Current Date Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Switch To System Labels Create New Labels label_${d} Sleep 3 ${d1}= Get Current Date Update A Label label_${d} Close Browser Test Case - Delete Label Init Chrome Driver ${d}= Get Current Date Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Switch To System Labels Create New Labels label_${d} Sleep 3 Delete A Label label_${d} Close Browser TestCase - Project Admin Operate Labels Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New Project With New User url=${HARBOR_URL} username=test${d} email=test${d}@harbortest.com realname=test${d} newPassword=Test1@34 comment=harbor projectname=project${d} public=false Go Into Project project${d} has_image=${false} Sleep 2 # Add labels Switch To Project Label Create New Labels label_${d} Sleep 2 Update A Label label_${d} Sleep 2 Delete A Label label_${d} Close Browser TestCase - Project Admin Add Labels To Repo Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New Project With New User url=${HARBOR_URL} username=test${d} email=test${d}@harbortest.com realname=test${d} newPassword=Test1@34 comment=harbor projectname=project${d} public=false ## Push Image With Tag ${ip} test${d} Test1@34 project${d} vmware/photon 1.0 1.0 Push Image With Tag ${ip} test${d} Test1@34 project${d} redis 3.2.10-alpine 3.2.10-alpine Push Image With Tag ${ip} test${d} Test1@34 project${d} redis 4.0.7-alpine 4.0.7-alpine Go Into Project project${d} Sleep 2 # Add labels Switch To Project Label Create New Labels label111 Capture Page Screenshot CreateLabel1.png Create New Labels label22 Capture Page Screenshot CreateLabel2.png Sleep 2 Switch To Project Repo Go Into Repo project${d}/redis Add Labels To Tag 3.2.10-alpine label111 Add Labels To Tag 4.0.7-alpine label22 Filter Labels In Tags label111 label22 Close Browser TestCase - Developer Operate Labels Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New Project With New User url=${HARBOR_URL} username=test${d} email=test${d}@harbortest.com realname=test${d} newPassword=Test1@34 comment=harbor projectname=project${d} public=false Logout Harbor Create An New User url=${HARBOR_URL} username=bob${d} email=bob${d}@harbortest.com realname=bob${d} newPassword=Test1@34 comment=habor Logout Harbor Manage Project Member test${d} Test1@34 project${d} bob${d} Add has_image=${false} Change User Role In Project test${d} Test1@34 project${d} bob${d} Developer Sign In Harbor ${HARBOR_URL} bob${d} Test1@34 Go Into Project project${d} has_image=${false} Sleep 3 Retry Wait Until Page Not Contains Element xpath=//a[contains(.,'Labels')] Close Browser Test Case - Scan A Tag In The Repo Init Chrome Driver ${d}= get current date result_format=%m%s Create An New Project With New User url=${HARBOR_URL} username=tester${d} email=tester${d}@harbortest.com realname=tester${d} newPassword=Test1@34 comment=harbor projectname=project${d} public=false Push Image ${ip} tester${d} Test1@34 project${d} hello-world Go Into Project project${d} Go Into Repo project${d}/hello-world Scan Repo latest Succeed Summary Chart Should Display latest Pull Image ${ip} tester${d} Test1@34 project${d} hello-world # Edit Repo Info Close Browser Test Case - Scan As An Unprivileged User Init Chrome Driver ${d}= get current date result_format=%m%s Push Image ${ip} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} library hello-world Create An New User ${HARBOR_URL} user${d} user${d}@harbortest.com user${d} Test1@34 harbor Go Into Project library Go Into Repo hello-world Select Object latest Scan Is Disabled Close Browser ## Test Case - Scan Image With Empty Vul Init Chrome Driver Push Image ${ip} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} library hello-world Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Go Into Project library Go Into Repo hello-world Scan Repo latest Succeed Move To Summary Chart Wait Until Page Contains No vulnerability Close Browser ### Test Case - Disable Scan Schedule Init Chrome Driver Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Switch To Vulnerability Page Disable Scan Schedule Logout Harbor Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Switch To Vulnerability Page Page Should Contain None Close Browser ### Test Case - Manual Scan All Init Chrome Driver Push Image ${ip} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} library redis Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Switch To Vulnerability Page Trigger Scan Now And Wait Until The Result Appears Navigate To Projects Go Into Project library Go Into Repo redis Summary Chart Should Display latest Close Browser # Test Case - Project Level Image Serverity Policy Init Chrome Driver Push Image ${ip} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} library haproxy Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Go Into Project library Go Into Repo haproxy Scan Repo latest Succeed Navigate To Projects Go Into Project library Set Vulnerabilty Serverity 0 Cannot pull image ${ip} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} library haproxy Close Browser Test Case - Verify Download Ca Link Init Chrome Driver Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Switch To System Settings Page Should Contain Registry Root Certificate Close Browser Test Case - Edit Repo Info Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New Project With New User url=${HARBOR_URL} username=tester${d} email=tester${d}@harbortest.com realname=tester${d} newPassword=Test1@34 comment=harbor projectname=project${d} public=false Push Image ${ip} tester${d} Test1@34 project${d} hello-world Go Into Project project${d} Go Into Repo project${d}/hello-world Edit Repo Info Close Browser Test Case - Manage Project Member Init Chrome Driver ${d}= Get current Date result_format=%m%s Create An New Project With New User url=${HARBOR_URL} username=alice${d} email=alice${d}@harbortest.com realname=alice${d} newPassword=Test1@34 comment=harbor projectname=project${d} public=false Push image ip=${ip} user=alice${d} pwd=Test1@34 project=project${d} image=hello-world Logout Harbor Create An New User url=${HARBOR_URL} username=bob${d} email=bob${d}@harbortest.com realname=bob${d} newPassword=Test1@34 comment=habor Logout Harbor Create An New User url=${HARBOR_URL} username=carol${d} email=carol${d}@harbortest.com realname=carol${d} newPassword=Test1@34 comment=harbor Logout Harbor User Should Not Be A Member Of Project bob${d} Test1@34 project${d} Manage Project Member alice${d} Test1@34 project${d} bob${d} Add User Should Be Guest bob${d} Test1@34 project${d} Change User Role In Project alice${d} Test1@34 project${d} bob${d} Developer User Should Be Developer bob${d} Test1@34 project${d} Change User Role In Project alice${d} Test1@34 project${d} bob${d} Admin User Should Be Admin bob${d} Test1@34 project${d} carol${d} Manage Project Member alice${d} Test1@34 project${d} bob${d} Remove User Should Not Be A Member Of Project bob${d} Test1@34 project${d} User Should Be Guest carol${d} Test1@34 project${d} Close Browser Test Case - Delete A Project Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New Project With New User ${HARBOR_URL} tester${d} tester${d}@harbortest.com tester${d} Test1@34 harobr project${d} false Push Image ${ip} tester${d} Test1@34 project${d} hello-world Project Should Not Be Deleted project${d} Go Into Project project${d} Delete Repo project${d} Navigate To Projects Project Should Be Deleted project${d} Close Browser Test Case - Delete Multi Project Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New User ${HARBOR_URL} test${d} test${d}@harbortest.com test${d} Test1@34 harbor Create An New Project projecta${d} Create An New Project projectb${d} Push Image ${ip} test${d} Test1@34 projecta${d} hello-world Filter Object project @{project_list} Create List projecta projectb Multi-delete Object ${project_delete_btn} @{project_list} # Verify delete project with image should not be deleted directly Delete Fail projecta${d} Delete Success projectb${d} Close Browser Test Case - Delete Multi User Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New User ${HARBOR_URL} deletea${d} testa${d}@harbortest.com test${d} Test1@34 harbor Logout Harbor Create An New User ${HARBOR_URL} deleteb${d} testb${d}@harbortest.com test${d} Test1@34 harbor Logout Harbor Create An New User ${HARBOR_URL} deletec${d} testc${d}@harbortest.com test${d} Test1@34 harbor Logout Harbor Sign In Harbor ${HARBOR_URL} admin Harbor12345 Switch To User Tag Filter Object delete @{user_list} Create List deletea deleteb deletec Multi-delete Object ${user_delete_btn} @{user_list} # Assert delete Delete Success deletea deleteb deletec Sleep 1 Close Browser Test Case - Delete Multi Repo Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New User ${HARBOR_URL} test${d} test${d}@harbortest.com test${d} Test1@34 harbor Create An New Project project${d} Push Image ${ip} test${d} Test1@34 project${d} hello-world Push Image ${ip} test${d} Test1@34 project${d} busybox Sleep 2 Go Into Project project${d} @{repo_list} Create List hello-world busybox Multi-delete Object ${repo_delete_btn} @{repo_list} # Verify Delete Success hello-world busybox Close Browser Test Case - Delete Multi Tag Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New User ${HARBOR_URL} test${d} test${d}@harbortest.com test${d} Test1@34 harbor Create An New Project project${d} Push Image With Tag ${ip} test${d} Test1@34 project${d} redis 3.2.10-alpine 3.2.10-alpine Push Image With Tag ${ip} test${d} Test1@34 project${d} redis 4.0.7-alpine 4.0.7-alpine Sleep 2 Go Into Project project${d} Go Into Repo redis @{tag_list} Create List 3.2.10-alpine 4.0.7-alpine Multi-delete object ${tag_delete_btn} @{tag_list} # Verify Delete Success 3.2.10-alpine 4.0.7-alpine Close Browser Test Case - Delete Repo on CardView Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New User ${HARBOR_URL} test${d} test${d}@harbortest.com test${d} Test1@34 harbor Create An New Project project${d} Push Image ${ip} test${d} Test1@34 project${d} hello-world Push Image ${ip} test${d} Test1@34 project${d} busybox Sleep 2 Go Into Project project${d} Switch To CardView Delete Repo on CardView busybox # Verify Delete Success busybox Close Browser Test Case - Delete Multi Member Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New User ${HARBOR_URL} testa${d} testa${d}@harbortest.com test${d} Test1@34 harbor Logout Harbor Create An New User ${HARBOR_URL} testb${d} testb${d}@harbortest.com test${d} Test1@34 harbor Logout Harbor Create An New User ${HARBOR_URL} test${d} test${d}@harbortest.com test${d} Test1@34 harbor Create An New Project project${d} Go Into Project project${d} has_image=${false} Switch To Member Add Guest Member to project testa${d} Add Guest Member to project testb${d} Multi-delete Member testa${d} testb${d} Delete Success testa${d} testb${d} Close Browser Test Case - Assign Sys Admin Init Chrome Driver ${d}= Get Current Date result_format=%m%s Create An New User url=${HARBOR_URL} username=tester${d} email=tester${d}@harbortest.com realname=harbortest newPassword=Test1@34 comment=harbortest Logout Harbor Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Switch to User Tag Assign User Admin tester${d} Logout Harbor Sign In Harbor ${HARBOR_URL} tester${d} Test1@34 Administration Tag Should Display Close Browser Test Case - Admin Push Signed Image Enable Notary Client ${rc} ${output}= Run And Return Rc And Output docker pull hello-world:latest Log ${output} Push image ${ip} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} library hello-world:latest ${rc} ${output}= Run And Return Rc And Output ./tests/robot-cases/Group0-Util/notary-push-image.sh ${ip} Log ${output} Should Be Equal As Integers ${rc} 0 ${rc} ${output}= Run And Return Rc And Output curl -u admin:Harbor12345 -s --insecure -H "Content-Type: application/json" -X GET "https://${ip}/api/repositories/library/tomcat/signatures" Log To Console ${output} Should Be Equal As Integers ${rc} 0 Should Contain ${output} sha256 Test Case - View Scan Results Init Chrome Driver ${d}= get current date result_format=%m%s Create An New Project With New User url=${HARBOR_URL} username=tester${d} email=tester${d}@harbortest.com realname=tester${d} newPassword=Test1@34 comment=harbor projectname=project${d} public=false Push Image ${ip} tester${d} Test1@34 project${d} tomcat Go Into Project project${d} Go Into Repo project${d}/tomcat Scan Repo latest Succeed Summary Chart Should Display latest View Repo Scan Details Close Browser Test Case - View Scan Error Init Chrome Driver ${d}= get current date result_format=%m%s Create An New Project With New User url=${HARBOR_URL} username=tester${d} email=tester${d}@harbortest.com realname=tester${d} newPassword=Test1@34 comment=harbor projectname=project${d} public=false Push Image ${ip} tester${d} Test1@34 project${d} vmware/photon:1.0 Go Into Project project${d} Go Into Repo project${d}/vmware/photon Scan Repo 1.0 Fail View Scan Error Log Close Browser Test Case - Scan Image On Push Init Chrome Driver Sign In Harbor ${HARBOR_URL} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} Go Into Project library Goto Project Config Enable Scan On Push Push Image ${ip} ${HARBOR_ADMIN} ${HARBOR_PASSWORD} library memcached Navigate To Projects Go Into Project library Go Into Repo memcached Summary Chart Should Display latest Close Browser