commerce-8.x-2.8/modules/order/tests/src/FunctionalJavascript/OrderReassignTest.php
modules/order/tests/src/FunctionalJavascript/OrderReassignTest.php
<?php namespace Drupal\Tests\commerce_order\FunctionalJavascript; use Drupal\commerce_order\Entity\Order; use Drupal\Tests\commerce\Functional\CommerceBrowserTestBase; use Drupal\Tests\commerce\FunctionalJavascript\JavascriptTestTrait; /** * Tests the commerce_order reassign form. * * @group commerce */ class OrderReassignTest extends CommerceBrowserTestBase { use JavascriptTestTrait; /** * Modules to enable. * * @var array */ public static $modules = [ 'commerce_product', 'commerce_order', 'inline_entity_form', ]; /** * {@inheritdoc} */ protected function getAdministratorPermissions() { return array_merge([ 'administer commerce_order', 'administer commerce_order_type', ], parent::getAdministratorPermissions()); } /** * Tests the reassign form with a new user. */ public function testOrderReassign() { $order_item = $this->createEntity('commerce_order_item', [ 'type' => 'default', 'unit_price' => [ 'number' => '999', 'currency_code' => 'USD', ], ]); /** @var \Drupal\commerce_order\Entity\OrderInterface $order */ $order = $this->createEntity('commerce_order', [ 'type' => 'default', 'mail' => $this->loggedInUser->getEmail(), 'uid' => $this->loggedInUser->id(), 'order_items' => [$order_item], 'store_id' => $this->store, ]); $this->assertNotEmpty($order->hasLinkTemplate('reassign-form')); $this->drupalGet($order->toUrl('reassign-form')); $this->getSession()->getPage()->fillField('customer_type', 'new'); $this->waitForAjaxToFinish(); $values = [ 'mail' => 'example@example.com', ]; $this->submitForm($values, 'Reassign order'); $this->assertEquals($order->toUrl('collection', ['absolute' => TRUE])->toString(), $this->getSession()->getCurrentUrl()); // Reload the order. \Drupal::service('entity_type.manager')->getStorage('commerce_order')->resetCache([$order->id()]); $order = Order::load($order->id()); $this->assertEquals($order->getCustomer()->getEmail(), 'example@example.com'); $this->assertEquals($order->getEmail(), 'example@example.com'); } }