Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-63384

Behat: Support setting multiple fields which have same labels

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Development in progress
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: 3.5.2, 3.6
    • Fix Version/s: None
    • Labels:
    • Testing Instructions:
      Hide

      Edit calendar/tests/behat/calendar.feature and try to make the "I set the following fields to these values" function set the duration for a calendar event to 30 minutes.
      => It doesn't work. All you can achieve is for Behat to select the appropriate radio button.

      Show
      Edit calendar/tests/behat/calendar.feature and try to make the "I set the following fields to these values" function set the duration for a calendar event to 30 minutes. => It doesn't work. All you can achieve is for Behat to select the appropriate radio button.
    • Workaround:
      Hide

      Maybe this can be done with some other Behat function. But in my opinion you shouldn't need extra function calls (in a .feature file) just because you want to address a field that has the same label as another field.

      Show
      Maybe this can be done with some other Behat function. But in my opinion you shouldn't need extra function calls (in a .feature file) just because you want to address a field that has the same label as another field.
    • Affected Branches:
      MOODLE_35_STABLE, MOODLE_36_STABLE
    • Pull 3.5 Branch:
    • Pull Master Branch:
      MDL-63384_master

      Description

      While adding a Behat test for MDL-63119 I noticed that with the function "I set the following fields to these values" I couldn't set certain fields in a form, e.g. the "Duration in minutes" field when creating a new calendar event. I found the problem: That function only ever sets the first field with a given label to the given value. And in the test I was writing you had two fields with the label "Duration in minutes", one of them was just hidden: the first field was the radio button that enabled the actual text input field for the duration. So I needed to both click a radio button and enter text into a text field which is not possible with the function mentioned above.

      As there are cases in the Moodle core where you have multiple fields with labels containing the same text it should be possible to set all these fields in Behat tests. My suggestion is this:

          And I set the following fields to these values:
            | Event title | Mediocre event :( |
            | Description | Wait, this event isn't that great. |
            | Location | |
            | Duration in minutes | |
            | Duration in minutes | 30 |
      

      The first occurrence of a label in the parameter list refers to the first field with such a label (same behavior as before, so backwards compatible), the second to the second and the nth to the nth.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                tschroeder Tim Schroeder
                Reporter:
                tschroeder Tim Schroeder
                Peer reviewer:
                Peter Dias
                Participants:
                Component watchers:
                Andrew Nicols, Jun Pataleta, Michael Hawkins, Shamim Rezaie, Simey Lameze
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated: