mirror of
https://github.com/wiosna-dev/common-library.git
synced 2026-03-12 09:31:51 +01:00
Utilities > CssSelector > useful methods related to CSS selectors
This commit is contained in:
110
src/Traits/CssSelector/FormCssSelector.php
Normal file
110
src/Traits/CssSelector/FormCssSelector.php
Normal file
@@ -0,0 +1,110 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* (c) Meritoo.pl, http://www.meritoo.pl
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Meritoo\Common\Traits\CssSelector;
|
||||
|
||||
/**
|
||||
* Useful methods related to CSS selectors of form
|
||||
*
|
||||
* @author Meritoo <github@meritoo.pl>
|
||||
* @copyright Meritoo <http://www.meritoo.pl>
|
||||
*/
|
||||
trait FormCssSelector
|
||||
{
|
||||
/**
|
||||
* Returns selector of form based on its name
|
||||
*
|
||||
* @param string $formName Name of form (value of the "name" attribute)
|
||||
* @return string
|
||||
*/
|
||||
public static function getFormByNameSelector($formName)
|
||||
{
|
||||
$formName = trim($formName);
|
||||
|
||||
if (empty($formName)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return sprintf('form[name="%s"]', $formName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns selector of the input field based on its name
|
||||
*
|
||||
* @param string $formName Name of form (value of the "name" attribute)
|
||||
* @param string $fieldName Name of field (value of the "name" attribute)
|
||||
* @return string
|
||||
*/
|
||||
public static function getInputByNameSelector($formName, $fieldName)
|
||||
{
|
||||
$formSelector = static::getFormByNameSelector($formName);
|
||||
$fieldName = trim($fieldName);
|
||||
|
||||
if (empty($formSelector) || empty($fieldName)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return sprintf('%s input[name="%s"]', $formSelector, $fieldName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns selector of the input field based on its ID
|
||||
*
|
||||
* @param string $formName Name of form (value of the "name" attribute)
|
||||
* @param string $fieldId ID of field (value of the "id" attribute)
|
||||
* @return string
|
||||
*/
|
||||
public static function getInputByIdSelector($formName, $fieldId)
|
||||
{
|
||||
$formSelector = static::getFormByNameSelector($formName);
|
||||
$fieldId = trim($fieldId);
|
||||
|
||||
if (empty($formSelector) || empty($fieldId)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return sprintf('%s input#%s', $formSelector, $fieldId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns selector of label
|
||||
*
|
||||
* @param string $formName Name of form (value of the "name" attribute)
|
||||
* @param string $fieldId ID of field (value of the "id" attribute)
|
||||
* @return string
|
||||
*/
|
||||
public static function getLabelSelector($formName, $fieldId)
|
||||
{
|
||||
$formSelector = static::getFormByNameSelector($formName);
|
||||
$fieldId = trim($fieldId);
|
||||
|
||||
if (empty($formSelector) || empty($fieldId)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return sprintf('%s label[for="%s"]', $formSelector, $fieldId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns selector of field-set using index/position of the field-set
|
||||
*
|
||||
* @param string $formName Name of form (value of the "name" attribute)
|
||||
* @param int $fieldSetIndex Index/Position of the field-set
|
||||
* @return string
|
||||
*/
|
||||
public static function getFieldSetByIndexSelector($formName, $fieldSetIndex)
|
||||
{
|
||||
$formSelector = static::getFormByNameSelector($formName);
|
||||
|
||||
if (empty($formSelector) || 0 > $fieldSetIndex) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return sprintf('%s fieldset:nth-of-type(%d)', $formSelector, $fieldSetIndex);
|
||||
}
|
||||
}
|
||||
@@ -49,6 +49,20 @@ trait BaseTestCaseTrait
|
||||
yield[[]];
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides an empty scalar value
|
||||
*
|
||||
* @return Generator
|
||||
*/
|
||||
public function provideEmptyScalarValue()
|
||||
{
|
||||
yield[''];
|
||||
yield[' '];
|
||||
yield[null];
|
||||
yield[0];
|
||||
yield[false];
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides boolean value
|
||||
*
|
||||
|
||||
22
src/Utilities/CssSelector.php
Normal file
22
src/Utilities/CssSelector.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* (c) Meritoo.pl, http://www.meritoo.pl
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Meritoo\Common\Utilities;
|
||||
|
||||
use Meritoo\Common\Traits\CssSelector\FormCssSelector;
|
||||
|
||||
/**
|
||||
* Useful methods related to CSS selectors
|
||||
*
|
||||
* @author Meritoo <github@meritoo.pl>
|
||||
* @copyright Meritoo <http://www.meritoo.pl>
|
||||
*/
|
||||
class CssSelector
|
||||
{
|
||||
use FormCssSelector;
|
||||
}
|
||||
Reference in New Issue
Block a user