Dataform Tests

Jump to: navigation, search

Note: You are currently viewing documentation for Moodle 2.6. Up-to-date documentation for the latest stable version of Moodle may be available here: Dataform Tests.


Unit tests


Create instance

Creates a dataform instance.

Duplicate instance

Creates a duplicate of an existing dataform instance in a specified course. Uses activity backup/restore.

Delete instance

Deletes a dataform instance.

Delete all instances

Deletes all dataform instances in a specified course or in site.

Create view

Creates a dataform view.

Create field

Creates a dataform field.

Create entry

Creates a dataform entry.

Available test cases


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.


  • Test duplicate

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

Available steps

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.

I run dataform scenario "SCENARIO_NAME_STRING" with:

Runs the specified scenario with specified data. See #Scenario templates.

I go to dataform page "DATAFORM_URL_STRING"

Opens Dataform url.

I add a dataform with "DATAFORM_URL_STRING"

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

the dataform settings should match "FORM_DATA_STRING"

Validates dataform activity settings.

I add a test dataform

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

I delete this dataform

Deletes the dataform.

I go to manage dataform "TAB_NAME_STRING"

Go to the specified manage tab of the current dataform.

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).

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).

I set view "VIEW_NAME_STRING" as default view

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

I add a dataform filter with "FORM_DATA_STRING"

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

I prepend "TEXT_STRING" to field "FIELD_STRING"

Prepends text to the field's content.

I apppend "TEXT_STRING" to field "FIELD_STRING"

Appends text to the field's content.

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

Sets a dataform field setting to the given content.

I set the field "FIELD_NAME_STRING" to

Sets field value to the specified text passed as PyStringNode.

I fill textarea "FIELD_STRING" with "TEXT_STRING"

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

Scenario templates

Manage view

Performs view add update delete in the views index.


Scenario: Manage view
    Given I run dataform scenario "manage view" with:
        | viewtype | aligned |

Manage field

Performs field add update delete in the fields index.


Scenario: Manage field
    Given I run dataform scenario "manage field" with:
        | fieldtype | text |

View required field

Tests adding an entry with required field in the specified view.


Scenario: Required field
    Given I run dataform scenario "view required field" with:
        | viewtype      | aligned       |
        | entrytemplate | Entry template|

View submission buttons

Tests the various submission methods in the specified view.


Scenario: Submission buttons
    Given I run dataform scenario "view submission buttons" with:
        | viewtype  | aligned   |
        | actor     | student1  |

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.