aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/lib/app/dependencyanalyzer.php43
1 files changed, 41 insertions, 2 deletions
diff --git a/tests/lib/app/dependencyanalyzer.php b/tests/lib/app/dependencyanalyzer.php
index 7d06842e8ad..a21b53264bc 100644
--- a/tests/lib/app/dependencyanalyzer.php
+++ b/tests/lib/app/dependencyanalyzer.php
@@ -35,6 +35,15 @@ class DependencyAnalyzer extends \PHPUnit_Framework_TestCase {
$this->platformMock->expects($this->any())
->method('getDatabase')
->will( $this->returnValue('mysql'));
+ $this->platformMock->expects($this->any())
+ ->method('getOS')
+ ->will( $this->returnValue('Linux'));
+ $this->platformMock->expects($this->any())
+ ->method('isCommandKnown')
+ ->will( $this->returnCallback(function($command) {
+ return ($command === 'grep');
+ }));
+
$this->l10nMock = $this->getMockBuilder('\OCP\IL10N')
->disableOriginalConstructor()
->getMock();
@@ -64,7 +73,6 @@ class DependencyAnalyzer extends \PHPUnit_Framework_TestCase {
$missing = $analyser->analyze();
$this->assertTrue(is_array($missing));
- $this->assertEquals(count($expectedMissing), count($missing));
$this->assertEquals($expectedMissing, $missing);
}
@@ -83,10 +91,41 @@ class DependencyAnalyzer extends \PHPUnit_Framework_TestCase {
$missing = $analyser->analyze();
$this->assertTrue(is_array($missing));
- $this->assertEquals(count($expectedMissing), count($missing));
$this->assertEquals($expectedMissing, $missing);
}
+ /**
+ * @dataProvider providesCommands
+ */
+ public function testCommand($expectedMissing, $commands) {
+ $app = array(
+ 'dependencies' => array(
+ )
+ );
+ if (!is_null($commands)) {
+ $app['dependencies']['command'] = $commands;
+ }
+ $analyser = new \OC\App\DependencyAnalyzer($app, $this->platformMock, $this->l10nMock);
+ $missing = $analyser->analyze();
+
+ $this->assertTrue(is_array($missing));
+ $this->assertEquals($expectedMissing, $missing);
+ }
+
+ function providesCommands() {
+ return array(
+ array(array(), null),
+ // grep is known on linux
+ array(array(), array(array('@attributes' => array('os' => 'Linux'), '@value' => 'grep'))),
+ // grepp is not known on linux
+ array(array('The command line tool grepp could not be found'), array(array('@attributes' => array('os' => 'Linux'), '@value' => 'grepp'))),
+ // we don't care about tools on Windows - we are on Linux
+ array(array(), array(array('@attributes' => array('os' => 'Windows'), '@value' => 'grepp'))),
+ // grep is known on all systems
+ array(array(), array('grep')),
+ );
+ }
+
function providesDatabases() {
return array(
// non BC - in case on databases are defined -> all are supported