Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.11.x will end 14 Nov 2022 (12 months plus 6 months extension).
  • Bug fixes for security issues in 3.11.x will end 13 Nov 2023 (18 months plus 12 months extension).
  • PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is supported too.
   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  /**
  18   * tool_brickfield check test.
  19   *
  20   * @package    tool_brickfield
  21   * @copyright  2020 onward: Brickfield Education Labs, https://www.brickfield.ie
  22   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  23   */
  24  
  25  namespace tool_brickfield\local\htmlchecker\common\checks;
  26  
  27  defined('MOODLE_INTERNAL') || die();
  28  
  29  require_once ('all_checks.php');
  30  
  31  /**
  32   * Class img_alt_is_too_long_testcase
  33   */
  34  class img_alt_is_too_long_test extends all_checks {
  35      /** @var string Check type */
  36      protected $checktype = 'img_alt_is_too_long';
  37  
  38      /** @var string Html fail */
  39      private $htmlfail = <<<EOD
  40  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  41  <html>
  42      <head>
  43          <title>Image alt attributes must not be too long</title>
  44      </head>
  45      <body>
  46      <img src="rex.jpg" alt="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent accumsan, ante varius viverra aliquam,
  47       dolor risus scelerisque massa, ut lacinia ipsum felis id est. Nullam convallis odio ante, in commodo elit fermentum sed.
  48       Vivamus ullamcorper tincidunt sagittis. Sed et semper sapien. Quisque malesuada lacus nec libero cursus, aliquam malesuada
  49       neque ultricies. Cras sit amet enim vel orci tristique porttitor a vitae urna. Suspendisse mi leo, hendrerit et eleifend a,
  50       mollis at ex. Maecenas eget magna nec sem dignissim pharetra vel nec ex. Donec in porta lectus. Aenean porttitor euismod
  51       lectus, sodales eleifend ex egestas in. Donec sed metus sodales, lobortis velit quis, dictum arcu.">
  52      </body>
  53  </html>
  54  EOD;
  55  
  56      /** @var string Html pass */
  57      private $htmlpass = <<<EOD
  58  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  59  <html>
  60      <head>
  61          <title>Image alt attributes must not be too long</title>
  62      </head>
  63      <body>
  64      <img src="rex.jpg" alt="this is an image of rex">
  65      </body>
  66  </html>
  67  EOD;
  68      /**
  69       * Test for image alt attributes being too long
  70       */
  71      public function test_check() {
  72          $results = $this->get_checker_results($this->htmlfail);
  73          $this->assertTrue($results[0]->element->tagName == 'img');
  74  
  75          $results = $this->get_checker_results($this->htmlpass);
  76          $this->assertEmpty($results);
  77      }
  78  }