Mercurial > hg > rc1
comparison vendor/pear/crypt_gpg/tests/ImportKeyTest.php @ 0:1e000243b222
vanilla 1.3.3 distro, I hope
| author | Charlie Root |
|---|---|
| date | Thu, 04 Jan 2018 15:50:29 -0500 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:1e000243b222 |
|---|---|
| 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 ?> |
