mirror of https://github.com/sualko/cloud_bbb
test: add first unit tests
parent
d7a0bfd47e
commit
c63767719b
|
@ -0,0 +1,12 @@
|
|||
<phpunit bootstrap="tests/bootstrap.php" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true">
|
||||
<testsuites>
|
||||
<testsuite name="unit">
|
||||
<directory>tests/Unit</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
<filter>
|
||||
<whitelist processUncoveredFilesFromWhitelist="true">
|
||||
<directory suffix=".php">lib</directory>
|
||||
</whitelist>
|
||||
</filter>
|
||||
</phpunit>
|
|
@ -0,0 +1,130 @@
|
|||
<?php
|
||||
namespace OCA\BigBlueButton\Tests\Controller;
|
||||
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use OCP\AppFramework\Http\RedirectResponse;
|
||||
use OCP\IURLGenerator;
|
||||
use OCP\ISession;
|
||||
use OCP\IUserSession;
|
||||
use OCP\IConfig;
|
||||
use OCP\IRequest;
|
||||
use OCP\IUser;
|
||||
use OCA\BigBlueButton\Service\RoomService;
|
||||
use OCA\BigBlueButton\Controller\JoinController;
|
||||
use OCA\BigBlueButton\BigBlueButton\API;
|
||||
use OCA\BigBlueButton\NotFoundException;
|
||||
use OCA\BigBlueButton\Db\Room;
|
||||
|
||||
class JoinControllerTest extends TestCase
|
||||
{
|
||||
private $request;
|
||||
private $service;
|
||||
private $userSession;
|
||||
private $config;
|
||||
private $urlGenerator;
|
||||
private $controller;
|
||||
private $api;
|
||||
private $room;
|
||||
|
||||
public function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
$this->request = $this->createMock(IRequest::class);
|
||||
$this->session = $this->createMock(ISession::class);
|
||||
$this->service = $this->createMock(RoomService::class);
|
||||
$this->userSession = $this->createMock(IUserSession::class);
|
||||
$this->config = $this->createMock(IConfig::class);
|
||||
$this->urlGenerator = $this->createMock(IURLGenerator::class);
|
||||
$this->api = $this->createMock(API::class);
|
||||
|
||||
$this->controller = new JoinController(
|
||||
'bbb',
|
||||
$this->request,
|
||||
$this->session,
|
||||
$this->service,
|
||||
$this->urlGenerator,
|
||||
$this->userSession,
|
||||
$this->config,
|
||||
$this->api
|
||||
);
|
||||
|
||||
$this->room = new Room();
|
||||
$this->room->uid = 'uid_foo';
|
||||
$this->room->userId = 'user_foo';
|
||||
$this->room->access = Room::ACCESS_PUBLIC;
|
||||
$this->room->name = 'name_foo';
|
||||
$this->room->password = 'password_foo';
|
||||
}
|
||||
|
||||
public function testNonExistingRoom()
|
||||
{
|
||||
$this->expectException(NotFoundException::class);
|
||||
$this->service
|
||||
->expects($this->once())
|
||||
->method('findByUID')
|
||||
->willReturn(null);
|
||||
|
||||
$this->controller->index(null);
|
||||
}
|
||||
|
||||
public function testUserIsLoggedIn()
|
||||
{
|
||||
$this->controller->setToken($this->room->uid);
|
||||
$this->service
|
||||
->expects($this->once())
|
||||
->method('findByUID')
|
||||
->willReturn($this->room);
|
||||
|
||||
$this->userSession
|
||||
->expects($this->once())
|
||||
->method('isLoggedIn')
|
||||
->willReturn(true);
|
||||
|
||||
$user = $this->createMock(IUser::class);
|
||||
$user->method('getDisplayName')->willReturn('User Bar');
|
||||
$user->method('getUID')->willReturn('user_bar');
|
||||
|
||||
$this->userSession
|
||||
->expects($this->once())
|
||||
->method('getUser')
|
||||
->willReturn($user);
|
||||
|
||||
$this->api
|
||||
->expects($this->once())
|
||||
->method('createMeeting')
|
||||
->willReturn(12345);
|
||||
|
||||
$url = 'https://foobar';
|
||||
$this->api
|
||||
->expects($this->once())
|
||||
->method('createJoinUrl')
|
||||
->willReturn($url);
|
||||
|
||||
$result = $this->controller->index(null);
|
||||
|
||||
$this->assertInstanceOf(RedirectResponse::class, $result);
|
||||
$this->assertEquals($url, $result->getRedirectURL());
|
||||
}
|
||||
|
||||
public function testUserNeedsToAuthenticate()
|
||||
{
|
||||
$this->markTestIncomplete();
|
||||
}
|
||||
|
||||
public function testInvalidDisplayname()
|
||||
{
|
||||
$this->markTestIncomplete();
|
||||
}
|
||||
|
||||
public function testPasswordRequired()
|
||||
{
|
||||
$this->markTestIncomplete();
|
||||
}
|
||||
|
||||
public function testFormActionAllowed()
|
||||
{
|
||||
$this->markTestIncomplete();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
if (!($ncRoot = getenv('NEXTCLOUD_ROOT'))) {
|
||||
$ncRoot = __DIR__ . '/../../..';
|
||||
}
|
||||
|
||||
echo "Using ".realpath($ncRoot)." as Nextcloud root.\n\n";
|
||||
|
||||
require_once $ncRoot . '/lib/base.php';
|
||||
require_once __DIR__ . '/../vendor/autoload.php';
|
Loading…
Reference in New Issue