]> git.mxchange.org Git - friendica.git/blobdiff - tests/src/Console/ServerBlockConsoleTest.php
Merge pull request #11250 from nupplaphil/bug/redis_pw
[friendica.git] / tests / src / Console / ServerBlockConsoleTest.php
index 7002ca0fabd82f0f326ab9d352052fd272662081..202714fb1f020c4dbfb0b9df3b91ca4dd628e462 100644 (file)
@@ -1,13 +1,30 @@
 <?php
+/**
+ * @copyright Copyright (C) 2010-2022, the Friendica project
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
 
 namespace Friendica\Test\src\Console;
 
 use Friendica\Console\ServerBlock;
+use Friendica\Core\Config\Capability\IManageConfigValues;
+use Mockery;
 
-/**
- * @runTestsInSeparateProcesses
- * @preserveGlobalState disabled
- */
 class ServerBlockConsoleTest extends ConsoleTest
 {
        protected $defaultBlockList = [
@@ -20,12 +37,16 @@ class ServerBlockConsoleTest extends ConsoleTest
                        'reason' => 'Illegal content',
                ]
        ];
+       /**
+        * @var IManageConfigValues|Mockery\LegacyMockInterface|Mockery\MockInterface
+        */
+       private $configMock;
 
-       protected function setUp()
+       protected function setUp() : void
        {
                parent::setUp();
 
-               $this->mockApp($this->root);
+               $this->configMock = Mockery::mock(IManageConfigValues::class);
        }
 
        /**
@@ -35,11 +56,11 @@ class ServerBlockConsoleTest extends ConsoleTest
        {
                $this->configMock
                        ->shouldReceive('get')
-                       ->with('system', 'blocklist')
+                       ->with('system', 'blocklist', [])
                        ->andReturn($this->defaultBlockList)
                        ->once();
 
-               $console = new ServerBlock($this->consoleArgv);
+               $console = new ServerBlock($this->configMock, $this->consoleArgv);
                $txt = $this->dumpExecute($console);
 
                $output = <<<CONS
@@ -53,7 +74,7 @@ class ServerBlockConsoleTest extends ConsoleTest
 
 CONS;
 
-               $this->assertEquals($output, $txt);
+               self::assertEquals($output, $txt);
        }
 
        /**
@@ -63,7 +84,7 @@ CONS;
        {
                $this->configMock
                        ->shouldReceive('get')
-                       ->with('system', 'blocklist')
+                       ->with('system', 'blocklist', [])
                        ->andReturn($this->defaultBlockList)
                        ->once();
 
@@ -79,13 +100,13 @@ CONS;
                        ->andReturn(true)
                        ->once();
 
-               $console = new ServerBlock($this->consoleArgv);
+               $console = new ServerBlock($this->configMock, $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);
+               self::assertEquals('The domain \'testme.now\' is now blocked. (Reason: \'I like it!\')' . PHP_EOL, $txt);
        }
 
        /**
@@ -95,7 +116,7 @@ CONS;
        {
                $this->configMock
                        ->shouldReceive('get')
-                       ->with('system', 'blocklist')
+                       ->with('system', 'blocklist', [])
                        ->andReturn($this->defaultBlockList)
                        ->once();
 
@@ -111,12 +132,12 @@ CONS;
                        ->andReturn(true)
                        ->once();
 
-               $console = new ServerBlock($this->consoleArgv);
+               $console = new ServerBlock($this->configMock, $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: \'' . ServerBlock::DEFAULT_REASON . '\')' . PHP_EOL, $txt);
+               self::assertEquals('The domain \'testme.now\' is now blocked. (Reason: \'' . ServerBlock::DEFAULT_REASON . '\')' . PHP_EOL, $txt);
        }
 
        /**
@@ -126,7 +147,7 @@ CONS;
        {
                $this->configMock
                        ->shouldReceive('get')
-                       ->with('system', 'blocklist')
+                       ->with('system', 'blocklist', [])
                        ->andReturn($this->defaultBlockList)
                        ->once();
 
@@ -147,13 +168,13 @@ CONS;
                        ->andReturn(true)
                        ->once();
 
-               $console = new ServerBlock($this->consoleArgv);
+               $console = new ServerBlock($this->configMock, $this->consoleArgv);
                $console->setArgument(0, 'add');
                $console->setArgument(1, 'pod.ordoevangelistarum.com');
                $console->setArgument(2, 'Other reason');
                $txt = $this->dumpExecute($console);
 
-               $this->assertEquals('The domain \'pod.ordoevangelistarum.com\' is now updated. (Reason: \'Other reason\')' . PHP_EOL, $txt);
+               self::assertEquals('The domain \'pod.ordoevangelistarum.com\' is now updated. (Reason: \'Other reason\')' . PHP_EOL, $txt);
        }
 
        /**
@@ -163,7 +184,7 @@ CONS;
        {
                $this->configMock
                        ->shouldReceive('get')
-                       ->with('system', 'blocklist')
+                       ->with('system', 'blocklist', [])
                        ->andReturn($this->defaultBlockList)
                        ->once();
 
@@ -180,12 +201,12 @@ CONS;
                        ->andReturn(true)
                        ->once();
 
-               $console = new ServerBlock($this->consoleArgv);
+               $console = new ServerBlock($this->configMock, $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);
+               self::assertEquals('The domain \'pod.ordoevangelistarum.com\' is not more blocked' . PHP_EOL, $txt);
        }
 
        /**
@@ -193,11 +214,11 @@ CONS;
         */
        public function testBlockedServersWrongCommand()
        {
-               $console = new ServerBlock($this->consoleArgv);
+               $console = new ServerBlock($this->configMock, $this->consoleArgv);
                $console->setArgument(0, 'wrongcommand');
                $txt = $this->dumpExecute($console);
 
-               $this->assertStringStartsWith('[Warning] Unknown command', $txt);
+               self::assertStringStartsWith('[Warning] Unknown command', $txt);
        }
 
        /**
@@ -207,16 +228,16 @@ CONS;
        {
                $this->configMock
                        ->shouldReceive('get')
-                       ->with('system', 'blocklist')
+                       ->with('system', 'blocklist', [])
                        ->andReturn($this->defaultBlockList)
                        ->once();
 
-               $console = new ServerBlock($this->consoleArgv);
+               $console = new ServerBlock($this->configMock, $this->consoleArgv);
                $console->setArgument(0, 'remove');
                $console->setArgument(1, 'not.exiting');
                $txt = $this->dumpExecute($console);
 
-               $this->assertEquals('The domain \'not.exiting\' is not blocked.' . PHP_EOL, $txt);
+               self::assertEquals('The domain \'not.exiting\' is not blocked.' . PHP_EOL, $txt);
        }
 
        /**
@@ -224,11 +245,11 @@ CONS;
         */
        public function testAddBlockedServerMissingArgument()
        {
-               $console = new ServerBlock($this->consoleArgv);
+               $console = new ServerBlock($this->configMock, $this->consoleArgv);
                $console->setArgument(0, 'add');
                $txt = $this->dumpExecute($console);
 
-               $this->assertStringStartsWith('[Warning] Add needs a domain and optional a reason.', $txt);
+               self::assertStringStartsWith('[Warning] Add needs a domain and optional a reason.', $txt);
        }
 
        /**
@@ -238,7 +259,7 @@ CONS;
        {
                $this->configMock
                        ->shouldReceive('get')
-                       ->with('system', 'blocklist')
+                       ->with('system', 'blocklist', [])
                        ->andReturn($this->defaultBlockList)
                        ->once();
 
@@ -254,12 +275,12 @@ CONS;
                        ->andReturn(false)
                        ->once();
 
-               $console = new ServerBlock($this->consoleArgv);
+               $console = new ServerBlock($this->configMock, $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);
+               self::assertEquals('Couldn\'t save \'testme.now\' as blocked server' . PHP_EOL, $txt);
        }
 
        /**
@@ -269,7 +290,7 @@ CONS;
        {
                $this->configMock
                        ->shouldReceive('get')
-                       ->with('system', 'blocklist')
+                       ->with('system', 'blocklist', [])
                        ->andReturn($this->defaultBlockList)
                        ->once();
 
@@ -286,12 +307,12 @@ CONS;
                        ->andReturn(false)
                        ->once();
 
-               $console = new ServerBlock($this->consoleArgv);
+               $console = new ServerBlock($this->configMock, $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);
+               self::assertEquals('Couldn\'t remove \'pod.ordoevangelistarum.com\' from blocked servers' . PHP_EOL, $txt);
        }
 
        /**
@@ -299,11 +320,11 @@ CONS;
         */
        public function testRemoveBlockedServerMissingArgument()
        {
-               $console = new ServerBlock($this->consoleArgv);
+               $console = new ServerBlock($this->configMock, $this->consoleArgv);
                $console->setArgument(0, 'remove');
                $txt = $this->dumpExecute($console);
 
-               $this->assertStringStartsWith('[Warning] Remove needs a second parameter.', $txt);
+               self::assertStringStartsWith('[Warning] Remove needs a second parameter.', $txt);
        }
 
        /**
@@ -311,21 +332,25 @@ CONS;
         */
        public function testBlockedServersHelp()
        {
-               $console = new ServerBlock($this->consoleArgv);
+               $console = new ServerBlock($this->configMock, $this->consoleArgv);
                $console->setOption('help', true);
                $txt = $this->dumpExecute($console);
 
                $help = <<<HELP
 console serverblock - Manage blocked server domain patterns
 Usage
-       bin/console serverblock [-h|--help|-?] [-v]
-       bin/console serverblock add <pattern> <reason> [-h|--help|-?] [-v]
-       bin/console serverblock remove <pattern> [-h|--help|-?] [-v]
+    bin/console serverblock [-h|--help|-?] [-v]
+    bin/console serverblock add <pattern> <reason> [-h|--help|-?] [-v]
+    bin/console serverblock remove <pattern> [-h|--help|-?] [-v]
+    bin/console serverblock export <filename>
+    bin/console serverblock import <filename>
 
 Description
-       With this tool, you can list the current blocked server domain patterns
+    With this tool, you can list the current blocked server domain patterns
     or you can add / remove a blocked server domain pattern from the list.
-    
+    Using the export and import options you can share your server blocklist
+    with other node admins by CSV files.
+
     Patterns are case-insensitive shell wildcard comprising the following special characters:
     - * : Any number of characters
     - ? : Any single character
@@ -337,6 +362,6 @@ Options
 
 HELP;
 
-               $this->assertEquals($help, $txt);
+               self::assertEquals($help, $txt);
        }
 }