/** * Extracts and return the label NodeElement, identified by $field content and $element * * @param string $field * @param ElementInterface $element * * @return \Behat\Mink\Element\NodeElement */ protected function extractLabelElement($field, ElementInterface $element = null) { $subLabelContent = null; $channel = null; $labelContent = $field; if (false !== strpbrk($field, '€$')) { if (false !== strpos($field, ' ')) { list($subLabelContent, $labelContent) = explode(' ', $field); } } if ($element) { $label = $this->spin(function () use($element, $labelContent) { return $element->find('css', sprintf('label:contains("%s")', $labelContent)); }, sprintf('Cannot find "%s" label', $labelContent)); } else { $labeParts = explode(' ', $labelContent); $channel = in_array(reset($labeParts), ['mobile', 'ecommerce', 'print', 'tablet']) ? reset($labeParts) : null; if (null !== $channel) { $labelContent = substr($labelContent, strlen($channel . ' ')); } $label = $this->spin(function () use($labelContent) { return $this->find('css', sprintf('label:contains("%s")', $labelContent)); }, sprintf('Cannot find "%s" label', $labelContent)); } if (!$label) { $label = new \stdClass(); } $label->channel = $channel; $label->labelContent = $labelContent; $label->subLabelContent = $subLabelContent; return $label; }
/** * @param ElementInterface $element * @param string $regexp * * @return bool */ private function isItMetadataCustomizationPage(ElementInterface $element, $regexp) { $header = $element->find('css', '.page-header h1'); if (null === $header) { return false; } if (false === strpos($header->getText(), "Customizing metadata")) { return false; } if (false === (bool) preg_match($regexp, $header->getText())) { return false; } return true; }
/** * {@inheritdoc} */ protected function extractLabelElement($field, ElementInterface $element = null) { $subLabelContent = null; $labelContent = $field; if (strstr($field, 'USD') || strstr($field, 'EUR')) { if (false !== strpos($field, ' ')) { list($subLabelContent, $labelContent) = explode(' ', $field); } } if (null !== $element) { $label = $this->spin(function () use($element, $labelContent) { return $element->find('css', sprintf('label:contains("%s")', $labelContent)); }, sprintf('Unable to find label %s in element : %s', $labelContent, $element->getHtml())); } else { $label = $this->spin(function () use($labelContent) { return $this->find('css', sprintf('label:contains("%s")', $labelContent)); }, sprintf('Unable to find label %s', $labelContent)); } $label->labelContent = $labelContent; $label->subLabelContent = $subLabelContent; return $label; }