N°931: TagSet search (manage undefined values) unit tests

This commit is contained in:
Eric
2018-09-12 18:17:17 +02:00
parent 979095337b
commit d1ee7f4353
5 changed files with 73 additions and 15 deletions

View File

@@ -157,8 +157,7 @@ class CriterionToOQL extends CriterionConversionAbstract
{
$aValues = self::GetValues($aCriteria);
$sValue = self::GetValue($aValues, 0);
if (empty($sValue))
if (empty($sValue) && (!(isset($aCriteria['has_undefined'])) || !($aCriteria['has_undefined'])))
{
return "1";
}
@@ -183,17 +182,34 @@ class CriterionToOQL extends CriterionConversionAbstract
{
$aValues = self::GetValues($aCriteria);
$aRawValues = array();
$bHasUnDefined = isset($aCriteria['has_undefined']) ? $aCriteria['has_undefined'] : false;
for($i = 0; $i < count($aValues); $i++)
{
$aRawValues[] = self::GetValue($aValues, $i);
$sRawValue = self::GetValue($aValues, $i);
if (strlen($sRawValue) == 0)
{
$bHasUnDefined = true;
}
else
{
$aRawValues[] = $sRawValue;
}
}
$sValue = implode(' ', $aRawValues);
if (empty($sValue))
{
if ($bHasUnDefined)
{
return "({$sRef} = '')";
}
return "1";
}
if ($bHasUnDefined)
{
return "((({$sRef} MATCHES '{$sValue}') OR ({$sRef} = '')) AND 1)";
}
return "({$sRef} MATCHES '{$sValue}')";
}