|
|
|
|
@ -9,10 +9,12 @@ use DateTime;
|
|
|
|
|
use OC\Mail\Message;
|
|
|
|
|
use OCA\ShareByMail\Settings\SettingsManager;
|
|
|
|
|
use OCA\ShareByMail\ShareByMailProvider;
|
|
|
|
|
use OCP\Activity\IManager as IActivityManager;
|
|
|
|
|
use OCP\Defaults;
|
|
|
|
|
use OCP\EventDispatcher\IEventDispatcher;
|
|
|
|
|
use OCP\Files\File;
|
|
|
|
|
use OCP\Files\IRootFolder;
|
|
|
|
|
use OCP\Files\Node;
|
|
|
|
|
use OCP\IConfig;
|
|
|
|
|
use OCP\IDBConnection;
|
|
|
|
|
use OCP\IL10N;
|
|
|
|
|
@ -25,9 +27,11 @@ use OCP\Mail\IMessage;
|
|
|
|
|
use OCP\Security\Events\GenerateSecurePasswordEvent;
|
|
|
|
|
use OCP\Security\IHasher;
|
|
|
|
|
use OCP\Security\ISecureRandom;
|
|
|
|
|
use OCP\Security\PasswordContext;
|
|
|
|
|
use OCP\Share\IAttributes;
|
|
|
|
|
use OCP\Share\IManager;
|
|
|
|
|
use OCP\Share\IShare;
|
|
|
|
|
use PHPUnit\Framework\MockObject\MockObject;
|
|
|
|
|
use Psr\Log\LoggerInterface;
|
|
|
|
|
use Test\TestCase;
|
|
|
|
|
|
|
|
|
|
@ -38,65 +42,36 @@ use Test\TestCase;
|
|
|
|
|
* @group DB
|
|
|
|
|
*/
|
|
|
|
|
class ShareByMailProviderTest extends TestCase {
|
|
|
|
|
/** @var IConfig */
|
|
|
|
|
private $config;
|
|
|
|
|
|
|
|
|
|
/** @var IDBConnection */
|
|
|
|
|
private $connection;
|
|
|
|
|
|
|
|
|
|
/** @var IManager | \PHPUnit\Framework\MockObject\MockObject */
|
|
|
|
|
private $shareManager;
|
|
|
|
|
|
|
|
|
|
/** @var IL10N | \PHPUnit\Framework\MockObject\MockObject */
|
|
|
|
|
private $l;
|
|
|
|
|
|
|
|
|
|
/** @var LoggerInterface | \PHPUnit\Framework\MockObject\MockObject */
|
|
|
|
|
private $logger;
|
|
|
|
|
|
|
|
|
|
/** @var IRootFolder | \PHPUnit\Framework\MockObject\MockObject */
|
|
|
|
|
private $rootFolder;
|
|
|
|
|
|
|
|
|
|
/** @var IUserManager | \PHPUnit\Framework\MockObject\MockObject */
|
|
|
|
|
private $userManager;
|
|
|
|
|
|
|
|
|
|
/** @var ISecureRandom | \PHPUnit\Framework\MockObject\MockObject */
|
|
|
|
|
private $secureRandom;
|
|
|
|
|
|
|
|
|
|
/** @var IMailer | \PHPUnit\Framework\MockObject\MockObject */
|
|
|
|
|
private $mailer;
|
|
|
|
|
|
|
|
|
|
/** @var IURLGenerator | \PHPUnit\Framework\MockObject\MockObject */
|
|
|
|
|
private $urlGenerator;
|
|
|
|
|
|
|
|
|
|
/** @var IShare | \PHPUnit\Framework\MockObject\MockObject */
|
|
|
|
|
private $share;
|
|
|
|
|
|
|
|
|
|
/** @var \OCP\Activity\IManager | \PHPUnit\Framework\MockObject\MockObject */
|
|
|
|
|
private $activityManager;
|
|
|
|
|
|
|
|
|
|
/** @var SettingsManager | \PHPUnit\Framework\MockObject\MockObject */
|
|
|
|
|
private $settingsManager;
|
|
|
|
|
|
|
|
|
|
/** @var Defaults|\PHPUnit\Framework\MockObject\MockObject */
|
|
|
|
|
private $defaults;
|
|
|
|
|
|
|
|
|
|
/** @var IHasher | \PHPUnit\Framework\MockObject\MockObject */
|
|
|
|
|
private $hasher;
|
|
|
|
|
|
|
|
|
|
/** @var IEventDispatcher */
|
|
|
|
|
private $eventDispatcher;
|
|
|
|
|
|
|
|
|
|
private IDBConnection $connection;
|
|
|
|
|
|
|
|
|
|
private IL10N&MockObject $l;
|
|
|
|
|
private IShare&MockObject $share;
|
|
|
|
|
private IConfig&MockObject $config;
|
|
|
|
|
private IMailer&MockObject $mailer;
|
|
|
|
|
private IHasher&MockObject $hasher;
|
|
|
|
|
private Defaults&MockObject $defaults;
|
|
|
|
|
private IManager&MockObject $shareManager;
|
|
|
|
|
private LoggerInterface&MockObject $logger;
|
|
|
|
|
private IRootFolder&MockObject $rootFolder;
|
|
|
|
|
private IUserManager&MockObject $userManager;
|
|
|
|
|
private ISecureRandom&MockObject $secureRandom;
|
|
|
|
|
private IURLGenerator&MockObject $urlGenerator;
|
|
|
|
|
private SettingsManager&MockObject $settingsManager;
|
|
|
|
|
private IActivityManager&MockObject $activityManager;
|
|
|
|
|
private IEventDispatcher&MockObject $eventDispatcher;
|
|
|
|
|
|
|
|
|
|
protected function setUp(): void {
|
|
|
|
|
parent::setUp();
|
|
|
|
|
|
|
|
|
|
$this->config = $this->getMockBuilder(IConfig::class)->getMock();
|
|
|
|
|
$this->connection = \OC::$server->getDatabaseConnection();
|
|
|
|
|
$this->connection = \OCP\Server::get(IDBConnection::class);
|
|
|
|
|
|
|
|
|
|
$this->l = $this->getMockBuilder(IL10N::class)->getMock();
|
|
|
|
|
$this->l->method('t')
|
|
|
|
|
->willReturnCallback(function ($text, $parameters = []) {
|
|
|
|
|
return vsprintf($text, $parameters);
|
|
|
|
|
});
|
|
|
|
|
$this->config = $this->getMockBuilder(IConfig::class)->getMock();
|
|
|
|
|
$this->logger = $this->getMockBuilder(LoggerInterface::class)->getMock();
|
|
|
|
|
$this->rootFolder = $this->getMockBuilder('OCP\Files\IRootFolder')->getMock();
|
|
|
|
|
$this->userManager = $this->getMockBuilder(IUserManager::class)->getMock();
|
|
|
|
|
@ -165,7 +140,10 @@ class ShareByMailProviderTest extends TestCase {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected function tearDown(): void {
|
|
|
|
|
$this->connection->getQueryBuilder()->delete('share')->execute();
|
|
|
|
|
$this->connection
|
|
|
|
|
->getQueryBuilder()
|
|
|
|
|
->delete('share')
|
|
|
|
|
->executeStatement();
|
|
|
|
|
|
|
|
|
|
parent::tearDown();
|
|
|
|
|
}
|
|
|
|
|
@ -305,7 +283,11 @@ class ShareByMailProviderTest extends TestCase {
|
|
|
|
|
// Assume the mail address is valid.
|
|
|
|
|
$this->mailer->expects($this->any())->method('validateMailAddress')->willReturn(true);
|
|
|
|
|
|
|
|
|
|
$instance = $this->getInstance(['getSharedWith', 'createMailShare', 'getRawShare', 'createShareObject', 'createShareActivity', 'autoGeneratePassword', 'createPasswordSendActivity', 'sendEmail', 'sendPassword', 'sendPasswordToOwner']);
|
|
|
|
|
$instance = $this->getInstance([
|
|
|
|
|
'getSharedWith', 'createMailShare', 'getRawShare', 'createShareObject',
|
|
|
|
|
'createShareActivity', 'autoGeneratePassword', 'createPasswordSendActivity',
|
|
|
|
|
'sendEmail', 'sendPassword', 'sendPasswordToOwner',
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
$instance->expects($this->once())->method('getSharedWith')->willReturn([]);
|
|
|
|
|
$instance->expects($this->once())->method('createMailShare')->with($share)->willReturn(42);
|
|
|
|
|
@ -361,7 +343,7 @@ class ShareByMailProviderTest extends TestCase {
|
|
|
|
|
->willReturn('autogeneratedPassword');
|
|
|
|
|
$this->eventDispatcher->expects($this->once())
|
|
|
|
|
->method('dispatchTyped')
|
|
|
|
|
->with(new GenerateSecurePasswordEvent());
|
|
|
|
|
->with(new GenerateSecurePasswordEvent(PasswordContext::SHARING));
|
|
|
|
|
|
|
|
|
|
// Assume the mail address is valid.
|
|
|
|
|
$this->mailer->expects($this->any())->method('validateMailAddress')->willReturn(true);
|
|
|
|
|
@ -822,7 +804,7 @@ class ShareByMailProviderTest extends TestCase {
|
|
|
|
|
* @param bool sendMail
|
|
|
|
|
*/
|
|
|
|
|
public function testUpdateSendPassword($plainTextPassword, string $originalPassword, string $newPassword, $originalSendPasswordByTalk, $newSendPasswordByTalk, bool $sendMail) {
|
|
|
|
|
$node = $this->getMockBuilder(File::class)->getMock();
|
|
|
|
|
$node = $this->createMock(File::class);
|
|
|
|
|
$node->expects($this->any())->method('getName')->willReturn('filename');
|
|
|
|
|
|
|
|
|
|
$this->settingsManager->method('sendPasswordByMail')->willReturn(true);
|
|
|
|
|
@ -927,7 +909,7 @@ class ShareByMailProviderTest extends TestCase {
|
|
|
|
|
$permissions = 1;
|
|
|
|
|
$token = 'token';
|
|
|
|
|
|
|
|
|
|
$node = $this->getMockBuilder('OCP\Files\Node')->getMock();
|
|
|
|
|
$node = $this->createMock(Node::class);
|
|
|
|
|
$node->expects($this->once())->method('getId')->willReturn($itemSource);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|