for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* @author Sergii Bondarenko, <[email protected]>
*/
namespace Drupal\TqExtension\Utils\DatePicker;
// Contexts.
use Drupal\TqExtension\Context\RawTqContext;
// Helpers.
use Behat\DebugExtension\Debugger;
final class DatePicker implements DatePickerInterface
{
use Debugger;
* @var DatePickerInterface
private $datePicker;
* {@inheritdoc}
public function __construct(RawTqContext $context, $selector, $date)
$session = $context->getSession();
if (null === $session->evaluateScript('jQuery.fn.datepicker')) {
throw new \RuntimeException('jQuery DatePicker is not available on the page.');
}
// Drupal 8 will use native "date" field if available.
$class = $session->evaluateScript('Modernizr && Modernizr.inputtypes.date') ? Native::class : JQuery::class;
self::debug(['The "%s" date picker will be used.'], [$class]);
$this->datePicker = new $class($context, $session, $context->element('*', $selector), $date);
public function setDate()
return $this->datePicker->{__FUNCTION__}();
public function isDateSelected()
public function isDateAvailable()