| *** Settings *** |
| |
| Documentation Test OpenBMC GUI "Certificates" sub-menu of "Security and access". |
| |
| Resource ../../lib/gui_resource.robot |
| Resource ../../../lib/certificate_utils.robot |
| |
| Suite Setup Suite Setup Execution |
| Suite Teardown Close Browser |
| Test Setup Test Setup Execution |
| |
| Force Tags Certificates_Sub_Menu |
| |
| *** Variables *** |
| |
| ${xpath_certificate_heading} //h1[text()="Certificates"] |
| ${xpath_add_certificate_button} //button[contains(text(),"Add new certificate")] |
| ${xpath_generate_csr_button} //*[@data-test-id='certificates-button-generateCsr'] |
| ${xpath_generate_csr_heading} //h5[contains(text(), "Generate a Certificate Signing Request")] |
| ${xpath_select_certificate_type} //*[@data-test-id='modalGenerateCsr-select-certificateType'] |
| ${xpath_select_country} //*[@data-test-id='modalGenerateCsr-select-country'] |
| ${xpath_input_state} //*[@data-test-id='modalGenerateCsr-input-state'] |
| ${xpath_input_city} //*[@data-test-id='modalGenerateCsr-input-city'] |
| ${xpath_input_company_name} //*[@data-test-id='modalGenerateCsr-input-companyName'] |
| ${xpath_input_company_unit} //*[@data-test-id='modalGenerateCsr-input-companyUnit'] |
| ${xpath_input_common_name} //*[@data-test-id='modalGenerateCsr-input-commonName'] |
| ${xpath_input_contact_person} //*[@data-test-id='modalGenerateCsr-input-contactPerson'] |
| ${xpath_input_email_address} //*[@data-test-id='modalGenerateCsr-input-emailAddress'] |
| ${xpath_generate_csr_submit} //*[@data-test-id='modalGenerateCsr-button-ok'] |
| ${xpath_csr_cancel_button} //button[contains(text(),"Cancel")] |
| ${xpath_input_alternate_name} //input[@id='alternate-name'] |
| ${xpath_select_algorithm_button} //*[@data-test-id='modalGenerateCsr-select-keyPairAlgorithm'] |
| |
| *** Test Cases *** |
| |
| Verify Navigation To Certificate Page |
| [Documentation] Verify navigation to certificate page. |
| [Tags] Verify_Navigation_To_Certificate_Page |
| |
| Page Should Contain Element ${xpath_certificate_heading} |
| |
| |
| Verify Existence Of All Sections In Certificate Page |
| [Documentation] Verify existence of all sections in certificate page. |
| [Tags] Verify_Existence_Of_All_Sections_In_Certificate_Page |
| |
| Page should contain Certificate |
| Page should contain Issued by |
| Page should contain Issued to |
| Page should contain Valid from |
| Page should contain Valid until |
| |
| |
| Verify Existence Of Add Certificate Button |
| [Documentation] Verify existence of add certificate button. |
| [Tags] Verify_Existence_Of_Add_Certificate_Button |
| |
| Page Should Contain Element ${xpath_add_certificate_button} |
| |
| Verify Generate CSR Certificate Button |
| [Documentation] Verify existence of all the fields of CSR generation. |
| [Tags] Verify_Generate_CSR_Certificate_Button |
| [Teardown] Click Element ${xpath_csr_cancel_button} |
| |
| Page Should Contain Element ${xpath_generate_csr_button} |
| Click Element ${xpath_generate_csr_button} |
| Wait Until Page Contains Element ${xpath_generate_csr_heading} |
| Page Should Contain Element ${xpath_select_certificate_type} |
| Page Should Contain Element ${xpath_select_country} |
| Page Should Contain Element ${xpath_input_state} |
| Page Should Contain Element ${xpath_input_city} |
| Page Should Contain Element ${xpath_input_company_name} |
| Page Should Contain Element ${xpath_input_common_name} |
| Page Should Contain Element ${xpath_input_contact_person} |
| Page Should Contain Element ${xpath_input_email_address} |
| Page Should Contain Element ${xpath_input_alternate_name} |
| Page Should Contain Element ${xpath_select_algorithm_button} |
| Page Should Contain Element ${xpath_generate_csr_submit} |
| |
| |
| Verify Installed CA Certificate |
| [Documentation] Install CA certificate and verify the same via GUI. |
| [Tags] Verify_Installed_CA_Certificate |
| |
| Delete All CA Certificate Via Redfish |
| |
| # Install CA certificate via Redfish. |
| ${file_data}= Generate Certificate File Data CA |
| Install And Verify Certificate Via Redfish CA Valid Certificate ok |
| |
| # Refresh GUI and verify CA certificate availability in GUI. |
| Refresh GUI |
| Wait Until Page Contains CA Certificate timeout=10 |
| |
| |
| Verify Installed HTTPS Certificate |
| [Documentation] Install HTTPS certificate via Redfish and verify it in GUI. |
| [Tags] Verify_Installed_HTTPS_Certificate |
| |
| # Replace HTTPS certificate. |
| Redfish.Login |
| Replace Certificate Via Redfish Server Valid Certificate Valid Privatekey ok |
| Redfish.Logout |
| |
| # Verify certificate is available in GUI. |
| Wait Until Page Contains HTTPS Certificate timeout=10 |
| |
| |
| Verify Installed LDAP Certificate |
| [Documentation] Install LDAP certificate via Redfish and verify it in GUI. |
| [Tags] Verify_Installed_LDAP_Certificate |
| |
| Redfish.Login |
| Delete Certificate Via BMC CLI Client |
| |
| # Install LDAP certificate. |
| ${file_data}= Generate Certificate File Data Client |
| Install And Verify Certificate Via Redfish Client Valid Certificate Valid Privatekey ok |
| Redfish.Logout |
| |
| # Refresh GUI and verify certificate is available in GUI. |
| Refresh GUI |
| Wait Until Page Contains LDAP Certificate timeout=10 |
| |
| |
| *** Keywords *** |
| |
| Generate Certificate File Data |
| [Documentation] Generate data of certificate file. |
| |
| [Arguments] ${cert_type} |
| |
| # Description of Arguments(s): |
| # cert_type Certificate type (e.g. "Client" or "CA"). |
| |
| ${cert_file_path}= Run Keyword If '${cert_type}' == 'Client' or 'Server' |
| ... Generate Certificate File Via Openssl Valid Certificate Valid Privatekey |
| ... ELSE IF '${cert_type}' == 'CA' |
| ... Generate Certificate File Via Openssl Valid Certificate |
| ${bytes}= OperatingSystem.Get Binary File ${cert_file_path} |
| ${file_data}= Decode Bytes To String ${bytes} UTF-8 |
| |
| [return] ${file_data} |
| |
| |
| Test Setup Execution |
| [Documentation] Do test case setup tasks. |
| |
| Click Element ${xpath_secuity_and_accesss_menu} |
| Click Element ${xpath_certificates_sub_menu} |
| Wait Until Keyword Succeeds 30 sec 10 sec Location Should Contain certificates |
| Wait Until Element Is Not Visible ${xpath_page_loading_progress_bar} timeout=30 |
| |
| |
| Suite Setup Execution |
| [Documentation] Do test case suite setup tasks. |
| |
| Launch Browser And Login GUI |
| Create Directory certificate_dir |