diff --git a/test/csit/tests/portal/testsuites/test1.robot b/test/csit/tests/portal/testsuites/test1.robot
index a6b91fa..14f64d5 100644
--- a/test/csit/tests/portal/testsuites/test1.robot
+++ b/test/csit/tests/portal/testsuites/test1.robot
@@ -10,16 +10,13 @@
 Library           eteutils/OSUtils.py
 Library 		eteutils/StringTemplater.py
 Library     	XvfbRobot
-#Resource   ../resources/browser_setup.robot
 Resource        json_templater.robot
 
 
 *** Variables ***
-#${PORTAL_URL}      http://%{DOCKER_IP}:8989
 #${PORTAL_URL}      http://%{HOST_IP}:8989
 #${PORTAL_URL}		http://localhost:8989
 ${PORTAL_URL}		http://portal.api.simpledemo.openecomp.org:8989
-#${PORTAL_URL}		http://104.239.203.25:8989
 ${PORTAL_ENV}            /ECOMPPORTAL
 ${PORTAL_LOGIN_URL}                ${PORTAL_URL}${PORTAL_ENV}/login.htm
 ${PORTAL_HOME_PAGE}        ${PORTAL_URL}${PORTAL_ENV}/applicationsHome
@@ -28,7 +25,7 @@
 ${App_First_Name}    appdemo    
 ${App_Last_Name}    demo
 ${App_Email_Address}    appdemo@onap.com
-${App_LoginID}    appdemo 
+${App_LoginID}     appdemo 
 ${App_Loginpwd}    demo123456!
 ${App_LoginPwdCheck}    demo123456!
 ${Sta_First_Name}    stademo   
@@ -65,7 +62,6 @@
 ${GLOBAL_VM_PRIVATE_KEY}   ${EXECDIR}/robot/assets/keys/robot_ssh_private_key.pvt
 ${jira}    jira
 ${RESOURCE_PATH}    ECOMPPORTAL/auxapi/ticketevent
-${GLOBAL_PORTAL_SERVER_URL}         http://vm-ep-dev3.client.research.att.com:8989/
 ${portal_Template}    ${CURDIR}/portal.template
 
 
@@ -74,152 +70,123 @@
 
 Portal Health Check    
      Run Portal Health Check
-	 
-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}    
-    Log    Logged in to ${PORTAL_URL}${PORTAL_ENV}	 
-	 
-	 
-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
+     
+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 R1 Release for AAF
+   [Documentation]    ONAP Portal R1 functionality for AAF test    
+      Portal AAF new fields    
+    
+Create Microse service onboarding
+    Portal admin Microservice Onboarding
+    
+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
+    
+#Create a Test user for Application Admin
+#     Portal admin Add Application admin User New user -Test
  
-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(.,'Virtual Infrastructure Deployment')]
-#    Page Should Contain    Name Space
-#    Page Should Contain    Centralized
-#	Click Element    xpath=//button[@id='button-notification-cancel']
-	
-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']    1    Test Microservice
-     #Element Text Should Be    xpath=//*[@table-data='serviceList']    Test Microservice    
-     
-     
-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'] 
-	 
-	 
-Notification functionality 
-    [Documentation]    Notification functionality
-    #Setup Browser
-    ${AdminBroadCastMsg}=    Portal Admin Broadcast Notifications 
-    set global variable    ${AdminBroadCastMsg} 
-
-
-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	
-	
-	
-	
-#Portal Admin functionality 
-#    [Documentation]    ONAP Portal Admin functionality  test
-    #Setup Browser
-#    Portal admin Login To Portal GUI
-#    Portal admin Microservice Onboarding
-#    Portal Admin Create Widget for All users
-#    Portal Admin Delete Widget for All users 
-#    Portal Admin Create Widget for Application Roles
-#    Portal Admin Delete Widget for Application Roles 
-#    Portal admin Add Application admin User New user -Test
-#    Portal admin Add Standard User New user
-#    Portal admin Add Application Admin Exiting User -APPDEMO
-#    Portal admin Add Application Admin Exiting User 
-#    Portal admin Delete Application Admin Existing User
-#    Portal admin Add Standard User Existing user  
-#    Portal admin Edit Standard User Existing user 
-#    Portal admin Delete Standard User Existing user
-#    Functional Top Menu Get Access   
-#    Functional Top Menu Contact Us
-#    Portal admin Edit Functional menu
-#    ${AdminBroadCastMsg}=    Portal Admin Broadcast Notifications 
-#    set global variable    ${AdminBroadCastMsg}
-#    ${AdminCategoryMsg}=   Portal Admin Category Notifications
-#    set global variable    ${AdminCategoryMsg}
-#    Portal admin Logout from Portal GUI
+#Create a Test user for Standared User    
+#     Portal admin Add Standard User New user
     
