public function ShipmentAccessControlHandlerTest::testAccess in Commerce Shipping 8.2
@covers ::checkAccess
File
- tests/
src/ Kernel/ ShipmentAccessControlHandlerTest.php, line 29
Class
- ShipmentAccessControlHandlerTest
- Tests the shipment access control.
Namespace
Drupal\Tests\commerce_shipping\KernelCode
public function testAccess() {
$order = Order::create([
'type' => 'default',
'state' => 'canceled',
]);
$order
->save();
/** @var \Drupal\commerce_shipping\Entity\ShipmentInterface $shipment */
$shipment = Shipment::create([
'type' => 'default',
'title' => 'Shipment',
'order_id' => $order
->id(),
]);
$shipment
->save();
$shipment = $this
->reloadEntity($shipment);
$account = $this
->createUser([], [
'access administration pages',
]);
$this
->assertFalse($shipment
->access('view', $account));
$this
->assertFalse($shipment
->access('update', $account));
$this
->assertFalse($shipment
->access('delete', $account));
$account = $this
->createUser([], [
'view commerce_order',
]);
$this
->assertTrue($shipment
->access('view', $account));
$this
->assertFalse($shipment
->access('update', $account));
$this
->assertFalse($shipment
->access('delete', $account));
$account = $this
->createUser([], [
'update default commerce_order',
]);
$this
->assertFalse($shipment
->access('view', $account));
$this
->assertFalse($shipment
->access('update', $account));
$this
->assertFalse($shipment
->access('delete', $account));
$account = $this
->createUser([], [
'manage default commerce_shipment',
]);
$this
->assertFalse($shipment
->access('view', $account));
$this
->assertTrue($shipment
->access('update', $account));
$this
->assertTrue($shipment
->access('delete', $account));
$account = $this
->createUser([], [
'administer commerce_shipment',
]);
$this
->assertTrue($shipment
->access('view', $account));
$this
->assertTrue($shipment
->access('update', $account));
$this
->assertTrue($shipment
->access('delete', $account));
// Broken order reference.
$shipment
->set('order_id', '999');
$account = $this
->createUser([], [
'manage default commerce_order_item',
]);
$this
->assertFalse($shipment
->access('view', $account));
$this
->assertFalse($shipment
->access('update', $account));
$this
->assertFalse($shipment
->access('delete', $account));
}