Skip to content
Snippets Groups Projects
resource.robot 23.6 KiB
Newer Older
L4168's avatar
L4168 committed
*** Settings ***
M3079's avatar
M3079 committed
Documentation       A resource file with reusable keywords and variables.
Library     SeleniumLibrary    run_on_failure=nothing
Library     String
L4074's avatar
L4074 committed
Library     DateTime
M3079's avatar
M3079 committed
Library    Collections
M3079's avatar
M3079 committed

L4168's avatar
L4168 committed
*** Variables ***
L4074's avatar
L4074 committed
${SERVER}           %{SITE_URL}
${BROWSER}          ff
M3079's avatar
M3079 committed
${DELAY}            0.5
M3079's avatar
M3079 committed
#${VALID USER} =     ville
${VALID PASSWORD} =     koira
M3079's avatar
M3079 committed
${LOGIN URL}        https://${SERVER}/
M3079's avatar
M3079 committed
${WELCOME URL}      #You can use this if there's a different page after login page.
L4074's avatar
L4074 committed
${LOC_USER}         id=registerUsernameInput            #Generated username.
${LOC_PASSWORD}     id=registerPasswordInput            #Generated password first time.
${LOC_PASSWORD2}    id=registerPasswordVerifyInput      #Generated password verify.
M3079's avatar
M3079 committed
${ZOOMIN}           css=a[class=leaflet-control-zoom-in]        #Zoom in button location
${ZOOMOUT}          css=a[class=leaflet-control-zoom-out]        #Zoom out button location
M3079's avatar
M3079 committed
${INVALID_U}        User does not exist
${INVALID_P}        Invalid password
${SHORT_P}          Validation failed: password must be longer than or equal to 3 characters
${SHORT_U}          Validation failed: name must be longer than or equal to 3 characters
${SHORT_UP}         Validation failed: name must be longer than or equal to 3 characters, password must be longer than or equal to 3 characters
${LONG_U}           Validation failed: name must be shorter than or equal to 31 characters
${LONG_P}           Validation failed: password must be shorter than or equal to 255 characters
${LONG_UP}          Validation failed: name must be shorter than or equal to 31 characters, password must be shorter than or equal to 255 characters
${SU_LP}            Validation failed: name must be longer than or equal to 3 characters, password must be shorter than or equal to 255 characters
${LU_SP}            Validation failed: name must be shorter than or equal to 31 characters, password must be longer than or equal to 3 characters
${ACC_EXISTS}       User already exists
${P_NOMATCH}        Passwords do not match

L4074's avatar
L4074 committed
## New Game /
# B = Button / I = Input
${B_NEWGAME}        id=newGameButton
${B_EDITGAME}       id=editGameButton
${I_NGAMENAME}      id=newGameNameInput
${I_NGAMEDESC}      id=newGameDescriptionInput
${I_NGAMESTART}     id=newGameDateStartInput
L4074's avatar
L4074 committed
${I_NSTARTTIME}     id=newGameTimeStartInput
${I_NGAMESTOP}      id=newGameDateEndInput
${I_NSTOPTIME}      id=newGameTimeEndInput
${B_NSUBMIT}        id=newGameSubmitButton
L4074's avatar
L4074 committed
${L_GAMELIST}       id=changeActiveGameList
${START}

## Edit Game
${I_EGAMENAME}      id=editGameNameInput
${I_EGAMEDESC}      id=editGameDescriptionInput
${I_EGAMESTART}     id=editGameDateStartInput
${I_ESTARTTIME}     id=editGameTimeStartInput
L4074's avatar
L4074 committed
${I_EGAMESTOP}      id=editGameDateEndInput
${I_ESTOPTIME}      id=editGameTimeEndInput
L4074's avatar
L4074 committed
${I_FACTIONNAME}    id=editGameFactionNameInput
${I_FACTIONPASS}    id=editGameFactionPasswordInput
${B_FACTIONADD}     id=editGameFactionSubmitButton
L4074's avatar
L4074 committed
${I_FLAGNAME}       id=editGameObjectivePointDescriptionInput
${I_FLAGMULTI}      id=editGameObjectivePointMultiplierInput
${B_FLAGADD}        id=editGameObjectivePointSubmitButton
${I_CAPTURE}        id=editGameCaptureTimeInput
${I_CONF}           id=editGameConfirmationTimeInput
L4074's avatar
L4074 committed
${B_ESUBMIT}        id=editGameSubmitButton
M3079's avatar
M3079 committed
${B_EDELETE}        id=gameDeleteButton
${E_ECLOSE}         id=closeEditGameFormX
${FACTION1}         Faction1
${FACTION2}         Faction2

