Merge branch 'MDL-61621_34' of git://github.com/dmonllao/moodle into MOODLE_34_STABLE

This commit is contained in:
Eloy Lafuente (stronk7)
2018-04-18 12:58:27 +02:00
2 changed files with 39 additions and 0 deletions
+14
View File
@@ -1960,6 +1960,20 @@ function block_method_result($blockname, $method, $param = NULL) {
return call_user_func(array('block_'.$blockname, $method), $param);
}
/**
* Returns a new instance of the specified block instance id.
*
* @param int $blockinstanceid
* @return block_base the requested block instance.
*/
function block_instance_by_id($blockinstanceid) {
global $DB;
$blockinstance = $DB->get_record('block_instances', ['id' => $blockinstanceid]);
$instance = block_instance($blockinstance->blockname, $blockinstance);
return $instance;
}
/**
* Creates a new instance of the specified block class.
*
+25
View File
@@ -324,6 +324,31 @@ class core_blocklib_testcase extends advanced_testcase {
$this->assertEquals('4', $blocks[1]->instance->weight);
}
/**
* Test block instances.
*
* @return null
*/
public function test_block_instances() {
$this->purge_blocks();
// Set up fixture.
$regionname = 'a-region';
$blockname = $this->get_a_known_block_type();
$context = context_system::instance();
list($page, $blockmanager) = $this->get_a_page_and_block_manager(array($regionname),
$context, 'page-type');
$blockmanager->add_blocks(array($regionname => array($blockname, $blockname)), null, null, false, 3);
$blockmanager->load_blocks();
$blocks = $blockmanager->get_blocks_for_region($regionname);
$this->assertInstanceOf('\block_base', block_instance($blockname, $blocks[0]->instance));
$this->assertInstanceOf('\block_base', block_instance_by_id($blocks[0]->instance->id));
}
public function test_block_not_included_in_different_context() {
$this->purge_blocks();