+#Create a Test user for Existing User    
+#     Portal admin Add Application Admin Exiting User -APPDEMO
     
-#Application Admin functionality 
-#   [Documentation]    ONAP Application Admin functionality test 
-#   Application admin Login To Portal GUI
-#   Application Admin Navigation Application Link Tab 
-#   Application Admin Navigation Functional Menu
-#   Application admin Add Standard User Existing user  
-#   Application admin Edit Standard User Existing user 
-#   Application admin Delete Standard User Existing user
-#   Application admin Logout from Portal GUI
+#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
     
-#Standared User functionality 
-#    [Documentation]    ONAP Standared User functionality test     
-#     Standared user Login To Portal GUI
-#     Standared user Navigation Application Link Tab
-#     Standared user Navigation Functional Menu 
-#     Standared user Broadcast Notifications    ${AdminBroadCastMsg} 
-#     Standared user Category Notifications    ${AdminCategoryMsg} 
+#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 
    
+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} 
+          
+    
+Logout from Portal GUI as Portal Admin
+     Portal admin Logout from Portal GUI
+    
+#Login To Portal GUI as APP Admin    
+#     Application admin Login To Portal GUI
+    
+#Navigate Application Link as APP Admin  
+#     Application Admin Navigation Application Link Tab 
+    
+#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 
+
+#Logout from Portal GUI as APP Admin   
+#    Application admin Logout from Portal GUI
+   
+   
+#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}      
+      
+
 Teardown  
-    [Documentation]    Close All Open browsers     
-    Close All Browsers    
+     [Documentation]    Close All Open browsers     
+     Close All Browsers    
     
 
     
@@ -257,10 +224,6 @@
     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}    
@@ -280,10 +243,10 @@
 Portal admin Login To Portal GUI
     [Documentation]   Logs into Portal GUI
     ## Setup Browser Now being managed by test case
-    #Setup Browser
+#    Setup Browser
 	Start Virtual Display    1920    1080
 	Open Browser    ${PORTAL_LOGIN_URL}    chrome
-    #Go To    ${PORTAL_LOGIN_URL}
+#    Go To    ${PORTAL_LOGIN_URL}
     Maximize Browser Window
     Set Selenium Speed    ${GLOBAL_SELENIUM_DELAY}
     Set Browser Implicit Wait    ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
@@ -320,22 +283,22 @@
     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}   
+    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]
+    Scroll Element Into View    xpath=(//input[@value='Select application']/following::*[contains(text(),'DMaaP Bus Ctrl' )])[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 Element    xpath=(//li[contains(.,'DMaaP Bus Ctrl' )])[2]
+    #Select From List    xpath=(//input[@value='Select application']/following::*[contains(text(),'DMaaP Bus Ctrl')])[1]   DMaaP Bus Ctrl
     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' )]
+    Click Element    xpath=//li[contains(.,'DMaaP Bus Ctrl' )]
     Input Text    xpath=//input[@id='input-table-search']    ${Existing_User}
     Element Text Should Be      xpath=(//span[contains(.,'portal')])[1]   ${Existing_User}
     
@@ -343,7 +306,7 @@
 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=//*[@id='select-app-DMaaP-Bus-Ctrl']/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']
@@ -367,18 +330,19 @@
     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']
+    #Scroll Element Into View    xpath=//div[@id='div-app-name-dropdown-DMaaP-Bus-Ctrl']
+    Click Element    xpath=//*[@id='div-app-name-dropdown-DMaaP-Bus-Ctrl']
+    Click Element    xpath=//*[@id='div-app-name-DMaaP-Bus-Ctrl']/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}
+     Click Element    xpath=//li[contains(.,'DMaaP Bus Ctrl')]
+	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(.,'appdemo')] )[1]   ${App_First_Name}
     
     
 Portal admin Add Standard User New user
@@ -396,18 +360,19 @@
     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']
+    #Scroll Element Into View    xpath=//div[@id='div-app-name-dropdown-DMaaP-Bus-Ctrl']
+    Click Element    xpath=//*[@id='div-app-name-dropdown-DMaaP-Bus-Ctrl']
+    Click Element    xpath=//*[@id='div-app-name-DMaaP-Bus-Ctrl']/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} 
+     Click Element    xpath=//li[contains(.,'DMaaP Bus Ctrl')]
+	 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} 
     
     
     
