Newer
Older
Documentation A resource file with reusable keywords and variables.
Library SeleniumLibrary run_on_failure=nothing
Library String
${WELCOME URL} #You can use this if there's a different page after login page.
${LOC_USER} id=registerUsernameInput #Generated username.
${LOC_PASSWORD} id=registerPasswordInput #Generated password first time.
${LOC_PASSWORD2} id=registerPasswordVerifyInput #Generated password verify.
${ZOOMIN} css=a[class=leaflet-control-zoom-in] #Zoom in button location
${ZOOMOUT} css=a[class=leaflet-control-zoom-out] #Zoom out button location
${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
## 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
${I_NSTARTTIME} id=newGameTimeStartInput
${I_NGAMESTOP} id=newGameDateEndInput
${I_NSTOPTIME} id=newGameTimeEndInput
${B_NSUBMIT} id=newGameSubmitButton
${L_GAMELIST} id=changeActiveGameList
${START}
## Edit Game
${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
[Arguments] ${username}
Input Text id=loginUsernameInput ${username}
[Arguments] ${password}
Input Text id=loginPasswordInput ${password}
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}
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}
[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}
Drawing A Figure
[Arguments] ${X} ${Y}
Click Element At Coordinates css=div[class=leaflet-control-container] ${X} ${Y}
Click Leaflet Panel
[Arguments] ${TARGET}
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
Drawing A Figure 500 500
Drawing A Figure 500 500
Drawing A Figure 550 300
Drawing A Figure 550 500
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
Click Element css=a[class=leaflet-draw-draw-polygon]
Drawing A Figure 50 300
Drawing A Figure -100 300
Drawing A Figure -60 100
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
Log To Console Rectangle done
Draw A Circle
Click Element css=a[class=leaflet-draw-draw-circle]
Mouse Down class:leaflet-tile-loaded:nth-child(2)
Mouse Up class:leaflet-tile-loaded:nth-child(5)
Log To Console Circle done
Draw A Marker
Click Element css=a[class=leaflet-draw-draw-marker]
Drawing A Figure 200 200
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
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
Click Element css=a[class=leaflet-draw-edit-remove]
Click Element class:leaflet-marker-icon:nth-last-of-type(2) #Marker
Click Element At Coordinates css=div[class=leaflet-control-container] 50 300
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
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
# 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
# ------------------------------------------------------------------------------
# Adding New Task
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}
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
#
# 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
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}
Log end tadedime ok
Click Button ${B_NSUBMIT}
Select Game
Select From List By Label ${L_GAMELIST} ${VALID_GAME}
Log Game Selected
Edit Game
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}
Click Button ${B_ESUBMIT}
Log end edited
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}
Log
[Arguments] ${x}
Log To Console ${x}