Skip to content

Commit

Permalink
Merge pull request #1035 from magento-fearless-kiwis/MAGETWO-63116_JS…
Browse files Browse the repository at this point in the history
…ON_ERROR

MAGETWO-63116: [GitHub] Quotes in product name causes JSON error on product page MAP What's This Popup #8059
  • Loading branch information
paliarush committed Apr 18, 2017
2 parents f86fa3f + 110c0a4 commit 1a45542
Show file tree
Hide file tree
Showing 8 changed files with 182 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ if ($product->isSaleable()) {
class="action map-show-info"
data-mage-init='{"addToCart":{"origin": "info",
"helpLinkId": "#<?php /* @escapeNotVerified */ echo $helpLinkId;?>",
"productName": "<?php /* @escapeNotVerified */ echo $product->getName() ?>",
"productName": "<?php echo $block->escapeJs($block->escapeHtml($product->getName())) ?>",
"closeButtonId": "#map-popup-close"}}'><span><?php /* @escapeNotVerified */ echo __("What's this?"); ?></span>
</a>
<?php endif; ?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/

namespace Magento\Msrp\Test\Constraint;

use Magento\Catalog\Test\Fixture\CatalogProductSimple;
use Magento\Cms\Test\Page\CmsIndex;
use Magento\Mtf\Constraint\AbstractConstraint;
use Magento\Mtf\Fixture\InjectableFixture;
use Magento\Catalog\Test\Page\Category\CatalogCategoryView;

