You are here

public function AjaxAddCartViewsEditQuantityTest::testOrderTotal in Commerce Ajax Add to Cart 8

Tests whether order total is correct on ajax quantity update.

File

modules/dc_ajax_add_cart_views/tests/src/FunctionalJavascript/AjaxAddCartViewsEditQuantityTest.php, line 83

Class

AjaxAddCartViewsEditQuantityTest
Commerce Ajax Add to Cart Views Edit Quantity tests.

Namespace

Drupal\Tests\dc_ajax_add_cart_views\FunctionalJavascript

Code

public function testOrderTotal() {
  $this
    ->drupalLogin($this->account);
  $cart_variation = array_pop($this->variations);
  $this->cartManager
    ->addEntity($this->cart, $cart_variation);
  $this
    ->drupalGet("cart-update-ajax/{$this->cart->id()}");
  $this
    ->assertCartAjaxPage();
  $variation_row_element = $this
    ->getRowCartAjaxByVariation($cart_variation);
  $this
    ->assertVariationRowCartAjax($variation_row_element);
  $variation_position = $this
    ->getVariationRowPositionCartAjax($cart_variation);
  $this
    ->assertVariationRowPosition($variation_position);
  $variation_row_element
    ->fillField("dc_ajax_add_cart_views_edit_quantity[{$variation_position}]", '2');
  $this
    ->getSession()
    ->getPage()
    ->findButton('Update cart')
    ->click();
  $this
    ->waitForAjaxToFinish();
  $this->cart = Order::load($this->cart
    ->id());
  $price = $this
    ->getSession()
    ->getPage()
    ->find('css', '.order-total-line__total .order-total-line-value')
    ->getText();
  $price = (double) preg_replace('/[^0-9\\.]/', '', $price);
  $actual_price = (double) $this->cart
    ->getTotalPrice()
    ->getNumber();
  $this
    ->assertEquals($price, $actual_price, 'Prices are not equal.');
}