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 core;
  18  
  19  /**
  20   * Tests editors subsystem.
  21   *
  22   * @package    core
  23   * @copyright  2013 onwards Martin Dougiamas (http://dougiamas.com)
  24   * @author     Damyon Wiese
  25   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  26   */
  27  class editorlib_test extends \advanced_testcase {
  28  
  29      /**
  30       * Tests the installation of event handlers from file
  31       */
  32      public function test_get_preferred_editor() {
  33  
  34          // Fake a user agent.
  35          $_SERVER['HTTP_USER_AGENT'] = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.21     5 Safari/534.10';
  36  
  37          $enabled = editors_get_enabled();
  38          // Array assignment is always a clone.
  39          $editors = $enabled;
  40  
  41          $first = array_shift($enabled);
  42  
  43          // Get the default editor which should be the first in the list.
  44          set_user_preference('htmleditor', '');
  45          $preferred = editors_get_preferred_editor();
  46          $this->assertEquals($first, $preferred);
  47  
  48          foreach ($editors as $key => $editor) {
  49              // User has set a preference for a specific editor.
  50              set_user_preference('htmleditor', $key);
  51              $preferred = editors_get_preferred_editor();
  52              $this->assertEquals($editor, $preferred);
  53          }
  54      }
  55  
  56  }
  57