From 0c9c466964c4248c5c58f7173b35055d1e5e9449 Mon Sep 17 00:00:00 2001 From: Sam Chaffee Date: Wed, 30 Mar 2016 17:24:49 -0600 Subject: [PATCH] MDL-53661 mod_lti: Fix lti_prepare_type_for_save forcessl config --- mod/lti/locallib.php | 6 ++---- mod/lti/tests/locallib_test.php | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/mod/lti/locallib.php b/mod/lti/locallib.php index 52a04f72647..19578c90095 100644 --- a/mod/lti/locallib.php +++ b/mod/lti/locallib.php @@ -1404,10 +1404,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 350e5aa43bb..50c785ba557 100644 --- a/mod/lti/tests/locallib_test.php +++ b/mod/lti/tests/locallib_test.php @@ -264,4 +264,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); + } }