Merge pull request #18893 from owncloud/move-static-data
Move static data from config to resources/config/
This commit is contained in:
commit
7222e5fb4d
|
@ -9,26 +9,23 @@
|
|||
OC.MimeTypeList={
|
||||
aliases: {
|
||||
"application/coreldraw": "image",
|
||||
"application/epub+zip": "text",
|
||||
"application/font-sfnt": "image",
|
||||
"application/font-woff": "image",
|
||||
"application/illustrator": "image",
|
||||
"application/javascript": "text/code",
|
||||
"application/font-sfnt": "font",
|
||||
"application/font-woff": "font",
|
||||
"application/illustrator": "image/vector",
|
||||
"application/json": "text/code",
|
||||
"application/msaccess": "file",
|
||||
"application/msaccess": "database",
|
||||
"application/msexcel": "x-office/spreadsheet",
|
||||
"application/mspowerpoint": "x-office/presentation",
|
||||
"application/msword": "x-office/document",
|
||||
"application/octet-stream": "file",
|
||||
"application/postscript": "image",
|
||||
"application/rss+xml": "text/code",
|
||||
"application/postscript": "image/vector",
|
||||
"application/vnd.android.package-archive": "package/x-generic",
|
||||
"application/vnd.ms-excel": "x-office/spreadsheet",
|
||||
"application/vnd.ms-excel.addin.macroEnabled.12": "x-office/spreadsheet",
|
||||
"application/vnd.ms-excel.sheet.binary.macroEnabled.12": "x-office/spreadsheet",
|
||||
"application/vnd.ms-excel.sheet.macroEnabled.12": "x-office/spreadsheet",
|
||||
"application/vnd.ms-excel.template.macroEnabled.12": "x-office/spreadsheet",
|
||||
"application/vnd.ms-fontobject": "image",
|
||||
"application/vnd.ms-fontobject": "font",
|
||||
"application/vnd.ms-powerpoint": "x-office/presentation",
|
||||
"application/vnd.ms-powerpoint.addin.macroEnabled.12": "x-office/presentation",
|
||||
"application/vnd.ms-powerpoint.presentation.macroEnabled.12": "x-office/presentation",
|
||||
|
@ -52,56 +49,48 @@ OC.MimeTypeList={
|
|||
"application/vnd.openxmlformats-officedocument.wordprocessingml.document": "x-office/document",
|
||||
"application/vnd.openxmlformats-officedocument.wordprocessingml.template": "x-office/document",
|
||||
"application/x-7z-compressed": "package/x-generic",
|
||||
"application/x-cbr": "text",
|
||||
"application/x-compressed": "package/x-generic",
|
||||
"application/x-dcraw": "image",
|
||||
"application/x-deb": "package/x-generic",
|
||||
"application/x-font": "image",
|
||||
"application/x-font": "font",
|
||||
"application/x-gimp": "image",
|
||||
"application/x-gzip": "package/x-generic",
|
||||
"application/x-perl": "text/code",
|
||||
"application/x-photoshop": "image",
|
||||
"application/x-php": "text/code",
|
||||
"application/x-rar-compressed": "package/x-generic",
|
||||
"application/x-shockwave-flash": "application",
|
||||
"application/x-tar": "package/x-generic",
|
||||
"application/x-tex": "text",
|
||||
"application/xml": "text/html",
|
||||
"application/yaml": "text/code",
|
||||
"application/zip": "package/x-generic",
|
||||
"database": "file",
|
||||
"httpd/unix-directory": "dir",
|
||||
"image/svg+xml": "image",
|
||||
"image/vector": "image",
|
||||
"image/svg+xml": "image/vector",
|
||||
"text/css": "text/code",
|
||||
"text/csv": "x-office/spreadsheet",
|
||||
"text/html": "text/code",
|
||||
"text/x-c": "text/code",
|
||||
"text/x-h": "text/code",
|
||||
"text/x-python": "text/code",
|
||||
"text/x-shellscript": "text/code",
|
||||
"web": "text/code"
|
||||
"text/x-shellscript": "text/code"
|
||||
},
|
||||
files: [
|
||||
"video",
|
||||
"folder-drag-accept",
|
||||
"folder-public",
|
||||
"package-x-generic",
|
||||
"folder-external",
|
||||
"text-vcard",
|
||||
"application",
|
||||
"text-code",
|
||||
"x-office-spreadsheet",
|
||||
"application-pdf",
|
||||
"folder",
|
||||
"x-office-document",
|
||||
"text-calendar",
|
||||
"x-office-presentation",
|
||||
"application",
|
||||
"audio",
|
||||
"file",
|
||||
"text",
|
||||
"folder-drag-accept",
|
||||
"folder-external",
|
||||
"folder-public",
|
||||
"folder-shared",
|
||||
"folder-starred",
|
||||
"folder",
|
||||
"image",
|
||||
"audio"
|
||||
"package-x-generic",
|
||||
"text-calendar",
|
||||
"text-code",
|
||||
"text-vcard",
|
||||
"text",
|
||||
"video",
|
||||
"x-office-document",
|
||||
"x-office-presentation",
|
||||
"x-office-spreadsheet"
|
||||
],
|
||||
themes: []
|
||||
};
|
||||
|
|
|
@ -49,15 +49,22 @@ class Detection implements IMimeTypeDetector {
|
|||
private $urlGenerator;
|
||||
|
||||
/** @var string */
|
||||
private $configDir;
|
||||
private $customConfigDir;
|
||||
|
||||
/** @var string */
|
||||
private $defaultConfigDir;
|
||||
|
||||
/**
|
||||
* @param IURLGenerator $urlGenerator
|
||||
* @param string $configDir
|
||||
* @param string $customConfigDir
|
||||
* @param string $defaultConfigDir
|
||||
*/
|
||||
public function __construct(IURLGenerator $urlGenerator, $configDir) {
|
||||
public function __construct(IURLGenerator $urlGenerator,
|
||||
$customConfigDir,
|
||||
$defaultConfigDir) {
|
||||
$this->urlGenerator = $urlGenerator;
|
||||
$this->configDir = $configDir;
|
||||
$this->customConfigDir = $customConfigDir;
|
||||
$this->defaultConfigDir = $defaultConfigDir;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -71,7 +78,9 @@ class Detection implements IMimeTypeDetector {
|
|||
* @param string $mimetype
|
||||
* @param string|null $secureMimeType
|
||||
*/
|
||||
public function registerType($extension, $mimetype, $secureMimeType = null) {
|
||||
public function registerType($extension,
|
||||
$mimetype,
|
||||
$secureMimeType = null) {
|
||||
$this->mimetypes[$extension] = array($mimetype, $secureMimeType);
|
||||
$this->secureMimeTypes[$mimetype] = $secureMimeType ?: $mimetype;
|
||||
}
|
||||
|
@ -102,10 +111,10 @@ class Detection implements IMimeTypeDetector {
|
|||
return;
|
||||
}
|
||||
|
||||
$this->mimeTypeAlias = json_decode(file_get_contents($this->configDir . '/mimetypealiases.dist.json'), true);
|
||||
$this->mimeTypeAlias = json_decode(file_get_contents($this->defaultConfigDir . '/mimetypealiases.dist.json'), true);
|
||||
|
||||
if (file_exists($this->configDir . '/mimetypealiases.json')) {
|
||||
$custom = json_decode(file_get_contents($this->configDir . '/mimetypealiases.json'), true);
|
||||
if (file_exists($this->customConfigDir . '/mimetypealiases.json')) {
|
||||
$custom = json_decode(file_get_contents($this->customConfigDir . '/mimetypealiases.json'), true);
|
||||
$this->mimeTypeAlias = array_merge($this->mimeTypeAlias, $custom);
|
||||
}
|
||||
}
|
||||
|
@ -126,15 +135,15 @@ class Detection implements IMimeTypeDetector {
|
|||
return;
|
||||
}
|
||||
|
||||
$mimetypemapping = json_decode(file_get_contents($this->configDir . '/mimetypemapping.dist.json'), true);
|
||||
$mimetypeMapping = json_decode(file_get_contents($this->defaultConfigDir . '/mimetypemapping.dist.json'), true);
|
||||
|
||||
//Check if need to load custom mappings
|
||||
if (file_exists($this->configDir . '/mimetypemapping.json')) {
|
||||
$custom = json_decode(file_get_contents($this->configDir . '/mimetypemapping.json'), true);
|
||||
$mimetypemapping = array_merge($mimetypemapping, $custom);
|
||||
if (file_exists($this->customConfigDir . '/mimetypemapping.json')) {
|
||||
$custom = json_decode(file_get_contents($this->customConfigDir . '/mimetypemapping.json'), true);
|
||||
$mimetypeMapping = array_merge($mimetypeMapping, $custom);
|
||||
}
|
||||
|
||||
$this->registerTypeArray($mimetypemapping);
|
||||
$this->registerTypeArray($mimetypeMapping);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -62,7 +62,7 @@ class Client implements IClient {
|
|||
$dataDir = $this->config->getSystemValue('datadirectory');
|
||||
$this->client->setDefaultOption('verify', $dataDir.'/'.$this->certificateManager->getCertificateBundle());
|
||||
} else {
|
||||
$this->client->setDefaultOption('verify', \OC::$SERVERROOT . '/config/ca-bundle.crt');
|
||||
$this->client->setDefaultOption('verify', \OC::$SERVERROOT . '/resources/config/ca-bundle.crt');
|
||||
}
|
||||
|
||||
$this->client->setDefaultOption('headers/User-Agent', 'ownCloud Server Crawler');
|
||||
|
|
|
@ -110,7 +110,7 @@ class CertificateManager implements ICertificateManager {
|
|||
}
|
||||
|
||||
// Append the default certificates
|
||||
$defaultCertificates = file_get_contents(\OC::$SERVERROOT . '/config/ca-bundle.crt');
|
||||
$defaultCertificates = file_get_contents(\OC::$SERVERROOT . '/resources/config/ca-bundle.crt');
|
||||
fwrite($fh_certs, $defaultCertificates);
|
||||
fclose($fh_certs);
|
||||
}
|
||||
|
|
|
@ -470,7 +470,9 @@ class Server extends SimpleContainer implements IServerContainer {
|
|||
$this->registerService('MimeTypeDetector', function(Server $c) {
|
||||
return new \OC\Files\Type\Detection(
|
||||
$c->getURLGenerator(),
|
||||
\OC::$configDir);
|
||||
\OC::$SERVERROOT . '/config/',
|
||||
\OC::$SERVERROOT . '/resources/config/'
|
||||
);
|
||||
});
|
||||
$this->registerService('MimeTypeLoader', function(Server $c) {
|
||||
return new \OC\Files\Type\Loader(
|
||||
|
|
|
@ -279,13 +279,6 @@ class Updater extends BasicEmitter {
|
|||
throw new \Exception($e->getMessage());
|
||||
}
|
||||
|
||||
// FIXME: Some users do not upload the new ca-bundle.crt, let's catch this
|
||||
// in the update. For a newer release we shall use an integrity check after
|
||||
// the update.
|
||||
if(!file_exists(\OC::$configDir .'/ca-bundle.crt')) {
|
||||
throw new \Exception('Please upload the ca-bundle.crt file into the \'config\' directory.');
|
||||
}
|
||||
|
||||
// create empty file in data dir, so we can later find
|
||||
// out that this is indeed an ownCloud data directory
|
||||
// (in case it didn't exist before)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"_comment" : "Array of mimetype aliases.",
|
||||
"_comment2": "Any changes you make here will be overwritten on an update of ownCloud.",
|
||||
"_comment3": "Put any custom aliases in a new file mimetypealiases.json in this directory",
|
||||
"_comment3": "Put any custom mappings in a new file mimetypealiases.json in the config/ folder of ownCloud",
|
||||
|
||||
"_comment4": "After any change to mimetypealiases.json run:",
|
||||
"_comment5": "./occ maintenance:mimetypesjs",
|
|
@ -4,7 +4,7 @@
|
|||
"_comment3": "and the second (if present] is a secure alternative",
|
||||
|
||||
"_comment4": "Any changes you make here will be overwritten on an update of ownCloud",
|
||||
"_comment5": "Put any custom mappings in a new file mimetypemapping.json in this directory",
|
||||
"_comment5": "Put any custom mappings in a new file mimetypemapping.json in the config/ folder of ownCloud",
|
||||
|
||||
|
||||
"3gp": ["video/3gpp"],
|
|
@ -19,58 +19,64 @@
|
|||
*
|
||||
*/
|
||||
|
||||
namespace OC\Files\Type;
|
||||
namespace Test\Files\Type;
|
||||
|
||||
use \OC\Files\Type\Detection;
|
||||
|
||||
class DetectionTest extends \Test\TestCase {
|
||||
/** @var Detection */
|
||||
private $detection;
|
||||
|
||||
public function setUp() {
|
||||
parent::setUp();
|
||||
$this->detection = new Detection(
|
||||
\OC::$server->getURLGenerator(),
|
||||
\OC::$SERVERROOT . '/config/',
|
||||
\OC::$SERVERROOT . '/resources/config/'
|
||||
);
|
||||
}
|
||||
|
||||
public function testDetect() {
|
||||
$detection = new Detection(\OC::$server->getURLGenerator(), \OC::$configDir);
|
||||
$dir = \OC::$SERVERROOT.'/tests/data';
|
||||
|
||||
$result = $detection->detect($dir."/");
|
||||
$result = $this->detection->detect($dir."/");
|
||||
$expected = 'httpd/unix-directory';
|
||||
$this->assertEquals($expected, $result);
|
||||
|
||||
$result = $detection->detect($dir."/data.tar.gz");
|
||||
$result = $this->detection->detect($dir."/data.tar.gz");
|
||||
$expected = 'application/x-gzip';
|
||||
$this->assertEquals($expected, $result);
|
||||
|
||||
$result = $detection->detect($dir."/data.zip");
|
||||
$result = $this->detection->detect($dir."/data.zip");
|
||||
$expected = 'application/zip';
|
||||
$this->assertEquals($expected, $result);
|
||||
|
||||
$result = $detection->detect($dir."/testimagelarge.svg");
|
||||
$result = $this->detection->detect($dir."/testimagelarge.svg");
|
||||
$expected = 'image/svg+xml';
|
||||
$this->assertEquals($expected, $result);
|
||||
|
||||
$result = $detection->detect($dir."/testimage.png");
|
||||
$result = $this->detection->detect($dir."/testimage.png");
|
||||
$expected = 'image/png';
|
||||
$this->assertEquals($expected, $result);
|
||||
}
|
||||
|
||||
public function testGetSecureMimeType() {
|
||||
$detection = new Detection(\OC::$server->getURLGenerator(), \OC::$configDir);
|
||||
|
||||
$result = $detection->getSecureMimeType('image/svg+xml');
|
||||
$result = $this->detection->getSecureMimeType('image/svg+xml');
|
||||
$expected = 'text/plain';
|
||||
$this->assertEquals($expected, $result);
|
||||
|
||||
$result = $detection->getSecureMimeType('image/png');
|
||||
$result = $this->detection->getSecureMimeType('image/png');
|
||||
$expected = 'image/png';
|
||||
$this->assertEquals($expected, $result);
|
||||
}
|
||||
|
||||
public function testDetectPath() {
|
||||
$detection = new Detection(\OC::$server->getURLGenerator(), \OC::$configDir);
|
||||
|
||||
$this->assertEquals('text/plain', $detection->detectPath('foo.txt'));
|
||||
$this->assertEquals('image/png', $detection->detectPath('foo.png'));
|
||||
$this->assertEquals('image/png', $detection->detectPath('foo.bar.png'));
|
||||
$this->assertEquals('application/octet-stream', $detection->detectPath('.png'));
|
||||
$this->assertEquals('application/octet-stream', $detection->detectPath('foo'));
|
||||
$this->assertEquals('application/octet-stream', $detection->detectPath(''));
|
||||
$this->assertEquals('text/plain', $this->detection->detectPath('foo.txt'));
|
||||
$this->assertEquals('image/png', $this->detection->detectPath('foo.png'));
|
||||
$this->assertEquals('image/png', $this->detection->detectPath('foo.bar.png'));
|
||||
$this->assertEquals('application/octet-stream', $this->detection->detectPath('.png'));
|
||||
$this->assertEquals('application/octet-stream', $this->detection->detectPath('foo'));
|
||||
$this->assertEquals('application/octet-stream', $this->detection->detectPath(''));
|
||||
}
|
||||
|
||||
public function testDetectString() {
|
||||
|
@ -78,16 +84,14 @@ class DetectionTest extends \Test\TestCase {
|
|||
$this->markTestSkipped('[Windows] Strings have mimetype application/octet-stream on Windows');
|
||||
}
|
||||
|
||||
$detection = new Detection(\OC::$server->getURLGenerator(), \OC::$configDir);
|
||||
|
||||
$result = $detection->detectString("/data/data.tar.gz");
|
||||
$result = $this->detection->detectString("/data/data.tar.gz");
|
||||
$expected = 'text/plain; charset=us-ascii';
|
||||
$this->assertEquals($expected, $result);
|
||||
}
|
||||
|
||||
public function testMimeTypeIcon() {
|
||||
if (!class_exists('org\\bovigo\\vfs\\vfsStream')) {
|
||||
$this->markTestSkipped('Pacakge vfsStream not installed');
|
||||
$this->markTestSkipped('Package vfsStream not installed');
|
||||
}
|
||||
$confDir = \org\bovigo\vfs\vfsStream::setup();
|
||||
$mimetypealiases_dist = \org\bovigo\vfs\vfsStream::newFile('mimetypealiases.dist.json')->at($confDir);
|
||||
|
@ -111,7 +115,7 @@ class DetectionTest extends \Test\TestCase {
|
|||
->with($this->equalTo('core'), $this->equalTo('filetypes/folder.png'))
|
||||
->willReturn('folder.svg');
|
||||
|
||||
$detection = new Detection($urlGenerator, $confDir->url());
|
||||
$detection = new Detection($urlGenerator, $confDir->url(), $confDir->url());
|
||||
$mimeType = $detection->mimeTypeIcon('dir');
|
||||
$this->assertEquals('folder.svg', $mimeType);
|
||||
|
||||
|
@ -130,7 +134,7 @@ class DetectionTest extends \Test\TestCase {
|
|||
->with($this->equalTo('core'), $this->equalTo('filetypes/folder-shared.png'))
|
||||
->willReturn('folder-shared.svg');
|
||||
|
||||
$detection = new Detection($urlGenerator, $confDir->url());
|
||||
$detection = new Detection($urlGenerator, $confDir->url(), $confDir->url());
|
||||
$mimeType = $detection->mimeTypeIcon('dir-shared');
|
||||
$this->assertEquals('folder-shared.svg', $mimeType);
|
||||
|
||||
|
@ -150,7 +154,7 @@ class DetectionTest extends \Test\TestCase {
|
|||
->with($this->equalTo('core'), $this->equalTo('filetypes/folder-external.png'))
|
||||
->willReturn('folder-external.svg');
|
||||
|
||||
$detection = new Detection($urlGenerator, $confDir->url());
|
||||
$detection = new Detection($urlGenerator, $confDir->url(), $confDir->url());
|
||||
$mimeType = $detection->mimeTypeIcon('dir-external');
|
||||
$this->assertEquals('folder-external.svg', $mimeType);
|
||||
|
||||
|
@ -170,7 +174,7 @@ class DetectionTest extends \Test\TestCase {
|
|||
->with($this->equalTo('core'), $this->equalTo('filetypes/my-type.png'))
|
||||
->willReturn('my-type.svg');
|
||||
|
||||
$detection = new Detection($urlGenerator, $confDir->url());
|
||||
$detection = new Detection($urlGenerator, $confDir->url(), $confDir->url());
|
||||
$mimeType = $detection->mimeTypeIcon('my-type');
|
||||
$this->assertEquals('my-type.svg', $mimeType);
|
||||
|
||||
|
@ -200,7 +204,7 @@ class DetectionTest extends \Test\TestCase {
|
|||
}
|
||||
));
|
||||
|
||||
$detection = new Detection($urlGenerator, $confDir->url());
|
||||
$detection = new Detection($urlGenerator, $confDir->url(), $confDir->url());
|
||||
$mimeType = $detection->mimeTypeIcon('my-type');
|
||||
$this->assertEquals('my.svg', $mimeType);
|
||||
|
||||
|
@ -231,7 +235,7 @@ class DetectionTest extends \Test\TestCase {
|
|||
}
|
||||
));
|
||||
|
||||
$detection = new Detection($urlGenerator, $confDir->url());
|
||||
$detection = new Detection($urlGenerator, $confDir->url(), $confDir->url());
|
||||
$mimeType = $detection->mimeTypeIcon('foo-bar');
|
||||
$this->assertEquals('file.svg', $mimeType);
|
||||
|
||||
|
@ -250,7 +254,7 @@ class DetectionTest extends \Test\TestCase {
|
|||
->with($this->equalTo('core'), $this->equalTo('filetypes/foo-bar.png'))
|
||||
->willReturn('foo-bar.svg');
|
||||
|
||||
$detection = new Detection($urlGenerator, $confDir->url());
|
||||
$detection = new Detection($urlGenerator, $confDir->url(), $confDir->url());
|
||||
$mimeType = $detection->mimeTypeIcon('foo-bar');
|
||||
$this->assertEquals('foo-bar.svg', $mimeType);
|
||||
$mimeType = $detection->mimeTypeIcon('foo-bar');
|
||||
|
@ -276,7 +280,7 @@ class DetectionTest extends \Test\TestCase {
|
|||
->with($this->equalTo('core'), $this->equalTo('filetypes/foobar-baz.png'))
|
||||
->willReturn('foobar-baz.svg');
|
||||
|
||||
$detection = new Detection($urlGenerator, $confDir->url());
|
||||
$detection = new Detection($urlGenerator, $confDir->url(), $confDir->url());
|
||||
$mimeType = $detection->mimeTypeIcon('foo');
|
||||
$this->assertEquals('foobar-baz.svg', $mimeType);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue