|
|
|
|
@ -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); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|