MDL-61913 restore: Protect against blocks that aren't being created

This commit is contained in:
Eric Merrill 2018-04-09 14:47:50 -04:00 committed by Eloy Lafuente (stronk7)
parent 66434106ed
commit 815c44ce07
2 changed files with 46 additions and 2 deletions

View File

@ -5662,8 +5662,12 @@ class restore_block_search_index extends restore_execution_step {
* When this step is executed, we add the block context to the queue for reindexing.
*/
protected function define_execution() {
$context = \context_block::instance($this->task->get_blockid());
\core_search\manager::request_index($context);
// A block in the restore list may be skipped because a duplicate is detected.
// In this case, there is no new blockid (or context) to get.
if (!empty($this->task->get_blockid())) {
$context = \context_block::instance($this->task->get_blockid());
\core_search\manager::request_index($context);
}
}
}

View File

@ -0,0 +1,40 @@
@core @core_backup
Feature: Import course's content's twice
In order to import content from a course more than one
As a teacher
I need to confirm that errors will not happen
Background:
Given the following config values are set as admin:
| enableglobalsearch | 1 |
And the following "courses" exist:
| fullname | shortname | category |
| Course 1 | C1 | 0 |
| Course 2 | C2 | 0 |
And the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@example.com |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
| teacher1 | C2 | editingteacher |
And the following "blocks" exist:
| blockname | contextlevel | reference | pagetypepattern | defaultregion |
| online_users | Course | C1 | course-view-* | site-post |
And the following "activities" exist:
| activity | name | course | idnumber |
| quiz | Test quiz | C1 | quiz1 |
And I log in as "teacher1"
Scenario: Import course's contents to another course
Given I am on "Course 2" course homepage with editing mode on
And I should not see "Online users"
And I should not see "Test quiz"
And I import "Course 1" course into "Course 2" course using this options:
And I am on "Course 2" course homepage
And I should see "Online users"
And I should see "Test quiz"
When I import "Course 1" course into "Course 2" course using this options:
And I am on "Course 2" course homepage
Then I should see "Online users"
And I should see "Test quiz"