/**
* Assert product MAP related data on category page.
*/
class AssertMapOnCategoryPage extends AbstractConstraint
{
/**
* Assert product MAP related data on category page.
*
* @param CmsIndex $cmsIndex
* @param CatalogCategoryView $catalogCategoryView
* @param InjectableFixture $product
* @return void
*/
public function processAssert(
CmsIndex $cmsIndex,
CatalogCategoryView $catalogCategoryView,
InjectableFixture $product
) {
/** @var CatalogProductSimple $product */
$cmsIndex->open();
$cmsIndex->getTopmenu()->selectCategoryByName($product->getCategoryIds()[0]);

$productBlock = $catalogCategoryView->getMsrpListProductBlock()->getProductItem($product);
$productBlock->openMapBlock();
$mapBlock = $productBlock->getMapBlock();
\PHPUnit_Framework_Assert::assertEquals(
$product->getMsrp(),
$mapBlock->getOldPrice(),
'Displayed on Category page MAP is incorrect.'
);
$priceData = $product->getDataFieldConfig('price')['source']->getPriceData();
$price = isset($priceData['category_price']) ? $priceData['category_price'] : $product->getPrice();
\PHPUnit_Framework_Assert::assertEquals(
$price,
$mapBlock->getActualPrice(),
'Displayed on Category page price is incorrect.'
);
}

/**
* Return string representation of object.
*
* @return string
*/
public function toString()
{
return "Displayed Product MAP data on category page is correct.";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/

namespace Magento\Msrp\Test\Constraint;

use Magento\Cms\Test\Page\CmsIndex;
use Magento\Catalog\Test\Page\Category\CatalogCategoryView;
use Magento\Mtf\Constraint\AbstractConstraint;
use Magento\Mtf\Fixture\InjectableFixture;
use Magento\Catalog\Test\Fixture\CatalogProductSimple;
use Magento\Catalog\Test\Page\Product\CatalogProductView;

/**
* Assert product MAP related data on product view page.
*/
class AssertMapOnProductView extends AbstractConstraint
{
/**
* Assert product MAP related data on product view page.
*
* @param CmsIndex $cmsIndex
* @param CatalogCategoryView $catalogCategoryView
* @param CatalogProductView $catalogProductView
* @param InjectableFixture $product
* @return void
*/
public function processAssert(
CmsIndex $cmsIndex,
CatalogCategoryView $catalogCategoryView,
CatalogProductView $catalogProductView,
InjectableFixture $product
) {
/** @var CatalogProductSimple $product */
$cmsIndex->open();
$cmsIndex->getTopmenu()->selectCategoryByName($product->getCategoryIds()[0]);
$catalogCategoryView->getListProductBlock()->getProductItem($product)->open();

$viewBlock = $catalogProductView->getMsrpViewBlock();
$viewBlock->openMapBlock();
$mapBlock = $viewBlock->getMapBlock();
\PHPUnit_Framework_Assert::assertContains(
$product->getMsrp(),
$mapBlock->getOldPrice(),
'Displayed on Product view page MAP is incorrect.'
);
$priceData = $product->getDataFieldConfig('price')['source']->getPriceData();
$price = isset($priceData['category_price']) ? $priceData['category_price'] : $product->getPrice();
\PHPUnit_Framework_Assert::assertEquals(
$price,
$mapBlock->getActualPrice(),
'Displayed on Product view page price is incorrect.'
);
}

/**
* Return string representation of object.
*
* @return string
*/
public function toString()
{
return "Displayed Product MAP data on product view page is correct.";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public function processAssert(
$cmsIndex->getTopmenu()->selectCategoryByName($product->getCategoryIds()[0]);
$catalogCategoryView->getListProductBlock()->getProductItem($product)->open();

if ($product->hasData('checkout_data')) {
if ($product->hasData('checkout_data') || $product->getMsrpDisplayActualPriceType() === 'In Cart') {
$catalogProductView->getViewBlock()->addToCart($product);
} else {
$catalogProductView->getMsrpViewBlock()->openMapBlock();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
use Magento\Catalog\Test\Page\Category\CatalogCategoryView;

/**
* Assert product MAP related data on category page.
* Assert product MSRP related data on category page.
*/
class AssertMsrpOnCategoryPage extends AbstractConstraint
{
/**
* Assert product MAP related data on category page.
* Assert product MSRP related data on category page.
*
* @param CmsIndex $cmsIndex
* @param CatalogCategoryView $catalogCategoryView
Expand All @@ -44,27 +44,12 @@ public function processAssert(
\PHPUnit_Framework_Assert::assertEquals(
$product->getMsrp(),
$priceBlock->getOldPrice(),
'Displayed on Category page MAP is incorrect.'
'Displayed on Category page MSRP is incorrect.'
);
\PHPUnit_Framework_Assert::assertFalse(
$priceBlock->isRegularPriceVisible(),
'Regular price on Category page is visible and not expected.'
);

$productBlock->openMapBlock();
$mapBlock = $productBlock->getMapBlock();
\PHPUnit_Framework_Assert::assertEquals(
$product->getMsrp(),
$mapBlock->getOldPrice(),
'Displayed on Category page MAP is incorrect.'
);
$priceData = $product->getDataFieldConfig('price')['source']->getPriceData();
$price = isset($priceData['category_price']) ? $priceData['category_price'] : $product->getPrice();
\PHPUnit_Framework_Assert::assertEquals(
$price,
$mapBlock->getActualPrice(),
'Displayed on Category page price is incorrect.'
);
}

/**
Expand All @@ -74,6 +59,6 @@ public function processAssert(
*/
public function toString()
{
return "Displayed Product MAP data on category page is correct.";
return "Displayed Product MSRP data on category page is correct.";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@
use Magento\Catalog\Test\Page\Product\CatalogProductView;

/**
* Assert product MAP related data on product view page.
* Assert product MSRP related data on product view page.
*/
class AssertMsrpOnProductView extends AbstractConstraint
{
/**
* Assert product MAP related data on product view page.
* Assert product MSRP related data on product view page.
*
* @param CmsIndex $cmsIndex
* @param CatalogCategoryView $catalogCategoryView
Expand All @@ -43,27 +43,12 @@ public function processAssert(
\PHPUnit_Framework_Assert::assertEquals(
$product->getMsrp(),
$priceBlock->getOldPrice(),
'Displayed on Product view page MAP is incorrect'
'Displayed on Product view page MSRP is incorrect'
);
\PHPUnit_Framework_Assert::assertFalse(
$priceBlock->isRegularPriceVisible(),
'Regular price on Product view page is visible and not expected.'
);

$viewBlock->openMapBlock();
$mapBlock = $viewBlock->getMapBlock();
\PHPUnit_Framework_Assert::assertContains(
$product->getMsrp(),
$mapBlock->getOldPrice(),
'Displayed on Product view page MAP is incorrect.'
);
$priceData = $product->getDataFieldConfig('price')['source']->getPriceData();
$price = isset($priceData['category_price']) ? $priceData['category_price'] : $product->getPrice();
\PHPUnit_Framework_Assert::assertEquals(
$price,
$mapBlock->getActualPrice(),
'Displayed on Product view page price is incorrect.'
);
}

/**
Expand All @@ -73,6 +58,6 @@ public function processAssert(
*/
public function toString()
{
return "Displayed Product MAP data on product view page is correct.";
return "Displayed Product MSRP data on product view page is correct.";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -70,5 +70,37 @@
<field name="msrp" xsi:type="string">15</field>
<field name="msrp_display_actual_price_type" xsi:type="string">On Gesture</field>
</dataset>

<dataset name="msrp_display_actual_price_in_cart_with_quotes_in_product_name">
<field name="name" xsi:type="string">\'Simple Product with\' msrp %isolation%</field>
<field name="url_key" xsi:type="string">simple-product-with-msrp-%isolation%</field>
<field name="sku" xsi:type="string">sku_simple_product_with_msrp_%isolation%</field>
<field name="weight" xsi:type="string">1</field>
<field name="product_has_weight" xsi:type="string">This item has weight</field>
<field name="quantity_and_stock_status" xsi:type="array">
<item name="qty" xsi:type="string">1000</item>
<item name="is_in_stock" xsi:type="string">In Stock</item>
</field>
<field name="price" xsi:type="array">
<item name="value" xsi:type="string">10</item>
<item name="dataset" xsi:type="string">-</item>
</field>
<field name="category_ids" xsi:type="array">
<item name="dataset" xsi:type="string">default_subcategory</item>
</field>
<field name="tax_class_id" xsi:type="array">
<item name="dataset" xsi:type="string">taxable_goods</item>
</field>
<field name="website_ids" xsi:type="array">
<item name="0" xsi:type="array">
<item name="dataset" xsi:type="string">default</item>
</item>
</field>
<field name="stock_data" xsi:type="array">
<item name="manage_stock" xsi:type="string">No</item>
</field>
<field name="msrp" xsi:type="string">15</field>
<field name="msrp_display_actual_price_type" xsi:type="string">In Cart</field>
</dataset>
</repository>
</config>
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,23 @@
<variation name="ApplyMapTestVariation1" summary="Apply Minimum Advertised Price Setting to Simple Product" ticketId="MAGETWO-12430">
<data name="product" xsi:type="string">catalogProductSimple::msrp_on_gesture</data>
<constraint name="Magento\Msrp\Test\Constraint\AssertMsrpOnCategoryPage" />
<constraint name="Magento\Msrp\Test\Constraint\AssertMapOnCategoryPage" />
<constraint name="Magento\Msrp\Test\Constraint\AssertMsrpOnProductView" />
<constraint name="Magento\Msrp\Test\Constraint\AssertMapOnProductView" />
<constraint name="Magento\Msrp\Test\Constraint\AssertMsrpInShoppingCart" />
</variation>
<variation name="ApplyMapTestVariation2" summary="Apply Minimum Advertised Price to the Configurable Product" ticketId="MAGETWO-12847">
<data name="product" xsi:type="string">configurableProduct::msrp_on_gesture_one_variation</data>
<data name="tag" xsi:type="string">test_type:acceptance_test, test_type:extended_acceptance_test</data>
<constraint name="Magento\Msrp\Test\Constraint\AssertMsrpOnCategoryPage" />
<constraint name="Magento\Msrp\Test\Constraint\AssertMapOnCategoryPage" />
<constraint name="Magento\Msrp\Test\Constraint\AssertMsrpOnProductView" />
<constraint name="Magento\Msrp\Test\Constraint\AssertMapOnProductView" />
<constraint name="Magento\Msrp\Test\Constraint\AssertMsrpInShoppingCart" />
</variation>
<variation name="ApplyMapTestVariation3" summary="Apply Minimum Advertised Price to Simple Product with Quotes in product name" ticketId="MAGETWO-67491">
<data name="product" xsi:type="string">catalogProductSimple::msrp_display_actual_price_in_cart_with_quotes_in_product_name</data>
<constraint name="Magento\Msrp\Test\Constraint\AssertMsrpOnCategoryPage" />
<constraint name="Magento\Msrp\Test\Constraint\AssertMsrpOnProductView" />
<constraint name="Magento\Msrp\Test\Constraint\AssertMsrpInShoppingCart" />
</variation>
Expand Down

0 comments on commit 1a45542

Please sign in to comment.