Merge branch 'MDL-55809-master' of https://github.com/xow/moodle
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Tue, 13 Dec 2016 19:05:15 +0000 (20:05 +0100)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Tue, 13 Dec 2016 19:05:15 +0000 (20:05 +0100)
425 files changed:
.travis.yml
admin/blocks.php
admin/renderer.php
admin/tests/behat/display_short_names.feature
admin/tests/behat/filter_users.feature
admin/tool/availabilityconditions/tests/behat/manage_conditions.feature
admin/tool/behat/tests/behat/data_generators.feature
admin/tool/behat/tests/behat/edit_permissions.feature
admin/tool/behat/tests/behat/get_and_set_fields.feature
admin/tool/customlang/db/upgrade.php
admin/tool/log/db/upgrade.php
admin/tool/log/store/database/db/upgrade.php
admin/tool/log/store/standard/db/upgrade.php
admin/tool/lp/tests/behat/framework_crud.feature
admin/tool/lp/tests/behat/plan_crud.feature
admin/tool/lp/tests/behat/plan_workflow.feature
admin/tool/lp/tests/behat/template_crud.feature
admin/tool/monitor/db/upgrade.php
admin/tool/recyclebin/tests/behat/backup_user_data.feature
admin/tool/recyclebin/tests/behat/basic_functionality.feature
admin/tool/spamcleaner/index.php
admin/tool/uploaduser/tests/behat/upload_users.feature
admin/tool/usertours/db/upgrade.php
admin/tool/usertours/tests/behat/create_tour.feature
admin/tool/usertours/tests/behat/tour_filter.feature
auth/cas/db/upgrade.php
auth/ldap/db/upgrade.php
auth/manual/db/upgrade.php
auth/mnet/db/upgrade.php
auth/tests/behat/displayloginfailures.feature [new file with mode: 0644]
availability/condition/grade/tests/behat/availability_grade.feature
availability/condition/profile/tests/behat/availability_profile.feature
availability/tests/behat/edit_availability.feature
backup/backup.class.php
backup/util/ui/tests/behat/behat_backup.php
backup/util/ui/tests/behat/restore_moodle2_courses.feature
badges/tests/behat/add_badge.feature
blocks/activity_modules/tests/behat/block_activity_modules.feature
blocks/activity_results/tests/behat/addblockinactivity.feature
blocks/activity_results/tests/behat/addunsupportedactivity.feature
blocks/activity_results/tests/behat/highscoreswithoutgroups.feature
blocks/activity_results/tests/behat/highscoreswithscales.feature
blocks/activity_results/tests/behat/highscoreswithscalesandgroups.feature
blocks/activity_results/tests/behat/highscoreswithseperategroups.feature
blocks/activity_results/tests/behat/highscoreswithvisiblegroups.feature
blocks/activity_results/tests/behat/lowscoreswithoutgroups.feature
blocks/activity_results/tests/behat/lowscoreswithscales.feature
blocks/activity_results/tests/behat/lowscoreswithscalesandgroups.feature
blocks/activity_results/tests/behat/lowscoreswithseperategroups.feature
blocks/activity_results/tests/behat/lowscoreswithvisiblegroups.feature
blocks/badges/db/upgrade.php
blocks/badges/tests/behat/block_badges_dashboard.feature
blocks/blog_recent/tests/behat/block_blog_recent_frontpage.feature
blocks/blog_tags/tests/behat/blogtag.feature
blocks/calendar_month/db/upgrade.php
blocks/calendar_month/tests/behat/block_calendar_month.feature
blocks/calendar_upcoming/db/upgrade.php
blocks/community/db/upgrade.php
blocks/completionstatus/db/upgrade.php
blocks/completionstatus/tests/behat/block_completionstatus.feature
blocks/completionstatus/tests/behat/block_completionstatus_activity_completion.feature
blocks/course_overview/tests/behat/block_course_overview.feature
blocks/course_summary/db/upgrade.php
blocks/glossary_random/tests/behat/glossary_random_frontpage.feature
blocks/html/db/upgrade.php
blocks/html/tests/behat/configuring_html_block.feature
blocks/html/tests/behat/multiple_instances.feature
blocks/navigation/db/upgrade.php
blocks/navigation/tests/behat/expand_courses_node.feature
blocks/navigation/tests/behat/participants_link.feature
blocks/navigation/tests/behat/view_my_courses.feature
blocks/news_items/tests/behat/display_news.feature
blocks/quiz_results/db/upgrade.php
blocks/recent_activity/db/upgrade.php
blocks/recent_activity/tests/behat/structural_changes.feature
blocks/rss_client/db/upgrade.php
blocks/search_forums/tests/behat/block_search_forums_course.feature
blocks/section_links/db/upgrade.php
blocks/selfcompletion/db/upgrade.php
blocks/settings/db/upgrade.php
blocks/tests/behat/behat_blocks.php
blocks/tests/behat/configure_block_throughout_site.feature
blocks/tests/behat/restrict_available_blocks.feature
blocks/tests/behat/return_block_original_state.feature
blog/tests/behat/blog_visibility.feature
blog/tests/behat/comment.feature
blog/tests/behat/delete.feature
cohort/tests/behat/access_visible_cohorts.feature
cohort/tests/behat/add_cohort.feature
cohort/tests/behat/upload_cohort_users.feature
cohort/tests/behat/upload_cohorts.feature
cohort/tests/behat/view_cohorts.feature
comment/comment.js
competency/classes/external/exporter.php
competency/tests/exporter_test.php
completion/tests/behat/enable_manual_complete_mark.feature
completion/tests/behat/restrict_activity_by_grade.feature
completion/tests/behat/restrict_section_availability.feature
course/format/social/tests/behat/social_adjust_discussion_count.feature
course/index.php
course/lib.php
course/modlib.php
course/moodleform_mod.php
course/renderer.php
course/tests/behat/activities_edit_completion.feature
course/tests/behat/activities_group_icons.feature
course/tests/behat/add_activities.feature
course/tests/behat/behat_course.php
course/tests/behat/category_management.feature
course/tests/behat/category_role_assignment.feature
course/tests/behat/course_creation.feature
course/tests/behat/coursetags.feature
course/tests/behat/edit_settings.feature
course/tests/behat/force_group_mode.feature
course/tests/behat/move_activities.feature
course/tests/behat/move_sections.feature
course/tests/behat/navigate_course_list.feature
course/tests/behat/rename_roles.feature
course/tests/behat/restrict_available_activities.feature
course/tests/behat/role_renaming.feature
course/tests/behat/view_subfolders_inline.feature
enrol/database/db/upgrade.php
enrol/flatfile/db/upgrade.php
enrol/guest/db/upgrade.php
enrol/imsenterprise/db/upgrade.php
enrol/lti/db/upgrade.php
enrol/manual/db/upgrade.php
enrol/manual/yui/quickenrolment/assets/skins/sam/quickenrolment.css
enrol/meta/tests/behat/enrol_meta.feature
enrol/mnet/db/upgrade.php
enrol/paypal/db/upgrade.php
enrol/self/db/upgrade.php
enrol/self/tests/behat/self_enrolment.feature
enrol/tests/behat/enrol_user.feature
enrol/tests/behat/manage_enrolments_from_participants.feature
files/tests/behat/course_files.feature
filter/mathjaxloader/db/upgrade.php
filter/mediaplugin/db/upgrade.php
filter/tex/db/upgrade.php
grade/edit/tree/item_form.php
grade/export/txt/tests/behat/export.feature
grade/export/xml/tests/behat/export.feature
grade/grading/form/guide/db/upgrade.php
grade/grading/form/guide/tests/behat/edit_guide.feature
grade/grading/form/rubric/db/upgrade.php
grade/grading/form/rubric/tests/behat/reuse_own_rubrics.feature
grade/grading/tests/behat/behat_grading.php
grade/report/grader/tests/behat/ajax_grader.feature
grade/report/grader/tests/behat/switch_views.feature
grade/report/history/tests/behat/basic_functionality.feature
grade/report/overview/lang/en/gradereport_overview.php
grade/report/overview/lib.php
grade/report/singleview/tests/behat/bulk_insert_grades.feature
grade/report/singleview/tests/behat/singleview.feature
grade/report/user/db/upgrade.php
grade/report/user/lib.php
grade/report/user/tests/behat/user_view.feature
grade/report/user/tests/behat/view_usereport.feature
grade/tests/behat/behat_grade.php
grade/tests/behat/grade_UI_settings.feature
grade/tests/behat/grade_aggregation.feature
grade/tests/behat/grade_aggregation_changes.feature
grade/tests/behat/grade_average.feature
grade/tests/behat/grade_calculated_grade_items.feature
grade/tests/behat/grade_calculated_grade_items_20150627.feature
grade/tests/behat/grade_calculated_weights.feature
grade/tests/behat/grade_category_validation.feature
grade/tests/behat/grade_contribution_with_extra_credit.feature
grade/tests/behat/grade_grade_minmax_change.feature
grade/tests/behat/grade_hidden_items.feature
grade/tests/behat/grade_item_validation.feature
grade/tests/behat/grade_letter_boundary.feature
grade/tests/behat/grade_letter_boundary_20160518.feature
grade/tests/behat/grade_mingrade.feature
grade/tests/behat/grade_minmax.feature
grade/tests/behat/grade_natural_exclude_empty.feature
grade/tests/behat/grade_natural_exclude_empty_20150619.feature
grade/tests/behat/grade_natural_normalisation.feature
grade/tests/behat/grade_natural_normalisation_20150619.feature
grade/tests/behat/grade_override_letter.feature
grade/tests/behat/grade_point_maximum.feature
grade/tests/behat/grade_scales.feature
grade/tests/behat/grade_scales_aggregation.feature
grade/tests/behat/grade_single_item_scales.feature
grade/tests/behat/grade_to_pass.feature
grade/tests/behat/grade_view.feature
group/tests/behat/auto_creation.feature
group/tests/behat/create_groups.feature
group/tests/behat/delete_groups.feature
group/tests/behat/groups_import.feature
group/tests/behat/id_uniqueness.feature
group/tests/behat/update_groups.feature
install/lang/da/install.php
lib/antivirus/clamav/db/upgrade.php
lib/behat/form_field/behat_form_passwordunmask.php
lib/blocklib.php
lib/classes/dataformat/spout_base.php
lib/db/upgrade.php
lib/editor/atto/db/upgrade.php
lib/editor/atto/plugins/equation/db/upgrade.php
lib/editor/atto/plugins/managefiles/yui/build/moodle-atto_managefiles-usedfiles/moodle-atto_managefiles-usedfiles-debug.js
lib/editor/atto/plugins/managefiles/yui/build/moodle-atto_managefiles-usedfiles/moodle-atto_managefiles-usedfiles-min.js
lib/editor/atto/plugins/managefiles/yui/build/moodle-atto_managefiles-usedfiles/moodle-atto_managefiles-usedfiles.js
lib/editor/atto/plugins/managefiles/yui/src/usedfiles/js/usedfiles.js
lib/editor/atto/tests/behat/autosave.feature
lib/editor/tinymce/db/upgrade.php
lib/editor/tinymce/plugins/spellchecker/db/upgrade.php
lib/enrollib.php
lib/filterlib.php
lib/form/dateselector.php
lib/form/datetimeselector.php
lib/form/tests/behat/modgrade_validation.feature
lib/form/tests/behat/multi_select_dependencies.feature [new file with mode: 0644]
lib/form/tests/fixtures/multi_select_dependencies.php [new file with mode: 0644]
lib/formslib.php
lib/moodlelib.php
lib/navigationlib.php
lib/outputlib.php
lib/tablelib.php
lib/tests/behat/behat_data_generators.php
lib/tests/behat/behat_navigation.php
lib/tests/event_test.php
lib/tests/fixtures/namespaced_form.php [new file with mode: 0644]
lib/tests/formslib_test.php
lib/tests/moodlelib_test.php
login/signup.php
login/tests/behat/change_password.feature
message/amd/build/message_area_messages.min.js
message/amd/src/message_area_messages.js
message/output/email/db/upgrade.php
message/output/jabber/db/upgrade.php
message/output/popup/db/upgrade.php
mod/assign/db/upgrade.php
mod/assign/feedback/comments/db/upgrade.php
mod/assign/feedback/editpdf/classes/task/convert_submissions.php
mod/assign/feedback/editpdf/db/upgrade.php
mod/assign/feedback/editpdf/tests/behat/annotate_pdf.feature
mod/assign/feedback/editpdf/tests/behat/group_annotations.feature
mod/assign/feedback/editpdf/tests/behat/view_previous_annotations.feature
mod/assign/feedback/editpdf/yui/build/moodle-assignfeedback_editpdf-editor/moodle-assignfeedback_editpdf-editor-debug.js
mod/assign/feedback/editpdf/yui/build/moodle-assignfeedback_editpdf-editor/moodle-assignfeedback_editpdf-editor-min.js
mod/assign/feedback/editpdf/yui/build/moodle-assignfeedback_editpdf-editor/moodle-assignfeedback_editpdf-editor.js
mod/assign/feedback/editpdf/yui/src/editor/js/editor.js
mod/assign/feedback/file/db/upgrade.php
mod/assign/feedback/file/tests/behat/feedback_file.feature
mod/assign/gradeform.php
mod/assign/lib.php
mod/assign/locallib.php
mod/assign/submission/comments/db/upgrade.php
mod/assign/submission/file/db/upgrade.php
mod/assign/submission/file/settings.php
mod/assign/submission/onlinetext/db/upgrade.php
mod/assign/tests/behat/allow_another_attempt.feature
mod/assign/tests/behat/assign_course_reset.feature
mod/assign/tests/behat/assign_group_override.feature
mod/assign/tests/behat/assign_user_override.feature
mod/assign/tests/behat/comment_inline.feature
mod/assign/tests/behat/display_error_message_onbadformat.feature
mod/assign/tests/behat/display_grade.feature
mod/assign/tests/behat/edit_previous_feedback.feature
mod/assign/tests/behat/edit_student_submission.feature
mod/assign/tests/behat/filter_by_marker.feature
mod/assign/tests/behat/grading_status.feature
mod/assign/tests/behat/grant_extension.feature
mod/assign/tests/behat/group_submission.feature
mod/assign/tests/behat/outcome_grading.feature
mod/assign/tests/behat/prevent_submission_changes.feature
mod/assign/tests/behat/quickgrading.feature
mod/assign/tests/behat/reopen_locked_submission.feature
mod/assign/tests/behat/rescale_grades.feature
mod/assign/tests/behat/steps_blind_marking.feature
mod/assign/tests/behat/submission_comments.feature
mod/assign/tests/behat/submit_without_group.feature
mod/assignment/db/upgrade.php
mod/book/db/upgrade.php
mod/book/tests/behat/create_chapters.feature
mod/book/tests/behat/edit_navigation_options.feature
mod/book/tests/behat/log_entries.feature
mod/chat/db/upgrade.php
mod/chat/tests/behat/chat_course_reset.feature
mod/choice/db/upgrade.php
mod/choice/tests/behat/modify_choice.feature
mod/choice/tests/behat/my_home.feature
mod/choice/tests/behat/remove_choice_options.feature
mod/data/db/upgrade.php
mod/data/field/menu/field.class.php
mod/data/tests/behat/behat_mod_data.php
mod/feedback/db/upgrade.php
mod/feedback/tests/behat/anonymous.feature
mod/feedback/tests/behat/coursemapping.feature
mod/feedback/tests/behat/groups.feature
mod/feedback/tests/behat/multichoice.feature
mod/feedback/tests/behat/non_anonymous.feature
mod/feedback/tests/behat/question_types.feature
mod/feedback/tests/behat/question_types_non_anon.feature
mod/feedback/tests/behat/show_nonrespondents.feature
mod/folder/db/upgrade.php
mod/forum/db/upgrade.php
mod/forum/lib.php
mod/forum/tests/behat/completion_condition_number_discussions.feature
mod/forum/tests/behat/discussion_subscriptions.feature
mod/forum/tests/behat/edit_post_student.feature
mod/forum/tests/behat/forum_subscriptions_availability.feature
mod/glossary/db/upgrade.php
mod/glossary/tests/behat/categories.feature
mod/imscp/db/upgrade.php
mod/label/db/upgrade.php
mod/lesson/db/upgrade.php
mod/lesson/pagetypes/numerical.php
mod/lesson/tests/behat/completion_condition_end_reached.feature
mod/lesson/tests/behat/completion_condition_time_spent.feature
mod/lesson/tests/behat/lesson_complete_report.feature
mod/lesson/tests/behat/lesson_course_reset.feature
mod/lesson/tests/behat/lesson_group_override.feature
mod/lesson/tests/behat/lesson_number_of_student_attempts.feature
mod/lesson/tests/behat/lesson_outline_report.feature
mod/lesson/tests/behat/lesson_practice.feature
mod/lesson/tests/behat/lesson_student_dashboard.feature
mod/lesson/tests/behat/lesson_user_override.feature
mod/lesson/tests/behat/link_to_gradebook.feature
mod/lti/db/upgrade.php
mod/page/db/upgrade.php
mod/quiz/db/upgrade.php
mod/quiz/report/grading/tests/behat/grading.feature
mod/quiz/report/overview/db/upgrade.php
mod/quiz/report/overview/tests/behat/basic.feature
mod/quiz/report/statistics/db/upgrade.php
mod/quiz/tests/behat/attempt_redo_questions.feature
mod/quiz/tests/behat/backup.feature
mod/quiz/tests/behat/editing_add.feature
mod/quiz/tests/behat/editing_move_by_click.feature
mod/quiz/tests/behat/editing_remove_question.feature
mod/quiz/tests/behat/editing_repaginate.feature
mod/quiz/tests/behat/editing_require_previous.feature
mod/quiz/tests/behat/editing_section_headings.feature
mod/quiz/tests/behat/editing_set_marks_no_attempts.feature
mod/quiz/tests/behat/editing_set_marks_with_attempts.feature
mod/quiz/tests/behat/quiz_reset.feature
mod/quiz/tests/behat/settings_form_fields_disableif.feature
mod/resource/db/upgrade.php
mod/scorm/db/upgrade.php
mod/scorm/locallib.php
mod/scorm/module.js
mod/scorm/player.php
mod/scorm/styles.css
mod/scorm/tests/behat/completion_condition_require_status.feature
mod/survey/db/upgrade.php
mod/url/db/upgrade.php
mod/wiki/db/upgrade.php
mod/wiki/tests/behat/edit_tags.feature
mod/wiki/tests/behat/reset_wiki_comments_tags_files.feature [new file with mode: 0644]
mod/workshop/allocation/manual/tests/behat/behat_workshopallocation_manual.php
mod/workshop/db/upgrade.php
mod/workshop/form/accumulative/db/upgrade.php
mod/workshop/form/comments/db/upgrade.php
mod/workshop/form/numerrors/db/upgrade.php
mod/workshop/form/rubric/db/upgrade.php
mod/workshop/tests/behat/behat_mod_workshop.php
mod/workshop/tests/behat/delete_submission.feature
mod/workshop/tests/behat/embedded_images.feature
mod/workshop/tests/behat/export_submission.feature
mod/workshop/tests/behat/grade_to_pass.feature
my/tests/behat/add_blocks.feature
my/tests/behat/reset_page.feature
my/tests/behat/restrict_available_blocks.feature
notes/tests/behat/participants_notes.feature
portfolio/boxnet/db/upgrade.php
portfolio/googledocs/db/upgrade.php
portfolio/picasa/db/upgrade.php
question/behaviour/manualgraded/db/upgrade.php
question/format/xml/tests/behat/import_export.feature
question/previewlib.php
question/tests/behat/question_categories.feature
question/type/calculated/db/upgrade.php
question/type/ddmarker/db/upgrade.php
question/type/essay/db/upgrade.php
question/type/match/db/upgrade.php
question/type/multianswer/db/upgrade.php
question/type/multichoice/db/upgrade.php
question/type/numerical/db/upgrade.php
question/type/random/db/upgrade.php
question/type/randomsamatch/db/upgrade.php
question/type/shortanswer/db/upgrade.php
report/log/tests/behat/filter_log.feature
report/log/tests/behat/filter_log_actions.feature
report/log/tests/behat/user_log.feature
repository/boxnet/db/upgrade.php
repository/dropbox/db/upgrade.php
repository/googledocs/db/upgrade.php
repository/picasa/db/upgrade.php
search/engine/solr/classes/engine.php
tag/tests/behat/collections.feature
tag/tests/behat/delete_tag.feature
tag/tests/behat/edit_tag.feature
tag/tests/behat/flag_tags.feature
tag/tests/behat/tagindex.feature
theme/boost/classes/output/core_renderer.php
theme/boost/layout/columns2.php
theme/boost/scss/moodle/admin.scss
theme/boost/scss/moodle/core.scss
theme/boost/scss/moodle/debug.scss
theme/boost/scss/moodle/filemanager.scss
theme/boost/scss/moodle/user.scss
theme/boost/tests/behat/behat_theme_boost_behat_admin.php
theme/boost/tests/behat/behat_theme_boost_behat_backup.php [deleted file]
theme/boost/tests/behat/behat_theme_boost_behat_course.php
theme/boost/tests/behat/behat_theme_boost_behat_grade.php
theme/boost/tests/behat/behat_theme_boost_behat_navigation.php
theme/boost/tests/behat/blacklist.json
theme/boost/tests/behat/regionmainsettingsmenu.feature
theme/bootstrapbase/less/moodle/admin.less
theme/bootstrapbase/less/moodle/core.less
theme/bootstrapbase/less/moodle/filemanager.less
theme/bootstrapbase/less/moodle/user.less
theme/bootstrapbase/style/moodle.css
theme/more/db/upgrade.php
user/lib.php
user/tests/behat/edituserpassword.feature
user/tests/behat/filter_idnumber.feature
user/tests/behat/set_default_homepage.feature
user/tests/behat/user_grade_navigation.feature
user/tests/behat/view_full_profile.feature
user/tests/behat/view_participants.feature
user/tests/behat/view_preferences_page.feature
version.php

