Skip to content

Commit

Permalink
Merge branch 'MDL-46588-27' of git://github.com/jleyva/moodle into MO…
Browse files Browse the repository at this point in the history
…ODLE_27_STABLE
  • Loading branch information
stronk7 committed Sep 15, 2014
2 parents b5ecf0d + b189a26 commit a0f9423
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 2 deletions.
4 changes: 2 additions & 2 deletions lib/externallib.php
Expand Up @@ -377,9 +377,9 @@ protected static function validate_context($context) {
*/
protected static function get_context_from_params($param) {
$levels = context_helper::get_all_levels();
if (isset($param['contextid'])) {
if (!empty($param['contextid'])) {
return context::instance_by_id($param['contextid'], IGNORE_MISSING);
} else if (isset($param['contextlevel']) && isset($param['instanceid'])) {
} else if (!empty($param['contextlevel']) && isset($param['instanceid'])) {
$contextlevel = "context_".$param['contextlevel'];
if (!array_search($contextlevel, $levels)) {
throw new invalid_parameter_exception('Invalid context level = '.$param['contextlevel']);
Expand Down
27 changes: 27 additions & 0 deletions lib/tests/externallib_test.php
Expand Up @@ -147,6 +147,33 @@ public function test_get_context_from_params() {
$fetchedcontext = test_exernal_api::get_context_wrapper(array("contextlevel" => "course", "instanceid" => $course->id));
$this->assertEquals($realcontext, $fetchedcontext);

// Passing empty values.
try {
$fetchedcontext = test_exernal_api::get_context_wrapper(array("contextid" => 0));
$this->fail('Exception expected from get_context_wrapper()');
} catch (moodle_exception $e) {
$this->assertInstanceOf('invalid_parameter_exception', $e);
}

try {
$fetchedcontext = test_exernal_api::get_context_wrapper(array("instanceid" => 0));
$this->fail('Exception expected from get_context_wrapper()');
} catch (moodle_exception $e) {
$this->assertInstanceOf('invalid_parameter_exception', $e);
}

try {
$fetchedcontext = test_exernal_api::get_context_wrapper(array("contextid" => null));
$this->fail('Exception expected from get_context_wrapper()');
} catch (moodle_exception $e) {
$this->assertInstanceOf('invalid_parameter_exception', $e);
}

// Tests for context with instanceid equal to 0 (System context).
$realcontext = context_system::instance();
$fetchedcontext = test_exernal_api::get_context_wrapper(array("contextlevel" => "system", "instanceid" => 0));
$this->assertEquals($realcontext, $fetchedcontext);

// Passing wrong level.
$this->setExpectedException('invalid_parameter_exception');
$fetchedcontext = test_exernal_api::get_context_wrapper(array("contextlevel" => "random", "instanceid" => $course->id));
Expand Down

0 comments on commit a0f9423

Please sign in to comment.