Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / vendor / lsolesen / pel / test / GH16Test.php
1 <?php
2 /**
3  * PEL: PHP Exif Library.
4  * A library with support for reading and
5  * writing all Exif headers in JPEG and TIFF images using PHP.
6  *
7  * Copyright (C) 2004, 2006, 2007 Martin Geisler.
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program in the file COPYING; if not, write to the
21  * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
22  * Boston, MA 02110-1301 USA
23  */
24
25 use lsolesen\pel\PelDataWindow;
26 use lsolesen\pel\PelJpeg;
27 use lsolesen\pel\PelEntryWindowsString;
28 use lsolesen\pel\PelTag;
29
30 class GH16Test extends \PHPUnit_Framework_TestCase
31 {
32     protected $file;
33
34     function setUp()
35     {
36         $this->file = dirname(__FILE__) . '/images/gh-16-tmp.jpg';
37         $file = dirname(__FILE__) . '/images/gh-16.jpg';
38         copy($file, $this->file);
39     }
40
41     function tearDown()
42     {
43         unlink($this->file);
44     }
45
46     function testThisDoesNotWorkAsExpected()
47     {
48         $subject = "Превед, медвед!";
49
50         $data = new PelDataWindow(file_get_contents($this->file));
51
52         if (PelJpeg::isValid($data)) {
53
54             $jpeg = new PelJpeg();
55             $jpeg->load($data);
56             $exif = $jpeg->getExif();
57
58             if (null === $exif) {
59                 $exif = new PelExif();
60                 $jpeg->setExif($exif);
61                 $tiff = new PelTiff();
62                 $exif->setTiff($tiff);
63             }
64
65             $tiff = $exif->getTiff();
66
67             $ifd0 = $tiff->getIfd();
68             if (null === $ifd0) {
69                 $ifd0 = new PelIfd(PelIfd::IFD0);
70                 $tiff->setIfd($ifd0);
71             }
72         }
73         $ifd0->addEntry(new PelEntryWindowsString(PelTag::XP_SUBJECT, $subject));
74
75         file_put_contents($this->file, $jpeg->getBytes());
76
77         $jpeg = new PelJpeg($this->file);
78         $exif = $jpeg->getExif();
79         $tiff = $exif->getTiff();
80         $ifd0 = $tiff->getIfd();
81         $written_subject = $ifd0->getEntry(PelTag::XP_SUBJECT);
82         $this->assertEquals($subject, $written_subject->getValue());
83     }
84 }