index a0d3845..818381e 100644 (file)
@@ -13,7 +13,7 @@ language: php
 
 php:
     # We only run the highest and lowest supported versions to reduce the load on travis-ci.org.
-    - 7.0
+    - 7.1
     - 5.6
 
 services:
@@ -23,7 +23,7 @@ env:
     # Although we want to run these jobs and see failures as quickly as possible, we also want to get the slowest job to
     # start first so that the total run time is not too high.
     #
-    # We only run MySQL on PHP 7.0, so run that first.
+    # We only run MySQL on PHP 7.1, so run that first.
     # CI Tests should be second-highest in priority as these only take <= 60 seconds to run under normal circumstances.
     # Postgres is significantly is pretty reasonable in its run-time.
 
@@ -47,22 +47,22 @@ matrix:
 
     include:
           # Run grunt/npm install on lowest supported npm version
-        - php: 7
+        - php: 7.1
           env: DB=none     TASK=GRUNT   NVM_VERSION='4'
           # Run grunt/npm install on highest version ('node' is an alias for the latest node.js version.)
-        - php: 7
+        - php: 7.1
           env: DB=none     TASK=GRUNT   NVM_VERSION='node'
 
     exclude:
         # MySQL - it's just too slow.
-        # Exclude it on all versions except for 7.0
+        # Exclude it on all versions except for 7.1
 
         - env: DB=mysqli   TASK=PHPUNIT
           php: 5.6
 
         # Moodle 2.7 is not compatible with PHP 7 for the upgrade test.
         - env: DB=pgsql    TASK=UPGRADE
-          php: 7.0
+          php: 7.1
 
 cache:
     directories:
@@ -70,9 +70,6 @@ cache:
       - $HOME/.npm
 
 install:
-    # Disable xdebug. We aren't generating code coverage, and it has a huge impact upon test performance.
-    - rm /home/travis/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini
-
     - >
         if [ "$TASK" = 'PHPUNIT' ];
         then
@@ -99,6 +96,7 @@ install:
         fi
 
 before_script:
+    - phpenv config-rm xdebug.ini
     - >
       if [ "$TASK" = 'PHPUNIT' -o "$TASK" = 'UPGRADE' ];
       then
index b31da9e..f3faf4d 100644 (file)
@@ -37,6 +37,7 @@
             print_error('blockdoesnotexist', 'error');
         }
         $DB->set_field('block', 'visible', '0', array('id'=>$block->id));      // Hide block
+        add_to_config_log('block_visibility', $block->visible, '0', $block->name);
         core_plugin_manager::reset_caches();
         admin_get_root(true, false);  // settings not required - only pages
     }
@@ -46,6 +47,7 @@
             print_error('blockdoesnotexist', 'error');
         }
         $DB->set_field('block', 'visible', '1', array('id'=>$block->id));      // Show block
+        add_to_config_log('block_visibility', $block->visible, '1', $block->name);
         core_plugin_manager::reset_caches();
         admin_get_root(true, false);  // settings not required - only pages
     }
index 2b841d6..32d28fd 100644 (file)
@@ -1899,14 +1899,21 @@ class core_admin_renderer extends plugin_renderer_base {
                 } else {
                     $report = $this->doc_link(join($linkparts, '/'), get_string($stringtouse, 'admin', $rec));
                 }
+                // Enclose report text in div so feedback text will be displayed underneath it.
+                $report = html_writer::div($report);
 
                 // Format error or warning line
