Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AssertSitemapContent.php
Go to the documentation of this file.
1 <?php
8 
12 use Magento\Sitemap\Test\Fixture\Sitemap;
13 use Magento\Sitemap\Test\Page\Adminhtml\SitemapIndex;
14 use Magento\Mtf\Constraint\AbstractConstraint;
15 
20 class AssertSitemapContent extends AbstractConstraint
21 {
35  public function processAssert(
36  CatalogProductSimple $product,
37  Category $catalog,
38  CmsPage $cmsPage,
39  Sitemap $sitemap,
40  SitemapIndex $sitemapIndex
41  ) {
42  $sitemapIndex->open()->getSitemapGrid()->sortGridByField('sitemap_id');
43  $filter = [
44  'sitemap_filename' => $sitemap->getSitemapFilename(),
45  'sitemap_path' => $sitemap->getSitemapPath(),
46  ];
47  $sitemapIndex->getSitemapGrid()->search($filter);
48  $content = file_get_contents($sitemapIndex->getSitemapGrid()->getLinkForGoogle());
49  $urls = [
50  $_ENV['app_frontend_url'] . $product->getUrlKey() . '.html',
51  $_ENV['app_frontend_url'] . $catalog->getUrlKey() . '.html',
52  $_ENV['app_frontend_url'] . $cmsPage->getIdentifier(),
53  ];
54 
55  \PHPUnit\Framework\Assert::assertTrue(
56  $this->checkContent($content, $urls),
57  'Content of file sitemap.xml does not include one or more of next urls:'
58  . implode("\n", $urls)
59  );
60  }
61 
69  protected function checkContent($content, $urls)
70  {
71  foreach ($urls as $url) {
72  if (strpos($content, $url) === false) {
73  return false;
74  }
75  }
76  return true;
77  }
78 
84  public function toString()
85  {
86  return 'File sitemap.xml contains correct content according to dataset.';
87  }
88 }
processAssert(CatalogProductSimple $product, Category $catalog, CmsPage $cmsPage, Sitemap $sitemap, SitemapIndex $sitemapIndex)