## Game List
${B_GAMESELECT}     id=selectGameButton
${testit}           css=button[id^="selecttest_"]
L4074's avatar
L4074 committed

L4074's avatar
L4074 committed
## Join Game
${B_JOINGAME}       id=joinGameButton
${L_SELECTFACTION}  id=selectFactionList
L4074's avatar
L4074 committed
${I_JOINPASS}       id=factionPasswordInput
L4074's avatar
L4074 committed
${B_JOINSUBMIT}     id=joinGameSubmitButton

L4074's avatar
L4074 committed
## Promote
${B_SHOWPLAYERS}    id=showPlayersButton

L4168's avatar
L4168 committed
*** Keywords ***
L4074's avatar
L4074 committed

L4168's avatar
L4168 committed
#Valid Login
Open Browser To Login Page
M3079's avatar
M3079 committed
    Open Browser        ${LOGIN URL}      ${BROWSER}
L4168's avatar
L4168 committed
    Set Window Size     1920        1080
M3079's avatar
M3079 committed
    Set Selenium Speed      ${DELAY}
    Login Page Should be Open

L4168's avatar
L4168 committed
Login Page Should be Open
L4168's avatar
L4168 committed
    Title Should Be     TACS
M3079's avatar
M3079 committed

L4168's avatar
L4168 committed
Go To Login Page
M3079's avatar
M3079 committed
    Go To       ${LOGIN URL}
    Login Page Should be Open

M3079's avatar
M3079 committed
Open Login      #No need anymore since the new website.
M3079's avatar
M3079 committed
    Click Button       id=loginButton

L4168's avatar
L4168 committed
Input Username
M3079's avatar
M3079 committed
    [Arguments]     ${username}
    Input Text      id=loginUsernameInput      ${username}

L4168's avatar
L4168 committed
Input Password
M3079's avatar
M3079 committed
    [Arguments]     ${password}
    Input Text      id=loginPasswordInput        ${password}

L4168's avatar
L4168 committed
Submit Credentials Login
M3079's avatar
M3079 committed
    Click Button        id=submitLoginButton

Welcome Page Should Be Open     #You can use this if there's a different page after login page.
    Location Should Be      ${WELCOME URL}

L4168's avatar
L4168 committed
Log Out
M3079's avatar
M3079 committed
    Click Button        id=signOutButton
M3079's avatar
M3079 committed

L4168's avatar
L4168 committed
Close Login Screen
M3079's avatar
M3079 committed
    Click Element        id=closeLoginFormX

M3079's avatar
M3079 committed
Wait For Log Out Button To Appear       #not in use
M3079's avatar
M3079 committed
    Wait Until Page Contains Element        id=logoutButton      1

L4074's avatar
L4074 committed


L4168's avatar
L4168 committed
#Registration
Open Registration
L4074's avatar
L4074 committed
    Click Button        id=loginRegisterButton
M3079's avatar
M3079 committed

Generate Valid Username     #Generates new username for every test rotation in gitlab. Used in test suite 00.
    ${GENE_username} =      Generate Random String      12       [LETTERS][NUMBERS]
    Set Global Variable    ${VALID USER}    ${GENE_username}

Input Valid Username        #Inputs the generated valid username for login. (Test suite 00)
    Input Text      ${LOC_USER}        ${VALID USER}

