Note: You are currently viewing documentation for Moodle 3.3. Up-to-date documentation for the latest stable version of Moodle is probably available here: Dataform Tests.

Dataform Tests

From MoodleDocs

Unit tests

Available tests


Dataform instance creation and gradebook integration.


Triggers, captures and validate events for:

  • View
  • Field
  • Filter
  • Entry


Validates access for:

  • entry view
  • entry add
  • entry update
  • entry delete
  • field view
  • field update
  • view access

CSV Import

Import of base patterns of standard fields.

Acceptance tests

Available features


  • Adds a Dataform activity to a course.
  • Adds all standard fields with default settings.
  • Adds all standard views with default settings.
  • Submits a new entry with content in the text field in each view.
  • Sets quick filter
    • Sets quick per page and navigates between pages with the paging bar
    • Filters entries with the quick search
    • Resets the quick filter
  • Adds standard filters with sort and search criteria and applies them to the view
  • Adds advanced (user) filter and applies it to the view
Max entries
Max entries with interval
Not ready
Separate participants


field checkbox
field duration
field file
field number
field picture
field radiobutton
field select
field selectmulti
field text
field textarea
field time
field url


view all submission buttons
  • Scenario: Submit entries with different submission buttons
  • Scenario: Submission should not be allowed when no submission buttons enabled
view aligned
view csv
view grid
view interval
view rss
view tabular

Available steps

Given I start afresh with dataform "DATAFORM_NAME_STRING"

Prepares a fresh environment with the following components and a dataform activity 'Test dataform' in Course 1. Course:

| fullname | shortname | category
| Course 1 | C1 | 0


| username | firstname | lastname | email
| teacher1 | Teacher | 1 |
| assistant1 | Assistant | 1 |
| student1 | Student | 1 |
| student2 | Student | 2 |
| student3 | Student | 3 |


| user | course | role
| teacher1 | C1 | editingteacher
| assistant1 | C1 | teacher
| student1 | C1 | student
| student2 | C1 | student


| name    | description | course  | idnumber |
| Group 1 | Anything    | C1 | G1   |
| Group 2 | Anything    | C1 | G2   |

Group members:

| user     | group  |
| student1 | G1 |        
| student2 | G2 |        

It also resets (truncates) all Dataform tables to remove any records and reset sequences.

This step is essential for any standalone scenario that adds or updates entries with content since such a scenario has to refer to input elements by fixed field ids and entry ids.

Given I go to dataform page "DATAFORM_URL_STRING"

Opens Dataform url.

Given I add a dataform with "DATAFORM_URL_STRING"

Adds a dataform as teacher 1 in course 1 and displays the dataform.

Then the dataform settings should match "FORM_DATA_STRING"

Validates dataform activity settings.

Given I add a test dataform

Adds a test dataform as teacher 1 in course 1 and displays the dataform.

Given I delete this dataform

Deletes the dataform.

Given I go to manage dataform "TAB_NAME_STRING"

Go to the specified manage tab of the current dataform.

Given I add a dataform field "FIELD_TYPE_STRING" with "FORM_DATA_STRING"

Adds a field of the specified type to the current dataform with the provided table data (usually Name).

Given I add a dataform view "VIEW_TYPE_STRING" with "FORM_DATA_STRING"

Adds a view of the specified type to the current dataform with the provided table data (usually Name).

Given I set view "VIEW_NAME_STRING" as default view

Sets a view as the default view of a dataform instance.

Given I add a dataform filter with "FORM_DATA_STRING"

Adds a filter with the specified data to the current dataform.

Given I prepend "TEXT_STRING" to field "FIELD_STRING"

Prepends text to the field's content.

Given I apppend "TEXT_STRING" to field "FIELD_STRING"

Appends text to the field's content.

Given I set dataform field "FIELD_NAME_STRING" options to "OPTIONS_STRING"

Sets a dataform field setting to the given content.

Given I set the field "FIELD_NAME_STRING" to

Sets field value to the specified text passed as PyStringNode.

Given I fill textarea "FIELD_STRING" with "TEXT_STRING"

Fills a textarea with the specified text replacing \n with new lines.

Step values


See also

  • Acceptance testing - information about preparing your Moodle installation for acceptance testing. Note that this is not recommended for production sites.
  • Writing features - general test writing guidelines.