Prevent php message: "Trying to get property of non-object at /xxx/lib/private/ocsclient.php#282"

This commit is contained in:
Thomas Müller 2015-04-13 09:43:45 +02:00
parent 75adee1ebd
commit 906b6b7337
2 changed files with 48 additions and 0 deletions

View File

@ -262,6 +262,9 @@ class OCSClient {
}
$tmp = $data->data->content;
if (is_null($tmp)) {
return null;
}
$app = [];
$app['id'] = (int)$tmp->id;

View File

@ -773,6 +773,51 @@ class OCSClientTest extends \Test\TestCase {
];
$this->assertSame($expected, $this->ocsClient->getApplication('MyId'));
}
public function testGetApplicationEmptyXml() {
$this->config
->expects($this->at(0))
->method('getSystemValue')
->with('appstoreenabled', true)
->will($this->returnValue(true));
$this->config
->expects($this->at(1))
->method('getSystemValue')
->with('appstoreurl', 'https://api.owncloud.com/v1')
->will($this->returnValue('https://api.owncloud.com/v1'));
$response = $this->getMock('\OCP\Http\Client\IResponse');
$response
->expects($this->once())
->method('getBody')
->will($this->returnValue('<?xml version="1.0"?>
<ocs>
<meta>
<status>ok</status>
<statuscode>100</statuscode>
<message></message>
</meta>
</ocs>
'));
$client = $this->getMock('\OCP\Http\Client\IClient');
$client
->expects($this->once())
->method('get')
->with(
'https://api.owncloud.com/v1/content/data/MyId',
[
'timeout' => 5,
]
)
->will($this->returnValue($response));
$this->clientService
->expects($this->once())
->method('newClient')
->will($this->returnValue($client));
$this->assertSame(null, $this->ocsClient->getApplication('MyId'));
}
public function testGetApplicationDownloadDisabledAppStore() {
$this->config