Input Valid Password        #Inputs the valid password: ville. (Test suite 00 and 01)
    Input Text      ${LOC_PASSWORD}        ${VALID PASSWORD}
    Input Text      ${LOC_PASSWORD2}        ${VALID PASSWORD}

Generate Username       #Generates a random username        lenght=8     chars=[LETTERS][NUMBERS]
    [Arguments]     ${GNUM_U}
    ${GENE_username} =   Generate Random String      ${GNUM_U}       [LETTERS][NUMBERS]
    Input Text      ${LOC_USER}        ${GENE_username}

Generate Password       #Generates a random password        lenght=8     chars=[LETTERS][NUMBERS]
    [Arguments]     ${GNUM_P}
    ${GENE_password} =   Generate Random String      ${GNUM_P}       [LETTERS][NUMBERS]
    Input Text      ${LOC_PASSWORD}        ${GENE_password}
    Input Text      ${LOC_PASSWORD2}        ${GENE_password}

L4168's avatar
L4168 committed
Generate Differing Password
M3079's avatar
M3079 committed
    [Arguments]     ${GNUM_VP}
    ${GENE_dpassword} =     Generate Random String      ${GNUM_VP}      [LETTERS][NUMBERS]
    ${GENE_dpassword2} =     Generate Random String      ${GNUM_VP}      [LETTERS][NUMBERS]
    Input Text      ${LOC_PASSWORD}      ${GENE_dpassword}
    Input Text      ${LOC_PASSWORD2}      ${GENE_dpassword2}

L4168's avatar
L4168 committed
Submit Credentials Registration
M3079's avatar
M3079 committed
    Click Button        id=submitRegisterButton

M3079's avatar
M3079 committed
Close Registration Screen       #not in use
M3079's avatar
M3079 committed
    Click Element       id=closeRegisterFormX

M3079's avatar
M3079 committed
Back To Login Screen
    Click Element       id=openLoginFormButton

M3079's avatar
M3079 committed

L4074's avatar
L4074 committed

#Zoom frontpage
L4168's avatar
L4168 committed
Zoom In On Frontpage
M3079's avatar
M3079 committed
    Repeat Keyword          3 times         Click Element      ${ZOOMIN}


L4168's avatar
L4168 committed
Zoom Out On Frontpage
M3079's avatar
M3079 committed
    Repeat Keyword          3 times         Click Element       ${ZOOMOUT}

M3079's avatar
M3079 committed

L4074's avatar
L4074 committed

#Drawing tools and map movement frontpage
M3079's avatar
M3079 committed
Drawing A Figure
    [Arguments]     ${X}        ${Y}
    Click Element At Coordinates    css=div[class=leaflet-control-container]        ${X}        ${Y}

Click Leaflet Panel
    [Arguments]     ${TARGET}
L4168's avatar
L4168 committed
    Click Element      css=a[title="${TARGET}"]
M3079's avatar
M3079 committed

Draw A Polyline
    Click Element       css=a[class=leaflet-draw-draw-polyline]
    Drawing A Figure        500     500
    Drawing A Figure        300     500
    Drawing A Figure        300     300
    Drawing A Figure        500     300
    Drawing A Figure        500     500
L4168's avatar
L4168 committed
    Click Leaflet Panel     Delete last point drawn
M3079's avatar
M3079 committed
    Drawing A Figure        500     500
    Drawing A Figure        500     500
    Drawing A Figure        550     300
    Drawing A Figure        550     500
L4168's avatar
L4168 committed
    Click Leaflet Panel     Finish drawing
M3079's avatar
M3079 committed
    Drawing A Figure        600     300
    Drawing A Figure        600     500
L4168's avatar
L4168 committed
    Click Leaflet Panel     Cancel drawing
M3079's avatar
M3079 committed
    Log To Console          \n.Polyline done

Draw A Polygon
    Click Element     css=a[class=leaflet-draw-draw-polygon]
    Drawing A Figure        50      300
    Drawing A Figure        -100    300
    Drawing A Figure        -60     100
