Upgrade tests to PhpUnit 10 (#5252)
This commit is contained in:
@@ -14,7 +14,7 @@ use App\Entity\User;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class AboutControllerTest extends ControllerBaseTest
|
||||
class AboutControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIndexAction(): void
|
||||
{
|
||||
|
||||
@@ -34,7 +34,7 @@ use Symfony\Component\Security\Csrf\CsrfTokenManager;
|
||||
/**
|
||||
* ControllerBaseTest adds some useful functions for writing integration tests.
|
||||
*/
|
||||
abstract class ControllerBaseTest extends WebTestCase
|
||||
abstract class AbstractControllerBaseTestCase extends WebTestCase
|
||||
{
|
||||
use KernelTestTrait;
|
||||
|
||||
@@ -155,6 +155,9 @@ abstract class ControllerBaseTest extends WebTestCase
|
||||
return $client;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return non-empty-string
|
||||
*/
|
||||
protected function createUrl(string $url): string
|
||||
{
|
||||
$prefix = '/' . self::DEFAULT_LANGUAGE;
|
||||
@@ -404,10 +407,6 @@ abstract class ControllerBaseTest extends WebTestCase
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param HttpKernelBrowser $client
|
||||
* @param string $url
|
||||
*/
|
||||
protected function assertIsRedirect(HttpKernelBrowser $client, ?string $url = null, bool $endsWith = true): void
|
||||
{
|
||||
self::assertResponseRedirects();
|
||||
@@ -431,7 +430,7 @@ abstract class ControllerBaseTest extends WebTestCase
|
||||
self::assertStringContainsString($expectedMeta, $client->getResponse()->getContent());
|
||||
|
||||
if ($url !== null) {
|
||||
if ($endsWith) {
|
||||
if ($endsWith && $url !== '') {
|
||||
self::assertStringEndsWith($url, $location, 'Redirect URL does not match');
|
||||
} else {
|
||||
self::assertStringContainsString($url, $location, 'Redirect URL does not match');
|
||||
@@ -447,7 +446,7 @@ abstract class ControllerBaseTest extends WebTestCase
|
||||
$location = $client->getResponse()->headers->get('Location');
|
||||
self::assertNotNull($location);
|
||||
|
||||
if ($endsWith) {
|
||||
if ($endsWith && $url !== '') {
|
||||
self::assertStringEndsWith($url, $location, 'Redirect URL does not match');
|
||||
} else {
|
||||
self::assertStringContainsString($url, $location, 'Redirect URL does not match');
|
||||
@@ -26,7 +26,7 @@ use Symfony\Component\HttpKernel\HttpKernelBrowser;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class ActivityControllerTest extends ControllerBaseTest
|
||||
class ActivityControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
@@ -88,7 +88,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
'page' => 1,
|
||||
]);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasDataTable($client);
|
||||
$this->assertDataTableRowCount($client, 'datatable_activity_admin', 5);
|
||||
}
|
||||
@@ -215,7 +215,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->request($client, '/admin/activity/' . $id . '/edit');
|
||||
$editForm = $client->getCrawler()->filter('form[name=activity_edit_form]')->form();
|
||||
$this->assertEquals('An AcTiVitY Name', $editForm->get('activity_edit_form[name]')->getValue());
|
||||
self::assertEquals('An AcTiVitY Name', $editForm->get('activity_edit_form[name]')->getValue());
|
||||
}
|
||||
|
||||
public function testCreateActionShowsMetaFields(): void
|
||||
@@ -225,12 +225,12 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
static::assertInstanceOf(EventDispatcher::class, $eventDispatcher);
|
||||
$eventDispatcher->addSubscriber(new ActivityTestMetaFieldSubscriberMock());
|
||||
$this->assertAccessIsGranted($client, '/admin/activity/create');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=activity_edit_form]')->form();
|
||||
$this->assertTrue($form->has('activity_edit_form[metaFields][metatestmock][value]'));
|
||||
$this->assertTrue($form->has('activity_edit_form[metaFields][foobar][value]'));
|
||||
$this->assertFalse($form->has('activity_edit_form[metaFields][0][value]'));
|
||||
self::assertTrue($form->has('activity_edit_form[metaFields][metatestmock][value]'));
|
||||
self::assertTrue($form->has('activity_edit_form[metaFields][foobar][value]'));
|
||||
self::assertFalse($form->has('activity_edit_form[metaFields][0][value]'));
|
||||
}
|
||||
|
||||
public function testEditAction(): void
|
||||
@@ -238,7 +238,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/activity/1/edit');
|
||||
$form = $client->getCrawler()->filter('form[name=activity_edit_form]')->form();
|
||||
$this->assertEquals('Test', $form->get('activity_edit_form[name]')->getValue());
|
||||
self::assertEquals('Test', $form->get('activity_edit_form[name]')->getValue());
|
||||
$client->submit($form, [
|
||||
'activity_edit_form' => ['name' => 'Test 2']
|
||||
]);
|
||||
@@ -246,7 +246,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
$client->followRedirect();
|
||||
$this->request($client, '/admin/activity/1/edit');
|
||||
$editForm = $client->getCrawler()->filter('form[name=activity_edit_form]')->form();
|
||||
$this->assertEquals('Test 2', $editForm->get('activity_edit_form[name]')->getValue());
|
||||
self::assertEquals('Test 2', $editForm->get('activity_edit_form[name]')->getValue());
|
||||
}
|
||||
|
||||
public function testEditActionForGlobalActivity(): void
|
||||
@@ -254,7 +254,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/activity/1/edit');
|
||||
$form = $client->getCrawler()->filter('form[name=activity_edit_form]')->form();
|
||||
$this->assertEquals('Test', $form->get('activity_edit_form[name]')->getValue());
|
||||
self::assertEquals('Test', $form->get('activity_edit_form[name]')->getValue());
|
||||
$client->submit($form, [
|
||||
'activity_edit_form' => ['name' => 'Test 2']
|
||||
]);
|
||||
@@ -262,7 +262,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
$client->followRedirect();
|
||||
$this->request($client, '/admin/activity/1/edit');
|
||||
$editForm = $client->getCrawler()->filter('form[name=activity_edit_form]')->form();
|
||||
$this->assertEquals('Test 2', $editForm->get('activity_edit_form[name]')->getValue());
|
||||
self::assertEquals('Test 2', $editForm->get('activity_edit_form[name]')->getValue());
|
||||
}
|
||||
|
||||
public function testTeamPermissionAction(): void
|
||||
@@ -317,13 +317,13 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->request($client, '/admin/activity/1/edit');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$this->request($client, '/admin/activity/1/delete');
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$form = $client->getCrawler()->filter('form[name=form]')->form();
|
||||
$this->assertStringEndsWith($this->createUrl('/admin/activity/1/delete'), $form->getUri());
|
||||
self::assertStringEndsWith($this->createUrl('/admin/activity/1/delete'), $form->getUri());
|
||||
$client->submit($form);
|
||||
|
||||
$client->followRedirect();
|
||||
@@ -331,7 +331,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
$this->assertHasNoEntriesWithFilter($client);
|
||||
|
||||
$this->request($client, '/admin/activity/1/edit');
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
self::assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testDeleteActionWithTimesheetEntries(): void
|
||||
@@ -347,18 +347,18 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$timesheets = $em->getRepository(Timesheet::class)->findAll();
|
||||
$this->assertEquals(10, \count($timesheets));
|
||||
self::assertEquals(10, \count($timesheets));
|
||||
|
||||
/** @var Timesheet $entry */
|
||||
foreach ($timesheets as $entry) {
|
||||
$this->assertEquals(1, $entry->getActivity()->getId());
|
||||
self::assertEquals(1, $entry->getActivity()->getId());
|
||||
}
|
||||
|
||||
$this->request($client, '/admin/activity/1/delete');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=form]')->form();
|
||||
$this->assertStringEndsWith($this->createUrl('/admin/activity/1/delete'), $form->getUri());
|
||||
self::assertStringEndsWith($this->createUrl('/admin/activity/1/delete'), $form->getUri());
|
||||
$client->submit($form);
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/admin/activity/'));
|
||||
@@ -368,10 +368,10 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
|
||||
$em->clear();
|
||||
$timesheets = $em->getRepository(Timesheet::class)->findAll();
|
||||
$this->assertEquals(0, \count($timesheets));
|
||||
self::assertEquals(0, \count($timesheets));
|
||||
|
||||
$this->request($client, '/admin/activity/1/edit');
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
self::assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testDeleteActionWithTimesheetEntriesAndReplacement(): void
|
||||
@@ -392,18 +392,18 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
$id = $activity->getId();
|
||||
|
||||
$timesheets = $em->getRepository(Timesheet::class)->findAll();
|
||||
$this->assertEquals(10, \count($timesheets));
|
||||
self::assertEquals(10, \count($timesheets));
|
||||
|
||||
/** @var Timesheet $entry */
|
||||
foreach ($timesheets as $entry) {
|
||||
$this->assertEquals(1, $entry->getActivity()->getId());
|
||||
self::assertEquals(1, $entry->getActivity()->getId());
|
||||
}
|
||||
|
||||
$this->request($client, '/admin/activity/1/delete');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=form]')->form();
|
||||
$this->assertStringEndsWith($this->createUrl('/admin/activity/1/delete'), $form->getUri());
|
||||
self::assertStringEndsWith($this->createUrl('/admin/activity/1/delete'), $form->getUri());
|
||||
$client->submit($form, [
|
||||
'form' => [
|
||||
'activity' => $id
|
||||
@@ -416,15 +416,15 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$timesheets = $em->getRepository(Timesheet::class)->findAll();
|
||||
$this->assertEquals(10, \count($timesheets));
|
||||
self::assertEquals(10, \count($timesheets));
|
||||
|
||||
/** @var Timesheet $entry */
|
||||
foreach ($timesheets as $entry) {
|
||||
$this->assertEquals($id, $entry->getActivity()->getId());
|
||||
self::assertEquals($id, $entry->getActivity()->getId());
|
||||
}
|
||||
|
||||
$this->request($client, '/admin/activity/1/edit');
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
self::assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -441,7 +441,7 @@ class ActivityControllerTest extends ControllerBaseTest
|
||||
);
|
||||
}
|
||||
|
||||
public function getValidationTestData()
|
||||
public static function getValidationTestData()
|
||||
{
|
||||
return [
|
||||
[
|
||||
|
||||
@@ -18,7 +18,7 @@ use App\Tests\Mocks\SystemConfigurationFactory;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class CalendarControllerTest extends ControllerBaseTest
|
||||
class CalendarControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
@@ -33,13 +33,13 @@ class CalendarControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixtures);
|
||||
|
||||
$this->request($client, '/calendar/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$crawler = $client->getCrawler();
|
||||
$calendar = $crawler->filter('div#timesheet_calendar');
|
||||
$this->assertEquals(1, $calendar->count());
|
||||
self::assertEquals(1, $calendar->count());
|
||||
$dragAndDropBoxes = $crawler->filter('div.card-body.drag-and-drop-source');
|
||||
$this->assertEquals(1, $dragAndDropBoxes->count());
|
||||
self::assertEquals(1, $dragAndDropBoxes->count());
|
||||
}
|
||||
|
||||
public function testCalendarActionAsSuperAdmin(): void
|
||||
@@ -60,13 +60,13 @@ class CalendarControllerTest extends ControllerBaseTest
|
||||
|
||||
$crawler = $client->getCrawler();
|
||||
$calendar = $crawler->filter('div#timesheet_calendar');
|
||||
$this->assertEquals(1, $calendar->count());
|
||||
self::assertEquals(1, $calendar->count());
|
||||
|
||||
$content = $client->getResponse()->getContent();
|
||||
$this->assertStringContainsString("googleCalendarId: 'de.german#holiday@group.v.calendar.google.com',", $content);
|
||||
$this->assertStringContainsString("name: 'holidays'", $content);
|
||||
$this->assertStringContainsString("googleCalendarId: 'en.german#holiday@group.v.calendar.google.com',", $content);
|
||||
$this->assertStringContainsString("name: 'holidays_en'", $content);
|
||||
self::assertStringContainsString("googleCalendarId: 'de.german#holiday@group.v.calendar.google.com',", $content);
|
||||
self::assertStringContainsString("name: 'holidays'", $content);
|
||||
self::assertStringContainsString("googleCalendarId: 'en.german#holiday@group.v.calendar.google.com',", $content);
|
||||
self::assertStringContainsString("name: 'holidays_en'", $content);
|
||||
}
|
||||
|
||||
protected function getDefaultSettings(): array
|
||||
|
||||
@@ -14,7 +14,7 @@ use App\Entity\User;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class ContractControllerTest extends ControllerBaseTest
|
||||
class ContractControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
|
||||
@@ -27,7 +27,7 @@ use Symfony\Component\HttpKernel\HttpKernelBrowser;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class CustomerControllerTest extends ControllerBaseTest
|
||||
class CustomerControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
@@ -91,7 +91,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
'page' => 1,
|
||||
]);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasDataTable($client);
|
||||
$this->assertDataTableRowCount($client, 'datatable_customer_admin', 5);
|
||||
}
|
||||
@@ -113,7 +113,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD);
|
||||
|
||||
$this->request($client, '/admin/customer/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form.searchform')->form();
|
||||
$form->getFormNode()->setAttribute('action', $this->createUrl('/admin/customer/export'));
|
||||
@@ -318,7 +318,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
$form = $client->getCrawler()->filter('form[name=customer_edit_form]')->form();
|
||||
|
||||
$editForm = $client->getCrawler()->filter('form[name=customer_edit_form]')->form();
|
||||
$this->assertEquals(date_default_timezone_get(), $editForm->get('customer_edit_form[timezone]')->getValue());
|
||||
self::assertEquals(date_default_timezone_get(), $editForm->get('customer_edit_form[timezone]')->getValue());
|
||||
|
||||
$client->submit($form, [
|
||||
'customer_edit_form' => [
|
||||
@@ -340,12 +340,12 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
$dispatcher = self::getContainer()->get('event_dispatcher');
|
||||
$dispatcher->addSubscriber(new CustomerTestMetaFieldSubscriberMock());
|
||||
$this->assertAccessIsGranted($client, '/admin/customer/create');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=customer_edit_form]')->form();
|
||||
$this->assertTrue($form->has('customer_edit_form[metaFields][metatestmock][value]'));
|
||||
$this->assertTrue($form->has('customer_edit_form[metaFields][foobar][value]'));
|
||||
$this->assertFalse($form->has('customer_edit_form[metaFields][0][value]'));
|
||||
self::assertTrue($form->has('customer_edit_form[metaFields][metatestmock][value]'));
|
||||
self::assertTrue($form->has('customer_edit_form[metaFields][foobar][value]'));
|
||||
self::assertFalse($form->has('customer_edit_form[metaFields][0][value]'));
|
||||
}
|
||||
|
||||
public function testEditAction(): void
|
||||
@@ -353,7 +353,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/customer/1/edit');
|
||||
$form = $client->getCrawler()->filter('form[name=customer_edit_form]')->form();
|
||||
$this->assertEquals('Test', $form->get('customer_edit_form[name]')->getValue());
|
||||
self::assertEquals('Test', $form->get('customer_edit_form[name]')->getValue());
|
||||
$client->submit($form, [
|
||||
'customer_edit_form' => [
|
||||
'name' => 'Test Customer 2'
|
||||
@@ -363,7 +363,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
$client->followRedirect();
|
||||
$this->request($client, '/admin/customer/1/edit');
|
||||
$editForm = $client->getCrawler()->filter('form[name=customer_edit_form]')->form();
|
||||
$this->assertEquals('Test Customer 2', $editForm->get('customer_edit_form[name]')->getValue());
|
||||
self::assertEquals('Test Customer 2', $editForm->get('customer_edit_form[name]')->getValue());
|
||||
}
|
||||
|
||||
public function testTeamPermissionAction(): void
|
||||
@@ -408,12 +408,12 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
$id = $customer->getId();
|
||||
|
||||
$this->request($client, '/admin/customer/' . $id . '/edit');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->request($client, '/admin/customer/' . $id . '/delete');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=form]')->form();
|
||||
$this->assertStringEndsWith($this->createUrl('/admin/customer/' . $id . '/delete'), $form->getUri());
|
||||
self::assertStringEndsWith($this->createUrl('/admin/customer/' . $id . '/delete'), $form->getUri());
|
||||
$client->submit($form);
|
||||
|
||||
$client->followRedirect();
|
||||
@@ -421,7 +421,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$this->request($client, '/admin/customer/' . $id . '/edit');
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
self::assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testDeleteActionWithTimesheetEntries(): void
|
||||
@@ -435,18 +435,18 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$timesheets = $em->getRepository(Timesheet::class)->findAll();
|
||||
$this->assertEquals(10, \count($timesheets));
|
||||
self::assertEquals(10, \count($timesheets));
|
||||
|
||||
/** @var Timesheet $entry */
|
||||
foreach ($timesheets as $entry) {
|
||||
$this->assertEquals(1, $entry->getActivity()->getId());
|
||||
self::assertEquals(1, $entry->getActivity()->getId());
|
||||
}
|
||||
|
||||
$this->request($client, '/admin/customer/1/delete');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=form]')->form();
|
||||
$this->assertStringEndsWith($this->createUrl('/admin/customer/1/delete'), $form->getUri());
|
||||
self::assertStringEndsWith($this->createUrl('/admin/customer/1/delete'), $form->getUri());
|
||||
$client->submit($form);
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/admin/customer/'));
|
||||
@@ -456,10 +456,10 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
|
||||
$em->clear();
|
||||
$timesheets = $em->getRepository(Timesheet::class)->findAll();
|
||||
$this->assertEquals(0, \count($timesheets));
|
||||
self::assertEquals(0, \count($timesheets));
|
||||
|
||||
$this->request($client, '/admin/customer/1/edit');
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
self::assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testDeleteActionWithTimesheetEntriesAndReplacement(): void
|
||||
@@ -478,18 +478,18 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
$id = $customer->getId();
|
||||
|
||||
$timesheets = $em->getRepository(Timesheet::class)->findAll();
|
||||
$this->assertEquals(10, \count($timesheets));
|
||||
self::assertEquals(10, \count($timesheets));
|
||||
|
||||
/** @var Timesheet $entry */
|
||||
foreach ($timesheets as $entry) {
|
||||
$this->assertEquals(1, $entry->getProject()->getCustomer()->getId());
|
||||
self::assertEquals(1, $entry->getProject()->getCustomer()->getId());
|
||||
}
|
||||
|
||||
$this->request($client, '/admin/customer/1/delete');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=form]')->form();
|
||||
$this->assertStringEndsWith($this->createUrl('/admin/customer/1/delete'), $form->getUri());
|
||||
self::assertStringEndsWith($this->createUrl('/admin/customer/1/delete'), $form->getUri());
|
||||
$client->submit($form, [
|
||||
'form' => [
|
||||
'customer' => $id
|
||||
@@ -502,15 +502,15 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$timesheets = $em->getRepository(Timesheet::class)->findAll();
|
||||
$this->assertEquals(10, \count($timesheets));
|
||||
self::assertEquals(10, \count($timesheets));
|
||||
|
||||
/** @var Timesheet $entry */
|
||||
foreach ($timesheets as $entry) {
|
||||
$this->assertEquals($id, $entry->getProject()->getCustomer()->getId());
|
||||
self::assertEquals($id, $entry->getProject()->getCustomer()->getId());
|
||||
}
|
||||
|
||||
$this->request($client, '/admin/customer/1/edit');
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
self::assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -527,7 +527,7 @@ class CustomerControllerTest extends ControllerBaseTest
|
||||
);
|
||||
}
|
||||
|
||||
public function getValidationTestData()
|
||||
public static function getValidationTestData()
|
||||
{
|
||||
return [
|
||||
[
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace App\Tests\Controller;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class DashboardControllerTest extends ControllerBaseTest
|
||||
class DashboardControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
@@ -23,7 +23,7 @@ class DashboardControllerTest extends ControllerBaseTest
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser();
|
||||
$this->request($client, '/dashboard/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertMainContentClass($client, 'dashboard');
|
||||
self::assertEquals(1, $client->getCrawler()->filter('div#PaginatedWorkingTimeChartBox canvas')->count());
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ use App\Entity\User;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class DoctorControllerTest extends ControllerBaseTest
|
||||
class DoctorControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testDoctorIsSecure(): void
|
||||
{
|
||||
|
||||
@@ -18,7 +18,7 @@ use Doctrine\ORM\EntityManager;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class ExportControllerTest extends ControllerBaseTest
|
||||
class ExportControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
@@ -35,7 +35,7 @@ class ExportControllerTest extends ControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD);
|
||||
|
||||
$this->request($client, '/export/?performSearch=performSearch');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$this->assertHasNoEntriesWithFilter($client);
|
||||
}
|
||||
@@ -83,7 +83,7 @@ class ExportControllerTest extends ControllerBaseTest
|
||||
$em->flush();
|
||||
|
||||
$this->request($client, '/export/?performSearch=performSearch');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
// make sure all existing records are displayed
|
||||
$this->assertHasDataTable($client);
|
||||
@@ -106,7 +106,7 @@ class ExportControllerTest extends ControllerBaseTest
|
||||
$type = $button->getAttribute('data-type');
|
||||
unset($expected[$type]);
|
||||
}
|
||||
$this->assertEmpty($expected);
|
||||
self::assertEmpty($expected);
|
||||
}
|
||||
|
||||
public function testIndexActionWithEntriesForTeamleadDoesNotShowUserWithoutTeam(): void
|
||||
@@ -126,7 +126,7 @@ class ExportControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$this->request($client, '/export/?performSearch=performSearch');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
// make sure existing records are not displayed
|
||||
$this->assertHasNoEntriesWithFilter($client);
|
||||
@@ -142,7 +142,7 @@ class ExportControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$this->request($client, '/export/?performSearch=performSearch');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
// make sure all existing records are displayed
|
||||
$this->assertHasDataTable($client);
|
||||
@@ -165,7 +165,7 @@ class ExportControllerTest extends ControllerBaseTest
|
||||
$type = $button->getAttribute('data-type');
|
||||
unset($expected[$type]);
|
||||
}
|
||||
$this->assertEmpty($expected);
|
||||
self::assertEmpty($expected);
|
||||
}
|
||||
|
||||
public function testExportActionWithMissingRenderer(): void
|
||||
@@ -180,7 +180,7 @@ class ExportControllerTest extends ControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD);
|
||||
|
||||
$this->request($client, '/export/', 'GET');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('#export-form')->form();
|
||||
$node = $form->getFormNode();
|
||||
@@ -210,7 +210,7 @@ class ExportControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$this->request($client, '/export/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('#export-form')->form();
|
||||
$node = $form->getFormNode();
|
||||
@@ -224,26 +224,26 @@ class ExportControllerTest extends ControllerBaseTest
|
||||
]);
|
||||
|
||||
$response = $client->getResponse();
|
||||
$this->assertTrue($response->isSuccessful());
|
||||
self::assertTrue($response->isSuccessful());
|
||||
$content = $response->getContent();
|
||||
$node = $client->getCrawler()->filter('body');
|
||||
$this->assertEquals(1, $node->count());
|
||||
self::assertEquals(1, $node->count());
|
||||
|
||||
// poor mans assertions ;-)
|
||||
/** @var \DOMElement $element */
|
||||
$element = $node->getIterator()[0];
|
||||
$this->assertStringContainsString('export_print', $element->getAttribute('class'));
|
||||
$this->assertStringContainsString('<h2 id="doc-title" contenteditable="true"', $content);
|
||||
$this->assertStringContainsString('<h3 class="card-title" id="doc-summary" contenteditable="true" data-original="Summary">Summary</h3>', $content);
|
||||
self::assertStringContainsString('export_print', $element->getAttribute('class'));
|
||||
self::assertStringContainsString('<h2 id="doc-title" contenteditable="true"', $content);
|
||||
self::assertStringContainsString('<h3 class="card-title" id="doc-summary" contenteditable="true" data-original="Summary">Summary</h3>', $content);
|
||||
|
||||
$node = $client->getCrawler()->filter('section.export div#export-records table.dataTable tbody tr');
|
||||
// 20 rows + the summary footer
|
||||
$this->assertEquals(21, $node->count());
|
||||
self::assertEquals(21, $node->count());
|
||||
|
||||
$timesheets = $em->getRepository(Timesheet::class)->findAll();
|
||||
/** @var Timesheet $timesheet */
|
||||
foreach ($timesheets as $timesheet) {
|
||||
$this->assertTrue($timesheet->isExported());
|
||||
self::assertTrue($timesheet->isExported());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ use App\Tests\DataFixtures\TimesheetFixtures;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class FavoriteControllerTest extends ControllerBaseTest
|
||||
class FavoriteControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
@@ -35,7 +35,7 @@ class FavoriteControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$this->request($client, '/favorite/timesheet/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$content = $client->getResponse()->getContent();
|
||||
self::assertNotFalse($content);
|
||||
|
||||
@@ -14,7 +14,7 @@ use App\Entity\User;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class HelpControllerTest extends ControllerBaseTest
|
||||
class HelpControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testHelpLocalesAction(): void
|
||||
{
|
||||
|
||||
@@ -16,7 +16,7 @@ use App\Form\Type\InitialViewType;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class HomepageControllerTest extends ControllerBaseTest
|
||||
class HomepageControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
|
||||
@@ -20,7 +20,7 @@ use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class InvoiceControllerTest extends ControllerBaseTest
|
||||
class InvoiceControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
protected function setUp(): void
|
||||
{
|
||||
@@ -76,7 +76,7 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
$id = $templates[0]->getId();
|
||||
|
||||
$this->request($client, '/invoice/?customers[]=1&template=' . $id);
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$this->assertHasNoEntriesWithFilter($client);
|
||||
}
|
||||
@@ -90,7 +90,7 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->request($client, '/invoice/template');
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasDataTable($client);
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->request($client, '/invoice/template/create');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=invoice_template_form]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -114,7 +114,7 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/invoice/template'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$template = $this->getEntityManager()->getRepository(InvoiceTemplate::class)->findAll()[0];
|
||||
@@ -136,19 +136,19 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
$template = $templates[0];
|
||||
|
||||
$this->request($client, '/invoice/template/create/' . $template->getId());
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=invoice_template_form]')->form();
|
||||
$values = $form->getPhpValues()['invoice_template_form'];
|
||||
$this->assertEquals($template->getName() . ' (1)', $values['name']);
|
||||
$this->assertEquals($template->getTitle(), $values['title']);
|
||||
$this->assertEquals($template->getDueDays(), $values['dueDays']);
|
||||
$this->assertEquals($template->getCalculator(), $values['calculator']);
|
||||
$this->assertEquals($template->getVat(), $values['vat']);
|
||||
$this->assertEquals($template->getRenderer(), $values['renderer']);
|
||||
$this->assertEquals($template->getCompany(), $values['company']);
|
||||
$this->assertEquals($template->getAddress(), $values['address']);
|
||||
$this->assertEquals($template->getPaymentTerms(), $values['paymentTerms']);
|
||||
self::assertEquals($template->getName() . ' (1)', $values['name']);
|
||||
self::assertEquals($template->getTitle(), $values['title']);
|
||||
self::assertEquals($template->getDueDays(), $values['dueDays']);
|
||||
self::assertEquals($template->getCalculator(), $values['calculator']);
|
||||
self::assertEquals($template->getVat(), $values['vat']);
|
||||
self::assertEquals($template->getRenderer(), $values['renderer']);
|
||||
self::assertEquals($template->getCompany(), $values['company']);
|
||||
self::assertEquals($template->getAddress(), $values['address']);
|
||||
self::assertEquals($template->getPaymentTerms(), $values['paymentTerms']);
|
||||
}
|
||||
|
||||
public function testCreateAction(): void
|
||||
@@ -170,11 +170,11 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
;
|
||||
$timesheets = $this->importFixture($fixture);
|
||||
foreach ($timesheets as $timesheet) {
|
||||
$this->assertFalse($timesheet->isExported());
|
||||
self::assertFalse($timesheet->isExported());
|
||||
}
|
||||
|
||||
$this->request($client, '/invoice/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$dateRange = $this->formatDateRange($begin, $end);
|
||||
|
||||
@@ -188,11 +188,11 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
'customers' => [1],
|
||||
]);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
// no warning should be displayed
|
||||
$node = $client->getCrawler()->filter('div.callout.callout-warning.lead');
|
||||
$this->assertEquals(0, $node->count());
|
||||
self::assertEquals(0, $node->count());
|
||||
// but the datatable with all timesheets
|
||||
$this->assertDataTableRowCount($client, 'datatable_invoice_create', 20);
|
||||
|
||||
@@ -208,16 +208,16 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
$this->request($client, $action);
|
||||
$this->assertIsRedirect($client, '/invoice/show?id=', false);
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertDataTableRowCount($client, 'datatable_invoices', 1);
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
$em->clear();
|
||||
$timesheets = $em->getRepository(Timesheet::class)->findAll();
|
||||
$this->assertCount(20, $timesheets);
|
||||
self::assertCount(20, $timesheets);
|
||||
/** @var Timesheet $timesheet */
|
||||
foreach ($timesheets as $timesheet) {
|
||||
$this->assertTrue($timesheet->isExported());
|
||||
self::assertTrue($timesheet->isExported());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -240,7 +240,7 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$this->request($client, '/invoice/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$dateRange = $this->formatDateRange($begin, $end);
|
||||
|
||||
@@ -254,7 +254,7 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
'customers' => [1],
|
||||
]);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$params = [
|
||||
'daterange' => $dateRange,
|
||||
@@ -267,13 +267,13 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
$action = '/invoice/preview/1/' . $token . '?' . http_build_query($params);
|
||||
|
||||
$this->request($client, $action);
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$node = $client->getCrawler()->filter('body');
|
||||
$this->assertEquals(1, $node->count());
|
||||
self::assertEquals(1, $node->count());
|
||||
|
||||
/** @var \DOMElement $element */
|
||||
$element = $node->getIterator()[0];
|
||||
$this->assertEquals('invoice_print', $element->getAttribute('class'));
|
||||
self::assertEquals('invoice_print', $element->getAttribute('class'));
|
||||
}
|
||||
|
||||
public function testCreateActionAsAdminWithDownloadAndStatusChange(): void
|
||||
@@ -295,7 +295,7 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$this->request($client, '/invoice/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$dateRange = $this->formatDateRange($begin, $end);
|
||||
|
||||
@@ -309,11 +309,11 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
'customers' => [1],
|
||||
]);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
// no warning should be displayed
|
||||
$node = $client->getCrawler()->filter('div.callout.callout-warning.lead');
|
||||
$this->assertEquals(0, $node->count());
|
||||
self::assertEquals(0, $node->count());
|
||||
// but the datatable with all timesheets
|
||||
$this->assertDataTableRowCount($client, 'datatable_invoice_create', 20);
|
||||
|
||||
@@ -331,7 +331,7 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, '/invoice/show?id=', false);
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$invoices = $this->getEntityManager()->getRepository(Invoice::class)->findAll();
|
||||
self::assertCount(1, $invoices);
|
||||
@@ -345,23 +345,23 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
// make sure the invoice is saved
|
||||
$this->request($client, '/invoice/download/' . $id);
|
||||
$response = $client->getResponse();
|
||||
$this->assertTrue($response->isSuccessful());
|
||||
self::assertTrue($response->isSuccessful());
|
||||
self::assertInstanceOf(BinaryFileResponse::class, $response);
|
||||
self::assertFileExists($response->getFile());
|
||||
|
||||
$this->request($client, '/invoice/show');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$link = $client->getCrawler()->selectLink('Waiting for payment');
|
||||
|
||||
$this->request($client, $link->attr('href'));
|
||||
$this->assertIsRedirect($client, '/invoice/show');
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$link = $client->getCrawler()->selectLink('Invoice paid');
|
||||
$url = $link->attr('href');
|
||||
$this->request($client, $url);
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$this->assertHasValidationError(
|
||||
$client,
|
||||
@@ -375,7 +375,7 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
['#invoice_edit_form_paymentDate']
|
||||
);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=invoice_edit_form]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -386,13 +386,13 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, '/invoice/show');
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$token = $this->getCsrfToken($client, 'invoice.status');
|
||||
$this->request($client, '/invoice/change-status/' . $id . '/new/' . $token->getValue());
|
||||
$this->assertIsRedirect($client, '/invoice/show');
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testEditTemplateAction(): void
|
||||
@@ -417,7 +417,7 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/invoice/template'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$this->assertHasFlashSuccess($client);
|
||||
}
|
||||
@@ -438,10 +438,10 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
$this->assertIsRedirect($client, '/invoice/template');
|
||||
$client->followRedirect();
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$this->assertEquals(0, $this->getEntityManager()->getRepository(InvoiceTemplate::class)->count([]));
|
||||
self::assertEquals(0, $this->getEntityManager()->getRepository(InvoiceTemplate::class)->count([]));
|
||||
}
|
||||
|
||||
public function testUploadDocumentAction(): void
|
||||
@@ -452,7 +452,7 @@ class InvoiceControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$this->request($client, '/invoice/document_upload');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$node = $client->getCrawler()->filter('form[name=invoice_document_upload_form]');
|
||||
self::assertEquals(1, $node->count(), 'Could not find upload form');
|
||||
|
||||
@@ -15,7 +15,7 @@ use Symfony\Component\HttpKernel\HttpKernelBrowser;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class LayoutControllerTest extends ControllerBaseTest
|
||||
class LayoutControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testNavigationMenus(): void
|
||||
{
|
||||
@@ -24,7 +24,7 @@ class LayoutControllerTest extends ControllerBaseTest
|
||||
$user = $this->getUserByRole(User::ROLE_USER);
|
||||
|
||||
$this->request($client, '/dashboard/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$this->assertHasMainHeader($client, $user);
|
||||
$this->assertHasNavigation($client);
|
||||
@@ -34,22 +34,22 @@ class LayoutControllerTest extends ControllerBaseTest
|
||||
{
|
||||
$content = $client->getResponse()->getContent();
|
||||
|
||||
$this->assertStringContainsString('data-bs-toggle="dropdown" aria-label="Open personal menu"', $content);
|
||||
$this->assertStringContainsString('href="/en/profile/' . $user->getUserIdentifier() . '"', $content);
|
||||
$this->assertStringContainsString('href="/en/profile/' . $user->getUserIdentifier() . '/edit"', $content);
|
||||
$this->assertStringContainsString('href="/en/profile/' . $user->getUserIdentifier() . '/prefs"', $content);
|
||||
$this->assertStringContainsString('href="/en/logout', $content);
|
||||
self::assertStringContainsString('data-bs-toggle="dropdown" aria-label="Open personal menu"', $content);
|
||||
self::assertStringContainsString('href="/en/profile/' . $user->getUserIdentifier() . '"', $content);
|
||||
self::assertStringContainsString('href="/en/profile/' . $user->getUserIdentifier() . '/edit"', $content);
|
||||
self::assertStringContainsString('href="/en/profile/' . $user->getUserIdentifier() . '/prefs"', $content);
|
||||
self::assertStringContainsString('href="/en/logout', $content);
|
||||
}
|
||||
|
||||
protected function assertHasNavigation(HttpKernelBrowser $client): void
|
||||
{
|
||||
$content = $client->getResponse()->getContent();
|
||||
|
||||
$this->assertStringContainsString('href="/en/dashboard/"', $content);
|
||||
$this->assertStringContainsString('href="/en/timesheet/"', $content);
|
||||
$this->assertStringContainsString('My times', $content);
|
||||
$this->assertStringContainsString('href="/en/calendar/"', $content);
|
||||
$this->assertStringContainsString('Calendar', $content);
|
||||
self::assertStringContainsString('href="/en/dashboard/"', $content);
|
||||
self::assertStringContainsString('href="/en/timesheet/"', $content);
|
||||
self::assertStringContainsString('My times', $content);
|
||||
self::assertStringContainsString('href="/en/calendar/"', $content);
|
||||
self::assertStringContainsString('Calendar', $content);
|
||||
}
|
||||
|
||||
public function testActiveEntries(): void
|
||||
@@ -57,10 +57,10 @@ class LayoutControllerTest extends ControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
|
||||
$this->request($client, '/dashboard/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$content = $client->getResponse()->getContent();
|
||||
|
||||
$this->assertStringContainsString('<a title="Start time-tracking" href="/en/timesheet/create" class="modal-ajax-form ticktac-start btn', $content);
|
||||
self::assertStringContainsString('<a title="Start time-tracking" href="/en/timesheet/create" class="modal-ajax-form ticktac-start btn', $content);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ use App\Entity\User;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class PermissionControllerTest extends ControllerBaseTest
|
||||
class PermissionControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
@@ -135,10 +135,10 @@ class PermissionControllerTest extends ControllerBaseTest
|
||||
]);
|
||||
$this->assertIsRedirect($client, $this->createUrl('/profile/' . urlencode(UserFixtures::USERNAME_USER) . '/roles'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$user = $this->getUserByName(UserFixtures::USERNAME_USER);
|
||||
$this->assertEquals(['ROLE_TEAMLEAD', 'ROLE_SUPER_ADMIN', 'TEST_ROLE', 'ROLE_USER'], $user->getRoles());
|
||||
self::assertEquals(['ROLE_TEAMLEAD', 'ROLE_SUPER_ADMIN', 'TEST_ROLE', 'ROLE_USER'], $user->getRoles());
|
||||
|
||||
$this->request($client, '/admin/permissions');
|
||||
$node = $client->getCrawler()->filter('div.card .card-title a.confirmation-link');
|
||||
@@ -154,7 +154,7 @@ class PermissionControllerTest extends ControllerBaseTest
|
||||
|
||||
// verify that role was removed from user
|
||||
$user = $this->getUserByName(UserFixtures::USERNAME_USER);
|
||||
$this->assertEquals(['ROLE_TEAMLEAD', 'ROLE_SUPER_ADMIN', 'ROLE_USER'], $user->getRoles());
|
||||
self::assertEquals(['ROLE_TEAMLEAD', 'ROLE_SUPER_ADMIN', 'ROLE_USER'], $user->getRoles());
|
||||
}
|
||||
|
||||
public function testSavePermissionIsSecured(): void
|
||||
@@ -191,7 +191,7 @@ class PermissionControllerTest extends ControllerBaseTest
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
$rolePermissions = $em->getRepository(RolePermission::class)->findAll();
|
||||
$this->assertEquals(0, \count($rolePermissions));
|
||||
self::assertEquals(0, \count($rolePermissions));
|
||||
|
||||
$roles = $em->getRepository(Role::class)->findAll();
|
||||
$id = null;
|
||||
@@ -212,7 +212,7 @@ class PermissionControllerTest extends ControllerBaseTest
|
||||
self::assertArrayHasKey('token', $result);
|
||||
|
||||
$rolePermissions = $em->getRepository(RolePermission::class)->findAll();
|
||||
$this->assertCount(1, $rolePermissions);
|
||||
self::assertCount(1, $rolePermissions);
|
||||
$permission = $rolePermissions[0];
|
||||
self::assertInstanceOf(RolePermission::class, $permission);
|
||||
self::assertEquals('view_user', $permission->getPermission());
|
||||
@@ -232,7 +232,7 @@ class PermissionControllerTest extends ControllerBaseTest
|
||||
self::assertArrayHasKey('token', $result);
|
||||
|
||||
$rolePermissions = $em->getRepository(RolePermission::class)->findAll();
|
||||
$this->assertEquals(1, \count($rolePermissions));
|
||||
self::assertEquals(1, \count($rolePermissions));
|
||||
$permission = $rolePermissions[0];
|
||||
self::assertInstanceOf(RolePermission::class, $permission);
|
||||
self::assertEquals('view_user', $permission->getPermission());
|
||||
|
||||
@@ -16,7 +16,7 @@ use App\Tests\Plugin\Fixtures\TestPlugin\TestPlugin;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class PluginControllerTest extends ControllerBaseTest
|
||||
class PluginControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
|
||||
@@ -22,7 +22,7 @@ use Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactoryInterface;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class ProfileControllerTest extends ControllerBaseTest
|
||||
class ProfileControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
@@ -40,16 +40,16 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$this->request($client, '/profile/' . UserFixtures::USERNAME_USER);
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$this->assertHasProfileBox($client, 'John Doe');
|
||||
$this->assertHasAboutMeBox($client, UserFixtures::USERNAME_USER);
|
||||
|
||||
$content = $client->getResponse()->getContent();
|
||||
$year = (new \DateTime())->format('Y');
|
||||
$this->assertStringContainsString('<h3 class="card-title">' . $year, $content);
|
||||
$this->assertStringContainsString('new Chart(', $content);
|
||||
$this->assertStringContainsString('<canvas id="userProfileChart' . $year . '"', $content);
|
||||
self::assertStringContainsString('<h3 class="card-title">' . $year, $content);
|
||||
self::assertStringContainsString('new Chart(', $content);
|
||||
self::assertStringContainsString('<canvas id="userProfileChart' . $year . '"', $content);
|
||||
}
|
||||
|
||||
public function testIndexAction(): void
|
||||
@@ -70,13 +70,13 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
}
|
||||
|
||||
$this->request($client, '/profile/' . UserFixtures::USERNAME_USER);
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$content = $client->getResponse()->getContent();
|
||||
|
||||
foreach ($dates as $start) {
|
||||
$year = $start->format('Y');
|
||||
$this->assertStringContainsString('<h3 class="card-title">' . $year, $content);
|
||||
$this->assertStringContainsString('<canvas id="userProfileChart' . $year . '"', $content);
|
||||
self::assertStringContainsString('<h3 class="card-title">' . $year, $content);
|
||||
self::assertStringContainsString('<canvas id="userProfileChart' . $year . '"', $content);
|
||||
}
|
||||
|
||||
$this->assertHasProfileBox($client, 'John Doe');
|
||||
@@ -86,19 +86,19 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
protected function assertHasProfileBox(HttpKernelBrowser $client, string $username): void
|
||||
{
|
||||
$profileBox = $client->getCrawler()->filter('div.box-user-profile');
|
||||
$this->assertEquals(1, $profileBox->count());
|
||||
self::assertEquals(1, $profileBox->count());
|
||||
$profileAvatar = $profileBox->filter('span.avatar');
|
||||
$this->assertEquals(1, $profileAvatar->count());
|
||||
self::assertEquals(1, $profileAvatar->count());
|
||||
}
|
||||
|
||||
protected function assertHasAboutMeBox(HttpKernelBrowser $client, string $username): void
|
||||
{
|
||||
$content = $client->getResponse()->getContent();
|
||||
|
||||
$this->assertStringContainsString('<div class="datagrid-content">' . $username . '</div>', $content);
|
||||
self::assertStringContainsString('<div class="datagrid-content">' . $username . '</div>', $content);
|
||||
}
|
||||
|
||||
public function getTabTestData(): array
|
||||
public static function getTabTestData(): array
|
||||
{
|
||||
return [
|
||||
[User::ROLE_USER, UserFixtures::USERNAME_USER],
|
||||
@@ -113,14 +113,14 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser($role);
|
||||
$this->request($client, '/profile/' . $username . '/edit');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testIndexActionWithDifferentUsername(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser();
|
||||
$this->request($client, '/profile/' . UserFixtures::USERNAME_TEAMLEAD);
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
self::assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testEditAction(): void
|
||||
@@ -131,11 +131,11 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
/** @var User $user */
|
||||
$user = $this->getUserByRole(User::ROLE_USER);
|
||||
|
||||
$this->assertEquals(UserFixtures::USERNAME_USER, $user->getUserIdentifier());
|
||||
$this->assertEquals('John Doe', $user->getAlias());
|
||||
$this->assertEquals('Developer', $user->getTitle());
|
||||
$this->assertEquals('john_user@example.com', $user->getEmail());
|
||||
$this->assertTrue($user->isEnabled());
|
||||
self::assertEquals(UserFixtures::USERNAME_USER, $user->getUserIdentifier());
|
||||
self::assertEquals('John Doe', $user->getAlias());
|
||||
self::assertEquals('Developer', $user->getTitle());
|
||||
self::assertEquals('john_user@example.com', $user->getEmail());
|
||||
self::assertTrue($user->isEnabled());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=user_edit]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -148,17 +148,17 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/profile/' . urlencode(UserFixtures::USERNAME_USER) . '/edit'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$user = $this->getUserByRole(User::ROLE_USER);
|
||||
|
||||
$this->assertEquals(UserFixtures::USERNAME_USER, $user->getUserIdentifier());
|
||||
$this->assertEquals('Johnny', $user->getAlias());
|
||||
$this->assertEquals('Code Monkey', $user->getTitle());
|
||||
$this->assertEquals('updated@example.com', $user->getEmail());
|
||||
$this->assertTrue($user->isEnabled());
|
||||
self::assertEquals(UserFixtures::USERNAME_USER, $user->getUserIdentifier());
|
||||
self::assertEquals('Johnny', $user->getAlias());
|
||||
self::assertEquals('Code Monkey', $user->getTitle());
|
||||
self::assertEquals('updated@example.com', $user->getEmail());
|
||||
self::assertTrue($user->isEnabled());
|
||||
}
|
||||
|
||||
public function testEditActionWithActiveFlag(): void
|
||||
@@ -178,17 +178,17 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/profile/' . urlencode(UserFixtures::USERNAME_USER) . '/edit'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$user = $this->getUserByRole(User::ROLE_USER);
|
||||
|
||||
$this->assertEquals(UserFixtures::USERNAME_USER, $user->getUserIdentifier());
|
||||
$this->assertEquals('Johnny', $user->getAlias());
|
||||
$this->assertEquals('Code Monkey', $user->getTitle());
|
||||
$this->assertEquals('updated@example.com', $user->getEmail());
|
||||
$this->assertFalse($user->isEnabled());
|
||||
self::assertEquals(UserFixtures::USERNAME_USER, $user->getUserIdentifier());
|
||||
self::assertEquals('Johnny', $user->getAlias());
|
||||
self::assertEquals('Code Monkey', $user->getTitle());
|
||||
self::assertEquals('updated@example.com', $user->getEmail());
|
||||
self::assertFalse($user->isEnabled());
|
||||
}
|
||||
|
||||
public function testPasswordAction(): void
|
||||
@@ -202,9 +202,9 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
/** @var PasswordHasherFactoryInterface $passwordEncoder */
|
||||
$passwordEncoder = self::getContainer()->get('security.password_hasher_factory');
|
||||
|
||||
$this->assertTrue($passwordEncoder->getPasswordHasher($user)->verify($user->getPassword(), UserFixtures::DEFAULT_PASSWORD));
|
||||
$this->assertFalse($passwordEncoder->getPasswordHasher($user)->verify($user->getPassword(), 'test123'));
|
||||
$this->assertEquals(UserFixtures::USERNAME_USER, $user->getUserIdentifier());
|
||||
self::assertTrue($passwordEncoder->getPasswordHasher($user)->verify($user->getPassword(), UserFixtures::DEFAULT_PASSWORD));
|
||||
self::assertFalse($passwordEncoder->getPasswordHasher($user)->verify($user->getPassword(), 'test123'));
|
||||
self::assertEquals(UserFixtures::USERNAME_USER, $user->getUserIdentifier());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=user_password]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -221,8 +221,8 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
// are the old ones, so following the redirect would fail with "Unauthorized".
|
||||
|
||||
$user = $this->getUserByRole(User::ROLE_USER);
|
||||
$this->assertFalse($passwordEncoder->getPasswordHasher($user)->verify($user->getPassword(), UserFixtures::DEFAULT_PASSWORD));
|
||||
$this->assertTrue($passwordEncoder->getPasswordHasher($user)->verify($user->getPassword(), 'test1234'));
|
||||
self::assertFalse($passwordEncoder->getPasswordHasher($user)->verify($user->getPassword(), UserFixtures::DEFAULT_PASSWORD));
|
||||
self::assertTrue($passwordEncoder->getPasswordHasher($user)->verify($user->getPassword(), 'test1234'));
|
||||
}
|
||||
|
||||
public function testPasswordActionFailsIfPasswordLengthToShort(): void
|
||||
@@ -256,9 +256,9 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
/** @var PasswordHasherFactoryInterface $passwordEncoder */
|
||||
$passwordEncoder = self::getContainer()->get('security.password_hasher_factory');
|
||||
|
||||
$this->assertTrue($passwordEncoder->getPasswordHasher($user)->verify($user->getApiToken(), UserFixtures::DEFAULT_API_TOKEN));
|
||||
$this->assertFalse($passwordEncoder->getPasswordHasher($user)->verify($user->getApiToken(), 'test1234'));
|
||||
$this->assertEquals(UserFixtures::USERNAME_USER, $user->getUserIdentifier());
|
||||
self::assertTrue($passwordEncoder->getPasswordHasher($user)->verify($user->getApiToken(), UserFixtures::DEFAULT_API_TOKEN));
|
||||
self::assertFalse($passwordEncoder->getPasswordHasher($user)->verify($user->getApiToken(), 'test1234'));
|
||||
self::assertEquals(UserFixtures::USERNAME_USER, $user->getUserIdentifier());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=user_api_password]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -272,14 +272,14 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/profile/' . urlencode(UserFixtures::USERNAME_USER) . '/api-token'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$user = $this->getUserByRole(User::ROLE_USER);
|
||||
|
||||
$this->assertFalse($passwordEncoder->getPasswordHasher($user)->verify($user->getApiToken(), UserFixtures::DEFAULT_API_TOKEN));
|
||||
$this->assertTrue($passwordEncoder->getPasswordHasher($user)->verify($user->getApiToken(), 'test1234'));
|
||||
self::assertFalse($passwordEncoder->getPasswordHasher($user)->verify($user->getApiToken(), UserFixtures::DEFAULT_API_TOKEN));
|
||||
self::assertTrue($passwordEncoder->getPasswordHasher($user)->verify($user->getApiToken(), 'test1234'));
|
||||
}
|
||||
|
||||
public function testApiTokenActionFailsIfPasswordLengthToShort(): void
|
||||
@@ -304,7 +304,7 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD);
|
||||
$this->request($client, '/profile/' . UserFixtures::USERNAME_USER . '/roles');
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
self::assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testRolesAction(): void
|
||||
@@ -315,7 +315,7 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
/** @var User $user */
|
||||
$user = $this->getUserByRole(User::ROLE_USER);
|
||||
|
||||
$this->assertEquals(['ROLE_USER'], $user->getRoles());
|
||||
self::assertEquals(['ROLE_USER'], $user->getRoles());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=user_roles]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -327,13 +327,13 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/profile/' . urlencode(UserFixtures::USERNAME_USER) . '/roles'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$user = $this->getUserByRole(User::ROLE_USER);
|
||||
|
||||
$this->assertEquals(['ROLE_TEAMLEAD', 'ROLE_SUPER_ADMIN', 'ROLE_USER'], $user->getRoles());
|
||||
self::assertEquals(['ROLE_TEAMLEAD', 'ROLE_SUPER_ADMIN', 'ROLE_USER'], $user->getRoles());
|
||||
}
|
||||
|
||||
public function testTeamsActionIsSecured(): void
|
||||
@@ -364,7 +364,7 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
|
||||
/** @var User $user */
|
||||
$user = $this->getUserByRole(User::ROLE_USER);
|
||||
$this->assertEquals([], $user->getTeams());
|
||||
self::assertEquals([], $user->getTeams());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=user_teams]')->form();
|
||||
/** @var ChoiceFormField $team */
|
||||
@@ -375,16 +375,16 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/profile/' . urlencode(UserFixtures::USERNAME_USER) . '/teams'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$user = $this->getUserByRole(User::ROLE_USER);
|
||||
|
||||
$this->assertCount(1, $user->getTeams());
|
||||
self::assertCount(1, $user->getTeams());
|
||||
}
|
||||
|
||||
public function getPreferencesTestData(): array
|
||||
public static function getPreferencesTestData(): array
|
||||
{
|
||||
return [
|
||||
// assert that the user doesn't have the "hourly-rate_own_profile" permission
|
||||
@@ -411,9 +411,9 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
/** @var User $user */
|
||||
$user = $this->getUserByName($username);
|
||||
|
||||
$this->assertEquals($hourlyRateOriginal, $user->getPreferenceValue(UserPreference::HOURLY_RATE));
|
||||
$this->assertNull($user->getPreferenceValue(UserPreference::INTERNAL_RATE));
|
||||
$this->assertEquals('default', $user->getPreferenceValue(UserPreference::SKIN));
|
||||
self::assertEquals($hourlyRateOriginal, $user->getPreferenceValue(UserPreference::HOURLY_RATE));
|
||||
self::assertNull($user->getPreferenceValue(UserPreference::INTERNAL_RATE));
|
||||
self::assertEquals('default', $user->getPreferenceValue(UserPreference::SKIN));
|
||||
|
||||
$data = [
|
||||
UserPreference::TIMEZONE => ['value' => 'America/Creston'],
|
||||
@@ -439,23 +439,23 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $targetUrl);
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$user = $this->getUserByName($username);
|
||||
|
||||
$this->assertEquals($hourlyRate, $user->getPreferenceValue(UserPreference::HOURLY_RATE));
|
||||
$this->assertEquals($expectedInternalRate, $user->getPreferenceValue(UserPreference::INTERNAL_RATE));
|
||||
$this->assertEquals('America/Creston', $user->getPreferenceValue(UserPreference::TIMEZONE));
|
||||
$this->assertEquals('America/Creston', $user->getTimezone());
|
||||
$this->assertEquals('ar', $user->getPreferenceValue(UserPreference::LANGUAGE));
|
||||
$this->assertEquals('ru', $user->getPreferenceValue(UserPreference::LOCALE));
|
||||
$this->assertEquals('ru', $user->getLocale());
|
||||
$this->assertEquals('ar', $user->getLanguage());
|
||||
$this->assertEquals('dark', $user->getPreferenceValue(UserPreference::SKIN));
|
||||
$this->assertEquals('sunday', $user->getPreferenceValue(UserPreference::FIRST_WEEKDAY));
|
||||
$this->assertEquals('sunday', $user->getFirstDayOfWeek());
|
||||
self::assertEquals($hourlyRate, $user->getPreferenceValue(UserPreference::HOURLY_RATE));
|
||||
self::assertEquals($expectedInternalRate, $user->getPreferenceValue(UserPreference::INTERNAL_RATE));
|
||||
self::assertEquals('America/Creston', $user->getPreferenceValue(UserPreference::TIMEZONE));
|
||||
self::assertEquals('America/Creston', $user->getTimezone());
|
||||
self::assertEquals('ar', $user->getPreferenceValue(UserPreference::LANGUAGE));
|
||||
self::assertEquals('ru', $user->getPreferenceValue(UserPreference::LOCALE));
|
||||
self::assertEquals('ru', $user->getLocale());
|
||||
self::assertEquals('ar', $user->getLanguage());
|
||||
self::assertEquals('dark', $user->getPreferenceValue(UserPreference::SKIN));
|
||||
self::assertEquals('sunday', $user->getPreferenceValue(UserPreference::FIRST_WEEKDAY));
|
||||
self::assertEquals('sunday', $user->getFirstDayOfWeek());
|
||||
}
|
||||
|
||||
public function testIsTwoFactorSecure(): void
|
||||
@@ -471,17 +471,17 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
self::assertFalse($user->hasTotpSecret());
|
||||
|
||||
$this->request($client, '/profile/' . UserFixtures::USERNAME_USER . '/2fa');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$user = $this->getUserByName(UserFixtures::USERNAME_USER);
|
||||
self::assertTrue($user->hasTotpSecret());
|
||||
|
||||
$formUrl = $this->createUrl('/profile/' . UserFixtures::USERNAME_USER . '/2fa');
|
||||
$content = $client->getResponse()->getContent();
|
||||
$this->assertNotFalse($content);
|
||||
self::assertNotFalse($content);
|
||||
|
||||
$this->assertStringContainsString(' data-toggle="tooltip" title="Click to show code" alt="TOTP QR Code" style="max-width: 200px; max-height: 200px;" src="', $content);
|
||||
$this->assertStringContainsString('<form name="user_two_factor" method="post" action="' . $formUrl . '" id="user_two_factor_form">', $content);
|
||||
self::assertStringContainsString(' data-toggle="tooltip" title="Click to show code" alt="TOTP QR Code" style="max-width: 200px; max-height: 200px;" src="', $content);
|
||||
self::assertStringContainsString('<form name="user_two_factor" method="post" action="' . $formUrl . '" id="user_two_factor_form">', $content);
|
||||
}
|
||||
|
||||
public function testTwoFactorAsAdmin(): void
|
||||
@@ -494,14 +494,14 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
|
||||
$this->request($client, '/profile/' . UserFixtures::USERNAME_USER . '/2fa');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$content = $client->getResponse()->getContent();
|
||||
$this->assertNotFalse($content);
|
||||
self::assertNotFalse($content);
|
||||
$formUrl = $this->createUrl('/profile/' . UserFixtures::USERNAME_USER . '/2fa');
|
||||
|
||||
$this->assertStringContainsString(' data-toggle="tooltip" title="Click to show code" alt="TOTP QR Code" style="max-width: 200px; max-height: 200px;" src="', $content);
|
||||
$this->assertStringContainsString('<form name="user_two_factor" method="post" action="' . $formUrl . '" id="user_two_factor_form">', $content);
|
||||
self::assertStringContainsString(' data-toggle="tooltip" title="Click to show code" alt="TOTP QR Code" style="max-width: 200px; max-height: 200px;" src="', $content);
|
||||
self::assertStringContainsString('<form name="user_two_factor" method="post" action="' . $formUrl . '" id="user_two_factor_form">', $content);
|
||||
}
|
||||
|
||||
public function testActivateTwoFactorWithEmptyToken(): void
|
||||
@@ -543,25 +543,25 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD);
|
||||
$this->request($client, '/profile/' . UserFixtures::USERNAME_USER . '/contract');
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
self::assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testContractAction(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->request($client, '/profile/' . UserFixtures::USERNAME_USER . '/contract');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$user = $this->getUserByRole(User::ROLE_USER);
|
||||
$calculator = (new WorkingTimeModeDay())->getCalculator($user);
|
||||
|
||||
$this->assertEquals(0, $calculator->getWorkHoursForDay(new \DateTime('monday this week')));
|
||||
$this->assertEquals(0, $calculator->getWorkHoursForDay(new \DateTime('tuesday this week')));
|
||||
$this->assertEquals(0, $calculator->getWorkHoursForDay(new \DateTime('wednesday this week')));
|
||||
$this->assertEquals(0, $calculator->getWorkHoursForDay(new \DateTime('thursday this week')));
|
||||
$this->assertEquals(0, $calculator->getWorkHoursForDay(new \DateTime('friday this week')));
|
||||
$this->assertEquals(0, $calculator->getWorkHoursForDay(new \DateTime('saturday this week')));
|
||||
$this->assertEquals(0, $calculator->getWorkHoursForDay(new \DateTime('sunday this week')));
|
||||
self::assertEquals(0, $calculator->getWorkHoursForDay(new \DateTime('monday this week')));
|
||||
self::assertEquals(0, $calculator->getWorkHoursForDay(new \DateTime('tuesday this week')));
|
||||
self::assertEquals(0, $calculator->getWorkHoursForDay(new \DateTime('wednesday this week')));
|
||||
self::assertEquals(0, $calculator->getWorkHoursForDay(new \DateTime('thursday this week')));
|
||||
self::assertEquals(0, $calculator->getWorkHoursForDay(new \DateTime('friday this week')));
|
||||
self::assertEquals(0, $calculator->getWorkHoursForDay(new \DateTime('saturday this week')));
|
||||
self::assertEquals(0, $calculator->getWorkHoursForDay(new \DateTime('sunday this week')));
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=user_contract]')->form();
|
||||
|
||||
@@ -577,19 +577,19 @@ class ProfileControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/profile/' . urlencode(UserFixtures::USERNAME_USER) . '/contract'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$user = $this->getUserByRole(User::ROLE_USER);
|
||||
$calculator = (new WorkingTimeModeDay())->getCalculator($user);
|
||||
|
||||
$this->assertEquals(3600, $calculator->getWorkHoursForDay(new \DateTime('monday this week')));
|
||||
$this->assertEquals(7200, $calculator->getWorkHoursForDay(new \DateTime('tuesday this week')));
|
||||
$this->assertEquals(10800, $calculator->getWorkHoursForDay(new \DateTime('wednesday this week')));
|
||||
$this->assertEquals(16200, $calculator->getWorkHoursForDay(new \DateTime('thursday this week')));
|
||||
$this->assertEquals(18720, $calculator->getWorkHoursForDay(new \DateTime('friday this week')));
|
||||
$this->assertEquals(25140, $calculator->getWorkHoursForDay(new \DateTime('saturday this week')));
|
||||
$this->assertEquals(60, $calculator->getWorkHoursForDay(new \DateTime('sunday this week')));
|
||||
self::assertEquals(3600, $calculator->getWorkHoursForDay(new \DateTime('monday this week')));
|
||||
self::assertEquals(7200, $calculator->getWorkHoursForDay(new \DateTime('tuesday this week')));
|
||||
self::assertEquals(10800, $calculator->getWorkHoursForDay(new \DateTime('wednesday this week')));
|
||||
self::assertEquals(16200, $calculator->getWorkHoursForDay(new \DateTime('thursday this week')));
|
||||
self::assertEquals(18720, $calculator->getWorkHoursForDay(new \DateTime('friday this week')));
|
||||
self::assertEquals(25140, $calculator->getWorkHoursForDay(new \DateTime('saturday this week')));
|
||||
self::assertEquals(60, $calculator->getWorkHoursForDay(new \DateTime('sunday this week')));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ use Symfony\Component\HttpKernel\HttpKernelBrowser;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class ProjectControllerTest extends ControllerBaseTest
|
||||
class ProjectControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
@@ -96,7 +96,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
'page' => 1,
|
||||
]);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasDataTable($client);
|
||||
$this->assertDataTableRowCount($client, 'datatable_project_admin', 5);
|
||||
}
|
||||
@@ -411,12 +411,12 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
$dispatcher = self::getContainer()->get('event_dispatcher');
|
||||
$dispatcher->addSubscriber(new ProjectTestMetaFieldSubscriberMock());
|
||||
$this->assertAccessIsGranted($client, '/admin/project/create');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=project_edit_form]')->form();
|
||||
$this->assertTrue($form->has('project_edit_form[metaFields][metatestmock][value]'));
|
||||
$this->assertTrue($form->has('project_edit_form[metaFields][foobar][value]'));
|
||||
$this->assertFalse($form->has('project_edit_form[metaFields][0][value]'));
|
||||
self::assertTrue($form->has('project_edit_form[metaFields][metatestmock][value]'));
|
||||
self::assertTrue($form->has('project_edit_form[metaFields][foobar][value]'));
|
||||
self::assertFalse($form->has('project_edit_form[metaFields][0][value]'));
|
||||
}
|
||||
|
||||
public function testEditAction(): void
|
||||
@@ -424,7 +424,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->assertAccessIsGranted($client, '/admin/project/1/edit');
|
||||
$form = $client->getCrawler()->filter('form[name=project_edit_form]')->form();
|
||||
$this->assertEquals('Test', $form->get('project_edit_form[name]')->getValue());
|
||||
self::assertEquals('Test', $form->get('project_edit_form[name]')->getValue());
|
||||
$client->submit($form, [
|
||||
'project_edit_form' => ['name' => 'Test 2']
|
||||
]);
|
||||
@@ -432,7 +432,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
$client->followRedirect();
|
||||
$this->request($client, '/admin/project/1/edit');
|
||||
$editForm = $client->getCrawler()->filter('form[name=project_edit_form]')->form();
|
||||
$this->assertEquals('Test 2', $editForm->get('project_edit_form[name]')->getValue());
|
||||
self::assertEquals('Test 2', $editForm->get('project_edit_form[name]')->getValue());
|
||||
}
|
||||
|
||||
public function testTeamPermissionAction(): void
|
||||
@@ -477,12 +477,12 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
$id = $projects[0]->getId();
|
||||
|
||||
$this->request($client, '/admin/project/' . $id . '/edit');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->request($client, '/admin/project/' . $id . '/delete');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=form]')->form();
|
||||
$this->assertStringEndsWith($this->createUrl('/admin/project/' . $id . '/delete'), $form->getUri());
|
||||
self::assertStringEndsWith($this->createUrl('/admin/project/' . $id . '/delete'), $form->getUri());
|
||||
$client->submit($form);
|
||||
|
||||
$client->followRedirect();
|
||||
@@ -490,7 +490,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$this->request($client, '/admin/project/' . $id . '/edit');
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
self::assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testDeleteActionWithTimesheetEntries(): void
|
||||
@@ -504,18 +504,18 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$timesheets = $em->getRepository(Timesheet::class)->findAll();
|
||||
$this->assertEquals(10, \count($timesheets));
|
||||
self::assertEquals(10, \count($timesheets));
|
||||
|
||||
/** @var Timesheet $entry */
|
||||
foreach ($timesheets as $entry) {
|
||||
$this->assertEquals(1, $entry->getActivity()->getId());
|
||||
self::assertEquals(1, $entry->getActivity()->getId());
|
||||
}
|
||||
|
||||
$this->request($client, '/admin/project/1/delete');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=form]')->form();
|
||||
$this->assertStringEndsWith($this->createUrl('/admin/project/1/delete'), $form->getUri());
|
||||
self::assertStringEndsWith($this->createUrl('/admin/project/1/delete'), $form->getUri());
|
||||
$client->submit($form);
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/admin/project/'));
|
||||
@@ -525,10 +525,10 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
|
||||
$em->clear();
|
||||
$timesheets = $em->getRepository(Timesheet::class)->findAll();
|
||||
$this->assertEquals(0, \count($timesheets));
|
||||
self::assertEquals(0, \count($timesheets));
|
||||
|
||||
$this->request($client, '/admin/project/1/edit');
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
self::assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testDeleteActionWithTimesheetEntriesAndReplacement(): void
|
||||
@@ -546,18 +546,18 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
$id = $projects[0]->getId();
|
||||
|
||||
$timesheets = $em->getRepository(Timesheet::class)->findAll();
|
||||
$this->assertEquals(10, \count($timesheets));
|
||||
self::assertEquals(10, \count($timesheets));
|
||||
|
||||
/** @var Timesheet $entry */
|
||||
foreach ($timesheets as $entry) {
|
||||
$this->assertEquals(1, $entry->getProject()->getId());
|
||||
self::assertEquals(1, $entry->getProject()->getId());
|
||||
}
|
||||
|
||||
$this->request($client, '/admin/project/1/delete');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=form]')->form();
|
||||
$this->assertStringEndsWith($this->createUrl('/admin/project/1/delete'), $form->getUri());
|
||||
self::assertStringEndsWith($this->createUrl('/admin/project/1/delete'), $form->getUri());
|
||||
$client->submit($form, [
|
||||
'form' => [
|
||||
'project' => $id
|
||||
@@ -570,15 +570,15 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$timesheets = $em->getRepository(Timesheet::class)->findAll();
|
||||
$this->assertEquals(10, \count($timesheets));
|
||||
self::assertEquals(10, \count($timesheets));
|
||||
|
||||
/** @var Timesheet $entry */
|
||||
foreach ($timesheets as $entry) {
|
||||
$this->assertEquals($id, $entry->getProject()->getId());
|
||||
self::assertEquals($id, $entry->getProject()->getId());
|
||||
}
|
||||
|
||||
$this->request($client, '/admin/project/1/edit');
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
self::assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -595,7 +595,7 @@ class ProjectControllerTest extends ControllerBaseTest
|
||||
);
|
||||
}
|
||||
|
||||
public function getValidationTestData()
|
||||
public static function getValidationTestData()
|
||||
{
|
||||
return [
|
||||
[
|
||||
|
||||
@@ -14,7 +14,7 @@ use App\Tests\DataFixtures\TimesheetFixtures;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class QuickEntryControllerTest extends ControllerBaseTest
|
||||
class QuickEntryControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
@@ -25,7 +25,7 @@ class QuickEntryControllerTest extends ControllerBaseTest
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser();
|
||||
$this->request($client, '/quick_entry/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$node = $client->getCrawler()->filter('form[name=quick_entry_weekrange_form]');
|
||||
self::assertEquals(1, $node->filter('div.btn-group.week-picker-btn-group')->count());
|
||||
@@ -65,7 +65,7 @@ class QuickEntryControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$this->request($client, '/quick_entry/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$node = $client->getCrawler()->filter('form[name=quick_entry_form]');
|
||||
self::assertEquals(1, $node->filter('input.btn-primary[type=submit]')->count());
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
namespace App\Tests\Controller\Reporting;
|
||||
|
||||
use App\Entity\User;
|
||||
use App\Tests\Controller\ControllerBaseTest;
|
||||
use App\Tests\Controller\AbstractControllerBaseTestCase;
|
||||
use App\Tests\DataFixtures\TimesheetFixtures;
|
||||
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
abstract class AbstractUserPeriodControllerTest extends ControllerBaseTest
|
||||
abstract class AbstractUserPeriodControllerTestCase extends AbstractControllerBaseTestCase
|
||||
{
|
||||
protected function importReportingFixture(string $role): void
|
||||
{
|
||||
@@ -37,7 +37,7 @@ abstract class AbstractUserPeriodControllerTest extends ControllerBaseTest
|
||||
$this->assertUrlIsSecured($this->getReportUrl());
|
||||
}
|
||||
|
||||
public function getTestData(): array
|
||||
public static function getTestData(): array
|
||||
{
|
||||
return [
|
||||
[4, 'duration', 'Working hours total'],
|
||||
@@ -10,16 +10,16 @@
|
||||
namespace App\Tests\Controller\Reporting;
|
||||
|
||||
use App\Entity\User;
|
||||
use App\Tests\Controller\ControllerBaseTest;
|
||||
use App\Tests\Controller\AbstractControllerBaseTestCase;
|
||||
use App\Tests\DataFixtures\TimesheetFixtures;
|
||||
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
abstract class AbstractUsersPeriodControllerTest extends ControllerBaseTest
|
||||
abstract class AbstractUsersPeriodControllerTestCase extends AbstractControllerBaseTestCase
|
||||
{
|
||||
protected function importReportingFixture(string $role)
|
||||
protected function importReportingFixture(string $role): void
|
||||
{
|
||||
$fixture = new TimesheetFixtures();
|
||||
$fixture->setAmount(50);
|
||||
@@ -40,7 +40,7 @@ abstract class AbstractUsersPeriodControllerTest extends ControllerBaseTest
|
||||
$this->assertUrlIsSecured($this->getReportUrl());
|
||||
}
|
||||
|
||||
public function getTestData(): array
|
||||
public static function getTestData(): array
|
||||
{
|
||||
return [
|
||||
['duration', 'Working hours total'],
|
||||
@@ -86,7 +86,7 @@ abstract class AbstractUsersPeriodControllerTest extends ControllerBaseTest
|
||||
$this->importReportingFixture(User::ROLE_SUPER_ADMIN);
|
||||
$this->request($client, \sprintf('%s?date=12999119191&sumType=%s', $this->getReportExportUrl(), $dataType));
|
||||
$response = $client->getResponse();
|
||||
$this->assertTrue($response->isSuccessful());
|
||||
self::assertTrue($response->isSuccessful());
|
||||
self::assertInstanceOf(BinaryFileResponse::class, $response);
|
||||
self::assertEquals('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', $response->headers->get('Content-Type'));
|
||||
self::assertStringContainsString('attachment; filename=kimai-export-users-', $response->headers->get('Content-Disposition'));
|
||||
@@ -11,7 +11,7 @@ namespace App\Tests\Controller\Reporting;
|
||||
|
||||
use App\Entity\Project;
|
||||
use App\Entity\User;
|
||||
use App\Tests\Controller\ControllerBaseTest;
|
||||
use App\Tests\Controller\AbstractControllerBaseTestCase;
|
||||
use App\Tests\DataFixtures\ActivityFixtures;
|
||||
use App\Tests\DataFixtures\CustomerFixtures;
|
||||
use App\Tests\DataFixtures\ProjectFixtures;
|
||||
@@ -22,7 +22,7 @@ use Symfony\Component\HttpKernel\HttpKernelBrowser;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class CustomerMonthlyProjectsControllerTest extends ControllerBaseTest
|
||||
class CustomerMonthlyProjectsControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testReportIsSecure(): void
|
||||
{
|
||||
@@ -90,14 +90,14 @@ class CustomerMonthlyProjectsControllerTest extends ControllerBaseTest
|
||||
$this->assertAccessIsGranted($client, '/reporting/customer/monthly_projects/export');
|
||||
|
||||
$response = $client->getResponse();
|
||||
$this->assertTrue($response->isSuccessful());
|
||||
self::assertTrue($response->isSuccessful());
|
||||
self::assertInstanceOf(BinaryFileResponse::class, $response);
|
||||
|
||||
// temporary file!
|
||||
$file = $response->getFile();
|
||||
self::assertFileDoesNotExist($response->getFile());
|
||||
|
||||
$this->assertEquals('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', $response->headers->get('Content-Type'));
|
||||
$this->assertStringContainsString('attachment; filename=kimai-export-users-', $response->headers->get('Content-Disposition'));
|
||||
self::assertEquals('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', $response->headers->get('Content-Type'));
|
||||
self::assertStringContainsString('attachment; filename=kimai-export-users-', $response->headers->get('Content-Disposition'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace App\Tests\Controller\Reporting;
|
||||
|
||||
use App\Entity\Project;
|
||||
use App\Entity\User;
|
||||
use App\Tests\Controller\ControllerBaseTest;
|
||||
use App\Tests\Controller\AbstractControllerBaseTestCase;
|
||||
use App\Tests\DataFixtures\ActivityFixtures;
|
||||
use App\Tests\DataFixtures\CustomerFixtures;
|
||||
use App\Tests\DataFixtures\ProjectFixtures;
|
||||
@@ -21,7 +21,7 @@ use App\Timesheet\DateTimeFactory;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class ProjectDateRangeControllerTest extends ControllerBaseTest
|
||||
class ProjectDateRangeControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testReportIsSecure(): void
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
namespace App\Tests\Controller\Reporting;
|
||||
|
||||
use App\Entity\User;
|
||||
use App\Tests\Controller\ControllerBaseTest;
|
||||
use App\Tests\Controller\AbstractControllerBaseTestCase;
|
||||
use App\Tests\DataFixtures\ActivityFixtures;
|
||||
use App\Tests\DataFixtures\CustomerFixtures;
|
||||
use App\Tests\DataFixtures\ProjectFixtures;
|
||||
@@ -19,7 +19,7 @@ use App\Tests\DataFixtures\TimesheetFixtures;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class ProjectDetailsControllerTest extends ControllerBaseTest
|
||||
class ProjectDetailsControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testReportIsSecure(): void
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
namespace App\Tests\Controller\Reporting;
|
||||
|
||||
use App\Entity\User;
|
||||
use App\Tests\Controller\ControllerBaseTest;
|
||||
use App\Tests\Controller\AbstractControllerBaseTestCase;
|
||||
use App\Tests\DataFixtures\ActivityFixtures;
|
||||
use App\Tests\DataFixtures\CustomerFixtures;
|
||||
use App\Tests\DataFixtures\ProjectFixtures;
|
||||
@@ -19,7 +19,7 @@ use App\Tests\DataFixtures\TimesheetFixtures;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class ProjectInactiveControllerTest extends ControllerBaseTest
|
||||
class ProjectInactiveControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testReportIsSecure(): void
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
namespace App\Tests\Controller\Reporting;
|
||||
|
||||
use App\Entity\User;
|
||||
use App\Tests\Controller\ControllerBaseTest;
|
||||
use App\Tests\Controller\AbstractControllerBaseTestCase;
|
||||
use App\Tests\DataFixtures\ActivityFixtures;
|
||||
use App\Tests\DataFixtures\CustomerFixtures;
|
||||
use App\Tests\DataFixtures\ProjectFixtures;
|
||||
@@ -20,7 +20,7 @@ use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class ProjectViewControllerTest extends ControllerBaseTest
|
||||
class ProjectViewControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testReportIsSecure(): void
|
||||
{
|
||||
@@ -87,7 +87,7 @@ class ProjectViewControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertAccessIsGranted($client, '/reporting/project_view/export');
|
||||
$response = $client->getResponse();
|
||||
$this->assertTrue($response->isSuccessful());
|
||||
self::assertTrue($response->isSuccessful());
|
||||
self::assertInstanceOf(BinaryFileResponse::class, $response);
|
||||
self::assertNotNull($response->headers->get('Content-Type'));
|
||||
self::assertEquals('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', $response->headers->get('Content-Type'));
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace App\Tests\Controller\Reporting;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class ReportUsersMonthControllerTest extends AbstractUsersPeriodControllerTest
|
||||
class ReportUsersMonthControllerTest extends AbstractUsersPeriodControllerTestCase
|
||||
{
|
||||
protected function getReportUrl(): string
|
||||
{
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace App\Tests\Controller\Reporting;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class ReportUsersWeekControllerTest extends AbstractUsersPeriodControllerTest
|
||||
class ReportUsersWeekControllerTest extends AbstractUsersPeriodControllerTestCase
|
||||
{
|
||||
protected function getReportUrl(): string
|
||||
{
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace App\Tests\Controller\Reporting;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class ReportUsersYearControllerTest extends AbstractUsersPeriodControllerTest
|
||||
class ReportUsersYearControllerTest extends AbstractUsersPeriodControllerTestCase
|
||||
{
|
||||
protected function getReportUrl(): string
|
||||
{
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace App\Tests\Controller\Reporting;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class UserMonthControllerTest extends AbstractUserPeriodControllerTest
|
||||
class UserMonthControllerTest extends AbstractUserPeriodControllerTestCase
|
||||
{
|
||||
protected function getReportUrl(): string
|
||||
{
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace App\Tests\Controller\Reporting;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class UserWeekControllerTest extends AbstractUserPeriodControllerTest
|
||||
class UserWeekControllerTest extends AbstractUserPeriodControllerTestCase
|
||||
{
|
||||
protected function getReportUrl(): string
|
||||
{
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace App\Tests\Controller\Reporting;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class UserYearControllerTest extends AbstractUserPeriodControllerTest
|
||||
class UserYearControllerTest extends AbstractUserPeriodControllerTestCase
|
||||
{
|
||||
protected function getReportUrl(): string
|
||||
{
|
||||
|
||||
@@ -14,7 +14,7 @@ use App\Entity\User;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class ReportingControllerTest extends ControllerBaseTest
|
||||
class ReportingControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
@@ -26,7 +26,7 @@ class ReportingControllerTest extends ControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->request($client, '/reporting/');
|
||||
$nodes = $client->getCrawler()->filter('section.content div.row-cards a.card-link');
|
||||
$this->assertCount(11, $nodes);
|
||||
self::assertCount(11, $nodes);
|
||||
}
|
||||
|
||||
public function testAllReports(): void
|
||||
@@ -34,7 +34,7 @@ class ReportingControllerTest extends ControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
$this->request($client, '/reporting/');
|
||||
$nodes = $client->getCrawler()->filter('section.content div.row-cards a.card-link');
|
||||
$this->assertCount(11, $nodes);
|
||||
self::assertCount(11, $nodes);
|
||||
foreach ($nodes as $node) {
|
||||
self::assertNotNull($node->attributes);
|
||||
$link = $node->attributes->getNamedItem('href');
|
||||
@@ -52,6 +52,6 @@ class ReportingControllerTest extends ControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_USER);
|
||||
$this->request($client, '/reporting/');
|
||||
$nodes = $client->getCrawler()->filter('section.content div.row-cards a.card-link');
|
||||
$this->assertCount(3, $nodes);
|
||||
self::assertCount(3, $nodes);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,12 +9,12 @@
|
||||
|
||||
namespace App\Tests\Controller\Security;
|
||||
|
||||
use App\Tests\Controller\ControllerBaseTest;
|
||||
use App\Tests\Controller\AbstractControllerBaseTestCase;
|
||||
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class PasswordResetControllerTest extends ControllerBaseTest
|
||||
class PasswordResetControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
private function testResetActionWithDeactivatedFeature(string $route, string $method = 'GET'): void
|
||||
{
|
||||
@@ -47,16 +47,16 @@ class PasswordResetControllerTest extends ControllerBaseTest
|
||||
$this->request($client, '/resetting/request');
|
||||
|
||||
$response = $client->getResponse();
|
||||
$this->assertTrue($response->isSuccessful());
|
||||
self::assertTrue($response->isSuccessful());
|
||||
|
||||
$content = $response->getContent();
|
||||
$this->assertNotFalse($content);
|
||||
$this->assertStringContainsString('<title>Kimai – Time Tracking</title>', $content);
|
||||
$this->assertStringContainsString('Reset your password', $content);
|
||||
$this->assertStringContainsString('<form class="card-body security-password-reset" action="/en/resetting/send-email" method="post" autocomplete="off">', $content);
|
||||
$this->assertStringContainsString('<input autocomplete="username" type="text"', $content);
|
||||
$this->assertStringContainsString('id="username" name="username" required="required"', $content);
|
||||
$this->assertStringContainsString('Reset your password', $content);
|
||||
self::assertNotFalse($content);
|
||||
self::assertStringContainsString('<title>Kimai – Time Tracking</title>', $content);
|
||||
self::assertStringContainsString('Reset your password', $content);
|
||||
self::assertStringContainsString('<form class="card-body security-password-reset" action="/en/resetting/send-email" method="post" autocomplete="off">', $content);
|
||||
self::assertStringContainsString('<input autocomplete="username" type="text"', $content);
|
||||
self::assertStringContainsString('id="username" name="username" required="required"', $content);
|
||||
self::assertStringContainsString('Reset your password', $content);
|
||||
|
||||
$form = $client->getCrawler()->filter('form')->form();
|
||||
$client->submit($form, [
|
||||
@@ -65,12 +65,12 @@ class PasswordResetControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/resetting/check-email'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
// TODO test the actual email and provided login link
|
||||
|
||||
$user = $this->loadUserFromDatabase('john_user');
|
||||
$this->assertTrue($user->requiresPasswordReset());
|
||||
self::assertTrue($user->requiresPasswordReset());
|
||||
}
|
||||
|
||||
public function testRequestAsLoggedInUserRedirects(): void
|
||||
@@ -93,11 +93,11 @@ class PasswordResetControllerTest extends ControllerBaseTest
|
||||
$this->request($client, '/resetting/send-email', 'POST');
|
||||
$this->assertIsRedirect($client, $this->createUrl('/resetting/check-email'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$content = $client->getResponse()->getContent();
|
||||
$this->assertNotFalse($content);
|
||||
$this->assertStringContainsString('An email has been sent with a link to reset your password.', $content);
|
||||
$this->assertStringContainsString('Note: You can only request a new password once every 1:00 hours.', $content);
|
||||
self::assertNotFalse($content);
|
||||
self::assertStringContainsString('An email has been sent with a link to reset your password.', $content);
|
||||
self::assertStringContainsString('Note: You can only request a new password once every 1:00 hours.', $content);
|
||||
}
|
||||
|
||||
public function testResetWithEmptyUsername(): void
|
||||
@@ -106,11 +106,11 @@ class PasswordResetControllerTest extends ControllerBaseTest
|
||||
$this->request($client, '/resetting/send-email', 'POST', ['username' => '']);
|
||||
$this->assertIsRedirect($client, $this->createUrl('/resetting/check-email'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$content = $client->getResponse()->getContent();
|
||||
$this->assertNotFalse($content);
|
||||
$this->assertStringContainsString('An email has been sent with a link to reset your password.', $content);
|
||||
$this->assertStringContainsString('Note: You can only request a new password once every 1:00 hours.', $content);
|
||||
self::assertNotFalse($content);
|
||||
self::assertStringContainsString('An email has been sent with a link to reset your password.', $content);
|
||||
self::assertStringContainsString('Note: You can only request a new password once every 1:00 hours.', $content);
|
||||
}
|
||||
|
||||
public function testResetWithUnknownUsername(): void
|
||||
@@ -119,11 +119,11 @@ class PasswordResetControllerTest extends ControllerBaseTest
|
||||
$this->request($client, '/resetting/send-email', 'POST', ['username' => 'foobar']);
|
||||
$this->assertIsRedirect($client, $this->createUrl('/resetting/check-email'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$content = $client->getResponse()->getContent();
|
||||
$this->assertNotFalse($content);
|
||||
$this->assertStringContainsString('An email has been sent with a link to reset your password.', $content);
|
||||
$this->assertStringContainsString('Note: You can only request a new password once every 1:00 hours.', $content);
|
||||
self::assertNotFalse($content);
|
||||
self::assertStringContainsString('An email has been sent with a link to reset your password.', $content);
|
||||
self::assertStringContainsString('Note: You can only request a new password once every 1:00 hours.', $content);
|
||||
}
|
||||
|
||||
public function testResetWithKnownUsername(): void
|
||||
@@ -131,10 +131,10 @@ class PasswordResetControllerTest extends ControllerBaseTest
|
||||
$client = self::createClient();
|
||||
|
||||
$user = $this->loadUserFromDatabase('john_user');
|
||||
$this->assertFalse($user->requiresPasswordReset());
|
||||
self::assertFalse($user->requiresPasswordReset());
|
||||
|
||||
$this->request($client, '/resetting/request');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$form = $client->getCrawler()->filter('form')->form();
|
||||
$client->submit($form, [
|
||||
'username' => 'john_user',
|
||||
@@ -142,15 +142,15 @@ class PasswordResetControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/resetting/check-email'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$content = $client->getResponse()->getContent();
|
||||
$this->assertNotFalse($content);
|
||||
$this->assertStringContainsString('An email has been sent with a link to reset your password.', $content);
|
||||
$this->assertStringContainsString('Note: You can only request a new password once every 1:00 hours.', $content);
|
||||
self::assertNotFalse($content);
|
||||
self::assertStringContainsString('An email has been sent with a link to reset your password.', $content);
|
||||
self::assertStringContainsString('Note: You can only request a new password once every 1:00 hours.', $content);
|
||||
|
||||
// TODO test the actual email and provided login link
|
||||
|
||||
$user = $this->loadUserFromDatabase('john_user');
|
||||
$this->assertTrue($user->requiresPasswordReset());
|
||||
self::assertTrue($user->requiresPasswordReset());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ use App\Controller\Security\SecurityController;
|
||||
use App\DataFixtures\UserFixtures;
|
||||
use App\Entity\User;
|
||||
use App\Tests\Configuration\TestConfigLoader;
|
||||
use App\Tests\Controller\ControllerBaseTest;
|
||||
use App\Tests\Controller\AbstractControllerBaseTestCase;
|
||||
use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
|
||||
|
||||
/**
|
||||
@@ -24,7 +24,7 @@ use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
|
||||
*
|
||||
* @group integration
|
||||
*/
|
||||
class SecurityControllerTest extends ControllerBaseTest
|
||||
class SecurityControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testRootUrlIsRedirectedToLogin(): void
|
||||
{
|
||||
@@ -42,17 +42,17 @@ class SecurityControllerTest extends ControllerBaseTest
|
||||
$this->request($client, '/login');
|
||||
|
||||
$response = $client->getResponse();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$content = $response->getContent();
|
||||
$this->assertStringContainsString('<title>Kimai – Time Tracking</title>', $content);
|
||||
$this->assertStringContainsString('<form action="/en/login_check" method="post"', $content);
|
||||
$this->assertStringContainsString('<input autocomplete="username" type="text" id="username" name="_username"', $content);
|
||||
$this->assertStringContainsString('<input autocomplete="new-password" id="password" name="_password" type="password"', $content);
|
||||
$this->assertStringContainsString('">Log in</button>', $content);
|
||||
$this->assertStringContainsString('<input type="hidden" name="_csrf_token" value="', $content);
|
||||
$this->assertStringNotContainsString('<a href="/en/register/"', $content);
|
||||
$this->assertStringNotContainsString('Register a new account', $content);
|
||||
self::assertStringContainsString('<title>Kimai – Time Tracking</title>', $content);
|
||||
self::assertStringContainsString('<form action="/en/login_check" method="post"', $content);
|
||||
self::assertStringContainsString('<input autocomplete="username" type="text" id="username" name="_username"', $content);
|
||||
self::assertStringContainsString('<input autocomplete="new-password" id="password" name="_password" type="password"', $content);
|
||||
self::assertStringContainsString('">Log in</button>', $content);
|
||||
self::assertStringContainsString('<input type="hidden" name="_csrf_token" value="', $content);
|
||||
self::assertStringNotContainsString('<a href="/en/register/"', $content);
|
||||
self::assertStringNotContainsString('Register a new account', $content);
|
||||
}
|
||||
|
||||
public function testLoginPositive(): void
|
||||
@@ -60,7 +60,7 @@ class SecurityControllerTest extends ControllerBaseTest
|
||||
$client = self::createClient();
|
||||
$this->request($client, '/login');
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('body form')->form();
|
||||
$client->submit($form, [
|
||||
@@ -77,7 +77,7 @@ class SecurityControllerTest extends ControllerBaseTest
|
||||
$this->assertIsRedirect($client, '/timesheet/'); // redirect to configured start page
|
||||
$client->followRedirect();
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testLoginAlreadyLoggedIn(): void
|
||||
@@ -92,7 +92,7 @@ class SecurityControllerTest extends ControllerBaseTest
|
||||
$this->assertIsRedirect($client, '/timesheet/'); // redirect to configured start page
|
||||
$client->followRedirect();
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testLoginNegative(): void
|
||||
@@ -100,7 +100,7 @@ class SecurityControllerTest extends ControllerBaseTest
|
||||
$client = self::createClient();
|
||||
$this->request($client, '/login');
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('body form')->form();
|
||||
$client->submit($form, [
|
||||
@@ -111,7 +111,7 @@ class SecurityControllerTest extends ControllerBaseTest
|
||||
$this->assertIsRedirect($client); // redirect to root URL
|
||||
$client->followRedirect();
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertStringContainsString('<div class="alert alert-important alert-danger">Invalid credentials.</div>', $client->getResponse()->getContent());
|
||||
}
|
||||
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
namespace App\Tests\Controller\Security;
|
||||
|
||||
use App\Entity\User;
|
||||
use App\Tests\Controller\ControllerBaseTest;
|
||||
use App\Tests\Controller\AbstractControllerBaseTestCase;
|
||||
use Symfony\Bundle\FrameworkBundle\KernelBrowser;
|
||||
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class SelfRegistrationControllerTest extends ControllerBaseTest
|
||||
class SelfRegistrationControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
private function assertRegisterActionWithDeactivatedFeature(string $route): void
|
||||
{
|
||||
@@ -53,22 +53,22 @@ class SelfRegistrationControllerTest extends ControllerBaseTest
|
||||
$this->request($client, '/register/');
|
||||
|
||||
$response = $client->getResponse();
|
||||
$this->assertTrue($response->isSuccessful());
|
||||
self::assertTrue($response->isSuccessful());
|
||||
|
||||
$content = $response->getContent();
|
||||
$this->assertStringContainsString('<title>Kimai – Time Tracking</title>', $content);
|
||||
$this->assertStringContainsString('Register a new account', $content);
|
||||
$this->assertStringContainsString('<form name="user_registration_form" method="post" action="/en/register/"', $content);
|
||||
$this->assertStringContainsString('<input type="email"', $content);
|
||||
$this->assertStringContainsString('id="user_registration_form_email" name="user_registration_form[email]" required="required"', $content);
|
||||
$this->assertStringContainsString('<input type="text"', $content);
|
||||
$this->assertStringContainsString('id="user_registration_form_username" name="user_registration_form[username]" required="required" maxlength="64" pattern="', $content);
|
||||
$this->assertStringContainsString('<input type="password"', $content);
|
||||
$this->assertStringContainsString('id="user_registration_form_plainPassword_first" name="user_registration_form[plainPassword][first]" required="required"', $content);
|
||||
$this->assertStringContainsString('id="user_registration_form_plainPassword_second" name="user_registration_form[plainPassword][second]" required="required"', $content);
|
||||
$this->assertStringContainsString('<input type="hidden"', $content);
|
||||
$this->assertStringContainsString('id="user_registration_form__token" name="user_registration_form[_token]"', $content);
|
||||
$this->assertStringContainsString('>Register</button>', $content);
|
||||
self::assertStringContainsString('<title>Kimai – Time Tracking</title>', $content);
|
||||
self::assertStringContainsString('Register a new account', $content);
|
||||
self::assertStringContainsString('<form name="user_registration_form" method="post" action="/en/register/"', $content);
|
||||
self::assertStringContainsString('<input type="email"', $content);
|
||||
self::assertStringContainsString('id="user_registration_form_email" name="user_registration_form[email]" required="required"', $content);
|
||||
self::assertStringContainsString('<input type="text"', $content);
|
||||
self::assertStringContainsString('id="user_registration_form_username" name="user_registration_form[username]" required="required" maxlength="64" pattern="', $content);
|
||||
self::assertStringContainsString('<input type="password"', $content);
|
||||
self::assertStringContainsString('id="user_registration_form_plainPassword_first" name="user_registration_form[plainPassword][first]" required="required"', $content);
|
||||
self::assertStringContainsString('id="user_registration_form_plainPassword_second" name="user_registration_form[plainPassword][second]" required="required"', $content);
|
||||
self::assertStringContainsString('<input type="hidden"', $content);
|
||||
self::assertStringContainsString('id="user_registration_form__token" name="user_registration_form[_token]"', $content);
|
||||
self::assertStringContainsString('>Register</button>', $content);
|
||||
}
|
||||
|
||||
private function createUser(KernelBrowser $client, string $username, string $email, string $password): User
|
||||
@@ -77,7 +77,7 @@ class SelfRegistrationControllerTest extends ControllerBaseTest
|
||||
$this->request($client, '/register/');
|
||||
|
||||
$response = $client->getResponse();
|
||||
$this->assertTrue($response->isSuccessful());
|
||||
self::assertTrue($response->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=user_registration_form]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -93,7 +93,7 @@ class SelfRegistrationControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/register/check-email'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
return $this->loadUserFromDatabase($username);
|
||||
}
|
||||
@@ -106,7 +106,7 @@ class SelfRegistrationControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/register/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testRegisterAccount(): void
|
||||
@@ -115,9 +115,9 @@ class SelfRegistrationControllerTest extends ControllerBaseTest
|
||||
$this->createUser($client, 'example', 'register@example.com', 'test1234');
|
||||
|
||||
$content = $client->getResponse()->getContent();
|
||||
$this->assertStringContainsString('<title>Kimai – Time Tracking</title>', $content);
|
||||
$this->assertStringContainsString('An e-mail has been sent to register@example.com. It contains a link you must click to activate your account.', $content);
|
||||
$this->assertStringContainsString('<a href="/en/login">', $content);
|
||||
self::assertStringContainsString('<title>Kimai – Time Tracking</title>', $content);
|
||||
self::assertStringContainsString('An e-mail has been sent to register@example.com. It contains a link you must click to activate your account.', $content);
|
||||
self::assertStringContainsString('<a href="/en/login">', $content);
|
||||
}
|
||||
|
||||
public function testConfirmWithInvalidToken(): void
|
||||
@@ -128,7 +128,7 @@ class SelfRegistrationControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/login'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testConfirmAccount(): void
|
||||
@@ -143,9 +143,9 @@ class SelfRegistrationControllerTest extends ControllerBaseTest
|
||||
$this->request($client, '/register/confirm/' . $token);
|
||||
$this->assertIsRedirect($client, $this->createUrl('/register/confirmed'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$content = $client->getResponse()->getContent();
|
||||
$this->assertStringContainsString('Congratulations example, your account is now activated.', $content);
|
||||
self::assertStringContainsString('Congratulations example, your account is now activated.', $content);
|
||||
|
||||
$user = $this->loadUserFromDatabase('example');
|
||||
self::assertTrue($user->isEnabled());
|
||||
@@ -160,7 +160,7 @@ class SelfRegistrationControllerTest extends ControllerBaseTest
|
||||
// AccessDeniedException redirects to login
|
||||
$this->assertIsRedirect($client, $this->createUrl('/login'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -174,7 +174,7 @@ class SelfRegistrationControllerTest extends ControllerBaseTest
|
||||
$this->assertHasValidationError($client, '/register/', 'form[name=user_registration_form]', $formData, $validationFields);
|
||||
}
|
||||
|
||||
public function getValidationTestData(): array // @phpstan-ignore missingType.iterableValue
|
||||
public static function getValidationTestData(): array // @phpstan-ignore missingType.iterableValue
|
||||
{
|
||||
return [
|
||||
[
|
||||
|
||||
@@ -15,7 +15,7 @@ use App\Entity\User;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
class SystemConfigurationControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
@@ -41,17 +41,17 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
$expectedCount = \count($expectedForms) + 1; // the menu is another card
|
||||
|
||||
$result = $client->getCrawler()->filter('section.content div.card');
|
||||
$this->assertEquals($expectedCount, \count($result));
|
||||
self::assertEquals($expectedCount, \count($result));
|
||||
|
||||
$result = $client->getCrawler()->filter('section.content div.card form');
|
||||
$this->assertEquals(\count($expectedForms), \count($result));
|
||||
self::assertEquals(\count($expectedForms), \count($result));
|
||||
|
||||
foreach ($expectedForms as $formConfig) {
|
||||
$result = $client->getCrawler()->filter($formConfig[0]);
|
||||
$this->assertEquals(1, \count($result));
|
||||
self::assertEquals(1, \count($result));
|
||||
$form = $result->form();
|
||||
$this->assertStringEndsWith($formConfig[1], $form->getUri());
|
||||
$this->assertEquals('POST', $form->getMethod());
|
||||
self::assertStringEndsWith($formConfig[1], $form->getUri());
|
||||
self::assertEquals('POST', $form->getMethod());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,19 +61,19 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
$this->assertAccessIsGranted($client, '/admin/system-config/edit/timesheet');
|
||||
|
||||
$result = $client->getCrawler()->filter('section.content div.card');
|
||||
$this->assertEquals(1, \count($result));
|
||||
self::assertEquals(1, \count($result));
|
||||
|
||||
$result = $client->getCrawler()->filter('section.content div.card form');
|
||||
$this->assertEquals(1, \count($result));
|
||||
self::assertEquals(1, \count($result));
|
||||
|
||||
$result = $client->getCrawler()->filter('form[name=system_configuration_form_timesheet]');
|
||||
$this->assertEquals(1, \count($result));
|
||||
self::assertEquals(1, \count($result));
|
||||
$form = $result->form();
|
||||
$this->assertEquals('POST', $form->getMethod());
|
||||
self::assertEquals('POST', $form->getMethod());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<array<string>>
|
||||
* @return array<array<non-empty-string>>
|
||||
*/
|
||||
public function getTestDataForms(): array
|
||||
{
|
||||
@@ -100,10 +100,10 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
$this->assertAccessIsGranted($client, '/admin/system-config/');
|
||||
|
||||
$configService = $this->getSystemConfiguration();
|
||||
$this->assertEquals('default', $configService->find('timesheet.mode'));
|
||||
$this->assertTrue($configService->find('timesheet.rules.allow_future_times'));
|
||||
$this->assertTrue($configService->find('timesheet.rules.allow_zero_duration'));
|
||||
$this->assertEquals(1, $configService->find('timesheet.active_entries.hard_limit'));
|
||||
self::assertEquals('default', $configService->find('timesheet.mode'));
|
||||
self::assertTrue($configService->find('timesheet.rules.allow_future_times'));
|
||||
self::assertTrue($configService->find('timesheet.rules.allow_zero_duration'));
|
||||
self::assertEquals(1, $configService->find('timesheet.active_entries.hard_limit'));
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=system_configuration_form_timesheet]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -122,14 +122,14 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/admin/system-config/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSaveSuccess($client);
|
||||
|
||||
$configService = $this->getSystemConfiguration();
|
||||
$this->assertEquals('punch', $configService->find('timesheet.mode'));
|
||||
$this->assertFalse($configService->find('timesheet.rules.allow_future_times'));
|
||||
$this->assertFalse($configService->find('timesheet.rules.allow_overlapping_records'));
|
||||
$this->assertEquals(99, $configService->find('timesheet.active_entries.hard_limit'));
|
||||
self::assertEquals('punch', $configService->find('timesheet.mode'));
|
||||
self::assertFalse($configService->find('timesheet.rules.allow_future_times'));
|
||||
self::assertFalse($configService->find('timesheet.rules.allow_overlapping_records'));
|
||||
self::assertEquals(99, $configService->find('timesheet.active_entries.hard_limit'));
|
||||
}
|
||||
|
||||
public function testUpdateLockdownPeriodConfig(): void
|
||||
@@ -138,10 +138,10 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
$this->assertAccessIsGranted($client, '/admin/system-config/');
|
||||
|
||||
$configService = $this->getSystemConfiguration();
|
||||
$this->assertNull($configService->find('timesheet.rules.lockdown_period_start'));
|
||||
$this->assertNull($configService->find('timesheet.rules.lockdown_period_end'));
|
||||
$this->assertNull($configService->find('timesheet.rules.lockdown_period_timezone'));
|
||||
$this->assertNull($configService->find('timesheet.rules.lockdown_grace_period'));
|
||||
self::assertNull($configService->find('timesheet.rules.lockdown_period_start'));
|
||||
self::assertNull($configService->find('timesheet.rules.lockdown_period_end'));
|
||||
self::assertNull($configService->find('timesheet.rules.lockdown_period_timezone'));
|
||||
self::assertNull($configService->find('timesheet.rules.lockdown_grace_period'));
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=system_configuration_form_lockdown_period]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -157,14 +157,14 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/admin/system-config/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSaveSuccess($client);
|
||||
|
||||
$configService = $this->getSystemConfiguration();
|
||||
$this->assertEquals('first day of last month 01:23:45', $configService->find('timesheet.rules.lockdown_period_start'));
|
||||
$this->assertEquals('last day of last month 23:01:45', $configService->find('timesheet.rules.lockdown_period_end'));
|
||||
$this->assertEquals('Africa/Bangui', $configService->find('timesheet.rules.lockdown_period_timezone'));
|
||||
$this->assertEquals('+ 12 hours', $configService->find('timesheet.rules.lockdown_grace_period'));
|
||||
self::assertEquals('first day of last month 01:23:45', $configService->find('timesheet.rules.lockdown_period_start'));
|
||||
self::assertEquals('last day of last month 23:01:45', $configService->find('timesheet.rules.lockdown_period_end'));
|
||||
self::assertEquals('Africa/Bangui', $configService->find('timesheet.rules.lockdown_period_timezone'));
|
||||
self::assertEquals('+ 12 hours', $configService->find('timesheet.rules.lockdown_grace_period'));
|
||||
}
|
||||
|
||||
public function testUpdateTimesheetConfigValidation(): void
|
||||
@@ -199,9 +199,9 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
$this->assertAccessIsGranted($client, '/admin/system-config/');
|
||||
|
||||
$configService = $this->getSystemConfiguration();
|
||||
$this->assertNull($configService->find('defaults.customer.timezone'));
|
||||
$this->assertEquals('DE', $configService->find('defaults.customer.country'));
|
||||
$this->assertEquals('EUR', $configService->find('defaults.customer.currency'));
|
||||
self::assertNull($configService->find('defaults.customer.timezone'));
|
||||
self::assertEquals('DE', $configService->find('defaults.customer.country'));
|
||||
self::assertEquals('EUR', $configService->find('defaults.customer.currency'));
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=system_configuration_form_customer]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -216,13 +216,13 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/admin/system-config/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSaveSuccess($client);
|
||||
|
||||
$configService = $this->getSystemConfiguration();
|
||||
$this->assertEquals('Atlantic/Canary', $configService->find('defaults.customer.timezone'));
|
||||
$this->assertEquals('BB', $configService->find('defaults.customer.country'));
|
||||
$this->assertEquals('GBP', $configService->find('defaults.customer.currency'));
|
||||
self::assertEquals('Atlantic/Canary', $configService->find('defaults.customer.timezone'));
|
||||
self::assertEquals('BB', $configService->find('defaults.customer.country'));
|
||||
self::assertEquals('GBP', $configService->find('defaults.customer.currency'));
|
||||
}
|
||||
|
||||
public function testUpdateCustomerConfigWithSingleParam(): void
|
||||
@@ -244,7 +244,7 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/admin/system-config/edit/customer'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSaveSuccess($client);
|
||||
}
|
||||
|
||||
@@ -254,9 +254,9 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
$this->assertAccessIsGranted($client, '/admin/system-config/edit/user');
|
||||
|
||||
$configService = $this->getSystemConfiguration();
|
||||
$this->assertNull($configService->find('defaults.user.timezone'));
|
||||
$this->assertEquals('default', $configService->find('defaults.user.theme'));
|
||||
$this->assertEquals('en', $configService->find('defaults.user.language'));
|
||||
self::assertNull($configService->find('defaults.user.timezone'));
|
||||
self::assertEquals('default', $configService->find('defaults.user.theme'));
|
||||
self::assertEquals('en', $configService->find('defaults.user.language'));
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=system_configuration_form_user]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -271,13 +271,13 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/admin/system-config/edit/user'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSaveSuccess($client);
|
||||
|
||||
$configService = $this->getSystemConfiguration();
|
||||
$this->assertEquals('Pacific/Tahiti', $configService->find('defaults.user.timezone'));
|
||||
$this->assertEquals('dark', $configService->find('defaults.user.theme'));
|
||||
$this->assertEquals('ru', $configService->find('defaults.user.language'));
|
||||
self::assertEquals('Pacific/Tahiti', $configService->find('defaults.user.timezone'));
|
||||
self::assertEquals('dark', $configService->find('defaults.user.theme'));
|
||||
self::assertEquals('ru', $configService->find('defaults.user.language'));
|
||||
}
|
||||
|
||||
public function testUpdateCustomerConfigValidation(): void
|
||||
@@ -309,7 +309,7 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
$this->assertAccessIsGranted($client, '/admin/system-config/');
|
||||
|
||||
$configService = $this->getSystemConfiguration();
|
||||
$this->assertFalse($configService->find('timesheet.markdown_content'));
|
||||
self::assertFalse($configService->find('timesheet.markdown_content'));
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=system_configuration_form_theme]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -322,11 +322,11 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/admin/system-config/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSaveSuccess($client);
|
||||
|
||||
$configService = $this->getSystemConfiguration();
|
||||
$this->assertTrue($configService->find('timesheet.markdown_content'));
|
||||
self::assertTrue($configService->find('timesheet.markdown_content'));
|
||||
}
|
||||
|
||||
public function testUpdateThemeConfigValidation(): void
|
||||
@@ -355,12 +355,12 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
$this->assertAccessIsGranted($client, '/admin/system-config/');
|
||||
|
||||
$configService = $this->getSystemConfiguration();
|
||||
$this->assertTrue($configService->find('calendar.week_numbers'));
|
||||
$this->assertTrue($configService->find('calendar.weekends'));
|
||||
$this->assertEquals('08:00', $configService->find('calendar.businessHours.begin'));
|
||||
$this->assertEquals('20:00', $configService->find('calendar.businessHours.end'));
|
||||
$this->assertEquals('00:00', $configService->find('calendar.visibleHours.begin'));
|
||||
$this->assertEquals('23:59', $configService->find('calendar.visibleHours.end'));
|
||||
self::assertTrue($configService->find('calendar.week_numbers'));
|
||||
self::assertTrue($configService->find('calendar.weekends'));
|
||||
self::assertEquals('08:00', $configService->find('calendar.businessHours.begin'));
|
||||
self::assertEquals('20:00', $configService->find('calendar.businessHours.end'));
|
||||
self::assertEquals('00:00', $configService->find('calendar.visibleHours.begin'));
|
||||
self::assertEquals('23:59', $configService->find('calendar.visibleHours.end'));
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=system_configuration_form_calendar]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -378,16 +378,16 @@ class SystemConfigurationControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/admin/system-config/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSaveSuccess($client);
|
||||
|
||||
$configService = $this->getSystemConfiguration();
|
||||
$this->assertFalse($configService->find('calendar.week_numbers'));
|
||||
$this->assertFalse($configService->find('calendar.weekends'));
|
||||
$this->assertEquals('10:00', $configService->find('calendar.businessHours.begin'));
|
||||
$this->assertEquals('16:00', $configService->find('calendar.businessHours.end'));
|
||||
$this->assertEquals('05:17', $configService->find('calendar.visibleHours.begin'));
|
||||
$this->assertEquals('21:43', $configService->find('calendar.visibleHours.end'));
|
||||
self::assertFalse($configService->find('calendar.week_numbers'));
|
||||
self::assertFalse($configService->find('calendar.weekends'));
|
||||
self::assertEquals('10:00', $configService->find('calendar.businessHours.begin'));
|
||||
self::assertEquals('16:00', $configService->find('calendar.businessHours.end'));
|
||||
self::assertEquals('05:17', $configService->find('calendar.visibleHours.begin'));
|
||||
self::assertEquals('21:43', $configService->find('calendar.visibleHours.end'));
|
||||
}
|
||||
|
||||
public function testUpdateCalendarConfigValidation(): void
|
||||
|
||||
@@ -16,7 +16,7 @@ use App\Tests\DataFixtures\TagFixtures;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class TagControllerTest extends ControllerBaseTest
|
||||
class TagControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
/**
|
||||
* @return Tag[]
|
||||
@@ -53,14 +53,14 @@ class TagControllerTest extends ControllerBaseTest
|
||||
$this->importTags();
|
||||
|
||||
$this->request($client, '/admin/tags/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form.searchform')->form();
|
||||
$client->submit($form, [
|
||||
'searchTerm' => 'Support',
|
||||
]);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasDataTable($client);
|
||||
$this->assertDataTableRowCount($client, 'datatable_admin_tags', 2);
|
||||
}
|
||||
@@ -83,7 +83,7 @@ class TagControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->request($client, '/admin/tags/' . $id . '/edit');
|
||||
$editForm = $client->getCrawler()->filter('form[name=tag_edit_form]')->form();
|
||||
$this->assertEquals('A tAG Name!', $editForm->get('tag_edit_form[name]')->getValue());
|
||||
self::assertEquals('A tAG Name!', $editForm->get('tag_edit_form[name]')->getValue());
|
||||
}
|
||||
|
||||
public function testEditAction(): void
|
||||
@@ -102,7 +102,7 @@ class TagControllerTest extends ControllerBaseTest
|
||||
$this->assertHasDataTable($client);
|
||||
$this->request($client, '/admin/tags/' . $id . '/edit');
|
||||
$editForm = $client->getCrawler()->filter('form[name=tag_edit_form]')->form();
|
||||
$this->assertEquals('Test 2 updated', $editForm->get('tag_edit_form[name]')->getValue());
|
||||
self::assertEquals('Test 2 updated', $editForm->get('tag_edit_form[name]')->getValue());
|
||||
}
|
||||
|
||||
public function testMultiDeleteAction(): void
|
||||
|
||||
@@ -17,7 +17,7 @@ use Symfony\Component\HttpKernel\HttpKernelBrowser;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class TeamControllerTest extends ControllerBaseTest
|
||||
class TeamControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
@@ -62,7 +62,7 @@ class TeamControllerTest extends ControllerBaseTest
|
||||
'searchTerm' => 'foo',
|
||||
]);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasDataTable($client);
|
||||
$this->assertDataTableRowCount($client, 'datatable_admin_teams', 5);
|
||||
}
|
||||
@@ -73,7 +73,7 @@ class TeamControllerTest extends ControllerBaseTest
|
||||
$this->assertAccessIsGranted($client, '/admin/teams/create');
|
||||
$form = $client->getCrawler()->filter('form[name=team_edit_form]')->form();
|
||||
|
||||
$this->assertEquals('', $form->get('team_edit_form[name]')->getValue());
|
||||
self::assertEquals('', $form->get('team_edit_form[name]')->getValue());
|
||||
|
||||
$values = $form->getPhpValues();
|
||||
$values['team_edit_form']['name'] = 'Test Team' . uniqid();
|
||||
@@ -91,10 +91,10 @@ class TeamControllerTest extends ControllerBaseTest
|
||||
protected function assertHasCustomerAndProjectPermissionBoxes(HttpKernelBrowser $client): void
|
||||
{
|
||||
$content = $client->getResponse()->getContent();
|
||||
$this->assertStringContainsString('Grant access to customers', $content);
|
||||
$this->assertStringContainsString('Grant access to projects', $content);
|
||||
$this->assertEquals(1, $client->getCrawler()->filter('form[name=team_customer_form]')->count());
|
||||
$this->assertEquals(1, $client->getCrawler()->filter('form[name=team_project_form]')->count());
|
||||
self::assertStringContainsString('Grant access to customers', $content);
|
||||
self::assertStringContainsString('Grant access to projects', $content);
|
||||
self::assertEquals(1, $client->getCrawler()->filter('form[name=team_customer_form]')->count());
|
||||
self::assertEquals(1, $client->getCrawler()->filter('form[name=team_project_form]')->count());
|
||||
}
|
||||
|
||||
public function testEditAction(): void
|
||||
@@ -116,7 +116,7 @@ class TeamControllerTest extends ControllerBaseTest
|
||||
$this->assertIsRedirect($client, $this->createUrl('/admin/teams/1/edit'));
|
||||
$client->followRedirect();
|
||||
$editForm = $client->getCrawler()->filter('form[name=team_edit_form]')->form();
|
||||
$this->assertEquals('Test Team 2', $editForm->get('team_edit_form[name]')->getValue());
|
||||
self::assertEquals('Test Team 2', $editForm->get('team_edit_form[name]')->getValue());
|
||||
}
|
||||
|
||||
public function testEditMemberAction(): void
|
||||
@@ -137,7 +137,7 @@ class TeamControllerTest extends ControllerBaseTest
|
||||
$this->assertIsRedirect($client, $this->createUrl('/admin/teams/1/edit'));
|
||||
$client->followRedirect();
|
||||
$editForm = $client->getCrawler()->filter('form[name=team_edit_form]')->form();
|
||||
$this->assertEquals('Test Team 2', $editForm->get('team_edit_form[name]')->getValue());
|
||||
self::assertEquals('Test Team 2', $editForm->get('team_edit_form[name]')->getValue());
|
||||
}
|
||||
|
||||
public function testDuplicateAction(): void
|
||||
@@ -153,6 +153,6 @@ class TeamControllerTest extends ControllerBaseTest
|
||||
$this->requestPure($client, $location);
|
||||
|
||||
$editForm = $client->getCrawler()->filter('form[name=team_edit_form]')->form();
|
||||
$this->assertEquals('Test team (1)', $editForm->get('team_edit_form[name]')->getValue());
|
||||
self::assertEquals('Test team (1)', $editForm->get('team_edit_form[name]')->getValue());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class TimesheetControllerTest extends ControllerBaseTest
|
||||
class TimesheetControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
@@ -36,7 +36,7 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser();
|
||||
$this->request($client, '/timesheet/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
// there are no records by default in the test database
|
||||
$this->assertHasNoEntriesWithFilter($client);
|
||||
@@ -68,7 +68,7 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$this->request($client, '/timesheet/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$dateRange = $this->formatDateRange($start, new \DateTime('last day of this month'));
|
||||
|
||||
@@ -83,7 +83,7 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
'tags' => 'foo',
|
||||
]);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasDataTable($client);
|
||||
$this->assertDataTableRowCount($client, 'datatable_timesheet', 7);
|
||||
|
||||
@@ -122,7 +122,7 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$this->request($client, '/timesheet/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form.searchform')->form();
|
||||
$client->submit($form, [
|
||||
@@ -130,7 +130,7 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
'tags' => [$id],
|
||||
]);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasDataTable($client);
|
||||
$this->assertDataTableRowCount($client, 'datatable_timesheet', 5);
|
||||
}
|
||||
@@ -159,7 +159,7 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$this->request($client, '/timesheet/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$dateRange = $this->formatDateRange(new \DateTime('-10 days'), new \DateTime());
|
||||
|
||||
@@ -171,15 +171,15 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
'customers' => [],
|
||||
]);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$node = $client->getCrawler()->filter('body');
|
||||
/** @var \DOMElement $body */
|
||||
$body = $node->getNode(0);
|
||||
$this->assertEquals('invoice_print', $body->getAttribute('class'));
|
||||
self::assertEquals('invoice_print', $body->getAttribute('class'));
|
||||
|
||||
$result = $node->filter('section.invoice table.table tbody tr');
|
||||
$this->assertEquals(5, \count($result));
|
||||
self::assertEquals(5, \count($result));
|
||||
}
|
||||
|
||||
public function testExporterNotFoundAction(): void
|
||||
@@ -193,7 +193,7 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser();
|
||||
$this->request($client, '/timesheet/create');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=timesheet_edit_form]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -211,18 +211,18 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/timesheet/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
/** @var Timesheet $timesheet */
|
||||
$timesheet = $em->getRepository(Timesheet::class)->findAll()[0];
|
||||
$this->assertInstanceOf(\DateTime::class, $timesheet->getBegin());
|
||||
$this->assertNull($timesheet->getEnd());
|
||||
$this->assertEquals('Testing is fun!', $timesheet->getDescription());
|
||||
$this->assertEquals(0, $timesheet->getRate());
|
||||
$this->assertNull($timesheet->getHourlyRate());
|
||||
$this->assertNull($timesheet->getFixedRate());
|
||||
self::assertInstanceOf(\DateTime::class, $timesheet->getBegin());
|
||||
self::assertNull($timesheet->getEnd());
|
||||
self::assertEquals('Testing is fun!', $timesheet->getDescription());
|
||||
self::assertEquals(0, $timesheet->getRate());
|
||||
self::assertNull($timesheet->getHourlyRate());
|
||||
self::assertNull($timesheet->getFixedRate());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -232,7 +232,7 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser();
|
||||
$this->request($client, '/timesheet/create');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=timesheet_edit_form]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -249,20 +249,20 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/timesheet/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
/** @var Timesheet $timesheet */
|
||||
$timesheet = $em->getRepository(Timesheet::class)->findAll()[0];
|
||||
$this->assertInstanceOf(\DateTime::class, $timesheet->getBegin());
|
||||
$this->assertInstanceOf(\DateTime::class, $timesheet->getEnd());
|
||||
$this->assertEquals($expectedDuration, $timesheet->getDuration());
|
||||
$this->assertEquals($expectedEnd, $timesheet->getEnd()->format('Y-m-d H:i:s'));
|
||||
$this->assertEquals('Testing is fun!', $timesheet->getDescription());
|
||||
self::assertInstanceOf(\DateTime::class, $timesheet->getBegin());
|
||||
self::assertInstanceOf(\DateTime::class, $timesheet->getEnd());
|
||||
self::assertEquals($expectedDuration, $timesheet->getDuration());
|
||||
self::assertEquals($expectedEnd, $timesheet->getEnd()->format('Y-m-d H:i:s'));
|
||||
self::assertEquals('Testing is fun!', $timesheet->getDescription());
|
||||
}
|
||||
|
||||
public function getTestDataForDurationValues(): \Generator
|
||||
public static function getTestDataForDurationValues(): \Generator
|
||||
{
|
||||
// duration is ignored, because end is set and the duration might come from a rounding rule (by default seconds are rounded down with 1)
|
||||
yield ['12/31/2018', '12:00 AM', '02:10 AM', '01:00', 7800, '2018-12-31 02:10:00'];
|
||||
@@ -291,26 +291,26 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
$dispatcher = self::getContainer()->get('event_dispatcher');
|
||||
$dispatcher->addSubscriber(new TimesheetTestMetaFieldSubscriberMock());
|
||||
$this->request($client, '/timesheet/create');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=timesheet_edit_form]')->form();
|
||||
$this->assertTrue($form->has('timesheet_edit_form[metaFields][metatestmock][value]'));
|
||||
$this->assertTrue($form->has('timesheet_edit_form[metaFields][foobar][value]'));
|
||||
$this->assertFalse($form->has('timesheet_edit_form[metaFields][0][value]'));
|
||||
self::assertTrue($form->has('timesheet_edit_form[metaFields][metatestmock][value]'));
|
||||
self::assertTrue($form->has('timesheet_edit_form[metaFields][foobar][value]'));
|
||||
self::assertFalse($form->has('timesheet_edit_form[metaFields][0][value]'));
|
||||
}
|
||||
|
||||
public function testCreateActionDoesNotShowRateFieldsForUser(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser();
|
||||
$this->request($client, '/timesheet/create');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=timesheet_edit_form]')->form();
|
||||
$this->assertFalse($form->has('timesheet_edit_form[hourlyRate]'));
|
||||
$this->assertFalse($form->has('timesheet_edit_form[fixedRate]'));
|
||||
self::assertFalse($form->has('timesheet_edit_form[hourlyRate]'));
|
||||
self::assertFalse($form->has('timesheet_edit_form[fixedRate]'));
|
||||
}
|
||||
|
||||
public function getTrackingModeTestData(): array
|
||||
public static function getTrackingModeTestData(): array
|
||||
{
|
||||
return [
|
||||
['duration_fixed_begin', User::ROLE_USER, false, false],
|
||||
@@ -330,18 +330,18 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser($user);
|
||||
$this->setSystemConfiguration('timesheet.mode', $trackingMode);
|
||||
$this->request($client, '/timesheet/create');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=timesheet_edit_form]')->form();
|
||||
$this->assertEquals($showBeginTime, $form->has('timesheet_edit_form[begin_time]'));
|
||||
$this->assertEquals($showEndTime, $form->has('timesheet_edit_form[end_time]'));
|
||||
self::assertEquals($showBeginTime, $form->has('timesheet_edit_form[begin_time]'));
|
||||
self::assertEquals($showEndTime, $form->has('timesheet_edit_form[end_time]'));
|
||||
}
|
||||
|
||||
public function testCreateActionWithFromAndToValues(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->request($client, '/timesheet/create?from=2018-08-02T20%3A00%3A00&to=2018-08-02T20%3A30%3A00');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=timesheet_edit_form]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -354,28 +354,28 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/timesheet/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
/** @var Timesheet $timesheet */
|
||||
$timesheet = $em->getRepository(Timesheet::class)->findAll()[0];
|
||||
$this->assertInstanceOf(\DateTime::class, $timesheet->getBegin());
|
||||
$this->assertInstanceOf(\DateTime::class, $timesheet->getEnd());
|
||||
$this->assertEquals(50, $timesheet->getRate());
|
||||
self::assertInstanceOf(\DateTime::class, $timesheet->getBegin());
|
||||
self::assertInstanceOf(\DateTime::class, $timesheet->getEnd());
|
||||
self::assertEquals(50, $timesheet->getRate());
|
||||
|
||||
$expected = new \DateTime('2018-08-02T20:00:00');
|
||||
$this->assertEquals($expected->format(\DateTimeInterface::ATOM), $timesheet->getBegin()->format(\DateTimeInterface::ATOM));
|
||||
self::assertEquals($expected->format(\DateTimeInterface::ATOM), $timesheet->getBegin()->format(\DateTimeInterface::ATOM));
|
||||
|
||||
$expected = new \DateTime('2018-08-02T20:30:00');
|
||||
$this->assertEquals($expected->format(\DateTimeInterface::ATOM), $timesheet->getEnd()->format(\DateTimeInterface::ATOM));
|
||||
self::assertEquals($expected->format(\DateTimeInterface::ATOM), $timesheet->getEnd()->format(\DateTimeInterface::ATOM));
|
||||
}
|
||||
|
||||
public function testCreateActionWithFromAndToValuesTwice(): void
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->request($client, '/timesheet/create?from=2018-08-02T20%3A00%3A00&to=2018-08-02T20%3A30%3A00');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=timesheet_edit_form]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -388,25 +388,25 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/timesheet/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
/** @var Timesheet $timesheet */
|
||||
$timesheet = $em->getRepository(Timesheet::class)->findAll()[0];
|
||||
$this->assertInstanceOf(\DateTime::class, $timesheet->getBegin());
|
||||
$this->assertInstanceOf(\DateTime::class, $timesheet->getEnd());
|
||||
$this->assertEquals(50, $timesheet->getRate());
|
||||
self::assertInstanceOf(\DateTime::class, $timesheet->getBegin());
|
||||
self::assertInstanceOf(\DateTime::class, $timesheet->getEnd());
|
||||
self::assertEquals(50, $timesheet->getRate());
|
||||
|
||||
$expected = new \DateTime('2018-08-02T20:00:00');
|
||||
$this->assertEquals($expected->format(\DateTimeInterface::ATOM), $timesheet->getBegin()->format(\DateTimeInterface::ATOM));
|
||||
self::assertEquals($expected->format(\DateTimeInterface::ATOM), $timesheet->getBegin()->format(\DateTimeInterface::ATOM));
|
||||
|
||||
$expected = new \DateTime('2018-08-02T20:30:00');
|
||||
$this->assertEquals($expected->format(\DateTimeInterface::ATOM), $timesheet->getEnd()->format(\DateTimeInterface::ATOM));
|
||||
self::assertEquals($expected->format(\DateTimeInterface::ATOM), $timesheet->getEnd()->format(\DateTimeInterface::ATOM));
|
||||
|
||||
// create a second entry that is overlapping
|
||||
$this->request($client, '/timesheet/create?from=2018-08-02T20%3A02%3A00&to=2018-08-02T20%3A20%3A00');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=timesheet_edit_form]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -418,7 +418,7 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
]);
|
||||
$this->assertIsRedirect($client, $this->createUrl('/timesheet/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSuccess($client);
|
||||
}
|
||||
|
||||
@@ -496,7 +496,7 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
$this->request($client, '/timesheet/' . $id . '/edit');
|
||||
|
||||
$response = $client->getResponse();
|
||||
$this->assertTrue($response->isSuccessful());
|
||||
self::assertTrue($response->isSuccessful());
|
||||
|
||||
$this->setSystemConfiguration('timesheet.rules.allow_overbooking_budget', false);
|
||||
|
||||
@@ -545,7 +545,7 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
$this->request($client, '/timesheet/' . $id . '/edit');
|
||||
|
||||
$response = $client->getResponse();
|
||||
$this->assertTrue($response->isSuccessful());
|
||||
self::assertTrue($response->isSuccessful());
|
||||
|
||||
$this->setSystemConfiguration('timesheet.rules.allow_zero_duration', false);
|
||||
|
||||
@@ -578,7 +578,7 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$this->request($client, '/timesheet/create?begin=2018-08-02&end=2018-08-02&tags=one,two,three');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=timesheet_edit_form]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -591,23 +591,23 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/timesheet/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
/** @var Timesheet $timesheet */
|
||||
$timesheet = $em->getRepository(Timesheet::class)->findAll()[0];
|
||||
$this->assertInstanceOf(\DateTime::class, $timesheet->getBegin());
|
||||
$this->assertInstanceOf(\DateTime::class, $timesheet->getEnd());
|
||||
$this->assertEquals(800, $timesheet->getRate());
|
||||
self::assertInstanceOf(\DateTime::class, $timesheet->getBegin());
|
||||
self::assertInstanceOf(\DateTime::class, $timesheet->getEnd());
|
||||
self::assertEquals(800, $timesheet->getRate());
|
||||
|
||||
$expected = new \DateTime('2018-08-02T10:00:00');
|
||||
$this->assertEquals($expected->format(\DateTimeInterface::ATOM), $timesheet->getBegin()->format(\DateTimeInterface::ATOM));
|
||||
self::assertEquals($expected->format(\DateTimeInterface::ATOM), $timesheet->getBegin()->format(\DateTimeInterface::ATOM));
|
||||
|
||||
$expected = new \DateTime('2018-08-02T18:00:00');
|
||||
$this->assertEquals($expected->format(\DateTimeInterface::ATOM), $timesheet->getEnd()->format(\DateTimeInterface::ATOM));
|
||||
self::assertEquals($expected->format(\DateTimeInterface::ATOM), $timesheet->getEnd()->format(\DateTimeInterface::ATOM));
|
||||
|
||||
$this->assertEquals(['two'], $timesheet->getTagsAsArray());
|
||||
self::assertEquals(['two'], $timesheet->getTagsAsArray());
|
||||
}
|
||||
|
||||
public function testCreateActionWithDescription(): void
|
||||
@@ -615,7 +615,7 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
$this->request($client, '/timesheet/create?description=Lorem%20Ipsum');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=timesheet_edit_form]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -628,13 +628,13 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/timesheet/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
/** @var Timesheet $timesheet */
|
||||
$timesheet = $em->getRepository(Timesheet::class)->findAll()[0];
|
||||
$this->assertEquals('Lorem Ipsum', $timesheet->getDescription());
|
||||
self::assertEquals('Lorem Ipsum', $timesheet->getDescription());
|
||||
}
|
||||
|
||||
public function testCreateActionWithDescriptionHtmlInjection(): void
|
||||
@@ -642,7 +642,7 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
|
||||
$this->request($client, '/timesheet/create?description=Some text"><bold>HelloWorld<%2Fbold>');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=timesheet_edit_form]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -655,13 +655,13 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/timesheet/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
/** @var Timesheet $timesheet */
|
||||
$timesheet = $em->getRepository(Timesheet::class)->findAll()[0];
|
||||
$this->assertEquals('Some text"><bold>HelloWorld</bold>', $timesheet->getDescription());
|
||||
self::assertEquals('Some text"><bold>HelloWorld</bold>', $timesheet->getDescription());
|
||||
}
|
||||
|
||||
public function testEditAction(): void
|
||||
@@ -684,9 +684,9 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
$this->request($client, '/timesheet/' . $id . '/edit');
|
||||
|
||||
$response = $client->getResponse();
|
||||
$this->assertTrue($response->isSuccessful());
|
||||
self::assertTrue($response->isSuccessful());
|
||||
|
||||
$this->assertStringContainsString(
|
||||
self::assertStringContainsString(
|
||||
'href="https://www.kimai.org/documentation/timesheet.html"',
|
||||
$response->getContent(),
|
||||
'Could not find link to documentation'
|
||||
@@ -702,13 +702,13 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/timesheet/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSaveSuccess($client);
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
/** @var Timesheet $timesheet */
|
||||
$timesheet = $em->getRepository(Timesheet::class)->find($id);
|
||||
$this->assertEquals('foo-bar', $timesheet->getDescription());
|
||||
self::assertEquals('foo-bar', $timesheet->getDescription());
|
||||
}
|
||||
|
||||
public function testMultiDeleteAction(): void
|
||||
@@ -784,7 +784,7 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
'entities' => implode(',', $ids)
|
||||
]
|
||||
]);
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=timesheet_multi_update]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -834,25 +834,25 @@ class TimesheetControllerTest extends ControllerBaseTest
|
||||
$newId = $ids[0]->getId();
|
||||
|
||||
$this->request($client, '/timesheet/' . $newId . '/duplicate');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=timesheet_edit_form]')->form();
|
||||
$client->submit($form, $form->getPhpValues());
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/timesheet/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
/** @var Timesheet $timesheet */
|
||||
$timesheet = $em->getRepository(Timesheet::class)->find($newId++);
|
||||
$this->assertInstanceOf(\DateTime::class, $timesheet->getBegin());
|
||||
$this->assertEquals('Europe/London', $timesheet->getBegin()->getTimezone()->getName());
|
||||
$this->assertEquals('Testing is fun!', $timesheet->getDescription());
|
||||
$this->assertEquals(2016, $timesheet->getRate());
|
||||
$this->assertEquals(127, $timesheet->getHourlyRate());
|
||||
$this->assertEquals(2016, $timesheet->getFixedRate());
|
||||
$this->assertEquals(2016, $timesheet->getRate());
|
||||
self::assertInstanceOf(\DateTime::class, $timesheet->getBegin());
|
||||
self::assertEquals('Europe/London', $timesheet->getBegin()->getTimezone()->getName());
|
||||
self::assertEquals('Testing is fun!', $timesheet->getDescription());
|
||||
self::assertEquals(2016, $timesheet->getRate());
|
||||
self::assertEquals(127, $timesheet->getHourlyRate());
|
||||
self::assertEquals(2016, $timesheet->getFixedRate());
|
||||
self::assertEquals(2016, $timesheet->getRate());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ use App\Timesheet\Util;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class TimesheetTeamControllerTest extends ControllerBaseTest
|
||||
class TimesheetTeamControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
@@ -37,7 +37,7 @@ class TimesheetTeamControllerTest extends ControllerBaseTest
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD);
|
||||
$this->assertAccessIsGranted($client, '/team/timesheet/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
// there are no records by default in the test database
|
||||
$this->assertHasNoEntriesWithFilter($client);
|
||||
@@ -67,7 +67,7 @@ class TimesheetTeamControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$this->request($client, '/team/timesheet/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$dateRange = $this->formatDateRange($start, new \DateTime('last day of this month'));
|
||||
|
||||
@@ -80,7 +80,7 @@ class TimesheetTeamControllerTest extends ControllerBaseTest
|
||||
'customers' => [],
|
||||
]);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasDataTable($client);
|
||||
$this->assertDataTableRowCount($client, 'datatable_timesheet_admin', 13);
|
||||
|
||||
@@ -112,14 +112,14 @@ class TimesheetTeamControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$this->request($client, '/team/timesheet/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form.searchform')->form();
|
||||
$client->submit($form, [
|
||||
'searchTerm' => 'location:homeoffice foobar',
|
||||
]);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasDataTable($client);
|
||||
$this->assertDataTableRowCount($client, 'datatable_timesheet_admin', 5);
|
||||
}
|
||||
@@ -140,7 +140,7 @@ class TimesheetTeamControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$this->request($client, '/team/timesheet/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$dateRange = $this->formatDateRange(new \DateTime('-10 days'), new \DateTime());
|
||||
|
||||
@@ -152,15 +152,15 @@ class TimesheetTeamControllerTest extends ControllerBaseTest
|
||||
'customers' => [],
|
||||
]);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$node = $client->getCrawler()->filter('body');
|
||||
/** @var \DOMElement $body */
|
||||
$body = $node->getNode(0);
|
||||
$this->assertEquals('invoice_print', $body->getAttribute('class'));
|
||||
self::assertEquals('invoice_print', $body->getAttribute('class'));
|
||||
|
||||
$result = $node->filter('section.invoice table.table tbody tr');
|
||||
$this->assertEquals(10, \count($result));
|
||||
self::assertEquals(10, \count($result));
|
||||
}
|
||||
|
||||
public function testExporterNotFoundAction(): void
|
||||
@@ -174,7 +174,7 @@ class TimesheetTeamControllerTest extends ControllerBaseTest
|
||||
{
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN);
|
||||
$this->request($client, '/team/timesheet/create');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=timesheet_admin_edit_form]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -187,18 +187,18 @@ class TimesheetTeamControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/team/timesheet/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
/** @var Timesheet $timesheet */
|
||||
$timesheet = $em->getRepository(Timesheet::class)->findAll()[0];
|
||||
$this->assertInstanceOf(\DateTime::class, $timesheet->getBegin());
|
||||
$this->assertNull($timesheet->getEnd());
|
||||
$this->assertEquals('Testing is fun!', $timesheet->getDescription());
|
||||
$this->assertEquals(0, $timesheet->getRate());
|
||||
$this->assertNull($timesheet->getHourlyRate());
|
||||
$this->assertNull($timesheet->getFixedRate());
|
||||
self::assertInstanceOf(\DateTime::class, $timesheet->getBegin());
|
||||
self::assertNull($timesheet->getEnd());
|
||||
self::assertEquals('Testing is fun!', $timesheet->getDescription());
|
||||
self::assertEquals(0, $timesheet->getRate());
|
||||
self::assertNull($timesheet->getHourlyRate());
|
||||
self::assertNull($timesheet->getFixedRate());
|
||||
}
|
||||
|
||||
public function testCreateForMultipleUsersAction(): void
|
||||
@@ -210,7 +210,7 @@ class TimesheetTeamControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$this->request($client, '/team/timesheet/create_mu');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=timesheet_multi_user_edit_form]')->form();
|
||||
$client->submit($form, [
|
||||
@@ -225,21 +225,21 @@ class TimesheetTeamControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/team/timesheet/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
/** @var Timesheet[] $timesheets */
|
||||
$timesheets = $em->getRepository(Timesheet::class)->findAll();
|
||||
$this->assertCount(2, $timesheets);
|
||||
self::assertCount(2, $timesheets);
|
||||
foreach ($timesheets as $timesheet) {
|
||||
$this->assertInstanceOf(\DateTime::class, $timesheet->getBegin());
|
||||
$this->assertNull($timesheet->getEnd());
|
||||
$this->assertEquals('Testing is more fun!', $timesheet->getDescription());
|
||||
$this->assertEquals(0, $timesheet->getRate());
|
||||
$this->assertNull($timesheet->getHourlyRate());
|
||||
$this->assertNull($timesheet->getFixedRate());
|
||||
$this->assertEquals(['test', '1234', 'foo-bar'], $timesheet->getTagsAsArray());
|
||||
self::assertInstanceOf(\DateTime::class, $timesheet->getBegin());
|
||||
self::assertNull($timesheet->getEnd());
|
||||
self::assertEquals('Testing is more fun!', $timesheet->getDescription());
|
||||
self::assertEquals(0, $timesheet->getRate());
|
||||
self::assertNull($timesheet->getHourlyRate());
|
||||
self::assertNull($timesheet->getFixedRate());
|
||||
self::assertEquals(['test', '1234', 'foo-bar'], $timesheet->getTagsAsArray());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -290,9 +290,9 @@ class TimesheetTeamControllerTest extends ControllerBaseTest
|
||||
$this->request($client, '/team/timesheet/' . $id . '/edit');
|
||||
|
||||
$response = $client->getResponse();
|
||||
$this->assertTrue($response->isSuccessful());
|
||||
self::assertTrue($response->isSuccessful());
|
||||
|
||||
$this->assertStringContainsString(
|
||||
self::assertStringContainsString(
|
||||
'href="https://www.kimai.org/documentation/timesheet.html"',
|
||||
$response->getContent(),
|
||||
'Could not find link to documentation'
|
||||
@@ -309,14 +309,14 @@ class TimesheetTeamControllerTest extends ControllerBaseTest
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/team/timesheet/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSaveSuccess($client);
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
/** @var Timesheet $timesheet */
|
||||
$timesheet = $em->getRepository(Timesheet::class)->find($id);
|
||||
$this->assertEquals('foo-bar', $timesheet->getDescription());
|
||||
$this->assertEquals($teamlead->getId(), $timesheet->getUser()->getId());
|
||||
self::assertEquals('foo-bar', $timesheet->getDescription());
|
||||
self::assertEquals($teamlead->getId(), $timesheet->getUser()->getId());
|
||||
}
|
||||
|
||||
public function testMultiDeleteAction(): void
|
||||
@@ -392,7 +392,7 @@ class TimesheetTeamControllerTest extends ControllerBaseTest
|
||||
'entities' => implode(',', $ids)
|
||||
]
|
||||
]);
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$newUser = $this->getUserByRole(User::ROLE_USER);
|
||||
$form = $client->getCrawler()->filter('form[name=timesheet_multi_update]')->form();
|
||||
@@ -446,25 +446,25 @@ class TimesheetTeamControllerTest extends ControllerBaseTest
|
||||
$newId = $ids[0]->getId();
|
||||
|
||||
$this->request($client, '/team/timesheet/' . $newId . '/duplicate');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=timesheet_admin_edit_form]')->form();
|
||||
$client->submit($form, $form->getPhpValues());
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/team/timesheet/'));
|
||||
$client->followRedirect();
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$em = $this->getEntityManager();
|
||||
/** @var Timesheet $timesheet */
|
||||
$timesheet = $em->getRepository(Timesheet::class)->find($newId++);
|
||||
$this->assertInstanceOf(\DateTime::class, $timesheet->getBegin());
|
||||
$this->assertEquals('Europe/London', $timesheet->getBegin()->getTimezone()->getName());
|
||||
$this->assertEquals('Testing is fun!', $timesheet->getDescription());
|
||||
$this->assertEquals(2016, $timesheet->getRate());
|
||||
$this->assertEquals(127, $timesheet->getHourlyRate());
|
||||
$this->assertEquals(2016, $timesheet->getFixedRate());
|
||||
$this->assertEquals(2016, $timesheet->getRate());
|
||||
self::assertInstanceOf(\DateTime::class, $timesheet->getBegin());
|
||||
self::assertEquals('Europe/London', $timesheet->getBegin()->getTimezone()->getName());
|
||||
self::assertEquals('Testing is fun!', $timesheet->getDescription());
|
||||
self::assertEquals(2016, $timesheet->getRate());
|
||||
self::assertEquals(127, $timesheet->getHourlyRate());
|
||||
self::assertEquals(2016, $timesheet->getFixedRate());
|
||||
self::assertEquals(2016, $timesheet->getRate());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ use App\Tests\DataFixtures\TimesheetFixtures;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class UserControllerTest extends ControllerBaseTest
|
||||
class UserControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
@@ -48,7 +48,7 @@ class UserControllerTest extends ControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
|
||||
$this->request($client, '/admin/user/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form.searchform')->form();
|
||||
$client->submit($form, [
|
||||
@@ -59,7 +59,7 @@ class UserControllerTest extends ControllerBaseTest
|
||||
'page' => 1,
|
||||
]);
|
||||
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
$this->assertHasDataTable($client);
|
||||
$this->assertDataTableRowCount($client, 'datatable_user_admin', 1);
|
||||
}
|
||||
@@ -81,7 +81,7 @@ class UserControllerTest extends ControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
|
||||
$this->request($client, '/admin/user/');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form.searchform')->form();
|
||||
$form->getFormNode()->setAttribute('action', $this->createUrl('/admin/user/export'));
|
||||
@@ -116,7 +116,7 @@ class UserControllerTest extends ControllerBaseTest
|
||||
$this->requestPure($client, $location);
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=user_edit]')->form();
|
||||
$this->assertEquals($username, $form->get('user_edit[alias]')->getValue());
|
||||
self::assertEquals($username, $form->get('user_edit[alias]')->getValue());
|
||||
}
|
||||
|
||||
public function testDeleteAction(): void
|
||||
@@ -124,10 +124,10 @@ class UserControllerTest extends ControllerBaseTest
|
||||
$client = $this->getClientForAuthenticatedUser(User::ROLE_SUPER_ADMIN);
|
||||
|
||||
$this->request($client, '/admin/user/4/delete');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=form]')->form();
|
||||
$this->assertStringEndsWith($this->createUrl('/admin/user/4/delete'), $form->getUri());
|
||||
self::assertStringEndsWith($this->createUrl('/admin/user/4/delete'), $form->getUri());
|
||||
$client->submit($form);
|
||||
|
||||
$client->followRedirect();
|
||||
@@ -135,7 +135,7 @@ class UserControllerTest extends ControllerBaseTest
|
||||
$this->assertHasFlashSuccess($client);
|
||||
|
||||
$this->request($client, '/admin/user/4/edit');
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
self::assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testDeleteActionWithTimesheetEntries(): void
|
||||
@@ -151,13 +151,13 @@ class UserControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$timesheets = $em->getRepository(Timesheet::class)->findAll();
|
||||
$this->assertEquals(10, \count($timesheets));
|
||||
self::assertEquals(10, \count($timesheets));
|
||||
|
||||
$this->request($client, '/admin/user/' . $user->getId() . '/delete');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=form]')->form();
|
||||
$this->assertStringEndsWith($this->createUrl('/admin/user/' . $user->getId() . '/delete'), $form->getUri());
|
||||
self::assertStringEndsWith($this->createUrl('/admin/user/' . $user->getId() . '/delete'), $form->getUri());
|
||||
$client->submit($form);
|
||||
|
||||
$this->assertIsRedirect($client, $this->createUrl('/admin/user/'));
|
||||
@@ -166,10 +166,10 @@ class UserControllerTest extends ControllerBaseTest
|
||||
|
||||
$em->clear();
|
||||
$timesheets = $em->getRepository(Timesheet::class)->count([]);
|
||||
$this->assertEquals(0, $timesheets);
|
||||
self::assertEquals(0, $timesheets);
|
||||
|
||||
$this->request($client, '/admin/user/' . $user->getId() . '/edit');
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
self::assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
public function testDeleteActionWithUserReplacementAndTimesheetEntries(): void
|
||||
@@ -188,16 +188,16 @@ class UserControllerTest extends ControllerBaseTest
|
||||
$this->importFixture($fixture);
|
||||
|
||||
$timesheets = $em->getRepository(Timesheet::class)->findAll();
|
||||
$this->assertEquals(10, \count($timesheets));
|
||||
self::assertEquals(10, \count($timesheets));
|
||||
foreach ($timesheets as $timesheet) {
|
||||
$this->assertEquals($user->getId(), $timesheet->getUser()->getId());
|
||||
self::assertEquals($user->getId(), $timesheet->getUser()->getId());
|
||||
}
|
||||
|
||||
$this->request($client, '/admin/user/' . $user->getId() . '/delete');
|
||||
$this->assertTrue($client->getResponse()->isSuccessful());
|
||||
self::assertTrue($client->getResponse()->isSuccessful());
|
||||
|
||||
$form = $client->getCrawler()->filter('form[name=form]')->form();
|
||||
$this->assertStringEndsWith($this->createUrl('/admin/user/' . $user->getId() . '/delete'), $form->getUri());
|
||||
self::assertStringEndsWith($this->createUrl('/admin/user/' . $user->getId() . '/delete'), $form->getUri());
|
||||
$client->submit($form, [
|
||||
'form' => [
|
||||
'user' => $userNew->getId()
|
||||
@@ -210,13 +210,13 @@ class UserControllerTest extends ControllerBaseTest
|
||||
|
||||
$em->clear();
|
||||
$timesheets = $em->getRepository(Timesheet::class)->findAll();
|
||||
$this->assertEquals(10, \count($timesheets));
|
||||
self::assertEquals(10, \count($timesheets));
|
||||
foreach ($timesheets as $timesheet) {
|
||||
$this->assertEquals($userNew->getId(), $timesheet->getUser()->getId());
|
||||
self::assertEquals($userNew->getId(), $timesheet->getUser()->getId());
|
||||
}
|
||||
|
||||
$this->request($client, '/admin/user/' . $user->getId() . '/edit');
|
||||
$this->assertFalse($client->getResponse()->isSuccessful());
|
||||
self::assertFalse($client->getResponse()->isSuccessful());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -233,7 +233,7 @@ class UserControllerTest extends ControllerBaseTest
|
||||
);
|
||||
}
|
||||
|
||||
public function getValidationTestData()
|
||||
public static function getValidationTestData()
|
||||
{
|
||||
return [
|
||||
[
|
||||
|
||||
@@ -14,7 +14,7 @@ use App\Entity\User;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class WidgetControllerTest extends ControllerBaseTest
|
||||
class WidgetControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testIsSecure(): void
|
||||
{
|
||||
|
||||
@@ -14,7 +14,7 @@ use App\Entity\User;
|
||||
/**
|
||||
* @group integration
|
||||
*/
|
||||
class WizardControllerTest extends ControllerBaseTest
|
||||
class WizardControllerTest extends AbstractControllerBaseTestCase
|
||||
{
|
||||
public function testUnknownWizard(): void
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user