]> git.mxchange.org Git - friendica.git/commitdiff
Add tests & default reason
authorPhilipp Holzer <admin@philipp.info>
Sat, 20 Apr 2019 10:53:17 +0000 (12:53 +0200)
committerPhilipp Holzer <admin@philipp.info>
Sat, 20 Apr 2019 10:53:17 +0000 (12:53 +0200)
src/Core/Console/BlockedServers.php
tests/src/Core/Console/BlockedServerConsoleTest.php [deleted file]
tests/src/Core/Console/BlockedServersConsoleTest.php [new file with mode: 0644]

index 29c0887067ae2b398a57a9d0bf619ba7a5791f00..493701392db32700be3fc1b57390e16abf459bfc 100644 (file)
@@ -16,6 +16,8 @@ use Friendica\Core\Config\Configuration;
  */
 class BlockedServers extends Console
 {
+       const DEFAULT_REASON = 'blocked';
+
        protected $helpOptions = ['h', 'help', '?'];
 
        protected function getHelp()
@@ -97,7 +99,7 @@ HELP;
                        }
                }
 
-               $reason = (count($this->args) === 3) ? $this->getArgument(2) : 'blocked';
+               $reason = (count($this->args) === 3) ? $this->getArgument(2) : self::DEFAULT_REASON;
 
                $blocklist[] = [
                        'domain' => $domain,
diff --git a/tests/src/Core/Console/BlockedServerConsoleTest.php b/tests/src/Core/Console/BlockedServerConsoleTest.php
deleted file mode 100644 (file)
index 3156c5a..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-namespace Friendica\Test\src\Core\Console;
-
-use Friendica\Core\Console\BlockedServers;
-
-/**
- *
- */
-class BlockedServerConsoleTest extends ConsoleTest
-{
-       protected $defaultBlockList =[
-               [
-                       'domain' => 'social.nobodyhasthe.biz',
-                       'reason' => 'Illegal content',
-               ],
-               [
-                       'domain' => 'pod.ordoevangelistarum.com',
-                       'reason' => 'Illegal content',
-               ]
-       ];
-
-       protected function setUp()
-       {
-               parent::setUp();
-
-               $this->mockApp($this->root);
-       }
-
-       /**
-        * Test to list the default blocked servers
-        */
-       public function testBlockedServerList()
-       {
-               $this->configMock
-                       ->shouldReceive('get')
-                       ->with('system', 'blocklist')
-                       ->andReturn($this->defaultBlockList)
-                       ->once();
-
-               $console = new BlockedServers($this->consoleArgv);
-               $txt = $this->dumpExecute($console);
-
-               $output = <<<CONS
-+----------------------------+-----------------+
-| Domain                     | Reason          |
-+----------------------------+-----------------+
-| social.nobodyhasthe.biz    | Illegal content |
-| pod.ordoevangelistarum.com | Illegal content |
-+----------------------------+-----------------+
-
-
-CONS;
-
-               $this->assertEquals($output, $txt);
-       }
-
-       public function testAddBlockedServer()
-       {
-               $this->configMock
-                       ->shouldReceive('get')
-                       ->with('system', 'blocklist')
-                       ->andReturn($this->defaultBlockList)
-                       ->once();
-
-               $newBlockList = $this->defaultBlockList;
-               $newBlockList[] = [
-                       'domain' => 'testme.now',
-                       'reason' => 'I like it!',
-               ];
-
-               $this->configMock
-                       ->shouldReceive('set')
-                       ->with('system', 'blocklist', $newBlockList)
-                       ->andReturn(true)
-                       ->once();
-
-               $console = new BlockedServers($this->consoleArgv);
-               $console->setArgument(0, 'add');
-               $console->setArgument(1, 'testme.now');
-               $console->setArgument(2, 'I like it!');
-               $txt = $this->dumpExecute($console);
-
-               $this->assertEquals('The domain \'testme.now\' is now blocked. (Reason: \'I like it!\')' . PHP_EOL, $txt);
-       }
-}
diff --git a/tests/src/Core/Console/BlockedServersConsoleTest.php b/tests/src/Core/Console/BlockedServersConsoleTest.php
new file mode 100644 (file)
index 0000000..1f1d8af
--- /dev/null
@@ -0,0 +1,281 @@
+<?php
+
+namespace Friendica\Test\src\Core\Console;
+
+use Friendica\Core\Console\BlockedServers;
+
+/**
+ * @runTestsInSeparateProcesses
+ * @preserveGlobalState disabled
+ */
+class BlockedServersConsoleTest extends ConsoleTest
+{
+       protected $defaultBlockList = [
+               [
+                       'domain' => 'social.nobodyhasthe.biz',
+                       'reason' => 'Illegal content',
+               ],
+               [
+                       'domain' => 'pod.ordoevangelistarum.com',
+                       'reason' => 'Illegal content',
+               ]
+       ];
+
+       protected function setUp()
+       {
+               parent::setUp();
+
+               $this->mockApp($this->root);
+       }
+
+       /**
+        * Test to list the default blocked servers
+        */
+       public function testBlockedServersList()
+       {
+               $this->configMock
+                       ->shouldReceive('get')
+                       ->with('system', 'blocklist')
+                       ->andReturn($this->defaultBlockList)
+                       ->once();
+
+               $console = new BlockedServers($this->consoleArgv);
+               $txt = $this->dumpExecute($console);
+
+               $output = <<<CONS
++----------------------------+-----------------+
+| Domain                     | Reason          |
++----------------------------+-----------------+
+| social.nobodyhasthe.biz    | Illegal content |
+| pod.ordoevangelistarum.com | Illegal content |
++----------------------------+-----------------+
+
+
+CONS;
+
+               $this->assertEquals($output, $txt);
+       }
+
+       /**
+        * Test blockedservers add command
+        */
+       public function testAddBlockedServer()
+       {
+               $this->configMock
+                       ->shouldReceive('get')
+                       ->with('system', 'blocklist')
+                       ->andReturn($this->defaultBlockList)
+                       ->once();
+
+               $newBlockList = $this->defaultBlockList;
+               $newBlockList[] = [
+                       'domain' => 'testme.now',
+                       'reason' => 'I like it!',
+               ];
+
+               $this->configMock
+                       ->shouldReceive('set')
+                       ->with('system', 'blocklist', $newBlockList)
+                       ->andReturn(true)
+                       ->once();
+
+               $console = new BlockedServers($this->consoleArgv);
+               $console->setArgument(0, 'add');
+               $console->setArgument(1, 'testme.now');
+               $console->setArgument(2, 'I like it!');
+               $txt = $this->dumpExecute($console);
+
+               $this->assertEquals('The domain \'testme.now\' is now blocked. (Reason: \'I like it!\')' . PHP_EOL, $txt);
+       }
+
+       /**
+        * Test blockedservers add command with the default reason
+        */
+       public function testAddBlockedServerWithDefaultReason()
+       {
+               $this->configMock
+                       ->shouldReceive('get')
+                       ->with('system', 'blocklist')
+                       ->andReturn($this->defaultBlockList)
+                       ->once();
+
+               $newBlockList = $this->defaultBlockList;
+               $newBlockList[] = [
+                       'domain' => 'testme.now',
+                       'reason' => BlockedServers::DEFAULT_REASON,
+               ];
+
+               $this->configMock
+                       ->shouldReceive('set')
+                       ->with('system', 'blocklist', $newBlockList)
+                       ->andReturn(true)
+                       ->once();
+
+               $console = new BlockedServers($this->consoleArgv);
+               $console->setArgument(0, 'add');
+               $console->setArgument(1, 'testme.now');
+               $txt = $this->dumpExecute($console);
+
+               $this->assertEquals('The domain \'testme.now\' is now blocked. (Reason: \'' . BlockedServers::DEFAULT_REASON .'\')' . PHP_EOL, $txt);
+       }
+
+       /**
+        * Test blockedservers remove command
+        */
+       public function testRemoveBlockedServer()
+       {
+               $this->configMock
+                       ->shouldReceive('get')
+                       ->with('system', 'blocklist')
+                       ->andReturn($this->defaultBlockList)
+                       ->once();
+
+               $newBlockList = [
+                       [
+                               'domain' => 'social.nobodyhasthe.biz',
+                               'reason' => 'Illegal content',
+                       ],
+               ];
+
+               $this->configMock
+                       ->shouldReceive('set')
+                       ->with('system', 'blocklist', $newBlockList)
+                       ->andReturn(true)
+                       ->once();
+
+               $console = new BlockedServers($this->consoleArgv);
+               $console->setArgument(0, 'remove');
+               $console->setArgument(1, 'pod.ordoevangelistarum.com');
+               $txt = $this->dumpExecute($console);
+
+               $this->assertEquals('The domain \'pod.ordoevangelistarum.com\' is not more blocked' . PHP_EOL, $txt);
+       }
+
+       /**
+        * Test blockedservers with a wrong command
+        */
+       public function testBlockedServersWrongCommand()
+       {
+               $console = new BlockedServers($this->consoleArgv);
+               $console->setArgument(0, 'wrongcommand');
+               $txt = $this->dumpExecute($console);
+
+               $this->assertStringStartsWith('[Warning] Unknown command', $txt);
+       }
+
+       /**
+        * Test blockedservers add command without argument
+        */
+       public function testAddBlockedServerMissingArgument()
+       {
+               $console = new BlockedServers($this->consoleArgv);
+               $console->setArgument(0, 'add');
+               $txt = $this->dumpExecute($console);
+
+               $this->assertStringStartsWith('[Warning] Add needs a domain and optional a reason.', $txt);
+       }
+
+       /**
+        * Test blockedservers add command without save
+        */
+       public function testAddBlockedServerNoSave()
+       {
+               $this->configMock
+                       ->shouldReceive('get')
+                       ->with('system', 'blocklist')
+                       ->andReturn($this->defaultBlockList)
+                       ->once();
+
+               $newBlockList = $this->defaultBlockList;
+               $newBlockList[] = [
+                       'domain' => 'testme.now',
+                       'reason' => BlockedServers::DEFAULT_REASON,
+               ];
+
+               $this->configMock
+                       ->shouldReceive('set')
+                       ->with('system', 'blocklist', $newBlockList)
+                       ->andReturn(false)
+                       ->once();
+
+               $console = new BlockedServers($this->consoleArgv);
+               $console->setArgument(0, 'add');
+               $console->setArgument(1, 'testme.now');
+               $txt = $this->dumpExecute($console);
+
+               $this->assertEquals('Couldn\'t save \'testme.now\' as blocked server' . PHP_EOL, $txt);
+       }
+
+       /**
+        * Test blockedservers remove command without save
+        */
+       public function testRemoveBlockedServerNoSave()
+       {
+               $this->configMock
+                       ->shouldReceive('get')
+                       ->with('system', 'blocklist')
+                       ->andReturn($this->defaultBlockList)
+                       ->once();
+
+               $newBlockList = [
+                       [
+                               'domain' => 'social.nobodyhasthe.biz',
+                               'reason' => 'Illegal content',
+                       ],
+               ];
+
+               $this->configMock
+                       ->shouldReceive('set')
+                       ->with('system', 'blocklist', $newBlockList)
+                       ->andReturn(false)
+                       ->once();
+
+               $console = new BlockedServers($this->consoleArgv);
+               $console->setArgument(0, 'remove');
+               $console->setArgument(1, 'pod.ordoevangelistarum.com');
+               $txt = $this->dumpExecute($console);
+
+               $this->assertEquals('Couldn\'t remove \'pod.ordoevangelistarum.com\' from blocked servers' . PHP_EOL, $txt);
+       }
+
+       /**
+        * Test blockedservers remove command without argument
+        */
+       public function testRemoveBlockedServerMissingArgument()
+       {
+               $console = new BlockedServers($this->consoleArgv);
+               $console->setArgument(0, 'remove');
+               $txt = $this->dumpExecute($console);
+
+               $this->assertStringStartsWith('[Warning] Remove needs a second parameter.', $txt);
+       }
+
+       /**
+        * Test the blockedservers help
+        */
+       public function testBlockedServersHelp()
+       {
+               $console = new BlockedServers($this->consoleArgv);
+               $console->setOption('help', true);
+               $txt = $this->dumpExecute($console);
+
+               $help = <<<HELP
+console blockedservers - Manage blocked servers
+Usage
+       bin/console blockedservers [-h|--help|-?] [-v]
+       bin/console blockedservers add <server> <description> [-h|--help|-?] [-v]
+       bin/console blockedservers remove <server> [-h|--help|-?] [-v]
+
+Description
+       With this tool, you can list the current blocked servers
+    or you can add / remove a blocked server from the list
+
+Options
+    -h|--help|-? Show help information
+    -v           Show more debug information.
+
+HELP;
+
+               $this->assertEquals($help, $txt);
+       }
+}