L4168's avatar
L4168 committed
    Click Leaflet Panel     Cancel drawing
M3079's avatar
M3079 committed
    Click Element     css=a[class=leaflet-draw-draw-polygon]
    Drawing A Figure        50      300
    Drawing A Figure        -100    300
    Drawing A Figure        -60     100
L4168's avatar
L4168 committed
    Click Leaflet Panel     Delete last point drawn
M3079's avatar
M3079 committed
    Drawing A Figure        -60     100
L4168's avatar
L4168 committed
    Click Leaflet Panel     Finish drawing
M3079's avatar
M3079 committed
    Drawing A Figure        -120    300
    Drawing A Figure        -180    300
    Drawing A Figure        -110    100
    Drawing A Figure        -120    300
    Log To Console          Polygon done

Draw A Rectangle
    Click Element       css=a[class=leaflet-draw-draw-rectangle]
    Drawing A Figure        -200     100
    Drawing A Figure        -0       500
M3079's avatar
M3079 committed
    #Click Leaflet Panel     Cancel drawing
M3079's avatar
M3079 committed
    Log To Console          Rectangle done

Draw A Circle
    Click Element       css=a[class=leaflet-draw-draw-circle]
L4074's avatar
L4074 committed
    Mouse Down          class:leaflet-tile-loaded:nth-child(2)
    Mouse Up            class:leaflet-tile-loaded:nth-child(5)
M3079's avatar
M3079 committed
    #Click Leaflet Panel     Cancel drawing
M3079's avatar
M3079 committed
    Log To Console          Circle done

Draw A Marker
    Click Element       css=a[class=leaflet-draw-draw-marker]
    Drawing A Figure        200     200
M3079's avatar
M3079 committed
    Click Element       css=a[class=leaflet-draw-draw-marker]
M3079's avatar
M3079 committed
    Drawing A Figure        300     300
M3079's avatar
M3079 committed
    #Click Leaflet Panel     Cancel drawing
M3079's avatar
M3079 committed
    Log To Console          Markers done

Edit Layers
    Click Element   css=a[class=leaflet-draw-edit-edit]
    Mouse Down      class:leaflet-editing-icon:first-of-type            #Polyline
    Mouse Up        class:leaflet-tile-loaded:nth-child(2)              #Polyline
    Mouse Down      class:leaflet-editing-icon:nth-last-of-type(7)      #Rectangle
    Mouse Up        class:leaflet-tile-loaded:nth-child(4)              #Rectangle
    Mouse Down      class:leaflet-editing-icon:nth-last-of-type(6)      #Rectangle
    Mouse Up        class:leaflet-tile-loaded:nth-child(5)              #Rectangle
    Mouse Down      class:leaflet-editing-icon:nth-last-of-type(8)      #Polygon
    Mouse Up        class:leaflet-tile-loaded:nth-child(2)              #Polygon
    Mouse Down      class:leaflet-editing-icon:nth-last-of-type(3)      #Circle
    Mouse Up        class:leaflet-tile-loaded:nth-child(4)              #Circle
    Mouse Down      class:leaflet-editing-icon:nth-last-of-type(4)      #Circle
    Mouse Up        class:leaflet-tile-loaded:nth-child(3)              #Circle
    Mouse Down      class:leaflet-marker-icon:last-of-type              #Marker
    Mouse Up        class:leaflet-tile-loaded:nth-child(12)             #Marker
L4168's avatar
L4168 committed
    Click Leaflet Panel     Save changes
M3079's avatar
M3079 committed
    Click Element   css=a[class=leaflet-draw-edit-edit]
    Mouse Down      class:leaflet-marker-icon:nth-last-of-type(2)       #Marker
    Mouse Up        class:leaflet-tile-loaded:nth-child(3)              #Marker
L4168's avatar
L4168 committed
    Click Leaflet Panel     Cancel editing, discards all changes
L4074's avatar
L4074 committed
    Log To Console          Editing done
M3079's avatar
M3079 committed

