*** Settings ***
Documentation    This is RobotFrame work script
Library    ExtendedSelenium2Library
Library    OperatingSystem
Library     	XvfbRobot


*** Variables ***
${PORTAL_URL}		http://portal.api.simpledemo.onap.org:8990
${PORTAL_ENV}            /ONAPPORTALSDK
${PORTAL_LOGIN_URL}                ${PORTAL_URL}${PORTAL_ENV}/login.htm
${PORTAL_HOME_PAGE}        ${PORTAL_URL}${PORTAL_ENV}/welcome
${PORTAL_MICRO_ENDPOINT}    ${PORTAL_URL}${PORTAL_ENV}/commonWidgets
${PORTAL_HOME_URL}                ${PORTAL_URL}${PORTAL_ENV}/applicationsHome
${GLOBAL_APPLICATION_ID}           robot-functional
${GLOBAL_PORTAL_ADMIN_USER}		demo
${GLOBAL_PORTAL_ADMIN_PWD}		demo
${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}        15
${GLOBAL_BUILD_NUMBER}    0
${GLOBAL_VM_PRIVATE_KEY}   ${EXECDIR}/robot/assets/keys/robot_ssh_private_key.pvt


*** Test Cases ***

Portal admin Login To Portal GUI
    [Documentation]   Logs into Portal GUI
#    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[@id='loginId']    ${GLOBAL_PORTAL_ADMIN_USER}
    Input Password    xpath=//input[@id='password']    ${GLOBAL_PORTAL_ADMIN_PWD}
    Click Element    //*[@id="loginBtn"]
    Wait Until Page Contains Element    xpath=//img[@src='app/fusionapp/icons/logo_onap_transbg.png']    ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
    Log    Logged in to ${PORTAL_URL}${PORTAL_ENV}

SDKPortalAdmin Navigation Application Link Tab
    [Documentation]    Logs into Portal GUI as Portal admin
    Comment    Click Element    xpath=.//h3[contains(text(),'xDemo App')]/following::div[1]
    Comment    Go To    ${PORTAL_HOME_PAGE}
    Comment    Dismiss Alert    accept=false
    #Scroll Element Into View    xpath=//span[@id='tab-Home']
    #Click Element    xpath=//span[@id='tab-Home']
    #Click Element    xpath=(//span[@id='tab-xDemo-App']/following::i[@class='ion-close-round'])[1]
    Comment    Click Element    xpath=.//h3[contains(text(),'xDemo App')]/following::div[1]

Validate SDK Sub Menu
    [Documentation]    Logs into SDK GUI as Portal admin
    Page Should Contain    Home
    Page Should Contain    Sample Pages
    Page Should Contain    Reports
    Page Should Contain    Profile
    Page Should Contain    Admin

#Click Sample Pages and validate sub Menu
    #[Documentation]    Click Sample Pages
    #Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
    #Click Link    xpath=//a[@id='parent-item-Sample-Pages']
    #Element Text Should Be    xpath=//a[@title='Collaboration']    Collaboration
    #Element Text Should Be    xpath=//a[@title='Notebook']    Notebook
    #Click Link    xpath=//a[contains(@title,'Collaboration')]
    #Page Should Contain    User List
    #Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
    #Click Link    xpath=//a[@id='parent-item-Sample-Pages']
    #Click Link    xpath=//a[contains(@title,'Notebook')]
    #Element Text Should Be    xpath=//h1[contains(.,'Notebook')]    Notebook

Click Reports and validate sub Menu
    [Documentation]    Click Reports Tab
    #Select frame    xpath=.//*[@id='tabframe-xDemo-App']
    Click Link    xpath=//a[@id='parent-item-Reports']
    Element Text Should Be    xpath=//a[@title='All Reports']    All Reports
    Element Text Should Be    xpath=//a[@title='Create Reports']    Create Reports
    Click Link    xpath=//a[contains(@title,'All Reports')]
    Page Should Contain    Report search
    Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
    Click Link    xpath=//a[@id='parent-item-Reports']
    Click Link    xpath=//a[contains(@title,'Create Reports')]
    Page Should Contain    Report Wizard

Click Profile and validate sub Menu
    [Documentation]    Click Profile Tab
    Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
    Click Link    xpath=//a[@id='parent-item-Profile']
    Element Text Should Be    xpath=//a[@title='Search']    Search
    Element Text Should Be    xpath=//a[@title='Self']    Self
    Click Link    xpath=//a[contains(@title,'Search')]
    Page Should Contain    Profile Search
    Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
    Click Link    xpath=//a[@id='parent-item-Profile']
    Click Link    xpath=//a[contains(@title,'Self')]
    Page Should Contain    Self Profile Detail

Click Admin and validate sub Menu
    [Documentation]    Click Admin Tab
    Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
    Click Link    xpath=//a[@id='parent-item-Admin']
    Element Text Should Be    xpath=//a[@title='Roles']    Roles
    Element Text Should Be    xpath=//a[@title='Role Functions']    Role Functions
    Element Text Should Be    xpath=//a[@title='Cache Admin']    Cache Admin
    Element Text Should Be    xpath=//a[@title='Menus']    Menus
    Element Text Should Be    xpath=//a[@title='Usage']    Usage
    Click Link    xpath=//a[contains(@title,'Roles')]
    Page Should Contain    Roles
    Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
    Click Link    xpath=//a[@id='parent-item-Admin']
    Click Link    xpath=//a[contains(@title,'Role Function')]
    Page Should Contain    Role Function
    Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
    Click Link    xpath=.//a[@id='parent-item-Admin']
    #Select frame    xpath=.//*[@id='tabframe-xDemo-App']
    Click Link    xpath=//a[@id='parent-item-Admin']
    Click Link    xpath=//a[contains(@title,'Cache Admin')]
    Page Should Contain    Cache Regions
    Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
    Click Link    xpath=.//a[@id='parent-item-Admin']
    Click Link    xpath=//a[@id='parent-item-Admin']
    Click Link    xpath=//a[contains(@title,'Menus')]
    Page Should Contain    Admin Menu Items
    Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
    Click Link    xpath=//a[@id='parent-item-Admin']
    Click Link    xpath=//a[@id='parent-item-Admin']
    Click Link    xpath=//a[contains(@title,'Usage')]
    Page Should Contain    Current Usage

Teardown
    [Documentation]    Close All Open browsers
    Close All Browsers

*** Keywords ***