*/
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']);
$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));