Delete Layers
L4074's avatar
L4074 committed
    Click Element       css=a[class=leaflet-draw-edit-remove]
    Click Element       class:leaflet-marker-icon:nth-last-of-type(2)       #Marker
L4168's avatar
L4168 committed
    Click Leaflet Panel     Save changes
M3079's avatar
M3079 committed
    Click Element       css=a[class=leaflet-draw-edit-remove]
M3079's avatar
M3079 committed
    Click Element At Coordinates    css=div[class=leaflet-control-container]        50        300
L4168's avatar
L4168 committed
    Click Leaflet Panel     Cancel editing, discards all changes
M3079's avatar
M3079 committed
    Click Element       css=a[class=leaflet-draw-edit-remove]
L4168's avatar
L4168 committed
    Click Element       css=a[title="Clear all layers"]
M3079's avatar
M3079 committed
    Log To Console      Deleting done

Map Movement
    Drag And Drop By Offset    css=div[class=leaflet-control-container]     10     100
    Drag And Drop By Offset    css=div[class=leaflet-control-container]     50     300
    Drag And Drop By Offset    css=div[class=leaflet-control-container]     800     800
    Drag And Drop By Offset    css=div[class=leaflet-control-container]     -50     -50
L4074's avatar
L4074 committed
    Log To Console             Map movement tested

M3079's avatar
M3079 committed
# Leaflet write text

Write Text
#    Select Game
    Click Element       css=a[class=leaflet-draw-draw-textbox]
    Click Element At Coordinates    css=div[class=leaflet-control-container]        100        300
    Input Text      css=div[placeholder="Click out to save"]        Hello
    Click Element At Coordinates    css=div[class=leaflet-control-container]        100        400
    Element Text Should Be      css=div[placeholder="Click out to save"]        Hello       #Tarkistaa onko teksti oikein.
    Sleep       2

    Click Element       css=a[class=leaflet-draw-draw-textbox]
    Click Element At Coordinates    css=div[class=leaflet-control-container]        100        500
    Sleep       4
    Input Text      css=div[placeholder="Click out to save"]       12345
    Click Element At Coordinates    css=div[class=leaflet-control-container]        100        400
    Element Text Should Be      css=div[placeholder="Click out to save"]        12345
    :FOR        ${i}        IN RANGE        1000
    \       ${status}       ${value} =  Run Keyword And Ignore Error    Page Should Contain Element     id={i}
    \       Run Keyword if      '${status}'=='PASS'     Log     {i}
#    :FOR    ${i}        IN RANGE        1000
#    \       Run Keyword if      'id={i}'=='PASS'
#    \       Run Keyword if       '{i}'=='5'        Log     ${i}
#    Click Element       css=a[class=leaflet-draw-edit-edit]
#    Mouse Down      class:leaflet-marker-icon:first-of-type
#    Sleep       2
#    Mouse Up        class:leaflet-tile-loaded:nth-child(4)
#    Sleep       2
#    Click Leaflet Panel     Save changes
#    Sleep       2
#    Click Element       css=a[class=leaflet-draw-edit-edit]
#    Mouse Down      class:leaflet-marker-icon:first-of-type
#    Mouse Up        class:leaflet-tile-loaded:nth-child(1)
#    Sleep       2
#    Click Leaflet Panel     Cancel editing, discards all changes
#    Sleep       2

# ------------------------------------------------------------------------------

M3079's avatar
M3079 committed
# Adding New Task / 09_tasks
M3079's avatar
M3079 committed

Click Tasks
    Click Element       id=tasklistButton

Generate Task Name/Description
    [Arguments]     ${TASK_NAME}      ${TASK_DESCRIPTION}
    ${TASK_N} =     Generate Random String      ${TASK_NAME}            [LETTERS][NUMBERS]
    ${TASK_D} =     Generate Random String      ${TASK_DESCRIPTION}     [LETTERS][NUMBERS]
    Input Text      id=taskNameInput            ${TASK_N}
    Input Text      id=taskDescriptionInput     ${TASK_D}
M3079's avatar
M3079 committed

