aboutsummaryrefslogtreecommitdiffstats
path: root/tests/uiTests/test_login_with_new_user.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/uiTests/test_login_with_new_user.py')
-rw-r--r--tests/uiTests/test_login_with_new_user.py545
1 files changed, 545 insertions, 0 deletions
diff --git a/tests/uiTests/test_login_with_new_user.py b/tests/uiTests/test_login_with_new_user.py
new file mode 100644
index 0000000..8018b1a
--- /dev/null
+++ b/tests/uiTests/test_login_with_new_user.py
@@ -0,0 +1,545 @@
+
+# ============LICENSE_START==========================================
+# org.onap.vvp/test-engine
+# ===================================================================
+# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+# ===================================================================
+#
+# Unless otherwise specified, all software contained herein is licensed
+# under the Apache License, Version 2.0 (the “License”);
+# you may not use this software 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.
+#
+#
+#
+# Unless otherwise specified, all documentation contained herein is licensed
+# under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+# you may not use this documentation except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://creativecommons.org/licenses/by/4.0/
+#
+# Unless required by applicable law or agreed to in writing, documentation
+# 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.
+#
+# ============LICENSE_END============================================
+#
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+from wheel.signatures import assertTrue
+from iceci.decorator.exception_decor import exception
+from services.constants import Constants
+from services.frontend.base_actions.click import Click
+from services.frontend.base_actions.enter import Enter
+from services.frontend.base_actions.get import Get
+from services.frontend.base_actions.wait import Wait
+from services.helper import Helper
+from services.logging_service import LoggingServiceFactory
+from services.types import API, Frontend, DB
+from tests.uiTests.test_ui_base import TestUiBase
+
+logger = LoggingServiceFactory.get_logger()
+
+
+class TestLoginPageWithNewUser(TestUiBase):
+
+ @exception()
+ def test_login_positive(self):
+ ''' Create new user login. '''
+ user_content = API.User.create_new_user()
+ Frontend.User.login(
+ user_content['email'], Constants.Default.Password.TEXT, Constants.Toast.ID)
+ logger.debug("Resend Activation Email Page Opened ")
+ Wait.text_by_id(
+ Constants.Toast.ID, Constants.ActivateAccount.Toast.TEXT)
+
+ @exception()
+ def test_login_negative(self):
+ ''' Negative: Type wrong password in login page. '''
+ user_content = API.User.create_new_user(activate=True)
+ Frontend.User.login(
+ user_content['email'], Helper.rand_string("randomString"), Constants.Toast.ID)
+ Wait.text_by_id(Constants.Toast.ID, Constants.Login.Toast.TEXT)
+ logger.debug(
+ "Message Error(APIUser or Password does not match) Displayed")
+
+ @exception()
+ def test_login_negative_email_valid(self):
+ ''' Negative: Type wrong password in login page. '''
+ user_content = API.User.create_new_user(activate=True)
+ Frontend.User.login(
+ user_content['email'] + "s", Constants.Default.Password.TEXT, Constants.Toast.ID)
+ Wait.text_by_id(Constants.Toast.ID, Constants.Login.Toast.TEXT)
+ logger.debug(
+ "Message Error(APIUser or Password does not match) Displayed")
+
+ @exception()
+ def test_login_negative_required_password(self):
+ ''' Check that password is a required field on login page. '''
+ user_content = API.User.create_new_user()
+ logger.debug("Verifying and Insert Login page elements:")
+ Enter.text_by_name(Constants.Login.Email.NAME, user_content['email'])
+ Enter.text_by_name(Constants.Login.Password.NAME, "1")
+ Enter.text_by_name(Constants.Login.Password.NAME, "")
+ Wait.text_by_css(
+ Constants.Login.Password.Error.CSS, Constants.Login.Password.Error.TEXT)
+
+ @exception()
+ def test_login_page_dont_have_accaunt_button(self):
+ ''' Go to login page, click_on on "Don't have an account", verify user is redirected to signup page. '''
+ Click.id(Constants.Login.DontHaveAccount.ID)
+ Wait.text_by_css(
+ Constants.Signup.Title.CSS, Constants.Signup.Title.TEXT)
+
+ @exception()
+ def test_login_page_home_button(self):
+ ''' Open login page, verify home button works correctly. '''
+ Click.id(Constants.Home.Logo.ID)
+ Wait.text_by_id(Constants.Home.Title.ID, Constants.Home.Title.TEXT)
+
+ @exception()
+ def test_create_and_activate_user(self):
+ ''' Create user and activate by log-in. '''
+ user_content = API.User.create_new_user()
+ Frontend.User.login(
+ user_content['email'], Constants.Default.Password.TEXT, Constants.Toast.ID)
+ ''' Resend Activation Email Page Opened '''
+ Wait.text_by_id(
+ Constants.Toast.ID, Constants.ActivateAccount.Toast.TEXT)
+ activationUrl = DB.User.get_activation_url(user_content['email'])
+ Frontend.General.re_open(activationUrl)
+ Frontend.User.login(
+ user_content['email'], Constants.Default.Password.TEXT)
+ Wait.text_by_id(
+ Constants.Toast.ID, Constants.Dashboard.ActivateMsg.Success.TEXT)
+
+ @exception()
+ def test_invite_existing_user(self):
+ ''' Create user and VF, login, invite existing user, login with second user and verify user has joined to engagement '''
+ user_content = API.VirtualFunction.create_engagement(
+ wait_for_gitlab=False)
+ second_user_content = API.VirtualFunction.create_engagement(
+ wait_for_gitlab=False)
+ activationUrl = DB.User.get_activation_url(user_content['email'])
+ Frontend.General.re_open(activationUrl)
+ Frontend.User.login(
+ user_content['email'], Constants.Default.Password.TEXT)
+ vfFullName = user_content[
+ 'engagement_manual_id'] + ": " + user_content['vfName']
+ actualVfNameid = "clickable-" + vfFullName
+ Click.id(actualVfNameid,wait_for_page=True)
+ Wait.id(Constants.Dashboard.Overview.TeamMember.ID)
+ Frontend.Wizard.invite_team_members_modal(second_user_content['email'])
+ enguuid = DB.General.select_where("uuid", "ice_engagement", "engagement_manual_id", user_content[
+ 'engagement_manual_id'], 1) # Fetch one is_service_provider_contact user ID.
+ invitation_token = DB.User.select_invitation_token("invitation_token", "ice_invitation", "engagement_uuid",
+ enguuid, second_user_content['email'], 1)
+ inviterURL = Constants.Default.InviteURL.Login.TEXT + invitation_token
+ Frontend.General.re_open(inviterURL)
+ actualVfNameid = "clickable-" + vfFullName
+ Frontend.User.login(
+ second_user_content['email'], Constants.Default.Password.TEXT, actualVfNameid)
+ Wait.modal_to_dissappear()
+ Frontend.Overview.click_on_vf(user_content)
+ Wait.text_by_id(Constants.Dashboard.Overview.Title.ID, vfFullName)
+
+ @exception()
+ def test_invite_new_user_of_service_provider_internal(self):
+ '''
+ TC Name: test_invite_new_user_aservice_provider_internal
+ Steps:
+ Create new NOT-MainServiceProvider APIUser via SignUp request-->Login with This One--> build "activationUrl"-->
+ Validation of successful activate-->
+ close Wizard --> Logout from Dashboard -->login-->Open Wizard--> fill all fields in all Tab's(4)-->
+ validate second Tab is a "add_service_provider_internal"-->
+ build inviteURL from email--> reopen browser with inviteURL-->
+ Validate Login Form opened -->
+ Login--> Validate Dashboard Form opened
+ '''
+ user_content = API.User.create_new_user(company="Amdocs")
+ uuid = DB.General.select_where_email(
+ "uuid", "ice_user_profile", user_content['email'])
+ activationUrl = DB.User.get_activation_url(user_content['email'])
+ Frontend.General.re_open(activationUrl)
+ Frontend.User.login(
+ user_content['email'], Constants.Default.Password.TEXT) # new
+ Wait.text_by_id(
+ Constants.Toast.ID, Constants.Dashboard.ActivateMsg.Success.TEXT)
+ Click.id(Constants.Dashboard.Wizard.CloseButton.ID)
+ Wait.modal_to_dissappear()
+ Frontend.User.logout()
+ Frontend.User.login(
+ user_content['email'], Constants.Default.Password.TEXT)
+ Wait.text_by_css(
+ Constants.Dashboard.LeftPanel.Title.CSS, Constants.Dashboard.LeftPanel.Title.TEXT)
+ Wait.id(Constants.Dashboard.Statuses.Title.ID)
+ Click.id(Constants.Dashboard.LeftPanel.AddEngagement.ID)
+ # Wizard
+ vfName = Frontend.Wizard.add_vf()
+ service_provider_internal = Frontend.Wizard.add_service_provider_internal()
+ inviteEmail = Helper.rand_invite_email()
+ Frontend.Wizard.invite_team_members(inviteEmail)
+ Frontend.Wizard.add_ssh_key()
+ enguuid = DB.General.select_where("uuid", "ice_vf", "name", vfName, 1)
+ invitation_token = DB.User.select_invitation_token("invitation_token", "ice_invitation", "engagement_uuid",
+ enguuid, inviteEmail, 1)
+ inviterURL = Constants.Default.InviteURL.Signup.TEXT + \
+ invitation_token + "&email=" + inviteEmail
+
+ Frontend.General.re_open(inviterURL)
+ actualInvitedEmail = Get.value_by_name(Constants.Signup.Email.NAME)
+ Helper.internal_assert(inviteEmail, actualInvitedEmail)
+ signUpURLforContact = DB.User.get_contact_signup_url(invitation_token, uuid, service_provider_internal["email"],
+ service_provider_internal["full_name"], service_provider_internal["phone"], service_provider_internal["company"])
+ Frontend.General.re_open(signUpURLforContact)
+ actualInvitedEmail = Get.value_by_name(Constants.Signup.Email.NAME)
+ Helper.internal_assert(service_provider_internal["email"], actualInvitedEmail)
+ Helper.internal_assert(
+ "+" + service_provider_internal["phone"], Get.value_by_name(Constants.Signup.Phone.NAME))
+ Helper.internal_assert(
+ service_provider_internal["full_name"], Get.value_by_name(Constants.Signup.FullName.NAME))
+ Helper.internal_assert(
+ service_provider_internal["company"], Get.value_by_name(Constants.Signup.Company.NAME))
+
+ @exception()
+ def test_create_2_new_users(self):
+ '''
+ Login and activate new user, than reopen browser and loging with new other user -
+ check wizard appears for both Frontend.User.
+ '''
+ # First APIUser
+ user_content = API.User.create_new_user()
+ logger.debug(user_content['email'])
+ activationUrl = DB.User.get_activation_url(user_content['email'])
+ logger.debug(activationUrl)
+ Frontend.General.re_open(activationUrl)
+ Frontend.User.login(
+ user_content['email'], Constants.Default.Password.TEXT)
+ Wait.text_by_id(
+ Constants.Toast.ID, Constants.Dashboard.ActivateMsg.Success.TEXT)
+ Click.id(Constants.Dashboard.Wizard.CloseButton.ID)
+ Wait.modal_to_dissappear()
+ Frontend.User.logout()
+ # Second APIUser
+ user_content = API.User.create_new_user()
+ logger.debug(user_content['email'])
+ activationUrl2 = DB.User.get_activation_url(user_content['email'])
+ logger.debug(activationUrl2)
+ Frontend.General.re_open_not_clean_cache(activationUrl2)
+ Frontend.User.login(
+ user_content['email'], Constants.Default.Password.TEXT) # new
+ Wait.text_by_id(
+ Constants.Toast.ID, Constants.Dashboard.ActivateMsg.Success.TEXT)
+ Click.id(Constants.Dashboard.Wizard.CloseButton.ID)
+ Wait.modal_to_dissappear()
+ Click.id(Constants.Dashboard.Avatar.ID)
+
+ @exception()
+ def test_validate_account_form(self):
+ '''Go to Account page and validate details.'''
+ user_content = API.VirtualFunction.create_engagement(
+ wait_for_gitlab=False)
+ ssh_key = API.User.set_ssh(user_content)
+ Frontend.User.login(
+ user_content['email'], Constants.Default.Password.TEXT)
+ Frontend.User.go_to_account()
+ Frontend.User.validate_account_details(
+ user_content['full_name'], user_content['phone_number'], ssh_key)
+
+ @exception()
+ def test_add_vendor_contact(self):
+ '''
+ TC Name: test_add_vendor_contact
+ Steps:
+ Invite vendor contact and activate the invited user. Validate the invited user has the right VF.
+ '''
+ user_content = API.User.create_new_user()
+ # Fetch one user ID.
+ uuid = DB.General.select_where_email(
+ "uuid", "ice_user_profile", user_content['email'])
+ activationUrl = DB.User.get_activation_url(user_content['email'])
+ Frontend.General.re_open(activationUrl)
+ Frontend.User.login(
+ user_content['email'], Constants.Default.Password.TEXT) # new
+ Wait.text_by_id(
+ Constants.Toast.ID, Constants.Dashboard.ActivateMsg.Success.TEXT)
+ Click.id(Constants.Dashboard.Wizard.CloseButton.ID)
+ Wait.modal_to_dissappear()
+ Frontend.User.logout()
+ Frontend.User.login(
+ user_content['email'], Constants.Default.Password.TEXT)
+ Wait.text_by_css(
+ Constants.Dashboard.LeftPanel.Title.CSS, Constants.Dashboard.LeftPanel.Title.TEXT)
+ Wait.id(Constants.Dashboard.Statuses.Title.ID)
+ logger.debug("click_on on + Dashboard")
+ Click.id(Constants.Dashboard.LeftPanel.AddEngagement.ID)
+ # Wizard
+ vfName = Frontend.Wizard.add_vf()
+ vendor_contact = Frontend.Wizard.add_vendor_contact()
+ inviteEmail = "automationqatt" + \
+ Helper.rand_string("randomString") + "@gmail.com"
+ Frontend.Wizard.invite_team_members(inviteEmail)
+ Frontend.Wizard.add_ssh_key()
+ engagement_id = DB.General.select_where(
+ "engagement_id", "ice_vf", "name", vfName, 1)
+ engLeadEmail = DB.User.select_el_email(vfName)
+ engagement_manual_id = DB.General.select_where(
+ "engagement_manual_id", "ice_engagement", "uuid", engagement_id, 1)
+ # Fetch one is_service_provider_contact user ID.
+ enguuid = DB.General.select_where(
+ "uuid", "ice_engagement", "engagement_manual_id", engagement_manual_id, 1)
+ invitation_token = DB.User.select_invitation_token("invitation_token", "ice_invitation", "engagement_uuid",
+ enguuid, vendor_contact["email"], 1)
+ signUpURLforContact = DB.User.get_contact_signup_url(invitation_token, uuid, vendor_contact["email"],
+ vendor_contact["full_name"], vendor_contact["phone"], vendor_contact["company"])
+ Frontend.General.re_open(signUpURLforContact)
+ actualInvitedEmail = Get.value_by_name(Constants.Signup.Email.NAME)
+ Helper.internal_assert(vendor_contact["email"], actualInvitedEmail)
+ Helper.internal_assert(
+ "+" + vendor_contact["phone"], Get.value_by_name(Constants.Signup.Phone.NAME))
+ Helper.internal_assert(
+ vendor_contact["full_name"], Get.value_by_name(Constants.Signup.FullName.NAME))
+ Helper.internal_assert(
+ vendor_contact["company"], Get.value_by_name(Constants.Signup.Company.NAME))
+ # SignUp for VendorContact
+ user_content['engagement_uuid'] = engagement_id
+ user_content['el_email'] = engLeadEmail
+ API.User.signup_invited_user(vendor_contact["company"], vendor_contact["email"], invitation_token,
+ signUpURLforContact, user_content, True)
+ activationUrl2 = DB.User.get_activation_url(vendor_contact["email"])
+ # Activate for VendorContact
+ myVfName = engagement_manual_id + ": " + vfName
+ actualVfNameid = "clickable-" + myVfName
+ Frontend.General.re_open(activationUrl2)
+ Frontend.User.login(
+ vendor_contact["email"], Constants.Default.Password.TEXT, actualVfNameid)
+ # Validate opened right VF for VendorContact
+ actualVfName = Get.by_id(actualVfNameid)
+ Helper.internal_assert(myVfName, actualVfName)
+
+ @exception()
+ def test_add_service_provider_internal(self):
+ '''
+ TC Name: test_add_service_provider_internal
+ Steps:
+ Invite is_service_provider_contact Sponsor and activate the invited user. Validate sponsor has the right VF.
+ '''
+ user_content = API.User.create_new_user(company="Amdocs")
+ uuid = DB.General.select_where_email(
+ "uuid", "ice_user_profile", user_content['email'])
+ activationUrl = DB.User.get_activation_url(user_content['email'])
+ Frontend.General.re_open(activationUrl)
+ Frontend.User.login(
+ user_content['email'], Constants.Default.Password.TEXT) # new
+ Wait.text_by_id(
+ Constants.Toast.ID, Constants.Dashboard.ActivateMsg.Success.TEXT)
+ Click.id(Constants.Dashboard.Wizard.CloseButton.ID)
+ Wait.modal_to_dissappear()
+ Frontend.User.logout()
+ Frontend.User.login(
+ user_content['email'], Constants.Default.Password.TEXT)
+ Wait.text_by_css(
+ Constants.Dashboard.LeftPanel.Title.CSS, Constants.Dashboard.LeftPanel.Title.TEXT)
+ Wait.id(Constants.Dashboard.Statuses.Title.ID)
+ logger.debug("click_on on + Dashboard")
+ Click.id(Constants.Dashboard.LeftPanel.AddEngagement.ID)
+ # Wizard
+ vfName = Frontend.Wizard.add_vf()
+ service_provider_internal = Frontend.Wizard.add_service_provider_internal()
+ inviteEmail = "automationqatt" + \
+ Helper.rand_string("randomString") + "@gmail.com"
+ Frontend.Wizard.invite_team_members(inviteEmail)
+ Frontend.Wizard.add_ssh_key()
+ enguuid = DB.General.select_where("uuid", "ice_vf", "name", vfName, 1)
+ invitation_token = DB.User.select_invitation_token("invitation_token", "ice_invitation", "engagement_uuid",
+ enguuid, inviteEmail, 1)
+ inviterURL = Constants.Default.InviteURL.Signup.TEXT + \
+ invitation_token + "&email=" + inviteEmail
+ Frontend.General.re_open(inviterURL)
+ actualInvitedEmail = Get.value_by_name("email")
+ Helper.internal_assert(inviteEmail, actualInvitedEmail)
+ signUpURLforContact = DB.User.get_contact_signup_url(invitation_token, uuid, service_provider_internal["email"],
+ service_provider_internal["full_name"], service_provider_internal["phone"], service_provider_internal["company"])
+ Frontend.General.re_open(signUpURLforContact)
+ actualInvitedEmail = Get.value_by_name(Constants.Signup.Email.NAME)
+ Helper.internal_assert(
+ str("+" + service_provider_internal["phone"]), Get.value_by_name(Constants.Signup.Phone.NAME))
+ Helper.internal_assert(
+ service_provider_internal["full_name"], Get.value_by_name(Constants.Signup.FullName.NAME))
+ Helper.internal_assert(
+ service_provider_internal["company"], Get.value_by_name(Constants.Signup.Company.NAME))
+ # Fetch one is_service_provider_contact user ID.
+ engagement_id = DB.General.select_where(
+ "engagement_id", "ice_vf", "name", vfName, 1)
+ # SignUp for MainServiceProviderSponsorContact
+ engagement_manual_id = DB.General.select_where(
+ "engagement_manual_id", "ice_engagement", "uuid", engagement_id, 1)
+ # Fetch one is_service_provider_contact user ID.
+ enguuid = DB.General.select_where(
+ "uuid", "ice_engagement", "engagement_manual_id", engagement_manual_id, 1)
+ invitation_token = DB.User.select_invitation_token("invitation_token", "ice_invitation", "engagement_uuid",
+ enguuid, service_provider_internal["email"], 1)
+ engLeadEmail = DB.User.select_el_email(vfName)
+ user_content['engagement_uuid'] = engagement_id
+ user_content['el_email'] = engLeadEmail
+ API.User.signup_invited_user(service_provider_internal["company"], service_provider_internal["email"], invitation_token,
+ signUpURLforContact, user_content, True)
+ activationUrl2 = DB.User.get_activation_url(service_provider_internal["email"])
+ # Activate for VendorContact
+ engagement_manual_id = DB.General.select_where(
+ "engagement_manual_id", "ice_engagement", "uuid", engagement_id, 1)
+ # Validate opened right VF for VendorContact
+ myVfName = engagement_manual_id + ": " + vfName
+ actualVfNameid = "clickable-" + myVfName
+ Frontend.General.re_open(activationUrl2)
+ Frontend.User.login(
+ service_provider_internal["email"], Constants.Default.Password.TEXT, actualVfNameid)
+ actualVfName = Get.by_id(actualVfNameid, wait_for_page=True)
+ Helper.internal_assert(myVfName, actualVfName)
+
+ @exception()
+ def test_Validate_SSHkeyNS(self):
+ ''' Insert a valid ssh key in wizard, validate "add ssh key" next step marked as completed. '''
+ user_content = API.User.create_new_user()
+ activationUrl = DB.User.get_activation_url(user_content['email'])
+ Frontend.General.re_open(activationUrl)
+ Frontend.User.login(
+ user_content['email'], Constants.Default.Password.TEXT)
+ Wait.text_by_id(
+ Constants.Toast.ID, Constants.Dashboard.ActivateMsg.Success.TEXT)
+ Click.id(Constants.Dashboard.Wizard.CloseButton.ID)
+ Wait.modal_to_dissappear()
+ Frontend.User.logout()
+ Frontend.User.login(
+ user_content['email'], Constants.Default.Password.TEXT)
+ Wait.text_by_css(
+ Constants.Dashboard.LeftPanel.Title.CSS, Constants.Dashboard.LeftPanel.Title.TEXT)
+ logger.debug("click_on on + Dashboard")
+ Click.id(Constants.Dashboard.LeftPanel.AddEngagement.ID)
+ # Wizard
+ vfName = Frontend.Wizard.add_vf()
+ Frontend.Wizard.add_vendor_contact()
+ inviteEmail = Helper.rand_invite_email()
+ Frontend.Wizard.invite_team_members(inviteEmail)
+ sshKey = Frontend.Wizard.add_ssh_key()
+ Frontend.User.go_to_account()
+ Wait.id(user_content['email'])
+ actualFullName = Get.value_by_name(
+ Constants.Dashboard.Avatar.Account.FullName.NAME)
+ Helper.internal_assert(user_content['full_name'], actualFullName)
+ actualSSHkey = Get.value_by_name(
+ Constants.Dashboard.Avatar.Account.SSHKey.NAME)
+ Helper.internal_assert(sshKey, actualSSHkey)
+ Click.id(Constants.Dashboard.Statuses.ID)
+ # VALIDATION FOR CONFIRMED BY ENG. LEAD
+ engLeadEmail = DB.User.select_el_email(vfName)
+ engagement_id = DB.General.select_where(
+ "engagement_id", "ice_vf", "name", vfName, 1)
+ engagement_manual_id = DB.General.select_where(
+ "engagement_manual_id", "ice_engagement", "uuid", engagement_id, 1)
+ myVfName = engagement_manual_id + ": " + vfName
+ actualVfNameid = "clickable-" + myVfName
+ Click.id(actualVfNameid)
+ Click.id("overview-" + myVfName)
+ Click.css("span.engagement_detail_menu_name")
+ Click.xpath("//span[2]/multiselect/div/button")
+ Click.link_text("Completed")
+ elFullName = DB.General.select_where(
+ "full_name", "ice_user_profile", "email", engLeadEmail, 1)
+ idNs = elFullName + "_Completed"
+ actualConfirmBy = str(Get.by_id(idNs))
+ expectedConfirmBy = "System Next Step Completed: "
+ Helper.internal_assert(expectedConfirmBy, actualConfirmBy)
+
+ @exception()
+ def test_current_status(self):
+ user_content = API.VirtualFunction.create_engagement(
+ wait_for_gitlab=False)
+ vfName = user_content['vfName']
+ Frontend.User.login(
+ user_content['email'], Constants.Default.Password.TEXT) # new
+ Frontend.Overview.click_on_vf(user_content)
+ Frontend.User.go_to_account()
+ Wait.id(user_content['email'])
+ actualFullName = Get.value_by_name("fullname")
+ Helper.internal_assert(user_content['full_name'], actualFullName)
+ Click.id(Constants.Dashboard.Statuses.ID)
+ Frontend.Overview.click_on_vf(user_content)
+ Helper.internal_assert(
+ "Current Status", Get.by_css(Constants.Dashboard.Overview.Status.Header.ID))
+ Wait.text_by_id(Constants.Dashboard.Overview.Status.Description.ID,
+ "No status update has been provided yet.")
+ Click.id(Constants.Dashboard.Avatar.ID)
+ Click.link_text("Logout")
+ engLeadEmail = DB.User.select_el_email(vfName)
+ Frontend.User.relogin(engLeadEmail, Constants.Default.Password.TEXT)
+ Frontend.Overview.click_on_vf(user_content)
+ Click.css(Constants.Dashboard.Overview.Status.Add.CSS)
+ Helper.internal_assert(
+ "Add Status", Get.by_css("h3.modal-title.ng-binding"))
+ Helper.internal_assert(
+ "Use the form below to add the current status of the engagement.", Get.by_css("span.ng-binding"))
+ Click.css("textarea[name=\"description\"]")
+ Enter.text_by_css(
+ "textarea[name=\"description\"]", "Add new Status", wait_for_page=True)
+ Helper.internal_assert(
+ "Add status", Get.by_id(Constants.Dashboard.DetailedView.VFC.Save_button.ID))
+ Click.id(
+ Constants.Dashboard.DetailedView.VFC.Save_button.ID, wait_for_page=True)
+ Helper.assertTrue("Last updated" in Get.by_id("status-update-details"))
+ Wait.text_by_id(
+ Constants.Dashboard.Overview.Status.Description.ID, "Add new Status")
+ Wait.css(Constants.Dashboard.Overview.Status.Edit.CSS)
+ Wait.modal_to_dissappear()
+ Click.css(Constants.Dashboard.Overview.Status.Edit.CSS)
+ Helper.internal_assert(
+ "Current Status", Get.by_css("h3.modal-title.ng-binding"))
+ Click.css("textarea[name=\"description\"]")
+ Enter.text_by_css("textarea[name=\"description\"]", "Update Status")
+ Click.id(Constants.Dashboard.DetailedView.VFC.Save_button.ID)
+ Wait.modal_to_dissappear()
+ Wait.text_by_id(
+ Constants.Dashboard.Overview.Status.Description.ID, "Update Status")
+ Frontend.User.logout()
+ Frontend.User.relogin(
+ user_content['email'], Constants.Default.Password.TEXT) # new
+ Frontend.Overview.click_on_vf(user_content)
+ Helper.internal_assert(
+ "Current Status", Get.by_css(Constants.Dashboard.Overview.Status.Header.ID))
+ Wait.text_by_id(
+ Constants.Dashboard.Overview.Status.Description.ID, "Update Status")
+
+ @exception()
+ def test_XSS_script(self):
+ user_content = API.VirtualFunction.create_engagement(
+ wait_for_gitlab=False)
+ validate = API.User.update_account_injec_script(user_content)
+ assertTrue(validate)
+ Frontend.User.login(
+ user_content['email'], Constants.Default.Password.TEXT)
+ Frontend.User.open_account_form()
+ script = "<script>;</script>"
+ Enter.text_by_name("fullname", script, wait_for_page=True)
+ Wait.text_by_css(Constants.SubmitButton.CSS, "Update")
+ Click.css(Constants.SubmitButton.CSS, wait_for_page=True)
+ Wait.text_by_css(
+ Constants.Toast.CSS, "Account was updated successfully!")
+
+ @exception()
+ def test_add_vf(self):
+ user_content = API.User.create_new_user_content_login_with_api()
+ Frontend.User.login(
+ user_content['email'], Constants.Default.Password.TEXT)
+ Frontend.Overview.click_on_vf(user_content)
+ # Wizard
+ Frontend.Overview.create_and_verify_VF_with_VFversion()