MDL-33887 delay string fetching in PAGE->requires->string_for_js() till page footer
[moodle.git] / lib / tests / outputrequirementslib_test.php
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/>.
17 /**
18  * Unit tests for lib/outputrequirementslibphp.
19  *
20  * @package   core
21  * @category  phpunit
22  * @copyright 2012 Petr ┼ákoda
23  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24  */
26 defined('MOODLE_INTERNAL') || die();
28 global $CFG;
29 require_once($CFG->libdir . '/outputrequirementslib.php');
32 class outputrequirements_test extends advanced_testcase {
33     public function test_string_for_js() {
34         $this->resetAfterTest();
36         $page = new moodle_page();
37         $page->requires->string_for_js('course', 'moodle', 1);
38         $page->requires->string_for_js('course', 'moodle', 1);
39         try {
40             $page->requires->string_for_js('course', 'moodle', 2);
41             $this->fail('Exception expected when the same string with different $a requested');
42         } catch (Exception $e) {
43             $this->assertInstanceOf('coding_exception', $e);
44         }
46         // Note: we can not switch languages in phpunit yet,
47         //       it would be nice to test that the strings are actually fetched in the footer.
48     }
49 }