*** Comments ***
Some comments go here
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam a quam erat.
Nam ante lorem, placerat et est a, blandit rutrum magna. Vivamus congue ipsum eget neque posuere, nec egestas risus cursus. Proin nec interdum orci.
Vivamus blandit, elit sed vehicula lobortis, orci massa malesuada nibh, at rutrum lacus quam a metus. Donec velit magna, pulvinar eget metus eu, aliquet sagittis ante.
    ...   Donec egestas neque vel libero finibus hendrerit. Nam tempus quam ut mi interdum vulputate. Mauris ac auctor magna.
Maecenas sollicitudin, tortor nec auctor pellentesque, sapien neque accumsan enim, quis porttitor magna est non nibh.
Pellentesque facilisis luctus nulla, ut dignissim ligula vestibulum ac. Sed sit amet eros non turpis congue facilisis vitae vitae orci.
Morbi et lobortis nibh. Proin blandit, diam ut blandit aliquam, ligula diam posuere lorem, sed malesuada quam massa eu elit. S
uspendisse ultrices velit nec mauris laoreet, eget tristique tortor maximus.

*** Settings ***
Documentation    Simple example demonstrating syntax highlighting.
...              Multiple lines.
...              Thanks to https://spage.fi/highlight-robot !
Library          ExampleLibrary
Test Setup       Test Setup Keyword       argument   argument with ${VARIABLE}
Test Teardown    Test Keyword Teardown    argument   argument with ${VARIABLE}
Suite Setup      Big Suite Setup          ${ARG}     argument with ${VARIABLE}
Suite Teardown   Teardown keyword         argument   argument with ${VARIABLE}
# Comment in here too
Resource            ${RESOURCES}/file.txt
Variables           ${VARIABLES}/file.txt

*** Variables ***
${VARIABLE}      Variable value
@{LIST}          List    variable    here
&{DICT}          Key1=Value1    Key2=Value2

*** Test Cases ***
First example
    [Documentation]    Most amazing
    ...                documentation
    Initialize System
    Do Something
    # Comment
    Result Should Be    ${42}
    Test if something and else something
    A cool suite keyword    that takes a string
    [Teardown]    Cleanup System    # Being a good citizen

Test if something and else something
    [Documentation]    Do not change colors in middle of kw/tc name
    [Setup]    Small Keyword Setup

    Kw for if something and else something
    Do a thing     ${thing}
    Run a for loop
    Run a while loop to end
    #A comment
    Kw for if something and else something
    ${status} =    BuiltIn.Evaluate 0 < ${result} < 10
    Then print    ${status}

Second ${variable} example
    [Documentation]     Oneliner
    [Template]    Keyword
    [Tags]        aaa    bbb    ccc
    argument1   argument2
    argument    ${VARIABLE}
    @{LIST}

Three ${var} example ${var2} last ${var3}
    [Documentation]     Oneliner
    [Tags]    tag1    tag2
    ...       more    tags
    Given system is initialized
    When something is done
    # Comment
    # Another Comment
# Oops this comment is here
                # This comment is way over here!
    And things are ok

    Then result should be "42" but not ${var1} #Anything inside "" should be a string
    Another result should be '23' #also for ''



*** Keywords ***
Result Should Be
    [Arguments]    ${expected}
    ${actual} =    Get Value
    Should be Equal    ${actual}    ${expected}

Then result should be ${expected}
    Result Should Be    ${expected}
    this is also a      $variable
    IF    $var_in_py_expr1 == $var_in_py_expr2
        Call Keyword
    ELSE
        #nothing!!
        Do nothing
    END

Kw for if something and else something
    WHILE   ${var} = ${True}
        IF    $var_in_py_expr1 == $var_in_py_expr2
            Call Keyword
        ELSE
            #nothing!!
            Do nothing
        END
    END

Log items
    [Arguments]    @{items}    ${log_values}=True
    IF    not ${items}
        Log to console    No items.
    ELSE IF    len(${items}) == 1
        IF    ${log_values}
            Log to console    One item: ${items}[0]
        ELSE
            Log to console    One item.
        END
    ELSE
        Log to console    ${{len(${items})}} items.
        IF    ${log_values}
            FOR    ${index}    ${item}    IN ENUMERATE    @{items}    start=1
                Log to console    Item ${index}: ${item}
            END
        END
    END


*** Tasks ***
Process invoice
    Read information from PDF
    Validate information "asd"
    Submit information to backend system
    Validate information is visible in web UI