1
|
|
|
<?php |
2
|
|
|
/** |
3
|
|
|
* @author Chris Hilsdon <[email protected]> |
4
|
|
|
* @package ComodoDecodeCSR |
5
|
|
|
* @copyright 2016 Xigen |
6
|
|
|
* @license GNU General Public License v3 |
7
|
|
|
* @link https://github.com/XigenChris/ComodoDecodeCSR |
8
|
|
|
*/ |
9
|
|
|
|
10
|
|
|
namespace Xigen\Tests\Console; |
11
|
|
|
|
12
|
|
|
use Xigen\ComodoDecodeCSR; |
13
|
|
|
use Xigen\Tests\XigenUnit; |
14
|
|
|
use Xigen\Console\CreateFile; |
15
|
|
|
use Symfony\Component\Console\Tester\CommandTester; |
16
|
|
|
|
17
|
|
|
class CreateFileTest extends XigenUnit |
18
|
|
|
{ |
19
|
|
|
protected $ComodoDecodeCSR; |
20
|
|
|
|
21
|
|
|
public function setUp() |
22
|
|
|
{ |
23
|
3 |
|
register_shutdown_function(function () { |
24
|
|
|
if (file_exists('test.csr')) { |
25
|
|
|
unlink('test.csr'); |
26
|
|
|
} |
27
|
3 |
|
}); |
28
|
3 |
|
} |
29
|
|
|
|
30
|
1 |
View Code Duplication |
public function testNoCSR() |
|
|
|
|
31
|
|
|
{ |
32
|
1 |
|
$command = new CreateFile(); |
33
|
1 |
|
$tester = new CommandTester($command); |
34
|
|
|
|
35
|
|
|
try { |
36
|
1 |
|
$tester->execute([]); |
37
|
1 |
|
} catch (\Exception $e) { |
38
|
1 |
|
$this->assertEmpty($tester->getDisplay(), "Message wan't empty"); |
39
|
1 |
|
$this->assertSame($e->getMessage(), 'Not enough arguments (missing: "csr").'); |
40
|
|
|
} |
41
|
1 |
|
} |
42
|
|
|
|
43
|
3 |
View Code Duplication |
public function testWithBadCSR() |
|
|
|
|
44
|
|
|
{ |
45
|
1 |
|
$command = new CreateFile(); |
46
|
1 |
|
$tester = new CommandTester($command); |
47
|
|
|
|
48
|
|
|
//Create an empty |
49
|
1 |
|
file_put_contents('test.csr', '', FILE_APPEND | LOCK_EX); |
50
|
|
|
|
51
|
1 |
|
$tester->execute([ |
52
|
|
|
'csr' => 'test.csr' |
53
|
1 |
|
]); |
54
|
|
|
|
55
|
1 |
|
$this->assertSame($tester->getStatusCode(), (int) 3); |
56
|
3 |
|
$this->assertRegExp('/Error!/', $tester->getDisplay()); |
57
|
1 |
|
} |
58
|
|
|
|
59
|
3 |
|
public function testWithCorrectCSR() |
60
|
|
|
{ |
61
|
1 |
|
$command = new CreateFile(); |
62
|
1 |
|
$tester = new CommandTester($command); |
63
|
1 |
|
$tester->execute([ |
64
|
|
|
'csr' => 'certificate/test.csr' |
65
|
1 |
|
]); |
66
|
|
|
|
67
|
3 |
|
$this->assertSame($tester->getStatusCode(), (int) 0); |
68
|
1 |
|
$lines = $this->getOutputLines($tester->getDisplay()); |
69
|
|
|
|
70
|
1 |
|
$this->assertRegExp('/Filename: [a-f0-9]{32}.txt/i', $lines[0]); |
71
|
1 |
|
$this->assertSame('Contents:', $lines[1]); |
72
|
3 |
|
$this->assertRegExp('/[0-9a-f]{5,40}/i', $lines[2]); |
73
|
1 |
|
$this->assertSame('comodoca.com', $lines[3]); |
74
|
1 |
|
$this->assertRegExp('/URL: http:\/\/comododecodecsr.tk\/[a-f0-9]{32}.txt/i', $lines[5]); |
75
|
1 |
|
} |
76
|
|
|
} |
77
|
|
|
|
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.