0
|
1 <?php
|
|
2
|
|
3 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
|
4
|
|
5 /**
|
|
6 * Key import tests for the Crypt_GPG package.
|
|
7 *
|
|
8 * These tests require the PHPUnit 3.6 or greater package to be installed.
|
|
9 * PHPUnit is installable using PEAR. See the
|
|
10 * {@link http://www.phpunit.de/manual/3.6/en/installation.html manual}
|
|
11 * for detailed installation instructions.
|
|
12 *
|
|
13 * To run these tests, use:
|
|
14 * <code>
|
|
15 * $ phpunit ImportKeyTestCase
|
|
16 * </code>
|
|
17 *
|
|
18 * LICENSE:
|
|
19 *
|
|
20 * This library is free software; you can redistribute it and/or modify
|
|
21 * it under the terms of the GNU Lesser General Public License as
|
|
22 * published by the Free Software Foundation; either version 2.1 of the
|
|
23 * License, or (at your option) any later version.
|
|
24 *
|
|
25 * This library is distributed in the hope that it will be useful,
|
|
26 * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
27 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
28 * Lesser General Public License for more details.
|
|
29 *
|
|
30 * You should have received a copy of the GNU Lesser General Public
|
|
31 * License along with this library; if not, see
|
|
32 * <http://www.gnu.org/licenses/>
|
|
33 *
|
|
34 * @category Encryption
|
|
35 * @package Crypt_GPG
|
|
36 * @author Michael Gauthier <mike@silverorange.com>
|
|
37 * @copyright 2005-2008 silverorange
|
|
38 * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1
|
|
39 * @version CVS: $Id$
|
|
40 * @link http://pear.php.net/package/Crypt_GPG
|
|
41 */
|
|
42
|
|
43 /**
|
|
44 * Base test case.
|
|
45 */
|
|
46 require_once 'TestCase.php';
|
|
47
|
|
48 /**
|
|
49 * Tests key import abilities of Crypt_GPG.
|
|
50 *
|
|
51 * @category Encryption
|
|
52 * @package Crypt_GPG
|
|
53 * @author Michael Gauthier <mike@silverorange.com>
|
|
54 * @copyright 2005-2008 silverorange
|
|
55 * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1
|
|
56 * @link http://pear.php.net/package/Crypt_GPG
|
|
57 */
|
|
58 class ImportKeyTestCase extends Crypt_GPG_TestCase
|
|
59 {
|
|
60 // set up
|
|
61 // {{{ setUp()
|
|
62
|
|
63 public function setUp()
|
|
64 {
|
|
65 parent::setUp();
|
|
66
|
|
67 // In GnuPG 2.1 first operation on a keyring in v1 format
|
|
68 // will cause format update and several IMPORT_OK responses
|
|
69 // This way we clean the state first
|
|
70 $this->gpg->getKeys();
|
|
71 }
|
|
72
|
|
73 // }}}
|
|
74 // {{{ testImportKey_private()
|
|
75
|
|
76 /**
|
|
77 * @group string
|
|
78 */
|
|
79 public function testImportKey_private()
|
|
80 {
|
|
81 // Note: Some of GnuPG 2.1.x versions return different private_imported
|
|
82 // and private_uchanged values, bug? GnuPG 2.1.15 returns 1 as expected.
|
|
83
|
|
84 $expectedResult = array(
|
|
85 'fingerprint' => 'F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB',
|
|
86 'fingerprints' => array('F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB'),
|
|
87 'public_imported' => 0,
|
|
88 'public_unchanged' => 1,
|
|
89 'private_imported' => 1,
|
|
90 'private_unchanged' => 0
|
|
91 );
|
|
92
|
|
93 // {{{ private key data
|
|
94 $privateKeyData = <<<TEXT
|
|
95 -----BEGIN PGP PRIVATE KEY BLOCK-----
|
|
96 Version: GnuPG v1.4.6 (GNU/Linux)
|
|
97
|
|
98 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
|
|
126 NN5B7Vl2JdxBuwWJrdfUb9UQzw==
|
|
127 =51qc
|
|
128 -----END PGP PRIVATE KEY BLOCK-----
|
|
129
|
|
130 TEXT;
|
|
131 // }}}
|
|
132
|
|
133 $result = $this->gpg->importKey($privateKeyData);
|
|
134 $this->assertEquals($expectedResult, $result);
|
|
135 }
|
|
136
|
|
137 // }}}
|
|
138 // {{{ testImportKey_public()
|
|
139
|
|
140 /**
|
|
141 * @group string
|
|
142 */
|
|
143 public function testImportKey_public()
|
|
144 {
|
|
145 $expectedResult = array(
|
|
146 'fingerprint' => '948F9835FF09F5F91CFF2AC1268AB7103435E65D',
|
|
147 'fingerprints' => array('948F9835FF09F5F91CFF2AC1268AB7103435E65D'),
|
|
148 'public_imported' => 1,
|
|
149 'public_unchanged' => 0,
|
|
150 'private_imported' => 0,
|
|
151 'private_unchanged' => 0
|
|
152 );
|
|
153
|
|
154 // {{{ public key data
|
|
155 $publicKeyData = <<<TEXT
|
|
156 -----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
157 Version: GnuPG v1.4.6 (GNU/Linux)
|
|
158
|
|
159 mQGiBEjS+PgRBADbDdRN9iwESSyJvjnfgk7ZWUYKdHdSER7yJ0aM4LQjVDdw9y/f
|
|
160 QGidipXxVD2lW28gRtzcmLufxv3DzjZp83VaXvlJs9jbTtHDIYFyDW9kH1HTRbZT
|
|
161 WKWfuInd0AXzHy5o77qQ+mW0AIXbyke5suSHdvcmv1hiWI9OnXcIHpmavwCgt4Hm
|
|
162 +j3FpRo9qs4fJM887c796qUD/iPkStU9sM/0KCJFZNaPCGBaamCEi7UoAHNlim+B
|
|
163 dv3rfSQ2VcDRq9/3GoCEJ2c62XpgQxt79mojJLdWZsTWvr6ESnWOm7W6GIjv/Zc3
|
|
164 +OXgi7QdH5nwpZl6kBMkuzZxczFuwh9dqlXml+bND0JawS38MvQpDUkwMb592v5U
|
|
165 i9WIBADBacg6nixiTR+4kaHFE1Ww8QxT+vQ4S1SOx47cm8R6FxTRQA7FvK+vMxCt
|
|
166 Ps9GOzhjrCgIoF/6X10IZ7qB5jCYIH+kvHrp90ZbNwJ4pIa7phCPhqUF9mEyMbC2
|
|
167 AEIGp/Aw26yXKskQJJ3vFji+VaeCui21sXjg5EHfoayt79xT8bRfRXh0ZXJuYWwg
|
|
168 UHVibGljIEtleSAoZG8gbm90IGVuY3J5cHQgaW1wb3J0YW50IGRhdGEgd2l0aCB0
|
|
169 aGlzIGtleSkgPGV4dGVybmFsLXB1YmxpY0BleGFtcGxlLmNvbT6IYAQTEQIAIAUC
|
|
170 SNL4+AIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJECaKtxA0NeZdqHwAn3AF
|
|
171 EEhX1Tyba0ovCV2DwUytKM0CAKCnu6VzRy1Y8jp9fiy3ScwmaCI3FbkCDQRI0vj8
|
|
172 EAgArBRh0YpPhE1vvKoPuhGDa//96YqrYt9rmBo3AR1WmF3CKtspjXdOK2bCqdJh
|
|
173 H6kaoNi+0Ors00n2NfPj9Am2cTV3h2/KpAWOxQGfkmpzU3xXTVCUo/HoKDXIfWqk
|
|
174 /TPXRqbwFV489GRBtVov4IoZM0KqZXhaFD6cXBsEl/BVSvVdBqmBzUoJ2bOzYiSW
|
|
175 eg/ml65jbtxjDYMbxTLi7xRcTSAsareoN6/PcbAvcCE5UeCMu8p52wxHOTrAkI4/
|
|
176 6elpziVpIGn07zJb//4qIoZdhIzwfsMl73tPfdoL9jEC66SiWAN+BEDxceGR5E15
|
|
177 2WsT5tkxuz/pQUC1L3JW4WCC/wADBwf8CsevcPsk2XxT2XZj0lfmAOuhXxuqBczW
|
|
178 TXCimnRxvC8+uAacv1RgVRH6emW3BVjt0dr9vwRT0n54JA+7ZwXVMOo4/tqNwmJs
|
|
179 C6SThBXGBQxEaZwv19WC58DjblbvYa81cUaXrUdHi1OyoHwgalx0xZQ57IUXW6+7
|
|
180 qdLRfzyqbDBph9ogB0ta3AhSikAqqYImTrI650v/KWBLjrI+N925r0TvnfSOsru7
|
|
181 JrftccY2LntVnQUcXjuaFViZ7y8ocW8f92zmGj2zUN8z2GsMKiGQtNNmoX51TcQl
|
|
182 sJPsZF0RKduVkNUQa9cfzSIMjjhUSzspA2qHLUKafrS3e38s2Y4CNIhJBBgRAgAJ
|
|
183 BQJI0vj8AhsMAAoJECaKtxA0NeZdOFQAn15X+eYzFgVERrFkddsHvAE00OnSAJ9h
|
|
184 A7Lcv7M+9WeZ6cjeHkZfLB6LLA==
|
|
185 =AV/P
|
|
186 -----END PGP PUBLIC KEY BLOCK-----
|
|
187
|
|
188 TEXT;
|
|
189 // }}}
|
|
190
|
|
191 $result = $this->gpg->importKey($publicKeyData);
|
|
192 $this->assertEquals($expectedResult, $result);
|
|
193 }
|
|
194
|
|
195 // }}}
|
|
196 // {{{ testImportKeyAlreadyImported_private()
|
|
197
|
|
198 /**
|
|
199 * @group string
|
|
200 */
|
|
201 public function testImportKeyAlreadyImported_private()
|
|
202 {
|
|
203 // {{{ private key data
|
|
204 $privateKeyData = <<<TEXT
|
|
205 -----BEGIN PGP PRIVATE KEY BLOCK-----
|
|
206 Version: GnuPG v1.4.6 (GNU/Linux)
|
|
207
|
|
208 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
|
|
236 NN5B7Vl2JdxBuwWJrdfUb9UQzw==
|
|
237 =51qc
|
|
238 -----END PGP PRIVATE KEY BLOCK-----
|
|
239
|
|
240 TEXT;
|
|
241 // }}}
|
|
242
|
|
243 $result = $this->gpg->importKey($privateKeyData);
|
|
244
|
|
245 $expectedResult = array(
|
|
246 'fingerprint' => 'F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB',
|
|
247 'fingerprints' => array('F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB'),
|
|
248 'public_imported' => 0,
|
|
249 'public_unchanged' => 1,
|
|
250 'private_imported' => 1,
|
|
251 'private_unchanged' => 0
|
|
252 );
|
|
253
|
|
254 $this->assertEquals($expectedResult, $result);
|
|
255
|
|
256 $result = $this->gpg->importKey($privateKeyData);
|
|
257
|
|
258 $expectedResult = array(
|
|
259 'fingerprint' => 'F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB',
|
|
260 'fingerprints' => array('F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB'),
|
|
261 'public_imported' => 0,
|
|
262 'public_unchanged' => version_compare($this->gpg->getVersion(), '2.1.0', 'ge') ? 1 : 0,
|
|
263 'private_imported' => 0,
|
|
264 'private_unchanged' => 1,
|
|
265 );
|
|
266
|
|
267 $this->assertEquals($expectedResult, $result);
|
|
268 }
|
|
269
|
|
270 // }}}
|
|
271 // {{{ testImportKeyAlreadyImported_public()
|
|
272
|
|
273 /**
|
|
274 * @group string
|
|
275 */
|
|
276 public function testImportKeyAlreadyImported_public()
|
|
277 {
|
|
278 // {{{ public key data
|
|
279 $publicKeyData = <<<TEXT
|
|
280 -----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
281 Version: GnuPG v1.4.6 (GNU/Linux)
|
|
282
|
|
283 mQGiBEjS+PgRBADbDdRN9iwESSyJvjnfgk7ZWUYKdHdSER7yJ0aM4LQjVDdw9y/f
|
|
284 QGidipXxVD2lW28gRtzcmLufxv3DzjZp83VaXvlJs9jbTtHDIYFyDW9kH1HTRbZT
|
|
285 WKWfuInd0AXzHy5o77qQ+mW0AIXbyke5suSHdvcmv1hiWI9OnXcIHpmavwCgt4Hm
|
|
286 +j3FpRo9qs4fJM887c796qUD/iPkStU9sM/0KCJFZNaPCGBaamCEi7UoAHNlim+B
|
|
287 dv3rfSQ2VcDRq9/3GoCEJ2c62XpgQxt79mojJLdWZsTWvr6ESnWOm7W6GIjv/Zc3
|
|
288 +OXgi7QdH5nwpZl6kBMkuzZxczFuwh9dqlXml+bND0JawS38MvQpDUkwMb592v5U
|
|
289 i9WIBADBacg6nixiTR+4kaHFE1Ww8QxT+vQ4S1SOx47cm8R6FxTRQA7FvK+vMxCt
|
|
290 Ps9GOzhjrCgIoF/6X10IZ7qB5jCYIH+kvHrp90ZbNwJ4pIa7phCPhqUF9mEyMbC2
|
|
291 AEIGp/Aw26yXKskQJJ3vFji+VaeCui21sXjg5EHfoayt79xT8bRfRXh0ZXJuYWwg
|
|
292 UHVibGljIEtleSAoZG8gbm90IGVuY3J5cHQgaW1wb3J0YW50IGRhdGEgd2l0aCB0
|
|
293 aGlzIGtleSkgPGV4dGVybmFsLXB1YmxpY0BleGFtcGxlLmNvbT6IYAQTEQIAIAUC
|
|
294 SNL4+AIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJECaKtxA0NeZdqHwAn3AF
|
|
295 EEhX1Tyba0ovCV2DwUytKM0CAKCnu6VzRy1Y8jp9fiy3ScwmaCI3FbkCDQRI0vj8
|
|
296 EAgArBRh0YpPhE1vvKoPuhGDa//96YqrYt9rmBo3AR1WmF3CKtspjXdOK2bCqdJh
|
|
297 H6kaoNi+0Ors00n2NfPj9Am2cTV3h2/KpAWOxQGfkmpzU3xXTVCUo/HoKDXIfWqk
|
|
298 /TPXRqbwFV489GRBtVov4IoZM0KqZXhaFD6cXBsEl/BVSvVdBqmBzUoJ2bOzYiSW
|
|
299 eg/ml65jbtxjDYMbxTLi7xRcTSAsareoN6/PcbAvcCE5UeCMu8p52wxHOTrAkI4/
|
|
300 6elpziVpIGn07zJb//4qIoZdhIzwfsMl73tPfdoL9jEC66SiWAN+BEDxceGR5E15
|
|
301 2WsT5tkxuz/pQUC1L3JW4WCC/wADBwf8CsevcPsk2XxT2XZj0lfmAOuhXxuqBczW
|
|
302 TXCimnRxvC8+uAacv1RgVRH6emW3BVjt0dr9vwRT0n54JA+7ZwXVMOo4/tqNwmJs
|
|
303 C6SThBXGBQxEaZwv19WC58DjblbvYa81cUaXrUdHi1OyoHwgalx0xZQ57IUXW6+7
|
|
304 qdLRfzyqbDBph9ogB0ta3AhSikAqqYImTrI650v/KWBLjrI+N925r0TvnfSOsru7
|
|
305 JrftccY2LntVnQUcXjuaFViZ7y8ocW8f92zmGj2zUN8z2GsMKiGQtNNmoX51TcQl
|
|
306 sJPsZF0RKduVkNUQa9cfzSIMjjhUSzspA2qHLUKafrS3e38s2Y4CNIhJBBgRAgAJ
|
|
307 BQJI0vj8AhsMAAoJECaKtxA0NeZdOFQAn15X+eYzFgVERrFkddsHvAE00OnSAJ9h
|
|
308 A7Lcv7M+9WeZ6cjeHkZfLB6LLA==
|
|
309 =AV/P
|
|
310 -----END PGP PUBLIC KEY BLOCK-----
|
|
311
|
|
312 TEXT;
|
|
313 // }}}
|
|
314
|
|
315 $result = $this->gpg->importKey($publicKeyData);
|
|
316
|
|
317 $expectedResult = array(
|
|
318 'fingerprint' => '948F9835FF09F5F91CFF2AC1268AB7103435E65D',
|
|
319 'fingerprints' => array('948F9835FF09F5F91CFF2AC1268AB7103435E65D'),
|
|
320 'public_imported' => 1,
|
|
321 'public_unchanged' => 0,
|
|
322 'private_imported' => 0,
|
|
323 'private_unchanged' => 0
|
|
324 );
|
|
325
|
|
326 $this->assertEquals($expectedResult, $result);
|
|
327
|
|
328 $result = $this->gpg->importKey($publicKeyData);
|
|
329
|
|
330 $expectedResult = array(
|
|
331 'fingerprint' => '948F9835FF09F5F91CFF2AC1268AB7103435E65D',
|
|
332 'fingerprints' => array('948F9835FF09F5F91CFF2AC1268AB7103435E65D'),
|
|
333 'public_imported' => 0,
|
|
334 'public_unchanged' => 1,
|
|
335 'private_imported' => 0,
|
|
336 'private_unchanged' => 0
|
|
337 );
|
|
338
|
|
339 $this->assertEquals($expectedResult, $result);
|
|
340 }
|
|
341
|
|
342 // }}}
|
|
343 // {{{ testImportKeyNoDataException_invalid()
|
|
344
|
|
345 /**
|
|
346 * @expectedException Crypt_GPG_NoDataException
|
|
347 *
|
|
348 * @group string
|
|
349 */
|
|
350 public function testImportKeyNoDataException_invalid()
|
|
351 {
|
|
352 $keyData = 'Invalid OpenPGP data.';
|
|
353 $this->gpg->importKey($keyData);
|
|
354 }
|
|
355
|
|
356 // }}}
|
|
357 // {{{ testImportKeyNoDataException_empty()
|
|
358
|
|
359 /**
|
|
360 * @expectedException Crypt_GPG_NoDataException
|
|
361 *
|
|
362 * @group string
|
|
363 */
|
|
364 public function testImportKeyNoDataException_empty()
|
|
365 {
|
|
366 $keyData = '';
|
|
367 $this->gpg->importKey($keyData);
|
|
368 }
|
|
369
|
|
370 // }}}
|
|
371 // {{{ testImportKeyFile_private()
|
|
372
|
|
373 /**
|
|
374 * @group file
|
|
375 */
|
|
376 public function testImportKeyFile_private()
|
|
377 {
|
|
378 $expectedResult = array(
|
|
379 'fingerprint' => 'F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB',
|
|
380 'fingerprints' => array('F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB'),
|
|
381 'public_imported' => 0,
|
|
382 'public_unchanged' => 1,
|
|
383 'private_imported' => 1,
|
|
384 'private_unchanged' => 0
|
|
385 );
|
|
386
|
|
387 $filename = $this->getDataFilename('testImportKeyFile_private.asc');
|
|
388 $result = $this->gpg->importKeyFile($filename);
|
|
389
|
|
390 $this->assertEquals($expectedResult, $result);
|
|
391 }
|
|
392
|
|
393 // }}}
|
|
394 // {{{ testImportKeyFile_public()
|
|
395
|
|
396 /**
|
|
397 * @group file
|
|
398 */
|
|
399 public function testImportKeyFile_public()
|
|
400 {
|
|
401 $expectedResult = array(
|
|
402 'fingerprint' => '948F9835FF09F5F91CFF2AC1268AB7103435E65D',
|
|
403 'fingerprints' => array('948F9835FF09F5F91CFF2AC1268AB7103435E65D'),
|
|
404 'public_imported' => 1,
|
|
405 'public_unchanged' => 0,
|
|
406 'private_imported' => 0,
|
|
407 'private_unchanged' => 0
|
|
408 );
|
|
409
|
|
410 $filename = $this->getDataFilename('testImportKeyFile_public.asc');
|
|
411 $result = $this->gpg->importKeyFile($filename);
|
|
412
|
|
413 $this->assertEquals($expectedResult, $result);
|
|
414 }
|
|
415
|
|
416 // }}}
|
|
417 // {{{ testImportKeyFileAlreadyImported_private()
|
|
418
|
|
419 /**
|
|
420 * @group file
|
|
421 */
|
|
422 public function testImportKeyFileAlreadyImported_private()
|
|
423 {
|
|
424 $filename = $this->getDataFilename('testImportKeyFile_private.asc');
|
|
425 $result = $this->gpg->importKeyFile($filename);
|
|
426
|
|
427 $expectedResult = array(
|
|
428 'fingerprint' => 'F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB',
|
|
429 'fingerprints' => array('F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB'),
|
|
430 'public_imported' => 0,
|
|
431 'public_unchanged' => 1,
|
|
432 'private_imported' => 1,
|
|
433 'private_unchanged' => 0
|
|
434 );
|
|
435
|
|
436 $this->assertEquals($expectedResult, $result);
|
|
437
|
|
438 $result = $this->gpg->importKeyFile($filename);
|
|
439
|
|
440 $expectedResult = array(
|
|
441 'fingerprint' => 'F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB',
|
|
442 'fingerprints' => array('F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB'),
|
|
443 'public_imported' => 0,
|
|
444 'public_unchanged' => version_compare($this->gpg->getVersion(), '2.1.0', 'ge') ? 1 : 0,
|
|
445 'private_imported' => 0,
|
|
446 'private_unchanged' => 1,
|
|
447 );
|
|
448
|
|
449 $this->assertEquals($expectedResult, $result);
|
|
450 }
|
|
451
|
|
452 // }}}
|
|
453 // {{{ testImportKeyFileAlreadyImported_public()
|
|
454
|
|
455 /**
|
|
456 * @group file
|
|
457 */
|
|
458 public function testImportKeyFileAlreadyImported_public()
|
|
459 {
|
|
460 $filename = $this->getDataFilename('testImportKeyFile_public.asc');
|
|
461 $result = $this->gpg->importKeyFile($filename);
|
|
462
|
|
463 $expectedResult = array(
|
|
464 'fingerprint' => '948F9835FF09F5F91CFF2AC1268AB7103435E65D',
|
|
465 'fingerprints' => array('948F9835FF09F5F91CFF2AC1268AB7103435E65D'),
|
|
466 'public_imported' => 1,
|
|
467 'public_unchanged' => 0,
|
|
468 'private_imported' => 0,
|
|
469 'private_unchanged' => 0
|
|
470 );
|
|
471
|
|
472 $this->assertEquals($expectedResult, $result);
|
|
473
|
|
474 $result = $this->gpg->importKeyFile($filename);
|
|
475
|
|
476 $expectedResult = array(
|
|
477 'fingerprint' => '948F9835FF09F5F91CFF2AC1268AB7103435E65D',
|
|
478 'fingerprints' => array('948F9835FF09F5F91CFF2AC1268AB7103435E65D'),
|
|
479 'public_imported' => 0,
|
|
480 'public_unchanged' => 1,
|
|
481 'private_imported' => 0,
|
|
482 'private_unchanged' => 0
|
|
483 );
|
|
484
|
|
485 $this->assertEquals($expectedResult, $result);
|
|
486 }
|
|
487
|
|
488 // }}}
|
|
489 // {{{ testImportKeyFileFileException()
|
|
490
|
|
491 /**
|
|
492 * @expectedException Crypt_GPG_FileException
|
|
493 *
|
|
494 * @group file
|
|
495 */
|
|
496 public function testImportKeyFileFileException()
|
|
497 {
|
|
498 // input file does not exist
|
|
499 $filename =
|
|
500 $this->getDataFilename('testImportKeyFileFileException.asc');
|
|
501
|
|
502 $this->gpg->importKeyFile($filename);
|
|
503 }
|
|
504
|
|
505 // }}}
|
|
506 // {{{ testImportKeyFileNoDataException()
|
|
507
|
|
508 /**
|
|
509 * @expectedException Crypt_GPG_NoDataException
|
|
510 *
|
|
511 * @group file
|
|
512 */
|
|
513 public function testImportKeyFileNoDataException()
|
|
514 {
|
|
515 $filename = $this->getDataFilename('testFileEmpty.plain');
|
|
516 $this->gpg->importKeyFile($filename);
|
|
517 }
|
|
518
|
|
519 // }}}
|
|
520 }
|
|
521
|
|
522 ?>
|