mirror of
https://github.com/goharbor/harbor.git
synced 2024-12-27 11:07:46 +01:00
175 lines
8.8 KiB
Plaintext
175 lines
8.8 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 Manage Project Member
|
||
|
Resource ../../resources/Util.robot
|
||
|
Default Tags regression
|
||
|
|
||
|
Test Case - Manage Project Member
|
||
|
Init Chrome Driver
|
||
|
${d}= Get current Date result_format=%m%s
|
||
|
${rc} ${ip}= run and return rc and output ip add s eth0|grep "inet "|awk '{print $2}'|awk -F "/" '{print $1}'
|
||
|
log to console ${ip}
|
||
|
Create An New User ${HARBOR_URL} username=usera${d} email=usera${d}@vmware.com realname=usera${d} newPassword=Test1@34 comment=harbor
|
||
|
Logout Harbor
|
||
|
Create An New User ${HARBOR_URL} username=userb${d} email=userb${d}@vmware.com realname=userb${d} newPassword=Test1@34 comment=harbor
|
||
|
Logout Harbor
|
||
|
Create An New User ${HARBOR_URL} username=userc${d} email=userc${d}@vmware.com realname=userc${d} newPassword=Test1@34 comment=harbor
|
||
|
Logout Harbor
|
||
|
Sign In Harbor ${HARBOR_URL} usera${d} Test1@34
|
||
|
#create project
|
||
|
Create An New Project project${d}
|
||
|
#verify can not change role
|
||
|
Mouse down xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
Mouse up xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
Sleep 1
|
||
|
click element xpath=//project-detail//li[2]
|
||
|
page should not contain element xpath=//project-detail//clr-dg-cell//clr-dg-action-overflow
|
||
|
Logout Harbor
|
||
|
#login console as usera and push
|
||
|
${rc}= run and return rc docker pull hello-world
|
||
|
${rc} ${output}= run and return rc and output docker login -u usera${d} -p Test1@34 ${ip}
|
||
|
${rc}= run and return rc docker tag hello-world ${d}/project${d}/hello-world
|
||
|
${rc}= run and return rc docker push ${d}/project${d}/hello-world
|
||
|
${rc}= run and return rc docker logout ${d}
|
||
|
#logout change userb and pull push
|
||
|
${rc} ${output}= run and return rc and output docker login -u userb${d} -p Test1@34 ${ip}
|
||
|
${rc}= run and return rc docker tag hello-world ${d}/project${d}/bbbbb
|
||
|
${rc}= run and return rc docker pull ${ip}/project${d}/hello-world
|
||
|
should not be equal as integers ${rc} 0
|
||
|
${rc}= run and return rc docker push ${ip}/project${d}/bbbbb
|
||
|
should not be equal as integers ${rc} 0
|
||
|
#login ui as b
|
||
|
Sign In Harbor ${HARBOR_URL} userb${d} Test1@34
|
||
|
page should not contain element xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
Logout Harbor
|
||
|
#login as a
|
||
|
Sign In Harbor ${HARBOR_URL} usera${d} Test1@34
|
||
|
Mouse down xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
Mouse up xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
Sleep 1
|
||
|
click element xpath=//project-detail//li[2]
|
||
|
#click add member
|
||
|
click element xpath=//project-detail//button//clr-icon
|
||
|
Sleep 1
|
||
|
input text xpath=//add-member//input[@id="member_name"] userb${d}
|
||
|
#select guest
|
||
|
Mouse down xpath=//project-detail//form//input[@id="checkrads_guest"]
|
||
|
Mouse up xpath=//project-detail//form//input[@id="checkrads_guest"]
|
||
|
click button xpath=//project-detail//add-member//button[2]
|
||
|
Logout Harbor
|
||
|
#sign in as b
|
||
|
Sign In Harbor ${HARBOR_URL} userb${d} Test1@34
|
||
|
#step 12
|
||
|
page should contain element xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
#step 13
|
||
|
Mouse down xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
Mouse up xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
Sleep 1
|
||
|
click element xpath=//project-detail//li[2]
|
||
|
sleep 1
|
||
|
#page should contain element xpath=//project-detail//clr-dg-cell//clr-dg-action-overflow[@hidden=""]
|
||
|
xpath should match x times //project-detail//clr-dg-action-overflow[@hidden=""] 2
|
||
|
#step 14
|
||
|
page should not contain element xpath=//project-detail//button//clr-icon
|
||
|
${rc} ${output}= run and return rc and output docker login -u userb${d} -p Test1@34 ${ip}
|
||
|
#step 15
|
||
|
${rc}= run and return rc docker pull ${ip}/project${d}/hello-world
|
||
|
#step 16
|
||
|
${rc}= run and return rc docker push ${ip}/project${d}/bbbbb
|
||
|
should not be equal as integers ${rc} 0
|
||
|
Logout Harbor
|
||
|
Sign In Harbor ${HARBOR_URL} usera${d} Test1@34
|
||
|
#change userb to developer
|
||
|
Mouse down xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
Mouse up xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
Sleep 1
|
||
|
click element xpath=//project-detail//li[2]
|
||
|
sleep 1
|
||
|
click element xpath=//project-detail//clr-dg-row-master[contains(.,'userb${d}')]//clr-dg-action-overflow
|
||
|
click element xpath=//project-detail//clr-dg-row-master[contains(.,'userb${d}')]//clr-dg-action-overflow//button[contains(.,"Developer")]
|
||
|
Logout Harbor
|
||
|
Sign In Harbor ${HARBOR_URL} userb${d} Test1@34
|
||
|
page should contain element xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
Mouse down xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
Mouse up xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
Sleep 1
|
||
|
click element xpath=//project-detail//li[2]
|
||
|
sleep 1
|
||
|
#page should contain element xpath=//project-detail//clr-dg-cell//clr-dg-action-overflow[@hidden=""]
|
||
|
xpath should match x times //project-detail//clr-dg-action-overflow[@hidden=""] 2
|
||
|
#step 20
|
||
|
page should not contain element xpath=//project-detail//button//clr-icon
|
||
|
#step 21
|
||
|
${rc}= run and return rc docker login -u userb${d} -p Test1@34 ${ip}
|
||
|
${rc}= run and return rc docker tag hello-world ${ip}/project${d}/hello-world:v1
|
||
|
${rc}= run and return rc docker push ${ip}/project${d}/hello-world:v1
|
||
|
should be equal as integers ${rc} 0
|
||
|
Logout Harbor
|
||
|
Sign In Harbor ${HARBOR_URL} usera${d} Test1@34
|
||
|
#step 22
|
||
|
#change userb to admin of project
|
||
|
Mouse down xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
Mouse up xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
Sleep 1
|
||
|
click element xpath=//project-detail//li[2]
|
||
|
sleep 1
|
||
|
click element xpath=//project-detail//clr-dg-row-master[contains(.,'userb${d}')]//clr-dg-action-overflow
|
||
|
click element xpath=//project-detail//clr-dg-row-master[contains(.,'userb${d}')]//clr-dg-action-overflow//button[contains(.,"Admin")]
|
||
|
Logout Harbor
|
||
|
Sign In Harbor ${HARBOR_URL} userb${d} Test1@34
|
||
|
page should contain element xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
# add userc
|
||
|
Mouse down xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
Mouse up xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
Sleep 1
|
||
|
click element xpath=//project-detail//li[2]
|
||
|
sleep 1
|
||
|
click element xpath=//project-detail//button//clr-icon
|
||
|
input text xpath=//add-member//input[@id="member_name"] userc${d}
|
||
|
mouse down xpath=//project-detail//form//input[@id="checkrads_guest"]
|
||
|
mouse up xpath=//project-detail//form//input[@id="checkrads_guest"]
|
||
|
click button xpath=//project-detail//add-member//button[2]
|
||
|
sleep 1
|
||
|
#step 25 verify b can change c role
|
||
|
page should contain element xpath=//project-detail//clr-dg-row-master[contains(.,'userc${d}')]//clr-dg-action-overflow
|
||
|
${rc}= run and return rc docker login -u userb${d} -p Test1@34 ${ip}
|
||
|
${rc}= run and return rc docker tag hello-world ${ip}/project${d}/hello-world:v2
|
||
|
${rc}= run and return rc docker push ${ip}/project${d}/hello-world:v2
|
||
|
#should be equal as integers ${rc} 0
|
||
|
Logout Harbor
|
||
|
#step 27 remove b from project
|
||
|
Sign In Harbor ${HARBOR_URL} usera${d} Test1@34
|
||
|
Mouse down xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
Mouse up xpath=//clr-dg-cell//a[contains(.,'project${d}')]
|
||
|
Sleep 1
|
||
|
click element xpath=//project-detail//li[2]
|
||
|
sleep 1
|
||
|
click element xpath=//project-detail//clr-dg-row-master[contains(.,'userb${d}')]//clr-dg-action-overflow
|
||
|
click element xpath=//project-detail//clr-dg-cell//clr-dg-action-overflow//button[contains(.,"Delete")]
|
||
|
sleep 1
|
||
|
click element xpath=//confiramtion-dialog//button[2]
|
||
|
sleep 1
|
||
|
#step28
|
||
|
${rc}= run and return rc docker login -u userb${d} -p Test1@34 ${ip}
|
||
|
${rc}= run and return rc docker pull ${ip}/project${d}/hello-world
|
||
|
should not be equal as integers ${rc} 0
|
||
|
#step 29
|
||
|
${rc}= run and return rc docker logout ${ip}
|
||
|
#step 30
|
||
|
${rc}= run and return rc docker login -u userc${d} -p Test1@34 ${ip}
|
||
|
${rc}= run and return rc docker pull ${ip}/project${d}/hello-world
|
||
|
should be equal as integers ${rc} 0
|
||
|
Close Browser
|