1*** Settings *** 2 3Documentation Test OpenBMC GUI "Certificates" sub-menu of "Security and access". 4 5Resource ../../lib/gui_resource.robot 6Resource ../../../lib/certificate_utils.robot 7 8Suite Setup Suite Setup Execution 9Suite Teardown Close Browser 10Test Setup Test Setup Execution 11 12Force Tags Certificates_Sub_Menu 13 14*** Variables *** 15 16${xpath_certificate_heading} //h1[text()="Certificates"] 17${xpath_add_certificate_button} //button[contains(text(),"Add new certificate")] 18${xpath_generate_csr_button} //*[@data-test-id='certificates-button-generateCsr'] 19${xpath_generate_csr_heading} //h5[contains(text(), "Generate a Certificate Signing Request")] 20${xpath_select_certificate_type} //*[@data-test-id='modalGenerateCsr-select-certificateType'] 21${xpath_select_country} //*[@data-test-id='modalGenerateCsr-select-country'] 22${xpath_input_state} //*[@data-test-id='modalGenerateCsr-input-state'] 23${xpath_input_city} //*[@data-test-id='modalGenerateCsr-input-city'] 24${xpath_input_company_name} //*[@data-test-id='modalGenerateCsr-input-companyName'] 25${xpath_input_company_unit} //*[@data-test-id='modalGenerateCsr-input-companyUnit'] 26${xpath_input_common_name} //*[@data-test-id='modalGenerateCsr-input-commonName'] 27${xpath_input_challenge_password} //*[@data-test-id='modalGenerateCsr-input-challengePassword'] 28${xpath_input_contact_person} //*[@data-test-id='modalGenerateCsr-input-contactPerson'] 29${xpath_input_email_address} //*[@data-test-id='modalGenerateCsr-input-emailAddress'] 30${xpath_generate_csr_submit} //*[@data-test-id='modalGenerateCsr-button-ok'] 31${xpath_csr_cancel_button} //button[contains(text(),"Cancel")] 32${xpath_input_alternate_name} //input[@id='alternate-name'] 33${xpath_select_algorithm_button} //*[@data-test-id='modalGenerateCsr-select-keyPairAlgorithm'] 34 35*** Test Cases *** 36 37Verify Navigation To Certificate Page 38 [Documentation] Verify navigation to certificate page. 39 [Tags] Verify_Navigation_To_Certificate_Page 40 41 Page Should Contain Element ${xpath_certificate_heading} 42 43 44Verify Existence Of All Sections In Certificate Page 45 [Documentation] Verify existence of all sections in certificate page. 46 [Tags] Verify_Existence_Of_All_Sections_In_Certificate_Page 47 48 Page should contain Certificate 49 Page should contain Issued by 50 Page should contain Issued to 51 Page should contain Valid from 52 Page should contain Valid until 53 54 55Verify Existence Of Add Certificate Button 56 [Documentation] Verify existence of add certificate button. 57 [Tags] Verify_Existence_Of_Add_Certificate_Button 58 59 Page Should Contain Element ${xpath_add_certificate_button} 60 61Verify Generate CSR Certificate Button 62 [Documentation] Verify existence of all the fields of CSR generation. 63 [Tags] Verify_Generate_CSR_Certificate_Button 64 [Teardown] Click Element ${xpath_csr_cancel_button} 65 66 Page Should Contain Element ${xpath_generate_csr_button} 67 Click Element ${xpath_generate_csr_button} 68 Wait Until Page Contains Element ${xpath_generate_csr_heading} 69 Page Should Contain Element ${xpath_select_certificate_type} 70 Page Should Contain Element ${xpath_select_country} 71 Page Should Contain Element ${xpath_input_state} 72 Page Should Contain Element ${xpath_input_city} 73 Page Should Contain Element ${xpath_input_company_name} 74 Page Should Contain Element ${xpath_input_common_name} 75 Page Should Contain Element ${xpath_input_challenge_password} 76 Page Should Contain Element ${xpath_input_contact_person} 77 Page Should Contain Element ${xpath_input_email_address} 78 Page Should Contain Element ${xpath_input_alternate_name} 79 Page Should Contain Element ${xpath_select_algorithm_button} 80 Page Should Contain Element ${xpath_generate_csr_submit} 81 82 83Verify Installed CA Certificate 84 [Documentation] Install CA certificate and verify the same via GUI. 85 [Tags] Verify_Installed_CA_Certificate 86 87 Delete All CA Certificate Via Redfish 88 89 # Install CA certificate via Redfish. 90 ${file_data}= Generate Certificate File Data CA 91 Install And Verify Certificate Via Redfish CA Valid Certificate ok 92 93 # Refresh GUI and verify CA certificate availability in GUI. 94 Refresh GUI 95 Wait Until Page Contains CA Certificate timeout=10 96 97 98Verify Installed HTTPS Certificate 99 [Documentation] Install HTTPS certificate via Redfish and verify it in GUI. 100 [Tags] Verify_Installed_HTTPS_Certificate 101 102 # Replace HTTPS certificate. 103 Redfish.Login 104 Replace Certificate Via Redfish Server Valid Certificate Valid Privatekey ok 105 Redfish.Logout 106 107 # Verify certificate is available in GUI. 108 Wait Until Page Contains HTTPS Certificate timeout=10 109 110 111Verify Installed LDAP Certificate 112 [Documentation] Install LDAP certificate via Redfish and verify it in GUI. 113 [Tags] Verify_Installed_LDAP_Certificate 114 115 Redfish.Login 116 Delete Certificate Via BMC CLI Client 117 118 # Install LDAP certificate. 119 ${file_data}= Generate Certificate File Data Client 120 Install And Verify Certificate Via Redfish Client Valid Certificate Valid Privatekey ok 121 Redfish.Logout 122 123 # Refresh GUI and verify certificate is available in GUI. 124 Refresh GUI 125 Wait Until Page Contains LDAP Certificate timeout=10 126 127 128*** Keywords *** 129 130Generate Certificate File Data 131 [Documentation] Generate data of certificate file. 132 133 [Arguments] ${cert_type} 134 135 # Description of Arguments(s): 136 # cert_type Certificate type (e.g. "Client" or "CA"). 137 138 ${cert_file_path}= Run Keyword If '${cert_type}' == 'Client' or 'Server' 139 ... Generate Certificate File Via Openssl Valid Certificate Valid Privatekey 140 ... ELSE IF '${cert_type}' == 'CA' 141 ... Generate Certificate File Via Openssl Valid Certificate 142 ${bytes}= OperatingSystem.Get Binary File ${cert_file_path} 143 ${file_data}= Decode Bytes To String ${bytes} UTF-8 144 145 [return] ${file_data} 146 147 148Test Setup Execution 149 [Documentation] Do test case setup tasks. 150 151 Click Element ${xpath_secuity_and_accesss_menu} 152 Click Element ${xpath_certificates_sub_menu} 153 Wait Until Keyword Succeeds 30 sec 10 sec Location Should Contain certificates 154 Wait Until Element Is Not Visible ${xpath_page_loading_progress_bar} timeout=30 155 156 157Suite Setup Execution 158 [Documentation] Do test case suite setup tasks. 159 160 Launch Browser And Login GUI 161 Create Directory certificate_dir 162