See Release Notes
Long Term Support Release
1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 namespace enrol_lti\local\ltiadvantage\lib; 18 19 /** 20 * Tests for the launch_cache_session class. 21 * 22 * @package enrol_lti 23 * @copyright 2021 Jake Dallimore <jrhdallimore@gmail.com> 24 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 25 * @coversDefaultClass \enrol_lti\local\ltiadvantage\lib\launch_cache_session 26 */ 27 class launch_cache_session_test extends \advanced_testcase { 28 29 /** 30 * Test that the session cache, and in particular distinct object instances, can cache and retrieve launch data. 31 * 32 * Using different objects simulates the kind of usage we expect: uses across different requests. 33 * 34 * @covers ::cacheLaunchData 35 */ 36 public function test_cache_launch_data() { 37 $lcs = new launch_cache_session(); 38 $lcs->cacheLaunchData('TestKey', ['JWT body' => 'xxx']); 39 40 $lcs2 = new launch_cache_session(); 41 $this->assertEquals(['JWT body' => 'xxx'], $lcs2->getLaunchData('TestKey')); 42 $this->assertNull($lcs2->getLaunchData('TestKey123')); 43 } 44 45 /** 46 * Test that the session cache, and in particular distinct object instances, can cache and check the nonce data. 47 * 48 * Using different objects simulates the kind of usage we expect: uses across different requests. 49 * 50 * @covers ::cacheNonce 51 */ 52 public function test_cache_and_check_nonce() { 53 $lcs = new launch_cache_session(); 54 $lcs->cacheNonce('my_nonce_123', 'my_state_234'); 55 56 $lcs2 = new launch_cache_session(); 57 $this->assertTrue($lcs2->checkNonceIsValid('my_nonce_123', 'my_state_234')); 58 $this->assertFalse($lcs2->checkNonceIsValid('different_nonce', 'my_state_234')); 59 $this->assertFalse($lcs2->checkNonceIsValid('my_nonce_123', 'different_state')); 60 } 61 62 /** 63 * Test that the session cache, and in particular distinct object instances, can purge cached launch data. 64 * 65 * Using different objects simulates the kind of usage we expect: uses across different requests. 66 * 67 * @covers ::purge 68 */ 69 public function test_purge() { 70 $lcs = new launch_cache_session(); 71 $lcs->cacheLaunchData('TestKey', ['JWT body' => 'xxx']); 72 73 $lcs2 = new launch_cache_session(); 74 $this->assertEquals(['JWT body' => 'xxx'], $lcs2->getLaunchData('TestKey')); 75 $lcs2->purge(); 76 $this->assertNull($lcs2->getLaunchData('TestKey')); 77 } 78 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body