/** * Tests lti_prepare_type_for_save's handling of the "Force SSL" configuration. */ public function test_lti_prepare_type_for_save_forcessl() { $type = new stdClass(); $config = new stdClass(); // Try when the forcessl config property is not set. lti_prepare_type_for_save($type, $config); $this->assertObjectHasAttribute('lti_forcessl', $config); $this->assertEquals(0, $config->lti_forcessl); $this->assertEquals(0, $type->forcessl); // Try when forcessl config property is set. $config->lti_forcessl = 1; lti_prepare_type_for_save($type, $config); $this->assertObjectHasAttribute('lti_forcessl', $config); $this->assertEquals(1, $config->lti_forcessl); $this->assertEquals(1, $type->forcessl); // Try when forcessl config property is set to 0. $config->lti_forcessl = 0; lti_prepare_type_for_save($type, $config); $this->assertObjectHasAttribute('lti_forcessl', $config); $this->assertEquals(0, $config->lti_forcessl); $this->assertEquals(0, $type->forcessl); }
function lti_add_type($type, $config) { global $USER, $SITE, $DB; lti_prepare_type_for_save($type, $config); if (!isset($type->state)) { $type->state = LTI_TOOL_STATE_PENDING; } if (!isset($type->timecreated)) { $type->timecreated = time(); } if (!isset($type->createdby)) { $type->createdby = $USER->id; } if (!isset($type->course)) { $type->course = $SITE->id; } //Create a salt value to be used for signing passed data to extension services //The outcome service uses the service salt on the instance. This can be used //for communication with services not related to a specific LTI instance. $config->lti_servicesalt = uniqid('', true); $id = $DB->insert_record('lti_types', $type); if ($id) { foreach ($config as $key => $value) { if (substr($key, 0, 4)=='lti_' && !is_null($value)) { $record = new StdClass(); $record->typeid = $id; $record->name = substr($key, 4); $record->value = $value; lti_add_config($record); } } } return $id; }