diff options
author | Christoph Wurst <ChristophWurst@users.noreply.github.com> | 2020-02-04 18:40:45 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-04 18:40:45 +0300 |
commit | ed2fc76155541ced3412293c4d8a3cae17e96467 (patch) | |
tree | 242b6c08f1745f38aed2cc0894f626a36a279233 /tests | |
parent | e174683c1bf465ee119505df3b858e17b2225d9e (diff) | |
parent | 9647c19d819818285a65e59ea0a70d3b7d9276d6 (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.php | 39 | ||||
-rw-r--r-- | tests/Unit/Listener/AddressCollectionListenerTest.php | 26 |
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( |