@@ -416,6 +381,7 @@
     Click Link    xpath=//a[@title='Users']
     Page Should Contain      Users
 	Click Button	xpath=//button[@ng-click='toggleSidebar()']
+	Set Selenium Implicit Wait    3000
     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']    ${Test_First_Name}
@@ -426,18 +392,19 @@
     Input Text    xpath=//input[@ng-model='searchUsers.newUser.loginPwdCheck']    ${Test_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']
+    #Scroll Element Into View    xpath=//div[@id='div-app-name-dropdown-DMaaP-Bus-Ctrl']
+    Click Element    xpath=//*[@id='div-app-name-dropdown-DMaaP-Bus-Ctrl']
+    Click Element    xpath=//*[@id='div-app-name-DMaaP-Bus-Ctrl']/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']    ${Test_First_Name}
-    Element Text Should Be      xpath=(//span[contains(.,'appdemo')] )[1]   ${Test_First_Name} 
+     Click Element    xpath=//li[contains(.,'DMaaP Bus Ctrl')]
+	 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} 
     
     
     
@@ -454,17 +421,18 @@
     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]
+    Scroll Element Into View    xpath=(//input[@value='Select application']/following::*[contains(text(),'DMaaP Bus Ctrl' )])[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 Element    xpath=(//li[contains(.,'DMaaP Bus Ctrl' )])[2]
+    #Select From List    xpath=(//input[@value='Select application']/following::*[contains(text(),'DMaaP Bus Ctrl')])[1]   DMaaP Bus Ctrl
     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' )]
+    Click Element    xpath=//li[contains(.,'DMaaP Bus Ctrl' )]
+	
     Input Text    xpath=//input[@id='input-table-search']    ${App_First_Name}
     Element Text Should Be      xpath=(//span[contains(.,'appdemo')])[1]   ${App_First_Name}   
     
@@ -484,8 +452,8 @@
      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-DMaaP-Bus-Ctrl']
+     Click Element    xpath=//*[@id='div-app-name-DMaaP-Bus-Ctrl']/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']
      
@@ -493,7 +461,7 @@
      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
+     #Select From List    xpath=//input[@value='Select application']    DMaaP Bus Ctrl
      #Click Link    xpath=//a[@title='Users']
      #Page Should Contain      Users
      #Focus    xpath=//input[@name='dropdown1']
@@ -501,8 +469,8 @@
      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')]
+     Click Element    xpath=//li[contains(.,'DMaaP Bus Ctrl')]
+     #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
      
@@ -510,15 +478,15 @@
 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']
+     Click Element    xpath=//*[@id='div-app-name-dropdown-DMaaP-Bus-Ctrl']
+     Click Element    xpath=//*[@id='div-app-name-DMaaP-Bus-Ctrl']/following::input[@id='Standard-User-checkbox']
+     Click Element    xpath=//*[@id='div-app-name-DMaaP-Bus-Ctrl']/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')]
+     #Click Element    xpath=//li[contains(.,'DMaaP Bus Ctrl')]
      Input Text    xpath=//input[@id='input-table-search']    ${Existing_User}
      Element Text Should Be      xpath=(.//*[@id='rowheader_t1_0'])[2]   System Administrator
      
@@ -526,8 +494,8 @@
  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]
+     Scroll Element Into View    xpath=//*[@id='div-app-name-DMaaP-Bus-Ctrl']/following::*[@id='app-item-delete'][1]
+     Click Element    xpath=//*[@id='div-app-name-DMaaP-Bus-Ctrl']/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}
@@ -565,8 +533,8 @@
     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')]
+    Scroll Element Into View    xpath=//li[contains(.,'DMaaP Bus Ctrl')]
+    Click Element    xpath=//li[contains(.,'DMaaP Bus Ctrl')]
     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']
@@ -580,6 +548,7 @@
      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
@@ -604,8 +573,8 @@
      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')]
+     Scroll Element Into View    xpath=//li[contains(.,'DMaaP Bus Ctrl')]
+     Click Element    xpath=//li[contains(.,'DMaaP Bus Ctrl')]
      Click Element     xpath=//*[@name='desc']
      Input Text    xpath=//input[@name='url']    ${PORTAL_MICRO_ENDPOINT}
      Click Element    xpath=//input[@id='microservice-details-input-security-type']
@@ -646,9 +615,10 @@
      #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')]
+    Click Element    xpath=//li[contains(.,'DMaaP Bus Ctrl')]
      #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 Button	xpath=//button[@ng-click='toggleSidebar()']
      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
@@ -664,13 +634,13 @@
     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-VID 
-    Input Text    xpath=//*[@name='desc']    ONAP VID 
+    Input Text    xpath=//*[@name='name']    ONAP-DMaaP 
+    Input Text    xpath=//*[@name='desc']    ONAP DMaaP 
     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=//*[@id="DMaaP-Bus-Ctrl-checkbox"] 
     Click element    xpath=//*[@name='desc'] 
     click element    xpath=//*[@id="app-select-Select Roles"] 
     click element    xpath=//*[@id="Standard-User-checkbox"] 
@@ -683,8 +653,8 @@
     #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 
+    Click Element    xpath=//li[contains(.,'DMaaP Bus Ctrl')]
+    Page Should Contain    ONAP-DMaaP 
     Set Selenium Implicit Wait    3000 
     GO TO    ${PORTAL_HOME_PAGE}
     
@@ -692,21 +662,22 @@
     
     
  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')]
+    Click Element    xpath=//li[contains(.,'DMaaP Bus Ctrl')]
+     #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 Button	xpath=//button[@ng-click='toggleSidebar()']
+     Click Element    xpath=(.//*[contains(text(),'ONAP-DMaaP')]/following::div[@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
+     Element Should Not Contain     xpath=//*[@table-data='portalAdmin.portalAdminsTableData']    ONAP-DMaaP
      #Is Element Visible    xpath=//*[@table-data='portalAdmin.portalAdminsTableData']
      #Table Column Should Contain    .//*[@table-data='portalAdmin.portalAdminsTableData']    0       ONAP-VID    
-     #Set Selenium Implicit Wait    3000   
+     #Set Selenium Implicit Wait    3000
     
     
     
@@ -770,7 +741,7 @@
     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] 
+    Click Element    xpath=//*[contains(text(),'DMaaP Bus Ctrl')]/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 
@@ -785,7 +756,7 @@
      [Return]     ${AdminCategoryMsg}  
     
     
- Portal admin Logout from Portal GUI
+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')]
@@ -839,20 +810,20 @@
      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=//*[@id='div-app-name-dropdown-DMaaP-Bus-Ctrl']
+     Click Element    xpath=//*[@id='div-app-name-DMaaP-Bus-Ctrl']/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
+     #Select From List    xpath=//input[@value='Select application']    DMaaP Bus Ctrl
      #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')]
+     Click Element    xpath=//li[contains(.,'DMaaP Bus Ctrl')]
      Input Text    xpath=//input[@id='input-table-search']    ${Existing_User}
      Element Text Should Be      xpath=(.//*[@id='rowheader_t1_0'])[2]   Standard User
      
@@ -860,15 +831,15 @@
 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']
+     Click Element    xpath=//*[@id='div-app-name-dropdown-DMaaP-Bus-Ctrl']
+     Click Element    xpath=//*[@id='div-app-name-DMaaP-Bus-Ctrl']/following::input[@id='Standard-User-checkbox']
+     Click Element    xpath=//*[@id='div-app-name-DMaaP-Bus-Ctrl']/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')]
+     #Click Element    xpath=//li[contains(.,'DMaaP Bus Ctrl')]
      Input Text    xpath=//input[@id='input-table-search']    ${Existing_User}
      Element Text Should Be      xpath=(.//*[@id='rowheader_t1_0'])[2]   System Administrator
      
@@ -876,8 +847,8 @@
 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]
+     Scroll Element Into View    xpath=//*[@id='div-app-name-DMaaP-Bus-Ctrl']/following::*[@id='app-item-delete'][1]
+     Click Element    xpath=//*[@id='div-app-name-DMaaP-Bus-Ctrl']/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}
@@ -968,7 +939,7 @@
 Enhanced Notification on ONAP Portal
     [Documentation]     Runs portal Post request
     [Arguments]     ${data_path}     ${data}
-#   Log     Creating session         ${PORTAL_URL}
+#   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}
@@ -1010,9 +981,10 @@
 Portal AAF new fields    
      [Documentation]    Naviage to user Application details tab 
     Click Link    xpath=//a[@title='Application Onboarding']
-    Click Element    xpath=//td[contains(.,'Virtual Infrastructure Deployment')]
+    Click Element    xpath=//td[contains(.,'DMaaP Bus Ctrl')]
     Page Should Contain    Name Space
     Page Should Contain    Centralized
 	Click Element    xpath=//button[@id='button-notification-cancel']
 	
 	
+	
