Browse Source

Fix unit tests

Signed-off-by: Joas Schilling <coding@schilljs.com>
pull/438/head
Joas Schilling 8 years ago
parent
commit
a8b8ef1ee7
No known key found for this signature in database GPG Key ID: E166FD8976B3BAC8
  1. 1
      lib/Activity/Provider/Base.php
  2. 122
      tests/php/Activity/Provider/BaseTest.php
  3. 140
      tests/php/Activity/Provider/InvitationTest.php

1
lib/Activity/Provider/Base.php

@ -76,6 +76,7 @@ abstract class Base implements IProvider {
if ($event->getApp() !== 'spreed') {
throw new \InvalidArgumentException();
}
if ($this->activityManager->getRequirePNG()) {
$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('spreed', 'app-dark.png')));
} else {

122
tests/php/Activity/ProviderTest.php → tests/php/Activity/Provider/BaseTest.php

@ -19,10 +19,10 @@
*
*/
namespace OCA\Spreed\Tests\php\Activity;
namespace OCA\Spreed\Tests\php\Activity\Provider;
use OCA\Spreed\Activity\Provider;
use OCA\Spreed\Activity\Provider\Base;
use OCA\Spreed\Manager;
use OCA\Spreed\Room;
use OCP\Activity\IEvent;
@ -34,11 +34,11 @@ use OCP\L10N\IFactory;
use Test\TestCase;
/**
* Class ProviderTest
* Class BaseTest
*
* @package OCA\Spreed\Tests\php\Activity
*/
class ProviderTest extends TestCase {
class BaseTest extends TestCase {
/** @var IFactory|\PHPUnit_Framework_MockObject_MockObject */
protected $l10nFactory;
@ -63,41 +63,74 @@ class ProviderTest extends TestCase {
/**
* @param string[] $methods
* @return Provider|\PHPUnit_Framework_MockObject_MockObject
* @return Base|\PHPUnit_Framework_MockObject_MockObject
*/
protected function getProvider(array $methods = []) {
if (!empty($methods)) {
return $this->getMockBuilder(Provider::class)
->setConstructorArgs([
$this->l10nFactory,
$this->url,
$this->activityManager,
$this->userManager,
$this->manager,
])
->setMethods($methods)
->getMock();
}
return new Provider(
$this->l10nFactory,
$this->url,
$this->activityManager,
$this->userManager,
$this->manager
);
$methods[] = 'parse';
return $this->getMockBuilder(Base::class)
->setConstructorArgs([
$this->l10nFactory,
$this->url,
$this->activityManager,
$this->userManager,
$this->manager,
])
->setMethods($methods)
->getMock();
}
public function dataPreParse() {
return [
[true, 'app-dark.png'],
[false, 'app-dark.svg'],
];
}
/**
* @dataProvider dataPreParse
*
*/
public function testPreParse($png, $imagePath) {
/** @var IEvent|\PHPUnit_Framework_MockObject_MockObject $event */
$event = $this->createMock(IEvent::class);
$event->expects($this->once())
->method('getApp')
->willReturn('spreed');
$this->activityManager->expects($this->once())
->method('getRequirePNG')
->willReturn($png);
$this->url->expects($this->once())
->method('imagePath')
->with('spreed', $imagePath)
->willReturn('imagePath');
$this->url->expects($this->once())
->method('getAbsoluteURL')
->with('imagePath')
->willReturn('getAbsoluteURL');
$event->expects($this->once())
->method('setIcon')
->with('getAbsoluteURL')
->willReturnSelf();
$provider = $this->getProvider();
$this->assertSame($event, static::invokePrivate($provider, 'preParse', [$event]));
}
/**
* @expectedException \InvalidArgumentException
*/
public function testParseThrows() {
public function testPreParseThrows() {
/** @var IEvent|\PHPUnit_Framework_MockObject_MockObject $event */
$event = $this->createMock(IEvent::class);
$event->expects($this->once())
->method('getApp')
->willReturn('activity');
$provider = $this->getProvider();
$provider->parse('en', $event, null);
static::invokePrivate($provider, 'preParse', [$event]);
}
public function dataSetSubject() {
@ -131,43 +164,6 @@ class ProviderTest extends TestCase {
self::invokePrivate($provider, 'setSubjects', [$event, $subject, $parameters]);
}
public function dataGetParameters() {
return [
['test', true, ['actor' => 'array(user)', 'call' => 'array(room)']],
['admin', false, ['actor' => 'array(user)']],
];
}
/**
* @dataProvider dataGetParameters
*
* @param string $user
* @param bool $isRoom
* @param array $expected
*/
public function testGetParameters($user, $isRoom, array $expected) {
$provider = $this->getProvider(['getUser', 'getRoom']);
$provider->expects($this->once())
->method('getUser')
->with($user)
->willReturn('array(user)');
if ($isRoom) {
$room = $this->createMock(Room::class);
$provider->expects($this->once())
->method('getRoom')
->with($room)
->willReturn('array(room)');
} else {
$room = null;
$provider->expects($this->never())
->method('getRoom');
}
$this->assertEquals($expected, self::invokePrivate($provider, 'getParameters', [['user' => $user], $room]));
}
public function dataGetRoom() {
return [
[Room::ONE_TO_ONE_CALL, 23, 'private-call', 'one2one'],

140
tests/php/Activity/Provider/InvitationTest.php

@ -0,0 +1,140 @@
<?php
/**
* @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Spreed\Tests\php\Activity\Provider;
use OCA\Spreed\Activity\Provider\Invitation;
use OCA\Spreed\Manager;
use OCA\Spreed\Room;
use OCP\Activity\IEvent;
use OCP\Activity\IManager;
use OCP\IURLGenerator;
use OCP\IUser;
use OCP\IUserManager;
use OCP\L10N\IFactory;
use Test\TestCase;
/**
* Class InvitationTest
*
* @package OCA\Spreed\Tests\php\Activity
*/
class InvitationTest extends TestCase {
/** @var IFactory|\PHPUnit_Framework_MockObject_MockObject */
protected $l10nFactory;
/** @var IURLGenerator|\PHPUnit_Framework_MockObject_MockObject */
protected $url;
/** @var IManager|\PHPUnit_Framework_MockObject_MockObject */
protected $activityManager;
/** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */
protected $userManager;
/** @var Manager|\PHPUnit_Framework_MockObject_MockObject */
protected $manager;
public function setUp() {
parent::setUp();
$this->l10nFactory = $this->createMock(IFactory::class);
$this->url = $this->createMock(IURLGenerator::class);
$this->activityManager = $this->createMock(IManager::class);
$this->userManager = $this->createMock(IUserManager::class);
$this->manager = $this->createMock(Manager::class);
}
/**
* @param string[] $methods
* @return Invitation|\PHPUnit_Framework_MockObject_MockObject
*/
protected function getProvider(array $methods = []) {
if (!empty($methods)) {
return $this->getMockBuilder(Invitation::class)
->setConstructorArgs([
$this->l10nFactory,
$this->url,
$this->activityManager,
$this->userManager,
$this->manager,
])
->setMethods($methods)
->getMock();
}
return new Invitation(
$this->l10nFactory,
$this->url,
$this->activityManager,
$this->userManager,
$this->manager
);
}
/**
* @expectedException \InvalidArgumentException
*/
public function testParseThrows() {
/** @var IEvent|\PHPUnit_Framework_MockObject_MockObject $event */
$event = $this->createMock(IEvent::class);
$event->expects($this->once())
->method('getApp')
->willReturn('activity');
$provider = $this->getProvider();
$provider->parse('en', $event, null);
}
public function dataGetParameters() {
return [
['test', true, ['actor' => 'array(user)', 'call' => 'array(room)']],
['admin', false, ['actor' => 'array(user)']],
];
}
/**
* @dataProvider dataGetParameters
*
* @param string $user
* @param bool $isRoom
* @param array $expected
*/
public function testGetParameters($user, $isRoom, array $expected) {
$provider = $this->getProvider(['getUser', 'getRoom']);
$provider->expects($this->once())
->method('getUser')
->with($user)
->willReturn('array(user)');
if ($isRoom) {
$room = $this->createMock(Room::class);
$provider->expects($this->once())
->method('getRoom')
->with($room)
->willReturn('array(room)');
} else {
$room = null;
$provider->expects($this->never())
->method('getRoom');
}
$this->assertEquals($expected, self::invokePrivate($provider, 'getParameters', [['user' => $user], $room]));
}
}
Loading…
Cancel
Save