M3079's avatar
M3079 committed
Create A List
    @{ASD} =        Create List
    Set Global Variable     @{ABC}      @{ASD}

Generate Task Name
    [Arguments]     ${TASK_NAME}
    ${TASK_N} =     Generate Random String      ${TASK_NAME}            [LETTERS][NUMBERS]
    Input Text      id=taskNameInput            ${TASK_N}
    #Set Global Variable     ${ABC}      ${TASK_N}
    Append To List      ${ABC}      ${TASK_N}
    Log     ${ABC}
    [Return]        ${ABC}

Generate Task Description
    [Arguments]     ${TASK_DESCRIPTION}
    ${TASK_D} =     Generate Random String      ${TASK_DESCRIPTION}     [LETTERS][NUMBERS]
    Input Text      id=taskDescriptionInput     ${TASK_D}

M3079's avatar
M3079 committed
Submit Task
    Click Element       id=newTaskSubmitButton

#Wait For Game Select Button To Appear
#    Wait Until Page Contains Element        id=     1

Select Faction
    [Arguments]     ${faction}
    Select From List By Label     id=taskFactionSelect      ${faction}

M3079's avatar
M3079 committed
#
# 10_tasks_edit
#

Task Winner Select
    ${game_name} =      Catenate        SEPARATOR=      id=taskEditButton       @{ABC}[0]
    ${winner} =         Catenate        SEPARATOR=      id=taskWinnerSelect     @{ABC}[0]
    ${save_winner} =    Catenate        SEPARATOR=      id=taskSaveButton       @{ABC}[0]
    Click Tasks
    Click Button       ${game_name}
    Click Button       ${game_name}
    Click Button       ${game_name}
    Select From List By Label       ${winner}       ${FACTION2}
    Click Button        ${save_winner}
    Alert Should Be Present     text=Task updated and closed     action=ACCEPT       timeout=None

Delete Task
    ${delete_game} =    Catenate      SEPARATOR=      id=taskDeleteButton       @{ABC}[1]
    Click Button       ${delete_game}
    Handle Alert        action=DISMISS      #Chooses "Cancel" on the popup.
    Click Button       ${delete_game}
    Alert Should Be Present     text=Are you sure you want to delete task "@{ABC}[1]"    action=ACCEPT       timeout=None
    Alert Should Be Present     text=Task deleted       action=ACCEPT       timeout=None
M3079's avatar
M3079 committed

M3079's avatar
M3079 committed
Delete Completed Task
    ${delete_game} =    Catenate      SEPARATOR=      id=taskDeleteButton       @{ABC}[0]
    Click Button        ${delete_game}
    Alert Should Be Present     text=Are you sure you want to delete task "@{ABC}[0]"    action=ACCEPT       timeout=None
    Alert Should Be Present     text=Task deleted       action=ACCEPT       timeout=None
M3079's avatar
M3079 committed

L4074's avatar
L4074 committed



#
#   New Game
#   Valid name 3-30 / Desc 1 - 255
#${B_NEWGAME}        id=newGameButton
#${I_NGAMENAME}      id=newGameNameInput
#${I_NGAMEDESC}      id=newGameDescriptionInput
#${I_NGAMESTART}     id=newGameDateStartInput
#${I_NSTARTTIME}     id=newGameTimeStartInput
#${I_NGAMESTOP}      id=newGameDateEndInput
#${I_NSTOPTIME}      id=newGameTimeEndInput
#${B_NSUBMIT}        id=newGameSubmitButton
#${L_GAMELIST}       id=changeActiveGameList
#${START}

### Edit Game
#${B_EDITGAME}       id=editGameButton
#${I_EGAMENAME}      id=editGameNameInput
#${I_EGAMEDESC}      id=editGameDescriptionInput
#${I_EGAMESTART}     id=editGameDateStartInput
#${I_ESTARTTIME}     id=editGameTimeStartInput
#${I_EGAMESTOP}      id=editGameDateEndInput
#${I_ESTOPTIME}      id=editGameTimeEndInput
#${B_ESUBMIT}        id=editGameSubmitButton

