|
|
|
|
@ -13,10 +13,30 @@ class Test_Util_CheckServer extends PHPUnit_Framework_TestCase { |
|
|
|
|
|
|
|
|
|
private $datadir; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param array $systemOptions |
|
|
|
|
* @return \OCP\IConfig | PHPUnit_Framework_MockObject_MockObject |
|
|
|
|
*/ |
|
|
|
|
protected function getConfig($systemOptions) { |
|
|
|
|
$systemOptions['datadirectory'] = $this->datadir; |
|
|
|
|
$systemOptions['appstoreenabled'] = false; //it's likely that there is no app folder we can write in |
|
|
|
|
$config = $this->getMockBuilder('\OCP\IConfig') |
|
|
|
|
->disableOriginalConstructor() |
|
|
|
|
->getMock(); |
|
|
|
|
|
|
|
|
|
$config->expects($this->any()) |
|
|
|
|
->method('getSystemValue') |
|
|
|
|
->will($this->returnCallback(function ($key, $default) use ($systemOptions) { |
|
|
|
|
return isset($systemOptions[$key]) ? $systemOptions[$key] : $default; |
|
|
|
|
})); |
|
|
|
|
return $config; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function setUp() { |
|
|
|
|
$this->datadir = \OC_Config::getValue('datadirectory', \OC::$SERVERROOT . '/data'); |
|
|
|
|
$this->datadir = \OC_Helper::tmpFolder(); |
|
|
|
|
|
|
|
|
|
file_put_contents($this->datadir . '/.ocdata', ''); |
|
|
|
|
\OC::$server->getSession()->set('checkServer_succeeded', false); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function tearDown() { |
|
|
|
|
@ -28,7 +48,9 @@ class Test_Util_CheckServer extends PHPUnit_Framework_TestCase { |
|
|
|
|
* Test that checkServer() returns no errors in the regular case. |
|
|
|
|
*/ |
|
|
|
|
public function testCheckServer() { |
|
|
|
|
$result = \OC_Util::checkServer(); |
|
|
|
|
$result = \OC_Util::checkServer($this->getConfig(array( |
|
|
|
|
'installed' => true |
|
|
|
|
))); |
|
|
|
|
$this->assertEmpty($result); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -41,19 +63,12 @@ class Test_Util_CheckServer extends PHPUnit_Framework_TestCase { |
|
|
|
|
// simulate old version that didn't have it |
|
|
|
|
unlink($this->datadir . '/.ocdata'); |
|
|
|
|
|
|
|
|
|
$session = \OC::$server->getSession(); |
|
|
|
|
$oldInstalled = \OC_Config::getValue('installed', false); |
|
|
|
|
|
|
|
|
|
// simulate that the server isn't setup yet |
|
|
|
|
\OC_Config::setValue('installed', false); |
|
|
|
|
|
|
|
|
|
// even though ".ocdata" is missing, the error isn't |
|
|
|
|
// triggered to allow setup to run |
|
|
|
|
$result = \OC_Util::checkServer(); |
|
|
|
|
$result = \OC_Util::checkServer($this->getConfig(array( |
|
|
|
|
'installed' => false |
|
|
|
|
))); |
|
|
|
|
$this->assertEmpty($result); |
|
|
|
|
|
|
|
|
|
// restore config |
|
|
|
|
\OC_Config::setValue('installed', $oldInstalled); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
@ -67,20 +82,20 @@ class Test_Util_CheckServer extends PHPUnit_Framework_TestCase { |
|
|
|
|
|
|
|
|
|
$session = \OC::$server->getSession(); |
|
|
|
|
$oldCurrentVersion = $session->get('OC_Version'); |
|
|
|
|
$oldInstallVersion = \OC_Config::getValue('version', '0.0.0'); |
|
|
|
|
|
|
|
|
|
// upgrade condition to simulate needUpgrade() === true |
|
|
|
|
$session->set('OC_Version', array(6, 0, 0, 2)); |
|
|
|
|
\OC_Config::setValue('version', '6.0.0.1'); |
|
|
|
|
|
|
|
|
|
// even though ".ocdata" is missing, the error isn't |
|
|
|
|
// triggered to allow for upgrade |
|
|
|
|
$result = \OC_Util::checkServer(); |
|
|
|
|
$result = \OC_Util::checkServer($this->getConfig(array( |
|
|
|
|
'installed' => true, |
|
|
|
|
'version' => '6.0.0.1' |
|
|
|
|
))); |
|
|
|
|
$this->assertEmpty($result); |
|
|
|
|
|
|
|
|
|
// restore versions |
|
|
|
|
$session->set('OC_Version', $oldCurrentVersion); |
|
|
|
|
\OC_Config::setValue('version', $oldInstallVersion); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
@ -93,7 +108,7 @@ class Test_Util_CheckServer extends PHPUnit_Framework_TestCase { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Test that checkDataDirectoryValidity and checkServer |
|
|
|
|
* Test that checkDataDirectoryValidity and checkServer |
|
|
|
|
* both return an error when ".ocdata" is missing. |
|
|
|
|
*/ |
|
|
|
|
public function testCheckDataDirValidityWhenFileMissing() { |
|
|
|
|
@ -101,8 +116,46 @@ class Test_Util_CheckServer extends PHPUnit_Framework_TestCase { |
|
|
|
|
$result = \OC_Util::checkDataDirectoryValidity($this->datadir); |
|
|
|
|
$this->assertEquals(1, count($result)); |
|
|
|
|
|
|
|
|
|
$result = \OC_Util::checkServer(); |
|
|
|
|
$this->assertEquals(1, count($result)); |
|
|
|
|
$result = \OC_Util::checkServer($this->getConfig(array( |
|
|
|
|
'installed' => true, |
|
|
|
|
'version' => implode('.', OC_Util::getVersion()) |
|
|
|
|
))); |
|
|
|
|
$this->assertCount(1, $result); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Tests that no error is given when the datadir is writable |
|
|
|
|
*/ |
|
|
|
|
public function testDataDirWritable() { |
|
|
|
|
$result = \OC_Util::checkServer($this->getConfig(array( |
|
|
|
|
'installed' => true, |
|
|
|
|
'version' => implode('.', OC_Util::getVersion()) |
|
|
|
|
))); |
|
|
|
|
$this->assertEmpty($result); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Tests an error is given when the datadir is not writable |
|
|
|
|
*/ |
|
|
|
|
public function testDataDirNotWritable() { |
|
|
|
|
chmod($this->datadir, 0300); |
|
|
|
|
$result = \OC_Util::checkServer($this->getConfig(array( |
|
|
|
|
'installed' => true, |
|
|
|
|
'version' => implode('.', OC_Util::getVersion()) |
|
|
|
|
))); |
|
|
|
|
$this->assertCount(1, $result); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Tests no error is given when the datadir is not writable during setup |
|
|
|
|
*/ |
|
|
|
|
public function testDataDirNotWritableSetup() { |
|
|
|
|
chmod($this->datadir, 0300); |
|
|
|
|
$result = \OC_Util::checkServer($this->getConfig(array( |
|
|
|
|
'installed' => false, |
|
|
|
|
'version' => implode('.', OC_Util::getVersion()) |
|
|
|
|
))); |
|
|
|
|
chmod($this->datadir, 0700); //needed for cleanup |
|
|
|
|
$this->assertEmpty($result); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|