HEX
Server: Apache
System: Linux webm010.cluster103.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User: iestorre (46869)
PHP: 8.0.30
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/iestorre/moodleAW/moodle505/admin/tool/behat/tests/behat/get_and_set_fields.feature
@tool_behat
Feature: Verify that all form fields values can be get and set
  In order to use behat steps definitions
  As a test writer
  I need to verify it all works in real moodle forms

  Background:
    Given the following "courses" exists:
      | fullname | shortname | category |
      | Course 1 | C1 | 0 |
    And the following "users" exists:
      | username | email | firstname | lastname |
      | student1 | s1@asd.com | Student | 1 |
      | student2 | s2@asd.com | Student | 2 |
      | student3 | s3@asd.com | Student | 3 |
    And the following "course enrolments" exists:
      | user | course | role |
      | student1 | C1 | student |
      | student2 | C1 | student |
      | student3 | C1 | student |
      | admin | C1 | editingteacher |
    And the following "groups" exists:
      | name | description | course | idnumber |
      | Group 1 | G1 description | C1 | G1 |
      | Group 2 | G1 description | C1 | G2 |
    And the following "group members" exists:
      | user | group |
      | student1 | G1 |
      | student2 | G1 |
      | student2 | G2 |
      | student3 | G2 |
    And the following "activities" exists:
      | activity | course | idnumber | name | intro | firstpagetitle | wikimode | visible |
      | wiki | C1 | wiki1 | Test this one | Test this one | Test this one | collaborative | 0 |
    And I log in as "admin"
    And I expand "Site administration" node
    And I expand "Appearance" node
    And I follow "Manage tags"
    # Select (multi-select) - We will check "I fill in...".
    And I fill in "otagsadd" with "OT1, OT2, OT3, OT4, OT5"
    And I press "Add official tags"
    And I am on homepage
    And I follow "Course 1"
    And I turn editing mode on
    And I follow "Test this one"
    And I press "Create page"
    # Select (multi-select) - Checking "the select box should contain".
    And the "tags[officialtags][]" select box should contain "OT1"
    And the "tags[officialtags][]" select box should contain "OT2"
    And the "tags[officialtags][]" select box should contain "OT3"
    And the "tags[officialtags][]" select box should contain "OT4"
    And the "tags[officialtags][]" select box should contain "OT5"
    And the "tags[officialtags][]" select box should contain "OT1, OT2, OT3, OT4, OT5"
    And the "tags[officialtags][]" select box should contain "OT5, OT4, OT3, OT2, OT1"
    And the "tags[officialtags][]" select box should not contain "OT6"
    And the "tags[officialtags][]" select box should not contain "OT7"
    And the "tags[officialtags][]" select box should not contain "OT6, OT7"
    # Text (textarea & editor) & Select (multi-select) - Checking "I fill the moodle form with".
    When I fill the moodle form with:
      | HTML format | Student page contents to be tagged |
      | tags[officialtags][] | OT1, OT3, OT5 |
    And I press "Save"
    Then I should see "Student page contents to be tagged" in the "region-main" "region"
    And I should see "OT1" in the ".wiki-tags" "css_element"
    And I should see "OT3" in the ".wiki-tags" "css_element"
    And I should see "OT5" in the ".wiki-tags" "css_element"
    And I should not see "OT2" in the ".wiki-tags" "css_element"
    And I should not see "OT4" in the ".wiki-tags" "css_element"
    And I follow "Edit"
    # Select (multi-select) - Checking "I select from".
    And I select "OT2, OT4" from "tags[officialtags][]"
    And I press "Save"
    And I should see "OT2" in the ".wiki-tags" "css_element"
    And I should see "OT4" in the ".wiki-tags" "css_element"
    And I should not see "OT1" in the ".wiki-tags" "css_element"
    And I should not see "OT3" in the ".wiki-tags" "css_element"
    And I should not see "OT5" in the ".wiki-tags" "css_element"
    And I follow "Edit"
    # Select (multi-select) - Checking "the field should match" and "the field does not match value".
    And the "tags[officialtags][]" field should match "OT2, OT4" value
    And the field "tags[officialtags][]" does not match value "OT4"
    And the field "tags[officialtags][]" does not match value "OT2"
    And the field "tags[officialtags][]" does not match value "OT1, OT3, OT5"
    And I press "Cancel"
    And I follow "Edit settings"
    And I expand all fieldsets
    # Checkbox - Checking "I check".
    And I check "Display description on course page"
    # Checkbox - Checking "I fill the moodle form with:".
    And I fill the moodle form with:
      | Force format | 1 |
    # Checkbox - Checking "the field should match" and "the field does not match value".
    And the "Display description on course page" field should match "1" value
    And the field "Display description on course page" does not match value ""
    And I press "Save and return to course"
    And I should see "Test this one"
    And I follow "Test this one"
    And I follow "Edit settings"
    # Checkbox - Checking "the field should match" and "the following fields match these values".
    And the following fields match these values:
      | Display description on course page | 1 |
      | Default format | HTML |
      | Wiki name | Test this one |
    And the "Force format" field should match "1" value
    # Select (simple) - Checking "I fill the moodle form with:".
    And I fill the moodle form with:
      | Default format | NWiki |
      | Display description on course page | |
    # Checkbox - Checking "I uncheck".
    And I uncheck "Force format"
    # Select (simple) - Checking "I select from".
    And I select "Separate groups" from "Group mode"
    And I press "Save and display"
    And I follow "Edit settings"
    And the following fields match these values:
      | Default format | NWiki |
      | Group mode | Separate groups |
      | Display description on course page | |
      | Force format | |
    # All fields - Checking "the following fields do not match these values".
    And the following fields do not match these values:
      | Wiki name | Test this one baby |
      | Default format | HTML |
      | Force format | 1 |
    And I press "Cancel"
    And I follow "Course 1"
    # Radio - Checking "I check" and "the field should match".
    And I add a "Choice" to section "1" and I fill the form with:
      | Choice name | Test choice name |
      | Description | Test choice description |
      | Allow choice to be updated | Yes |
      | Option 1 | one |
      | Option 2 | two |
      | Option 3 | three |
    And I follow "Test choice name"
    And I check "one"
    And I press "Save my choice"
    And the "one" field should match "1" value
    And the "two" field should match "" value

  Scenario: with JS disabled all form fields getters and setters works as expected

  @javascript
  Scenario: with JS enabled all form fields getters and setters works as expected
    Then I follow "Course 1"
    And I expand "Users" node
    And I follow "Groups"
    # Select (multi-select & AJAX) - Checking "I select from" and "select box should contain".
    And I select "Group 2" from "groups"
    And the "members" select box should contain "Student 2"
    And the "members" select box should contain "Student 3"
    And the "members" select box should not contain "Student 1"
    And I select "Group 1" from "groups"
    And the "members" select box should contain "Student 1"
    And the "members" select box should contain "Student 2"
    And the "members" select box should not contain "Student 3"
    # Checkbox (AJAX) - Checking "I check" and "I fill the moodle form with".
    And I follow "Course 1"
    And I add a "Lesson" to section "1"
    And I fill the moodle form with:
      | Name | Test lesson |
      | available[enabled] | 1 |
    And I check "deadline[enabled]"
    # Checkbox (AJAX) - Checking "field should match" before saving.
    And the "available[enabled]" field should match "1" value
    And the "available[day]" "field" should be enabled
    And the "deadline[enabled]" field should match "1" value
    And I press "Save and display"
    And I follow "Edit settings"
    And the "available[enabled]" field should match "1" value
    And the "available[day]" "field" should be enabled
    And the "deadline[enabled]" field should match "1" value
    And I press "Cancel"