#${I_FACTIONNAME}    id=factionNameInput
#${I_FACTIONPASS}    id=factionPasswordInput
#${B_FACTIONADD}     id=factionAddButton
#
#${I_FLAGNAME}       id=objectivePointDescriptionInput
#${I_FLAGMULTI}      id=objectivePointMultiplierInput
#${B_FLAGADD}        id=objectivePointAddButton
#${I_CAPTURE}        id=captureTimeInput
#${I_CONF}           id=confirmationTimeInput

L4074's avatar
L4074 committed
Create Game
    Wait Until Page Contains Element        id=newGameButton      1
    Generate Valid Gamename
    Click Button    ${B_NEWGAME}
    Input Text      ${I_NGAMENAME}   ${VALID_GAME}
    Log             GameName set
    Input Text      ${I_NGAMEDESC}   Hello! ~RobotFramework
    Log             Desc set

    # Set Game start time
    Generate Game Start Date And Time   # Generate globals: STARTDATE, STARTTIME
    Input Text      ${I_NGAMESTART}  ${STARTDATE}
    Input Text      ${I_NSTARTTIME}  ${STARTTIME}
    Log             start datetime ok

    # Set Game end time
    Generate Game End Date And Time     # Generate globals: ENDDATE, ENDTIME
    Input Text      ${I_NGAMESTOP}   ${ENDDATE}
    Input Text      ${I_NSTOPTIME}   ${ENDTIME}
M3079's avatar
M3079 committed
    Log             end datetime ok
L4074's avatar
L4074 committed

    Click Button    ${B_NSUBMIT}
L4074's avatar
L4074 committed

Select Game
    ${x} =              Format String           select{}     ${VALID_GAME}
M3079's avatar
M3079 committed
    Wait Until Page Contains Element        id=${x}     1
L4074's avatar
L4074 committed
    Log                 Game Selected

L4074's avatar
L4074 committed
    Wait Until Page Contains Element        id=editGameButton      1
    Click Button    ${B_EDITGAME}
    Input Text      ${I_EGAMENAME}   ${VALID_GAME}  #test_bINk5V
    Log             GameName edited
    Input Text      ${I_EGAMEDESC}   Hello, I Edited this game ~RobotFramework
    Log             Desc edited

    # Set Game start time
    Generate Game Start Date And Time
    Input Text      ${I_EGAMESTART}  ${STARTDATE}
    Input Text      ${I_ESTARTTIME}  ${STARTTIME}
    Log             start edited

    # Set Game end time
    Generate Game End Date And Time
    Input Text      ${I_EGAMESTOP}   ${ENDDATE}
    Input Text      ${I_ESTOPTIME}   ${ENDTIME}
    Log             end edited

M3079's avatar
M3079 committed
    Input Text      ${I_FACTIONNAME}    ${FACTION1}
    Input Text      ${I_FACTIONPASS}    Pass1
    Click Button    ${B_FACTIONADD}

M3079's avatar
M3079 committed
    Input Text      ${I_FACTIONNAME}    ${FACTION2}
    Input Text      ${I_FACTIONPASS}    Pass2
    Click Button    ${B_FACTIONADD}

Edit Objective Points
    Input Text      ${I_FLAGNAME}       1234567
    Input Text      ${I_FLAGMULTI}      3
    Click Button    ${B_FLAGADD}

M3079's avatar
M3079 committed
#    Input Text      ${I_CAPTURE}        240
#    Input Text      ${I_CONF}           30
M3079's avatar
M3079 committed
    #Press Keys          None    PAGE_DOWN
    #Submit Form
M3079's avatar
M3079 committed
    Click Button        ${B_ESUBMIT}
    Alert Should Be Present     text=Game updated     action=ACCEPT       timeout=None
