mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-24 11:08:45 +02:00
N°3791 - Panel: Use style defined in the DM for classes
Note that for now, semantic colors cannot be used directly in a <main_color> or <complementary_color> tag. Only valid CSS color (hexa, hsla, ...)
This commit is contained in:
@@ -11,39 +11,48 @@
|
|||||||
*/
|
*/
|
||||||
class ormStyle
|
class ormStyle
|
||||||
{
|
{
|
||||||
/** @var string */
|
/** @var string|null */
|
||||||
protected $sMainColor;
|
protected $sMainColor;
|
||||||
/** @var string */
|
/** @var string|null */
|
||||||
protected $sComplementaryColor;
|
protected $sComplementaryColor;
|
||||||
/** @var string CSS class with color and background-color */
|
/** @var string|null CSS class with color and background-color */
|
||||||
protected $sStyleClass;
|
protected $sStyleClass;
|
||||||
/** @var string CSS class with only color */
|
/** @var string|null CSS class with only color */
|
||||||
protected $sAltStyleClass;
|
protected $sAltStyleClass;
|
||||||
/** @var string */
|
/** @var string|null */
|
||||||
protected $sDecorationClasses;
|
protected $sDecorationClasses;
|
||||||
/** @var string Relative path (from current environment) to the icon */
|
/** @var string|null Relative path (from current environment) to the icon */
|
||||||
protected $sIcon;
|
protected $sIcon;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ormStyle constructor.
|
* ormStyle constructor.
|
||||||
*
|
*
|
||||||
* @param string $sStyleClass
|
* @param string|null $sStyleClass
|
||||||
* @param string $sAltStyleClass
|
* @param string|null $sAltStyleClass
|
||||||
* @param string|null $sMainColor
|
* @param string|null $sMainColor
|
||||||
* @param string|null $sComplementaryColor
|
* @param string|null $sComplementaryColor
|
||||||
* @param string|null $sDecorationClasses
|
* @param string|null $sDecorationClasses
|
||||||
* @param string|null $sIcon
|
* @param string|null $sIcon
|
||||||
*/
|
*/
|
||||||
public function __construct(string $sStyleClass, string $sAltStyleClass, string $sMainColor = null, string $sComplementaryColor = null, string $sDecorationClasses = null, string $sIcon = null)
|
public function __construct(?string $sStyleClass = null, ?string $sAltStyleClass = null, ?string $sMainColor = null, ?string $sComplementaryColor = null, ?string $sDecorationClasses = null, ?string $sIcon = null)
|
||||||
{
|
{
|
||||||
$this->sMainColor = $sMainColor;
|
$this->SetMainColor($sMainColor);
|
||||||
$this->sComplementaryColor = $sComplementaryColor;
|
$this->SetComplementaryColor($sComplementaryColor);
|
||||||
$this->sStyleClass = $sStyleClass;
|
$this->SetStyleClass($sStyleClass);
|
||||||
$this->sAltStyleClass = $sAltStyleClass;
|
$this->SetAltStyleClass($sAltStyleClass);
|
||||||
$this->sDecorationClasses = $sDecorationClasses;
|
$this->SetDecorationClasses($sDecorationClasses);
|
||||||
$this->SetIcon($sIcon);
|
$this->SetIcon($sIcon);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see static::$sMainColor
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function HasMainColor(): bool
|
||||||
|
{
|
||||||
|
return strlen($this->sMainColor) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
@@ -59,10 +68,19 @@ class ormStyle
|
|||||||
*/
|
*/
|
||||||
public function SetMainColor(?string $sMainColor)
|
public function SetMainColor(?string $sMainColor)
|
||||||
{
|
{
|
||||||
$this->sMainColor = $sMainColor;
|
$this->sMainColor = (strlen($sMainColor) === 0) ? null : $sMainColor;
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see static::$sComplementaryColor
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function HasComplementaryColor(): bool
|
||||||
|
{
|
||||||
|
return strlen($this->sComplementaryColor) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
@@ -78,14 +96,33 @@ class ormStyle
|
|||||||
*/
|
*/
|
||||||
public function SetComplementaryColor(?string $sComplementaryColor)
|
public function SetComplementaryColor(?string $sComplementaryColor)
|
||||||
{
|
{
|
||||||
$this->sComplementaryColor = $sComplementaryColor;
|
$this->sComplementaryColor = (strlen($sComplementaryColor) === 0) ? null : $sComplementaryColor;
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see static::$sMainColor
|
||||||
|
* @see static::$sComplementaryColor
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function HasAtLeastOneColor(): bool
|
||||||
|
{
|
||||||
|
return $this->HasMainColor() || $this->HasComplementaryColor();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see static::$sStyleClass
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function HasStyleClass(): bool
|
||||||
|
{
|
||||||
|
return strlen($this->sStyleClass) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function GetStyleClass(): string
|
public function GetStyleClass(): ?string
|
||||||
{
|
{
|
||||||
return $this->sStyleClass;
|
return $this->sStyleClass;
|
||||||
}
|
}
|
||||||
@@ -95,16 +132,25 @@ class ormStyle
|
|||||||
*
|
*
|
||||||
* @return $this
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function SetStyleClass(string $sStyleClass)
|
public function SetStyleClass(?string $sStyleClass)
|
||||||
{
|
{
|
||||||
$this->sStyleClass = $sStyleClass;
|
$this->sStyleClass = (strlen($sStyleClass) === 0) ? null : $sStyleClass;
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see static::$sAltStyleClass
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function HasAltStyleClass(): bool
|
||||||
|
{
|
||||||
|
return strlen($this->sAltStyleClass) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function GetAltStyleClass(): string
|
public function GetAltStyleClass(): ?string
|
||||||
{
|
{
|
||||||
return $this->sAltStyleClass;
|
return $this->sAltStyleClass;
|
||||||
}
|
}
|
||||||
@@ -114,12 +160,21 @@ class ormStyle
|
|||||||
*
|
*
|
||||||
* @return $this
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function SetAltStyleClass(string $sAltStyleClass)
|
public function SetAltStyleClass(?string $sAltStyleClass)
|
||||||
{
|
{
|
||||||
$this->sAltStyleClass = $sAltStyleClass;
|
$this->sAltStyleClass = (strlen($sAltStyleClass) === 0) ? null : $sAltStyleClass;
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see static::$sDecorationClasses
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function HasDecorationClasses(): bool
|
||||||
|
{
|
||||||
|
return strlen($this->sDecorationClasses) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
@@ -135,10 +190,19 @@ class ormStyle
|
|||||||
*/
|
*/
|
||||||
public function SetDecorationClasses(?string $sDecorationClasses)
|
public function SetDecorationClasses(?string $sDecorationClasses)
|
||||||
{
|
{
|
||||||
$this->sDecorationClasses = $sDecorationClasses;
|
$this->sDecorationClasses = (strlen($sDecorationClasses) === 0) ? null : $sDecorationClasses;
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see static::$sIcon
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function HasIcon(): bool
|
||||||
|
{
|
||||||
|
return strlen($this->sIcon) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $sIcon
|
* @param string|null $sIcon
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -2254,10 +2254,6 @@ EOF
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// CSS classes representing the element (regular and alternative)
|
|
||||||
$sCssRegularClass = "ibo-dm-$sElementType--$sClass$sCssClassSuffix";
|
|
||||||
$sCssAlternativeClass = "ibo-dm-$sElementType-alt--$sClass$sCssClassSuffix";
|
|
||||||
|
|
||||||
// Retrieve colors (optional depending on the element)
|
// Retrieve colors (optional depending on the element)
|
||||||
if ($sElementType === self::ENUM_STYLE_HOST_ELEMENT_TYPE_CLASS) {
|
if ($sElementType === self::ENUM_STYLE_HOST_ELEMENT_TYPE_CLASS) {
|
||||||
$sMainColorForOrm = $this->GetPropString($oNode, 'main_color', null);
|
$sMainColorForOrm = $this->GetPropString($oNode, 'main_color', null);
|
||||||
@@ -2282,6 +2278,7 @@ EOF
|
|||||||
}
|
}
|
||||||
$bHasMainColor = is_null($sMainColorForCss) === false;
|
$bHasMainColor = is_null($sMainColorForCss) === false;
|
||||||
$bHasComplementaryColor = is_null($sComplementaryColorForCss) === false;
|
$bHasComplementaryColor = is_null($sComplementaryColorForCss) === false;
|
||||||
|
$bHasAtLeastOneColor = $bHasMainColor || $bHasComplementaryColor;
|
||||||
|
|
||||||
// Optional decoration classes
|
// Optional decoration classes
|
||||||
$sDecorationClasses = $this->GetPropString($oNode, 'decoration_classes', null);
|
$sDecorationClasses = $this->GetPropString($oNode, 'decoration_classes', null);
|
||||||
@@ -2297,12 +2294,19 @@ EOF
|
|||||||
$sIconRelPath = "'$sModuleRelDir/$sIconRelPath'";
|
$sIconRelPath = "'$sModuleRelDir/$sIconRelPath'";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CSS classes representing the element (regular and alternative)
|
||||||
|
$sCssRegularClass = "ibo-dm-$sElementType--$sClass$sCssClassSuffix";
|
||||||
|
$sCssRegularClassForOrm = $bHasAtLeastOneColor ? "'$sCssRegularClass'" : "null";
|
||||||
|
|
||||||
|
$sCssAlternativeClass = "ibo-dm-$sElementType-alt--$sClass$sCssClassSuffix";
|
||||||
|
$sCssAlternativeClassForOrm = $bHasAtLeastOneColor ? "'$sCssAlternativeClass'" : "null";
|
||||||
|
|
||||||
// Generate ormStyle instantiation
|
// Generate ormStyle instantiation
|
||||||
$aData['orm_style_instantiation'] = "$sOrmStylePrefix new ormStyle('$sCssRegularClass', '$sCssAlternativeClass', $sMainColorForOrm, $sComplementaryColorForOrm, $sDecorationClasses, $sIconRelPath)";
|
$aData['orm_style_instantiation'] = "$sOrmStylePrefix new ormStyle($sCssRegularClassForOrm, $sCssAlternativeClassForOrm, $sMainColorForOrm, $sComplementaryColorForOrm, $sDecorationClasses, $sIconRelPath)";
|
||||||
|
|
||||||
// Generate SCSS declaration
|
// Generate SCSS declaration
|
||||||
$sScss = "";
|
$sScss = "";
|
||||||
if ($bHasMainColor || $bHasComplementaryColor) {
|
if ($bHasAtLeastOneColor) {
|
||||||
if ($bHasMainColor) {
|
if ($bHasMainColor) {
|
||||||
$sMainColorScssVariableName = "\$$sCssRegularClass--main-color";
|
$sMainColorScssVariableName = "\$$sCssRegularClass--main-color";
|
||||||
$sMainColorCssVariableName = "--$sCssRegularClass--main-color";
|
$sMainColorCssVariableName = "--$sCssRegularClass--main-color";
|
||||||
@@ -2316,9 +2320,6 @@ EOF
|
|||||||
|
|
||||||
$sCssAlternativeClassComplementaryColorDeclaration = "--ibo-complementary-color: $sMainColorScssVariableName;";
|
$sCssAlternativeClassComplementaryColorDeclaration = "--ibo-complementary-color: $sMainColorScssVariableName;";
|
||||||
} else {
|
} else {
|
||||||
$sMainColorScssVariableName = null;
|
|
||||||
$sMainColorCssVariableName = null;
|
|
||||||
|
|
||||||
$sMainColorScssVariableDeclaration = null;
|
$sMainColorScssVariableDeclaration = null;
|
||||||
|
|
||||||
$sCssRegularClassMainColorDeclaration = null;
|
$sCssRegularClassMainColorDeclaration = null;
|
||||||
@@ -2338,9 +2339,6 @@ EOF
|
|||||||
|
|
||||||
$sCssAlternativeClassMainColorDeclaration = "--ibo-main-color: $sComplementaryColorScssVariableName;";
|
$sCssAlternativeClassMainColorDeclaration = "--ibo-main-color: $sComplementaryColorScssVariableName;";
|
||||||
} else {
|
} else {
|
||||||
$sComplementaryColorScssVariableName = null;
|
|
||||||
$sComplementaryColorCssVariableName = null;
|
|
||||||
|
|
||||||
$sComplementaryScssVariableDeclaration = null;
|
$sComplementaryScssVariableDeclaration = null;
|
||||||
$sComplementaryCssVariableDeclaration = null;
|
$sComplementaryCssVariableDeclaration = null;
|
||||||
|
|
||||||
|
|||||||
@@ -434,10 +434,10 @@ class Panel extends UIContentBlock
|
|||||||
*/
|
*/
|
||||||
public function SetColorFromOrmStyle(ormStyle $oStyle)
|
public function SetColorFromOrmStyle(ormStyle $oStyle)
|
||||||
{
|
{
|
||||||
if (strlen($oStyle->GetStyleClass()) === 0) {
|
if ($oStyle->HasStyleClass()) {
|
||||||
$this->SetColorFromColorSemantic(static::DEFAULT_COLOR_SCHEME);
|
|
||||||
} else {
|
|
||||||
$this->SetCSSColorClass($oStyle->GetStyleClass());
|
$this->SetCSSColorClass($oStyle->GetStyleClass());
|
||||||
|
} else {
|
||||||
|
$this->SetColorFromColorSemantic(static::DEFAULT_COLOR_SCHEME);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
|
|||||||
@@ -296,7 +296,8 @@ class MetaModelTest extends ItopDataTestCase
|
|||||||
public function GetClassStyleProvider()
|
public function GetClassStyleProvider()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'Organization' => ['Organization', 'ibo-dm-class--Organization', 'ibo-dm-class-alt--Organization', null, 'itop-structure/../../images/icons/icons8-organization.svg'],
|
'Class with no color, only icon' => ['Organization', null, null, null, 'itop-structure/../../images/icons/icons8-organization.svg'],
|
||||||
|
'Class with colors and icon' => ['Contact', 'ibo-dm-class--Contact', 'ibo-dm-class-alt--Contact', null, 'itop-structure/../../images/icons/icons8-customer.svg'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,75 +21,254 @@ class ormStyleTest extends ItopTestCase
|
|||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $sRegularClass
|
* @param string $sSetterName
|
||||||
* @param string $sAlternativeClass
|
* @param string $sGetterName
|
||||||
* @param string|null $sMainColor
|
* @param mixed $expectedAfterInstantiation
|
||||||
* @param string|null $sComplementaryColor
|
* @param mixed $inputValue
|
||||||
* @param string|null $sDecorationClasses
|
* @param mixed $expectedValueAfterSetter
|
||||||
* @param string|null $sIconRelPath
|
|
||||||
*
|
*
|
||||||
* @covers ormStyle::GetStyleClass
|
|
||||||
* @covers ormStyle::GetAltStyleClass
|
|
||||||
* @covers ormStyle::GetMainColor
|
* @covers ormStyle::GetMainColor
|
||||||
* @covers ormStyle::GetComplementaryColor
|
|
||||||
* @covers ormStyle::GetDecorationClasses
|
|
||||||
* @covers ormStyle::GetIconAsRelPath
|
|
||||||
* @covers ormStyle::SetStyleClass
|
|
||||||
* @covers ormStyle::SetAltStyleClass
|
|
||||||
* @covers ormStyle::SetMainColor
|
* @covers ormStyle::SetMainColor
|
||||||
|
* @covers ormStyle::HasMainColor
|
||||||
|
* @covers ormStyle::GetComplementaryColor
|
||||||
* @covers ormStyle::SetComplementaryColor
|
* @covers ormStyle::SetComplementaryColor
|
||||||
|
* @covers ormStyle::HasComplementaryColor
|
||||||
|
* @covers ormStyle::GetStyleClass
|
||||||
|
* @covers ormStyle::SetStyleClass
|
||||||
|
* @covers ormStyle::HasStyleClass
|
||||||
|
* @covers ormStyle::GetAltStyleClass
|
||||||
|
* @covers ormStyle::SetAltStyleClass
|
||||||
|
* @covers ormStyle::HasAltStyleClass
|
||||||
|
* @covers ormStyle::GetDecorationClasses
|
||||||
* @covers ormStyle::SetDecorationClasses
|
* @covers ormStyle::SetDecorationClasses
|
||||||
* @covers ormStyle::SetIcon
|
* @covers ormStyle::HasDecorationClasses
|
||||||
*
|
*
|
||||||
* @dataProvider BaseSetsProvider
|
* @dataProvider BaseSetsProvider
|
||||||
*/
|
*/
|
||||||
public function testNonAlteringMethods(string $sRegularClass, string $sAlternativeClass, ?string $sMainColor, ?string $sComplementaryColor, ?string $sDecorationClasses, ?string $sIconRelPath)
|
public function testPropertiesThatShouldNotBeAnAEmptyString(string $sSetterName, string $sGetterName, $expectedAfterInstantiation, $inputValue, $expectedValueAfterSetter)
|
||||||
{
|
{
|
||||||
$oStyle = new ormStyle($sRegularClass, $sAlternativeClass, $sMainColor, $sComplementaryColor, $sDecorationClasses, $sIconRelPath);
|
$oStyle = new ormStyle();
|
||||||
|
|
||||||
// Test getters straight from instantiation
|
// Test getters straight from instantiation
|
||||||
$this->assertEquals($sRegularClass, $oStyle->GetStyleClass());
|
// Note: Use of assertTrue instead of assertEquals, otherwise it considers null to be equals to ""
|
||||||
$this->assertEquals($sAlternativeClass, $oStyle->GetAltStyleClass());
|
$this->assertTrue($oStyle->$sGetterName() === $expectedAfterInstantiation);
|
||||||
$this->assertEquals($sMainColor, $oStyle->GetMainColor());
|
|
||||||
$this->assertEquals($sComplementaryColor, $oStyle->GetComplementaryColor());
|
|
||||||
$this->assertEquals($sDecorationClasses, $oStyle->GetDecorationClasses());
|
|
||||||
$this->assertEquals($sIconRelPath, $oStyle->GetIconAsRelPath());
|
|
||||||
|
|
||||||
// Test that setters don't change passed value
|
// Test that setters don't change passed value
|
||||||
$oStyle->SetStyleClass($sRegularClass);
|
$oStyle->$sSetterName($inputValue);
|
||||||
$this->assertEquals($sRegularClass, $oStyle->GetStyleClass());
|
// Note: Use of assertTrue instead of assertEquals, otherwise it considers null to be equals to ""
|
||||||
|
$this->assertTrue($oStyle->$sGetterName() === $expectedValueAfterSetter);
|
||||||
|
}
|
||||||
|
|
||||||
$oStyle->SetAltStyleClass($sAlternativeClass);
|
public function BaseSetsProvider(): array
|
||||||
$this->assertEquals($sAlternativeClass, $oStyle->GetAltStyleClass());
|
{
|
||||||
|
return [
|
||||||
$oStyle->SetMainColor($sMainColor);
|
'Main color as hexa color' => [
|
||||||
$this->assertEquals($sMainColor, $oStyle->GetMainColor());
|
'SetMainColor',
|
||||||
|
'GetMainColor',
|
||||||
$oStyle->SetComplementaryColor($sComplementaryColor);
|
null,
|
||||||
$this->assertEquals($sComplementaryColor, $oStyle->GetComplementaryColor());
|
'#ABCDEF',
|
||||||
|
'#ABCDEF',
|
||||||
$oStyle->SetDecorationClasses($sDecorationClasses);
|
],
|
||||||
$this->assertEquals($sDecorationClasses, $oStyle->GetDecorationClasses());
|
'Main color as empty string' => [
|
||||||
|
'SetMainColor',
|
||||||
$oStyle->SetIcon($sIconRelPath);
|
'GetMainColor',
|
||||||
$this->assertEquals($sIconRelPath, $oStyle->GetIconAsRelPath());
|
null,
|
||||||
|
'',
|
||||||
|
null,
|
||||||
|
],
|
||||||
|
'Main color as null' => [
|
||||||
|
'SetMainColor',
|
||||||
|
'GetMainColor',
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
],
|
||||||
|
'Main color not present' => [
|
||||||
|
'SetMainColor',
|
||||||
|
'HasMainColor',
|
||||||
|
false,
|
||||||
|
null,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
'Main color present' => [
|
||||||
|
'SetMainColor',
|
||||||
|
'HasMainColor',
|
||||||
|
false,
|
||||||
|
'#ABCDEF',
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'Complementary color as hexa color' => [
|
||||||
|
'SetComplementaryColor',
|
||||||
|
'GetComplementaryColor',
|
||||||
|
null,
|
||||||
|
'#ABCDEF',
|
||||||
|
'#ABCDEF',
|
||||||
|
],
|
||||||
|
'Complementary color as empty string' => [
|
||||||
|
'SetComplementaryColor',
|
||||||
|
'GetComplementaryColor',
|
||||||
|
null,
|
||||||
|
'',
|
||||||
|
null,
|
||||||
|
],
|
||||||
|
'Complementary color as null' => [
|
||||||
|
'SetComplementaryColor',
|
||||||
|
'GetComplementaryColor',
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
],
|
||||||
|
'Complementary color not present' => [
|
||||||
|
'SetComplementaryColor',
|
||||||
|
'HasComplementaryColor',
|
||||||
|
false,
|
||||||
|
null,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
'Complementary color present' => [
|
||||||
|
'SetComplementaryColor',
|
||||||
|
'HasComplementaryColor',
|
||||||
|
false,
|
||||||
|
'#ABCDEF',
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'At least main color present' => [
|
||||||
|
'SetMainColor',
|
||||||
|
'HasAtLeastOneColor',
|
||||||
|
false,
|
||||||
|
'#ABCDEF',
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'At least complementary color present' => [
|
||||||
|
'SetComplementaryColor',
|
||||||
|
'HasAtLeastOneColor',
|
||||||
|
false,
|
||||||
|
'#ABCDEF',
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'Style class as CSS class' => [
|
||||||
|
'SetStyleClass',
|
||||||
|
'GetStyleClass',
|
||||||
|
null,
|
||||||
|
'foo-css-class',
|
||||||
|
'foo-css-class',
|
||||||
|
],
|
||||||
|
'Style class as empty string' => [
|
||||||
|
'SetStyleClass',
|
||||||
|
'GetStyleClass',
|
||||||
|
null,
|
||||||
|
'',
|
||||||
|
null,
|
||||||
|
],
|
||||||
|
'Style class as null' => [
|
||||||
|
'SetStyleClass',
|
||||||
|
'GetStyleClass',
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
],
|
||||||
|
'Style class not present' => [
|
||||||
|
'SetStyleClass',
|
||||||
|
'HasComplementaryColor',
|
||||||
|
false,
|
||||||
|
null,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
'Style class present' => [
|
||||||
|
'SetStyleClass',
|
||||||
|
'HasStyleClass',
|
||||||
|
false,
|
||||||
|
'foo-css-class',
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'Alt style class as CSS class' => [
|
||||||
|
'SetAltStyleClass',
|
||||||
|
'GetAltStyleClass',
|
||||||
|
null,
|
||||||
|
'foo-css-class',
|
||||||
|
'foo-css-class',
|
||||||
|
],
|
||||||
|
'Alt style class as empty string' => [
|
||||||
|
'SetAltStyleClass',
|
||||||
|
'GetAltStyleClass',
|
||||||
|
null,
|
||||||
|
'',
|
||||||
|
null,
|
||||||
|
],
|
||||||
|
'Alt style class as null' => [
|
||||||
|
'SetAltStyleClass',
|
||||||
|
'GetAltStyleClass',
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
],
|
||||||
|
'Alt style class not present' => [
|
||||||
|
'SetAltStyleClass',
|
||||||
|
'HasAltStyleClass',
|
||||||
|
false,
|
||||||
|
null,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
'Alt style class present' => [
|
||||||
|
'SetAltStyleClass',
|
||||||
|
'HasAltStyleClass',
|
||||||
|
false,
|
||||||
|
'foo-css-class',
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
'Decoration classes as CSS classes' => [
|
||||||
|
'SetMainColor',
|
||||||
|
'GetMainColor',
|
||||||
|
null,
|
||||||
|
'fas fa-user',
|
||||||
|
'fas fa-user',
|
||||||
|
],
|
||||||
|
'Decoration classes as empty string' => [
|
||||||
|
'SetMainColor',
|
||||||
|
'GetMainColor',
|
||||||
|
null,
|
||||||
|
'',
|
||||||
|
null,
|
||||||
|
],
|
||||||
|
'Decoration classes as null' => [
|
||||||
|
'SetMainColor',
|
||||||
|
'GetMainColor',
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
],
|
||||||
|
'Decoration classes not present' => [
|
||||||
|
'SetDecorationClasses',
|
||||||
|
'HasDecorationClasses',
|
||||||
|
false,
|
||||||
|
null,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
'Decoration classes present' => [
|
||||||
|
'SetDecorationClasses',
|
||||||
|
'HasDecorationClasses',
|
||||||
|
false,
|
||||||
|
'fas fa-user',
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $sRegularClass
|
* @param string|null $sRegularClass
|
||||||
* @param string $sAlternativeClass
|
* @param string|null $sAlternativeClass
|
||||||
* @param string|null $sMainColor
|
* @param string|null $sMainColor
|
||||||
* @param string|null $sComplementaryColor
|
* @param string|null $sComplementaryColor
|
||||||
* @param string|null $sDecorationClasses
|
* @param string|null $sDecorationClasses
|
||||||
* @param string|null $sIconRelPath
|
* @param string|null $sIconRelPath
|
||||||
*
|
*
|
||||||
* @covers ormStyle::GetIconAsAbsUrl
|
|
||||||
*
|
|
||||||
* @dataProvider BaseSetsProvider
|
|
||||||
*
|
|
||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
|
* @covers ormStyle::GetIconAsAbsUrl
|
||||||
|
*
|
||||||
|
* @dataProvider GetIconAsAbsUrlProvider
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
public function testGetIconAsAbsUrl(string $sRegularClass, string $sAlternativeClass, ?string $sMainColor, ?string $sComplementaryColor, ?string $sDecorationClasses, ?string $sIconRelPath)
|
public function testGetIconAsAbsUrl(?string $sRegularClass, ?string $sAlternativeClass, ?string $sMainColor, ?string $sComplementaryColor, ?string $sDecorationClasses, ?string $sIconRelPath)
|
||||||
{
|
{
|
||||||
$oStyle = new ormStyle($sRegularClass, $sAlternativeClass, $sMainColor, $sComplementaryColor, $sDecorationClasses, $sIconRelPath);
|
$oStyle = new ormStyle($sRegularClass, $sAlternativeClass, $sMainColor, $sComplementaryColor, $sDecorationClasses, $sIconRelPath);
|
||||||
|
|
||||||
@@ -97,7 +276,7 @@ class ormStyleTest extends ItopTestCase
|
|||||||
$this->assertEquals($sExpectedIconAbsUrl, $oStyle->GetIconAsAbsUrl());
|
$this->assertEquals($sExpectedIconAbsUrl, $oStyle->GetIconAsAbsUrl());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function BaseSetsProvider(): array
|
public function GetIconAsAbsUrlProvider(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'Complete style with icon from /images folder' => [
|
'Complete style with icon from /images folder' => [
|
||||||
|
|||||||
Reference in New Issue
Block a user