/usr/share/php/tests/Horde_Mime/Horde/Mime/MimeTest.php is in php-horde-mime 2.2.8-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 | <?php
/**
* Tests for the Horde_Mime class.
*
* Copyright 2010-2013 Horde LLC (http://www.horde.org/)
*
* @author Michael Slusarz <slusarz@horde.org>
* @category Horde
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @package Mime
* @subpackage UnitTests
*/
/**
* @author Michael Slusarz <slusarz@horde.org>
* @category Horde
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @package Mime
* @subpackage UnitTests
*/
class Horde_Mime_MimeTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
Horde_Mime::$brokenRFC2231 = false;
}
public function testUudecode()
{
$data = Horde_Mime::uudecode(file_get_contents(__DIR__ . '/fixtures/uudecode.txt'));
$this->assertEquals(
2,
count($data)
);
$this->assertArrayHasKey('data', $data[0]);
$this->assertEquals(
'Test string',
$data[0]['data']
);
$this->assertArrayHasKey('name', $data[0]);
$this->assertEquals(
'test.txt',
$data[0]['name']
);
$this->assertArrayHasKey('perm', $data[0]);
$this->assertEquals(
'644',
$data[0]['perm']
);
$this->assertArrayHasKey('data', $data[1]);
$this->assertEquals(
'2nd string',
$data[1]['data']
);
$this->assertArrayHasKey('name', $data[1]);
$this->assertEquals(
'test2.txt',
$data[1]['name']
);
$this->assertArrayHasKey('perm', $data[1]);
$this->assertEquals(
'755',
$data[1]['perm']
);
}
public function testRfc2231()
{
// Horde_Mime RFC 2231 & workaround for broken MUA's
$pname = 'test';
$str = str_repeat('a', 100) . '.txt';
$expected = array(
'test' => 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.txt',
'test*0' =>'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
'test*1' => 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.txt'
);
Horde_Mime::$brokenRFC2231 = true;
$this->assertEquals(Horde_Mime::encodeParam($pname, $str), $expected);
Horde_Mime::$brokenRFC2231 = false;
unset($expected['test']);
$this->assertEquals(Horde_Mime::encodeParam($pname, $str), $expected);
}
public function testDecode()
{
$this->assertEquals(
' François Xavier. XXXXXX <foo@example.com>',
Horde_Mime::decode('=?utf-8?Q?_Fran=C3=A7ois_Xavier=2E_XXXXXX_?= <foo@example.com>')
);
/* Not MIME encoded. */
$this->assertEquals(
'=? required=?',
Horde_Mime::decode('=? required=?')
);
}
public function testIsChild()
{
$this->assertTrue(Horde_Mime::isChild('1', '1.0'));
$this->assertTrue(Horde_Mime::isChild('1', '1.1'));
$this->assertTrue(Horde_Mime::isChild('1', '1.1.0'));
$this->assertFalse(Horde_Mime::isChild('1', '1'));
$this->assertFalse(Horde_Mime::isChild('1', '2.1'));
$this->assertFalse(Horde_Mime::isChild('1', '10.0'));
}
public function testEncodeParamQuotesQuote()
{
$this->assertEquals(
array('foo' => "\"\x01\""),
Horde_Mime::encodeParam('foo', "\x01")
);
}
public function testBug12127()
{
Horde_Mime::$brokenRFC2231 = true;
$this->assertEquals(
array(
'foo' => 'test'
),
Horde_Mime::encodeParam('foo', 'test', array(
'charset' => 'UTF-16LE'
))
);
$this->assertEquals(
array(
'foo*' => "utf-16le''%01%01",
'foo' => '"=?utf-16le?b?AQE=?="'
),
Horde_Mime::encodeParam('foo', 'ā', array(
'charset' => 'UTF-16LE'
))
);
}
public function testNullCharacterInEncodeOutput()
{
$this->assertEquals(
'=?utf-16le?b?AAA=?=',
Horde_Mime::encode("\x00", 'UTF-16LE')
);
}
}
|