MediaWiki REL1_33
IPTCTest.php
Go to the documentation of this file.
1<?php
2
7
11 public function testRecognizeUtf8() {
12 // utf-8 is the only one used in practise.
13 $res = IPTC::getCharset( "\x1b%G" );
14 $this->assertEquals( 'UTF-8', $res );
15 }
16
20 public function testIPTCParseNoCharset88591() {
21 // basically IPTC for keyword with value of 0xBC which is 1/4 in iso-8859-1
22 // This data doesn't specify a charset. We're supposed to guess
23 // (which basically means utf-8 if valid, windows 1252 (iso 8859-1) if not)
24 $iptcData = "Photoshop 3.0\08BIM\4\4\0\0\0\0\0\x06\x1c\x02\x19\x00\x01\xBC";
25 $res = IPTC::parse( $iptcData );
26 $this->assertEquals( [ '¼' ], $res['Keywords'] );
27 }
28
32 public function testIPTCParseNoCharset88591b() {
33 /* This one contains a sequence that's valid iso 8859-1 but not valid utf8 */
34 /* \xC3 = Ã, \xB8 = ¸ */
35 $iptcData = "Photoshop 3.0\08BIM\4\4\0\0\0\0\0\x09\x1c\x02\x19\x00\x04\xC3\xC3\xC3\xB8";
36 $res = IPTC::parse( $iptcData );
37 $this->assertEquals( [ 'ÃÃø' ], $res['Keywords'] );
38 }
39
47 $iptcData = "Photoshop 3.0\08BIM\4\4\0\0\0\0\0\x11\x1c\x02\x19\x00\x04\xC3\xC3\xC3\xB8"
48 . "\x1c\x01\x5A\x00\x03\x1B\x25\x47";
49 $res = IPTC::parse( $iptcData );
50 $this->assertEquals( [ 'ø' ], $res['Keywords'] );
51 }
52
56 public function testIPTCParseNoCharsetUTF8() {
57 $iptcData = "Photoshop 3.0\08BIM\4\4\0\0\0\0\0\x07\x1c\x02\x19\x00\x02¼";
58 $res = IPTC::parse( $iptcData );
59 $this->assertEquals( [ '¼' ], $res['Keywords'] );
60 }
61
66 public function testIPTCParseMulti() {
67 $iptcData = /* identifier */ "Photoshop 3.0\08BIM\4\4"
68 /* length */ . "\0\0\0\0\0\x0D"
69 . "\x1c\x02\x19" . "\x00\x01" . "\xBC"
70 . "\x1c\x02\x19" . "\x00\x02" . "\xBC\xBD";
71 $res = IPTC::parse( $iptcData );
72 $this->assertEquals( [ '¼', '¼½' ], $res['Keywords'] );
73 }
74
78 public function testIPTCParseUTF8() {
79 // This has the magic "\x1c\x01\x5A\x00\x03\x1B\x25\x47" which marks content as UTF8.
80 $iptcData =
81 "Photoshop 3.0\08BIM\4\4\0\0\0\0\0\x0F\x1c\x02\x19\x00\x02¼\x1c\x01\x5A\x00\x03\x1B\x25\x47";
82 $res = IPTC::parse( $iptcData );
83 $this->assertEquals( [ '¼' ], $res['Keywords'] );
84 }
85}
and that you know you can do these things To protect your we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights These restrictions translate to certain responsibilities for you if you distribute copies of the or if you modify it For if you distribute copies of such a whether gratis or for a you must give the recipients all the rights that you have You must make sure that receive or can get the source code And you must show them these terms so they know their rights We protect your rights with two and(2) offer you this license which gives you legal permission to copy
Media.
Definition IPTCTest.php:6
testIPTCParseNoCharset88591()
IPTC::parse.
Definition IPTCTest.php:20
testIPTCParseNoCharsetUTF8()
IPTC::parse.
Definition IPTCTest.php:56
testRecognizeUtf8()
IPTC::getCharset.
Definition IPTCTest.php:11
testIPTCParseNoCharset88591b()
IPTC::parse.
Definition IPTCTest.php:32
testIPTCParseMulti()
Testing something that has 2 values for keyword IPTC::parse.
Definition IPTCTest.php:66
testIPTCParseUTF8()
IPTC::parse.
Definition IPTCTest.php:78
testIPTCParseForcedUTFButInvalid()
Same as testIPTCParseNoCharset88591b, but forcing the charset to utf-8.
Definition IPTCTest.php:46
static parse( $rawData)
This takes the results of iptcparse() and puts it into a form that can be handled by mediawiki.
Definition IPTC.php:40
static getCharset( $tag)
take the value of 1:90 tag and returns a charset
Definition IPTC.php:462
$res
Definition database.txt:21