aboutsummaryrefslogtreecommitdiffstats
path: root/tests/portal
diff options
context:
space:
mode:
Diffstat (limited to 'tests/portal')
-rw-r--r--tests/portal/testsuites/__init__.robot2
-rw-r--r--tests/portal/testsuites/browser_setup.robot43
-rw-r--r--tests/portal/testsuites/integration_robot_properties.py83
-rw-r--r--tests/portal/testsuites/json_templater.robot21
-rw-r--r--tests/portal/testsuites/news_widget.zipbin0 -> 5125 bytes
-rw-r--r--tests/portal/testsuites/portal.template34
-rw-r--r--tests/portal/testsuites/portal_VID.robot741
-rw-r--r--tests/portal/testsuites/test1.robot1185
-rw-r--r--tests/portal/testsuites/widget_news.zipbin0 -> 4593 bytes
9 files changed, 2109 insertions, 0 deletions
diff --git a/tests/portal/testsuites/__init__.robot b/tests/portal/testsuites/__init__.robot
new file mode 100644
index 00000000..885710c9
--- /dev/null
+++ b/tests/portal/testsuites/__init__.robot
@@ -0,0 +1,2 @@
+*** Settings ***
+Documentation Portal - Testcases
diff --git a/tests/portal/testsuites/browser_setup.robot b/tests/portal/testsuites/browser_setup.robot
new file mode 100644
index 00000000..6ef4f726
--- /dev/null
+++ b/tests/portal/testsuites/browser_setup.robot
@@ -0,0 +1,43 @@
+*** Settings ***
+Documentation The main interface for interacting with VID. It handles low level stuff like managing the selenium request library and VID required steps
+Library Collections
+Library OSUtils
+Library OperatingSystem
+Library ExtendedSelenium2Library
+Resource global_properties.robot
+
+*** Variables ***
+
+*** Keywords ***
+Setup Browser
+ [Documentation] Sets up browser based upon the value of ${GLOBAL_SELENIUM_BROWSER}
+ Run Keyword If '${GLOBAL_SELENIUM_BROWSER}' == 'firefox' Setup Browser Firefox
+ Run Keyword If '${GLOBAL_SELENIUM_BROWSER}' == 'chrome' Setup Browser Chrome
+ Log Running with ${GLOBAL_SELENIUM_BROWSER}
+
+Setup Browser Firefox
+ ${dc} Evaluate sys.modules['selenium.webdriver'].DesiredCapabilities.FIREFOX sys, selenium.webdriver
+ Set To Dictionary ${dc} elementScrollBehavior 1
+ Create Webdriver Firefox desired_capabilities=${dc}
+ Set Global Variable ${GLOBAL_SELENIUM_BROWSER_CAPABILITIES} ${dc}
+
+ Setup Browser Chrome
+ ${os}= Get Normalized Os
+ Log Normalized OS=${os}
+ ${chrome options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys
+ Call Method ${chrome options} add_argument no-sandbox
+ ${dc} Evaluate sys.modules['selenium.webdriver'].DesiredCapabilities.CHROME sys, selenium.webdriver
+ Set To Dictionary ${dc} elementScrollBehavior 1
+ Create Webdriver Chrome chrome_options=${chrome_options} desired_capabilities=${dc}
+ Set Global Variable ${GLOBAL_SELENIUM_BROWSER_CAPABILITIES} ${dc}
+
+Handle Proxy Warning
+ [Documentation] Handle Intermediate Warnings from Proxies
+ ${status} ${data}= Run Keyword And Ignore Error Variable Should Exist \${GLOBAL_PROXY_WARNING_TITLE}
+ Return From Keyword if '${status}' != 'PASS'
+ ${status} ${data}= Run Keyword And Ignore Error Variable Should Exist \${GLOBAL_PROXY_WARNING_CONTINUE_XPATH}
+ Return From Keyword if '${status}' != 'PASS'
+ Return From Keyword if "${GLOBAL_PROXY_WARNING_TITLE}" == ''
+ Return From Keyword if "${GLOBAL_PROXY_WARNING_CONTINUE_XPATH}" == ''
+ ${test} ${value}= Run keyword and ignore error Title Should Be ${GLOBAL_PROXY_WARNING_TITLE}
+ Run keyword If '${test}' == 'PASS' Click Element xpath=${GLOBAL_PROXY_WARNING_CONTINUE_XPATH} \ No newline at end of file
diff --git a/tests/portal/testsuites/integration_robot_properties.py b/tests/portal/testsuites/integration_robot_properties.py
new file mode 100644
index 00000000..cc0558fc
--- /dev/null
+++ b/tests/portal/testsuites/integration_robot_properties.py
@@ -0,0 +1,83 @@
+# aaf info - everything is from the private oam network (also called ecomp private network)
+GLOBAL_AAF_SERVER = "http://10.0.12.1:8101"
+GLOBAL_AAF_USERNAME = "dgl@openecomp.org"
+GLOBAL_AAF_PASSWORD = "ecomp_admin"
+# aai info - everything is from the private oam network (also called ecomp private network)
+GLOBAL_AAI_SERVER_URL = "https://104.239.249.183:8443"
+GLOBAL_AAI_USERNAME = "AAI"
+GLOBAL_AAI_PASSWORD = "AAI"
+# appc info - everything is from the private oam network (also called ecomp private network)
+GLOBAL_APPC_SERVER = "http://172.99.68.171:8282"
+GLOBAL_APPC_USERNAME = "admin"
+GLOBAL_APPC_PASSWORD = "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U"
+# sdc info - everything is from the private oam network (also called ecomp private network)
+GLOBAL_ASDC_SERVER = "http://104.239.249.58"
+GLOBAL_ASDC_FE_PORT = "8181"
+GLOBAL_ASDC_BE_PORT = "8080"
+GLOBAL_ASDC_BE_USERNAME = "beep"
+GLOBAL_ASDC_BE_PASSWORD = "boop"
+# dcae info - everything is from the private oam network (also called ecomp private network)
+GLOBAL_DCAE_SERVER = "http://146.20.110.86:9998"
+GLOBAL_DCAE_USERNAME = "console"
+GLOBAL_DCAE_PASSWORD = "ZjJkYjllMjljMTI2M2Iz"
+# message router info - everything is from the private oam network (also called ecomp private network)
+GLOBAL_MR_SERVER = "http://162.209.124.141:3904"
+# mso info - everything is from the private oam network (also called ecomp private network)
+GLOBAL_MSO_SERVER = "http://172.99.67.208:8080"
+GLOBAL_MSO_USERNAME = "InfraPortalClient"
+GLOBAL_MSO_PASSWORD = "password1$"
+# openstack info - info to select right info in environment
+GLOBAL_OPENSTACK_KEYSTONE_SERVER = "https://identity.api.rackspacecloud.com"
+# packet generate vnf info - everything is from the private oam network (also called ecomp private network)
+GLOBAL_PACKET_GENERATOR_PORT = "8183"
+GLOBAL_PACKET_GENERATOR_USERNAME = "admin"
+GLOBAL_PACKET_GENERATOR_PASSWORD = "admin"
+GLOBAL_PGN_PORT = "2831"
+# policy info - everything is from the private oam network (also called ecomp private network)
+GLOBAL_POLICY_SERVER_URL = "http://104.239.249.76:8480"
+GLOBAL_POLICY_AUTH = "dGVzdHJlc3Q6M2MwbXBVI2gwMUBOMWMz"
+GLOBAL_POLICY_CLIENTAUTH = "cHl0aG9uOnRlc3Q="
+GLOBAL_POLICY_HEALTHCHECK_URL = "http://104.239.249.76:6969"
+GLOBAL_POLICY_USERNAME = "healthcheck"
+GLOBAL_POLICY_PASSWORD = "zb!XztG34"
+# portal info - everything is from the private oam network (also called ecomp private network)
+GLOBAL_PORTAL_SERVER = "http://104.130.31.32:8989"
+GLOBAL_PORTAL_USERNAME = "demo"
+GLOBAL_PORTAL_PASSWORD = "demo123456!"
+# portal information
+#GLOBAL_PORTAL_URL = "http://vm-ep-dev2.client.research.att.com:8989"
+GLOBAL_PORTAL_URL = "http://vm-ep-dev3.client.research.att.com:8989"
+#GLOBAL_PORTAL_URL = "http://portal.api.simpledemo.openecomp.org:8989"
+GLOBAL_PORTAL_ADMIN_USER = "demo"
+GLOBAL_PORTAL_ADMIN_PWD = "demo123456!"
+GLOBAL_APP_ADMIN_USER = "appdemo"
+GLOBAL_APP_ADMIN_PWD = "appdemo123456!"
+GLOBAL_STA_USER_USER = "stademo"
+GLOBAL_STA_USER_PWD = "stademo123456!"
+#First_Name = "Test20"
+#Last_Name = "Demo20"
+#Email_Address = "Test20@att.com"
+#LoginID = "TestUser20"
+#Loginpwd = "Demo1234!"
+#LoginPwdCheck = "Demo1234!"
+#Existing_User = "Portal"
+# sdngc info - everything is from the private oam network (also called ecomp private network)
+GLOBAL_SDNGC_SERVER = "http://172.99.69.190"
+GLOBAL_SDNGC_REST_PORT = "8282"
+GLOBAL_SDNGC_ADMIN_PORT = "8843"
+GLOBAL_SDNGC_USERNAME = "admin"
+GLOBAL_SDNGC_PASSWORD = "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U"
+# vid info - everything is from the private oam network (also called ecomp private network)
+GLOBAL_VID_USERNAME = "demo"
+GLOBAL_VID_PASSWORD = "Kp8bJ4SXszM0WX"
+GLOBAL_VID_HEALTH_USERNAME = "Default"
+GLOBAL_VID_HEALTH_PASSWORD = "AppPassword!1"
+GLOBAL_VID_SERVER = "http://104.130.12.222:8080"
+#global selenium info
+GLOBAL_PROXY_WARNING_TITLE="Notice - Uncategorized Site"
+GLOBAL_PROXY_WARNING_CONTINUE_XPATH="//a[contains(@href, 'accepted-Notify-Uncategorized')]"
+# settings for vm to attach vvg too
+GLOBAL_VVGSERVER_IMAGE = "Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM)"
+GLOBAL_VVGSERVER_FLAVOR = "4 GB General Purpose v1"
+# dns info
+GLOBAL_DNS_TRAFFIC_DURATION = "600" \ No newline at end of file
diff --git a/tests/portal/testsuites/json_templater.robot b/tests/portal/testsuites/json_templater.robot
new file mode 100644
index 00000000..01eba480
--- /dev/null
+++ b/tests/portal/testsuites/json_templater.robot
@@ -0,0 +1,21 @@
+*** Settings ***
+Documentation This resource is filling out json string templates and returning the json back
+Library RequestsLibrary
+Library eteutils/StringTemplater.py
+Library OperatingSystem
+#Resource global_properties.robot
+
+*** Keywords ***
+Fill JSON Template
+ [Documentation] Runs substitution on template to return a filled in json
+ [Arguments] ${json} ${arguments}
+ ${returned_string}= Template String ${json} ${arguments}
+ ${returned_json}= To Json ${returned_string}
+ [Return] ${returned_json}
+
+Fill JSON Template File
+ [Documentation] Runs substitution on template to return a filled in json
+ [Arguments] ${json_file} ${arguments}
+ ${json}= OperatingSystem.Get File ${json_file}
+ ${returned_json}= Fill JSON Template ${json} ${arguments}
+ [Return] ${returned_json} \ No newline at end of file
diff --git a/tests/portal/testsuites/news_widget.zip b/tests/portal/testsuites/news_widget.zip
new file mode 100644
index 00000000..17d4ce92
--- /dev/null
+++ b/tests/portal/testsuites/news_widget.zip
Binary files differ
diff --git a/tests/portal/testsuites/portal.template b/tests/portal/testsuites/portal.template
new file mode 100644
index 00000000..57a3b798
--- /dev/null
+++ b/tests/portal/testsuites/portal.template
@@ -0,0 +1,34 @@
+{
+"application" : "${jira_id}",
+"event" : {
+"body" : {
+"ticketStatePhrase" : "We recently detected a problem with the equipment at your site. The event is in queue for immediate work.",
+"ivrNotificationFlag" : "1",
+"expectedRestoreDate" : 0,
+"bridgeTransport" : "AOTS",
+"reptRequestType" : 0,
+"ticketNum" : "PORTAL-104",
+"assetID" : "JIRA notification from demo",
+"eventAbstract" : "This is the place to enter notification contents!!! ",
+"severity" : "2 - Major",
+"ticketPriority" : "3",
+"reportedCustomerImpact" : 0,
+"testAutoIndicator" : 0,
+"supportGroupName" : "US-TEST-ORT",
+"messageGroup" : "SNMP",
+"csi" : 0,
+"mfabRestoredTime" : 0
+},
+"header" : {
+"timestamp" : "2017-04-10T14:35:05.219+0000",
+"eventSource" : "JIRA",
+"entityId" : "000002000857405",
+"sequenceNumber" : 2
+},
+"blinkMsgId" : "f38c071e-1a47-4b55-9e72-1db830100a61",
+"sourceIP" : "130.4.165.158"
+},
+"SubscriberInfo" : {
+"UserList" : ["demo"]
+}
+}
diff --git a/tests/portal/testsuites/portal_VID.robot b/tests/portal/testsuites/portal_VID.robot
new file mode 100644
index 00000000..473a0464
--- /dev/null
+++ b/tests/portal/testsuites/portal_VID.robot
@@ -0,0 +1,741 @@
+*** Settings ***
+Documentation The main interface for interacting with Portal. It handles low level stuff like managing the selenium request library and Portal required steps
+Library ExtendedSelenium2Library
+Library RequestsClientCert
+Library RequestsLibrary
+Library UUID
+Library DateTime
+Resource ../global_properties.robot
+Resource ../browser_setup.robot
+
+*** Variables ***
+${PORTAL_ENV} /ECOMPPORTAL
+${PORTAL_LOGIN_URL} ${GLOBAL_PORTAL_URL}${PORTAL_ENV}/login.htm
+${PORTAL_HOME_PAGE} ${GLOBAL_PORTAL_URL}${PORTAL_ENV}/applicationsHome
+${PORTAL_MICRO_ENDPOINT} ${GLOBAL_PORTAL_URL}${PORTAL_ENV}/commonWidgets
+${PORTAL_HOME_URL} ${GLOBAL_PORTAL_URL}${PORTAL_ENV}/applicationsHome
+${App_First_Name} appdemo
+${App_Last_Name} demo
+${App_Email_Address} appdemo@onap.com
+${App_LoginID} appdemo
+${App_Loginpwd} demo123456!
+${App_LoginPwdCheck} demo123456!
+${Sta_First_Name} stademo
+${Sta_Last_Name} demo
+${Sta_Email_Address} stademo@onap.com
+${Sta_LoginID} stademo
+${Sta_Loginpwd} demo123456!
+${Sta_LoginPwdCheck} demo123456!
+${Existing_User} portal
+${PORTAL_HEALTH_CHECK_PATH} /ECOMPPORTAL/portalApi/healthCheck
+#${Application} 'Virtual Infrastructure Deployment'
+#${Application_tab} 'select-app-Virtual-Infrastructure-Deployment'
+#${Application_dropdown} 'div-app-name-dropdown-Virtual-Infrastructure-Deployment'
+#${Application_dropdown_select} 'div-app-name-Virtual-Infrastructure-Deployment'
+${APPC_LOGIN_URL} http://104.130.74.99:8282/apidoc/explorer/index.html
+${PORTAL_ASSETS_DIRECTORY} C:\\Users\\kk707x\\Downloads
+
+
+
+
+
+*** Keywords ***
+
+Run Portal Health Check
+ [Documentation] Runs Portal Health check
+ ${resp}= Run Portal Get Request ${PORTAL_HEALTH_CHECK_PATH}
+ Should Be Equal As Strings ${resp.status_code} 200
+ Should Be Equal As Strings ${resp.json()['statusCode']} 200
+Run Portal Get Request
+ [Documentation] Runs Portal Get request
+ [Arguments] ${data_path}
+ ${session}= Create Session portal ${GLOBAL_PORTAL_URL}
+ ${uuid}= Generate UUID
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
+ ${resp}= Get Request portal ${data_path} headers=${headers}
+ Log Received response from portal ${resp.text}
+ [Return] ${resp}
+
+
+Portal admin Login To Portal GUI
+ [Documentation] Logs into Portal GUI
+ # Setup Browser Now being managed by test case
+ ##Setup Browser
+ Go To ${PORTAL_LOGIN_URL}
+ Maximize Browser Window
+ Set Selenium Speed ${GLOBAL_SELENIUM_DELAY}
+ Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
+ Log Logging in to ${GLOBAL_PORTAL_SERVER}${PORTAL_ENV}
+ # Handle Proxy Warning
+ Title Should Be Login
+ Input Text xpath=//input[@ng-model='loginId'] ${GLOBAL_PORTAL_ADMIN_USER}
+ Input Password xpath=//input[@ng-model='password'] ${GLOBAL_PORTAL_ADMIN_PWD}
+ Click Link xpath=//a[@id='loginBtn']
+ Wait Until Page Contains Element xpath=//img[@alt='Onap Logo'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Log Logged in to ${GLOBAL_PORTAL_SERVER}${PORTAL_ENV}
+
+Portal admin Go To Portal HOME
+ [Documentation] Naviage to Portal Home
+ Go To ${PORTAL_HOME_URL}
+ Wait Until Page Contains Element xpath=//div[@class='applicationWindow'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+
+Portal admin User Notifications
+ [Documentation] Naviage to User notification tab
+ Click Link xpath=//a[@id='parent-item-User-Notifications']
+ Wait Until Element Is Visible xpath=//h1[@class='heading-page'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Click Button xpath=//button[@id='button-openAddNewApp']
+ Click Button xpath=(//button[@id='undefined'])[1]
+ #Click Button xpath=//input[@id='datepicker-start']
+
+Portal admin Add Application Admin New User
+ [Documentation] Naviage to Admins tab
+ Click Link xpath=//a[@title='Admins']
+ Wait Until Element Is Visible xpath=//h1[contains(.,'Admins')] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Page Should Contain Admins
+ Click Button xpath=//button[@ng-click='admins.openAddNewAdminModal()']
+ Click Button xpath=//button[@id='Create-New-User-button']
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.firstName'] ${First_Name}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.lastName'] ${Last_Name}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.emailAddress'] ${Email_Address}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.loginId'] ${LoginID}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwd'] ${Loginpwd}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwdCheck'] ${LoginPwdCheck}
+ Click Button xpath=//button[@ng-click='searchUsers.addNewUserFun()']
+ Click Button xpath=//button[@id='search-users-button-next']
+ Click Button xpath=//input[@value='Select application']
+ Scroll Element Into View xpath=(//input[@value='Select application']/following::*[contains(text(),'Virtual Infrastructure Deployment')])[1]
+ #Scroll Element Into View xpath=(//input[@value='Select application']/following::*[contains(text(),'Virtual Infrastructure Deployment')])[1]
+ Click Element xpath=(//li[contains(.,'Virtual Infrastructure Deployment')])[2]
+ Click Button xpath=//button[@id='div-updateAdminAppsRoles']
+ Click Element xpath=//button[@id='admin-div-ok-button']
+ Click Element xpath=//button[@id='div-confirm-ok-button']
+ Click Link xpath=//a[@aria-label='Admins']
+ Click Button xpath=//input[@id='dropdown1']
+ Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')]
+ Input Text xpath=//input[@id='input-table-search'] ${First_Name}
+ Element Text Should Be xpath=(//span[contains(.,'Test')] )[1] ${First_Name}
+
+
+
+
+Portal admin Add Application Admin Exiting User
+ [Documentation] Naviage to Admins tab
+ Wait Until Element Is Visible xpath=//a[@title='Admins'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Click Link xpath=//a[@title='Admins']
+ Wait Until Element Is Visible xpath=//h1[contains(.,'Admins')] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Page Should Contain Admins
+ Click Button xpath=//button[@ng-click='admins.openAddNewAdminModal()']
+ Input Text xpath=//input[@id='input-user-search'] ${Existing_User}
+ Click Button xpath=//button[@id='button-search-users']
+ Click Element xpath=//span[@id='result-uuid-0']
+ Click Button xpath=//button[@id='search-users-button-next']
+ Click Button xpath=//input[@value='Select application']
+ Scroll Element Into View xpath=(//input[@value='Select application']/following::*[contains(text(),'Virtual Infrastructure Deployment' )])[1]
+
+ Click Element xpath=(//li[contains(.,'Virtual Infrastructure Deployment' )])[2]
+ #Select From List xpath=(//input[@value='Select application']/following::*[contains(text(),'Virtual Infrastructure Deployment')])[1] Virtual Infrastructure Deployment
+ Click Button xpath=//button[@id='div-updateAdminAppsRoles']
+ Click Element xpath=//button[@id='admin-div-ok-button']
+ Click Element xpath=//button[@id='div-confirm-ok-button']
+ Get Selenium Implicit Wait
+ Click Link xpath=//a[@aria-label='Admins']
+ Click Element xpath=//input[@id='dropdown1']
+ Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment' )]
+ Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
+ Element Text Should Be xpath=(//span[contains(.,'portal')])[1] ${Existing_User}
+
+
+Portal admin Delete Application Admin Existing User
+ [Documentation] Naviage to Admins tab
+ Click Element xpath=(//span[contains(.,'portal')] )[1]
+ Click Element xpath=//*[@id='select-app-Virtual-Infrastructure-Deployment']/following::i[@id='i-delete-application']
+ Click Element xpath=//button[@id='div-confirm-ok-button']
+ Click Button xpath=//button[@id='div-updateAdminAppsRoles']
+ Click Element xpath=//button[@id='admin-div-ok-button']
+ #Is Element Visible xpath=(//span[contains(.,'Portal')] )[2]
+ #Is Element Visible xpath=(//*[contains(.,'Portal')] )[2]
+ Element Should Not Contain xpath=//*[@table-data='admins.adminsTableData'] portal
+
+
+Portal admin Add Application admin User New user
+ [Documentation] Naviage to Users tab
+ Click Link xpath=//a[@title='Users']
+ Page Should Contain Users
+ Click Button xpath=//button[@ng-click='users.openAddNewUserModal()']
+ Click Button xpath=//button[@id='Create-New-User-button']
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.firstName'] ${App_First_Name}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.lastName'] ${App_Last_Name}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.emailAddress'] ${App_Email_Address}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.loginId'] ${App_LoginID}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwd'] ${App_Loginpwd}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwdCheck'] ${App_LoginPwdCheck}
+ Click Button xpath=//button[@ng-click='searchUsers.addNewUserFun()']
+ Click Button xpath=//button[@id='next-button']
+ #Scroll Element Into View xpath=//div[@id='div-app-name-dropdown-Virtual-Infrastructure-Deployment']
+ Click Element xpath=//*[@id='div-app-name-dropdown-Virtual-Infrastructure-Deployment']
+ Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::input[@id='Standard-User-checkbox']
+ Set Selenium Implicit Wait 3000
+ Click Button xpath=//button[@id='new-user-save-button']
+ Set Selenium Implicit Wait 3000
+ Go To ${PORTAL_HOME_PAGE}
+ Click Link xpath=//a[@title='Users']
+ Click Element xpath=//input[@id='dropdown1']
+ Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')]
+ Input Text xpath=//input[@id='input-table-search'] ${App_First_Name}
+ Element Text Should Be xpath=(//span[contains(.,'appdemo')] )[1] ${App_First_Name}
+
+
+Portal admin Add Standard User New user
+ [Documentation] Naviage to Users tab
+ Click Link xpath=//a[@title='Users']
+ Page Should Contain Users
+ Click Button xpath=//button[@ng-click='users.openAddNewUserModal()']
+ Click Button xpath=//button[@id='Create-New-User-button']
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.firstName'] ${Sta_First_Name}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.lastName'] ${Sta_Last_Name}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.emailAddress'] ${Sta_Email_Address}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.loginId'] ${Sta_LoginID}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwd'] ${Sta_Loginpwd}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwdCheck'] ${Sta_LoginPwdCheck}
+ Click Button xpath=//button[@ng-click='searchUsers.addNewUserFun()']
+ Click Button xpath=//button[@id='next-button']
+ #Scroll Element Into View xpath=//div[@id='div-app-name-dropdown-Virtual-Infrastructure-Deployment']
+ Click Element xpath=//*[@id='div-app-name-dropdown-Virtual-Infrastructure-Deployment']
+ Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::input[@id='Standard-User-checkbox']
+ Set Selenium Implicit Wait 3000
+ Click Button xpath=//button[@id='new-user-save-button']
+ Set Selenium Implicit Wait 3000
+ Go To ${PORTAL_HOME_PAGE}
+ Click Link xpath=//a[@title='Users']
+ Click Element xpath=//input[@id='dropdown1']
+ Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')]
+ Input Text xpath=//input[@id='input-table-search'] ${Sta_First_Name}
+ Element Text Should Be xpath=(//span[contains(.,'appdemo')] )[1] ${Sta_First_Name}
+
+
+
+Portal admin Add Application Admin Exiting User -APPDEMO
+ [Documentation] Naviage to Admins tab
+ Wait Until Element Is Visible xpath=//a[@title='Admins'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Click Link xpath=//a[@title='Admins']
+ Wait Until Element Is Visible xpath=//h1[contains(.,'Admins')] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Page Should Contain Admins
+ Click Button xpath=//button[@ng-click='admins.openAddNewAdminModal()']
+ Input Text xpath=//input[@id='input-user-search'] ${App_First_Name}
+ Click Button xpath=//button[@id='button-search-users']
+ Click Element xpath=//span[@id='result-uuid-0']
+ Click Button xpath=//button[@id='search-users-button-next']
+ Click Button xpath=//input[@value='Select application']
+ Scroll Element Into View xpath=(//input[@value='Select application']/following::*[contains(text(),'Virtual Infrastructure Deployment' )])[1]
+
+ Click Element xpath=(//li[contains(.,'Virtual Infrastructure Deployment' )])[2]
+ #Select From List xpath=(//input[@value='Select application']/following::*[contains(text(),'Virtual Infrastructure Deployment')])[1] Virtual Infrastructure Deployment
+ Click Button xpath=//button[@id='div-updateAdminAppsRoles']
+ Click Element xpath=//button[@id='admin-div-ok-button']
+ Click Element xpath=//button[@id='div-confirm-ok-button']
+ Get Selenium Implicit Wait
+ Click Link xpath=//a[@aria-label='Admins']
+ Click Element xpath=//input[@id='dropdown1']
+ Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment' )]
+ Input Text xpath=//input[@id='input-table-search'] ${App_First_Name}
+ Element Text Should Be xpath=(//span[contains(.,'appdemo')])[1] ${App_First_Name}
+
+
+
+Portal admin Add Standard User Existing user
+ [Documentation] Naviage to Users tab
+ Click Link xpath=//a[@title='Users']
+ Page Should Contain Users
+ Click Button xpath=//button[@ng-click='users.openAddNewUserModal()']
+ Input Text xpath=//input[@id='input-user-search'] ${Existing_User}
+ Click Button xpath=//button[@id='button-search-users']
+ Click Element xpath=//span[@id='result-uuid-0']
+ Click Button xpath=//button[@id='next-button']
+ Click Element xpath=//*[@id='div-app-name-dropdown-Virtual-Infrastructure-Deployment']
+ Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::input[@id='Standard-User-checkbox']
+ #Click Element xpath=//div[@id='div-app-name-dropdown-xDemo-App']
+ #Click Element xpath=//div[@id='div-app-name-xDemo-App']/following::input[@id='Standard-User-checkbox']
+
+ Set Selenium Implicit Wait 3000
+ Click Button xpath=//button[@id='new-user-save-button']
+ Set Selenium Implicit Wait 3000
+ #Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
+ #Select From List xpath=//input[@value='Select application'] Virtual Infrastructure Deployment
+ #Click Link xpath=//a[@title='Users']
+ #Page Should Contain Users
+ #Focus xpath=//input[@name='dropdown1']
+
+ Go To ${PORTAL_HOME_PAGE}
+ Click Link xpath=//a[@title='Users']
+ Click Element xpath=//input[@id='dropdown1']
+ Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')]
+ #Click Element xpath=//li[contains(.,'XDemo App')]
+ Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
+ Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] Standard User
+
+
+Portal admin Edit Standard User Existing user
+ [Documentation] Naviage to Users tab
+ Click Element xpath=(.//*[@id='rowheader_t1_0'])[2]
+ Click Element xpath=//*[@id='div-app-name-dropdown-Virtual-Infrastructure-Deployment']
+ Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::input[@id='Standard-User-checkbox']
+ Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::input[@id='System-Administrator-checkbox']
+ Set Selenium Implicit Wait 3000
+ Click Button xpath=//button[@id='new-user-save-button']
+ Set Selenium Implicit Wait 3000
+ Page Should Contain Users
+ #Click Button xpath=//input[@id='dropdown1']
+ #Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')]
+ Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
+ Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] System Administrator
+
+
+ Portal admin Delete Standard User Existing user
+ [Documentation] Naviage to Users tab
+ Click Element xpath=(.//*[@id='rowheader_t1_0'])[2]
+ Scroll Element Into View xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::*[@id='app-item-delete'][1]
+ Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::*[@id='app-item-delete'][1]
+ Click Element xpath=//button[@id='div-confirm-ok-button']
+ Click Button xpath=//button[@id='new-user-save-button']
+ #Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
+ #Is Element Visible xpath=(//*[contains(.,'Portal')] )[2]
+ Element Should Not Contain xpath=//*[@table-data='users.accountUsers'] portal
+
+
+
+
+Functional Top Menu Get Access
+ [Documentation] Naviage to Support tab
+ Click Link xpath=//a[contains(.,'Support')]
+ Mouse Over xpath=//*[contains(text(),'Get Access')]
+ Click Link xpath=//a[contains(.,'Get Access')]
+ Element Text Should Be xpath=//h1[contains(.,'Get Access')] Get Access
+
+
+Functional Top Menu Contact Us
+ [Documentation] Naviage to Support tab
+ Click Link xpath=//a[contains(.,'Support')]
+ Mouse Over xpath=//*[contains(text(),'Contact Us')]
+ Click Link xpath=//a[contains(.,'Contact Us')]
+ Element Text Should Be xpath=//h1[contains(.,'Contact Us')] Contact Us
+ Click Image xpath=//img[@alt='Onap Logo']
+
+
+Portal admin Edit Functional menu
+ [Documentation] Naviage to Edit Functional menu tab
+ Click Link xpath=//a[@title='Edit Functional Menu']
+ Click Link xpath=.//*[@id='Manage']/div/a
+ Click Link xpath=.//*[@id='Design']/div/a
+ Click Link xpath=.//*[@id='Product_Design']/div/a
+ Open Context Menu xpath=//*[@id='Product_Design']/div/span
+ Click Link xpath=//a[@href='#add']
+ Input Text xpath=//input[@id='input-title'] ONAP Test
+ #Input Text xpath=//input[@id='input-url'] http://google.com
+ Click Element xpath=//input[@id='select-app']
+ Scroll Element Into View xpath=//li[contains(.,'Virtual Infrastructure Deployment')]
+ Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')]
+ Input Text xpath=//input[@id='input-url'] http://google.com
+ Click Button xpath=//button[@id='button-save-continue']
+ #Click Button xpath=//div[@title='Select Roles']
+ Click Element xpath=//*[@id='app-select-Select Roles']
+ Click Element xpath=//input[@id='Standard-User-checkbox']
+ Click Element xpath=//button[@id='button-save-add']
+ Click Image xpath=//img[@alt='Onap Logo']
+ Set Selenium Implicit Wait 3000
+ Click Link xpath=//a[contains(.,'Manage')]
+ Mouse Over xpath=//*[contains(text(),'Design')]
+ Set Selenium Implicit Wait 3000
+ Element Text Should Be xpath=//a[contains(.,'ONAP Test')] ONAP Test
+ Set Selenium Implicit Wait 3000
+ Click Link xpath=//a[@title='Edit Functional Menu']
+ Click Link xpath=.//*[@id='Manage']/div/a
+ Click Link xpath=.//*[@id='Design']/div/a
+ Click Link xpath=.//*[@id='Product_Design']/div/a
+ Open Context Menu xpath=//*[@id='ONAP_Test']
+ Click Link xpath=//a[@href='#delete']
+ Set Selenium Implicit Wait 3000
+ Click Element xpath=//button[@id='div-confirm-ok-button']
+ Click Image xpath=//img[@alt='Onap Logo']
+ Set Selenium Implicit Wait 3000
+ Click Link xpath=//a[contains(.,'Manage')]
+ Mouse Over xpath=//*[contains(text(),'Design')]
+ Set Selenium Implicit Wait 3000
+ Element Should Not Contain xpath=(.//*[contains(.,'Design')]/following::ul[1])[1] ONAP Test
+
+
+
+
+
+
+
+
+Portal admin Microservice Onboarding
+ [Documentation] Naviage to Edit Functional menu tab
+ Click Link xpath=//a[@title='Microservice Onboarding']
+ Click Button xpath=//button[@id='microservice-onboarding-button-add']
+ Input Text xpath=//input[@name='name'] Test Microservice
+ Input Text xpath=//*[@name='desc'] Test
+ Click Element xpath=//input[@id='microservice-details-input-app']
+ Scroll Element Into View xpath=//li[contains(.,'Virtual Infrastructure Deployment')]
+ Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')]
+ Click Element xpath=//*[@name='desc']
+ Input Text xpath=//input[@name='url'] ${PORTAL_MICRO_ENDPOINT}
+ Click Element xpath=//input[@id='microservice-details-input-security-type']
+ Scroll Element Into View xpath=//li[contains(.,'Basic Authentication')]
+ Click Element xpath=//li[contains(.,'Basic Authentication')]
+ Input Text xpath=//input[@name='username'] ${GLOBAL_PORTAL_ADMIN_USER}
+ Input Text xpath=//input[@name='password'] ${GLOBAL_PORTAL_ADMIN_PWD}
+ Click Button xpath=//button[@id='microservice-details-save-button']
+ #Table Column Should Contain xpath=//*[@table-data='serviceList'] 0 Test Microservice
+ Element Text Should Be xpath=//*[@table-data='serviceList'] Test Microservice
+
+
+
+Portal Admin Create Widget for All users
+ [Documentation] Naviage to Create Widget menu tab
+ ${WidgetAttachment}= Catenate ${PORTAL_ASSETS_DIRECTORY}\\widget_news.zip
+ Click Link xpath=//a[@title='Widget Onboarding']
+ Click Button xpath=//button[@id='widget-onboarding-button-add']
+ Input Text xpath=//*[@name='name'] ONAP-VID
+ Input Text xpath=//*[@name='desc'] ONAP VID
+ Click Element xpath=//*[@id='widgets-details-input-endpoint-url']
+ Scroll Element Into View xpath=//li[contains(.,'Test Microservice')]
+ Click Element xpath=//li[contains(.,'Test Microservice')]
+ Click Element xpath=//*[contains(text(),'Allow all user access')]/preceding::input[@ng-model='widgetOnboardingDetails.widget.allUser'][1]
+ Choose File xpath=//input[@id='widget-onboarding-details-upload-file'] ${WidgetAttachment}
+ Click Button xpath=//button[@id='widgets-details-save-button']
+ Wait Until Page Contains ONAP-VID ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Page Should Contain ONAP-VID
+ Set Selenium Implicit Wait 3000
+ GO TO ${PORTAL_HOME_PAGE}
+
+
+Portal Admin Delete Widget for All users
+ [Documentation] Naviage to delete Widget menu tab
+ #Wait Until Page Contains ONAP-VID ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ #Page Should Contain ONAP-VID
+ #Click Image xpath=//img[@alt='Onap Logo']
+ Click Link xpath=//a[@title='Widget Onboarding']
+ Click Element xpath=//input[@id='dropdown1']
+ Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')]
+ #Wait Until Page Contains xpath=(.//*[contains(text(),'ONAP-VID')]/followi
+ #Wait Until Page Contains xpath=(.//*[contains(text(),'ONAP-VID')]/following::*[@ng-click='widgetOnboarding.deleteWidget(rowData)'])[1] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Click Element xpath=(.//*[contains(text(),'ONAP-VID')]/following::*[@ng-click='widgetOnboarding.deleteWidget(rowData)'])[1]
+ Click Element xpath=//button[@id='div-confirm-ok-button']
+ Set Selenium Implicit Wait 3000
+ Element Should Not Contain xpath=//*[@table-data='portalAdmin.portalAdminsTableData'] ONAP-VID
+ #Is Element Visible xpath=//*[@table-data='portalAdmin.portalAdminsTableData']
+ #Table Column Should Contain .//*[@table-data='portalAdmin.portalAdminsTableData'] 0 ONAP-VID
+ #Set Selenium Implicit Wait 3000
+
+
+Portal Admin Create Widget for Application Roles
+ [Documentation] Naviage to Create Widget menu tab
+ ${WidgetAttachment}= Catenate ${PORTAL_ASSETS_DIRECTORY}\\widget_news.zip
+ Click Link xpath=//a[@title='Widget Onboarding']
+ Click Button xpath=//button[@id='widget-onboarding-button-add']
+ Input Text xpath=//*[@name='name'] ONAP-VID
+ Input Text xpath=//*[@name='desc'] ONAP VID
+ Click Element xpath=//*[@id='widgets-details-input-endpoint-url']
+ Scroll Element Into View xpath=//li[contains(.,'Test Microservice')]
+ Click Element xpath=//li[contains(.,'Test Microservice')]
+ Click element xpath=//*[@id="app-select-Select Applications"]
+ click element xpath=//*[@id="Virtual-Infrastructure-Deployment-checkbox"]
+ Click element xpath=//*[@name='desc']
+ click element xpath=//*[@id="app-select-Select Roles"]
+ click element xpath=//*[@id="Standard-User-checkbox"]
+ Click element xpath=//*[@name='desc']
+ Scroll Element Into View xpath=//input[@id='widget-onboarding-details-upload-file']
+ Choose File xpath=//input[@id='widget-onboarding-details-upload-file'] ${WidgetAttachment}
+ Click Button xpath=//button[@id='widgets-details-save-button']
+ Click Image xpath=//img[@alt='Onap Logo']
+ Set Selenium Implicit Wait 3000
+ #Wait Until Page Contains ONAP-VID ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Click Link xpath=//a[@title='Widget Onboarding']
+ Click Element xpath=//input[@id='dropdown1']
+ Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')]
+ Page Should Contain ONAP-VID
+ Set Selenium Implicit Wait 3000
+ GO TO ${PORTAL_HOME_PAGE}
+
+
+
+
+ Portal Admin Delete Widget for Application Roles
+ [Documentation] Naviage to delete Widget menu tab
+ #Wait Until Page Contains ONAP-VID ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ #Page Should Contain ONAP-VID
+ #Click Image xpath=//img[@alt='Onap Logo']
+ Click Link xpath=//a[@title='Widget Onboarding']
+ Click Element xpath=//input[@id='dropdown1']
+ Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')]
+ #Wait Until Page Contains xpath=(.//*[contains(text(),'ONAP-VID')]/following::*[@ng-click='widgetOnboarding.deleteWidget(rowData)'])[1] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Click Element xpath=(.//*[contains(text(),'ONAP-VID')]/following::*[@ng-click='widgetOnboarding.deleteWidget(rowData)'])[1]
+ Click Element xpath=//button[@id='div-confirm-ok-button']
+ Set Selenium Implicit Wait 3000
+ Element Should Not Contain xpath=//*[@table-data='portalAdmin.portalAdminsTableData'] ONAP-VID
+ #Is Element Visible xpath=//*[@table-data='portalAdmin.portalAdminsTableData']
+ #Table Column Should Contain .//*[@table-data='portalAdmin.portalAdminsTableData'] 0 ONAP-VID
+ #Set Selenium Implicit Wait 3000
+
+
+
+Portal Admin Edit Widget
+ [Documentation] Naviage to Home tab
+ #Mouse Over xpath=(//h3[contains(text(),'News')]/following::span[1])[1]
+ Click Element xpath=(//h3[contains(text(),'News')]/following::span[1])[1]
+ Set Browser Implicit Wait 8000
+ #Wait Until Element Is Visible xpath=(//h3[contains(text(),'News')]/following::span[1]/following::a[contains(text(),'Edit')])[1] 60
+ Mouse Over xpath=(//h3[contains(text(),'News')]/following::span[1]/following::a[contains(text(),'Edit')])[1]
+ Click Link xpath=(//h3[contains(text(),'News')]/following::span[1]/following::a[contains(text(),'Edit')])[1]
+ Input Text xpath=//input[@name='title'] ONAP_VID
+ Input Text xpath=//input[@name='url'] http://about.att.com/news/international.html
+ Input Text xpath=//input[@id='widget-input-add-order'] 5
+ Click Link xpath=//a[contains(.,'Add New')]
+ Click Element xpath=//div[@id='close-button']
+ Element Should Contain xpath=//*[@table-data='ignoredTableData'] ONAP_VID
+ Click Element xpath=.//div[contains(text(),'ONAP_VID')]/following::*[contains(text(),'5')][1]/following::div[@ng-click='remove($index);'][1]
+ Click Element xpath=//div[@id='confirmation-button-next']
+ Element Should Not Contain xpath=//*[@table-data='ignoredTableData'] ONAP_VID
+ Click Link xpath=//a[@id='close-button']
+
+
+
+
+Portal Admin Broadcast Notifications
+ [Documentation] Portal Test Admin Broadcast Notifications
+ ${CurrentDay}= Get Current Date result_format=%m/%d/%Y
+ ${NextDay}= Get Current Date increment=24:00:00 result_format=%m/%d/%Y
+ ${CurrentDate}= Get Current Date result_format=%m%d%y%H%M
+ ${AdminBroadCastMsg}= catenate ONAP VID Broadcast Automation${CurrentDate}
+ Click Image xpath=//img[@alt='Onap Logo']
+ Set Selenium Implicit Wait 3000
+ Click Link xpath=//*[@id="parent-item-User-Notifications"]
+ Wait until Element is visible xpath=//*[@id="button-openAddNewApp"] timeout=10
+ Click button xpath=//*[@id="button-openAddNewApp"]
+ Input Text xpath=//input[@id='datepicker-start'] ${CurrentDay}
+ Input Text xpath=//input[@id='datepicker-end'] ${NextDay}
+ Input Text xpath=//*[@id="add-notification-input-title"] ONAP VID Broadcast Automation
+ Input Text xpath=//*[@id="user-notif-input-message"] ${AdminBroadCastMsg}
+ click element xpath=//*[@id="button-notification-save"]
+ Wait until Element is visible xpath=//*[@id="button-openAddNewApp"] timeout=10
+ click element xpath=//*[@id="megamenu-notification-button"]
+ click element xpath=//*[@id="notification-history-link"]
+ Wait until Element is visible xpath=//*[@id="notification-history-table"] timeout=10
+ Table Column Should Contain xpath=//*[@id="notification-history-table"] 2 ${AdminBroadCastMsg}
+ log ${AdminBroadCastMsg}
+ [Return] ${AdminBroadCastMsg}
+
+Portal Admin Category Notifications
+ [Documentation] Portal Admin Broadcast Notifications
+ ${CurrentDay}= Get Current Date result_format=%m/%d/%Y
+ ${NextDay}= Get Current Date increment=24:00:00 result_format=%m/%d/%Y
+ ${CurrentDate}= Get Current Date result_format=%m%d%y%H%M
+ ${AdminCategoryMsg}= catenate ONAP VID Category Automation${CurrentDate}
+ Click Link xpath=//a[@id='parent-item-Home']
+ Click Link xpath=//*[@id="parent-item-User-Notifications"]
+ Wait until Element is visible xpath=//*[@id="button-openAddNewApp"] timeout=10
+ Click button xpath=//*[@id="button-openAddNewApp"]
+ #Select Radio Button NO radio-button-no
+ Click Element //*[contains(text(),'Broadcast to All Categories')]/following::*[contains(text(),'No')][1]
+ #Select Radio Button //label[@class='radio'] radio-button-approles
+ Click Element xpath=//*[contains(text(),'Categories')]/following::*[contains(text(),'Application Roles')][1]
+ Click Element xpath=//*[contains(text(),'Virtual Infrastructure Deployment')]/preceding::input[@ng-model='member.isSelected'][1]
+ Input Text xpath=//input[@id='datepicker-start'] ${CurrentDay}
+ Input Text xpath=//input[@id='datepicker-end'] ${NextDay}
+ Input Text xpath=//*[@id="add-notification-input-title"] ONAP VID Category Automation
+ Input Text xpath=//*[@id='user-notif-input-message'] ${AdminCategoryMsg}
+ click element xpath=//*[@id="button-notification-save"]
+ Wait until Element is visible xpath=//*[@id="button-openAddNewApp"] timeout=10
+ click element xpath=//*[@id="megamenu-notification-button"]
+ click element xpath=//*[@id="notification-history-link"]
+ Wait until Element is visible xpath=//*[@id="notification-history-table"] timeout=10
+ Table Column Should Contain xpath=//*[@id="notification-history-table"] 2 ${AdminCategoryMsg}
+ log ${AdminCategoryMsg}
+ [Return] ${AdminCategoryMsg}
+
+
+ Portal admin Logout from Portal GUI
+ [Documentation] Logout from Portal GUI
+ Click Element xpath=//div[@id='header-user-icon']
+ Click Button xpath=//button[contains(.,'Log out')]
+ Title Should Be Login
+
+
+
+Application admin Login To Portal GUI
+ [Documentation] Logs into Portal GUI
+ # Setup Browser Now being managed by test case
+ ##Setup Browser
+ Go To ${PORTAL_LOGIN_URL}
+ Maximize Browser Window
+ Set Selenium Speed ${GLOBAL_SELENIUM_DELAY}
+ Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
+ Log Logging in to ${GLOBAL_PORTAL_SERVER}${PORTAL_ENV}
+ # Handle Proxy Warning
+ Title Should Be Login
+ Input Text xpath=//input[@ng-model='loginId'] ${GLOBAL_APP_ADMIN_USER}
+ Input Password xpath=//input[@ng-model='password'] ${GLOBAL_APP_ADMIN_PWD}
+ Click Link xpath=//a[@id='loginBtn']
+ Wait Until Page Contains Element xpath=//img[@alt='Onap Logo'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Log Logged in to ${GLOBAL_PORTAL_SERVER}${PORTAL_ENV}
+
+Application Admin Navigation Application Link Tab
+ [Documentation] Logs into Portal GUI as application admin
+ Click Link xpath=//a[@id='parent-item-Home']
+ Click Element xpath=.//h3[contains(text(),'Virtual Infras...')]/following::div[1]
+ Page Should Contain Welcome to VID
+ Click Element xpath=//i[@class='ion-close-round']
+ Click Element xpath=(.//span[@id='tab-Home'])[1]
+
+
+Application Admin Navigation Functional Menu
+ [Documentation] Logs into Portal GUI as application admin
+ Click Link xpath=//a[contains(.,'Manage')]
+ Mouse Over xpath=//*[contains(text(),'Technology Insertion')]
+ Click Link xpath= //*[contains(text(),'Infrastructure VNF Provisioning')]
+ Page Should Contain Welcome to VID
+ Click Element xpath=//i[@class='ion-close-round']
+ Click Element xpath=(.//span[@id='tab-Home'])[1]
+
+
+Application admin Add Standard User Existing user
+ [Documentation] Naviage to Users tab
+ Click Link xpath=//a[@title='Users']
+ Page Should Contain Users
+ Click Button xpath=//button[@ng-click='users.openAddNewUserModal()']
+ Input Text xpath=//input[@id='input-user-search'] ${Existing_User}
+ Click Button xpath=//button[@id='button-search-users']
+ Click Element xpath=//span[@id='result-uuid-0']
+ Click Button xpath=//button[@id='next-button']
+ Click Element xpath=//*[@id='div-app-name-dropdown-Virtual-Infrastructure-Deployment']
+ Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::input[@id='Standard-User-checkbox']
+ Set Selenium Implicit Wait 3000
+ Click Button xpath=//button[@id='new-user-save-button']
+ Set Selenium Implicit Wait 3000
+ #Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
+ #Select From List xpath=//input[@value='Select application'] Virtual Infrastructure Deployment
+ #Click Link xpath=//a[@title='Users']
+ #Page Should Contain Users
+ Go To ${PORTAL_HOME_PAGE}
+ Set Selenium Implicit Wait 3000
+ Click Link xpath=//a[@title='Users']
+ Click Element xpath=//input[@id='dropdown1']
+ Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')]
+ Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
+ Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] Standard User
+
+
+Application admin Edit Standard User Existing user
+ [Documentation] Naviage to Users tab
+ Click Element xpath=(.//*[@id='rowheader_t1_0'])[2]
+ Click Element xpath=//*[@id='div-app-name-dropdown-Virtual-Infrastructure-Deployment']
+ Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::input[@id='Standard-User-checkbox']
+ Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::input[@id='System-Administrator-checkbox']
+ Set Selenium Implicit Wait 3000
+ Click Button xpath=//button[@id='new-user-save-button']
+ Set Selenium Implicit Wait 3000
+ Page Should Contain Users
+ #Click Button xpath=//input[@id='dropdown1']
+ #Click Element xpath=//li[contains(.,'Virtual Infrastructure Deployment')]
+ Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
+ Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] System Administrator
+
+
+Application admin Delete Standard User Existing user
+ [Documentation] Naviage to Users tab
+ Click Element xpath=(.//*[@id='rowheader_t1_0'])[2]
+ Scroll Element Into View xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::*[@id='app-item-delete'][1]
+ Click Element xpath=//*[@id='div-app-name-Virtual-Infrastructure-Deployment']/following::*[@id='app-item-delete'][1]
+ Click Element xpath=//button[@id='div-confirm-ok-button']
+ Click Button xpath=//button[@id='new-user-save-button']
+ #Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
+ #Is Element Visible xpath=(//*[contains(.,'Portal')] )[2]
+ Element Should Not Contain xpath=//*[@table-data='users.accountUsers'] Portal
+
+
+
+Application admin Logout from Portal GUI
+ [Documentation] Logout from Portal GUI
+ Click Element xpath=//div[@id='header-user-icon']
+ Click Button xpath=//button[contains(.,'Log out')]
+ #Confirm Action
+ Title Should Be Login
+
+
+Standared user Login To Portal GUI
+ [Documentation] Logs into Portal GUI
+ # Setup Browser Now being managed by test case
+ ##Setup Browser
+ Go To ${PORTAL_LOGIN_URL}
+ Maximize Browser Window
+ Set Selenium Speed ${GLOBAL_SELENIUM_DELAY}
+ Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
+ Log Logging in to ${GLOBAL_PORTAL_SERVER}${PORTAL_ENV}
+ # Handle Proxy Warning
+ Title Should Be Login
+ Input Text xpath=//input[@ng-model='loginId'] ${GLOBAL_STA_USER_USER}
+ Input Password xpath=//input[@ng-model='password'] ${GLOBAL_STA_USER_PWD}
+ Click Link xpath=//a[@id='loginBtn']
+ Wait Until Page Contains Element xpath=//img[@alt='Onap Logo'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Log Logged in to ${GLOBAL_PORTAL_SERVER}${PORTAL_ENV}
+
+
+Standared user Navigation Application Link Tab
+ [Documentation] Logs into Portal GUI as application admin
+ #Portal admin Go To Portal HOME
+ Click Element xpath=.//h3[contains(text(),'Virtual Infras...')]/following::div[1]
+ Page Should Contain Welcome to VID
+ Click Element xpath=(.//span[@id='tab-Home'])[1]
+
+
+Standared user Navigation Functional Menu
+ [Documentation] Logs into Portal GUI as application admin
+ Click Link xpath=//a[contains(.,'Manage')]
+ Mouse Over xpath=//*[contains(text(),'Technology Insertion')]
+ Click Link xpath= //*[contains(text(),'Infrastructure VNF Provisioning')]
+ Page Should Contain Welcome to VID
+ Click Element xpath=(.//span[@id='tab-Home'])[1]
+
+
+
+Standared user Broadcast Notifications
+ [Documentation] Logs into Portal GUI as application admin
+ [Arguments] ${AdminBroadCastMsg}
+ Click element xpath=//*[@id='megamenu-notification-button']
+ Click element xpath=//*[@id='notification-history-link']
+ Wait until Element is visible xpath=//*[@id='app-title'] timeout=10
+ Table Column Should Contain xpath=//*[@id='notification-history-table'] 2 ${AdminBroadCastMsg}
+ log ${AdminBroadCastMsg}
+
+
+Standared user Category Notifications
+ [Documentation] Logs into Portal GUI as application admin
+ [Arguments] ${AdminCategoryMsg}
+ #click element xpath=//*[@id='megamenu-notification-button']
+ #click element xpath=//*[@id="notification-history-link"]
+ Wait until Element is visible xpath=//*[@id='app-title'] timeout=10
+ Table Column Should Contain xpath=//*[@id='notification-history-table'] 2 ${AdminCategoryMsg}
+ log ${AdminCategoryMsg}
+
+
+Standared user Logout from Portal GUI
+ [Documentation] Logout from Portal GUI
+ Click Element xpath=//div[@id='header-user-icon']
+ Click Button xpath=//button[contains(.,'Log out')]
+ #Confirm Action
+ Title Should Be Login
+
+
+
+
+Tear Down
+ [Documentation] Close all browsers
+ Close All Browsers
+
+
+
+
+
+
+
diff --git a/tests/portal/testsuites/test1.robot b/tests/portal/testsuites/test1.robot
new file mode 100644
index 00000000..d0fef06a
--- /dev/null
+++ b/tests/portal/testsuites/test1.robot
@@ -0,0 +1,1185 @@
+*** Settings ***
+Documentation This is RobotFrame work script
+Library ExtendedSelenium2Library
+Library OperatingSystem
+Library eteutils/RequestsClientCert.py
+Library RequestsLibrary
+Library eteutils/UUID.py
+Library DateTime
+Library Collections
+Library eteutils/OSUtils.py
+Library eteutils/StringTemplater.py
+Library String
+Library XvfbRobot
+Resource json_templater.robot
+
+*** Variables ***
+${PORTAL_URL} http://portal.api.simpledemo.onap.org:8989
+${PORTAL_ENV} /ONAPPORTAL
+${PORTAL_LOGIN_URL} ${PORTAL_URL}${PORTAL_ENV}/login.htm
+${PORTAL_HOME_PAGE} ${PORTAL_URL}${PORTAL_ENV}/applicationsHome
+${PORTAL_MICRO_ENDPOINT} ${PORTAL_URL}${PORTAL_ENV}/commonWidgets
+${PORTAL_HOME_URL} ${PORTAL_URL}${PORTAL_ENV}/applicationsHome
+${App_First_Name} demoapp
+${App_Last_Name} demo
+${App_Email_Address} demoapp@onap.com
+${App_LoginID} demoapp
+${App_Loginpwd} demo123456!
+${App_LoginPwdCheck} demo123456!
+${Sta_First_Name} demosta
+${Sta_Last_Name} demo
+${Sta_Email_Address} demosta@onap.com
+${Sta_LoginID} demosta
+${Sta_Loginpwd} demo123456!
+${Sta_LoginPwdCheck} demo123456!
+${Test_First_Name} portal
+${Test_Last_Name} demo
+${Test_Email_Address} portal@onap.com
+${Test_LoginID} portal
+${Test_Loginpwd} demo123456!
+${Test_LoginPwdCheck} demo123456!
+${Existing_User} portal
+${PORTAL_HEALTH_CHECK_PATH} /ONAPPORTAL/portalApi/healthCheck
+${PORTAL_XDEMPAPP_REST_URL} http://portal-sdk:8080/ONAPPORTALSDK/api/v2
+${PORTAL_ASSETS_DIRECTORY} ${CURDIR}
+${GLOBAL_APPLICATION_ID} robot-functional
+${GLOBAL_PORTAL_ADMIN_USER} demo
+${GLOBAL_PORTAL_ADMIN_PWD} demo123456!
+${AppAccountName} testApp
+${AppUserName} testApp
+${AppPassword} testApp123!
+${GLOBAL_MSO_STATUS_PATH} /ecomp/mso/infra/orchestrationRequests/v2/
+${GLOBAL_SELENIUM_BROWSER} chrome
+${GLOBAL_SELENIUM_BROWSER_CAPABILITIES} Create Dictionary
+${GLOBAL_SELENIUM_DELAY} 0
+${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT} 5
+${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} 45
+${GLOBAL_OPENSTACK_HEAT_SERVICE_TYPE} orchestration
+${GLOBAL_OPENSTACK_CINDER_SERVICE_TYPE} volume
+${GLOBAL_OPENSTACK_NOVA_SERVICE_TYPE} compute
+${GLOBAL_OPENSTACK_NEUTRON_SERVICE_TYPE} network
+${GLOBAL_OPENSTACK_GLANCE_SERVICE_TYPE} image
+${GLOBAL_OPENSTACK_KEYSTONE_SERVICE_TYPE} identity
+${GLOBAL_BUILD_NUMBER} 0
+${GLOBAL_VM_PRIVATE_KEY} ${EXECDIR}/robot/assets/keys/robot_ssh_private_key.pvt
+${jira} jira
+${RESOURCE_PATH} ONAPPORTAL/auxapi/ticketevent
+${portal_Template} ${CURDIR}/portal.template
+
+${Result} FALSE
+${td_id} 0
+${download_link_id} 0
+
+*** Test Cases ***
+
+Portal Health Check
+ Run Portal Health Check
+
+#Login into Portal URL
+# Portal admin Login To Portal GUI
+
+## Portal R1 Release
+# # [Documentation] ONAP Portal R1 functionality test
+# # Notification on ONAP Portal
+# # Portal Application Account Management validation
+
+#Portal Change REST URL Of X-DemoApp
+# [Documentation] Portal Change REST URL Of X-DemoApp
+# Portal Change REST URL
+
+#Portal R1 Release for AAF
+# [Documentation] ONAP Portal R1 functionality for AAF test
+# Portal AAF new fields
+
+#Create Microse service onboarding
+# Portal admin Microservice Onboarding
+
+###Delete Microse service
+# ##Portal admin Microservice Delete
+
+#Create Widget for all users
+# Portal Admin Create Widget for All users
+
+#Delete Widget for all users
+# Portal Admin Delete Widget for All users
+
+#Create Widget for Application Roles
+# Portal Admin Create Widget for Application Roles
+
+##Delete Widget for Application Roles
+# #Portal Admin Delete Widget for Application Roles
+
+##EP Admin widget download
+# #Admin widget download
+
+#EP Admin widget layout reset
+# Reset widget layout option
+
+#Validate Functional Top Menu Get Access
+# Functional Top Menu Get Access
+
+#Validate Functional Top Menu Contact Us
+# Functional Top Menu Contact Us
+
+#Edit Functional Menu
+# Portal admin Edit Functional menu
+
+#Broadbond Notification functionality
+# ${AdminBroadCastMsg}= Portal Admin Broadcast Notifications
+# set global variable ${AdminBroadCastMsg}
+
+#Category Notification functionality
+# ${AdminCategoryMsg}= Portal Admin Category Notifications
+# set global variable ${AdminCategoryMsg}
+
+#Create a Test user for Application Admin -Test
+# Portal admin Add Application admin User New user -Test
+
+#Create a Test User for Apllication Admin
+# Portal admin Add Application admin User New user
+
+#Add Application Admin for Existing User Test user
+# Portal admin Add Application Admin Exiting User -APPDEMO
+
+#Create a Test user for Standared User
+# Portal admin Add Standard User New user
+
+#Add Application Admin for Exisitng User
+# Portal admin Add Application Admin Exiting User
+
+#Delete Application Admin for Exisitng User
+# Portal admin Delete Application Admin Existing User
+
+#Add Standard User Role for Existing user
+# Portal admin Add Standard User Existing user
+
+#Edit Standard User Role for Existing user
+# Portal admin Edit Standard User Existing user
+
+#Delete Standard User Role for Existing user
+# Portal admin Delete Standard User Existing user
+
+##Add Account new account from App Account Management
+# #Portal admin Add New Account
+
+##Delete Account new account from App Account Management
+# #Portal admin Delete Account
+
+##EP Create Portal Admin
+# #Add Portal Admin
+
+##EP Portal Admin delete
+# #Delete Portal Admin
+
+#Logout from Portal GUI as Portal Admin
+# Portal admin Logout from Portal GUI
+
+## Application Admin user Test cases
+
+#Login To Portal GUI as APP Admin
+# Application admin Login To Portal GUI
+
+##Navigate Functional Link as APP Admin
+ ##Application Admin Navigation Functional Menu
+
+#Add Standard User Role for Existing user as APP Admin
+# Application admin Add Standard User Existing user
+
+#Edit Standard User Role for Existing user as APP Admin
+# Application admin Edit Standard User Existing user
+
+#Delete Standard User Role for Existing user as APP Admin
+# Application admin Delete Standard User Existing user
+
+##Navigate Application Link as APP Admin
+# #Application Admin Navigation Application Link Tab
+
+#Logout from Portal GUI as APP Admin
+# Application admin Logout from Portal GUI
+
+##Standard User Test cases
+
+#Login To Portal GUI as Standared User
+# Standared user Login To Portal GUI
+
+##Navigate Application Link as Standared User
+# #Standared user Navigation Application Link Tab
+
+##Navigate Functional Link as Standared User
+# #Standared user Navigation Functional Menu
+
+##Broadcast Notifications Standared user
+# #Standared user Broadcast Notifications ${AdminBroadCastMsg}
+
+##Category Notifications Standared user
+# #Standared user Category Notifications ${AdminCategoryMsg}
+
+#Logout from Portal GUI as Standared User
+# Standared User Logout from Portal GUI
+
+Teardown
+ [Documentation] Close All Open browsers
+ Close All Browsers
+
+*** Keywords ***
+
+Setup Browser
+ [Documentation] Sets up browser based upon the value of ${GLOBAL_SELENIUM_BROWSER}
+# Run Keyword If '${GLOBAL_SELENIUM_BROWSER}' == 'firefox' Setup Browser Firefox
+ Run Keyword If '${GLOBAL_SELENIUM_BROWSER}' == 'chrome' Setup Browser Chrome
+ Log Running with ${GLOBAL_SELENIUM_BROWSER}
+
+
+ Setup Browser Chrome
+ ${os}= Get Normalized Os
+ Log Normalized OS=${os}
+ ${chrome options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys
+ Call Method ${chrome options} add_argument no-sandbox
+ ${dc} Evaluate sys.modules['selenium.webdriver'].DesiredCapabilities.CHROME sys, selenium.webdriver
+ Set To Dictionary ${dc} elementScrollBehavior 1
+ Create Webdriver Chrome chrome_options=${chrome_options} desired_capabilities=${dc}
+ Set Global Variable ${GLOBAL_SELENIUM_BROWSER_CAPABILITIES} ${dc}
+
+Handle Proxy Warning
+ [Documentation] Handle Intermediate Warnings from Proxies
+ ${status} ${data}= Run Keyword And Ignore Error Variable Should Exist \${GLOBAL_PROXY_WARNING_TITLE}
+ Return From Keyword if '${status}' != 'PASS'
+ ${status} ${data}= Run Keyword And Ignore Error Variable Should Exist \${GLOBAL_PROXY_WARNING_CONTINUE_XPATH}
+ Return From Keyword if '${status}' != 'PASS'
+ Return From Keyword if "${GLOBAL_PROXY_WARNING_TITLE}" == ''
+ Return From Keyword if "${GLOBAL_PROXY_WARNING_CONTINUE_XPATH}" == ''
+ ${test} ${value}= Run keyword and ignore error Title Should Be ${GLOBAL_PROXY_WARNING_TITLE}
+ Run keyword If '${test}' == 'PASS' Click Element xpath=${GLOBAL_PROXY_WARNING_CONTINUE_XPATH}
+
+
+Run Portal Health Check
+ [Documentation] Runs Portal Health check
+ ${resp}= Run Portal Get Request ${PORTAL_HEALTH_CHECK_PATH}
+ Should Be Equal As Strings ${resp.status_code} 200
+ Should Be Equal As Strings ${resp.json()['statusCode']} 200
+
+Run Portal Get Request
+ [Documentation] Runs Portal Get request
+ [Arguments] ${data_path}
+ ${session}= Create Session portal ${PORTAL_URL}
+ ${uuid}= Generate UUID
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
+ ${resp}= Get Request portal ${data_path} headers=${headers}
+ Log Received response from portal ${resp.text}
+ [Return] ${resp}
+
+
+Portal admin Login To Portal GUI
+ [Documentation] Logs into Portal GUI
+ ## Setup Browser Now being managed by test case
+# Setup Browser
+ Start Virtual Display 1920 1080
+ Open Browser ${PORTAL_LOGIN_URL} chrome
+# Go To ${PORTAL_LOGIN_URL}
+ Maximize Browser Window
+ Set Selenium Speed ${GLOBAL_SELENIUM_DELAY}
+ Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
+ Log Logging in to ${PORTAL_URL}${PORTAL_ENV}
+ # Handle Proxy Warning
+ Title Should Be Login
+ Input Text xpath=//input[@ng-model='loginId'] ${GLOBAL_PORTAL_ADMIN_USER}
+ Input Password xpath=//input[@ng-model='password'] ${GLOBAL_PORTAL_ADMIN_PWD}
+ Click Link xpath=//a[@id='loginBtn']
+ Wait Until Page Contains Element xpath=//img[@alt='Onap Logo'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ #Execute Javascript document.getElementById('w-ecomp-footer').style.display = 'none'
+ Log Logged in to ${PORTAL_URL}${PORTAL_ENV}
+
+Portal admin Go To Portal HOME
+ [Documentation] Naviage to Portal Home
+ Go To ${PORTAL_HOME_URL}
+ Wait Until Page Contains Element xpath=//div[@class='applicationWindow'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+
+Portal admin User Notifications
+ [Documentation] Naviage to User notification tab
+ Click Link xpath=//a[@id='parent-item-User-Notifications']
+ Wait Until Element Is Visible xpath=//h1[@class='heading-page'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Click Button xpath=//button[@id='button-openAddNewApp']
+ Click Button xpath=(//button[@id='undefined'])[1]
+ #Click Button xpath=//input[@id='datepicker-start']
+
+Portal admin Add Application Admin Exiting User
+ [Documentation] Naviage to Admins tab
+ Wait Until Element Is Visible xpath=//a[@title='Admins'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Click Link xpath=//a[@title='Admins']
+ Wait Until Element Is Visible xpath=//h1[contains(.,'Admins')] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Page Should Contain Admins
+ Click Button xpath=//button[@ng-click='toggleSidebar()']
+ Click Button xpath=//button[@ng-click='admins.openAddNewAdminModal()']
+ Input Text xpath=//input[@id='input-user-search'] ${Existing_User}
+ Click Button xpath=//button[@id='button-search-users']
+ Click Element xpath=//span[@id='result-uuid-0']
+ Click Button xpath=//button[@id='search-users-button-next']
+ Click Button xpath=//input[@value='Select application']
+ Scroll Element Into View xpath=(//input[@value='Select application']/following::*[contains(text(),'xDemo App' )])[1]
+ Click Element xpath=(//li[contains(.,'xDemo App' )])[2]
+# Scroll Element Into View xpath=(//input[@value='Select application']/following::*[contains(text(),'Default' )])[1]
+# Click Element xpath=(//li[contains(.,'Default' )])[2]
+ #Select From List xpath=(//input[@value='Select application']/following::*[contains(text(),'xDemo App')])[1] xDemo App
+ Click Button xpath=//button[@id='div-updateAdminAppsRoles']
+ Click Element xpath=//button[@id='admin-div-ok-button']
+ Click Element xpath=//button[@id='div-confirm-ok-button']
+ Get Selenium Implicit Wait
+ Click Link xpath=//a[@aria-label='Admins']
+ Click Element xpath=//input[@id='dropdown1']
+# Click Element xpath=//li[contains(.,'Default' )]
+ Click Element xpath=//li[contains(.,'xDemo App' )]
+ Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
+ Table Column Should Contain xpath=//*[@table-data='admins.adminsTableData'] 1 ${Existing_User}
+ #Element Text Should Be xpath=(//span[contains(.,'portal')])[1] ${Existing_User}
+ #Element Text Should Be xpath=(//span[contains(.,'demo')])[1] ${Existing_User}
+
+
+Portal admin Delete Application Admin Existing User
+ [Documentation] Naviage to Admins tab
+ Wait Until Element Is Visible xpath=//a[@title='Admins'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Click Link xpath=//a[@title='Admins']
+ Wait Until Element Is Visible xpath=//h1[contains(.,'Admins')] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Page Should Contain Admins
+ Click Button xpath=//button[@ng-click='toggleSidebar()']
+ Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
+ Click Element xpath=(//span[contains(.,'portal')] )[1]
+ #Click Element xpath=(//span[contains(.,'demo')] )[1]
+ Click Element xpath=//*[@id='select-app-xDemo-App']/following::i[@id='i-delete-application']
+# Click Element xpath=//*[@id='select-app-Default']/following::i[@id='i-delete-application']
+ Click Element xpath=//button[@id='div-confirm-ok-button']
+ Click Button xpath=//button[@id='div-updateAdminAppsRoles']
+ Click Element xpath=//button[@id='admin-div-ok-button']
+ #Is Element Visible xpath=(//span[contains(.,'Portal')] )[2]
+ #Is Element Visible xpath=(//*[contains(.,'Portal')] )[2]
+ Element Should Not Contain xpath=//*[@table-data='admins.adminsTableData'] portal
+ #Element Should Not Contain xpath=//*[@table-data='admins.adminsTableData'] demo
+ Click Image xpath=//img[@alt='Onap Logo']
+ Set Selenium Implicit Wait 3000
+
+
+Portal admin Add Application admin User New user
+ [Documentation] Naviage to Users tab
+ Click Link xpath=//a[@title='Users']
+ Page Should Contain Users
+ Click Button xpath=//button[@ng-click='toggleSidebar()']
+ Click Button xpath=//button[@id='users-button-add']
+ Click Button xpath=//button[@id='Create-New-User-button']
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.firstName'] ${App_First_Name}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.lastName'] ${App_Last_Name}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.emailAddress'] ${App_Email_Address}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.loginId'] ${App_LoginID}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwd'] ${App_Loginpwd}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwdCheck'] ${App_LoginPwdCheck}
+ Click Button xpath=//button[@ng-click='searchUsers.addNewUserFun()']
+
+ ${Result}= Get Matching XPath Count xpath=//*[contains(text(),'User with same loginId already exists')]
+
+ #log ${Result}
+ #${type_result}= Evaluate type(${Result})
+ #log ${type_result}
+
+ Run Keyword if '${Result}'== 0 AdminUser does not exist already
+ ... ELSE Goto Home Image
+ Set Selenium Implicit Wait 3000
+
+Goto Home Image
+ Click Image xpath=//img[@alt='Onap Logo']
+
+AdminUser does not exist already
+ Click Button xpath=//button[@id='next-button']
+ #Scroll Element Into View xpath=//div[@id='div-app-name-dropdown-xDemo-App']
+ Click Element xpath=//*[@id='div-app-name-dropdown-xDemo-App']
+ Click Element xpath=//*[@id='div-app-name-xDemo-App']/following::input[@id='Standard-User-checkbox']
+ Set Selenium Implicit Wait 3000
+ Click Button xpath=//button[@id='new-user-save-button']
+ Set Selenium Implicit Wait 3000
+ Go To ${PORTAL_HOME_PAGE}
+ Click Link xpath=//a[@title='Users']
+ Click Element xpath=//input[@id='dropdown1']
+ Click Element xpath=//li[contains(.,'xDemo App')]
+ Table Column Should Contain xpath=//*[@table-data='users.accountUsers'] 1 ${App_First_Name}
+ #Input Text xpath=//input[@id='input-table-search'] ${App_First_Name}
+ #Element Text Should Be xpath=(//span[contains(.,'demoapp')] )[1] ${App_First_Name}
+ Click Image xpath=//img[@alt='Onap Logo']
+ Set Selenium Implicit Wait 3000
+
+
+Portal admin Add Standard User New user
+ [Documentation] Naviage to Users tab
+ Click Link xpath=//a[@title='Users']
+ Page Should Contain Users
+ Click Button xpath=//button[@ng-click='toggleSidebar()']
+ Click Button xpath=//button[@id='users-button-add']
+ Click Button xpath=//button[@id='Create-New-User-button']
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.firstName'] ${Sta_First_Name}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.lastName'] ${Sta_Last_Name}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.emailAddress'] ${Sta_Email_Address}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.loginId'] ${Sta_LoginID}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwd'] ${Sta_Loginpwd}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwdCheck'] ${Sta_LoginPwdCheck}
+ Click Button xpath=//button[@ng-click='searchUsers.addNewUserFun()']
+
+ ${Result}= Get Matching XPath Count xpath=//*[contains(text(),'User with same loginId already exists')]
+
+ #log ${Result}
+ #${type_result}= Evaluate type(${Result})
+ #log ${type_result}
+
+ Run Keyword if '${Result}'== 0 StaUser does not exist already
+ ... ELSE Goto Home Image
+ Set Selenium Implicit Wait 3000
+
+StaUser does not exist already
+ Click Button xpath=//button[@id='next-button']
+ #Scroll Element Into View xpath=//div[@id='div-app-name-dropdown-xDemo-App']
+ Click Element xpath=//*[@id='div-app-name-dropdown-xDemo-App']
+ Click Element xpath=//*[@id='div-app-name-xDemo-App']/following::input[@id='Standard-User-checkbox']
+ Set Selenium Implicit Wait 3000
+ Click Button xpath=//button[@id='new-user-save-button']
+ Set Selenium Implicit Wait 3000
+ Go To ${PORTAL_HOME_PAGE}
+ Click Link xpath=//a[@title='Users']
+ Click Element xpath=//input[@id='dropdown1']
+ Click Element xpath=//li[contains(.,'xDemo App')]
+ Table Column Should Contain xpath=//*[@table-data='users.accountUsers'] 1 ${Sta_First_Name}
+ #Input Text xpath=//input[@id='input-table-search'] ${Sta_First_Name}
+ #Element Text Should Be xpath=(//span[contains(.,'appdemo')] )[1] ${Sta_First_Name}
+ Click Image xpath=//img[@alt='Onap Logo']
+ Set Selenium Implicit Wait 3000
+
+
+
+Portal admin Add Application admin User New user -Test
+ [Documentation] Naviage to Users tab
+ Click Link xpath=//a[@title='Users']
+ Page Should Contain Users
+ Click Button xpath=//button[@ng-click='toggleSidebar()']
+ Click Button xpath=//button[@id='users-button-add']
+ Click Button xpath=//button[@id='Create-New-User-button']
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.firstName'] ${Test_First_Name}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.lastName'] ${Test_Last_Name}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.emailAddress'] ${Test_Email_Address}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.loginId'] ${Test_LoginID}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwd'] ${Test_Loginpwd}
+ Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwdCheck'] ${Test_LoginPwdCheck}
+ Click Button xpath=//button[@ng-click='searchUsers.addNewUserFun()']
+ Click Button xpath=//button[@id='search-users-button-cancel']
+ Click Image xpath=//img[@alt='Onap Logo']
+ Set Selenium Implicit Wait 3000
+
+
+ #Click Button xpath=//button[@id='next-button']
+ #Scroll Element Into View xpath=//div[@id='div-app-name-dropdown-xDemo-App']
+ #Click Element xpath=//*[@id='div-app-name-dropdown-xDemo-App']
+ #Click Element xpath=//*[@id='div-app-name-xDemo-App']/following::input[@id='Standard-User-checkbox']
+ #Set Selenium Implicit Wait 3000
+ #Click Button xpath=//button[@id='new-user-save-button']
+ #Set Selenium Implicit Wait 3000
+ #Go To ${PORTAL_HOME_PAGE}
+ #Click Link xpath=//a[@title='Users']
+ #Click Element xpath=//input[@id='dropdown1']
+ #Click Element xpath=//li[contains(.,'xDemo App')]
+ #Table Column Should Contain xpath=//*[@table-data='users.accountUsers'] 1 ${Test_First_Name}
+ #Input Text xpath=//input[@id='input-table-search'] ${Test_First_Name}
+ #Element Text Should Be xpath=(//span[contains(.,'appdemo')] )[1] ${Test_First_Name}
+
+Portal admin Add Application Admin Exiting User -APPDEMO
+ [Documentation] Naviage to Admins tab
+ Wait Until Element Is Visible xpath=//a[@title='Admins'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Click Link xpath=//a[@title='Admins']
+ Wait Until Element Is Visible xpath=//h1[contains(.,'Admins')] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Page Should Contain Admins
+ Click Button xpath=//button[@ng-click='toggleSidebar()']
+ Click Button xpath=//button[@ng-click='admins.openAddNewAdminModal()']
+ Input Text xpath=//input[@id='input-user-search'] ${App_First_Name}
+ Click Button xpath=//button[@id='button-search-users']
+ Click Element xpath=//span[@id='result-uuid-0']
+ Click Button xpath=//button[@id='search-users-button-next']
+ Click Button xpath=//input[@value='Select application']
+ Scroll Element Into View xpath=(//input[@value='Select application']/following::*[contains(text(),'xDemo App' )])[1]
+ Click Element xpath=(//li[contains(.,'xDemo App' )])[2]
+ #Select From List xpath=(//input[@value='Select application']/following::*[contains(text(),'xDemo App')])[1] xDemo App
+ Click Button xpath=//button[@id='div-updateAdminAppsRoles']
+ Click Element xpath=//button[@id='admin-div-ok-button']
+ Click Element xpath=//button[@id='div-confirm-ok-button']
+ Get Selenium Implicit Wait
+ Click Link xpath=//a[@aria-label='Admins']
+ Click Element xpath=//input[@id='dropdown1']
+ Click Element xpath=//li[contains(.,'xDemo App' )]
+ Input Text xpath=//input[@id='input-table-search'] ${App_First_Name}
+ #Element Text Should Be xpath=(//span[contains(.,'appdemo')])[1] ${App_First_Name}
+ Table Column Should Contain xpath=//*[@table-data='admins.adminsTableData'] 1 ${App_First_Name}
+ Click Image xpath=//img[@alt='Onap Logo']
+ Set Selenium Implicit Wait 3000
+
+Portal admin Add Standard User Existing user
+ [Documentation] Naviage to Users tab
+ Click Link xpath=//a[@title='Users']
+ Page Should Contain Users
+ Click Button xpath=//button[@ng-click='toggleSidebar()']
+ Click Button xpath=//button[@ng-click='users.openAddNewUserModal()']
+ Input Text xpath=//input[@id='input-user-search'] ${Existing_User}
+ Click Button xpath=//button[@id='button-search-users']
+ Click Element xpath=//span[@id='result-uuid-0']
+ Click Button xpath=//button[@id='next-button']
+# Click Element xpath=//*[@id='div-app-name-dropdown-Default']
+# Click Element xpath=//*[@id='div-app-name-Default']/following::input[@id='Standard-User-checkbox']
+ Click Element xpath=//div[@id='app-select-Select roles1']
+ Click Element xpath=//div[@id='app-select-Select roles1']/following::input[@id='Standard-User-checkbox']
+ Set Selenium Implicit Wait 3000
+ Click Button xpath=//button[@id='new-user-save-button']
+ Set Selenium Implicit Wait 3000
+ #Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
+ #Select From List xpath=//input[@value='Select application'] xDemo App
+ #Click Link xpath=//a[@title='Users']
+ #Page Should Contain Users
+ #Focus xpath=//input[@name='dropdown1']
+ Go To ${PORTAL_HOME_PAGE}
+ #Click Link xpath=//a[@title='Users']
+ #Click Element xpath=//input[@id='dropdown1']
+# Click Element xpath=//li[contains(.,'Default')]
+ #Click Element xpath=//li[contains(.,'XDemo App')]
+ #Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
+ #Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] Standard User
+ #Set Selenium Implicit Wait 3000
+
+Portal admin Edit Standard User Existing user
+ [Documentation] Naviage to Users tab
+ Click Link xpath=//a[@title='Users']
+ Click Element xpath=//input[@id='dropdown1']
+ # Click Element xpath=//li[contains(.,'Default')]
+# Set Selenium Implicit Wait 3000
+ Click Element xpath=//li[contains(.,'xDemo App')]
+# Set Selenium Implicit Wait 3000
+ Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
+ Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] Standard User
+ Click Element xpath=(.//*[@id='rowheader_t1_0'])[2]
+ # Click Element xpath=//*[@id='div-app-name-dropdown-Default']
+ # Click Element xpath=//*[@id='div-app-name-Default']/following::input[@id='Standard-User-checkbox']
+ # Click Element xpath=//*[@id='div-app-name-Default']/following::input[@id='Portal-Notification-Admin-checkbox']
+ Click Element xpath=//*[@id='app-select-Standard User1']
+ Click Element xpath=//*[@id='app-select-Standard User1']/following::input[@id='Standard-User-checkbox']
+ Set Selenium Implicit Wait 3000
+ Click Button xpath=//button[@id='new-user-save-button']
+ Set Selenium Implicit Wait 3000
+
+ Page Should Contain Users
+ Click Button xpath=//button[@ng-click='toggleSidebar()']
+ Click Button xpath=//button[@ng-click='users.openAddNewUserModal()']
+ Input Text xpath=//input[@id='input-user-search'] ${Existing_User}
+ Click Button xpath=//button[@id='button-search-users']
+ Click Element xpath=//span[@id='result-uuid-0']
+ Click Button xpath=//button[@id='next-button']
+ Click Element xpath=//div[@id='app-select-Select roles1']
+ Click Element xpath=//div[@id='app-select-Select roles1']/following::input[@id='System-Administrator-checkbox']
+ Set Selenium Implicit Wait 3000
+# Click Element xpath=//*[@id='app-select-Standard User1']
+# Click Element xpath=//*[@id='app-select-Standard User1']/following::input[@id='System-Administrator-checkbox']
+ # Click Element xpath=//*[@id='div-app-name-dropdown-SDC']
+ # Click Element xpath=//*[@id='div-app-name-SDC']/following::input[@id='Standard-User-checkbox']
+ # Click Element xpath=//*[@id='div-app-name-SDC']/following::input[@id='Portal-Notification-Admin-checkbox']
+ Set Selenium Implicit Wait 3000
+ Click Button xpath=//button[@id='new-user-save-button']
+ Set Selenium Implicit Wait 3000
+ Page Should Contain Users
+ #Click Button xpath=//input[@id='dropdown1']
+ #Click Element xpath=//li[contains(.,'xDemo App')]
+ Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
+ # Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] Portal Notification Admin
+ Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] System Administrator
+ Set Selenium Implicit Wait 3000
+
+ Portal admin Delete Standard User Existing user
+ [Documentation] Naviage to Users tab
+ Click Element xpath=(.//*[@id='rowheader_t1_0'])[2]
+# Scroll Element Into View xpath=//*[@id='div-app-name-Default']/following::*[@id='app-item-delete'][1]
+# Click Element xpath=//*[@id='div-app-name-Default']/following::*[@id='app-item-delete'][1]
+ Set Selenium Implicit Wait 9000
+ Scroll Element Into View xpath=//*[@id='div-app-name-xDemo-App']/following::*[@id='app-item-delete'][1]
+ Click Element xpath=//*[@id='div-app-name-xDemo-App']/following::*[@id='app-item-delete'][1]
+# Scroll Element Into View xpath=//*[@id='div-app-name-SDC']/following::*[@id='app-item-delete'][1]
+# Click Element xpath=//*[@id='div-app-name-SDC']/following::*[@id='app-item-delete'][1]
+ Click Element xpath=//button[@id='div-confirm-ok-button']
+ Click Button xpath=//button[@id='new-user-save-button']
+ #Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
+ #Is Element Visible xpath=(//*[contains(.,'Portal')] )[2]
+ Element Should Not Contain xpath=//*[@table-data='users.accountUsers'] Portal
+ #Element Should Not Contain xpath=//*[@table-data='users.accountUsers'] demo
+ Set Selenium Implicit Wait 3000
+
+
+Functional Top Menu Get Access
+ [Documentation] Naviage to Support tab
+ Go To ${PORTAL_HOME_URL}
+ Click Link xpath=//a[contains(.,'Support')]
+ Mouse Over xpath=//*[contains(text(),'Get Access')]
+ Click Link xpath=//a[contains(.,'Get Access')]
+ Element Text Should Be xpath=//h1[contains(.,'Get Access')] Get Access
+ Set Selenium Implicit Wait 3000
+
+Functional Top Menu Contact Us
+ [Documentation] Naviage to Support tab
+ Click Link xpath=//a[contains(.,'Support')]
+ Mouse Over xpath=//*[contains(text(),'Contact Us')]
+ Click Link xpath=//a[contains(.,'Contact Us')]
+ Element Text Should Be xpath=//h1[contains(.,'Contact Us')] Contact Us
+ Click Image xpath=//img[@alt='Onap Logo']
+ Set Selenium Implicit Wait 3000
+
+Portal admin Edit Functional menu
+ [Documentation] Naviage to Edit Functional menu tab
+ Click Link xpath=//a[@title='Edit Functional Menu']
+ Click Link xpath=.//*[@id='Manage']/div/a
+ Click Link xpath=.//*[@id='Design']/div/a
+ Click Link xpath=.//*[@id='Product_Design']/div/a
+ Open Context Menu xpath=//*[@id='Product_Design']/div/span
+ Click Link xpath=//a[@href='#add']
+ Input Text xpath=//input[@id='input-title'] ONAP Test
+ #Input Text xpath=//input[@id='input-url'] http://google.com
+ Click Element xpath=//input[@id='select-app']
+ Scroll Element Into View xpath=//li[contains(.,'xDemo App')]
+ Click Element xpath=//li[contains(.,'xDemo App')]
+ Input Text xpath=//input[@id='input-url'] http://google.com
+ Click Button xpath=//button[@id='button-save-continue']
+ #Click Button xpath=//div[@title='Select Roles']
+ Click Element xpath=//*[@id='app-select-Select Roles']
+ Click Element xpath=//input[@id='Standard-User-checkbox']
+ Click Element xpath=//button[@id='button-save-add']
+ Click Image xpath=//img[@alt='Onap Logo']
+ Set Selenium Implicit Wait 3000
+ Click Link xpath=//a[contains(.,'Manage')]
+ Mouse Over xpath=//*[contains(text(),'Design')]
+ Set Selenium Implicit Wait 3000
+ Element Text Should Be xpath=//a[contains(.,'ONAP Test')] ONAP Test
+ Set Selenium Implicit Wait 3000
+ Click Image xpath=//img[@alt='Onap Logo']
+ Click Link xpath=//a[@title='Edit Functional Menu']
+ Click Link xpath=.//*[@id='Manage']/div/a
+ Click Link xpath=.//*[@id='Design']/div/a
+ Click Link xpath=.//*[@id='Product_Design']/div/a
+ Open Context Menu xpath=//*[@id='ONAP_Test']
+ Click Link xpath=//a[@href='#delete']
+ Set Selenium Implicit Wait 3000
+ Click Element xpath=//button[@id='div-confirm-ok-button']
+ Click Image xpath=//img[@alt='Onap Logo']
+ Set Selenium Implicit Wait 3000
+ Click Link xpath=//a[contains(.,'Manage')]
+ Mouse Over xpath=//*[contains(text(),'Design')]
+ Set Selenium Implicit Wait 3000
+ Element Should Not Contain xpath=(.//*[contains(.,'Design')]/following::ul[1])[1] ONAP Test
+ Set Selenium Implicit Wait 3000
+ Click Image xpath=//img[@alt='Onap Logo']
+ Set Selenium Implicit Wait 3000
+
+Portal admin Microservice Onboarding
+ [Documentation] Naviage to Edit Functional menu tab
+ Click Link xpath=//a[@title='Microservice Onboarding']
+ Click Button xpath=//button[@id='microservice-onboarding-button-add']
+ Input Text xpath=//input[@name='name'] Test Microservice
+ Input Text xpath=//*[@name='desc'] Test
+ Click Element xpath=//input[@id='microservice-details-input-app']
+ Scroll Element Into View xpath=//li[contains(.,'xDemo App')]
+ Click Element xpath=//li[contains(.,'xDemo App')]
+ Click Element xpath=//*[@name='desc']
+ Input Text xpath=//input[@name='url'] ${PORTAL_MICRO_ENDPOINT}
+ Click Element xpath=//input[@id='microservice-details-input-security-type']
+ Scroll Element Into View xpath=//li[contains(.,'Basic Authentication')]
+ Click Element xpath=//li[contains(.,'Basic Authentication')]
+ Input Text xpath=//input[@name='username'] ${GLOBAL_PORTAL_ADMIN_USER}
+ Input Text xpath=//input[@name='password'] ${GLOBAL_PORTAL_ADMIN_PWD}
+ Click Button xpath=//button[@id='microservice-details-save-button']
+ Table Column Should Contain xpath=//*[@table-data='serviceList'] 1 Test Microservice
+ #Element Text Should Be xpath=//*[@table-data='serviceList'] Test Microservice
+ Set Selenium Implicit Wait 3000
+
+Portal admin Microservice Delete
+ [Documentation] Naviage to Edit Functional menu tab
+ Click Link xpath=//a[@title='Microservice Onboarding']
+ Click Button xpath=//button[@id='microservice-onboarding-button-add']
+ Input Text xpath=//input[@name='name'] TestMS
+ Input Text xpath=//*[@name='desc'] TestMS
+ Click Element xpath=//input[@id='microservice-details-input-app']
+ Scroll Element Into View xpath=//li[contains(.,'xDemo App')]
+ Click Element xpath=//li[contains(.,'xDemo App')]
+ Click Element xpath=//*[@name='desc']
+ Input Text xpath=//input[@name='url'] ${PORTAL_MICRO_ENDPOINT}
+ Click Element xpath=//input[@id='microservice-details-input-security-type']
+ Scroll Element Into View xpath=//li[contains(.,'Basic Authentication')]
+ Click Element xpath=//li[contains(.,'Basic Authentication')]
+ Input Text xpath=//input[@name='username'] ${GLOBAL_PORTAL_ADMIN_USER}
+ Input Text xpath=//input[@name='password'] ${GLOBAL_PORTAL_ADMIN_PWD}
+ Click Button xpath=//button[@id='microservice-details-save-button']
+ Execute Javascript window.scrollTo(0,document.body.scrollHeight);
+ Click Element xpath=(.//*[contains(text(),'TestMS')]/following::*[@ng-click='microserviceOnboarding.deleteService(rowData)'])[1]
+ Click Button xpath=//button[@id="div-confirm-ok-button"]
+ Set Selenium Implicit Wait 3000
+
+Portal Admin Create Widget for All users
+ [Documentation] Navigate to Create Widget menu tab
+ ${WidgetAttachment}= Catenate ${PORTAL_ASSETS_DIRECTORY}//news_widget.zip
+ Wait until page contains Element xpath=//a[@title='Widget Onboarding'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Click Link xpath=//a[@title='Widget Onboarding']
+ Click Button xpath=//button[@ng-click='toggleSidebar()']
+ Click Button xpath=//button[@id='widget-onboarding-button-add']
+ Input Text xpath=//*[@name='name'] ONAP-xDemo
+ Input Text xpath=//*[@name='desc'] ONAP xDemo
+ Click Element xpath=//*[@id='widgets-details-input-endpoint-url']
+ Scroll Element Into View xpath=//li[contains(.,'News Microservice')]
+ Click Element xpath=//li[contains(.,'News Microservice')]
+ Click Element xpath=//*[contains(text(),'Allow all user access')]/preceding::input[@ng-model='widgetOnboardingDetails.widget.allUser'][1]
+ Choose File xpath=//input[@id='widget-onboarding-details-upload-file'] ${WidgetAttachment}
+ Click Button xpath=//button[@id='widgets-details-save-button']
+ Wait Until Page Contains ONAP-xDemo ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Page Should Contain ONAP-xDemo
+ Set Selenium Implicit Wait 3000
+ GO TO ${PORTAL_HOME_PAGE}
+
+
+Portal Admin Delete Widget for All users
+ [Documentation] Naviage to delete Widget menu tab
+ #Wait Until Page Contains ONAP-xDemo ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ #Page Should Contain ONAP-xDemo
+ #Click Image xpath=//img[@alt='Onap Logo']
+ Click Link xpath=//a[@title='Widget Onboarding']
+ Click Element xpath=//input[@id='dropdown1']
+ Click Element xpath=//li[contains(.,'xDemo App')]
+ #Wait Until Page Contains xpath=(.//*[contains(text(),'ONAP-xDemo')]/followi
+ #Wait Until Page Contains xpath=(.//*[contains(text(),'ONAP-xDemo')]/following::*[@ng-click='widgetOnboarding.deleteWidget(rowData)'])[1] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Click Button xpath=//button[@ng-click='toggleSidebar()']
+ Click Element xpath=(.//*[contains(text(),'ONAP-xDemo')]/following::*[@ng-click='widgetOnboarding.deleteWidget(rowData)'])[1]
+ Click Element xpath=//button[@id='div-confirm-ok-button']
+ Set Selenium Implicit Wait 3000
+ Element Should Not Contain xpath=//*[@table-data='portalAdmin.portalAdminsTableData'] ONAP-xDemo
+ #Is Element Visible xpath=//*[@table-data='portalAdmin.portalAdminsTableData']
+ #Table Column Should Contain .//*[@table-data='portalAdmin.portalAdminsTableData'] 0 ONAP-xDemo
+ #Set Selenium Implicit Wait 3000
+
+Portal Admin Create Widget for Application Roles
+ [Documentation] Naviage to Create Widget menu tab
+ ${WidgetAttachment}= Catenate ${PORTAL_ASSETS_DIRECTORY}//news_widget.zip
+ Click Link xpath=//a[@title='Widget Onboarding']
+ Click Button xpath=//button[@ng-click='toggleSidebar()']
+ Click Button xpath=//button[@id='widget-onboarding-button-add']
+ Input Text xpath=//*[@name='name'] ONAP-xDemo
+ Input Text xpath=//*[@name='desc'] ONAP xDemo
+ Click Element xpath=//*[@id='widgets-details-input-endpoint-url']
+ Scroll Element Into View xpath=//li[contains(.,'News Microservice')]
+ Click Element xpath=//li[contains(.,'News Microservice')]
+ Click element xpath=//*[@id="app-select-Select Applications"]
+ click element xpath=//*[@id="xDemo-App-checkbox"]
+ Click element xpath=//*[@name='desc']
+ click element xpath=//*[@id="app-select-Select Roles0"]
+ click element xpath=//*[@id="Standard-User-checkbox"]
+ Click element xpath=//*[@name='desc']
+ Scroll Element Into View xpath=//input[@id='widget-onboarding-details-upload-file']
+ Choose File xpath=//input[@id='widget-onboarding-details-upload-file'] ${WidgetAttachment}
+ Click Button xpath=//button[@id='widgets-details-save-button']
+ Click Image xpath=//img[@alt='Onap Logo']
+ Set Selenium Implicit Wait 3000
+ #Wait Until Page Contains ONAP-xDemo ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Click Link xpath=//a[@title='Widget Onboarding']
+ Click Element xpath=//input[@id='dropdown1']
+ Click Element xpath=//li[contains(.,'xDemo App')]
+ Page Should Contain ONAP-xDemo
+ Set Selenium Implicit Wait 3000
+ GO TO ${PORTAL_HOME_PAGE}
+
+Portal Admin Delete Widget for Application Roles
+ #Wait Until Page Contains ONAP-xDemo ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ #Page Should Contain ONAP-xDemo
+ #Click Image xpath=//img[@alt='Onap Logo']
+ Click Link xpath=//a[@title='Widget Onboarding']
+ Click Element xpath=//input[@id='dropdown1']
+ Click Element xpath=//li[contains(.,'xDemo App')]
+ #Wait Until Page Contains xpath=(.//*[contains(text(),'ONAP-xDemo')]/followi
+ #Wait Until Page Contains xpath=(.//*[contains(text(),'ONAP-xDemo')]/following::*[@ng-click='widgetOnboarding.deleteWidget(rowData)'])[1] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Click Button xpath=//button[@ng-click='toggleSidebar()']
+ Scroll Element Into View xpath=//*[contains(text(),'ONAP-xDemo')]/following::td[3]/div
+ Click Element xpath=//*[contains(text(),'ONAP-xDemo')]/following::td[3]/div
+ Click Element xpath=//button[@id='div-confirm-ok-button']
+ Set Selenium Implicit Wait 3000
+ Element Should Not Contain xpath=//*[@table-data='portalAdmin.portalAdminsTableData'] ONAP-xDemo
+ #Is Element Visible xpath=//*[@table-data='portalAdmin.portalAdminsTableData']
+ #Table Column Should Contain .//*[@table-data='portalAdmin.portalAdminsTableData'] 0 ONAP-xDemo
+ Set Selenium Implicit Wait 3000
+
+
+
+Portal Admin Edit Widget
+ [Documentation] Naviage to Home tab
+ #Mouse Over xpath=(//h3[contains(text(),'News')]/following::span[1])[1]
+ Click Element xpath=(//h3[contains(text(),'News')]/following::span[1])[1]
+ Set Browser Implicit Wait 8000
+ #Wait Until Element Is Visible xpath=(//h3[contains(text(),'News')]/following::span[1]/following::a[contains(text(),'Edit')])[1] 60
+ Mouse Over xpath=(//h3[contains(text(),'News')]/following::span[1]/following::a[contains(text(),'Edit')])[1]
+ Click Link xpath=(//h3[contains(text(),'News')]/following::span[1]/following::a[contains(text(),'Edit')])[1]
+ Input Text xpath=//input[@name='title'] ONAP_VID
+ Input Text xpath=//input[@name='url'] http://about.att.com/news/international.html
+ Input Text xpath=//input[@id='widget-input-add-order'] 5
+ Click Link xpath=//a[contains(.,'Add New')]
+ Click Element xpath=//div[@id='close-button']
+ Element Should Contain xpath=//*[@table-data='ignoredTableData'] ONAP_VID
+ Click Element xpath=.//div[contains(text(),'ONAP_VID')]/following::*[contains(text(),'5')][1]/following::div[@ng-click='remove($index);'][1]
+ Click Element xpath=//div[@id='confirmation-button-next']
+ Element Should Not Contain xpath=//*[@table-data='ignoredTableData'] ONAP_VID
+ Click Link xpath=//a[@id='close-button']
+ Set Selenium Implicit Wait 3000
+
+Portal Admin Broadcast Notifications
+ [Documentation] Portal Test Admin Broadcast Notifications
+ ${CurrentDay}= Get Current Date increment=24:00:00 result_format=%m/%d/%Y
+ ${NextDay}= Get Current Date increment=48:00:00 result_format=%m/%d/%Y
+ ${CurrentDate}= Get Current Date increment=24:00:00 result_format=%m%d%y%H%M
+ ${AdminBroadCastMsg}= catenate ONAP VID Broadcast Automation${CurrentDate}
+ Go To ${PORTAL_HOME_URL}
+ Click Image xpath=//img[@alt='Onap Logo']
+ Set Selenium Implicit Wait 3000
+ Click Link xpath=//*[@id="parent-item-User-Notifications"]
+ Wait until Element is visible xpath=//*[@id="button-openAddNewApp"] timeout=10
+ Click button xpath=//*[@id="button-openAddNewApp"]
+ Input Text xpath=//input[@id='datepicker-start'] ${CurrentDay}
+ Input Text xpath=//input[@id='datepicker-end'] ${NextDay}
+ Input Text xpath=//*[@id="add-notification-input-title"] ONAP VID Broadcast Automation
+ Input Text xpath=//*[@id="user-notif-input-message"] ${AdminBroadCastMsg}
+ click element xpath=//*[@id="button-notification-save"]
+ Wait until Element is visible xpath=//*[@id="button-openAddNewApp"] timeout=10
+ click element xpath=//*[@id="megamenu-notification-button"]
+ click element xpath=//*[@id="notification-history-link"]
+# Notification bug, Uncomment the code when PORTAL-232 is fixed
+ # Wait until Element is visible xpath=//*[@id="notification-history-table"] timeout=10
+ # Table Column Should Contain xpath=//*[@id="notification-history-table"] 2 ${AdminBroadCastMsg}
+ Set Selenium Implicit Wait 3000
+ log ${AdminBroadCastMsg}
+ [Return] ${AdminBroadCastMsg}
+
+Portal Admin Category Notifications
+ [Documentation] Portal Admin Broadcast Notifications
+ ${CurrentDay}= Get Current Date increment=24:00:00 result_format=%m/%d/%Y
+ ${NextDay}= Get Current Date increment=48:00:00 result_format=%m/%d/%Y
+# ${CurrentDay}= Get Current Date result_format=%m/%d/%Y
+ ${CurrentDate}= Get Current Date increment=24:00:00 result_format=%m%d%y%H%M
+ ${AdminCategoryMsg}= catenate ONAP VID Category Automation${CurrentDate}
+ Click Link xpath=//a[@id='parent-item-Home']
+ Click Link xpath=//*[@id="parent-item-User-Notifications"]
+ Wait until Element is visible xpath=//*[@id="button-openAddNewApp"] timeout=10
+ Click button xpath=//*[@id="button-openAddNewApp"]
+ #Select Radio Button NO radio-button-no
+ Click Element //*[contains(text(),'Broadcast to All Categories')]/following::*[contains(text(),'No')][1]
+ #Select Radio Button //label[@class='radio'] radio-button-approles
+ Click Element xpath=//*[contains(text(),'Categories')]/following::*[contains(text(),'Application Roles')][1]
+ Click Element xpath=//*[contains(text(),'xDemo App')]/preceding::input[@ng-model='member.isSelected'][1]
+ Input Text xpath=//input[@id='datepicker-start'] ${CurrentDay}
+ Input Text xpath=//input[@id='datepicker-end'] ${NextDay}
+ Input Text xpath=//*[@id="add-notification-input-title"] ONAP VID Category Automation
+ Input Text xpath=//*[@id='user-notif-input-message'] ${AdminCategoryMsg}
+ click element xpath=//*[@id="button-notification-save"]
+ Wait until Element is visible xpath=//*[@id="button-openAddNewApp"] timeout=10
+ click element xpath=//*[@id="megamenu-notification-button"]
+ click element xpath=//*[@id="notification-history-link"]
+# Notification bug, Uncomment the code when PORTAL-232 is fixed
+ # Wait until Element is visible xpath=//*[@id="notification-history-table"] timeout=10
+ # Table Column Should Contain xpath=//*[@id="notification-history-table"] 2 ${AdminCategoryMsg}
+ Set Selenium Implicit Wait 3000
+ log ${AdminCategoryMsg}
+ [Return] ${AdminCategoryMsg}
+
+Portal admin Logout from Portal GUI
+ [Documentation] Logout from Portal GUI
+ Click Element xpath=//div[@id='header-user-icon']
+ Click Button xpath=//button[contains(.,'Log out')]
+ Title Should Be Login
+
+Application admin Login To Portal GUI
+ [Documentation] Logs into Portal GUI
+ # Setup Browser Now being managed by test case
+ ##Setup Browser
+# Go To ${PORTAL_LOGIN_URL}
+# Maximize Browser Window
+# Set Selenium Speed ${GLOBAL_SELENIUM_DELAY}
+# Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
+# Log Logging in to ${PORTAL_URL}${PORTAL_ENV}
+ # Handle Proxy Warning
+ Title Should Be Login
+ Input Text xpath=//input[@ng-model='loginId'] ${App_LoginID}
+ Input Password xpath=//input[@ng-model='password'] ${App_Loginpwd}
+ Click Link xpath=//a[@id='loginBtn']
+ Wait Until Page Contains Element xpath=//img[@alt='Onap Logo'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Log Logged in to ${PORTAL_URL}${PORTAL_ENV}
+
+Application Admin Navigation Application Link Tab
+ [Documentation] Logs into Portal GUI as application admin
+ Click Link xpath=//a[@id='parent-item-Home']
+ Click Element xpath=.//h3[contains(text(),'xDemo App')]/following::div[1]
+ Page Should Contain ONAP Portal
+ Scroll Element Into View xpath=//i[@class='ion-close-round']
+ Click Element xpath=//i[@class='ion-close-round']
+ Set Selenium Implicit Wait 3000
+ #Click Element xpath=(.//span[@id='tab-Home'])[1]
+
+
+Application Admin Navigation Functional Menu
+ [Documentation] Logs into Portal GUI as application admin
+ Click Link xpath=//a[contains(.,'Manage')]
+ Mouse Over xpath=//*[contains(text(),'Technology Insertion')]
+ Click Link xpath= //*[contains(text(),'Infrastructure VNF Provisioning')]
+ Page Should Contain ONAP Portal
+ Click Element xpath=//i[@class='ion-close-round']
+ Click Element xpath=(.//span[@id='tab-Home'])[1]
+
+
+Application admin Add Standard User Existing user
+ [Documentation] Naviage to Users tab
+ Click Link xpath=//a[@title='Users']
+ Page Should Contain Users
+ Click Button xpath=//button[@ng-click='toggleSidebar()']
+ Click Button xpath=//button[@ng-click='users.openAddNewUserModal()']
+ Input Text xpath=//input[@id='input-user-search'] ${Existing_User}
+ Click Button xpath=//button[@id='button-search-users']
+ Click Element xpath=//span[@id='result-uuid-0']
+ Click Button xpath=//button[@id='next-button']
+ Click Element xpath=//*[@id='div-app-name-dropdown-xDemo-App']
+ Click Element xpath=//*[@id='div-app-name-xDemo-App']/following::input[@id='Standard-User-checkbox']
+ # Click Element xpath=//*[@id='div-app-name-dropdown-Default']
+ # Click Element xpath=//*[@id='div-app-name-Default']/following::input[@id='Standard-User-checkbox']
+ # Set Selenium Implicit Wait 3000
+ Click Button xpath=//button[@id='new-user-save-button']
+ Set Selenium Implicit Wait 3000
+ #Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
+ #Select From List xpath=//input[@value='Select application'] xDemo App
+ #Click Link xpath=//a[@title='Users']
+ #Page Should Contain Users
+ Go To ${PORTAL_HOME_PAGE}
+ Set Selenium Implicit Wait 3000
+ Click Link xpath=//a[@title='Users']
+ Click Element xpath=//input[@id='dropdown1']
+ #Click Element xpath=//li[contains(.,'Default')]
+ Click Element xpath=//li[contains(.,'xDemo App')]
+ Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
+ # Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] Account Administrator
+ Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] Standard User
+
+Application admin Edit Standard User Existing user
+ [Documentation] Naviage to Users tab
+ Click Element xpath=(.//*[@id='rowheader_t1_0'])[2]
+ # Click Element xpath=//*[@id='div-app-name-dropdown-Default']
+ # Click Element xpath=//*[@id='div-app-name-Default']/following::input[@id='Standard-User-checkbox']
+ # Click Element xpath=//*[@id='div-app-name-Default']/following::input[@id='Portal-Notification-Admin-checkbox']
+ Click Element xpath=//*[@id='div-app-name-dropdown-xDemo-App']
+ Click Element xpath=//*[@id='div-app-name-xDemo-App']/following::input[@id='Standard-User-checkbox']
+ Click Element xpath=//*[@id='div-app-name-xDemo-App']/following::input[@id='System-Administrator-checkbox']
+ Set Selenium Implicit Wait 3000
+ Click Button xpath=//button[@id='new-user-save-button']
+ Set Selenium Implicit Wait 3000
+ Page Should Contain Users
+ #Click Button xpath=//input[@id='dropdown1']
+ #Click Element xpath=//li[contains(.,'xDemo App')]
+ Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
+ # Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] Account Administrator
+ Element Text Should Be xpath=(.//*[@id='rowheader_t1_0'])[2] System Administrator
+
+Application admin Delete Standard User Existing user
+ [Documentation] Naviage to Users tab
+ Click Element xpath=(.//*[@id='rowheader_t1_0'])[2]
+# Scroll Element Into View xpath=//*[@id='div-app-name-Default']/following::*[@id='app-item-delete'][1]
+# Click Element xpath=//*[@id='div-app-name-Default']/following::*[@id='app-item-delete'][1]
+ Scroll Element Into View xpath=//*[@id='div-app-name-xDemo-App']/following::*[@id='app-item-delete'][1]
+ Click Element xpath=//*[@id='div-app-name-xDemo-App']/following::*[@id='app-item-delete'][1]
+ Click Element xpath=//button[@id='div-confirm-ok-button']
+ Click Button xpath=//button[@id='new-user-save-button']
+# Input Text xpath=//input[@id='input-table-search'] ${Existing_User}
+# Is Element Visible xpath=(//*[contains(.,'Portal')] )[2]
+ Element Should Not Contain xpath=//*[@table-data='users.accountUsers'] Portal
+ #Click Image xpath=//img[@alt='Onap Logo']
+ Set Selenium Implicit Wait 3000
+
+Application admin Logout from Portal GUI
+ [Documentation] Logout from Portal GUI
+ Click Element xpath=//div[@id='header-user-icon']
+ #Set Selenium Implicit Wait 3000
+ Click Button xpath=//button[contains(text(),'Log out')]
+ #Set Selenium Implicit Wait 3000
+ Title Should Be Login
+
+Standared user Login To Portal GUI
+ [Documentation] Logs into Portal GUI
+ # Setup Browser Now being managed by test case
+ ##Setup Browser
+# Go To ${PORTAL_LOGIN_URL}
+# Maximize Browser Window
+# Set Selenium Speed ${GLOBAL_SELENIUM_DELAY}
+# Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
+# Log Logging in to ${PORTAL_URL}${PORTAL_ENV}
+ # Handle Proxy Warning
+ Title Should Be Login
+ Input Text xpath=//input[@ng-model='loginId'] ${Sta_LoginID}
+ Input Password xpath=//input[@ng-model='password'] ${Sta_Loginpwd}
+ Click Link xpath=//a[@id='loginBtn']
+ Wait Until Page Contains Element xpath=//img[@alt='Onap Logo'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Log Logged in to ${PORTAL_URL}${PORTAL_ENV}
+
+Standared user Navigation Application Link Tab
+ [Documentation] Logs into Portal GUI as application admin
+ #Portal admin Go To Portal HOME
+ Click Element xpath=.//h3[contains(text(),'xDemo App')]/following::div[1]
+ Page Should Contain ONAP Portal
+ Click Element xpath=(.//span[@id='tab-Home'])[1]
+ Set Selenium Implicit Wait 3000
+
+Standared user Navigation Functional Menu
+ [Documentation] Logs into Portal GUI as application admin
+ Click Link xpath=//a[contains(.,'Manage')]
+ Mouse Over xpath=//*[contains(text(),'Technology Insertion')]
+ Click Link xpath= //*[contains(text(),'Infrastructure VNF Provisioning')]
+ Page Should Contain Welcome to VID
+ Click Element xpath=(.//span[@id='tab-Home'])[1]
+ Set Selenium Implicit Wait 3000
+
+
+Standared user Broadcast Notifications
+ [Documentation] Logs into Portal GUI as application admin
+ [Arguments] ${AdminBroadCastMsg}
+ Click element xpath=//*[@id='megamenu-notification-button']
+ Click element xpath=//*[@id='notification-history-link']
+ Wait until Element is visible xpath=//*[@id='app-title'] timeout=10
+ Table Column Should Contain xpath=//*[@id='notification-history-table'] 2 ${AdminBroadCastMsg}
+ log ${AdminBroadCastMsg}
+
+
+Standared user Category Notifications
+ [Documentation] Logs into Portal GUI as application admin
+ [Arguments] ${AdminCategoryMsg}
+ #click element xpath=//*[@id='megamenu-notification-button']
+ #click element xpath=//*[@id="notification-history-link"]
+ Wait until Element is visible xpath=//*[@id='app-title'] timeout=10
+ Table Column Should Contain xpath=//*[@id='notification-history-table'] 2 ${AdminCategoryMsg}
+ log ${AdminCategoryMsg}
+
+Standared user Logout from Portal GUI
+ [Documentation] Logout from Portal GUI
+ Click Element xpath=//div[@id='header-user-icon']
+ Click Button xpath=//button[contains(.,'Log out')]
+ #Confirm Action
+ Title Should Be Login
+
+Portal admin Add New Account
+ Click Link //*[@id="parent-item-App-Account-Management"]
+ Click Button xpath=//button[@ng-click='toggleSidebar()']
+ Set Selenium Implicit Wait 3000
+ Click Button //*[@id="account-onboarding-button-add"]
+ Set Selenium Implicit Wait 3000
+ Input Text //*[@id="account-details-input-name"] ${AppAccountName}
+ Input Text //*[@id="account-details-input-username"] ${AppUserName}
+ Input Text //*[@id="account-details-input-password"] ${AppPassword}
+ Input Text //*[@id="account-details-input-repassword"] ${AppPassword}
+ # Click Button xpath=//*[@ng-click='accountAddDetails.saveChanges()']
+ # #Click Button xpath=//button[@ng-click='admins.openAddNewAdminModal()']
+ #account-details-next-button
+ Click Button xpath=//button[@ng-click='accountAddDetails.saveChanges()']
+
+Portal admin Delete Account
+ Click Link //*[@id="parent-item-App-Account-Management"]
+ Click Button xpath=//button[@ng-click='toggleSidebar()']
+ Set Selenium Implicit Wait 3000
+ Click Button //*[@id="account-onboarding-button-add"]
+ Set Selenium Implicit Wait 3000
+
+Tear Down
+ [Documentation] Close all browsers
+ Close All Browsers
+
+Enhanced Notification on ONAP Portal
+ [Documentation] Runs portal Post request
+ [Arguments] ${data_path} ${data}
+ # Log Creating session ${GLOBAL_PORTAL_SERVER_URL}
+ ${session}= Create Session portal ${PORTAL_URL}
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic amlyYTpfcGFzcw== username=jira password=_pass
+ ${resp}= Post Request portal ${data_path} data=${data} headers=${headers}
+ # Log Received response from portal ${resp.text}
+ [Return] ${resp}
+
+Notification on ONAP Portal
+ [Documentation] Create Config portal
+ ${configportal}= Create Dictionary jira_id=${jira}
+ ${output} = Fill JSON Template File ${portal_Template} ${configportal}
+ ${post_resp} = Enhanced Notification on ONAP Portal ${RESOURCE_PATH} ${output}
+ Should Be Equal As Strings ${post_resp.status_code} 200
+
+Portal Application Account Management
+ [Documentation] Naviage to Application Account Management tab
+ Click Link xpath=//a[@title='App Account Management']
+ Click Button xpath=//button[@id='account-onboarding-button-add']
+ Input Text xpath=//input[@name='name'] JIRA
+ Input Text xpath=//input[@name='username'] jira
+ Input Text xpath=//input[@name='password'] _pass
+ Input Text xpath=//input[@name='repassword'] _pass
+ Click Element xpath=//div[@ng-click='accountAddDetails.saveChanges()']
+ Element Text Should Be xpath=//*[@table-data='serviceList'] JIRA
+
+Portal Application Account Management validation
+ [Documentation] Naviage to user notification tab
+ Click Link xpath=//a[@id='parent-item-User-Notifications']
+ click element xpath=//*[@id="megamenu-notification-button"]
+ Click element xpath=//*[@id="notification-history-link"]
+ Wait until Element is visible xpath=//*[@id="notification-history-table"] timeout=10
+ Table Column Should Contain xpath=//*[@id="notification-history-table"] 1 JIRA
+
+
+Portal AAF new fields
+ [Documentation] Naviage to user Application details tab
+ Click Link xpath=//a[@title='Application Onboarding']
+ Click Element xpath=//td[contains(.,'xDemo App')]
+ Page Should Contain Name Space
+ Page Should Contain Centralized
+ Click Element xpath=//button[@id='button-notification-cancel']
+ Set Selenium Implicit Wait 3000
+
+Portal Change REST URL
+ [Documentation] Naviage to user Application details tab
+ Click Link xpath=//a[@title='Application Onboarding']
+ Click Element xpath=//td[contains(.,'xDemo App')]
+ Input Text xpath=//input[@name='restUrl'] ${PORTAL_XDEMPAPP_REST_URL}
+ Click Element xpath=//button[@id='button-save-app']
+ Set Selenium Implicit Wait 6000
+ Go To ${PORTAL_HOME_PAGE}
+ Wait Until Element Is Visible xpath=//a[@title='Application Onboarding'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+
+Admin widget download
+ Go To ${PORTAL_HOME_URL}
+ Wait until page contains Element xpath=//a[@title='Widget Onboarding'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ click Link xpath=//a[@title='Widget Onboarding']
+ Wait until page contains Element xpath=//table[@class='ng-scope']
+ ${td_id}= get element attribute xpath=//*[contains(text(),'Events')]@id
+ log ${td_id}
+ ${test}= Get Substring ${td_id} -1
+ log ${test}
+ ${download_link_id}= Catenate 'widget-onboarding-div-download-widget-${test}'
+ click Element xpath=//*[@id=${download_link_id}]
+
+Reset widget layout option
+ Go To ${PORTAL_HOME_URL}
+ Wait Until Page Contains Element xpath=//div[@id='widget-boarder'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Execute Javascript document.getElementById('widgets').scrollTo(0,1400)
+ Wait Until Page Contains Element xpath=//*[@id='widget-gridster-Events-icon'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Execute Javascript document.getElementById('widgets').scrollTo(0,1800)
+ Drag And Drop By Offset xpath=//*[@id='widget-gridster-Events-icon'] 500 500
+ Execute Javascript document.getElementById('widgets').scrollTo(0,document.getElementById('widgets').scrollHeight);
+ Execute Javascript document.getElementById('dashboardDefaultPreference').click()
+ Execute Javascript document.getElementById('div-confirm-ok-button').click()
+
+Add Portal Admin
+ Click Link xpath=//a[@id='parent-item-Portal-Admins']
+ Scroll Element Into View xpath=//button[@id='portal-admin-button-add']
+ Click Button xpath=//button[@id='portal-admin-button-add']
+ Input Text xpath=//input[@id='input-user-search'] ${Existing_User}
+ Click Button xpath=//button[@id='button-search-users']
+ Wait Until Page Contains Element xpath=//span[@id='result-uuid-0'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+ Click Element xpath=//span[@id='result-uuid-0']
+ Click Button xpath=//button[@id='pa-search-users-button-save']
+ Click Button xpath=//button[@id='admin-div-ok-button']
+
+
+Delete Portal Admin
+ Wait Until Page Does Not Contain Element xpath=//*[@class='b2b-modal-header']
+ Click Link xpath=//a[@id='parent-item-Portal-Admins']
+ Click Element xpath=//td[contains(.,'portal')]/following::span[@id='1-button-portal-admin-remove']
+ Click Button xpath=//*[@id='div-confirm-ok-button']
diff --git a/tests/portal/testsuites/widget_news.zip b/tests/portal/testsuites/widget_news.zip
new file mode 100644
index 00000000..5c3217be
--- /dev/null
+++ b/tests/portal/testsuites/widget_news.zip
Binary files differ