*** Settings ***

Library  Selenium2Library  timeout=5 seconds  implicit_wait=0.5 seconds

*** Variables ***

${PORT} =  55001
${ZOPE_URL} =  http://localhost:${PORT}
${PLONE_URL} =  ${ZOPE_URL}/plone
${BROWSER} =  Firefox

*** Keywords ***

Start Browser and Wake Plone Up

    Set Selenium Timeout  3s

    ${previous}  Register keyword to run on failure  Close Browser
    Wait until keyword succeeds  2min  3s  Open Browser  ${ZOPE_URL}  browser=${BROWSER}
    Register keyword to run on failure  ${previous}

    Maximize browser window

    Set Selenium Timeout  30s
    Wait until keyword succeeds  30s  1s  Log in  admin  admin
    Log out
    Set Selenium Timeout  3s

Goto Homepage
    Go to   ${PLONE_URL}
    Page should contain  Plone site

Log out
    Go to  ${PLONE_URL}/logout
    Page should contain  logged out

Log in
    [Arguments]  ${userid}  ${password}
    Go to  ${PLONE_URL}/login_form
    Page should contain element  __ac_name
    Input text  __ac_name  ${userid}
    Input text  __ac_password  ${password}
    Click Button  Log in
    Go to  ${PLONE_URL}

Click Overlay Link
    [Arguments]  ${element}
    Click Link  ${element}
    Wait Until Page Contains Element  css=div.pb-ajax div#content-core

Should be above
    [Arguments]  ${locator1}  ${locator2}

    ${locator1-position} =  Get vertical position  ${locator1}
    ${locator2-position} =  Get vertical position  ${locator2}
    Should be true  ${locator1-position} < ${locator2-position}

Open Menu
    [Arguments]  ${elementId}

    Element Should Not Be Visible  css=dl#${elementId} dd.actionMenuContent
    Click link  css=dl#${elementId} dt.actionMenuHeader a
    Wait until keyword succeeds  1  5  Element Should Be Visible  css=dl#${elementId} dd.actionMenuContent

Open User Menu
    Open Menu  portal-personaltools

Open Add New Menu
    Open Menu  plone-contentmenu-factories

Open Display Menu
    Open Menu  plone-contentmenu-display

Open Action Menu
    Open Menu  plone-contentmenu-actions

Click ${name} In Edit Bar
    Element Should Contain  css=div#edit-bar ul#content-views  ${name}
    Click Link  ${name}

Click Actions ${name}
    Open Action Menu
    Element Should Contain  css=dl#plone-contentmenu-actions dd.actionMenuContent  ${name}
    Click Link  ${name}

Click Cut Action
    Click Actions Cut

Click Copy Action
    Click Actions Copy

Click Delete Action
    Click Actions Delete

Click Rename Action
    Click Actions Rename

Add Page
    [arguments]  ${title}

    Open Add New Menu
    Click Link  Page
    Input Text  title  ${title}
    Click Button  Save
    Page Should Contain  Changes saved.

Remove Content
    [arguments]  ${id}

    Go to  ${PLONE_URL}/${id}
    Page Should Contain Element  css=body.section-${id}
    Click Delete Action
    Wait Until Page Contains Element  css=input.destructive
    Click Button  css=input.destructive
    Page Should Contain  Plone site

Rename Content Title
    [arguments]  ${id}  ${new_title}

    Go to  ${PLONE_URL}/${id}
    Page Should Contain Element  css=body.section-${id}
    Click Rename Action
    Wait Until Page Contains Element  css=input#${id}_id
    Input Text  css=input#${id}_title  ${new_title}
    Click Button  Rename All
