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