@ -240,6 +240,51 @@ class ShareByMailProviderTest extends TestCase {
);
}
public function testCreateSendPasswordByMailWithPasswordAndWithoutEnforcedPasswordProtection () {
$share = $this -> getMockBuilder ( IShare :: class ) -> getMock ();
$share -> expects ( $this -> any ()) -> method ( 'getSharedWith' ) -> willReturn ( 'receiver@example.com' );
$share -> expects ( $this -> any ()) -> method ( 'getSendPasswordByTalk' ) -> willReturn ( false );
$share -> expects ( $this -> any ()) -> method ( 'getSharedBy' ) -> willReturn ( 'owner' );
$node = $this -> getMockBuilder ( File :: class ) -> getMock ();
$node -> expects ( $this -> any ()) -> method ( 'getName' ) -> willReturn ( 'filename' );
$instance = $this -> getInstance ([ 'getSharedWith' , 'createMailShare' , 'getRawShare' , 'createShareObject' , 'createShareActivity' , 'autoGeneratePassword' , 'createPasswordSendActivity' ]);
$instance -> expects ( $this -> once ()) -> method ( 'getSharedWith' ) -> willReturn ([]);
$instance -> expects ( $this -> once ()) -> method ( 'createMailShare' ) -> with ( $share ) -> willReturn ( 42 );
$instance -> expects ( $this -> once ()) -> method ( 'createShareActivity' ) -> with ( $share );
$instance -> expects ( $this -> once ()) -> method ( 'getRawShare' ) -> with ( 42 ) -> willReturn ( 'rawShare' );
$instance -> expects ( $this -> once ()) -> method ( 'createShareObject' ) -> with ( 'rawShare' ) -> willReturn ( 'shareObject' );
$share -> expects ( $this -> any ()) -> method ( 'getNode' ) -> willReturn ( $node );
$share -> expects ( $this -> once ()) -> method ( 'getPassword' ) -> willReturn ( 'password' );
$this -> hasher -> expects ( $this -> once ()) -> method ( 'hash' ) -> with ( 'password' ) -> willReturn ( 'passwordHashed' );
$share -> expects ( $this -> once ()) -> method ( 'setPassword' ) -> with ( 'passwordHashed' );
// The given password (but not the autogenerated password) should be
// mailed to the receiver of the share.
$this -> settingsManager -> expects ( $this -> any ()) -> method ( 'enforcePasswordProtection' ) -> willReturn ( false );
$this -> settingsManager -> expects ( $this -> any ()) -> method ( 'sendPasswordByMail' ) -> willReturn ( true );
$instance -> expects ( $this -> never ()) -> method ( 'autoGeneratePassword' );
$message = $this -> createMock ( IMessage :: class );
$message -> expects ( $this -> once ()) -> method ( 'setTo' ) -> with ([ 'receiver@example.com' ]);
$this -> mailer -> expects ( $this -> once ()) -> method ( 'createMessage' ) -> willReturn ( $message );
$this -> mailer -> expects ( $this -> once ()) -> method ( 'createEMailTemplate' ) -> with ( 'sharebymail.RecipientPasswordNotification' , [
'filename' => 'filename' ,
'password' => 'password' ,
'initiator' => 'owner' ,
'initiatorEmail' => null ,
'shareWith' => 'receiver@example.com' ,
]);
$this -> mailer -> expects ( $this -> once ()) -> method ( 'send' );
$this -> assertSame ( 'shareObject' ,
$instance -> create ( $share )
);
}
public function testCreateSendPasswordByMailWithEnforcedPasswordProtection () {
$share = $this -> getMockBuilder ( IShare :: class ) -> getMock ();
$share -> expects ( $this -> any ()) -> method ( 'getSharedWith' ) -> willReturn ( 'receiver@example.com' );
@ -258,6 +303,10 @@ class ShareByMailProviderTest extends TestCase {
$instance -> expects ( $this -> once ()) -> method ( 'createShareObject' ) -> with ( 'rawShare' ) -> willReturn ( 'shareObject' );
$share -> expects ( $this -> any ()) -> method ( 'getNode' ) -> willReturn ( $node );
$share -> expects ( $this -> once ()) -> method ( 'getPassword' ) -> willReturn ( null );
$this -> hasher -> expects ( $this -> once ()) -> method ( 'hash' ) -> with ( 'autogeneratedPassword' ) -> willReturn ( 'autogeneratedPasswordHashed' );
$share -> expects ( $this -> once ()) -> method ( 'setPassword' ) -> with ( 'autogeneratedPasswordHashed' );
// The autogenerated password should be mailed to the receiver of the share.
$this -> settingsManager -> expects ( $this -> any ()) -> method ( 'enforcePasswordProtection' ) -> willReturn ( true );
$this -> settingsManager -> expects ( $this -> any ()) -> method ( 'sendPasswordByMail' ) -> willReturn ( true );
@ -280,6 +329,51 @@ class ShareByMailProviderTest extends TestCase {
);
}
public function testCreateSendPasswordByMailWithPasswordAndWithEnforcedPasswordProtection () {
$share = $this -> getMockBuilder ( IShare :: class ) -> getMock ();
$share -> expects ( $this -> any ()) -> method ( 'getSharedWith' ) -> willReturn ( 'receiver@example.com' );
$share -> expects ( $this -> any ()) -> method ( 'getSendPasswordByTalk' ) -> willReturn ( false );
$share -> expects ( $this -> any ()) -> method ( 'getSharedBy' ) -> willReturn ( 'owner' );
$node = $this -> getMockBuilder ( File :: class ) -> getMock ();
$node -> expects ( $this -> any ()) -> method ( 'getName' ) -> willReturn ( 'filename' );
$instance = $this -> getInstance ([ 'getSharedWith' , 'createMailShare' , 'getRawShare' , 'createShareObject' , 'createShareActivity' , 'autoGeneratePassword' , 'createPasswordSendActivity' ]);
$instance -> expects ( $this -> once ()) -> method ( 'getSharedWith' ) -> willReturn ([]);
$instance -> expects ( $this -> once ()) -> method ( 'createMailShare' ) -> with ( $share ) -> willReturn ( 42 );
$instance -> expects ( $this -> once ()) -> method ( 'createShareActivity' ) -> with ( $share );
$instance -> expects ( $this -> once ()) -> method ( 'getRawShare' ) -> with ( 42 ) -> willReturn ( 'rawShare' );
$instance -> expects ( $this -> once ()) -> method ( 'createShareObject' ) -> with ( 'rawShare' ) -> willReturn ( 'shareObject' );
$share -> expects ( $this -> any ()) -> method ( 'getNode' ) -> willReturn ( $node );
$share -> expects ( $this -> once ()) -> method ( 'getPassword' ) -> willReturn ( 'password' );
$this -> hasher -> expects ( $this -> once ()) -> method ( 'hash' ) -> with ( 'password' ) -> willReturn ( 'passwordHashed' );
$share -> expects ( $this -> once ()) -> method ( 'setPassword' ) -> with ( 'passwordHashed' );
// The given password (but not the autogenerated password) should be
// mailed to the receiver of the share.
$this -> settingsManager -> expects ( $this -> any ()) -> method ( 'enforcePasswordProtection' ) -> willReturn ( true );
$this -> settingsManager -> expects ( $this -> any ()) -> method ( 'sendPasswordByMail' ) -> willReturn ( true );
$instance -> expects ( $this -> never ()) -> method ( 'autoGeneratePassword' );
$message = $this -> createMock ( IMessage :: class );
$message -> expects ( $this -> once ()) -> method ( 'setTo' ) -> with ([ 'receiver@example.com' ]);
$this -> mailer -> expects ( $this -> once ()) -> method ( 'createMessage' ) -> willReturn ( $message );
$this -> mailer -> expects ( $this -> once ()) -> method ( 'createEMailTemplate' ) -> with ( 'sharebymail.RecipientPasswordNotification' , [
'filename' => 'filename' ,
'password' => 'password' ,
'initiator' => 'owner' ,
'initiatorEmail' => null ,
'shareWith' => 'receiver@example.com' ,
]);
$this -> mailer -> expects ( $this -> once ()) -> method ( 'send' );
$this -> assertSame ( 'shareObject' ,
$instance -> create ( $share )
);
}
public function testCreateSendPasswordByTalkWithEnforcedPasswordProtection () {
$share = $this -> getMockBuilder ( IShare :: class ) -> getMock ();
$share -> expects ( $this -> any ()) -> method ( 'getSharedWith' ) -> willReturn ( 'receiver@example.com' );
@ -298,6 +392,10 @@ class ShareByMailProviderTest extends TestCase {
$instance -> expects ( $this -> once ()) -> method ( 'createShareObject' ) -> with ( 'rawShare' ) -> willReturn ( 'shareObject' );
$share -> expects ( $this -> any ()) -> method ( 'getNode' ) -> willReturn ( $node );
$share -> expects ( $this -> once ()) -> method ( 'getPassword' ) -> willReturn ( null );
$this -> hasher -> expects ( $this -> once ()) -> method ( 'hash' ) -> with ( 'autogeneratedPassword' ) -> willReturn ( 'autogeneratedPasswordHashed' );
$share -> expects ( $this -> once ()) -> method ( 'setPassword' ) -> with ( 'autogeneratedPasswordHashed' );
// The autogenerated password should be mailed to the owner of the share.
$this -> settingsManager -> expects ( $this -> any ()) -> method ( 'enforcePasswordProtection' ) -> willReturn ( true );
$this -> settingsManager -> expects ( $this -> any ()) -> method ( 'sendPasswordByMail' ) -> willReturn ( true );