Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.

Differences Between: [Versions 310 and 401] [Versions 39 and 401]

   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 filter_mathjaxloader;
  18  
  19  use filter_mathjaxloader;
  20  
  21  defined('MOODLE_INTERNAL') || die();
  22  
  23  global $CFG;
  24  require_once($CFG->dirroot.'/filter/mathjaxloader/filter.php');
  25  
  26  /**
  27   * Unit tests for the MathJax loader filter.
  28   *
  29   * @package   filter_mathjaxloader
  30   * @category  test
  31   * @copyright 2017 David Mudrak <david@moodle.com>
  32   * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  33   */
  34  class filter_test extends \advanced_testcase {
  35  
  36      /**
  37       * Test the functionality of {@link filter_mathjaxloader::map_language_code()}.
  38       *
  39       * @param string $moodlelangcode the user's current language
  40       * @param string $mathjaxlangcode the mathjax language to be used for the moodle language
  41       *
  42       * @dataProvider map_language_code_expected_mappings
  43       */
  44      public function test_map_language_code($moodlelangcode, $mathjaxlangcode) {
  45  
  46          $filter = new filter_mathjaxloader(\context_system::instance(), []);
  47          $this->assertEquals($mathjaxlangcode, $filter->map_language_code($moodlelangcode));
  48      }
  49  
  50      /**
  51       * Data provider for {@link self::test_map_language_code}
  52       *
  53       * @return array of [moodlelangcode, mathjaxcode] tuples
  54       */
  55      public function map_language_code_expected_mappings() {
  56  
  57          return [
  58              ['cz', 'cs'], // Explicit mapping.
  59              ['cs', 'cs'], // Implicit mapping (exact match).
  60              ['ca_valencia', 'ca'], // Implicit mapping of a Moodle language variant.
  61              ['pt_br', 'pt-br'], // Explicit mapping.
  62              ['en_kids', 'en'], // Implicit mapping of English variant.
  63              ['de_kids', 'de'], // Implicit mapping of non-English variant.
  64              ['es_mx_kids', 'es'], // More than one underscore in the name.
  65              ['zh_tw', 'zh-hant'], // Explicit mapping of the Taiwain Chinese in the traditional script.
  66              ['zh_cn', 'zh-hans'], // Explicit mapping of the Simplified Chinese script.
  67          ];
  68      }
  69  }