Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/mail.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Wurst <christoph@winzerhof-wurst.at>2016-07-22 18:24:24 +0300
committerChristoph Wurst <christoph@winzerhof-wurst.at>2016-08-03 13:52:41 +0300
commit5e82f2d00878ff83ccbb2858113e497c85f7e25b (patch)
tree38f5fd312ad7d9419b09474deebc13cb4862bb53
parentf2eab9fcb6ab930ed6783cda2bd763fc8860c5a4 (diff)
increase min core version to 9.0 and remove all version hacks
-rw-r--r--appinfo/info.xml2
-rw-r--r--js/app.js2
-rw-r--r--js/templates/message-attachment.html2
-rw-r--r--js/views/messageattachment.js5
-rwxr-xr-xlib/controller/messagescontroller.php84
-rw-r--r--lib/controller/pagecontroller.php3
-rw-r--r--lib/controller/proxycontroller.php55
-rw-r--r--lib/service/htmlpurify/transformurlscheme.php28
-rw-r--r--templates/index.php1
-rw-r--r--tests/bootstrap.php6
-rw-r--r--tests/controller/messagescontrollertest.php5
-rw-r--r--tests/controller/pagecontrollertest.php7
-rw-r--r--tests/controller/proxycontrollertest.php9
-rw-r--r--tests/service/loggertest.php23
14 files changed, 77 insertions, 155 deletions
diff --git a/appinfo/info.xml b/appinfo/info.xml
index 1154fd88f..9b6f0758b 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -10,7 +10,7 @@
<admin>https://github.com/owncloud/mail#readme</admin>
</documentation>
<dependencies>
- <owncloud min-version="8.0" max-version="9.2" />
+ <owncloud min-version="9.0" max-version="9.2" />
<php min-version="5.4" max-version="7.0" />
</dependencies>
<ocsid>169914</ocsid>
diff --git a/js/app.js b/js/app.js
index 33293badb..9eacaa615 100644
--- a/js/app.js
+++ b/js/app.js
@@ -81,8 +81,6 @@ define(function(require) {
Mail = new Mail();
Mail.on('start', function() {
- this.hasDavSupport = $('#has-dav-support').val() === '1';
-
this.view = new AppView();
Cache.init();
diff --git a/js/templates/message-attachment.html b/js/templates/message-attachment.html
index 6171ebae9..2591d478b 100644
--- a/js/templates/message-attachment.html
+++ b/js/templates/message-attachment.html
@@ -5,10 +5,8 @@
<img class="attachment-icon" src="{{mimeUrl}}" />
<span class="attachment-name" title="{{fileName}} ({{humanFileSize size}})">{{fileName}} <span class="attachment-size">({{humanFileSize size}})</span></span>
{{#if isCalendarEvent}}
-{{#if hasDavSupport}}
<button class="button icon-add attachment-import calendar" title="{{ t 'Import into calendar' }}"></button>
{{/if}}
-{{/if}}
<button class="button icon-download attachment-download" title="{{ t 'Download attachment' }}"></button>
<button class="icon-folder attachment-save-to-cloud" title="{{ t 'Save to Files' }}"></button>
<div class="popovermenu bubble attachment-import-popover hidden"></div> \ No newline at end of file
diff --git a/js/views/messageattachment.js b/js/views/messageattachment.js
index 33e12465f..d7ba031a3 100644
--- a/js/views/messageattachment.js
+++ b/js/views/messageattachment.js
@@ -44,11 +44,6 @@ define(function(require) {
'click @ui.saveToCloudButton': '_onSaveToCloud',
'click @ui.importCalendarEventButton': '_onImportCalendarEvent'
},
- templateHelpers: function() {
- return {
- hasDavSupport: require('app').hasDavSupport
- };
- },
initialize: function() {
this.listenTo(Radio.ui, 'document:click', this._closeImportPopover);
},
diff --git a/lib/controller/messagescontroller.php b/lib/controller/messagescontroller.php
index 10d0eb566..8797ffe1b 100755
--- a/lib/controller/messagescontroller.php
+++ b/lib/controller/messagescontroller.php
@@ -28,6 +28,7 @@
namespace OCA\Mail\Controller;
+use OC;
use OCA\Mail\Http\AttachmentDownloadResponse;
use OCA\Mail\Http\HtmlResponse;
use OCA\Mail\Service\AccountService;
@@ -42,6 +43,8 @@ use OCP\AppFramework\Http;
use OCP\AppFramework\Http\ContentSecurityPolicy;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Http\TemplateResponse;
+use OCP\Files\Folder;
+use OCP\Files\IMimeTypeDetector;
use OCP\IL10N;
use OCP\IRequest;
use OCP\Util;
@@ -51,34 +54,25 @@ class MessagesController extends Controller {
/** @var AccountService */
private $accountService;
- /**
- * @var string
- */
+ /** @var string */
private $currentUserId;
- /**
- * @var ContactsIntegration
- */
+ /** @var ContactsIntegration */
private $contactsIntegration;
- /**
- * @var \OCA\Mail\Service\Logger
- */
+ /** @var Logger */
private $logger;
- /**
- * @var \OCP\Files\Folder
- */
+ /** @var Folder */
private $userFolder;
- /**
- * @var IL10N
- */
+ /** @var IMimeTypeDetector */
+ private $mimeTypeDetector;
+
+ /** @var IL10N */
private $l10n;
- /**
- * @var IAccount[]
- */
+ /** @var IAccount[] */
private $accounts = [];
/**
@@ -90,6 +84,7 @@ class MessagesController extends Controller {
* @param ContactsIntegration $contactsIntegration
* @param Logger $logger
* @param IL10N $l10n
+ * @param IMimeTypeDetector $mimeTypeDetector
*/
public function __construct($appName,
IRequest $request,
@@ -98,7 +93,8 @@ class MessagesController extends Controller {
$userFolder,
ContactsIntegration $contactsIntegration,
Logger $logger,
- IL10N $l10n) {
+ IL10N $l10n,
+ IMimeTypeDetector $mimeTypeDetector) {
parent::__construct($appName, $request);
$this->accountService = $accountService;
$this->currentUserId = $UserId;
@@ -106,6 +102,7 @@ class MessagesController extends Controller {
$this->contactsIntegration = $contactsIntegration;
$this->logger = $logger;
$this->l10n = $l10n;
+ $this->mimeTypeDetector = $mimeTypeDetector;
}
/**
@@ -202,7 +199,7 @@ class MessagesController extends Controller {
* @param int $accountId
* @param string $folderId
* @param string $messageId
- * @return \OCA\Mail\Http\HtmlResponse
+ * @return HtmlResponse|TemplateResponse
*/
public function getHtmlBody($accountId, $folderId, $messageId) {
try {
@@ -223,16 +220,13 @@ class MessagesController extends Controller {
$htmlResponse = new HtmlResponse($html);
// Harden the default security policy
- // FIXME: Remove once ownCloud 8.1 is a requirement for the mail app
- if(class_exists('\OCP\AppFramework\Http\ContentSecurityPolicy')) {
- $policy = new ContentSecurityPolicy();
- $policy->allowEvalScript(false);
- $policy->disallowScriptDomain('\'self\'');
- $policy->disallowConnectDomain('\'self\'');
- $policy->disallowFontDomain('\'self\'');
- $policy->disallowMediaDomain('\'self\'');
- $htmlResponse->setContentSecurityPolicy($policy);
- }
+ $policy = new ContentSecurityPolicy();
+ $policy->allowEvalScript(false);
+ $policy->disallowScriptDomain('\'self\'');
+ $policy->disallowConnectDomain('\'self\'');
+ $policy->disallowFontDomain('\'self\'');
+ $policy->disallowMediaDomain('\'self\'');
+ $htmlResponse->setContentSecurityPolicy($policy);
// Enable caching
$htmlResponse->cacheFor(60 * 60);
@@ -359,7 +353,7 @@ class MessagesController extends Controller {
/**
* @param int $accountId
- * @return \OCA\Mail\Service\IAccount
+ * @return IAccount
*/
private function getAccount($accountId) {
if (!array_key_exists($accountId, $this->accounts)) {
@@ -385,15 +379,15 @@ class MessagesController extends Controller {
* @return callable
*/
private function enrichDownloadUrl($accountId, $folderId, $messageId, $attachment) {
- $downloadUrl = \OCP\Util::linkToRoute('mail.messages.downloadAttachment', [
+ $downloadUrl = Util::linkToRoute('mail.messages.downloadAttachment', [
'accountId' => $accountId,
'folderId' => $folderId,
'messageId' => $messageId,
'attachmentId' => $attachment['id'],
]);
- $downloadUrl = \OC::$server->getURLGenerator()->getAbsoluteURL($downloadUrl);
+ $downloadUrl = OC::$server->getURLGenerator()->getAbsoluteURL($downloadUrl);
$attachment['downloadUrl'] = $downloadUrl;
- $attachment['mimeUrl'] = $this->mimeTypeIcon($attachment['mime']);
+ $attachment['mimeUrl'] = $this->mimeTypeDetector->mimeTypeIcon($attachment['mime']);
if ($this->attachmentIsImage($attachment)) {
$attachment['isImage'] = true;
@@ -434,12 +428,12 @@ class MessagesController extends Controller {
* @return string
*/
private function buildHtmlBodyUrl($accountId, $folderId, $messageId) {
- $htmlBodyUrl = \OC::$server->getURLGenerator()->linkToRoute('mail.messages.getHtmlBody', [
+ $htmlBodyUrl = OC::$server->getURLGenerator()->linkToRoute('mail.messages.getHtmlBody', [
'accountId' => $accountId,
'folderId' => $folderId,
'messageId' => $messageId,
]);
- return \OC::$server->getURLGenerator()->getAbsoluteURL($htmlBodyUrl);
+ return OC::$server->getURLGenerator()->getAbsoluteURL($htmlBodyUrl);
}
/**
@@ -494,22 +488,4 @@ class MessagesController extends Controller {
return $json;
}
- /**
- * Get path to the icon of a file type
- *
- * @todo Inject IMimeTypeDetector once core 8.2+ is supported
- *
- * @param string $mimeType the MIME type
- */
- private function mimeTypeIcon($mimeType) {
- $ocVersion = \OC::$server->getConfig()->getSystemValue('version', '0.0.0');
- if (version_compare($ocVersion, '8.2.0', '<')) {
- // Version-hack for 8.1 and lower
- return \OC_Helper::mimetypeIcon($mimeType);
- }
- /* @var IMimeTypeDetector */
- $mimeTypeDetector = \OC::$server->getMimeTypeDetector();
- return $mimeTypeDetector->mimeTypeIcon($mimeType);
- }
-
}
diff --git a/lib/controller/pagecontroller.php b/lib/controller/pagecontroller.php
index d1081d700..0b5067184 100644
--- a/lib/controller/pagecontroller.php
+++ b/lib/controller/pagecontroller.php
@@ -77,14 +77,11 @@ class PageController extends Controller {
* @return TemplateResponse renders the index page
*/
public function index() {
- $coreVersion = $this->config->getSystemValue('version', '0.0.0');
- $hasDavSupport = (int) version_compare($coreVersion, '9.0.0', '>=');
// TODO: remove DEBUG constant check once minimum oc
// core version >= 8.2, see https://github.com/owncloud/core/pull/18510
$response = new TemplateResponse($this->appName, 'index', [
'debug' => (defined('DEBUG') && DEBUG) || $this->config->getSystemValue('debug', false),
'app-version' => $this->config->getAppValue('mail', 'installed_version'),
- 'has-dav-support' => $hasDavSupport,
]);
// set csp rules for ownCloud 8.1
diff --git a/lib/controller/proxycontroller.php b/lib/controller/proxycontroller.php
index 096ea1b58..21c7ca902 100644
--- a/lib/controller/proxycontroller.php
+++ b/lib/controller/proxycontroller.php
@@ -25,46 +25,45 @@
namespace OCA\Mail\Controller;
use Exception;
+use OC;
+use OCA\Mail\Http\ProxyDownloadResponse;
+use OCP\AppFramework\Controller;
+use OCP\AppFramework\Http\TemplateResponse;
+use OCP\Http\Client\IClientService;
use OCP\IRequest;
use OCP\ISession;
use OCP\IURLGenerator;
-use OCP\AppFramework\Controller;
-use OCP\AppFramework\Http\TemplateResponse;
-use OCA\Mail\Http\ProxyDownloadResponse;
class ProxyController extends Controller {
- /**
- * @var \OCP\IURLGenerator
- */
+ /** @var IURLGenerator */
private $urlGenerator;
- /**
- * @var \OCP\ISession
- */
+ /** @var ISession */
private $session;
- /**
- * @var string
- */
+ /** @var IClientService */
+ private $clientService;
+
+ /** @var string */
private $referrer;
- /**
- * @var string
- */
+ /** @var string */
private $hostname;
/**
* @param string $appName
- * @param \OCP\IRequest $request
+ * @param IRequest $request
* @param IURLGenerator $urlGenerator
- * @param \OCP\ISession $session
+ * @param ISession $session
+ * @param IClientService $clientService
*/
public function __construct($appName, IRequest $request,
- IURLGenerator $urlGenerator, ISession $session, $referrer, $hostname) {
+ IURLGenerator $urlGenerator, ISession $session, IClientService $clientService, $referrer, $hostname) {
parent::__construct($appName, $request);
$this->urlGenerator = $urlGenerator;
$this->session = $session;
+ $this->clientService = $clientService;
$this->referrer = $referrer;
$this->hostname = $hostname;
}
@@ -118,25 +117,9 @@ class ProxyController extends Controller {
// close the session to allow parallel downloads
$this->session->close();
- $content = $this->getUrlContent($src);
+ $client = $this->clientService->newClient();
+ $content = $client->get($src);
return new ProxyDownloadResponse($content, $src, 'application/octet-stream');
}
- /**
- * Version hack for \OCP\IHelper
- *
- * @todo remove version-hack once core 8.1+ is supported
- *
- * @param type $src
- * @return type
- */
- private function getUrlContent($src) {
- $ocVersion = \OC::$server->getConfig()->getSystemValue('version', '0.0.0');
- if (version_compare($ocVersion, '8.2.0', '<')) {
- return \OC::$server->getHTTPClientService()->newClient()->get($src);
- } else {
- return \OC::$server->getHelper()->getUrlContent($src);
- }
- }
-
}
diff --git a/lib/service/htmlpurify/transformurlscheme.php b/lib/service/htmlpurify/transformurlscheme.php
index 3fdba09a9..956558b0f 100644
--- a/lib/service/htmlpurify/transformurlscheme.php
+++ b/lib/service/htmlpurify/transformurlscheme.php
@@ -103,13 +103,13 @@ class TransformURLScheme extends HTMLPurifier_URIFilter {
// otherwise it's an element that we send through our proxy
if ($element === 'href') {
$uri = new \HTMLPurifier_URI(
- $this->getServerProtocol(), null, $this->getServerHost(), null,
+ $this->request->getServerProtocol(), null, $this->request->getServerHost(), null,
$this->urlGenerator->linkToRoute('mail.proxy.redirect'),
'src=' . $originalURL, null);
return $uri;
} else {
$uri = new \HTMLPurifier_URI(
- $this->getServerProtocol(), null, $this->getServerHost(), null,
+ $this->request->getServerProtocol(), null, $this->request->getServerHost(), null,
$this->urlGenerator->linkToRoute('mail.proxy.proxy'),
'src=' . $originalURL . '&requesttoken=' . \OC::$server->getSession()->get('requesttoken'),
null);
@@ -117,28 +117,4 @@ class TransformURLScheme extends HTMLPurifier_URIFilter {
}
}
- /**
- * @todo remove version-hack once core 8.1+ is supported
- * @return string
- */
- private function getServerProtocol() {
- $ocVersion = \OC::$server->getConfig()->getSystemValue('version', '0.0.0');
- if (version_compare($ocVersion, '8.2.0', '<')) {
- return Util::getServerProtocol();
- }
- return $this->request->getServerProtocol();
- }
-
- /**
- * @todo remove version-hack once core 8.1+ is supported
- * @return string
- */
- private function getServerHost() {
- $ocVersion = \OC::$server->getConfig()->getSystemValue('version', '0.0.0');
- if (version_compare($ocVersion, '8.2.0', '<')) {
- return Util::getServerHost();
- }
- return $this->request->getServerHost();
- }
-
}
diff --git a/templates/index.php b/templates/index.php
index 4c122ebe1..ac0b2ed73 100644
--- a/templates/index.php
+++ b/templates/index.php
@@ -40,7 +40,6 @@ if ($_['debug']) {
?>
<input type="hidden" id="config-installed-version" value="<?php p($_['app-version']); ?>">
-<input type="hidden" id="has-dav-support" value="<?php p($_['has-dav-support']); ?>">
<div id="user-displayname"
style="display: none"><?php p(\OCP\User::getDisplayName(\OCP\User::getUser())); ?></div>
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
index 880b997d8..243b0c7f9 100644
--- a/tests/bootstrap.php
+++ b/tests/bootstrap.php
@@ -25,10 +25,8 @@ define('PHPUNIT_RUN', 1);
require_once __DIR__.'/../../../lib/base.php';
require_once __DIR__.'/../vendor/autoload.php';
-if (version_compare(implode('.', \OCP\Util::getVersion()), '8.2', '>=')) {
- \OC::$loader->addValidRoot(OC::$SERVERROOT . '/tests');
- \OC_App::loadApp('mail');
-}
+\OC::$loader->addValidRoot(OC::$SERVERROOT . '/tests');
+\OC_App::loadApp('mail');
if(!class_exists('PHPUnit_Framework_TestCase')) {
require_once('PHPUnit/Autoload.php');
diff --git a/tests/controller/messagescontrollertest.php b/tests/controller/messagescontrollertest.php
index 74b433ded..3da817599 100644
--- a/tests/controller/messagescontrollertest.php
+++ b/tests/controller/messagescontrollertest.php
@@ -46,6 +46,7 @@ class MessagesControllerTest extends \Test\TestCase {
private $mailbox;
private $message;
private $attachment;
+ private $mimeTypeDetector;
protected function setUp() {
parent::setUp();
@@ -73,6 +74,7 @@ class MessagesControllerTest extends \Test\TestCase {
$this->l10n = $this->getMockBuilder('\OCP\IL10N')
->disableOriginalConstructor()
->getMock();
+ $this->mimeTypeDetector = $this->getMock('OCP\Files\IMimeTypeDetector');
$this->controller = new MessagesController(
$this->appName,
@@ -82,7 +84,8 @@ class MessagesControllerTest extends \Test\TestCase {
$this->userFolder,
$this->contactIntegration,
$this->logger,
- $this->l10n);
+ $this->l10n,
+ $this->mimeTypeDetector);
$this->account = $this->getMockBuilder('\OCA\Mail\Account')
->disableOriginalConstructor()
diff --git a/tests/controller/pagecontrollertest.php b/tests/controller/pagecontrollertest.php
index 21a2bf7a2..26c8f7b69 100644
--- a/tests/controller/pagecontrollertest.php
+++ b/tests/controller/pagecontrollertest.php
@@ -48,11 +48,7 @@ class PageControllerTest extends TestCase {
}
public function testIndex() {
- $this->config->expects($this->at(0))
- ->method('getSystemValue')
- ->with('version', '0.0.0')
- ->will($this->returnValue('8.2.0'));
- $this->config->expects($this->at(1))
+ $this->config->expects($this->once())
->method('getSystemValue')
->with('debug', false)
->will($this->returnValue(true));
@@ -64,7 +60,6 @@ class PageControllerTest extends TestCase {
$expected = new TemplateResponse($this->appName, 'index', [
'debug' => true,
'app-version' => '1.2.3',
- 'has-dav-support' => 0,
]);
// set csp rules for ownCloud 8.1
if (class_exists('OCP\AppFramework\Http\ContentSecurityPolicy')) {
diff --git a/tests/controller/proxycontrollertest.php b/tests/controller/proxycontrollertest.php
index ee223c1c2..4ccee76f4 100644
--- a/tests/controller/proxycontrollertest.php
+++ b/tests/controller/proxycontrollertest.php
@@ -31,6 +31,8 @@ class ProxyControllerTest extends TestCase {
private $session;
private $controller;
private $hostname;
+ private $clientService;
+ private $client;
protected function setUp() {
parent::setUp();
@@ -45,6 +47,11 @@ class ProxyControllerTest extends TestCase {
$this->session = $this->getMockBuilder('\OCP\ISession')
->disableOriginalConstructor()
->getMock();
+ $this->clientService = $this->getMock('\OCP\Http\Client\IClientService');
+ $this->client = $this->getMock('\OCP\Http\Client\IClient');
+ $this->clientService->expects($this->any())
+ ->method('getClient')
+ ->will($this->returnValue($this->client));
$this->hostname = 'example.com';
}
@@ -78,7 +85,7 @@ class ProxyControllerTest extends TestCase {
->with('mail.page.index')
->will($this->returnValue('mail-route'));
$this->controller = new ProxyController($this->appName, $this->request,
- $this->urlGenerator, $this->session, $url, 'example.com');
+ $this->urlGenerator, $this->session, $this->clientService, $url, 'example.com');
$expected = new TemplateResponse($this->appName, 'redirect',
[
diff --git a/tests/service/loggertest.php b/tests/service/loggertest.php
index 5f66c9d88..bf5ab4c35 100644
--- a/tests/service/loggertest.php
+++ b/tests/service/loggertest.php
@@ -19,11 +19,14 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
+
namespace OCA\Mail\Tests\Service;
+use Exception;
use OCA\Mail\Service\Logger;
+use Test\TestCase;
-class LoggerTest extends \PHPUnit_Framework_TestCase {
+class LoggerTest extends TestCase {
/**
* @dataProvider providesLoggerMethods
@@ -35,19 +38,17 @@ class LoggerTest extends \PHPUnit_Framework_TestCase {
$baseLogger->expects($this->once())
->method($method)
->with(
- $this->equalTo($param),
- $this->equalTo([
+ $this->equalTo($param), $this->equalTo([
'app' => 'mail',
'key' => 'value',
- ]));
+ ]));
- $logger = new \OCA\Mail\Service\Logger('mail', $baseLogger);
+ $logger = new Logger('mail', $baseLogger);
$logger->$method($param, ['key' => 'value']);
- }
+ }
public function providesLoggerMethods() {
-
- $methods = [
+ return [
['alert'],
['warning'],
['emergency'],
@@ -56,12 +57,8 @@ class LoggerTest extends \PHPUnit_Framework_TestCase {
['notice'],
['info'],
['debug'],
+ ['logException', new Exception()],
];
- if (version_compare(implode('.', \OCP\Util::getVersion()), '8.2', '>=')) {
- $methods[]= ['logException', new \Exception()];
- }
-
- return $methods;
}
}