Gergő Tisza has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/338312 )

Change subject: Add tests for Shell/ShellCommand
......................................................................

Add tests for Shell/ShellCommand

Change-Id: I89cc40d3414486707f911516bd1045504dfad83f
---
A tests/phpunit/includes/shell/ShellCommandTest.php
A tests/phpunit/includes/shell/ShellTest.php
2 files changed, 64 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/12/338312/1

diff --git a/tests/phpunit/includes/shell/ShellCommandTest.php 
b/tests/phpunit/includes/shell/ShellCommandTest.php
new file mode 100644
index 0000000..636822a
--- /dev/null
+++ b/tests/phpunit/includes/shell/ShellCommandTest.php
@@ -0,0 +1,37 @@
+<?php
+
+use MediaWiki\ShellCommand;
+
+/**
+ * Class ShellCommandTest
+ */
+class ShellCommandTest extends PHPUnit_Framework_TestCase {
+       /**
+        * @expectedException PHPUnit_Framework_Error_Notice
+        */
+       public function testDestruct() {
+               $command = new ShellCommand( 'true' );
+       }
+
+       /**
+        * @dataProvider provideExecute
+        */
+       public function testExecute( $command, $expectedExitCode, 
$expectedOutput ) {
+               if ( wfIsWindows() ) {
+                       $this->markTestSkipped( 'This test requires a POSIX 
environment.' );
+               }
+
+               $command = new ShellCommand( $command );
+               $command->execute();
+               $this->assertSame( $expectedExitCode, $command->getExitCode() );
+               $this->assertSame( $expectedOutput, $command->getOutput() );
+       }
+
+       public function provideExecute() {
+               return [
+                       'success status' => [ 'true', 0, '' ],
+                       'failure status' => [ 'false', 1, '' ],
+                       'output' => [ [ 'echo', '-n', 'x' ], 0, 'x' ],
+               ];
+       }
+}
diff --git a/tests/phpunit/includes/shell/ShellTest.php 
b/tests/phpunit/includes/shell/ShellTest.php
new file mode 100644
index 0000000..1c7113a
--- /dev/null
+++ b/tests/phpunit/includes/shell/ShellTest.php
@@ -0,0 +1,27 @@
+<?php
+
+use MediaWiki\Shell;
+
+class ShellTest extends \PHPUnit_Framework_TestCase {
+       public function testIsDisabled() {
+               $this->assertInternalType( 'bool', Shell::isDisabled() ); // 
sanity
+       }
+
+       /**
+        * @dataProvider provideEscape
+        */
+       public function testEscape( $args, $expected ) {
+               if ( wfIsWindows() ) {
+                       $this->markTestSkipped( 'This test requires a POSIX 
environment.' );
+               }
+               $this->assertSame( $expected, call_user_func_array( [ 
Shell::class, 'escape' ], $args ) );
+       }
+
+       public function provideEscape() {
+               return [
+                       'simple' => [ [ 'true' ], "'true'" ],
+                       'with args' => [ [ 'convert', '-font', 'font name' ], 
"'convert' '-font' 'font name'" ],
+                       'array' => [ [ [ 'convert', '-font', 'font name' ] ], 
"'convert' '-font' 'font name'" ],
+               ];
+       }
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/338312
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I89cc40d3414486707f911516bd1045504dfad83f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Gergő Tisza <gti...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to