*/
private function addBlockedServer(): int
{
- if (count($this->args) < 2 || count($this->args) > 3) {
- throw new CommandArgsException('Add needs a domain pattern and optionally a reason.');
+ if (count($this->args) != 3) {
+ throw new CommandArgsException('Add needs a domain pattern and a reason.');
}
$pattern = $this->getArgument(1);
- $reason = (count($this->args) === 3) ? $this->getArgument(2) : DomainPatternBlocklist::DEFAULT_REASON;
+ $reason = $this->getArgument(2);
$result = $this->blocklist->addPattern($pattern, $reason);
if ($result) {
class DomainPatternBlocklist
{
- const DEFAULT_REASON = 'blocked';
-
/** @var IManageConfigValues */
private $config;
}
/**
- * @param string $pattern
- * @param string|null $reason
+ * @param string $pattern
+ * @param string $reason
* @return int 0 if the block list couldn't be saved, 1 if the pattern was added, 2 if it was updated in place
*/
- public function addPattern(string $pattern, string $reason = null): int
+ public function addPattern(string $pattern, string $reason): int
{
$update = false;
if ($blocked['domain'] === $pattern) {
$blocklist[] = [
'domain' => $pattern,
- 'reason' => $reason ?? self::DEFAULT_REASON,
+ 'reason' => $reason,
];
$update = true;
if (!$update) {
$blocklist[] = [
'domain' => $pattern,
- 'reason' => $reason ?? self::DEFAULT_REASON,
+ 'reason' => $reason,
];
}
$blocklist = [];
while (($data = fgetcsv($fp, 1000)) !== false) {
- $domain = $data[0];
- if (count($data) == 0) {
- $reason = self::DEFAULT_REASON;
- } else {
- $reason = $data[1];
- }
-
- $data = [
- 'domain' => $domain,
- 'reason' => $reason
+ $item = [
+ 'domain' => $data[0],
+ 'reason' => $data[1] ?? '',
];
- if (!in_array($data, $blocklist)) {
+ if (!in_array($item, $blocklist)) {
$blocklist[] = $data;
}
}
self::assertEquals('The domain pattern \'testme.now\' is now blocked. (Reason: \'I like it!\')' . "\n", $txt);
}
- /**
- * Test blockedservers add command with the default reason
- */
- public function testAddBlockedServerWithDefaultReason()
- {
- $this->blocklistMock
- ->shouldReceive('addPattern')
- ->with('testme.now', DomainPatternBlocklist::DEFAULT_REASON)
- ->andReturn(1)
- ->once();
-
- $console = new ServerBlock($this->blocklistMock, $this->consoleArgv);
- $console->setArgument(0, 'add');
- $console->setArgument(1, 'testme.now');
- $txt = $this->dumpExecute($console);
-
- self::assertEquals('The domain pattern \'testme.now\' is now blocked. (Reason: \'' . DomainPatternBlocklist::DEFAULT_REASON . '\')' . "\n", $txt);
- }
-
/**
* Test blockedservers add command on existed domain
*/
{
$this->blocklistMock
->shouldReceive('removePattern')
- ->with('not.exiting')
+ ->with('not.existing')
->andReturn(1)
->once();
$console = new ServerBlock($this->blocklistMock, $this->consoleArgv);
$console->setArgument(0, 'remove');
- $console->setArgument(1, 'not.exiting');
+ $console->setArgument(1, 'not.existing');
$txt = $this->dumpExecute($console);
- self::assertEquals('The domain pattern \'not.exiting\' wasn\'t blocked.' . "\n", $txt);
+ self::assertEquals('The domain pattern \'not.existing\' wasn\'t blocked.' . "\n", $txt);
}
/**
$console->setArgument(0, 'add');
$txt = $this->dumpExecute($console);
- self::assertStringStartsWith('[Warning] Add needs a domain pattern and optionally a reason.', $txt);
+ self::assertStringStartsWith('[Warning] Add needs a domain pattern and a reason.', $txt);
+
+ $console = new ServerBlock($this->blocklistMock, $this->consoleArgv);
+ $console->setArgument(0, 'add');
+ $console->setArgument(1, 'testme.now');
+ $txt = $this->dumpExecute($console);
+
+ self::assertStringStartsWith('[Warning] Add needs a domain pattern and a reason.', $txt);
}
/**
{
$this->blocklistMock
->shouldReceive('addPattern')
- ->with('testme.now', DomainPatternBlocklist::DEFAULT_REASON)
+ ->with('testme.now', 'I like it!')
->andReturn(0)
->once();
$console = new ServerBlock($this->blocklistMock, $this->consoleArgv);
$console->setArgument(0, 'add');
$console->setArgument(1, 'testme.now');
+ $console->setArgument(2, 'I like it!');
$txt = $this->dumpExecute($console);
self::assertEquals('Couldn\'t save \'testme.now\' as blocked domain pattern' . "\n", $txt);