mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-06 18:50:09 +01:00
2156750b04
The certificate verification is on system level before this commit. Moving it to target level makes the configuration more flexible for different targets.
318 lines
12 KiB
Plaintext
318 lines
12 KiB
Plaintext
// Copyright (c) 2017 VMware, Inc. All Rights Reserved.
|
|
//
|
|
// 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 Install Harbor to Test Server
|
|
Default Tags BAT
|
|
|
|
*** Variables ***
|
|
${HARBOR_URL} http://localhost
|
|
|
|
*** Test Cases ***
|
|
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}@vmware.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}@vmware.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}@vmware.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}@vmware.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}@vmware.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}@vmware.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}@vmware.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}@vmware.com realname=usera${d} newPassword=Test1@34 comment=harbor
|
|
Logout Harbor
|
|
Create An New User url=${HARBOR_URL} username=userb${d} email=userb${d}@vmware.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 - 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}@vmware.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 An Replication Rule New Endpoint
|
|
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}
|
|
Switch To Replication
|
|
Create An New Rule With New Endpoint policy_name=test_policy_${d} policy_description=test_description destination_name=test_destination_name_${d} destination_url=test_destination_url_${d} destination_username=test_destination_username destination_password=test_destination_password
|
|
Close Browser
|
|
|
|
Test Case - Scan A Tag
|
|
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}@vmware.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}
|
|
Expand Repo project${d}
|
|
Scan Repo latest
|
|
Summary Chart Should Display latest
|
|
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}@vmware.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}@vmware.com realname=bob${d} newPassword=Test1@34 comment=habor
|
|
Logout Harbor
|
|
Create An New User url=${HARBOR_URL} username=carol${d} email=carol${d}@vmware.com realname=carol${d} newPassword=Test1@34 comment=harbor
|
|
Logout Harbor
|
|
|
|
User Should Be Owner Of Project alice${d} Test1@34 project${d}
|
|
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 - 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}@vmware.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 - Ldap Sign in and out
|
|
Switch To LDAP
|
|
Init Chrome Driver
|
|
Sign In Harbor ${HARBOR_URL} %{HARBOR_ADMIN} %{HARBOR_PASSWORD}
|
|
Switch To Configure
|
|
Init LDAP
|
|
Logout Harbor
|
|
Sign In Harbor ${HARBOR_URL} user001 user001
|
|
Close Browser
|
|
|
|
Test Case - Ldap User Create Project
|
|
Init Chrome Driver
|
|
${d}= Get Current Date result_format=%m%s
|
|
Sign In Harbor ${HARBOR_URL} user001 user001
|
|
Create An New Project project${d}
|
|
Close Browser
|
|
|
|
Test Case - Ldap User Push An Image
|
|
Init Chrome Driver
|
|
${d}= Get Current Date result_format=%m%s
|
|
Sign In Harbor ${HARBOR_URL} user001 user001
|
|
Create An New Project project${d}
|
|
Push Image ${ip} user001 user001 project${d} hello-world:latest
|
|
Go Into Project project${d}
|
|
Wait Until Page Contains project${d}/hello-world
|
|
Close Browser
|
|
|
|
Test Case - Admin Push Signed Image
|
|
Switch To Notary
|
|
|
|
${rc} ${output}= Run And Return Rc And Output docker pull hello-world:latest
|
|
Log To Console ${output}
|
|
|
|
Push image ${ip} %{HARBOR_ADMIN} %{HARBOR_PASSWORD} library hello-world:latest
|
|
${rc} ${output}= Run And Return Rc And Output ./tests/robot-cases/Group9-Content-trust/notary-push-image.sh
|
|
Log To Console ${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 - Admin Push Un-Signed Image
|
|
${rc} ${output}= Run And Return Rc And Output docker push ${ip}/library/hello-world:latest
|
|
Log To Console ${output}
|
|
|
|
Test Case - Clean Harbor Images
|
|
Down Harbor with_notary=true
|