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
path: root/tests
diff options
context:
space:
mode:
authorChristoph Wurst <ChristophWurst@users.noreply.github.com>2020-02-04 18:40:45 +0300
committerGitHub <noreply@github.com>2020-02-04 18:40:45 +0300
commited2fc76155541ced3412293c4d8a3cae17e96467 (patch)
tree242b6c08f1745f38aed2cc0894f626a36a279233 /tests
parente174683c1bf465ee119505df3b858e17b2225d9e (diff)
parent9647c19d819818285a65e59ea0a70d3b7d9276d6 (diff)
Merge pull request #2562 from nextcloud/feature/opt-out_data_collection
Add user setting to opt-out from data collection
Diffstat (limited to 'tests')
-rw-r--r--tests/Unit/Controller/PageControllerTest.php39
-rw-r--r--tests/Unit/Listener/AddressCollectionListenerTest.php26
2 files changed, 45 insertions, 20 deletions
diff --git a/tests/Unit/Controller/PageControllerTest.php b/tests/Unit/Controller/PageControllerTest.php
index af41e9862..cb3828ff0 100644
--- a/tests/Unit/Controller/PageControllerTest.php
+++ b/tests/Unit/Controller/PageControllerTest.php
@@ -112,17 +112,19 @@ class PageControllerTest extends TestCase {
$account1 = $this->createMock(Account::class);
$account2 = $this->createMock(Account::class);
$folder = $this->createMock(Folder::class);
- $this->preferences->expects($this->once())
+ $this->preferences->expects($this->exactly(2))
->method('getPreference')
- ->with('external-avatars', 'true')
- ->willReturn('true');
+ ->willReturnMap([
+ ['external-avatars', 'true', 'true'],
+ ['collect-data', 'true', 'true'],
+ ]);
$this->accountService->expects($this->once())
->method('findByUserId')
->with($this->userId)
->will($this->returnValue([
- $account1,
- $account2,
- ]));
+ $account1,
+ $account2,
+ ]));
$this->mailManager->expects($this->at(0))
->method('getFolders')
->with($account1)
@@ -134,8 +136,8 @@ class PageControllerTest extends TestCase {
$account1->expects($this->once())
->method('jsonSerialize')
->will($this->returnValue([
- 'accountId' => 1,
- ]));
+ 'accountId' => 1,
+ ]));
$folder->expects($this->once())
->method('jsonSerialize')
->willReturn(['id' => 'inbox']);
@@ -145,17 +147,17 @@ class PageControllerTest extends TestCase {
$account2->expects($this->once())
->method('jsonSerialize')
->will($this->returnValue([
- 'accountId' => 2,
- ]));
+ 'accountId' => 2,
+ ]));
$account2->expects($this->once())
->method('getId')
->will($this->returnValue(2));
$this->aliasesService->expects($this->exactly(2))
->method('findAll')
->will($this->returnValueMap([
- [1, $this->userId, ['a11', 'a12']],
- [2, $this->userId, ['a21', 'a22']],
- ]));
+ [1, $this->userId, ['a11', 'a12']],
+ [2, $this->userId, ['a21', 'a22']],
+ ]));
$accountsJson = [
[
'accountId' => 1,
@@ -211,11 +213,12 @@ class PageControllerTest extends TestCase {
$expected = new TemplateResponse($this->appName, 'index',
[
- 'debug' => true,
- 'external-avatars' => 'true',
- 'app-version' => '1.2.3',
- 'accounts' => base64_encode(json_encode($accountsJson)),
- ]);
+ 'debug' => true,
+ 'external-avatars' => 'true',
+ 'app-version' => '1.2.3',
+ 'accounts' => base64_encode(json_encode($accountsJson)),
+ 'collect-data' => 'true'
+ ]);
$csp = new ContentSecurityPolicy();
$csp->addAllowedFrameDomain('\'self\'');
$expected->setContentSecurityPolicy($csp);
diff --git a/tests/Unit/Listener/AddressCollectionListenerTest.php b/tests/Unit/Listener/AddressCollectionListenerTest.php
index a39720fe0..9d160a144 100644
--- a/tests/Unit/Listener/AddressCollectionListenerTest.php
+++ b/tests/Unit/Listener/AddressCollectionListenerTest.php
@@ -28,35 +28,41 @@ use Horde_Mime_Mail;
use OCA\Mail\Account;
use OCA\Mail\Address;
use OCA\Mail\AddressList;
+use OCA\Mail\Contracts\IUserPreferences;
use OCA\Mail\Events\MessageSentEvent;
use OCA\Mail\Listener\AddressCollectionListener;
use OCA\Mail\Model\IMessage;
use OCA\Mail\Model\NewMessageData;
use OCA\Mail\Model\RepliedMessageData;
use OCA\Mail\Service\AutoCompletion\AddressCollector;
-use OCA\TwoFactorAdmin\Listener\IListener;
use OCP\EventDispatcher\Event;
+use OCP\EventDispatcher\IEventListener;
use OCP\ILogger;
use PHPUnit\Framework\MockObject\MockObject;
class AddressCollectionListenerTest extends TestCase {
+ /** @var IUserPreferences|MockObject */
+ private $preferences;
+
/** @var AddressCollector|MockObject */
private $addressCollector;
/** @var ILogger|MockObject */
private $logger;
- /** @var IListener */
+ /** @var IEventListener */
private $listener;
protected function setUp(): void {
parent::setUp();
+ $this->preferences = $this->createMock(IUserPreferences::class);
$this->addressCollector = $this->createMock(AddressCollector::class);
$this->logger = $this->createMock(ILogger::class);
$this->listener = new AddressCollectionListener(
+ $this->preferences,
$this->addressCollector,
$this->logger
);
@@ -73,6 +79,18 @@ class AddressCollectionListenerTest extends TestCase {
$this->addToAssertionCount(1);
}
+ public function testHandleOptOut() {
+ $event = $this->createMock(MessageSentEvent::class);
+ $this->preferences->expects($this->once())
+ ->method('getPreference')
+ ->with('collect-data', 'true')
+ ->willReturn('false');
+ $this->addressCollector->expects($this->never())
+ ->method('addAddresses');
+
+ $this->listener->handle($event);
+ }
+
public function testHandle() {
/** @var Account|MockObject $account */
$account = $this->createMock(Account::class);
@@ -82,6 +100,10 @@ class AddressCollectionListenerTest extends TestCase {
$repliedMessageData = $this->createMock(RepliedMessageData::class);
/** @var IMessage|MockObject $message */
$message = $this->createMock(IMessage::class);
+ $this->preferences->expects($this->once())
+ ->method('getPreference')
+ ->with('collect-data', 'true')
+ ->willReturn('true');
/** @var Horde_Mime_Mail|MockObject $mail */
$mail = $this->createMock(Horde_Mime_Mail::class);
$event = new MessageSentEvent(