$this->assertEquals(\OC::$SERVERROOT . '/apps/files', $this->manager->getAppPath('files'));
}
+ public function testGetAppPathSymlink() {
+ $fakeAppDirname = sha1(uniqid('test', true));
+ $fakeAppPath = sys_get_temp_dir() . '/' . $fakeAppDirname;
+ $fakeAppLink = \OC::$SERVERROOT . '/' . $fakeAppDirname;
+
+ mkdir($fakeAppPath);
+ if (symlink($fakeAppPath, $fakeAppLink) === false) {
+ $this->markTestSkipped('Failed to create symlink');
+ }
+
+ // Use the symlink as the app path
+ \OC::$APPSROOTS[] = [
+ 'path' => $fakeAppLink,
+ 'url' => \OC::$WEBROOT . '/' . $fakeAppDirname,
+ 'writable' => false,
+ ];
+
+ $fakeTestAppPath = $fakeAppPath . '/' . 'test-test-app';
+ mkdir($fakeTestAppPath);
+
+ $generatedAppPath = $this->manager->getAppPath('test-test-app');
+
+ rmdir($fakeTestAppPath);
+ unlink($fakeAppLink);
+ rmdir($fakeAppPath);
+
+ $this->assertEquals($fakeAppLink . '/test-test-app', $generatedAppPath);
+ }
+
public function testGetAppPathFail() {
$this->expectException(AppPathNotFoundException::class);
$this->manager->getAppPath('testnotexisting');