-                if ($errorline || $warningline) {
-                    $messagetype = $errorline? 'error':'warn';
+                if ($errorline) {
+                    $messagetype = 'error';
+                    $statusclass = 'label-important';
+                } else if ($warningline) {
+                    $messagetype = 'warn';
+                    $statusclass = 'label-warning';
                 } else {
                     $messagetype = 'ok';
+                    $statusclass = 'label-success';
                 }
-                $status = '<span class="'.$messagetype.'">'.$status.'</span>';
+                $status = html_writer::span($status, 'label ' . $statusclass);
                 // Here we'll store all the feedback found
                 $feedbacktext = '';
                 // Append the feedback if there is some
index 864b733..1a128ca 100644 (file)
@@ -16,8 +16,7 @@ Feature: Display extended course names
     And I should not see "C_shortname Course fullname"
 
   Scenario: Courses list with extended course names
-    Given I expand "Site administration" node
-    And I click on "Courses" "link" in the "//div[@id='settingsnav']/descendant::li[contains(concat(' ', normalize-space(@class), ' '), ' type_setting ')][contains(., 'Appearance')]" "xpath_element"
+    Given I navigate to "Appearance > Courses" in site administration
     And I set the field "Display extended course names" to "1"
     When I press "Save changes"
     And I am on site homepage
index f8b930d..b9a03e5 100644 (file)
@@ -25,7 +25,7 @@ Feature: An administrator can filter user accounts by role, cohort and other pro
     And I log in as "admin"
     And I add "User Two (two@example.com)" user to "CH1" cohort members
     And I add "User Three (three@example.com)" user to "CH1" cohort members
-    And I follow "Browse list of users"
+    And I navigate to "Users > Accounts > Browse list of users" in site administration
 
   Scenario: Filter user accounts by role and cohort
     When I set the following fields to these values:
index 65b0b4a..b028da9 100644 (file)
@@ -8,6 +8,8 @@ Feature: Manage availability conditions
   Scenario: Display list of availability conditions
     # Check the report doesn't show when not enabled.
     Given I log in as "admin"
+    And I press "Customise this page"
+    And I add the "Administration" block if not present
     And the following config values are set as admin:
       | enableavailability | 0 |
     And I expand "Site administration" node
index 051dd86..5560c83 100644 (file)
@@ -59,8 +59,7 @@ Feature: Set up contextual data for tests
     When I log in as "admin"
     And I am on site homepage
     And I follow "Course 1"
-    And I expand "Users" node
-    And I follow "Groups"
+    And I navigate to "Users > Groups" in current page administration
     Then I should see "Group 1"
     And I should see "Group 2"
     And I follow "Groupings"
@@ -90,8 +89,7 @@ Feature: Set up contextual data for tests
     When I log in as "admin"
     And I am on site homepage
     And I follow "Course 1"
-    And I expand "Users" node
-    And I follow "Permissions"
+    And I navigate to "Users > Permissions" in current page administration
     And I set the field "Advanced role override" to "Student (1)"
     Then "mod/forum:editanypost" capability has "Allow" permission
     And I press "Cancel"
@@ -134,30 +132,31 @@ Feature: Set up contextual data for tests
     And the following "course enrolments" exist:
       | user | course | role |
       | user4 | C1 | custom1 |
+      | user2 | C1 | student |
+      | user3 | C1 | editingteacher |
     And the following "role assigns" exist:
       | user  | role           | contextlevel | reference |
       | user1 | manager        | System       |           |
       | user2 | editingteacher | Category     | CAT1      |
-      | user3 | editingteacher | Course       | C1        |
       | user5 | custom2        | System       |           |
     When I log in as "user1"
     And I am on site homepage
-    Then I should see "Front page settings"
+    Then "Edit settings" "link" should exist in current page administration
     And I log out
     And I log in as "user2"
     And I am on site homepage
     And I follow "Course 1"
-    And I should see "Turn editing on"
+    And "Turn editing on" "link" should exist in current page administration
     And I log out
     And I log in as "user3"
     And I am on site homepage
     And I follow "Course 1"
-    And I should see "Turn editing on"
+    And "Turn editing on" "link" should exist in current page administration
     And I log out
     And I log in as "user4"
     And I am on site homepage
     And I follow "Course 1"
-    And I should see "Turn editing on"
+    And "Turn editing on" "link" should exist in current page administration
     And I log out
     And I log in as "user5"
     And I should see "You are logged in as"
@@ -264,8 +263,7 @@ Feature: Set up contextual data for tests
     When I log in as "admin"
     And I am on site homepage
     And I follow "Course 1"
-    And I expand "Users" node
-    And I follow "Groups"
+    And I navigate to "Users > Groups" in current page administration
     Then the "groups" select box should contain "Group 1 (1)"
     And the "groups" select box should contain "Group 2 (1)"
     And I set the field "groups" to "Group 1 (1)"
@@ -302,7 +300,7 @@ Feature: Set up contextual data for tests
       | System cohort A | 1           |
       | System cohort B | 2           |
     And I should not see "Cohort in category"
-    And I follow "Courses"
+    And I am on course index
     And I follow "Cat 1"
     And I follow "Cohorts"
     And I should not see "System cohort"
@@ -322,10 +320,9 @@ Feature: Set up contextual data for tests
       | fullname | course | gradecategory |
       | Grade sub category 2 | C1 | Grade category 1 |
     When I log in as "admin"
-    And I am on site homepage
-    And I follow "Courses"
+    And I am on course index
     And I follow "Course 1"
-    And I go to "View > Grader report" in the course gradebook
+    And I navigate to "View > Grader report" in the course gradebook
     Then I should see "Grade category 1"
     And I should see "Grade sub category 2"
 
@@ -349,7 +346,7 @@ Feature: Set up contextual data for tests
     When I log in as "admin"
     And I am on site homepage
     And I follow "Course 1"
-    And I go to "Setup > Gradebook setup" in the course gradebook
+    And I navigate to "Setup > Gradebook setup" in the course gradebook
     Then I should see "Test Grade Item 1"
     And I follow "Edit   Test Grade Item 1"
     And I expand all fieldsets
@@ -378,7 +375,7 @@ Feature: Set up contextual data for tests
     When I log in as "admin"
     And I am on site homepage
     And I follow "Course 1"
-    And I go to "Scales" in the course gradebook
+    And I navigate to "Scales" in the course gradebook
     Then I should see "Test Scale 1"
     And I should see "Disappointing,  Good,  Very good,  Excellent"
 
@@ -429,7 +426,7 @@ Feature: Set up contextual data for tests
     When I log in as "admin"
     And I am on site homepage
     And I follow "Course 1"
-    And I go to "Setup > Gradebook setup" in the course gradebook
+    And I navigate to "Setup > Gradebook setup" in the course gradebook
     Then I should see "Test Outcome Grade Item 1"
     And I follow "Edit   Test Outcome Grade Item 1"
     And the field "Outcome" matches value "Grade outcome 1"
index b07c121..c0e7cc0 100644 (file)
@@ -32,8 +32,7 @@ Feature: Edit capabilities
   Scenario: Course capabilities overrides
     Given I log in as "teacher1"
     And I follow "Course 1"
-    And I expand "Users" node
-    And I follow "Permissions"
+    And I navigate to "Users > Permissions" in current page administration
     And I override the system permissions of "Student" role with:
       | mod/forum:deleteanypost | Prohibit |
       | mod/forum:editanypost | Prevent |
@@ -52,7 +51,7 @@ Feature: Edit capabilities
       | Forum name | I'm the name |
       | Description | I'm the introduction |
     And I follow "I'm the name"
-    And I navigate to "Permissions" node in "Forum administration"
+    And I navigate to "Permissions" in current page administration
     And I override the system permissions of "Student" role with:
       | mod/forum:deleteanypost | Prohibit |
       | mod/forum:editanypost | Prevent |
index b867c58..f9ac3a1 100644 (file)
@@ -33,8 +33,6 @@ Feature: Verify that all form fields values can be get and set
       | 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 am on site homepage
     And I follow "Course 1"
     And I navigate to "Reset" node in "Course administration"
@@ -60,9 +58,8 @@ Feature: Verify that all form fields values can be get and set
       | HTML format | Student page contents |
     And I press "Save"
     Then I should see "Student page contents" in the "region-main" "region"
-    And  I click on "Edit" "link" in the "Administration" "block"
     # Select (multi-select) - Checking "I set the field".
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" in current page administration
     And I expand all fieldsets
     # Checkbox - Checking "I set the field".
     And I set the field "Display description on course page" to "1"
@@ -75,7 +72,7 @@ Feature: Verify that all form fields values can be get and set
     And I press "Save and return to course"
     And I should see "Test this one"
     And I follow "Test this one"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" in current page administration
     # Checkbox - Checking "the field matches value" and "the following fields match these values".
     And the following fields match these values:
       | Display description on course page | 1 |
@@ -91,7 +88,7 @@ Feature: Verify that all form fields values can be get and set
     # Select (simple) - Checking "I set the field".
     And I set the field "Group mode" to "Separate groups"
     And I press "Save and display"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" in current page administration
     And the following fields match these values:
       | Default format | NWiki |
       | Group mode | Separate groups |
@@ -134,8 +131,7 @@ Feature: Verify that all form fields values can be get and set
   @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"
+    And I navigate to "Users > Groups" in current page administration
     # Select (multi-select & AJAX) - Checking "I set the field" and "select box should contain".
     And I set the field "groups" to "Group 2"
     And the "members" select box should contain "Student 2"
@@ -158,7 +154,7 @@ Feature: Verify that all form fields values can be get and set
     And the "available[day]" "field" should be enabled
     And the field "deadline[enabled]" matches value "1"
     And I press "Save and display"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" in current page administration
     And the field "available[enabled]" matches value "1"
     And the "available[day]" "field" should be enabled
     And the field "deadline[enabled]" matches value "1"
index b63626f..60bce5a 100644 (file)
@@ -41,5 +41,8 @@ function xmldb_tool_customlang_upgrade($oldversion) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 042ed97..8590d90 100644 (file)
@@ -45,5 +45,8 @@ function xmldb_tool_log_upgrade($oldversion) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 21e34e0..ec98e95 100644 (file)
@@ -39,5 +39,8 @@ function xmldb_logstore_database_upgrade($oldversion) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 4834535..3313749 100644 (file)
@@ -56,5 +56,8 @@ function xmldb_logstore_standard_upgrade($oldversion) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 27b6f95..bccf5f7 100644 (file)
@@ -7,12 +7,9 @@ Feature: Manage competency frameworks
   Background:
     Given I log in as "admin"
     And I am on site homepage
-    And I expand "Site administration" node
-    When I expand "Competencies" node
-    Then I should see "Competency frameworks"
 
   Scenario: Create a new framework
-    Given I follow "Competency frameworks"
+    Given I navigate to "Competencies > Competency frameworks" in site administration
     And I should see "List of competency frameworks"
     And I click on "Add new competency framework" "button"
     And I should see "General"
@@ -34,7 +31,7 @@ Feature: Manage competency frameworks
     Given the following lp "frameworks" exist:
       | shortname | idnumber |
       | Science Year-2 | sc-y-2 |
-    And I follow "Competency frameworks"
+    And I navigate to "Competencies > Competency frameworks" in site administration
     And I should see "Science Year-2"
     When I click on "Science Year-2" "link"
     Then I should see "Science Year-2"
@@ -43,7 +40,7 @@ Feature: Manage competency frameworks
     Given the following lp "frameworks" exist:
       | shortname | idnumber |
       | Science Year-3 | sc-y-3 |
-    And I follow "Competency frameworks"
+    And I navigate to "Competencies > Competency frameworks" in site administration
     And I should see "Science Year-3"
     And I click on "Edit" of edit menu in the "Science Year-3" row
     And the field "Name" matches value "Science Year-3 "
@@ -57,7 +54,7 @@ Feature: Manage competency frameworks
     Given the following lp "frameworks" exist:
       | shortname | idnumber |
       | Science Year-4 | sc-y-4 |
-    And I follow "Competency frameworks"
+    And I navigate to "Competencies > Competency frameworks" in site administration
     And I should see "Science Year-4"
     And I should see "sc-y-4"
     And I click on "Delete" of edit menu in the "Science Year-4" row
@@ -90,7 +87,7 @@ Scenario: Edit a framework with competencies in user competency
       | user | competency |
       | admin | Comp1 |
       | admin | Comp2 |
-    And I follow "Competency frameworks"
+    And I navigate to "Competencies > Competency frameworks" in site administration
     And I should see "Science Year-5"
     And I click on "Edit" of edit menu in the "Science Year-5" row
     And the field "Name" matches value "Science Year-5 "
@@ -120,7 +117,7 @@ Scenario: Edit a framework with competencies in user competency plan
       | user | competency | plan |
       | admin | Comp1 | Plan Science-6 |
       | admin | Comp2 | Plan Science-6 |
-    And I follow "Competency frameworks"
+    And I navigate to "Competencies > Competency frameworks" in site administration
     And I should see "Science Year-6"
     And I click on "Edit" of edit menu in the "Science Year-6" row
     And the field "Name" matches value "Science Year-6 "
index a03113d..71086f3 100644 (file)
@@ -26,9 +26,7 @@ Feature: Manage plearning plan
       | shortname | description |
       | Science template | science template description |
     And I follow "Home"
-    And I expand "Site administration" node
-    And I expand "Competencies" node
-    And I follow "Learning plan templates"
+    And I navigate to "Competencies > Learning plan templates" in site administration
     And I click on ".template-userplans" "css_element" in the "Science template" "table_row"
     And I click on ".form-autocomplete-downarrow" "css_element"
     And I click on "Admin" item in the autocomplete list
@@ -52,9 +50,7 @@ Feature: Manage plearning plan
       | student-plan1 | COHORTPLAN |
       | student-plan2 | COHORTPLAN |
     And I follow "Home"
-    And I expand "Site administration" node
-    And I expand "Competencies" node
-    And I follow "Learning plan templates"
+    And I navigate to "Competencies > Learning plan templates" in site administration
     And I click on ".template-cohorts" "css_element" in the "Science template cohort" "table_row"
     And I click on ".form-autocomplete-downarrow" "css_element"
     And I click on "cohort plan" item in the autocomplete list
index 8a3a438..bfaf1e0 100644 (file)
@@ -145,10 +145,7 @@ Feature: Manage plan workflow
       | Test-Plan3 | user1 | Description of plan 3 for user 1 | active | manager1 |
       | Test-Plan4 | user1 | Description of plan 4 for user 1 | active | manager1 |
     And I log in as "manager1"
-    And I expand "Site administration" node
-    And I expand "Users" node
-    And I expand "Accounts" node
-    And I follow "Browse list of users"
+    And I navigate to "Users > Accounts > Browse list of users" in site administration
     And I follow "User 1"
     And I follow "Learning plans"
     And I should see "List of learning plans"
@@ -167,10 +164,7 @@ Feature: Manage plan workflow
       | Test-Plan3 | user1 | Description of plan 3 for user 1 | active | manager1 |
       | Test-Plan4 | user1 | Description of plan 4 for user 1 | active | manager1 |
     And I log in as "manager1"
-    And I expand "Site administration" node
-    And I expand "Users" node
-    And I expand "Accounts" node
-    And I follow "Browse list of users"
+    And I navigate to "Users > Accounts > Browse list of users" in site administration
     And I follow "User 1"
     And I follow "Learning plans"
     And I should see "List of learning plans"
@@ -191,10 +185,7 @@ Scenario: Manager reopen a complete learning plan
       | Test-Plan3 | user1 | Description of plan 3 for user 1 | complete | manager1 |
       | Test-Plan4 | user1 | Description of plan 4 for user 1 | complete | manager1 |
     And I log in as "manager1"
-    And I expand "Site administration" node
-    And I expand "Users" node
-    And I expand "Accounts" node
-    And I follow "Browse list of users"
+    And I navigate to "Users > Accounts > Browse list of users" in site administration
     And I follow "User 1"
     And I follow "Learning plans"
     And I should see "List of learning plans"
index 2686517..1479fcf 100644 (file)
@@ -7,12 +7,9 @@ Feature: Manage plearning plan templates
   Background:
     Given I log in as "admin"
     And I am on site homepage
-    And I expand "Site administration" node
-    When I expand "Competencies" node
-    Then I should see "Learning plan templates"
 
   Scenario: Create a new learning plan template
-    Given I follow "Learning plan templates"
+    Given I navigate to "Competencies > Learning plan templates" in site administration
     And I should see "List of learning plan templates"
     And I click on "Add new learning plan template" "button"
     And I should see "Add new learning plan template"
@@ -26,7 +23,7 @@ Feature: Manage plearning plan templates
     Given the following lp "templates" exist:
       | shortname | description |
       | Science template Year-2 | science template description |
-    And I follow "Learning plan templates"
+    And I navigate to "Competencies > Learning plan templates" in site administration
     And I should see "Science template Year-2"
     When I click on "Science template Year-2" "link"
     Then I should see "Science template Year-2"
@@ -36,7 +33,7 @@ Feature: Manage plearning plan templates
     Given the following lp "templates" exist:
       | shortname | description |
       | Science template Year-3 | science template description |
-    And I follow "Learning plan templates"
+    And I navigate to "Competencies > Learning plan templates" in site administration
     And I should see "Science template Year-3"
     And I click on "Edit" of edit menu in the "Science template Year-3" row
     And the field "Name" matches value "Science template Year-3"
@@ -49,7 +46,7 @@ Feature: Manage plearning plan templates
     Given the following lp "templates" exist:
       | shortname | description |
       | Science template Year-4 | science template description |
-    And I follow "Learning plan templates"
+    And I navigate to "Competencies > Learning plan templates" in site administration
     And I should see "Science template Year-4"
     And I click on "Delete" of edit menu in the "Science template Year-4" row
     And "Confirm" "dialogue" should be visible
index aaea29a..b96b105 100644 (file)
@@ -77,5 +77,8 @@ function xmldb_tool_monitor_upgrade($oldversion) {
         upgrade_plugin_savepoint(true, 2016052305, 'tool', 'monitor');
     }
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 9f18cbd..31065d0 100644 (file)
@@ -65,6 +65,6 @@ Feature: Backup user data
     And I log out
     And I log in as "student1"
     And I follow "Course 1"
-    When I go to "User report" in the course gradebook
+    When I navigate to "User report" in the course gradebook
     Then "Quiz 1" row "Grade" column of "user-grade" table should contain "5"
     And "Quiz 1" row "Percentage" column of "user-grade" table should contain "50"
index b10af91..6b4ea5b 100644 (file)
@@ -49,9 +49,10 @@ Feature: Basic recycle bin functionality
     And I should see "Deleting C2"
     And I should see "C2 has been completely deleted"
     And I press "Continue"
-    And I go to the courses management page
-    And I should not see "Course 2" in the "#course-listing" "css_element"
-    When I navigate to "Recycle bin" node in "Category: Miscellaneous"
+    And I am on course index
+    And I should see "Course 1"
+    And I should not see "Course 2"
+    When I navigate to "Recycle bin" in current page administration
     Then I should see "Course 2"
     And I should see "Contents will be permanently deleted after 14 days"
     And I click on "Restore" "link" in the "region-main" "region"
index 27da1b6..63d3485 100644 (file)
@@ -75,7 +75,7 @@ if (!empty($delall) && confirm_sesskey()) {
     exit;
 }
 
-if (!empty($ignore)) {
+if (!empty($ignore) && confirm_sesskey()) {
     unset($SESSION->users_result[$id]);
     echo json_encode(true);
     exit;
index 32aa963..7ee6235 100644 (file)
@@ -29,14 +29,13 @@ Feature: Upload users
     And I should see "Section 1"
     And I press "Upload users"
     And I press "Continue"
-    And I follow "Browse list of users"
+    And I navigate to "Users > Accounts > Browse list of users" in site administration
     And I should see "Tom Jones"
     And I should see "Trent Reznor"
     And I should see "reznor@example.com"
     And I am on site homepage
     And I follow "Maths"
-    And I expand "Users" node
-    And I follow "Groups"
+    And I navigate to "Users > Groups" in current page administration
     And I set the field "groups" to "Section 1 (1)"
     And the "members" select box should contain "Tom Jones"
 
index fdf92d6..aa235b1 100644 (file)
@@ -42,5 +42,8 @@ function xmldb_tool_usertours_upgrade($oldversion) {
         upgrade_plugin_savepoint(true, 2016120501, 'tool', 'usertours');
     }
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 8e967bd..33c7db7 100644 (file)
@@ -25,7 +25,7 @@ Feature: Add a new user tour
     And I add steps to the "First tour" tour:
       | targettype                  | targetvalue_selector | Title             | Content |
       | Selector                    | .usermenu            | User menu         | This is your personal user menu. You'll find your personal preferences and your user profile here. |
-    When I click on "Dashboard" "link" in the "Navigation" "block"
+    When I am on homepage
     Then I should see "Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful"
     And I press "Next"
     And I should see "This area shows you what's happening in some of your courses"
@@ -38,7 +38,7 @@ Feature: Add a new user tour
     And I should see "This area shows you what's happening in some of your courses"
     And I press "End tour"
     And I should not see "This area shows you what's happening in some of your courses"
-    And I click on "Dashboard" "link" in the "Navigation" "block"
+    And I am on homepage
     And I should not see "Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful"
     And I should not see "This area shows you what's happening in some of your courses"
     And I follow "Reset user tour on this page"
@@ -58,7 +58,7 @@ Feature: Add a new user tour
     And I add steps to the "First tour" tour:
       | targettype                  | Title             | Content |
       | Display in middle of page   | Welcome           | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful |
-    When I click on "Dashboard" "link" in the "Navigation" "block"
+    When I am on homepage
     Then I should not see "Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful"
 
   @javascript
@@ -77,5 +77,5 @@ Feature: Add a new user tour
       | Display in middle of page   | Welcome           | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful |
     And I open the User tour settings page
     When I click on "Enable" "link" in the "My first tour" "table_row"
-    And I click on "Dashboard" "link" in the "Navigation" "block"
+    And I am on homepage
     Then I should see "Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful"
index ebcb2b2..a0104d4 100644 (file)
@@ -16,7 +16,7 @@ Feature: Apply tour filters to a tour
     And I add steps to the "First tour" tour:
       | targettype                  | Title             | Content |
       | Display in middle of page   | Welcome           | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful |
-    When I click on "Dashboard" "link" in the "Navigation" "block"
+    When I am on homepage
     Then I should not see "Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful"
 
   @javascript
index 22fcb7b..81eefd0 100644 (file)
@@ -55,5 +55,8 @@ function xmldb_auth_cas_upgrade($oldversion) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 3526ffc..c72b48f 100644 (file)
@@ -55,5 +55,8 @@ function xmldb_auth_ldap_upgrade($oldversion) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index d9b32b2..f56e337 100644 (file)
@@ -43,5 +43,8 @@ function xmldb_auth_manual_upgrade($oldversion) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 2daae51..3d93aa2 100644 (file)
@@ -43,5 +43,8 @@ function xmldb_auth_mnet_upgrade($oldversion) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
diff --git a/auth/tests/behat/displayloginfailures.feature b/auth/tests/behat/displayloginfailures.feature
new file mode 100644 (file)
index 0000000..e617efa
--- /dev/null
@@ -0,0 +1,55 @@
+@core @core_auth
+Feature: Test the 'showlogfailures' feature works.
+  In order to see my recent login failures when logging in
+  As a user
+  I need to have at least one failed login attempt and then log in
+
+  Background:
+    Given the following "users" exist:
+      | username |
+      | teacher1 |
+    And the following config values are set as admin:
+      | displayloginfailures | 1 |
+
+  # Given the user has at least one failed login attempt, when they login, then they should see both header and footer notices.
+  Scenario: Check that 'displayloginfailures' works without javascript for teachers.
+    # Simulate a log in failure for the teacher.
+    Given I am on homepage
+    And I click on "Log in" "link" in the ".logininfo" "css_element"
+    And I set the field "Username" to "teacher1"
+    And I set the field "Password" to "wrongpass"
+    And I press "Log in"
+    And I should see "Invalid login, please try again"
+    # Now, log in with the correct credentials.
+    When I set the field "Username" to "teacher1"
+    And I set the field "Password" to "teacher1"
+    And I press "Log in"
+    # Confirm the notices are displayed.
+    Then I should see "1 failed logins since your last login" in the "header.navbar" "css_element"
+    And I should see "1 failed logins since your last login" in the "page-footer" "region"
+    # Confirm the notices disappear when navigating to another page.
+    And I am on homepage
+    And I should not see "1 failed logins since your last login" in the "header.navbar" "css_element"
+    And I should not see "1 failed logins since your last login" in the "page-footer" "region"
+
+  # Given the user has at least one failed login attempt, when they login, then they should see both header and footer notices.
+  Scenario: Check that 'displayloginfailures' works without javascript for admins.
+    # Simulate a log in failure for the teacher.
+    Given I am on homepage
+    And I click on "Log in" "link" in the ".logininfo" "css_element"
+    And I set the field "Username" to "admin"
+    And I set the field "Password" to "wrongpass"
+    And I press "Log in"
+    And I should see "Invalid login, please try again"
+    # Now, log in with the correct credentials.
+    When I set the field "Username" to "admin"
+    And I set the field "Password" to "admin"
+    And I press "Log in"
+    # Confirm the notices are displayed.
+    Then I should see "1 failed logins since your last login" in the "header.navbar" "css_element"
+    And I should see "1 failed logins since your last login (Logs)" in the "page-footer" "region"
+    # Confirm that the link works and that the notices disappear when navigating to another page.
+    And I click on "Logs" "link" in the "page-footer" "region"
+    And I should see "User login failed" in the "table.reportlog" "css_element"
+    And I should not see "1 failed logins since your last login" in the "header.navbar" "css_element"
+    And I should not see "1 failed logins since your last login (Logs)" in the "page-footer" "region"
index df3340e..60f7920 100644 (file)
@@ -115,7 +115,7 @@ Feature: availability_grade
 
     # Give the assignment 40%.
     And I follow "A1"
-    And I click on "View all submissions" "link" in the "Administration" "block"
+    And I navigate to "View all submissions" in current page administration
     # Pick the grade link in the row that has s@example.com in it.
     And I click on "Grade" "link" in the "s@example.com" "table_row"
     And I set the field "Grade out of 100" to "40"
index 2222fb7..8e324bb 100644 (file)
@@ -101,7 +101,7 @@ Feature: availability_profile
 
     # Edit it again and check the setting still works.
     When I follow "P1"
-    And I navigate to "Edit settings" node in "Page module administration"
+    And I navigate to "Edit settings" in current page administration
     And I expand all fieldsets
     Then the field "User profile field" matches value "Super field"
     And the field "Value to compare against" matches value "Bananaman"
index 08a6f70..7193088 100644 (file)
@@ -216,7 +216,7 @@ Feature: edit_availability
 
     # Check the button still works after saving and editing.
     And I press "Save and display"
-    And I navigate to "Edit settings" node in "Forum administration"
+    And I navigate to "Edit settings" in current page administration
     And I expand all fieldsets
     And the "Add group/grouping access restriction" "button" should be disabled
     And I should see "Grouping" in the "Restrict access" "fieldset"
index ee24aa9..3f36f96 100644 (file)
@@ -135,7 +135,7 @@ abstract class backup implements checksumable {
     /**
      * Usually same than major release zero version, mainly for informative/historic purposes.
      */
-    const RELEASE = '3.2';
+    const RELEASE = '3.3';
 }
 
 /*
index d4ffb03..a5ead37 100644 (file)
@@ -43,19 +43,6 @@ use Behat\Gherkin\Node\TableNode as TableNode,
  */
 class behat_backup extends behat_base {
 
-    /**
-     * Follow a link like 'Backup' or 'Import', where the link name comes from
-     * a language string, in the settings nav block of a course.
-     * @param string $langstring the lang string to look for. E.g. 'backup' or 'import'.
-     * @param string $component (optional) second argument to {@link get_string}.
-     */
-    protected function navigate_to_course_settings_link($langstring, $component = '') {
-        $behatnavigation = new behat_navigation();
-        $behatnavigation->setMink($this->getMink());
-        $behatnavigation->i_navigate_to_node_in(get_string($langstring, $component),
-                get_string('courseadministration'));
-    }
-
     /**
      * Backups the specified course using the provided options. If you are interested in restoring this backup would be
      * useful to provide a 'Filename' option.
@@ -70,33 +57,31 @@ class behat_backup extends behat_base {
 
         // Go to homepage.
         $this->getSession()->visit($this->locate_path('/?redirect=0'));
+        $this->execute("behat_general::wait_until_the_page_is_ready");
 
         // Click the course link.
-        $this->find_link($backupcourse)->click();
+        $this->execute("behat_general::click_link", $backupcourse);
 
         // Click the backup link.
-        $this->navigate_to_course_settings_link('backup');
-        $this->wait();
+        $this->execute("behat_navigation::i_navigate_to_in_current_page_administration", get_string('backup'));
 
         // Initial settings.
         $this->fill_backup_restore_form($this->get_step_options($options, "Initial"));
-        $this->find_button(get_string('backupstage1action', 'backup'))->press();
-        $this->wait();
+        $this->execute("behat_forms::press_button", get_string('backupstage1action', 'backup'));
 
         // Schema settings.
         $this->fill_backup_restore_form($this->get_step_options($options, "Schema"));
-        $this->find_button(get_string('backupstage2action', 'backup'))->press();
-        $this->wait();
+        $this->execute("behat_forms::press_button", get_string('backupstage2action', 'backup'));
 
         // Confirmation and review, backup filename can also be specified.
         $this->fill_backup_restore_form($this->get_step_options($options, "Confirmation"));
-        $this->find_button(get_string('backupstage4action', 'backup'))->press();
+        $this->execute("behat_forms::press_button", get_string('backupstage4action', 'backup'));
 
         // Waiting for it to finish.
-        $this->wait(self::EXTENDED_TIMEOUT);
+        $this->execute("behat_general::wait_until_the_page_is_ready");
 
         // Last backup continue button.
-        $this->find_button(get_string('backupstage16action', 'backup'))->press();
+        $this->execute("behat_general::i_click_on", array(get_string('backupstage16action', 'backup'), 'button'));
     }
 
     /**
@@ -116,21 +101,19 @@ class behat_backup extends behat_base {
         $this->getSession()->visit($this->locate_path('/?redirect=0'));
 
         // Click the course link.
-        $this->find_link($backupcourse)->click();
+        $this->execute("behat_general::click_link", $backupcourse);
 
         // Click the backup link.
-        $this->find_link(get_string('backup'))->click();
-        $this->wait();
+        $this->execute("behat_navigation::i_navigate_to_in_current_page_administration", get_string('backup'));
 
         // Initial settings.
-        $this->find_button(get_string('jumptofinalstep', 'backup'))->press();
-        $this->wait();
+        $this->execute("behat_forms::press_button", get_string('jumptofinalstep', 'backup'));
 
         // Waiting for it to finish.
-        $this->wait(self::EXTENDED_TIMEOUT);
+        $this->execute("behat_general::wait_until_the_page_is_ready");
 
         // Last backup continue button.
-        $this->find_button(get_string('backupstage16action', 'backup'))->press();
+        $this->execute("behat_general::i_click_on", array(get_string('backupstage16action', 'backup'), 'button'));
     }
 
     /**
@@ -152,15 +135,13 @@ class behat_backup extends behat_base {
 
         // Go to homepage.
         $this->getSession()->visit($this->locate_path('/?redirect=0'));
-        $this->wait();
+        $this->execute("behat_general::wait_until_the_page_is_ready");
 
         // Click the course link.
-        $this->find_link($tocourse)->click();
-        $this->wait();
+        $this->execute("behat_general::click_link", $tocourse);
 
         // Click the import link.
-        $this->navigate_to_course_settings_link('import');
-        $this->wait();
+        $this->execute("behat_navigation::i_navigate_to_in_current_page_administration", get_string('import'));
 
         // Select the course.
         $exception = new ExpectationException('"' . $fromcourse . '" course not found in the list of courses to import from',
@@ -175,25 +156,24 @@ class behat_backup extends behat_base {
         $radiofield = new behat_form_field($this->getSession(), $radionode);
         $radiofield->set_value(1);
 
-        $this->find_button(get_string('continue'))->press();
-        $this->wait();
+        $this->execute("behat_forms::press_button", get_string('continue'));
 
         // Initial settings.
         $this->fill_backup_restore_form($this->get_step_options($options, "Initial"));
-        $this->find_button(get_string('importbackupstage1action', 'backup'))->press();
-        $this->wait();
+        $this->execute("behat_forms::press_button", get_string('importbackupstage1action', 'backup'));
 
         // Schema settings.
         $this->fill_backup_restore_form($this->get_step_options($options, "Schema"));
-        $this->find_button(get_string('importbackupstage2action', 'backup'))->press();
-        $this->wait();
+        $this->execute("behat_forms::press_button", get_string('importbackupstage2action', 'backup'));
 
         // Run it.
-        $this->find_button(get_string('importbackupstage4action', 'backup'))->press();
-        $this->wait(self::EXTENDED_TIMEOUT);
+        $this->execute("behat_forms::press_button", get_string('importbackupstage4action', 'backup'));
+
+        // Wait to ensure restore is complete.
+        $this->execute("behat_general::wait_until_the_page_is_ready");
 
         // Continue and redirect to 'to' course.
-        $this->find_button(get_string('continue'))->press();
+        $this->execute("behat_general::i_click_on", array(get_string('continue'), 'button'));
     }
 
     /**
@@ -215,17 +195,16 @@ class behat_backup extends behat_base {
         $existingcourse = behat_context_helper::escape($existingcourse);
 
         // Selecting the specified course (we can not call behat_forms::select_radio here as is in another behat subcontext).
-        $radionode = $this->find('xpath', "//div[contains(concat(' ', normalize-space(@class), ' '), ' bcs-existing-course ')]" .
+        $radionodexpath = "//div[contains(concat(' ', normalize-space(@class), ' '), ' bcs-existing-course ')]" .
             "/descendant::div[contains(concat(' ', normalize-space(@class), ' '), ' restore-course-search ')]" .
             "/descendant::tr[contains(., $existingcourse)]" .
-            "/descendant::input[@type='radio']");
-        $radionode->click();
+            "/descendant::input[@type='radio']";
+        $this->execute("behat_general::i_click_on", array($radionodexpath, 'xpath_element'));
 
         // Pressing the continue button of the restore into an existing course section.
-        $continuenode = $this->find('xpath', "//div[contains(concat(' ', normalize-space(@class), ' '), ' bcs-existing-course ')]" .
-            "/descendant::input[@type='submit'][@value='" . get_string('continue') . "']");
-        $continuenode->click();
-        $this->wait();
+        $continuenodexpath = "//div[contains(concat(' ', normalize-space(@class), ' '), ' bcs-existing-course ')]" .
+            "/descendant::input[@type='submit'][@value='" . get_string('continue') . "']";
+        $this->execute("behat_general::i_click_on", array($continuenodexpath, 'xpath_element'));
 
         // Common restore process using provided key/value options.
         $this->process_restore($options);
@@ -246,16 +225,15 @@ class behat_backup extends behat_base {
         $this->select_backup($backupfilename);
 
         // The first category in the list.
-        $radionode = $this->find('xpath', "//div[contains(concat(' ', normalize-space(@class), ' '), ' bcs-new-course ')]" .
+        $radionodexpath = "//div[contains(concat(' ', normalize-space(@class), ' '), ' bcs-new-course ')]" .
             "/descendant::div[contains(concat(' ', normalize-space(@class), ' '), ' restore-course-search ')]" .
-            "/descendant::input[@type='radio']");
-        $radionode->click();
+            "/descendant::input[@type='radio']";
+        $this->execute("behat_general::i_click_on", array($radionodexpath, 'xpath_element'));
 
         // Pressing the continue button of the restore into an existing course section.
-        $continuenode = $this->find('xpath', "//div[contains(concat(' ', normalize-space(@class), ' '), ' bcs-new-course ')]" .
-            "/descendant::input[@type='submit'][@value='" . get_string('continue') . "']");
-        $continuenode->click();
-        $this->wait();
+        $continuenodexpath = "//div[contains(concat(' ', normalize-space(@class), ' '), ' bcs-new-course ')]" .
+            "/descendant::input[@type='submit'][@value='" . get_string('continue') . "']";
+        $this->execute("behat_general::i_click_on", array($continuenodexpath, 'xpath_element'));
 
         // Common restore process using provided key/value options.
         $this->process_restore($options);
@@ -276,15 +254,14 @@ class behat_backup extends behat_base {
         $this->select_backup($backupfilename);
 
         // Merge without deleting radio option.
-        $radionode = $this->find('xpath', "//div[contains(concat(' ', normalize-space(@class), ' '), 'bcs-current-course')]" .
-            "/descendant::input[@type='radio'][@name='target'][@value='1']");
-        $radionode->click();
+        $radionodexpath = "//div[contains(concat(' ', normalize-space(@class), ' '), 'bcs-current-course')]" .
+            "/descendant::input[@type='radio'][@name='target'][@value='1']";
+        $this->execute("behat_general::i_click_on", array($radionodexpath, 'xpath_element'));
 
         // Pressing the continue button of the restore merging section.
-        $continuenode = $this->find('xpath', "//div[contains(concat(' ', normalize-space(@class), ' '), 'bcs-current-course')]" .
-            "/descendant::input[@type='submit'][@value='" . get_string('continue') . "']");
-        $continuenode->click();
-        $this->wait();
+        $continuenodexpath = "//div[contains(concat(' ', normalize-space(@class), ' '), 'bcs-current-course')]" .
+            "/descendant::input[@type='submit'][@value='" . get_string('continue') . "']";
+        $this->execute("behat_general::i_click_on", array($continuenodexpath, 'xpath_element'));
 
         // Common restore process using provided key/value options.
         $this->process_restore($options);
@@ -305,15 +282,14 @@ class behat_backup extends behat_base {
         $this->select_backup($backupfilename);
 
         // Delete contents radio option.
-        $radionode = $this->find('xpath', "//div[contains(concat(' ', normalize-space(@class), ' '), 'bcs-current-course')]" .
-            "/descendant::input[@type='radio'][@name='target'][@value='0']");
-        $radionode->click();
+        $radionodexpath = "//div[contains(concat(' ', normalize-space(@class), ' '), 'bcs-current-course')]" .
+            "/descendant::input[@type='radio'][@name='target'][@value='0']";
+        $this->execute("behat_general::i_click_on", array($radionodexpath, 'xpath_element'));
 
         // Pressing the continue button of the restore merging section.
-        $continuenode = $this->find('xpath', "//div[contains(concat(' ', normalize-space(@class), ' '), 'bcs-current-course')]" .
-            "/descendant::input[@type='submit'][@value='" . get_string('continue') . "']");
-        $continuenode->click();
-        $this->wait();
+        $continuenodexpath = "//div[contains(concat(' ', normalize-space(@class), ' '), 'bcs-current-course')]" .
+            "/descendant::input[@type='submit'][@value='" . get_string('continue') . "']";
+        $this->execute("behat_general::i_click_on", array($continuenodexpath, 'xpath_element'));
 
         // Common restore process using provided key/value options.
         $this->process_restore($options);
@@ -340,7 +316,7 @@ class behat_backup extends behat_base {
         $restorelink->click();
 
         // Confirm the backup contents.
-        $restore = $this->find_button(get_string('continue'))->press();
+        $this->find_button(get_string('continue'))->press();
     }
 
     /**
@@ -356,23 +332,20 @@ class behat_backup extends behat_base {
 
         // Settings.
         $this->fill_backup_restore_form($this->get_step_options($options, "Settings"));
-        $this->find_button(get_string('restorestage4action', 'backup'))->press();
-        $this->wait();
+        $this->execute("behat_forms::press_button", get_string('restorestage4action', 'backup'));
 
         // Schema.
         $this->fill_backup_restore_form($this->get_step_options($options, "Schema"));
-        $this->find_button(get_string('restorestage8action', 'backup'))->press();
-        $this->wait();
+        $this->execute("behat_forms::press_button", get_string('restorestage8action', 'backup'));
 
         // Review, no options here.
-        $this->find_button(get_string('restorestage16action', 'backup'))->press();
-        $this->wait();
+        $this->execute("behat_forms::press_button", get_string('restorestage16action', 'backup'));
 
-        // Last restore continue button, redirected to restore course after this.
-        $this->find_button(get_string('restorestage32action', 'backup'))->press();
+        // Wait till the final button is visible.
+        $this->execute("behat_general::wait_until_the_page_is_ready");
 
-        // Long wait when waiting for the restore to finish.
-        $this->wait(self::EXTENDED_TIMEOUT);
+        // Last restore continue button, redirected to restore course after this.
+        $this->execute("behat_general::i_click_on", array(get_string('restorestage32action', 'backup'), 'button'));
     }
 
     /**
@@ -431,25 +404,4 @@ class behat_backup extends behat_base {
 
         return $pageoptions;
     }
-
-
-    /**
-     * Waits until the DOM and the page Javascript code is ready.
-     *
-     * @param int $timeout The number of seconds that we wait.
-     * @return void
-     */
-    protected function wait($timeout = false) {
-
-        if (!$this->running_javascript()) {
-            return;
-        }
-
-        if (!$timeout) {
-            $timeout = self::TIMEOUT;
-        }
-
-        $this->getSession()->wait($timeout * 1000, self::PAGE_READY_JS);
-    }
-
 }
index 1fa38f1..32c1cd7 100644 (file)
@@ -41,7 +41,7 @@ Feature: Restore Moodle 2 course backups
     Then I should see "Course 1 restored in a new course"
     And I should see "Community finder" in the "Community finder" "block"
     And I should see "Test forum name"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" node in "Course administration"
     And I expand all fieldsets
     And the field "id_format" matches value "Topics format"
     And the field "Number of sections" matches value "15"
@@ -83,7 +83,7 @@ Feature: Restore Moodle 2 course backups
     When I restore "test_backup.mbz" backup into a new course using this options:
     Then I should see "Topic 1"
     And I should see "Test forum name"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" node in "Course administration"
     And I expand all fieldsets
     And the field "id_format" matches value "Topics format"
     And I set the following fields to these values:
@@ -95,14 +95,14 @@ Feature: Restore Moodle 2 course backups
     And I press "Save and display"
     And I should see "1 January - 7 January"
     And I should see "Test forum name"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" node in "Course administration"
     And I expand all fieldsets
     And the field "id_format" matches value "Weekly format"
     And I set the following fields to these values:
       | id_format | Social format |
     And I press "Save and display"
     And I should see "An open forum for chatting about anything you want to"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" node in "Course administration"
     And I expand all fieldsets
     And the field "id_format" matches value "Social format"
     And I press "Cancel"
@@ -119,7 +119,7 @@ Feature: Restore Moodle 2 course backups
       | Confirmation | Filename | test_backup.mbz |
     And I restore "test_backup.mbz" backup into "Course 2" course using this options:
       | Schema | Overwrite course configuration | Yes |
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" node in "Course administration"
     And I expand all fieldsets
     Then the field "id_format" matches value "Topics format"
     And the field "Number of sections" matches value "15"
index cafe671..e0399fa 100644 (file)
@@ -14,12 +14,16 @@ Feature: Add badges to the system
     And I set the field "Default badge issuer name" to "Test Badge Site"
     And I set the field "Default badge issuer contact details" to "testuser@example.com"
     And I press "Save changes"
+    And I follow "Badges"
     When I follow "Add a new badge"
     Then the field "issuercontact" matches value "testuser@example.com"
     And the field "issuername" matches value "Test Badge Site"
 
   @javascript
   Scenario: Accessing the badges
+    And I press "Customise this page"
+   # TODO MDL-57120 site "Badges" link not accessible without navigation block.
+    And I add the "Navigation" block if not present
     Given I navigate to "Site badges" node in "Site pages"
     Then I should see "There are no badges available."
 
index b57d54d..462ef80 100644 (file)
@@ -109,7 +109,7 @@ Feature: Block activity modules
       | workshop   | Test workshop name     | Test workshop description     | C1     | workshop1   |
 
     When I log in as "admin"
-    And I follow "Courses"
+    And I am on course index
     And I follow "Course 1"
     And I turn editing mode on
     And I add the "Activities" block
index ef51f1e..7af21b1 100644 (file)
@@ -50,7 +50,7 @@ Feature: The activity results block displays student scores
     And I press "Save and return to course"
     And I follow "Course 1"
     And I should see "Test page name"
-    And I go to "View > Grader report" in the course gradebook
+    And I navigate to "View > Grader report" in the course gradebook
     And I turn editing mode on
     And I give the grade "90.00" to the user "Student 1" for the grade item "Test assignment 1"
     And I give the grade "80.00" to the user "Student 2" for the grade item "Test assignment 1"
index 012549e..3aa10b9 100644 (file)
@@ -33,7 +33,7 @@ Feature: The activity results block displays student scores
       | id_config_nameformat | Display full names |
     And I press "Save changes"
     When I follow "Test assignment"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
       | id_grade_modgrade_type | None |
     And I press "Save and return to course"
index b99eba4..4a2a8bc 100644 (file)
@@ -32,7 +32,7 @@ Feature: The activity results block displays student scores
       | Description | Offline text |
       | assignsubmission_file_enabled | 0 |
     And I follow "Course 1"
-    And I go to "View > Grader report" in the course gradebook
+    And I navigate to "View > Grader report" in the course gradebook
     And I turn editing mode on
     And I give the grade "90.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "80.00" to the user "Student 2" for the grade item "Test assignment"
index 451c129..86dee32 100644 (file)
@@ -26,7 +26,7 @@ Feature: The activity results block displays student scores as scales
       | student5 | C1 | student |
     And I log in as "teacher1"
     And I follow "Course 1"
-    And I go to "Scales" in the course gradebook
+    And I navigate to "Scales" in the course gradebook
     And I press "Add a new scale"
     And I set the following fields to these values:
       | Name | My Scale |
@@ -41,7 +41,7 @@ Feature: The activity results block displays student scores as scales
       | id_grade_modgrade_type | Scale |
       | id_grade_modgrade_scale | My Scale |
     And I follow "Course 1"
-    And I go to "View > Grader report" in the course gradebook
+    And I navigate to "View > Grader report" in the course gradebook
     And I turn editing mode on
     And I give the grade "Excellent!" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "Very good" to the user "Student 2" for the grade item "Test assignment"
index e1f85aa..536a00e 100644 (file)
@@ -43,7 +43,7 @@ Feature: The activity results block displays student scores as scales
       | student6 | G3 |
     And I log in as "teacher1"
     And I follow "Course 1"
-    And I go to "Scales" in the course gradebook
+    And I navigate to "Scales" in the course gradebook
     And I press "Add a new scale"
     And I set the following fields to these values:
       | Name | My Scale |
@@ -59,7 +59,7 @@ Feature: The activity results block displays student scores as scales
       | id_grade_modgrade_scale | My Scale |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I go to "View > Grader report" in the course gradebook
+    And I navigate to "View > Grader report" in the course gradebook
     And I turn editing mode on
     And I give the grade "Excellent!" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "Very good" to the user "Student 2" for the grade item "Test assignment"
index e0b81c0..c764e80 100644 (file)
@@ -50,7 +50,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I go to "View > Grader report" in the course gradebook
+    And I navigate to "View > Grader report" in the course gradebook
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
index 4abf721..bf10d79 100644 (file)
@@ -50,7 +50,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Visible groups |
     And I follow "Course 1"
-    And I go to "View > Grader report" in the course gradebook
+    And I navigate to "View > Grader report" in the course gradebook
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
index 8e153e6..a1496c6 100644 (file)
@@ -32,7 +32,7 @@ Feature: The activity results block displays student scores
       | Description | Offline text |
       | assignsubmission_file_enabled | 0 |
     And I follow "Course 1"
-    And I go to "View > Grader report" in the course gradebook
+    And I navigate to "View > Grader report" in the course gradebook
     And I turn editing mode on
     And I give the grade "90.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "80.00" to the user "Student 2" for the grade item "Test assignment"
index b13cd8d..587f863 100644 (file)
@@ -26,7 +26,7 @@ Feature: The activity results block displays student scores as scales
       | student5 | C1 | student |
     And I log in as "teacher1"
     And I follow "Course 1"
-    And I go to "Scales" in the course gradebook
+    And I navigate to "Scales" in the course gradebook
     And I press "Add a new scale"
     And I set the following fields to these values:
       | Name | My Scale |
@@ -41,7 +41,7 @@ Feature: The activity results block displays student scores as scales
       | id_grade_modgrade_type | Scale |
       | id_grade_modgrade_scale | My Scale |
     And I follow "Course 1"
-    And I go to "View > Grader report" in the course gradebook
+    And I navigate to "View > Grader report" in the course gradebook
     And I turn editing mode on
     And I give the grade "Excellent!" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "Very good" to the user "Student 2" for the grade item "Test assignment"
index 54e72a9..f43348e 100644 (file)
@@ -43,7 +43,7 @@ Feature: The activity results block displays student scores as scales
       | student6 | G3 |
     And I log in as "teacher1"
     And I follow "Course 1"
-    And I go to "Scales" in the course gradebook
+    And I navigate to "Scales" in the course gradebook
     And I press "Add a new scale"
     And I set the following fields to these values:
       | Name | My Scale |
@@ -59,7 +59,7 @@ Feature: The activity results block displays student scores as scales
       | id_grade_modgrade_scale | My Scale |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I go to "View > Grader report" in the course gradebook
+    And I navigate to "View > Grader report" in the course gradebook
     And I turn editing mode on
     And I give the grade "Excellent!" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "Very good" to the user "Student 2" for the grade item "Test assignment"
index 1c8451b..640517e 100644 (file)
@@ -50,7 +50,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Separate groups |
     And I follow "Course 1"
-    And I go to "View > Grader report" in the course gradebook
+    And I navigate to "View > Grader report" in the course gradebook
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
index 4d53ab6..2010dcd 100644 (file)
@@ -50,7 +50,7 @@ Feature: The activity results block displays student scores
       | assignsubmission_file_enabled | 0 |
       | Group mode | Visible groups |
     And I follow "Course 1"
-    And I go to "View > Grader report" in the course gradebook
+    And I navigate to "View > Grader report" in the course gradebook
     And I turn editing mode on
     And I give the grade "100.00" to the user "Student 1" for the grade item "Test assignment"
     And I give the grade "90.00" to the user "Student 2" for the grade item "Test assignment"
index e62f9b8..09ca077 100644 (file)
@@ -85,5 +85,8 @@ function xmldb_block_badges_upgrade($oldversion, $block) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 7a39ed1..3f87995 100644 (file)
@@ -35,5 +35,4 @@ Feature: Enable Block Badges on the dashboard and view awarded badges
     And I press "Award badge"
     And I log out
     When I log in as "teacher1"
-    And I click on "Dashboard" "link" in the "Navigation" "block"
     Then I should see "Badge 1" in the "Latest badges" "block"
index 2f5a7d5..3b838df 100644 (file)
@@ -12,6 +12,8 @@ Feature: Feature: Students can use the recent blog entries block to view recent
     And I am on site homepage
     And I navigate to "Turn editing on" node in "Front page settings"
     And I add the "Recent blog entries" block
+    # TODO MDL-57120 site "Blogs" link not accessible without navigation block.
+    And I add the "Navigation" block if not present
     And I log out
 
   Scenario: Students use the recent blog entries block to view blogs
index 597cbe7..60572e1 100644 (file)
@@ -24,8 +24,11 @@ Feature: Adding blog tag block
     And I follow "Course 1"
     And I turn editing mode on
     And I add the "Blog tags" block
+    # TODO MDL-57120 site "Blogs" link not accessible without navigation block.
+    And I add the "Navigation" block if not present
 
-    And I navigate to "Course blogs" node in "My courses > c1 > Participants"
+    And I navigate to course participants
+    And I click on "Course blogs" "link" in the "Navigation" "block"
     And I follow "Blog about this Course"
     And I set the following fields to these values:
       | Entry title                                 | Blog post from teacher    |
@@ -35,7 +38,8 @@ Feature: Adding blog tag block
     And I log out
     And I log in as "student1"
     And I follow "Course 1"
-    And I navigate to "Course blogs" node in "My courses > c1 > Participants"
+    And I navigate to course participants
+    And I click on "Course blogs" "link" in the "Navigation" "block"
     And I follow "Blog about this Course"
     And I set the following fields to these values:
       | Entry title                                 | Blog post from student    |
index df1c068..f1c1a52 100644 (file)
@@ -85,5 +85,8 @@ function xmldb_block_calendar_month_upgrade($oldversion, $block) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 1dd28e9..e4952e8 100644 (file)
@@ -86,7 +86,7 @@ Feature: Enable the calendar block in a course and test it's functionality
     And I create a calendar event with form data:
       | id_eventtype | User |
       | id_name | User Event |
-    When I click on "Dashboard" "link" in the "Navigation" "block"
+    When I am on homepage
     And I follow "Course 1"
     And I follow "Hide course events"
     And I hover over today in the calendar
@@ -102,7 +102,7 @@ Feature: Enable the calendar block in a course and test it's functionality
     And I create a calendar event with form data:
       | id_eventtype | User |
       | id_name | User Event |
-    When I click on "Dashboard" "link" in the "Navigation" "block"
+    When I am on homepage
     And I follow "Course 1"
     And I hover over today in the calendar
     Then I should see "User Event"
@@ -120,7 +120,7 @@ Feature: Enable the calendar block in a course and test it's functionality
     And I create a calendar event with form data:
       | id_eventtype | User |
       | id_name | User Event |
-    When I click on "Dashboard" "link" in the "Navigation" "block"
+    When I am on homepage
     And I follow "Course 1"
     And I follow "Hide user events"
     And I hover over today in the calendar
index 8d57d38..7a20754 100644 (file)
@@ -85,5 +85,8 @@ function xmldb_block_calendar_upcoming_upgrade($oldversion, $block) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index e4e537f..cbdb471 100644 (file)
@@ -58,5 +58,8 @@ function xmldb_block_community_upgrade($oldversion) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 9767c51..ec79d8a 100644 (file)
@@ -60,5 +60,8 @@ function xmldb_block_completionstatus_upgrade($oldversion, $block) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 58b7cc7..9fd8295 100644 (file)
@@ -43,7 +43,7 @@ Feature: Enable Block Completion in a course
     And I follow "Course 1"
     And I turn editing mode on
     And I follow "Test page name"
-    And I navigate to "Edit settings" node in "Page module administration"
+    And I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
       | Completion tracking | Show activity as complete when conditions are met |
       | Require view | 1 |
index 7d3285f..0a31bb7 100644 (file)
@@ -25,7 +25,7 @@ Feature: Enable Block Completion in a course using activity completion
     And I follow "Course 1"
     And I turn editing mode on
     And I follow "Test page name"
-    And I navigate to "Edit settings" node in "Page module administration"
+    And I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
       | Completion tracking | Show activity as complete when conditions are met |
       | Require view | 1 |
@@ -47,7 +47,7 @@ Feature: Enable Block Completion in a course using activity completion
     And I follow "Course 1"
     And I turn editing mode on
     And I follow "Test page name"
-    And I navigate to "Edit settings" node in "Page module administration"
+    And I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
       | Completion tracking | Show activity as complete when conditions are met |
       | Require view | 1 |
index 90b8c36..389b6c5 100644 (file)
@@ -153,7 +153,6 @@ Feature: View the course overview block on the dashboard and test it's functiona
     And I click on "Enable" "link" in the "Course meta link" "table_row"
     And I am on site homepage
     And I follow "Course 2"
-    And I navigate to "Enrolment methods" node in "Course administration > Users"
     And I add "Course meta link" enrolment method with:
       | Link course | C1 |
     And I log out
index 2905aae..3613226 100644 (file)
@@ -60,5 +60,8 @@ function xmldb_block_course_summary_upgrade($oldversion, $block) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 0018143..fc6f19c 100644 (file)
@@ -10,7 +10,7 @@ Scenario: Admin can add random glossary block to the frontpage
     | glossary   | Tips and Tricks  | Frontpage glossary description | Acceptance test site | glossary0 |
   And I log in as "admin"
   And I am on site homepage
-  And I click on "Turn editing on" "link" in the "Administration" "block"
+  And I turn editing mode on
   And I add the "Random glossary entry" block
   And I configure the "block_glossary_random" block
   And I set the following fields to these values:
index 7f27cf1..3e57de1 100644 (file)
@@ -45,5 +45,8 @@ function xmldb_block_html_upgrade($oldversion) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 5c696d8..b4865e7 100644 (file)
@@ -8,7 +8,7 @@ Feature: Adding and configuring HTML blocks
   Scenario: Configuring the HTML block with Javascript on
     Given I log in as "admin"
     And I am on site homepage
-    When I click on "Turn editing on" "link" in the "Administration" "block"
+    When I turn editing mode on
     And I add the "HTML" block
     And I configure the "(new HTML block)" block
     And I set the field "Content" to "Static text without a header"
@@ -25,7 +25,7 @@ Feature: Adding and configuring HTML blocks
   Scenario: Configuring the HTML block with Javascript off
     Given I log in as "admin"
     And I am on site homepage
-    When I click on "Turn editing on" "link" in the "Administration" "block"
+    When I turn editing mode on
     And I add the "HTML" block
     And I configure the "(new HTML block)" block
     And I set the field "Content" to "Static text without a header"
index 564c0b2..93b58de 100644 (file)
@@ -7,7 +7,7 @@ Feature: Adding and configuring HTML blocks
   Background:
     Given I log in as "admin"
     And I am on site homepage
-    When I click on "Turn editing on" "link" in the "Administration" "block"
+    When I turn editing mode on
     And I add the "HTML" block
 
   Scenario: Other users can not see HTML block that has not been configured
index f137d38..3de8a6b 100644 (file)
@@ -67,5 +67,8 @@ function xmldb_block_navigation_upgrade($oldversion, $block) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 4e99a94..56c85bf 100644 (file)
@@ -38,6 +38,13 @@ Feature: Expand the courses nodes within the navigation block
       | navshowallcourses | 1 |
     And I log in as "admin"
     And I am on site homepage
+    And I turn editing mode on
+    And I add the "Navigation" block if not present
+    And I configure the "Navigation" block
+    And I set the following fields to these values:
+      | Page contexts | Display throughout the entire site |
+    And I press "Save changes"
+    And I turn editing mode off
     And I follow "Course 2"
     And I navigate to "Enrolment methods" node in "Course administration > Users"
     And I click on "Edit" "link" in the "Guest access" "table_row"
index 5b2f4d6..76533c9 100644 (file)
@@ -15,13 +15,22 @@ Feature: Displaying the link to the Participants page
     And the following "course enrolments" exist:
       | user     | course | role    |
       | student1 | C1     | student |
+    And I log in as "admin"
+    And I am on site homepage
+    And I turn editing mode on
+    And I add the "Navigation" block if not present
+    And I configure the "Navigation" block
+    And I set the following fields to these values:
+      | Page contexts | Display throughout the entire site |
+    And I press "Save changes"
+    And I log out
 
   @javascript
   Scenario: Course participants link is displayed to enrolled students after expanding the course node
     When I log in as "student1"
     And I expand "C1" node
     Then "Participants" "link" should exist in the "Navigation" "block"
-    And I navigate to "Participants" node in "My courses > C1"
+    And I click on "Participants" "link" in the "Navigation" "block"
     And I should see "Participants"
     And "Student One" "link" should exist
     And "Student Two" "link" should not exist
@@ -29,7 +38,7 @@ Feature: Displaying the link to the Participants page
   Scenario: Site participants link is displayed to admins
     When I log in as "admin"
     Then "Participants" "link" should exist in the "Navigation" "block"
-    And I navigate to "Participants" node in "Site pages"
+    And I click on "Participants" "link" in the "Navigation" "block"
     And I should see "Participants"
     And "Student One" "link" should exist
     And "Student Two" "link" should exist
index bed4767..2b086ce 100644 (file)
@@ -29,6 +29,15 @@ Feature: View my courses in navigation block
       | student1 | c1     | student |
       | student1 | c31    | student |
       | student1 | c331   | student |
+    And I log in as "admin"
+    And I am on site homepage
+    And I turn editing mode on
+    And I add the "Navigation" block if not present
+    And I configure the "Navigation" block
+    And I set the following fields to these values:
+      | Page contexts | Display throughout the entire site |
+    And I press "Save changes"
+    And I log out
 
   @javascript
   Scenario: The plain list of enrolled courses is shown
index a899073..ada6a9e 100644 (file)
@@ -34,14 +34,14 @@ Feature: Latest announcements block displays the course latest news
     Then I should see "Discussion One" in the "Latest announcements" "block"
     And I should see "Discussion Two" in the "Latest announcements" "block"
     And I should see "Discussion Three" in the "Latest announcements" "block"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
       | News items to show | 2 |
     And I press "Save and display"
     And I should not see "Discussion One" in the "Latest announcements" "block"
     And I should see "Discussion Two" in the "Latest announcements" "block"
     And I should see "Discussion Three" in the "Latest announcements" "block"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
       | News items to show | 0 |
     And I press "Save and display"
index 129ecc9..32ae28c 100644 (file)
@@ -110,5 +110,8 @@ function xmldb_block_quiz_results_upgrade($oldversion, $block) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
\ No newline at end of file
index e2c9193..45b9d65 100644 (file)
@@ -59,5 +59,8 @@ function xmldb_block_recent_activity_upgrade($oldversion, $block) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 5914281..067b573 100644 (file)
@@ -165,7 +165,7 @@ Feature: View structural changes in recent activity block
     And I log in as "teacher1"
     And I follow "Course 1"
     And I follow "ForumNew"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
       | name | ForumUpdated |
     And I press "Save and return to course"
index b8487d9..845a93c 100644 (file)
@@ -56,5 +56,8 @@ function xmldb_block_rss_client_upgrade($oldversion) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 0f54b4b..a52b9ad 100644 (file)
@@ -43,7 +43,7 @@ Feature: The search forums block allows users to search for forum posts
     And I follow "Course 1"
     And I turn editing mode on
     And I follow "Announcements"
-    And I navigate to "Edit settings" node in "Forum administration"
+    And I navigate to "Edit settings" in current page administration
     And I expand all fieldsets
     And I set the field "id_visible" to "0"
     And I press "Save and return to course"
index d570716..6363ae0 100644 (file)
@@ -61,5 +61,8 @@ function xmldb_block_section_links_upgrade($oldversion, $block) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 374ea53..0f23a91 100644 (file)
@@ -60,5 +60,8 @@ function xmldb_block_selfcompletion_upgrade($oldversion, $block) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index c435ed7..98bbed2 100644 (file)
@@ -67,5 +67,8 @@ function xmldb_block_settings_upgrade($oldversion, $block) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index c90c697..a5a1652 100644 (file)
@@ -25,6 +25,8 @@
 
 // NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php.
 
+use Behat\Mink\Exception\ElementNotFoundException as ElementNotFoundException;
+
 require_once(__DIR__ . '/../../../lib/behat/behat_base.php');
 
 /**
@@ -56,6 +58,20 @@ class behat_blocks extends behat_base {
         }
     }
 
+    /**
+     * Adds the selected block if it is not already present. Editing mode must be previously enabled.
+     *
+     * @Given /^I add the "(?P<block_name_string>(?:[^"]|\\")*)" block if not present$/
+     * @param string $blockname
+     */
+    public function i_add_the_block_if_not_present($blockname) {
+        try {
+            $this->get_text_selector_node('block', $blockname);
+        } catch (ElementNotFoundException $e) {
+            $this->execute('behat_blocks::i_add_the_block', [$blockname]);
+        }
+    }
+
     /**
      * Docks a block. Editing mode should be previously enabled.
      *
index db03ce2..a9d31d7 100644 (file)
@@ -50,9 +50,8 @@ Feature: Add and configure blocks throughout the site
 
   Scenario: Blocks on the dashboard page can have roles assigned to them
     Given I log in as "manager1"
-    And I click on "Dashboard" "link" in the "Navigation" "block"
     When I press "Customise this page"
-    Then I should see "Assign roles in Navigation block"
+    Then I should see "Assign roles in Private files block"
 
   Scenario: Blocks on courses can have roles assigned to them
     Given I log in as "teacher1"
@@ -64,7 +63,7 @@ Feature: Add and configure blocks throughout the site
   @javascript
   Scenario: Blocks can safely be customised
     Given I log in as "admin"
-    And I click on "Dashboard" "link" in the "Navigation" "block"
+    And I am on homepage
     And I press "Customise this page"
     And I add the "HTML" block
     And I configure the "(new HTML block)" block
index 10068dc..6a5c2a1 100644 (file)
@@ -30,8 +30,7 @@ Feature: Allowed blocks controls
       | block/activity_modules:addinstance | Prohibit |
     And I am on site homepage
     And I follow "Course 1"
-    And I expand "Users" node
-    And I follow "Permissions"
+    And I navigate to "Users > Permissions" in current page administration
     And I override the system permissions of "Teacher" role with:
       | block/completionstatus:addinstance | Prohibit |
     And I log out
index 931eb3f..98226cd 100644 (file)
@@ -14,7 +14,7 @@ Feature: The context of a block can always be returned to it's original state.
     And I follow "Turn editing on"
     And I add the "Tags" block
     Then I should see "Tags" in the "Tags" "block"
-    And I click on "Participants" "link" in the "//li[p/a[contains(normalize-space(string(.)), 'Courses')]]" "xpath_element"
+    And I navigate to course participants
     And I configure the "Tags" block
     And I set the following fields to these values:
       | Display on page types | Any page |
@@ -31,7 +31,7 @@ Feature: The context of a block can always be returned to it's original state.
     And I should see "Tags" in the "Tags" "block"
     And I follow "Course 1"
     And "Tags" "block" should not exist
-    And I navigate to "Participants" node in "Courses > C1"
+    And I navigate to course participants
     And "Tags" "block" should not exist
     And I follow "Course 1"
     And I add a "Assignment" to section "1" and I fill the form with:
@@ -45,5 +45,5 @@ Feature: The context of a block can always be returned to it's original state.
     And I press "Save changes"
     And I follow "Course 1"
     And I should see "Tags" in the "Tags" "block"
-    And I navigate to "Participants" node in "Courses > C1"
+    And I navigate to course participants
     And I should see "Tags" in the "Tags" "block"
index dfb5c8f..e135681 100644 (file)
@@ -27,7 +27,7 @@ Feature: Blogs can be set to be only visible by the author.
   Scenario: A student can not see another student's blog entries.
     Given I log in as "testuser"
     And I follow "Course 1"
-    And I follow "Participants"
+    And I navigate to course participants
     And I follow "Test2 User2"
     And I should see "Miscellaneous"
     Then I should not see "Blog entries"
index 182f2e8..86099b0 100644 (file)
@@ -9,9 +9,18 @@ Feature: Comment on a blog entry
       | username | firstname | lastname | email |
       | testuser | Test | User | moodle@example.com |
       | testuser2 | Test2 | User2 | moodle2@example.com |
+    And I log in as "admin"
+    And I am on site homepage
+    And I turn editing mode on
+    # TODO MDL-57120 "Site blogs" link not accessible without navigation block.
+    And I add the "Navigation" block if not present
+    And I configure the "Navigation" block
+    And I set the following fields to these values:
+      | Page contexts | Display throughout the entire site |
+    And I press "Save changes"
+    And I log out
     And I log in as "testuser"
-    And I expand "Site pages" node
-    And I follow "Site blogs"
+    And I navigate to "Site blogs" node in "Site pages"
     And I follow "Add a new entry"
     And I set the following fields to these values:
       | Entry title | Blog post from user 1 |
@@ -23,8 +32,7 @@ Feature: Comment on a blog entry
   Scenario: Commenting on my own blog entry
     Given I am on site homepage
     And I log in as "testuser"
-    And I expand "Site pages" node
-    And I follow "Site blogs"
+    And I navigate to "Site blogs" node in "Site pages"
     And I follow "Blog post from user 1"
     And I should see "User 1 blog post content"
     And I follow "Comments (0)"
@@ -39,8 +47,7 @@ Feature: Comment on a blog entry
   Scenario: Deleting my own comment
     Given I am on site homepage
     And I log in as "testuser"
-    And I expand "Site pages" node
-    And I follow "Site blogs"
+    And I navigate to "Site blogs" node in "Site pages"
     And I follow "Blog post from user 1"
     And I should see "User 1 blog post content"
     And I follow "Comments (0)"
@@ -60,8 +67,7 @@ Feature: Comment on a blog entry
     Given I am on site homepage
     And I log in as "testuser2"
     And I am on site homepage
-    And I expand "Site pages" node
-    And I follow "Site blogs"
+    And I navigate to "Site blogs" node in "Site pages"
     And I follow "Blog post from user 1"
     When I follow "Comments (0)"
     And I set the field "content" to "$My own >nasty< \"string\"!"
index cd1dd5b..d41e9de 100644 (file)
@@ -8,9 +8,18 @@ Feature: Delete a blog entry
     Given the following "users" exist:
       | username | firstname | lastname | email |
       | testuser | Test | User | moodle@example.com |
+    And I log in as "admin"
+    And I am on site homepage
+    And I turn editing mode on
+    # TODO MDL-57120 "Site blogs" link not accessible without navigation block.
+    And I add the "Navigation" block if not present
+    And I configure the "Navigation" block
+    And I set the following fields to these values:
+      | Page contexts | Display throughout the entire site |
+    And I press "Save changes"
+    And I log out
     And I log in as "testuser"
-    And I expand "Site pages" node
-    And I follow "Site blogs"
+    And I navigate to "Site blogs" node in "Site pages"
     And I follow "Add a new entry"
     And I set the following fields to these values:
       | Entry title | Blog post one |
@@ -22,8 +31,7 @@ Feature: Delete a blog entry
       | Blog entry body | User 1 blog post content |
     And I press "Save changes"
     And I am on site homepage
-    And I expand "Site pages" node
-    And I follow "Site blogs"
+    And I navigate to "Site blogs" node in "Site pages"
 
   Scenario: Delete blog post results in post deleted
     Given I follow "Blog post one"
index 8f5dc51..899ec2c 100644 (file)
@@ -58,8 +58,10 @@ Feature: Access visible and hidden cohorts
     And the "Cohort" select box should contain "System empty cohort"
     And I set the field "Cohort" to "System cohort"
     And I press "Add method"
+    And I follow "Course 1"
     And I navigate to "Enrolled users" node in "Course administration > Users"
     And I should see "student@example.com"
+    And I follow "Course 1"
     And I navigate to "Groups" node in "Course administration > Users"
     And I press "Auto-create groups"
     And the "Select members from cohort" select box should contain "Cohort in category 1"
index 3d89faf..7d21b98 100644 (file)
@@ -38,7 +38,8 @@ Feature: Add cohorts of users
     And the "Current users" select box should not contain "Forth User (forth@example.com)"
 
   Scenario: Add users to a cohort using a bulk user action
-    When I follow "Bulk user actions"
+    When I follow "Accounts"
+    And I follow "Bulk user actions"
     And I set the field "Available" to "Third User"
     And I press "Add to selection"
     And I set the field "Available" to "Forth User"
@@ -47,6 +48,7 @@ Feature: Add cohorts of users
     And I press "Go"
     And I set the field "Cohort" to "Test cohort name [333]"
     And I press "Add to cohort"
+    And I follow "Accounts"
     And I follow "Cohorts"
     Then I should see "2" in the "#cohorts" "css_element"
     And I click on "Assign" "link" in the "Test cohort name" "table_row"
index 702107e..68adda8 100644 (file)
@@ -28,7 +28,7 @@ Feature: Upload users to a cohort
     And I press "Upload users"
     And I press "Upload users"
     And I press "Continue"
-    And I follow "Cohorts"
+    And I navigate to "Users > Accounts > Cohorts" in site administration
     And I click on "Assign" "link" in the "Cohort 1" "table_row"
     Then the "Current users" select box should contain "Tom Jones (tomjones@example.com)"
     And the "Current users" select box should contain "Bob Jones (bobjones@example.com)"
@@ -38,15 +38,13 @@ Feature: Upload users to a cohort
     And the "Current users" select box should contain "Alice Smith (alicesmith@example.com)"
     And I am on site homepage
     And I follow "Course 1"
-    And I expand "Users" node
-    And I follow "Enrolled users"
+    And I navigate to "Users > Enrolled users" in current page administration
     And I should see "Tom Jones"
     And I should see "Bob Jones"
     And I should not see "Mary Smith"
     And I am on site homepage
     And I follow "Course 2"
-    And I expand "Users" node
-    And I follow "Enrolled users"
+    And I navigate to "Users > Enrolled users" in current page administration
     And I should see "Mary Smith"
     And I should see "Alice Smith"
     And I should not see "Tom Jones"
index 822fa60..a400b01 100644 (file)
@@ -90,9 +90,9 @@ Feature: A privileged user can create cohorts using a CSV file
       | user  | role    | contextlevel | reference |
       | user1 | manager | Category     | CAT1      |
     When I log in as "user1"
-    And I follow "Courses"
+    And I am on course index
     And I follow "Cat 1"
-    And I navigate to "Cohorts" node in "Category: Cat 1"
+    And I navigate to "Cohorts" in current page administration
     And I follow "Upload cohorts"
     And I upload "cohort/tests/fixtures/uploadcohorts1.csv" file to "File" filemanager
     And I click on "Preview" "button"
index 8e7a742..f970701 100644 (file)
@@ -53,7 +53,7 @@ Feature: View cohort list
 
   Scenario: Manager in category can see cohorts in the category
     When I log in as "user2"
-    And I follow "Courses"
+    And I am on course index
     And I follow "Cat 1"
     And I follow "Cohorts"
     And I should not see "All cohorts"
index 91f87a4..9ae2895 100644 (file)
@@ -410,19 +410,21 @@ M.core_comment = {
     },
     init_admin: function(Y) {
         var select_all = Y.one('#comment_select_all');
-        select_all.on('click', function(e) {
-            var comments = document.getElementsByName('comments');
-            var checked = false;
-            for (var i in comments) {
-                if (comments[i].checked) {
-                    checked=true;
+        if (select_all) {
+            select_all.on('click', function(e) {
+                var comments = document.getElementsByName('comments');
+                var checked = false;
+                for (var i in comments) {
+                    if (comments[i].checked) {
+                        checked=true;
+                    }
                 }
-            }
-            for (i in comments) {
-                comments[i].checked = !checked;
-            }
-            this.set('checked', !checked);
-        });
+                for (i in comments) {
+                    comments[i].checked = !checked;
+                }
+                this.set('checked', !checked);
+            });
+        }
 
         var comments_delete = Y.one('#comments_delete');
         if (comments_delete) {
index 1f8f7f7..d54c6c6 100644 (file)
@@ -158,7 +158,7 @@ abstract class exporter {
             } else if ($definition['type'] === PARAM_TEXT) {
                 if (!empty($definition['multiple'])) {
                     foreach ($data->$property as $key => $value) {
-                        $data->$property[$key] = external_format_string($value, $context->id);
+                        $data->{$property}[$key] = external_format_string($value, $context->id);
                     }
                 } else {
                     $data->$property = external_format_string($data->$property, $context->id);
index 101e1b4..a2d2c90 100644 (file)
@@ -111,6 +111,9 @@ class core_competency_exporter_testcase extends advanced_testcase {
         $output = $PAGE->get_renderer('tool_lp');
 
         $result = $exporter->export($output);
+
+        $this->assertSame('Another string', $result->otherstring);
+        $this->assertSame(array('String a', 'String b'), $result->otherstrings);
     }
 }
 
@@ -130,8 +133,8 @@ class core_competency_testable_exporter extends \core_competency\external\export
 
     protected function get_other_values(renderer_base $output) {
         return array(
-            'otherstring' => 'An other string',
-            'otherstrings' => array('String a', 'String b')
+            'otherstring' => 'Another <strong>string</strong>',
+            'otherstrings' => array('String a', 'String <strong>b</strong>')
         );
     }
 
index 75a11a2..c7aeb27 100644 (file)
@@ -21,7 +21,7 @@ Feature: Allow students to manually mark an activity as complete
     And I am on site homepage
     And I follow "Course 1"
     And I turn editing mode on
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
       | Enable completion tracking | Yes |
     And I press "Save and display"
@@ -38,6 +38,5 @@ Feature: Allow students to manually mark an activity as complete
     And I log in as "teacher1"
     And I am on site homepage
     And I follow "Course 1"
-    And I expand "Reports" node
-    And I follow "Activity completion"
+    And I navigate to "Reports > Activity completion" in current page administration
     And "Student First" user has completed "Test forum name" activity
index a42b23c..040bf16 100644 (file)
@@ -56,7 +56,7 @@ Feature: Restrict activity availability through grade conditions
     And I am on site homepage
     And I follow "Course 1"
     And I follow "Grade assignment"
-    And I click on "View all submissions" "link" in the "Administration" "block"
+    And I navigate to "View all submissions" in current page administration
     And I click on "Grade" "link" in the "Student First" "table_row"
     And I set the following fields to these values:
       | Grade | 21 |
index 5090562..c538bb2 100644 (file)
@@ -23,7 +23,7 @@ Feature: Restrict sections availability through completion or grade conditions
     And I am on site homepage
     And I follow "Course 1"
     And I turn editing mode on
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
       | Enable completion tracking | Yes |
     And I press "Save and display"
@@ -93,7 +93,7 @@ Feature: Restrict sections availability through completion or grade conditions
     And I am on site homepage
     And I follow "Course 1"
     And I follow "Grade assignment"
-    And I click on "View all submissions" "link" in the "Administration" "block"
+    And I navigate to "View all submissions" in current page administration
     And I click on "Grade" "link" in the "Student First" "table_row"
     And I set the following fields to these values:
       | Grade | 21 |
index 92bc5e9..2f474b2 100644 (file)
@@ -97,7 +97,7 @@ Background:
     And I follow "Course 1"
 
 Scenario: When number of discussions is decreased fewer discussions appear
-    Given I click on "Edit settings" "link" in the "Administration" "block"
+    Given I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
     | numdiscussions | 5 |
     When I press "Save and display"
@@ -106,7 +106,7 @@ Scenario: When number of discussions is decreased fewer discussions appear
     And I should not see "This is forum post six"
 
 Scenario: When number of discussions is decreased to less than 1 only 1 discussion should appear
-    Given I click on "Edit settings" "link" in the "Administration" "block"
+    Given I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
     | numdiscussions | -1 |
     When I press "Save and display"
@@ -115,7 +115,7 @@ Scenario: When number of discussions is decreased to less than 1 only 1 discussi
     And I should not see "This is forum post ten"
 
 Scenario: When number of discussions is increased more discussions appear
-    Given I click on "Edit settings" "link" in the "Administration" "block"
+    Given I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
     | numdiscussions | 9 |
     When I press "Save and display"
index ce327ae..f961ee2 100644 (file)
@@ -37,9 +37,18 @@ if ($categoryid) {
     // And the object has been loaded for us no need for another DB call
     $category = $PAGE->category;
 } else {
-    $categoryid = 0;
+    // Check if there is only one category, if so use that.
+    if (coursecat::count_all() == 1) {
+        $category = coursecat::get_default();
+
+        $categoryid = $category->id;
+        $PAGE->set_category_by_id($categoryid);
+        $PAGE->set_pagetype('course-index-category');
+    } else {
+        $PAGE->set_context(context_system::instance());
+    }
+
     $PAGE->set_url('/course/index.php');
-    $PAGE->set_context(context_system::instance());
 }
 
 $PAGE->set_pagelayout('coursecategory');
index 699ec42..2262711 100644 (file)
@@ -3791,7 +3791,7 @@ function course_get_user_administration_options($course, $context) {
     $options->reports = has_capability('moodle/site:viewreports', $context);
     $options->backup = has_capability('moodle/backup:backupcourse', $context);
     $options->restore = has_capability('moodle/restore:restorecourse', $context);
-    $options->files = $course->legacyfiles == 2 and has_capability('moodle/course:managefiles', $context);
+    $options->files = ($course->legacyfiles == 2 && has_capability('moodle/course:managefiles', $context));
 
     if (!$isfrontpage) {
         $options->tags = has_capability('moodle/course:tag', $context);
index 1eaa8f9..d45966d 100644 (file)
@@ -125,12 +125,11 @@ function add_moduleinfo($moduleinfo, $course, $mform = null) {
     if (!$returnfromfunc or !is_number($returnfromfunc)) {
         // Undo everything we can. This is not necessary for databases which
         // support transactions, but improves consistency for other databases.
-        $modcontext = context_module::instance($moduleinfo->coursemodule);
         context_helper::delete_instance(CONTEXT_MODULE, $moduleinfo->coursemodule);
         $DB->delete_records('course_modules', array('id'=>$moduleinfo->coursemodule));
 
-        if ($e instanceof moodle_exception) {
-            throw $e;
+        if ($returnfromfunc instanceof moodle_exception) {
+            throw $returnfromfunc;
         } else if (!is_number($returnfromfunc)) {
             print_error('invalidfunction', '', course_get_url($course, $moduleinfo->section));
         } else {
@@ -145,6 +144,9 @@ function add_moduleinfo($moduleinfo, $course, $mform = null) {
     // Update embedded links and save files.
     $modcontext = context_module::instance($moduleinfo->coursemodule);
     if (!empty($introeditor)) {
+        // This will respect a module that has set a value for intro in it's modname_add_instance() function.
+        $introeditor['text'] = $moduleinfo->intro;
+
         $moduleinfo->intro = file_save_draft_area_files($introeditor['itemid'], $modcontext->id,
                                                       'mod_'.$moduleinfo->modulename, 'intro', 0,
                                                       array('subdirs'=>true), $introeditor['text']);
index e467a9e..f5c76e0 100644 (file)
@@ -597,7 +597,7 @@ abstract class moodleform_mod extends moodleform {
             if ($this->_features->groups || $this->_features->groupings) {
                 $mform->addElement('static', 'restrictgroupbutton', '',
                         html_writer::tag('button', get_string('restrictbygroup', 'availability'),
-                        array('id' => 'restrictbygroup', 'disabled' => 'disabled')));
+                        array('id' => 'restrictbygroup', 'disabled' => 'disabled', 'class' => 'btn btn-secondary')));
             }
 
             // Availability field. This is just a textarea; the user interface
index ff60653..90ad00f 100644 (file)
@@ -1554,15 +1554,21 @@ class core_course_renderer extends plugin_renderer_base {
                 $this->page->set_title("$site->shortname: $strcategories");
             }
         } else {
-            $this->page->set_title("$site->shortname: ". $coursecat->get_formatted_name());
+            $title = $site->shortname;
+            if (coursecat::count_all() > 1) {
+                $title .= ": ". $coursecat->get_formatted_name();
+            }
+            $this->page->set_title($title);
 
             // Print the category selector
-            $output .= html_writer::start_tag('div', array('class' => 'categorypicker'));
-            $select = new single_select(new moodle_url('/course/index.php'), 'categoryid',
-                    coursecat::make_categories_list(), $coursecat->id, null, 'switchcategory');
-            $select->set_label(get_string('categories').':');
-            $output .= $this->render($select);
-            $output .= html_writer::end_tag('div'); // .categorypicker
+            if (coursecat::count_all() > 1) {
+                $output .= html_writer::start_tag('div', array('class' => 'categorypicker'));
+                $select = new single_select(new moodle_url('/course/index.php'), 'categoryid',
+                        coursecat::make_categories_list(), $coursecat->id, null, 'switchcategory');
+                $select->set_label(get_string('categories').':');
+                $output .= $this->render($select);
+                $output .= html_writer::end_tag('div'); // .categorypicker
+            }
         }
 
         // Print current category description
index 1eb0f5f..c4f44b7 100644 (file)
@@ -35,24 +35,24 @@ Feature: Edit completion settings of an activity
   @javascript
   Scenario: Pressing the unlock button allows the user to edit completion settings
     Given I follow "TestPage"
-    When I click on "Edit settings" "link" in the "Administration" "block"
+    When I navigate to "Edit settings" in current page administration
     And I expand all fieldsets
     And I press "Unlock completion options"
     Then I should see "Completion options unlocked"
     And I set the field "Completion tracking" to "Students can manually mark the activity as completed"
     And I press "Save and display"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" in current page administration
     And I expand all fieldsets
     Then the field "Completion tracking" matches value "Students can manually mark the activity as completed"
 
   @javascript
   Scenario: Even when completion is locked, the user can still set the date
     Given I follow "TestPage"
-    When I click on "Edit settings" "link" in the "Administration" "block"
+    When I navigate to "Edit settings" in current page administration
     And I expand all fieldsets
     When I click on "id_completionexpected_enabled" "checkbox"
     And I set the field "id_completionexpected_year" to "2013"
     And I press "Save and display"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" in current page administration
     And I expand all fieldsets
     Then the field "id_completionexpected_year" matches value "2013"
index f651162..dbb26da 100644 (file)
@@ -21,7 +21,7 @@ Feature: Toggle activities groups mode from the course page
     And I add a "Forum" to section "1" and I fill the form with:
       | Forum name | Test forum name |
       | Description | Test forum description |
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
       | Group mode | No groups |
       | Force group mode | No |
index 662a3c5..b318d80 100644 (file)
@@ -30,8 +30,9 @@ Feature: Add activities to courses
       | Allow comments on entries | Yes |
     And I turn editing mode off
     Then I should not see "Adding a new"
-    And I follow "Test name"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I turn editing mode on
+    And I open "Test name" actions menu
+    And I click on "Edit settings" "link" in the "Test name" activity
     And I expand all fieldsets
     And the field "Name" matches value "Test name"
     And the field "Entries required for completion" matches value "9"
index 759b342..df95cce 100644 (file)
@@ -51,7 +51,7 @@ class behat_course extends behat_base {
         try {
             $this->execute("behat_forms::press_button", get_string('turneditingon'));
         } catch (Exception $e) {
-            $this->execute("behat_general::i_click_on_in_the", [get_string('turneditingon'), 'link', 'Administration', 'block']);
+            $this->execute("behat_navigation::i_navigate_to_in_current_page_administration", [get_string('turneditingon')]);
         }
     }
 
@@ -64,7 +64,7 @@ class behat_course extends behat_base {
         try {
             $this->execute("behat_forms::press_button", get_string('turneditingoff'));
         } catch (Exception $e) {
-            $this->execute("behat_general::i_click_on_in_the", [get_string('turneditingoff'), 'link', 'Administration', 'block']);
+            $this->execute("behat_navigation::i_navigate_to_in_current_page_administration", [get_string('turneditingoff')]);
         }
     }
 
@@ -1728,4 +1728,16 @@ class behat_course extends behat_base {
         $node = $this->get_management_category_listing_node_by_name($name);
         $node->find('css', 'a.categoryname')->click();
     }
+
+    /**
+     * Go to the course participants
+     *
+     * @Given /^I navigate to course participants$/
+     */
+    public function i_navigate_to_course_participants() {
+        $coursestr = behat_context_helper::escape(get_string('courses'));
+        $mycoursestr = behat_context_helper::escape(get_string('mycourses'));
+        $xpath = "//div[contains(@class,'block')]//li[p/*[string(.)=$coursestr or string(.)=$mycoursestr]]";
+        $this->execute('behat_general::i_click_on_in_the', [get_string('participants'), 'link', $xpath, 'xpath_element']);
+    }
 }
index f08fb22..5a68d13 100644 (file)
@@ -340,9 +340,7 @@ Feature: Test category management actions
       | name | category | idnumber |
       | Cat 1 | 0 | CAT1 |
     And I log in as "admin"
-    And I expand "Site administration" node
-    And I expand "Courses" node
-    And I follow "Add a category"
+    And I navigate to "Courses > Add a category" in site administration
     And I set the following fields to these values:
       | Category name | Test duplicate |
       | Category ID number | CAT1 |
index 9d9dc77..3dfe02c 100644 (file)
@@ -16,16 +16,15 @@ Feature: Role assignments can be made at the category level
       | manager | manager       | Category     | CAT1      |
     And I log in as "admin"
 
-
   @javascript
   Scenario: A user with a category role can assign roles
     Given I define the allowed role assignments for the "Manager" role as:
       | Teacher | Assignable |
     And I log out
     And I log in as "manager"
-    And I follow "Courses"
+    And I am on course index
     When I follow "Cat 1"
-    Then I should see "Assign roles"
+    Then "Assign roles" "link" should exist in current page administration
 
   @javascript
   Scenario: A user with a category role cannot assign roles if there are no roles to assign
@@ -37,6 +36,6 @@ Feature: Role assignments can be made at the category level
       | Student             | Not assignable |
     And I log out
     And I log in as "manager"
-    And I follow "Courses"
+    And I am on course index
     When I follow "Cat 1"
-    Then I should not see "Assign roles"
+    Then "Assign roles" "link" should not exist in current page administration
index f8c945c..8b6c46c 100644 (file)
@@ -5,7 +5,7 @@ Feature: Managers can create courses
   I need to create courses and set default values on them
 
   @javascript
-  Scenario: Courses are created with the default forum and blocks
+  Scenario: Courses are created with the default announcements forum
     Given the following "users" exist:
       | username | firstname | lastname | email |
       | teacher1 | Teacher | 1 | teacher1@example.com |
@@ -24,13 +24,14 @@ Feature: Managers can create courses
     Then "Latest announcements" "block" should exist
     And I follow "Announcements"
     And "Add a new topic" "button" should exist
-    And "Forced subscription" "link" should not exist
+    And "Subscription mode > Forced subscription" "link" should not exist in current page administration
+    And "Subscription mode > Forced subscription" "text" should exist in current page administration
     And I log out
     And I log in as "student1"
     And I follow "Course 1"
     And I follow "Announcements"
     And "Add a new topic" "button" should not exist
-    And I should see "Forced subscription" in the "Administration" "block"
+    And "Forced subscription" "text" should exist in current page administration
 
   Scenario: Create a course from the management interface and return to it
     Given the following "courses" exist:
index b330e80..fe1d331 100644 (file)
@@ -25,7 +25,7 @@ Feature: Tagging courses
       | teacher2 | c2     | teacher        |
     And I log in as "teacher1"
     And I follow "Course 1"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
       | Tags | Mathematics |
     And I press "Save and display"
@@ -34,21 +34,23 @@ Feature: Tagging courses
   Scenario: Set course tags using the course edit form
     When I log in as "teacher1"
     And I follow "Course 1"
-    And "Course tags" "link" should not exist in the "Administration" "block"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" node in "Course administration"
     And I expand all fieldsets
     Then I should see "Mathematics" in the ".form-autocomplete-selection" "css_element"
     And I set the following fields to these values:
       | Tags | Algebra |
     And I press "Save and display"
-    And I click on "Dashboard" "link" in the "Navigation" "block"
+    And I am on homepage
     And I follow "Course 2"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" node in "Course administration"
     And I set the following fields to these values:
       | Tags | Mathematics, Geometry |
     And I press "Save and display"
     And I log out
     And I log in as "user1"
+    And I press "Customise this page"
+    # TODO MDL-57120 "Tags" link not accessible without navigation block.
+    And I add the "Navigation" block if not present
     And I navigate to "Tags" node in "Site pages"
     And I follow "Mathematics"
     Then I should see "Course 1"
@@ -70,20 +72,22 @@ Feature: Tagging courses
     And I log out
     When I log in as "teacher2"
     And I follow "Course 1"
-    And "Edit settings" "link" should not exist in the "Administration" "block"
-    And I click on "Course tags" "link" in the "Administration" "block"
+    And I navigate to "Course tags" in current page administration
     Then I should see "Mathematics" in the ".form-autocomplete-selection" "css_element"
     And I set the following fields to these values:
       | Tags | Algebra |
     And I press "Save changes"
-    And I click on "Dashboard" "link" in the "Navigation" "block"
+    And I am on homepage
     And I follow "Course 2"
-    And I click on "Course tags" "link" in the "Administration" "block"
+    And I navigate to "Course tags" in current page administration
     And I set the following fields to these values:
       | Tags | Mathematics, Geometry |
     And I press "Save changes"
     And I log out
     And I log in as "user1"
+    And I press "Customise this page"
+    # TODO MDL-57120 "Tags" link not accessible without navigation block.
+    And I add the "Navigation" block if not present
     And I navigate to "Tags" node in "Site pages"
     And I follow "Mathematics"
     Then I should see "Course 1"
index 572d1a9..1ef2c67 100644 (file)
@@ -17,7 +17,7 @@ Feature: Edit course settings
       | teacher1 | C1 | editingteacher |
     And I log in as "teacher1"
     And I follow "Course 1"
-    When I click on "Edit settings" "link" in the "Administration" "block"
+    When I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
       | Course full name | Edited course fullname |
       | Course short name | Edited course shortname |
@@ -28,7 +28,7 @@ Feature: Edit course settings
     And I should not see "C1"
     And I should see "Edited course fullname"
     And I should see "Edited course shortname"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" in current page administration
     And the field "Course full name" matches value "Edited course fullname"
     And the field "Course short name" matches value "Edited course shortname"
     And the field "Course summary" matches value "Edited course summary"
index 185d69e..07333d1 100644 (file)
@@ -20,7 +20,7 @@ Feature: Force group mode in a course
     And I add a "Chat" to section "1" and I fill the form with:
       | Name of this chat room | Chat room |
       | Description | Chat description |
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" in current page administration
 
   @javascript
   Scenario: Forced group mode using separate groups
index 1c81efd..ba900d4 100644 (file)
@@ -20,10 +20,6 @@ Feature: Activities can be moved between sections
     And I add the "Recent activity" block
     And I follow "Delete Recent activity block"
     And I press "Yes"
-    And I follow "Configure Navigation block"
-    And I set the following fields to these values:
-      | Visible | Yes |
-    And I press "Save changes"
     And I add a "Forum" to section "1" and I fill the form with:
       | Forum name | Test forum name |
       | Description | Test forum description |
@@ -34,7 +30,7 @@ Feature: Activities can be moved between sections
     And I should not see "Test forum name" in the "Topic 1" "section"
 
   Scenario: Move activities in the course home with Javascript disabled using paged mode
-    Given I click on "Edit settings" "link" in the "Administration" "block"
+    Given I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
       | Course layout | Show one section per page |
     And I press "Save and display"
@@ -43,7 +39,7 @@ Feature: Activities can be moved between sections
     And I should not see "Test forum name" in the "Topic 1" "section"
 
   Scenario: Move activities in a course section with Javascript disabled using paged mode
-    Given I click on "Edit settings" "link" in the "Administration" "block"
+    Given I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
       | Course layout | Show one section per page |
     And I press "Save and display"
index c3bd269..d1efdde 100644 (file)
@@ -28,7 +28,7 @@ Feature: Sections can be moved
     And I should see "Test forum name" in the "Topic 1" "section"
 
   Scenario: Move up and down a section with Javascript disabled in the course home of a course using paged mode
-    Given I click on "Edit settings" "link" in the "Administration" "block"
+    Given I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
       | Course layout | Show one section per page |
     And I press "Save and display"
@@ -41,7 +41,7 @@ Feature: Sections can be moved
     And I should see "Test forum name" in the "Topic 1" "section"
 
   Scenario: Sections can not be moved with Javascript disabled in a section page of a course using paged mode
-    Given I click on "Edit settings" "link" in the "Administration" "block"
+    Given I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
       | Course layout | Show one section per page |
     And I press "Save and display"
index d2bb130..41dc9b1 100644 (file)
@@ -19,7 +19,7 @@ Feature: Browse course list and return back from enrolment page
 
   Scenario: A user can return to the category page from enrolment page
     When I log in as "user2"
-    And I click on "Courses" "link" in the "Navigation" "block"
+    And I am on course index
     And I follow "Miscellaneous"
     And I follow "Sample course"
     And I press "Continue"
@@ -32,6 +32,15 @@ Feature: Browse course list and return back from enrolment page
 
   @javascript
   Scenario: A user can return to the previous page from enrolment page by clicking navigation links
+    Given I log in as "admin"
+    And I am on site homepage
+    And I turn editing mode on
+    And I add the "Navigation" block if not present
+    And I configure the "Navigation" block
+    And I set the following fields to these values:
+      | Page contexts | Display throughout the entire site |
+    And I press "Save changes"
+    And I log out
     When I log in as "user2"
     And I follow "Preferences" in the user menu
     And I click on "Edit profile" "link" in the "region-main" "region"
@@ -57,7 +66,7 @@ Feature: Browse course list and return back from enrolment page
       | moodle/course:view | Allow |
     And I log out
     When I log in as "user1"
-    And I click on "Courses" "link" in the "Navigation" "block"
+    And I am on course index
     And I follow "Miscellaneous"
     And I follow "Sample course"
     And I follow "Test choice"
index e5dce42..253aebd 100644 (file)
@@ -21,7 +21,7 @@ Feature: Rename roles within a course
       | student1 | C1 | student |
     And I log in as "teacher1"
     And I follow "Course 1"
-    When I click on "Edit settings" "link" in the "Administration" "block"
+    When I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
       | Your word for 'Non-editing teacher' | Tutor |
       | Your word for 'Student' | Learner |
@@ -29,11 +29,12 @@ Feature: Rename roles within a course
     And I follow "Switch role to..." in the user menu
     Then "Tutor" "button" should exist
     And "Learner" "button" should exist
-    And I follow "Participants"
+    And I navigate to course participants
     And the "roleid" select box should contain "Tutor"
     And the "roleid" select box should contain "Learner"
     And the "roleid" select box should not contain "Student"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I follow "Course 1"
+    And I navigate to "Edit settings" in current page administration
     And I set the following fields to these values:
       | Your word for 'Non-editing teacher' | |
       | Your word for 'Student' | |
@@ -42,6 +43,6 @@ Feature: Rename roles within a course
     And I should see "Teacher"
     And "Student" "button" should exist
     And "Learner" "button" should not exist
-    And I follow "Participants"
+    And I navigate to course participants
     And the "roleid" select box should contain "Non-editing teacher"
     And the "roleid" select box should contain "Student"
index 6d8485d..dc240de 100644 (file)
@@ -35,8 +35,7 @@ Feature: Restrict activities availability
       | mod/chat:addinstance | Prohibit |
     And I am on site homepage
     And I follow "Course 1"
-    And I expand "Users" node
-    And I follow "Permissions"
+    And I navigate to "Users > Permissions" in current page administration
     And I override the system permissions of "Teacher" role with:
       | mod/glossary:addinstance | Prohibit |
     And I log out
index 7384c4c..3101265 100644 (file)
@@ -20,7 +20,7 @@ Feature: Rename roles in a course
   Scenario: Teacher can rename roles
     Given I log in as "teacher1"
     And I follow "Course 1"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" in current page administration
     And I should see "Role renaming"
     When I set the following fields to these values:
       | Your word for 'Teacher' | Lecturer |
@@ -38,6 +38,6 @@ Feature: Rename roles in a course
     And I follow "Log out"
     When I log in as "teacher1"
     And I follow "Course 1"
-    And I click on "Edit settings" "link" in the "Administration" "block"
+    And I navigate to "Edit settings" in current page administration
     Then I should not see "Role renaming"
     And I should not see "Your word for 'Teacher'"
index 0840475..9730e53 100644 (file)
@@ -53,7 +53,7 @@ Feature: View subfolders in a course in-line
       And I click on "button.fp-dlg-butcreate" "css_element" in the "div.fp-mkdir-dlg" "css_element"
       And I press "Save changes"
       And I should see "Test sub subfolder"
-      And I navigate to "Edit settings" node in "Folder administration"
+      And I navigate to "Edit settings" in current page administration
       And I set the field "Display folder contents" to "Inline on a course page"
       And I set the field "Show subfolders expanded" to ""
       And I press "Save and return to course"
index 5a44fd7..05180a6 100644 (file)
@@ -39,5 +39,8 @@ function xmldb_enrol_database_upgrade($oldversion) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 8660e33..c2abcd9 100644 (file)
@@ -39,5 +39,8 @@ function xmldb_enrol_flatfile_upgrade($oldversion) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 4f44dbe..414d60e 100644 (file)
@@ -39,5 +39,8 @@ function xmldb_enrol_guest_upgrade($oldversion) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 1a7a9ad..ab0a72d 100644 (file)
@@ -45,5 +45,8 @@ function xmldb_enrol_imsenterprise_upgrade($oldversion) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 4f4ba4c..94a90cc 100644 (file)
@@ -242,5 +242,8 @@ function xmldb_enrol_lti_upgrade($oldversion) {
         upgrade_plugin_savepoint(true, 2016052304, 'enrol', 'lti');
     }
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 8207e81..b414037 100644 (file)
@@ -45,5 +45,8 @@ function xmldb_enrol_manual_upgrade($oldversion) {
     // Moodle v3.1.0 release upgrade line.
     // Put any upgrade step following this.
 
+    // Automatically generated Moodle v3.2.0 release upgrade line.
+    // Put any upgrade step following this.
+
     return true;
 }
index 8cfa708..53cb56c 100644 (file)
@@ -74,13 +74,19 @@ Structure of the user enroller panel
     float: left;
     margin: 3px;
 }
-
+/* Note this file isn't auto flipped, so we need dir-rtl rules*/
+.dir-rtl .user-enroller-panel .uep-search-results .user .picture {
+    float: right;
+}
 .user-enroller-panel .uep-search-results .user .details {
     width: 180px;
     float: left;
     margin: 3px;
 }
-
+/* Note this file isn't auto flipped, so we need dir-rtl rules*/
+.dir-rtl .user-enroller-panel .uep-search-results .user .details {
+    float: right;
+}
 .user-enroller-panel .uep-search-results .user .options {
     padding-right: 7px;
     margin: 3px;
@@ -91,6 +97,10 @@ Structure of the user enroller panel
     float: right;
     cursor: pointer;
 }
+/* Note this file isn't auto flipped, so we need dir-rtl rules*/
+.dir-rtl .user-enroller-panel .uep-search-results .user .options .enrol {
+    float: left;
+}
 
 .user-enroller-panel .uep-search-results .cohort {
     width: 100%;
index c5df107..e28b005 100644 (file)
@@ -31,8 +31,7 @@ Feature: Enrolments are synchronised with meta courses
     And I log in as "admin"
     And I navigate to "Manage enrol plugins" node in "Site administration > Plugins > Enrolments"
     And I click on "Enable&q