commerce-8.x-2.8/modules/order/tests/src/Functional/OrderUserTest.php
modules/order/tests/src/Functional/OrderUserTest.php
<?php
namespace Drupal\Tests\commerce_order\Functional;
use Drupal\commerce_order\Entity\Order;
use Drupal\commerce_order\Entity\OrderItem;
use Drupal\commerce_price\Price;
/**
* Tests normal user operations with orders.
*
* @group commerce
*/
class OrderUserTest extends OrderBrowserTestBase {
/**
* A test user with normal privileges.
*
* @var \Drupal\user\UserInterface
*/
protected $user;
/**
* {@inheritdoc}
*/
public function setUp() {
parent::setUp();
$permissions = [
'view own commerce_order',
];
$this->user = $this->drupalCreateUser($permissions);
$this->drupalLogin($this->user);
}
/**
* Tests viewing a created order.
*/
public function testViewOrder() {
$uid = $this->loggedInUser->id();
$order_item = OrderItem::create([
'type' => 'default',
'quantity' => 2,
'unit_price' => new Price('12.00', 'USD'),
]);
$order_item->save();
/** @var \Drupal\commerce_order\Entity\Order $order */
$order = Order::create([
'type' => 'default',
'state' => 'completed',
'uid' => $uid,
'order_items' => [$order_item],
'mail' => 'testViewOrder@example.com',
'order_number' => '1',
]);
$order->save();
// Check that we can view the orders page.
$this->drupalGet('/user/' . $uid . '/orders/');
$this->assertSession()->statusCodeEquals(200);
// Check that the order is available.
$this->assertSession()->linkByHrefExists('/user/' . $uid . '/orders/' . $order->id());
// Click order and make sure it works.
$this->getSession()->getPage()->clickLink($order->id());
$this->assertSession()->statusCodeEquals(200);
$this->assertSession()->pageTextContains($order->getEmail());
}
}
