Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AssertCategoryBreadcrumbs.php
Go to the documentation of this file.
1 <?php
8 
10 use Magento\Catalog\Test\Page\Category\CatalogCategoryView;
11 use Magento\Mtf\Client\BrowserInterface;
12 use Magento\Mtf\Constraint\AbstractConstraint;
13 
17 class AssertCategoryBreadcrumbs extends AbstractConstraint
18 {
22  const HOME_PAGE = 'Home';
23 
29  protected $browser;
30 
39  public function processAssert(
40  BrowserInterface $browser,
41  Category $category,
42  CatalogCategoryView $catalogCategoryView
43  ) {
44  $this->browser = $browser;
45 
46  $this->openCategory($category);
47 
48  $breadcrumbs = $this->getBreadcrumbs($category);
49  \PHPUnit\Framework\Assert::assertNotEmpty(
50  $breadcrumbs,
51  'No breadcrumbs on category \'' . $category->getName() . '\' page.'
52  );
53  $pageBreadcrumbs = $catalogCategoryView->getBreadcrumbs()->getText();
54  \PHPUnit\Framework\Assert::assertEquals(
55  $breadcrumbs,
56  $pageBreadcrumbs,
57  'Wrong breadcrumbs of category page.'
58  . "\nExpected: " . $breadcrumbs
59  . "\nActual: " . $pageBreadcrumbs
60  );
61  }
62 
69  protected function openCategory(Category $category)
70  {
71  $categoryUrlKey = [];
72 
73  while ($category) {
74  $categoryUrlKey[] = $category->hasData('url_key')
75  ? strtolower($category->getUrlKey())
76  : trim(strtolower(preg_replace('#[^0-9a-z%]+#i', '-', $category->getName())), '-');
77 
78  $category = $category->getDataFieldConfig('parent_id')['source']->getParentCategory();
79  if ($category !== null && 1 == $category->getParentId()) {
80  $category = null;
81  }
82  }
83  $categoryUrlKey = $_ENV['app_frontend_url'] . implode('/', array_reverse($categoryUrlKey)) . '.html';
84 
85  $this->browser->open($categoryUrlKey);
86  }
87 
94  protected function getBreadcrumbs(Category $category)
95  {
96  $breadcrumbs = [];
97 
98  while ($category) {
99  $breadcrumbs[] = $category->getName();
100 
101  $category = $category->getDataFieldConfig('parent_id')['source']->getParentCategory();
102  if ($category !== null && 1 == $category->getParentId()) {
103  $category = null;
104  }
105  }
106  $breadcrumbs[] = self::HOME_PAGE;
107 
108  return implode(' ', array_reverse($breadcrumbs));
109  }
110 
116  public function toString()
117  {
118  return 'Breadcrumbs on category page equals to passed from fixture.';
119  }
120 }
taxRateField this edit on("click.mselect-delete", ".mselect-delete", function() { if(!confirm('<?=/*@escapeNotVerified */__( 'Do you really want to delete this tax rate?') ?>')) { return;} var that=$(this), select=that.closest('.mselect-list').prev(), rateValue=that.parent().find( 'input[type="checkbox"]').val();$( 'body').trigger( 'processStart');var ajaxOptions={ type:'POST', data:{ tax_calculation_rate_id:rateValue, form_key:$( 'input[name="form_key"]').val() }, dataType:'json', url:'<?=/*@escapeNotVerified */$block->getTaxRateDeleteUrl() ?>', success:function(result, status) { $( 'body').trigger( 'processStop');if(result.success) { that.parent().remove();select.find( 'option').each(function() { if(this.value===rateValue) { $(this).remove();} });select.trigger( 'change.hiddenSelect');} else { if(result.error_message) alert({ content:result.error_message });else alert({ content:'<?=/*@escapeNotVerified */__( 'An error occurred') ?>' });} }, error:function() { $( 'body').trigger( 'processStop');alert({ content:'<?=/*@escapeNotVerified */__( 'An error occurred') ?>' });} };$.ajax(ajaxOptions);}) .on( 'click.mselectAdd'
Definition: edit.phtml:164
processAssert(BrowserInterface $browser, Category $category, CatalogCategoryView $catalogCategoryView)