mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-21 09:35:49 +02:00
Added some tests to check if LabelSystem and scanner pages are available.
This commit is contained in:
parent
df6546d94d
commit
7e656be246
6 changed files with 174 additions and 7 deletions
|
@ -47,7 +47,7 @@ class ScanController extends AbstractController
|
|||
}
|
||||
|
||||
/**
|
||||
* @Route("/", name="scan_dialog")
|
||||
* @Route("", name="scan_dialog")
|
||||
*/
|
||||
public function dialog(Request $request): Response
|
||||
{
|
||||
|
|
|
@ -82,8 +82,8 @@ class GroupFixtures extends Fixture
|
|||
'suppliers' => 5461,
|
||||
'manufacturers' => 5461,
|
||||
'attachment_types' => 1365,
|
||||
'tools' => 1365,
|
||||
'labels' => 21,
|
||||
'tools' => 87381,
|
||||
'labels' => 87381,
|
||||
'parts_category' => 5,
|
||||
'parts_minamount' => 5,
|
||||
'parts_lots' => 85,
|
||||
|
@ -125,8 +125,8 @@ class GroupFixtures extends Fixture
|
|||
'suppliers' => 1705,
|
||||
'manufacturers' => 1705,
|
||||
'attachment_types' => 681,
|
||||
'tools' => 1366,
|
||||
'labels' => 165,
|
||||
'tools' => 87382,
|
||||
'labels' => 173737,
|
||||
'parts_category' => 9,
|
||||
'parts_minamount' => 9,
|
||||
'parts_lots' => 169,
|
||||
|
@ -168,8 +168,8 @@ class GroupFixtures extends Fixture
|
|||
'suppliers' => 5461,
|
||||
'manufacturers' => 5461,
|
||||
'attachment_types' => 1365,
|
||||
'tools' => 1365,
|
||||
'labels' => 85,
|
||||
'tools' => 87381,
|
||||
'labels' => 91477,
|
||||
'parts_category' => 5,
|
||||
'parts_minamount' => 5,
|
||||
'parts_lots' => 85,
|
||||
|
|
96
src/DataFixtures/LabelProfileFixtures.php
Normal file
96
src/DataFixtures/LabelProfileFixtures.php
Normal file
|
@ -0,0 +1,96 @@
|
|||
<?php
|
||||
/**
|
||||
* This file is part of Part-DB (https://github.com/Part-DB/Part-DB-symfony).
|
||||
*
|
||||
* Copyright (C) 2019 - 2020 Jan Böhmer (https://github.com/jbtronics)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published
|
||||
* by the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace App\DataFixtures;
|
||||
|
||||
|
||||
use App\Entity\LabelSystem\LabelOptions;
|
||||
use App\Entity\LabelSystem\LabelProfile;
|
||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Doctrine\Persistence\ObjectManager;
|
||||
|
||||
class LabelProfileFixtures extends Fixture
|
||||
{
|
||||
|
||||
protected $em;
|
||||
|
||||
public function __construct(EntityManagerInterface $entityManager)
|
||||
{
|
||||
$this->em = $entityManager;
|
||||
}
|
||||
|
||||
public function load(ObjectManager $manager)
|
||||
{
|
||||
$this->em->getConnection()->exec("ALTER TABLE `label_profiles` AUTO_INCREMENT = 1;");
|
||||
|
||||
$profile1 = new LabelProfile();
|
||||
$profile1->setName('Profile 1');
|
||||
$profile1->setShowInDropdown(true);
|
||||
|
||||
$option1 = new LabelOptions();
|
||||
$option1->setLines("[[NAME]]\n[[DESCRIPION]]");
|
||||
$option1->setBarcodeType('none');
|
||||
$option1->setSupportedElement('part');
|
||||
$profile1->setOptions($option1);
|
||||
|
||||
$manager->persist($profile1);
|
||||
|
||||
$profile2 = new LabelProfile();
|
||||
$profile2->setName('Profile 2');
|
||||
$profile2->setShowInDropdown(false);
|
||||
|
||||
$option2 = new LabelOptions();
|
||||
$option2->setLines("[[NAME]]\n[[DESCRIPION]]");
|
||||
$option2->setBarcodeType('qr');
|
||||
$option2->setSupportedElement('part');
|
||||
$profile2->setOptions($option2);
|
||||
|
||||
$manager->persist($profile2);
|
||||
|
||||
$profile3 = new LabelProfile();
|
||||
$profile3->setName('Profile 3');
|
||||
$profile3->setShowInDropdown(true);
|
||||
|
||||
$option3 = new LabelOptions();
|
||||
$option3->setLines("[[NAME]]\n[[DESCRIPION]]");
|
||||
$option3->setBarcodeType('code128');
|
||||
$option3->setSupportedElement('part_lot');
|
||||
$profile3->setOptions($option3);
|
||||
|
||||
$manager->persist($profile3);
|
||||
|
||||
|
||||
$profile4 = new LabelProfile();
|
||||
$profile4->setName('Profile 4');
|
||||
$profile4->setShowInDropdown(true);
|
||||
|
||||
$option4 = new LabelOptions();
|
||||
$option4->setLines("{{ element.name }}");
|
||||
$option4->setBarcodeType('code39');
|
||||
$option4->setSupportedElement('part');
|
||||
$option4->setLinesMode('twig');
|
||||
$profile4->setOptions($option4);
|
||||
|
||||
$manager->persist($profile4);
|
||||
|
||||
$manager->flush();
|
||||
}
|
||||
}
|
|
@ -73,6 +73,12 @@ class LabelProfile extends AttachmentContainingDBElement
|
|||
return $this->options;
|
||||
}
|
||||
|
||||
public function setOptions(LabelOptions $labelOptions): LabelProfile
|
||||
{
|
||||
$this->options = $labelOptions;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the comment of the element.
|
||||
* @return string the comment
|
||||
|
|
|
@ -119,5 +119,12 @@ class ApplicationAvailabilityFunctionalTest extends WebTestCase
|
|||
//Typeahead
|
||||
yield ['/typeahead/builtInResources/search/DIP8'];
|
||||
yield ['/typeahead/tags/search/test'];
|
||||
|
||||
//Label test
|
||||
yield ['/scan'];
|
||||
yield ['/label/dialog'];
|
||||
yield ['/label/dialog?target_id=1&target_type=part'];
|
||||
yield ['/label/1/dialog'];
|
||||
yield ['/label/1/dialog?target_id=1&target_type=part&generate=1'];
|
||||
}
|
||||
}
|
||||
|
|
58
tests/Controller/AdminPages/LabelProfileControllerTest.php
Normal file
58
tests/Controller/AdminPages/LabelProfileControllerTest.php
Normal file
|
@ -0,0 +1,58 @@
|
|||
<?php
|
||||
/**
|
||||
* This file is part of Part-DB (https://github.com/Part-DB/Part-DB-symfony).
|
||||
*
|
||||
* Copyright (C) 2019 - 2020 Jan Böhmer (https://github.com/jbtronics)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published
|
||||
* by the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace App\Tests\Controller\AdminPages;
|
||||
|
||||
|
||||
use App\Entity\LabelSystem\LabelProfile;
|
||||
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
|
||||
|
||||
class LabelProfileControllerTest extends AbstractAdminControllerTest
|
||||
{
|
||||
protected static $base_path = '/en'.'/label_profile';
|
||||
protected static $entity_class = LabelProfile::class;
|
||||
|
||||
/**
|
||||
* Tests if deleting an entity is working.
|
||||
*
|
||||
* @group slow
|
||||
* @dataProvider deleteDataProvider
|
||||
*/
|
||||
public function testDeleteEntity(string $user, bool $delete): void
|
||||
{
|
||||
//Test read access
|
||||
$client = static::createClient([], [
|
||||
'PHP_AUTH_USER' => $user,
|
||||
'PHP_AUTH_PW' => 'test',
|
||||
]);
|
||||
|
||||
$client->catchExceptions(false);
|
||||
if (false === $delete) {
|
||||
$this->expectException(AccessDeniedException::class);
|
||||
}
|
||||
|
||||
//Test read/list access by access /new overview page
|
||||
$client->request('DELETE', static::$base_path.'/3');
|
||||
|
||||
//Page is redirected to '/new', when delete was successful
|
||||
$this->assertSame($delete, $client->getResponse()->isRedirect(static::$base_path.'/new'));
|
||||
$this->assertSame($delete, ! $client->getResponse()->isForbidden(), 'Permission Checking not working!');
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue