diff --git a/mod/lti/locallib.php b/mod/lti/locallib.php index 1477dff453a..e185508b106 100644 --- a/mod/lti/locallib.php +++ b/mod/lti/locallib.php @@ -1388,10 +1388,8 @@ function lti_prepare_type_for_save($type, $config) { $type->secureicon = $config->lti_secureicon; } - if (isset($config->lti_forcessl)) { - $type->forcessl = !empty($config->lti_forcessl) ? $config->lti_forcessl : 0; - $config->lti_forcessl = $type->forcessl; - } + $type->forcessl = !empty($config->lti_forcessl) ? $config->lti_forcessl : 0; + $config->lti_forcessl = $type->forcessl; $type->timemodified = time(); diff --git a/mod/lti/tests/locallib_test.php b/mod/lti/tests/locallib_test.php index 6b185aa1688..e5f2003092c 100644 --- a/mod/lti/tests/locallib_test.php +++ b/mod/lti/tests/locallib_test.php @@ -255,4 +255,32 @@ class mod_lti_locallib_testcase extends advanced_testcase { $this->assertEquals($ncount, $rncount, 'All newline characters should be a combination of \r\n'); } + + /** + * 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); + } }