AutorÃa | Ultima modificación | Ver Log |
@mod @mod_h5pactivity @core_h5p @_file_upload @_switch_iframe @javascriptFeature: Users can save the current state of an H5P activityIn order to continue an H5P activity where I leftAs a userI need to be able to save the current stateBackground:Given the following "users" exist:| username | firstname | lastname | email || student1 | Student | 1 | student1@example.com || student2 | Student | 2 | student2@example.com || teacher1 | Teacher | 1 | teacher1@example.com |And the following "course" exists:| fullname | Course 1 || shortname | C1 |And the following "course enrolments" exist:| user | course | role || student1 | C1 | student || student2 | C1 | student || teacher1 | C1 | editingteacher |And the following "permission overrides" exist:| capability | permission | role | contextlevel | reference || moodle/h5p:updatelibraries | Allow | editingteacher | System | |And the following "activity" exists:| activity | h5pactivity || course | C1 || name | Awesome H5P package || packagefilepath | h5p/tests/fixtures/filltheblanks.h5p |Scenario: Content state is not saved when enablesavestate is disabledGiven the following config values are set as admin:| enablesavestate | 0 | mod_h5pactivity|And I am on the "Awesome H5P package" "h5pactivity activity" page logged in as student1And I switch to "h5p-player" class iframeAnd I switch to "h5p-iframe" class iframeAnd I set the field with xpath "//input[contains(@aria-label,\"Blank input 1 of 4\")]" to "Narnia"And I switch to the main frameAnd I am on the "Course 1" course pageWhen I am on the "Awesome H5P package" "h5pactivity activity" pageAnd I switch to "h5p-player" class iframeAnd I switch to "h5p-iframe" class iframeThen the field with xpath "//input[contains(@aria-label,\"Blank input 1 of 4\")]" does not match value "Narnia"Scenario: Content state is saved when enablesavestate is enabledGiven the following config values are set as admin:| enablesavestate | 1 | mod_h5pactivity|And I am on the "Awesome H5P package" "h5pactivity activity" page logged in as student1And I switch to "h5p-player" class iframeAnd I switch to "h5p-iframe" class iframeAnd I set the field with xpath "//input[contains(@aria-label,\"Blank input 1 of 4\")]" to "Narnia"And I switch to the main frameAnd I am on the "Course 1" course pageWhen I am on the "Awesome H5P package" "h5pactivity activity" pageAnd I switch to "h5p-player" class iframeAnd I switch to "h5p-iframe" class iframeThen the field with xpath "//input[contains(@aria-label,\"Blank input 1 of 4\")]" matches value "Narnia"Scenario: Content state is not saved for teachers when enablesavestate is enabledGiven the following config values are set as admin:| enablesavestate | 1 | mod_h5pactivity|And I am on the "Awesome H5P package" "h5pactivity activity" page logged in as teacher1And I switch to "h5p-player" class iframeAnd I switch to "h5p-iframe" class iframeAnd I set the field with xpath "//input[contains(@aria-label,\"Blank input 1 of 4\")]" to "Narnia"And I switch to the main frameAnd I am on the "Course 1" course pageWhen I am on the "Awesome H5P package" "h5pactivity activity" pageAnd I switch to "h5p-player" class iframeAnd I switch to "h5p-iframe" class iframeThen the field with xpath "//input[contains(@aria-label,\"Blank input 1 of 4\")]" does not match value "Narnia"Scenario: Content state is reseted when content changesGiven the following config values are set as admin:| enablesavestate | 1 | mod_h5pactivity|And I am on the "Awesome H5P package" "h5pactivity activity" page logged in as student1And I switch to "h5p-player" class iframeAnd I switch to "h5p-iframe" class iframeAnd I set the field with xpath "//input[contains(@aria-label,\"Blank input 1 of 4\")]" to "Narnia"And I switch to the main frameAnd I am on the "Course 1" course pageWhen I am on the "Awesome H5P package" "h5pactivity activity" page logged in as admin# Change the content.And I follow "Edit H5P content"And I switch to "h5p-editor-iframe" class iframeAnd I set the field "Title" to "Capitals"And I switch to the main frameAnd I click on "Save changes" "button"And I switch to "h5p-player" class iframeAnd I switch to "h5p-iframe" class iframeAnd I should see "Check"# Check the content state has been reseted.And I am on the "Awesome H5P package" "h5pactivity activity" page logged in as student1And I switch to "h5p-player" class iframeAnd I switch to "h5p-iframe" class iframeThen I should see "Data Reset"And I should see "This content has changed since you last used it."And I click on "OK" "button"And the field with xpath "//input[contains(@aria-label,\"Blank input 1 of 4\")]" does not match value "Narnia"Scenario: Content state is not reseted when content edition is cancelledGiven the following config values are set as admin:| enablesavestate | 1 | mod_h5pactivity|And I am on the "Awesome H5P package" "h5pactivity activity" page logged in as student1And I switch to "h5p-player" class iframeAnd I switch to "h5p-iframe" class iframeAnd I set the field with xpath "//input[contains(@aria-label,\"Blank input 1 of 4\")]" to "Narnia"And I switch to the main frameAnd I am on the "Course 1" course pageWhen I am on the "Awesome H5P package" "h5pactivity activity" page logged in as admin# Start content edition.And I follow "Edit H5P content"And I switch to "h5p-editor-iframe" class iframeAnd I set the field "Title" to "Capitals"And I switch to the main frameAnd I click on "Cancel" "button"And I switch to "h5p-player" class iframeAnd I switch to "h5p-iframe" class iframeAnd I should see "Check"# Check the content state hasn't been reseted.And I am on the "Awesome H5P package" "h5pactivity activity" page logged in as student1And I should see "Awesome H5P package"And I switch to "h5p-player" class iframeAnd I switch to "h5p-iframe" class iframeThen I should not see "Data Reset"And I should not see "This content has changed since you last used it."And the field with xpath "//input[contains(@aria-label,\"Blank input 1 of 4\")]" matches value "Narnia"Scenario: Content state is removed when an attempt is createdGiven the following config values are set as admin:| enablesavestate | 1 | mod_h5pactivity|# Save state content for student2, to check this data is not removed when student1 finishes their attempt.And I am on the "Awesome H5P package" "h5pactivity activity" page logged in as student2And I switch to "h5p-player" class iframeAnd I switch to "h5p-iframe" class iframeAnd I set the field with xpath "//input[contains(@aria-label,\"Blank input 1 of 4\")]" to "Vallhonesta"# Confirm the content state has been saved properly.And I reload the pageAnd I switch to "h5p-player" class iframeAnd I switch to "h5p-iframe" class iframeAnd the field with xpath "//input[contains(@aria-label,\"Blank input 1 of 4\")]" matches value "Vallhonesta"# Create an attempt for student1.And I am on the "Awesome H5P package" "h5pactivity activity" page logged in as student1And I should not see "Attempts report"When I switch to "h5p-player" class iframeAnd I switch to "h5p-iframe" class iframeAnd I set the field with xpath "//input[contains(@aria-label,\"Blank input 1 of 4\")]" to "Narnia"And I click on "Check" "button"# Check the state content has been removed.And I reload the pageThen I should see "Attempts report"And I am on the "Awesome H5P package" "h5pactivity activity" pageAnd I switch to "h5p-player" class iframeAnd I switch to "h5p-iframe" class iframeAnd the field with xpath "//input[contains(@aria-label,\"Blank input 1 of 4\")]" does not match value "Narnia"And I switch to the main frame# Check the state content for student2 is still there.And I am on the "Awesome H5P package" "h5pactivity activity" page logged in as student2And I switch to "h5p-player" class iframeAnd I switch to "h5p-iframe" class iframeAnd the field with xpath "//input[contains(@aria-label,\"Blank input 1 of 4\")]" matches value "Vallhonesta"