L4074's avatar
L4074 committed
#    Click Element       ${E_ECLOSE}
L4074's avatar
L4074 committed
Generate Valid Gamename     #Generates new name for every test rotation in gitlab. Used in test suite xx.
    ${g_name} =     Generate Random String      6       [LETTERS][NUMBERS]
    ${x} =          Format String           test_{}     ${g_name}
    Set Global Variable     ${VALID_GAME}    ${x}

Randint
    [Arguments]     ${x}    ${y}
    ${random} =     Evaluate    random.randint(${x}, ${y})  modules=random
    [Return]        ${random}

Generate Game Start Date And Time
    ${datetime} =   Get Current Date    result_format=%Y-%m-%d %H:%M

    ${random} =     Randint     1   365
    ${startdate} =  Add Time To Date    ${datetime}   ${random} days

    ${random} =     Randint     0   1339
    ${startdate} =  Add Time To Date    ${startdate}  ${random} minutes

    ${startdate} =          Convert Date    ${startdate}   result_format=%Y-%m-%d %H:%M
    ${date}  ${time} =      Split String    ${startdate}
    Set Global Variable     ${START}        ${startdate}
    Set Global Variable     ${STARTDATE}    ${date}
    Set Global Variable     ${STARTTIME}    ${time}


Generate Game End Date And Time
    ${datetime} =   Set Variable  ${START}

    ${random} =     Randint     1   365
    ${enddate} =    Add Time To Date    ${datetime}  ${random} days

    ${random} =     Randint     0   1339
    ${enddate} =    Add Time To Date    ${enddate}   ${random} minutes

    ${enddate} =    Convert Date        ${enddate}   result_format=%Y-%m-%d %H:%M
    ${date}  ${time} =      Split String  ${enddate}

    Set Global Variable     ${END}        ${enddate}
    Set Global Variable     ${ENDDATE}    ${date}
    Set Global Variable     ${ENDTIME}    ${time}

L4074's avatar
L4074 committed

#
# JOIN GAME AND FACTION
L4074's avatar
L4074 committed
# PROMOTE
L4074's avatar
L4074 committed
#

L4074's avatar
L4074 committed
#Generates new username for every test rotation in gitlab. Used in test suite join_game
Generate Player Username
L4074's avatar
L4074 committed
    ${playername} =     Generate Random String      12       [LETTERS][NUMBERS]
    [Return]            ${playername}

L4074's avatar
L4074 committed
#Inputs the generated valid username for login. (Test suite join_game)
Input Player Username
L4074's avatar
L4074 committed
    [Arguments]     ${playername}
    Input Text      ${LOC_USER}        ${playername}

Join Game
    [Arguments]     ${faction}  ${password}
    Click Button    ${B_JOINGAME}
    Select From List By Label           ${L_SELECTFACTION}  ${faction}
L4074's avatar
L4074 committed
    Input Text      ${I_JOINPASS}       ${password}
L4074's avatar
L4074 committed
    Click Button    ${B_JOINSUBMIT}
    Handle Alert

L4074's avatar
L4074 committed
Go To Players
    Click Button    ${B_SHOWPLAYERS}

Promote
    ${x} =              Format String           select{}     ${VALID_GAME}
    Click Button

L4074's avatar
L4074 committed
Log
    [Arguments]     ${x}
    Log To Console  ${x}
M3079's avatar
M3079 committed

#
#   Delete Game
#

Delete Game
    Click Button       ${testit}
    Click Button       ${B_EDITGAME}
    Click Button       ${B_EDELETE}
    Alert Should Be Present     text=Are you sure you want to delete this game     action=ACCEPT       timeout=None
    Alert Should Be Present     text=Game deleted     action=ACCEPT       timeout=None
    Click Button       ${B_GAMESELECT}

Check If Any Test Games
    ${status}       ${value} =      Run Keyword And Ignore Error        Page Should Contain Button     ${testit}
    [Return]        ${status}




#Select Game
#    ${x} =              Format String           select{}     ${VALID_GAME}
#    Wait Until Page Contains Element        id=${x}     2
#    Click Button        id=${x}
M3079's avatar
M3079 committed
#    Log                 Game Selected