/**
  * @param bool $lowerCase If =true, returned in lower case
  *
  * @return string Base name of method. <br/>
  *                Actions: without postfixes: *AndWait <br/>
  *                Accessors: without prefixes: store*, get*, is* <br/>
  *                Assertion: without prefixes: assert*, verify*, waitFor* <br/>
  * @throws \Exception   If not assigned
  *                      {@link type} of method
  */
 function getBaseName($lowerCase = false)
 {
     $baseName = null;
     switch ($this->type) {
         case static::TYPE_ACTION:
             $baseName = Helper::cutPostfix(['AndWait'], $this->name);
             break;
         case static::TYPE_ACCESSOR:
             $baseName = Helper::cutPrefix(['store', 'get', 'is'], $this->name);
             break;
         case static::TYPE_ASSERTION:
             $name = str_replace('Not', '', $this->name);
             $baseName = Helper::cutPrefix(['assert', 'verify', 'waitFor'], $name);
             break;
         default:
             $this::throwException('Cannot determine base name without assigned type of method');
     }
     return $lowerCase ? strtolower($baseName) : $baseName;
 }
 /**
  * Adds dot (if not exist) in to end of specified text (completion of sentence).
  *
  * @param string $text
  *
  * @return string   Trimmed text with dot in the end.
  */
 private function _addEndDotIfNotExist($text)
 {
     $endSymbols = '[' . join('', Helper::$endOfSentence) . ']';
     // symbol class like: [.!?]
     // find text like: "end</p>", "end </p>", "end  </p>"
     $regExpDotBeforeClosingTag = '/(?<!' . $endSymbols . '|' . $endSymbols . '\\s|' . $endSymbols . '\\s\\s)(?P<tag><\\/\\w+>)\\s*\\Z/';
     $testedText = trim(strip_tags($text));
     if ($testedText && !Helper::hasPostfix(Helper::$endOfSentence, $testedText)) {
         $postfix = preg_match($regExpDotBeforeClosingTag, $text, $m) ? $m['tag'] : '';
         $text = Helper::cutPostfix($postfix, rtrim($text)) . '.' . $postfix;
     }
     return $text;
 }