2 // This file is part of Moodle - http://moodle.org/
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.
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.
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/>.
25 * @copyright 2021 Brendan Heywood (brendan@catalyst-au.net)
26 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
28 class pdflib_test
extends \advanced_testcase
{
30 public function test_gettcpdf_producer() {
32 require_once($CFG->libdir
.'/pdflib.php');
34 // This is to reduce the information disclosure in PDF metadata.
35 // If we upgrade TCPDF keep it just the major version.
36 $producer = TCPDF_STATIC
::getTCPDFProducer();
37 $this->assertEquals('TCPDF (http://www.tcpdf.org)', $producer);
40 public function test_qrcode() {
42 require_once($CFG->libdir
.'/pdflib.php');
44 $this->resetAfterTest();
47 $pdf->AddPage('P', [500, 500]);
48 $pdf->SetMargins(10, 0, 10);
54 'fgcolor' => [0, 0, 0],
55 'bgcolor' => [255, 255, 255],
60 $pdf->setCellPaddings(0, 0, 0, 0);
61 $pdf->write2DBarcode('https://www.example.com/moodle/admin/search.php',
62 'QRCODE,M', null, null, 35, 35, $style, 'N');
63 $pdf->SetFillColor(255, 255, 255);
64 $res = $pdf->Output('output', 'S');
66 $this->assertGreaterThan(100000, strlen($res));
67 $this->assertLessThan(120000, strlen($res));
71 * Test get_export_fontlist function.
73 * @covers ::get_export_fontlist
77 public function test_get_export_fontlist(): void
{
79 require_once($CFG->libdir
.'/pdflib.php');
81 $this->resetAfterTest();
84 $fontlist = $pdf->get_export_fontlist();
85 $this->assertCount(1, $fontlist);
86 $this->assertArrayHasKey('freesans', $fontlist);
88 $CFG->pdfexportfont
= [
89 'kozminproregular' => 'Kozmin Pro Regular',
90 'stsongstdlight' => 'STSong stdlight',
91 'invalidfont' => 'Invalid'
93 $fontlist = $pdf->get_export_fontlist();
94 $this->assertCount(2, $fontlist);
95 $this->assertArrayNotHasKey('freesans', $fontlist);
96 $this->assertArrayHasKey('kozminproregular', $fontlist);
97 $this->assertArrayHasKey('stsongstdlight', $fontlist);
98 $this->assertArrayNotHasKey('invalidfont', $fontlist);