feat: VivesPOS landing on Winter CMS 1.2 — theme + plugin + Dockerfile
Some checks are pending
Module sub-split / Sub-split (push) Waiting to run
Some checks are pending
Module sub-split / Sub-split (push) Waiting to run
- Base: wintercms/winter branch 1.2 (full framework) - Theme vivespos: Canvas 7 + Bootstrap 5 CDN, custom CSS - Layout: deferred GTM/GA4 tracking, JSON-LD SoftwareApplication - Partials: hero (offline-first), features, modes (offline/nube toggle), screenshots, pricing (3 planes), comparison, FAQ, CTA - Plugin VivesPOS.Site with ContactForm - Dockerfile: PHP 8.2 Apache, port 80, healthcheck - Added winter/wn-pages, blog, sitemap, seo plugins - Active theme set to vivespos
This commit is contained in:
143
modules/backend/tests/widgets/ListsTest.php
Normal file
143
modules/backend/tests/widgets/ListsTest.php
Normal file
@@ -0,0 +1,143 @@
|
||||
<?php
|
||||
|
||||
namespace Backend\Tests\Widgets;
|
||||
|
||||
use System\Tests\Bootstrap\PluginTestCase;
|
||||
use Winter\Storm\Exception\ApplicationException;
|
||||
use Backend\Tests\Fixtures\Models\UserFixture;
|
||||
use Backend\Models\User;
|
||||
use Backend\Widgets\Lists;
|
||||
|
||||
class ListsTest extends PluginTestCase
|
||||
{
|
||||
public function testRestrictedColumnWithUserWithNoPermissions()
|
||||
{
|
||||
$user = new UserFixture;
|
||||
$this->actingAs($user);
|
||||
|
||||
$list = $this->restrictedListsFixture();
|
||||
$list->render();
|
||||
|
||||
$this->assertNotNull($list->getColumn('id'));
|
||||
|
||||
// Expect an exception
|
||||
$this->expectException(ApplicationException::class);
|
||||
$this->expectExceptionMessage('No definition for column email');
|
||||
$column = $list->getColumn('email');
|
||||
}
|
||||
|
||||
public function testRestrictedColumnWithUserWithWrongPermissions()
|
||||
{
|
||||
$user = new UserFixture;
|
||||
$this->actingAs($user->withPermission('test.wrong_permission', true));
|
||||
|
||||
$list = $this->restrictedListsFixture();
|
||||
$list->render();
|
||||
|
||||
$this->assertNotNull($list->getColumn('id'));
|
||||
|
||||
// Expect an exception
|
||||
$this->expectException(ApplicationException::class);
|
||||
$this->expectExceptionMessage('No definition for column email');
|
||||
$column = $list->getColumn('email');
|
||||
}
|
||||
|
||||
public function testRestrictedColumnWithUserWithRightPermissions()
|
||||
{
|
||||
$user = new UserFixture;
|
||||
$this->actingAs($user->withPermission('test.access_field', true));
|
||||
|
||||
$list = $this->restrictedListsFixture();
|
||||
$list->render();
|
||||
|
||||
$this->assertNotNull($list->getColumn('id'));
|
||||
$this->assertNotNull($list->getColumn('email'));
|
||||
}
|
||||
|
||||
public function testRestrictedColumnWithUserWithRightWildcardPermissions()
|
||||
{
|
||||
$user = new UserFixture;
|
||||
$this->actingAs($user->withPermission('test.access_field', true));
|
||||
|
||||
$list = new Lists(null, [
|
||||
'model' => new User,
|
||||
'arrayName' => 'array',
|
||||
'columns' => [
|
||||
'id' => [
|
||||
'type' => 'text',
|
||||
'label' => 'ID'
|
||||
],
|
||||
'email' => [
|
||||
'type' => 'text',
|
||||
'label' => 'Email',
|
||||
'permission' => 'test.*'
|
||||
]
|
||||
]
|
||||
]);
|
||||
$list->render();
|
||||
|
||||
$this->assertNotNull($list->getColumn('id'));
|
||||
$this->assertNotNull($list->getColumn('email'));
|
||||
}
|
||||
|
||||
public function testRestrictedColumnWithSuperuser()
|
||||
{
|
||||
$user = new UserFixture;
|
||||
$this->actingAs($user->asSuperUser());
|
||||
|
||||
$list = $this->restrictedListsFixture();
|
||||
$list->render();
|
||||
|
||||
$this->assertNotNull($list->getColumn('id'));
|
||||
$this->assertNotNull($list->getColumn('email'));
|
||||
}
|
||||
|
||||
public function testRestrictedColumnSinglePermissionWithUserWithWrongPermissions()
|
||||
{
|
||||
$user = new UserFixture;
|
||||
$this->actingAs($user->withPermission('test.wrong_permission', true));
|
||||
|
||||
$list = $this->restrictedListsFixture(true);
|
||||
$list->render();
|
||||
|
||||
$this->assertNotNull($list->getColumn('id'));
|
||||
|
||||
// Expect an exception
|
||||
$this->expectException(ApplicationException::class);
|
||||
$this->expectExceptionMessage('No definition for column email');
|
||||
$column = $list->getColumn('email');
|
||||
}
|
||||
|
||||
public function testRestrictedColumnSinglePermissionWithUserWithRightPermissions()
|
||||
{
|
||||
$user = new UserFixture;
|
||||
$this->actingAs($user->withPermission('test.access_field', true));
|
||||
|
||||
$list = $this->restrictedListsFixture(true);
|
||||
$list->render();
|
||||
|
||||
$this->assertNotNull($list->getColumn('id'));
|
||||
$this->assertNotNull($list->getColumn('email'));
|
||||
}
|
||||
|
||||
protected function restrictedListsFixture(bool $singlePermission = false)
|
||||
{
|
||||
return new Lists(null, [
|
||||
'model' => new User,
|
||||
'arrayName' => 'array',
|
||||
'columns' => [
|
||||
'id' => [
|
||||
'type' => 'text',
|
||||
'label' => 'ID'
|
||||
],
|
||||
'email' => [
|
||||
'type' => 'text',
|
||||
'label' => 'Email',
|
||||
'permissions' => ($singlePermission) ? 'test.access_field' : [
|
||||
'test.access_field'
|
||||
]
|
||||
]
|
||||
]
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user