@@ -44,7 +44,7 @@ discard block |
||
| 44 | 44 | require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; |
| 45 | 45 | } |
| 46 | 46 | if (!empty($conf->accounting->enabled)) { |
| 47 | - require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php'; |
|
| 47 | + require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; |
|
| 48 | 48 | } |
| 49 | 49 | |
| 50 | 50 | // Load translation files required by page |
@@ -280,7 +280,7 @@ discard block |
||
| 280 | 280 | print '<td class="titlefield">'; |
| 281 | 281 | print $form->textwithpicto($langs->trans('VATReverseChargeByDefault'), $langs->trans('VATReverseChargeByDefaultDesc')); |
| 282 | 282 | print '</td><td>'; |
| 283 | - print '<input type="checkbox" name="vat_reverse_charge" ' . ($object->vat_reverse_charge == '1' ? ' checked' : '') . ' disabled>'; |
|
| 283 | + print '<input type="checkbox" name="vat_reverse_charge" '.($object->vat_reverse_charge == '1' ? ' checked' : '').' disabled>'; |
|
| 284 | 284 | print '</td>'; |
| 285 | 285 | print '</tr>'; |
| 286 | 286 | } |
@@ -196,7 +196,7 @@ discard block |
||
| 196 | 196 | } else { |
| 197 | 197 | print ': '; |
| 198 | 198 | } |
| 199 | - if (! empty($object->user_creation) && is_object($object->user_creation)) { // deprecated mode |
|
| 199 | + if (!empty($object->user_creation) && is_object($object->user_creation)) { // deprecated mode |
|
| 200 | 200 | if ($object->user_creation->id) { |
| 201 | 201 | print $object->user_creation->getNomUrl(-1, '', 0, 0, 0); |
| 202 | 202 | } else { |
@@ -1216,14 +1216,14 @@ discard block |
||
| 1216 | 1216 | $counter = 0; |
| 1217 | 1217 | $sql = "SELECT MAX(".$sqlstring.") as val"; |
| 1218 | 1218 | $sql .= " FROM ".MAIN_DB_PREFIX.$table; |
| 1219 | - $sql .= " WHERE ".$field." LIKE '".$db->escape($maskLike) . (getDolGlobalString('SEARCH_FOR_NEXT_VAL_ON_START_ONLY') ? "%" : "") . "'"; |
|
| 1219 | + $sql .= " WHERE ".$field." LIKE '".$db->escape($maskLike).(getDolGlobalString('SEARCH_FOR_NEXT_VAL_ON_START_ONLY') ? "%" : "")."'"; |
|
| 1220 | 1220 | $sql .= " AND ".$field." NOT LIKE '(PROV%)'"; |
| 1221 | 1221 | |
| 1222 | 1222 | // To ensure that all variables within the MAX() brackets are integers |
| 1223 | 1223 | // This avoid bad detection of max when data are noised with non numeric values at the position of the numero |
| 1224 | 1224 | if (getDolGlobalInt('MAIN_NUMBERING_FILTER_ON_INT_ONLY')) { |
| 1225 | 1225 | // @phan-suppress-next-line PhanPluginSuspiciousParamPosition |
| 1226 | - $sql .= " AND ". $db->regexpsql($sqlstring, '^[0-9]+$', 1); |
|
| 1226 | + $sql .= " AND ".$db->regexpsql($sqlstring, '^[0-9]+$', 1); |
|
| 1227 | 1227 | } |
| 1228 | 1228 | |
| 1229 | 1229 | if ($bentityon) { // only if entity enable |
@@ -1285,7 +1285,7 @@ discard block |
||
| 1285 | 1285 | $ref = ''; |
| 1286 | 1286 | $sql = "SELECT ".$field." as ref"; |
| 1287 | 1287 | $sql .= " FROM ".MAIN_DB_PREFIX.$table; |
| 1288 | - $sql .= " WHERE ".$field." LIKE '".$db->escape($maskLike) . (getDolGlobalString('SEARCH_FOR_NEXT_VAL_ON_START_ONLY') ? "%" : "") . "'"; |
|
| 1288 | + $sql .= " WHERE ".$field." LIKE '".$db->escape($maskLike).(getDolGlobalString('SEARCH_FOR_NEXT_VAL_ON_START_ONLY') ? "%" : "")."'"; |
|
| 1289 | 1289 | $sql .= " AND ".$field." NOT LIKE '%PROV%'"; |
| 1290 | 1290 | if ($bentityon) { // only if entity enable |
| 1291 | 1291 | $sql .= " AND entity IN (".getEntity($sharetable).")"; |
@@ -1349,7 +1349,7 @@ discard block |
||
| 1349 | 1349 | $maskrefclient_sql = "SELECT MAX(".$maskrefclient_sqlstring.") as val"; |
| 1350 | 1350 | $maskrefclient_sql .= " FROM ".MAIN_DB_PREFIX.$table; |
| 1351 | 1351 | //$sql.= " WHERE ".$field." not like '(%'"; |
| 1352 | - $maskrefclient_sql .= " WHERE ".$field." LIKE '".$db->escape($maskrefclient_maskLike) . (getDolGlobalString('SEARCH_FOR_NEXT_VAL_ON_START_ONLY') ? "%" : "") . "'"; |
|
| 1352 | + $maskrefclient_sql .= " WHERE ".$field." LIKE '".$db->escape($maskrefclient_maskLike).(getDolGlobalString('SEARCH_FOR_NEXT_VAL_ON_START_ONLY') ? "%" : "")."'"; |
|
| 1353 | 1353 | if ($bentityon) { // only if entity enable |
| 1354 | 1354 | $maskrefclient_sql .= " AND entity IN (".getEntity($sharetable).")"; |
| 1355 | 1355 | } elseif (!empty($forceentity)) { |
@@ -2955,7 +2955,7 @@ discard block |
||
| 2955 | 2955 | $string = trim($string); |
| 2956 | 2956 | |
| 2957 | 2957 | // If string does not start and end with parenthesis, we return $string as is. |
| 2958 | - if (! preg_match('/^\(.*\)$/', $string)) { |
|
| 2958 | + if (!preg_match('/^\(.*\)$/', $string)) { |
|
| 2959 | 2959 | return $string; |
| 2960 | 2960 | } |
| 2961 | 2961 | |
@@ -2992,15 +2992,15 @@ discard block |
||
| 2992 | 2992 | function getArrayOfEmoji() |
| 2993 | 2993 | { |
| 2994 | 2994 | $arrayofcommonemoji = array( |
| 2995 | - 'misc' => array('2600', '26FF'), // Miscellaneous Symbols |
|
| 2996 | - 'ding' => array('2700', '27BF'), // Dingbats |
|
| 2997 | - '????' => array('9989', '9989'), // Variation Selectors |
|
| 2998 | - 'vars' => array('FE00', 'FE0F'), // Variation Selectors |
|
| 2999 | - 'pict' => array('1F300', '1F5FF'), // Miscellaneous Symbols and Pictographs |
|
| 3000 | - 'emot' => array('1F600', '1F64F'), // Emoticons |
|
| 3001 | - 'tran' => array('1F680', '1F6FF'), // Transport and Map Symbols |
|
| 3002 | - 'flag' => array('1F1E0', '1F1FF'), // Flags (note: may be 1F1E6 instead of 1F1E0) |
|
| 3003 | - 'supp' => array('1F900', '1F9FF'), // Supplemental Symbols and Pictographs |
|
| 2995 | + 'misc' => array('2600', '26FF'), // Miscellaneous Symbols |
|
| 2996 | + 'ding' => array('2700', '27BF'), // Dingbats |
|
| 2997 | + '????' => array('9989', '9989'), // Variation Selectors |
|
| 2998 | + 'vars' => array('FE00', 'FE0F'), // Variation Selectors |
|
| 2999 | + 'pict' => array('1F300', '1F5FF'), // Miscellaneous Symbols and Pictographs |
|
| 3000 | + 'emot' => array('1F600', '1F64F'), // Emoticons |
|
| 3001 | + 'tran' => array('1F680', '1F6FF'), // Transport and Map Symbols |
|
| 3002 | + 'flag' => array('1F1E0', '1F1FF'), // Flags (note: may be 1F1E6 instead of 1F1E0) |
|
| 3003 | + 'supp' => array('1F900', '1F9FF'), // Supplemental Symbols and Pictographs |
|
| 3004 | 3004 | ); |
| 3005 | 3005 | |
| 3006 | 3006 | return $arrayofcommonemoji; |
@@ -24,25 +24,25 @@ discard block |
||
| 24 | 24 | */ |
| 25 | 25 | |
| 26 | 26 | // Put here all includes required by your class file |
| 27 | -include_once DOL_DOCUMENT_ROOT .'/emailcollector/lib/emailcollector.lib.php'; |
|
| 28 | - |
|
| 29 | -require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php'; |
|
| 30 | -require_once DOL_DOCUMENT_ROOT .'/core/lib/files.lib.php'; |
|
| 31 | -require_once DOL_DOCUMENT_ROOT .'/core/lib/functions2.lib.php'; |
|
| 32 | - |
|
| 33 | -require_once DOL_DOCUMENT_ROOT .'/comm/propal/class/propal.class.php'; // Customer Proposal |
|
| 34 | -require_once DOL_DOCUMENT_ROOT .'/commande/class/commande.class.php'; // Sale Order |
|
| 35 | -require_once DOL_DOCUMENT_ROOT .'/compta/facture/class/facture.class.php'; // Customer Invoice |
|
| 36 | -require_once DOL_DOCUMENT_ROOT .'/contact/class/contact.class.php'; // Contact / Address |
|
| 37 | -require_once DOL_DOCUMENT_ROOT .'/expedition/class/expedition.class.php'; // Shipping / Delivery |
|
| 38 | -require_once DOL_DOCUMENT_ROOT .'/fourn/class/fournisseur.commande.class.php'; // Purchase Order |
|
| 39 | -require_once DOL_DOCUMENT_ROOT .'/fourn/class/fournisseur.facture.class.php'; // Purchase Invoice |
|
| 40 | -require_once DOL_DOCUMENT_ROOT .'/projet/class/project.class.php'; // Project |
|
| 41 | -require_once DOL_DOCUMENT_ROOT .'/reception/class/reception.class.php'; // Reception |
|
| 42 | -require_once DOL_DOCUMENT_ROOT .'/recruitment/class/recruitmentcandidature.class.php'; // Recruiting |
|
| 43 | -require_once DOL_DOCUMENT_ROOT .'/societe/class/societe.class.php'; // Third-Party |
|
| 44 | -require_once DOL_DOCUMENT_ROOT .'/supplier_proposal/class/supplier_proposal.class.php'; // Supplier Proposal |
|
| 45 | -require_once DOL_DOCUMENT_ROOT .'/ticket/class/ticket.class.php'; // Ticket |
|
| 27 | +include_once DOL_DOCUMENT_ROOT.'/emailcollector/lib/emailcollector.lib.php'; |
|
| 28 | + |
|
| 29 | +require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; |
|
| 30 | +require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; |
|
| 31 | +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; |
|
| 32 | + |
|
| 33 | +require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; // Customer Proposal |
|
| 34 | +require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; // Sale Order |
|
| 35 | +require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; // Customer Invoice |
|
| 36 | +require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; // Contact / Address |
|
| 37 | +require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; // Shipping / Delivery |
|
| 38 | +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; // Purchase Order |
|
| 39 | +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; // Purchase Invoice |
|
| 40 | +require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; // Project |
|
| 41 | +require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php'; // Reception |
|
| 42 | +require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentcandidature.class.php'; // Recruiting |
|
| 43 | +require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; // Third-Party |
|
| 44 | +require_once DOL_DOCUMENT_ROOT.'/supplier_proposal/class/supplier_proposal.class.php'; // Supplier Proposal |
|
| 45 | +require_once DOL_DOCUMENT_ROOT.'/ticket/class/ticket.class.php'; // Ticket |
|
| 46 | 46 | //require_once DOL_DOCUMENT_ROOT .'/expensereport/class/expensereport.class.php'; // Expense Report |
| 47 | 47 | //require_once DOL_DOCUMENT_ROOT .'/holiday/class/holiday.class.php'; // Holidays (leave request) |
| 48 | 48 | |
@@ -787,7 +787,7 @@ discard block |
||
| 787 | 787 | } elseif (empty($this->imap_encryption) || ($this->imap_encryption == 'ssl' && getDolGlobalString('IMAP_FORCE_NOSSL'))) { |
| 788 | 788 | $flags .= ''; |
| 789 | 789 | } else { |
| 790 | - $flags .= '/' . $this->imap_encryption; |
|
| 790 | + $flags .= '/'.$this->imap_encryption; |
|
| 791 | 791 | } |
| 792 | 792 | |
| 793 | 793 | $flags .= '/novalidate-cert'; |
@@ -817,8 +817,8 @@ discard block |
||
| 817 | 817 | { |
| 818 | 818 | if (function_exists('mb_convert_encoding')) { |
| 819 | 819 | // change spaces by entropy because mb_convert fail with spaces |
| 820 | - $str = preg_replace("/ /", "xxxSPACExxx", $str); // the replacement string must be valid in utf7 so _ can't be used |
|
| 821 | - $str = preg_replace("/\[Gmail\]/", "xxxGMAILxxx", $str); // the replacement string must be valid in utf7 so _ can't be used |
|
| 820 | + $str = preg_replace("/ /", "xxxSPACExxx", $str); // the replacement string must be valid in utf7 so _ can't be used |
|
| 821 | + $str = preg_replace("/\[Gmail\]/", "xxxGMAILxxx", $str); // the replacement string must be valid in utf7 so _ can't be used |
|
| 822 | 822 | // if mb_convert work |
| 823 | 823 | if ($str = mb_convert_encoding($str, "UTF-7")) { |
| 824 | 824 | // change characters |
@@ -1430,7 +1430,7 @@ discard block |
||
| 1430 | 1430 | } |
| 1431 | 1431 | |
| 1432 | 1432 | if ($rule['type'] == 'from') { |
| 1433 | - $tmprulevaluearray = explode('*', $rule['rulevalue']); // Search on abc*def means searching on 'abc' and on 'def' |
|
| 1433 | + $tmprulevaluearray = explode('*', $rule['rulevalue']); // Search on abc*def means searching on 'abc' and on 'def' |
|
| 1434 | 1434 | if (count($tmprulevaluearray) >= 2) { |
| 1435 | 1435 | foreach ($tmprulevaluearray as $tmprulevalue) { |
| 1436 | 1436 | $search .= ($search ? ' ' : '').$not.'FROM "'.str_replace('"', '', $tmprulevalue).'"'; |
@@ -1440,7 +1440,7 @@ discard block |
||
| 1440 | 1440 | } |
| 1441 | 1441 | } |
| 1442 | 1442 | if ($rule['type'] == 'to') { |
| 1443 | - $tmprulevaluearray = explode('*', $rule['rulevalue']); // Search on abc*def means searching on 'abc' and on 'def' |
|
| 1443 | + $tmprulevaluearray = explode('*', $rule['rulevalue']); // Search on abc*def means searching on 'abc' and on 'def' |
|
| 1444 | 1444 | if (count($tmprulevaluearray) >= 2) { |
| 1445 | 1445 | foreach ($tmprulevaluearray as $tmprulevalue) { |
| 1446 | 1446 | $search .= ($search ? ' ' : '').$not.'TO "'.str_replace('"', '', $tmprulevalue).'"'; |
@@ -1616,7 +1616,7 @@ discard block |
||
| 1616 | 1616 | } |
| 1617 | 1617 | } |
| 1618 | 1618 | |
| 1619 | - $arrayofemailtodelete = array(); // Track email to delete to make the deletion at end. |
|
| 1619 | + $arrayofemailtodelete = array(); // Track email to delete to make the deletion at end. |
|
| 1620 | 1620 | |
| 1621 | 1621 | // Loop on each email found |
| 1622 | 1622 | if (!$error && !empty($arrayofemail) && count($arrayofemail) > 0) { |
@@ -1814,7 +1814,7 @@ discard block |
||
| 1814 | 1814 | $attachments = []; |
| 1815 | 1815 | } |
| 1816 | 1816 | } else { |
| 1817 | - $this->getmsg($connection, $imapemail); // This set global var $charset, $htmlmsg, $plainmsg, $attachments |
|
| 1817 | + $this->getmsg($connection, $imapemail); // This set global var $charset, $htmlmsg, $plainmsg, $attachments |
|
| 1818 | 1818 | } |
| 1819 | 1819 | '@phan-var-force Webklex\PHPIMAP\Attachment[] $attachments'; |
| 1820 | 1820 | |
@@ -2145,7 +2145,7 @@ discard block |
||
| 2145 | 2145 | } else { |
| 2146 | 2146 | foreach ($arrayofreferences as $key => $referencetmp) { |
| 2147 | 2147 | if (!str_contains($objectemail->origin_references, $referencetmp)) { |
| 2148 | - $objectemail->origin_references.= " ".$referencetmp; |
|
| 2148 | + $objectemail->origin_references .= " ".$referencetmp; |
|
| 2149 | 2149 | $changeonticket_references = true; |
| 2150 | 2150 | } |
| 2151 | 2151 | } |
@@ -2281,7 +2281,7 @@ discard block |
||
| 2281 | 2281 | |
| 2282 | 2282 | // Make Operation |
| 2283 | 2283 | dol_syslog("Execute action ".$operation['type']." actionparam=".$operation['actionparam'].' thirdpartystatic->id='.$thirdpartystatic->id.' contactstatic->id='.$contactstatic->id.' projectstatic->id='.$projectstatic->id); |
| 2284 | - dol_syslog("Execute action fk_element_id=".$fk_element_id." fk_element_type=".$fk_element_type); // If a Dolibarr tracker id is found, we should now the id of object |
|
| 2284 | + dol_syslog("Execute action fk_element_id=".$fk_element_id." fk_element_type=".$fk_element_type); // If a Dolibarr tracker id is found, we should now the id of object |
|
| 2285 | 2285 | |
| 2286 | 2286 | $actioncode = 'EMAIL_IN'; |
| 2287 | 2287 | // If we scan the Sent box, we use the code for out email |
@@ -2316,7 +2316,7 @@ discard block |
||
| 2316 | 2316 | $alreadycreated2 = $tickettocreate->fetch(0, '', '', $msgid); |
| 2317 | 2317 | $alreadycreated = $alreadycreated1 + $alreadycreated2; |
| 2318 | 2318 | if ($alreadycreated1 < 0 || $alreadycreated2 < 0) { |
| 2319 | - $errorfetchticket ++; |
|
| 2319 | + $errorfetchticket++; |
|
| 2320 | 2320 | } |
| 2321 | 2321 | if (empty($errorfetchticket)) { |
| 2322 | 2322 | if ($alreadycreated == 0) { |
@@ -2556,11 +2556,11 @@ discard block |
||
| 2556 | 2556 | $result = $contactstatic->fetch(0, null, '', $from); |
| 2557 | 2557 | if ($result < 0) { |
| 2558 | 2558 | $errorforactions++; |
| 2559 | - $this->error = 'Error when getting contact with email ' . $from; |
|
| 2559 | + $this->error = 'Error when getting contact with email '.$from; |
|
| 2560 | 2560 | $this->errors[] = $this->error; |
| 2561 | 2561 | break; |
| 2562 | 2562 | } elseif ($result == 0) { |
| 2563 | - dol_syslog("Contact with email " . $from . " was not found. We try to create it."); |
|
| 2563 | + dol_syslog("Contact with email ".$from." was not found. We try to create it."); |
|
| 2564 | 2564 | $contactstatic = new Contact($this->db); |
| 2565 | 2565 | |
| 2566 | 2566 | // Create contact |
@@ -2575,28 +2575,28 @@ discard block |
||
| 2575 | 2575 | } else { |
| 2576 | 2576 | // Search country by name or code |
| 2577 | 2577 | if (!empty($contactstatic->country)) { |
| 2578 | - require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php'; |
|
| 2578 | + require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; |
|
| 2579 | 2579 | $result = getCountry('', 3, $this->db, '', 1, $contactstatic->country); |
| 2580 | 2580 | if ($result == 'NotDefined') { |
| 2581 | 2581 | $errorforactions++; |
| 2582 | - $this->error = "Error country not found by this name '" . $contactstatic->country . "'"; |
|
| 2582 | + $this->error = "Error country not found by this name '".$contactstatic->country."'"; |
|
| 2583 | 2583 | } elseif (!($result > 0)) { |
| 2584 | 2584 | $errorforactions++; |
| 2585 | - $this->error = "Error when search country by this name '" . $contactstatic->country . "'"; |
|
| 2585 | + $this->error = "Error when search country by this name '".$contactstatic->country."'"; |
|
| 2586 | 2586 | $this->errors[] = $this->db->lasterror(); |
| 2587 | 2587 | } else { |
| 2588 | 2588 | $contactstatic->country_id = $result; |
| 2589 | 2589 | $operationslog .= '<br>We set property country_id='.dol_escape_htmltag($result); |
| 2590 | 2590 | } |
| 2591 | 2591 | } elseif (!empty($contactstatic->country_code)) { |
| 2592 | - require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php'; |
|
| 2592 | + require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; |
|
| 2593 | 2593 | $result = getCountry($contactstatic->country_code, 3, $this->db); |
| 2594 | 2594 | if ($result == 'NotDefined') { |
| 2595 | 2595 | $errorforactions++; |
| 2596 | - $this->error = "Error country not found by this code '" . $contactstatic->country_code . "'"; |
|
| 2596 | + $this->error = "Error country not found by this code '".$contactstatic->country_code."'"; |
|
| 2597 | 2597 | } elseif (!($result > 0)) { |
| 2598 | 2598 | $errorforactions++; |
| 2599 | - $this->error = "Error when search country by this code '" . $contactstatic->country_code . "'"; |
|
| 2599 | + $this->error = "Error when search country by this code '".$contactstatic->country_code."'"; |
|
| 2600 | 2600 | $this->errors[] = $this->db->lasterror(); |
| 2601 | 2601 | } else { |
| 2602 | 2602 | $contactstatic->country_id = $result; |
@@ -2607,28 +2607,28 @@ discard block |
||
| 2607 | 2607 | if (!$errorforactions) { |
| 2608 | 2608 | // Search state by name or code (for country if defined) |
| 2609 | 2609 | if (!empty($contactstatic->state)) { |
| 2610 | - require_once DOL_DOCUMENT_ROOT . '/core/lib/functions.lib.php'; |
|
| 2610 | + require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php'; |
|
| 2611 | 2611 | $result = dol_getIdFromCode($this->db, $contactstatic->state, 'c_departements', 'nom', 'rowid'); |
| 2612 | 2612 | if (empty($result)) { |
| 2613 | 2613 | $errorforactions++; |
| 2614 | - $this->error = "Error state not found by this name '" . $contactstatic->state . "'"; |
|
| 2614 | + $this->error = "Error state not found by this name '".$contactstatic->state."'"; |
|
| 2615 | 2615 | } elseif (!($result > 0)) { |
| 2616 | 2616 | $errorforactions++; |
| 2617 | - $this->error = "Error when search state by this name '" . $contactstatic->state . "'"; |
|
| 2617 | + $this->error = "Error when search state by this name '".$contactstatic->state."'"; |
|
| 2618 | 2618 | $this->errors[] = $this->db->lasterror(); |
| 2619 | 2619 | } else { |
| 2620 | 2620 | $contactstatic->state_id = $result; |
| 2621 | 2621 | $operationslog .= '<br>We set property state_id='.dol_escape_htmltag($result); |
| 2622 | 2622 | } |
| 2623 | 2623 | } elseif (!empty($contactstatic->state_code)) { |
| 2624 | - require_once DOL_DOCUMENT_ROOT . '/core/lib/functions.lib.php'; |
|
| 2624 | + require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php'; |
|
| 2625 | 2625 | $result = dol_getIdFromCode($this->db, $contactstatic->state_code, 'c_departements', 'code_departement', 'rowid'); |
| 2626 | 2626 | if (empty($result)) { |
| 2627 | 2627 | $errorforactions++; |
| 2628 | - $this->error = "Error state not found by this code '" . $contactstatic->state_code . "'"; |
|
| 2628 | + $this->error = "Error state not found by this code '".$contactstatic->state_code."'"; |
|
| 2629 | 2629 | } elseif (!($result > 0)) { |
| 2630 | 2630 | $errorforactions++; |
| 2631 | - $this->error = "Error when search state by this code '" . $contactstatic->state_code . "'"; |
|
| 2631 | + $this->error = "Error when search state by this code '".$contactstatic->state_code."'"; |
|
| 2632 | 2632 | $this->errors[] = $this->db->lasterror(); |
| 2633 | 2633 | } else { |
| 2634 | 2634 | $contactstatic->state_id = $result; |
@@ -2691,8 +2691,8 @@ discard block |
||
| 2691 | 2691 | $actioncomm->label = $langs->trans("ActionAC_".$actioncode).' - '.$langs->trans("MailFrom").' '.$from; |
| 2692 | 2692 | $actioncomm->note_private = $descriptionfull; |
| 2693 | 2693 | $actioncomm->fk_project = $projectstatic->id; |
| 2694 | - $actioncomm->datep = $date; // date of email |
|
| 2695 | - $actioncomm->datef = $date; // date of email |
|
| 2694 | + $actioncomm->datep = $date; // date of email |
|
| 2695 | + $actioncomm->datef = $date; // date of email |
|
| 2696 | 2696 | $actioncomm->percentage = -1; // Not applicable |
| 2697 | 2697 | $actioncomm->socid = $thirdpartystatic->id; |
| 2698 | 2698 | $actioncomm->contact_id = $contactstatic->id; |
@@ -2891,7 +2891,7 @@ discard block |
||
| 2891 | 2891 | } |
| 2892 | 2892 | $hookmanager->initHooks(array('emailcolector')); |
| 2893 | 2893 | $parameters = array('arrayobject' => $arrayobject); |
| 2894 | - $reshook = $hookmanager->executeHooks('addmoduletoeamailcollectorjoinpiece', $parameters); // Note that $action and $object may have been modified by some hooks |
|
| 2894 | + $reshook = $hookmanager->executeHooks('addmoduletoeamailcollectorjoinpiece', $parameters); // Note that $action and $object may have been modified by some hooks |
|
| 2895 | 2895 | if ($reshook > 0) { |
| 2896 | 2896 | $arrayobject = $hookmanager->resArray; |
| 2897 | 2897 | } |
@@ -2900,10 +2900,10 @@ discard block |
||
| 2900 | 2900 | |
| 2901 | 2901 | foreach ($arrayobject as $key => $objectdesc) { |
| 2902 | 2902 | $sql = 'SELECT DISTINCT t.rowid '; |
| 2903 | - $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->db->sanitize($objectdesc['table']) . ' AS t'; |
|
| 2903 | + $sql .= ' FROM '.MAIN_DB_PREFIX.$this->db->sanitize($objectdesc['table']).' AS t'; |
|
| 2904 | 2904 | $sql .= ' WHERE '; |
| 2905 | 2905 | foreach ($objectdesc['fields'] as $field) { |
| 2906 | - $sql .= "('" .$this->db->escape($subject) . "' LIKE CONCAT('%', t." . $this->db->sanitize($field) . ", '%') AND t." . $this->db->sanitize($field) . " <> '') OR "; |
|
| 2906 | + $sql .= "('".$this->db->escape($subject)."' LIKE CONCAT('%', t.".$this->db->sanitize($field).", '%') AND t.".$this->db->sanitize($field)." <> '') OR "; |
|
| 2907 | 2907 | } |
| 2908 | 2908 | $sql = substr($sql, 0, -4); |
| 2909 | 2909 | |
@@ -2923,8 +2923,8 @@ discard block |
||
| 2923 | 2923 | foreach ($ids as $val) { |
| 2924 | 2924 | $res = $objectmanaged->fetch($val); |
| 2925 | 2925 | if ($res) { |
| 2926 | - $path = ($objectmanaged->entity > 1 ? "/" . $objectmanaged->entity : ''); |
|
| 2927 | - $dirs[] = DOL_DATA_ROOT . $path . "/" . $elementpath . '/' . dol_sanitizeFileName($objectmanaged->ref) . '/'; |
|
| 2926 | + $path = ($objectmanaged->entity > 1 ? "/".$objectmanaged->entity : ''); |
|
| 2927 | + $dirs[] = DOL_DATA_ROOT.$path."/".$elementpath.'/'.dol_sanitizeFileName($objectmanaged->ref).'/'; |
|
| 2928 | 2928 | } else { |
| 2929 | 2929 | $this->errors[] = 'object not found'; |
| 2930 | 2930 | } |
@@ -2933,7 +2933,7 @@ discard block |
||
| 2933 | 2933 | foreach ($dirs as $target) { |
| 2934 | 2934 | $prefix = $this->actions[$this->id]['actionparam']; |
| 2935 | 2935 | foreach ($data as $filename => $content) { |
| 2936 | - $resr = saveAttachment($target, $prefix . '_' . $filename, $content); |
|
| 2936 | + $resr = saveAttachment($target, $prefix.'_'.$filename, $content); |
|
| 2937 | 2937 | if ($resr == -1) { |
| 2938 | 2938 | $this->errors[] = 'Doc not saved'; |
| 2939 | 2939 | } |
@@ -2980,7 +2980,7 @@ discard block |
||
| 2980 | 2980 | $percent_opp_status = dol_getIdFromCode($this->db, 'PROSP', 'c_lead_status', 'code', 'percent'); |
| 2981 | 2981 | |
| 2982 | 2982 | $projecttocreate->title = $subject; |
| 2983 | - $projecttocreate->date_start = $date; // date of email |
|
| 2983 | + $projecttocreate->date_start = $date; // date of email |
|
| 2984 | 2984 | $projecttocreate->date_end = 0; |
| 2985 | 2985 | $projecttocreate->opp_status = $id_opp_status; |
| 2986 | 2986 | $projecttocreate->opp_percent = $percent_opp_status; |
@@ -3242,7 +3242,7 @@ discard block |
||
| 3242 | 3242 | $candidaturetocreate->note_private = $descriptionfull; |
| 3243 | 3243 | $candidaturetocreate->entity = $conf->entity; |
| 3244 | 3244 | $candidaturetocreate->email_msgid = $msgid; |
| 3245 | - $candidaturetocreate->email_date = $date; // date of email |
|
| 3245 | + $candidaturetocreate->email_date = $date; // date of email |
|
| 3246 | 3246 | $candidaturetocreate->status = $candidaturetocreate::STATUS_DRAFT; |
| 3247 | 3247 | //$candidaturetocreate->fk_contact = $contactstatic->id; |
| 3248 | 3248 | |
@@ -3609,8 +3609,8 @@ discard block |
||
| 3609 | 3609 | * append increment number to the original filename |
| 3610 | 3610 | */ |
| 3611 | 3611 | while (file_exists($destdir.$file_name.".".$extension)) { |
| 3612 | - $file_name = $file_name_original . ' (' . $num . ')'; |
|
| 3613 | - $file_name_complete = $file_name . "." . $extension; |
|
| 3612 | + $file_name = $file_name_original.' ('.$num.')'; |
|
| 3613 | + $file_name_complete = $file_name.".".$extension; |
|
| 3614 | 3614 | $destination = $destdir.$file_name_complete; |
| 3615 | 3615 | $num++; |
| 3616 | 3616 | } |
@@ -3724,7 +3724,7 @@ discard block |
||
| 3724 | 3724 | */ |
| 3725 | 3725 | private function saveAttachment($destdir, $filename, $content) |
| 3726 | 3726 | { |
| 3727 | - require_once DOL_DOCUMENT_ROOT .'/core/lib/images.lib.php'; |
|
| 3727 | + require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; |
|
| 3728 | 3728 | |
| 3729 | 3729 | $tmparraysize = getDefaultImageSizes(); |
| 3730 | 3730 | $maxwidthsmall = $tmparraysize['maxwidthsmall']; |
@@ -34,7 +34,7 @@ discard block |
||
| 34 | 34 | global $conf, $db, $hookmanager, $langs, $user; |
| 35 | 35 | |
| 36 | 36 | // Load translation files required by the page |
| 37 | -$langs->loadLangs(array('other','admin')); |
|
| 37 | +$langs->loadLangs(array('other', 'admin')); |
|
| 38 | 38 | |
| 39 | 39 | // Get parameters |
| 40 | 40 | $id = GETPOSTINT('id'); |
@@ -45,7 +45,7 @@ discard block |
||
| 45 | 45 | $contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'targetcard'; // To manage different context of search |
| 46 | 46 | $backtopage = GETPOST('backtopage', 'alpha'); |
| 47 | 47 | $backtopageforcancel = GETPOST('backtopageforcancel', 'alpha'); |
| 48 | -$lineid = GETPOSTINT('lineid'); |
|
| 48 | +$lineid = GETPOSTINT('lineid'); |
|
| 49 | 49 | |
| 50 | 50 | // Initialize technical objects |
| 51 | 51 | $object = new Target($db); |
@@ -92,10 +92,10 @@ |
||
| 92 | 92 | if (is_object($obj)) { |
| 93 | 93 | //TODO: Case if obj is an object |
| 94 | 94 | } else { |
| 95 | - $objnotfound ++; |
|
| 95 | + $objnotfound++; |
|
| 96 | 96 | } |
| 97 | 97 | } else { |
| 98 | - $objnotfound ++; |
|
| 98 | + $objnotfound++; |
|
| 99 | 99 | } |
| 100 | 100 | |
| 101 | 101 | if ($objnotfound) { |
@@ -24,36 +24,36 @@ discard block |
||
| 24 | 24 | * \remarks To run this script as CLI: phpunit filename.php |
| 25 | 25 | */ |
| 26 | 26 | |
| 27 | -global $conf,$user,$langs,$db; |
|
| 27 | +global $conf, $user, $langs, $db; |
|
| 28 | 28 | //define('TEST_DB_FORCE_TYPE','mysql'); // This is to force using mysql driver |
| 29 | 29 | //require_once 'PHPUnit/Autoload.php'; |
| 30 | 30 | |
| 31 | -if (! defined('NOREQUIRESOC')) { |
|
| 31 | +if (!defined('NOREQUIRESOC')) { |
|
| 32 | 32 | define('NOREQUIRESOC', '1'); |
| 33 | 33 | } |
| 34 | -if (! defined('NOCSRFCHECK')) { |
|
| 34 | +if (!defined('NOCSRFCHECK')) { |
|
| 35 | 35 | define('NOCSRFCHECK', '1'); |
| 36 | 36 | } |
| 37 | -if (! defined('NOTOKENRENEWAL')) { |
|
| 37 | +if (!defined('NOTOKENRENEWAL')) { |
|
| 38 | 38 | define('NOTOKENRENEWAL', '1'); |
| 39 | 39 | } |
| 40 | -if (! defined('NOREQUIREMENU')) { |
|
| 40 | +if (!defined('NOREQUIREMENU')) { |
|
| 41 | 41 | define('NOREQUIREMENU', '1'); // If there is no menu to show |
| 42 | 42 | } |
| 43 | -if (! defined('NOREQUIREHTML')) { |
|
| 43 | +if (!defined('NOREQUIREHTML')) { |
|
| 44 | 44 | define('NOREQUIREHTML', '1'); // If we don't need to load the html.form.class.php |
| 45 | 45 | } |
| 46 | -if (! defined('NOREQUIREAJAX')) { |
|
| 46 | +if (!defined('NOREQUIREAJAX')) { |
|
| 47 | 47 | define('NOREQUIREAJAX', '1'); |
| 48 | 48 | } |
| 49 | -if (! defined("NOLOGIN")) { |
|
| 50 | - define("NOLOGIN", '1'); // If this page is public (can be called outside logged session) |
|
| 49 | +if (!defined("NOLOGIN")) { |
|
| 50 | + define("NOLOGIN", '1'); // If this page is public (can be called outside logged session) |
|
| 51 | 51 | } |
| 52 | -if (! defined("NOSESSION")) { |
|
| 52 | +if (!defined("NOSESSION")) { |
|
| 53 | 53 | define("NOSESSION", '1'); |
| 54 | 54 | } |
| 55 | 55 | |
| 56 | -require_once dirname(__FILE__).'/../../htdocs/main.inc.php'; // We force include of main.inc.php instead of master.inc.php even if we are in CLI mode because it contains a lot of security components we want to test. |
|
| 56 | +require_once dirname(__FILE__).'/../../htdocs/main.inc.php'; // We force include of main.inc.php instead of master.inc.php even if we are in CLI mode because it contains a lot of security components we want to test. |
|
| 57 | 57 | require_once dirname(__FILE__).'/../../htdocs/core/lib/security.lib.php'; |
| 58 | 58 | require_once dirname(__FILE__).'/../../htdocs/core/lib/security2.lib.php'; |
| 59 | 59 | require_once dirname(__FILE__).'/CommonClassTest.class.php'; |
@@ -227,8 +227,8 @@ discard block |
||
| 227 | 227 | $result = testSqlAndScriptInject($test, 0); |
| 228 | 228 | $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject eee'); |
| 229 | 229 | |
| 230 | - $test = "<IMG SRC=\"jav\tascript:alert('XSS');\">"; // Is locked by some browser like chrome because the default directive no-referrer-when-downgrade is sent when requesting the SRC and then refused because of browser protection on img src load without referrer. |
|
| 231 | - $test = "<IMG SRC=\"jav
ascript:alert('XSS');\">"; // Same |
|
| 230 | + $test = "<IMG SRC=\"jav\tascript:alert('XSS');\">"; // Is locked by some browser like chrome because the default directive no-referrer-when-downgrade is sent when requesting the SRC and then refused because of browser protection on img src load without referrer. |
|
| 231 | + $test = "<IMG SRC=\"jav
ascript:alert('XSS');\">"; // Same |
|
| 232 | 232 | |
| 233 | 233 | $test = '<SCRIPT/XSS SRC="http://xss.rocks/xss.js"></SCRIPT>'; |
| 234 | 234 | $result = testSqlAndScriptInject($test, 0); |
@@ -262,21 +262,21 @@ discard block |
||
| 262 | 262 | $result = testSqlAndScriptInject($test, 0); |
| 263 | 263 | $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject lll'); |
| 264 | 264 | |
| 265 | - $test = '<a onscrollend=alert(1) style="display:block;overflow:auto;border:1px+dashed;width:500px;height:100px;"><br><br><br><br><br><span+id=x>test</span></a>'; // Add the char %F6 into the variable |
|
| 265 | + $test = '<a onscrollend=alert(1) style="display:block;overflow:auto;border:1px+dashed;width:500px;height:100px;"><br><br><br><br><br><span+id=x>test</span></a>'; // Add the char %F6 into the variable |
|
| 266 | 266 | $result = testSqlAndScriptInject($test, 0); |
| 267 | 267 | //print "test=".$test." result=".$result."\n"; |
| 268 | 268 | $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject mmm'); |
| 269 | 269 | |
| 270 | 270 | |
| 271 | 271 | $test = "Text with ' encoded with the numeric html entity converted into text entity ' (like when submitted by CKEditor)"; |
| 272 | - $result = testSqlAndScriptInject($test, 0); // result must be 0 |
|
| 272 | + $result = testSqlAndScriptInject($test, 0); // result must be 0 |
|
| 273 | 273 | $this->assertEquals(0, $result, 'Error on testSqlAndScriptInject mmm, result should be 0 and is not'); |
| 274 | 274 | |
| 275 | 275 | $test = '<a href="j	a	v	asc
ri	pt:(a	l	e	r	t	(document.cookie))">XSS</a>'; |
| 276 | 276 | $result = testSqlAndScriptInject($test, 0); |
| 277 | 277 | $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject nnn, result should be >= 1 and is not'); |
| 278 | 278 | |
| 279 | - $test = "/dolibarr/htdocs/index.php/".chr('246')."abc"; // Add the char %F6 into the variable |
|
| 279 | + $test = "/dolibarr/htdocs/index.php/".chr('246')."abc"; // Add the char %F6 into the variable |
|
| 280 | 280 | $result = testSqlAndScriptInject($test, 2); |
| 281 | 281 | //print "test=".$test." result=".$result."\n"; |
| 282 | 282 | $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject with a non valid UTF8 char'); |
@@ -289,7 +289,7 @@ discard block |
||
| 289 | 289 | */ |
| 290 | 290 | public function testGETPOST() |
| 291 | 291 | { |
| 292 | - global $conf,$user,$langs,$db; |
|
| 292 | + global $conf, $user, $langs, $db; |
|
| 293 | 293 | $conf = $this->savconf; |
| 294 | 294 | $user = $this->savuser; |
| 295 | 295 | $langs = $this->savlangs; |
@@ -306,18 +306,18 @@ discard block |
||
| 306 | 306 | $_GET["param1"] = "222"; |
| 307 | 307 | $_POST["param1"] = "333"; |
| 308 | 308 | $_GET["param2"] = 'a/b#e(pr)qq-rr\cc'; |
| 309 | - $_GET["param3"] = '"na/b#e(pr)qq-rr\cc'; // Same than param2 + " and n |
|
| 309 | + $_GET["param3"] = '"na/b#e(pr)qq-rr\cc'; // Same than param2 + " and n |
|
| 310 | 310 | $_GET["param4a"] = '../../dir'; |
| 311 | 311 | $_GET["param4b"] = '..\..\dirwindows'; |
| 312 | 312 | $_GET["param5"] = "a_1-b"; |
| 313 | 313 | $_POST["param6"] = ""><svg onload='console.log("123")'>"; |
| 314 | 314 | $_POST["param6b"] = '<<<../>../>../svg><<<../>../>../animate =alert(1)>abc'; |
| 315 | 315 | $_GET["param7"] = '"c:\this is a path~1\aaan &#x110;" abc<bad>def</bad>'; |
| 316 | - $_POST["param8a"] = "Hacker<svg onload='console.log("123")'"; // html tag is not closed so it is not detected as html tag but is still harmfull |
|
| 317 | - $_POST['param8b'] = '<img src=x onerror=alert(document.location) t='; // this is html obfuscated by non closing tag |
|
| 316 | + $_POST["param8a"] = "Hacker<svg onload='console.log("123")'"; // html tag is not closed so it is not detected as html tag but is still harmfull |
|
| 317 | + $_POST['param8b'] = '<img src=x onerror=alert(document.location) t='; // this is html obfuscated by non closing tag |
|
| 318 | 318 | $_POST['param8c'] = '< with space after is ok'; |
| 319 | 319 | $_POST['param8d'] = '<abc123 is html to clean'; |
| 320 | - $_POST['param8e'] = '<123abc is not html to clean'; // other similar case: '<2021-12-12' |
|
| 320 | + $_POST['param8e'] = '<123abc is not html to clean'; // other similar case: '<2021-12-12' |
|
| 321 | 321 | $_POST['param8f'] = 'abc<<svg <><<animate onbegin=alert(document.domain) a'; |
| 322 | 322 | $_POST["param9"] = 'is_object($object) ? ($object->id < 10 ? round($object->id / 2, 2) : (2 * $user->id) * (int) substr($mysoc->zip, 1, 2)) : \'objnotdefined\''; |
| 323 | 323 | $_POST["param10"] = 'is_object($object) ? ($object->id < 10 ? round($object->id / 2, 2) : (2 * $user->id) * (int) substr($mysoc->zip, 1, 2)) : \'<abc>objnotdefined\''; |
@@ -337,7 +337,7 @@ discard block |
||
| 337 | 337 | |
| 338 | 338 | |
| 339 | 339 | |
| 340 | - $result = GETPOST('id', 'int'); // Must return nothing |
|
| 340 | + $result = GETPOST('id', 'int'); // Must return nothing |
|
| 341 | 341 | print __METHOD__." result=".$result."\n"; |
| 342 | 342 | $this->assertEquals('', $result); |
| 343 | 343 | |
@@ -351,7 +351,7 @@ discard block |
||
| 351 | 351 | |
| 352 | 352 | // Test with alpha |
| 353 | 353 | |
| 354 | - $result = GETPOST("param0", 'alpha'); // a simple format, so " completely removed |
|
| 354 | + $result = GETPOST("param0", 'alpha'); // a simple format, so " completely removed |
|
| 355 | 355 | $resultexpected = 'A real string with aaa and and \' and & inside content'; |
| 356 | 356 | print __METHOD__." result=".$result."\n"; |
| 357 | 357 | $this->assertEquals($resultexpected, $result, 'Test on param0'); |
@@ -360,15 +360,15 @@ discard block |
||
| 360 | 360 | print __METHOD__." result=".$result."\n"; |
| 361 | 361 | $this->assertEquals($result, 'a/b#e(pr)qq-rr/cc', 'Test on param2'); |
| 362 | 362 | |
| 363 | - $result = GETPOST("param3", 'alpha'); // Must return string sanitized from char " |
|
| 363 | + $result = GETPOST("param3", 'alpha'); // Must return string sanitized from char " |
|
| 364 | 364 | print __METHOD__." result=".$result."\n"; |
| 365 | 365 | $this->assertEquals($result, 'na/b#e(pr)qq-rr/cc', 'Test on param3'); |
| 366 | 366 | |
| 367 | - $result = GETPOST("param4a", 'alpha'); // Must return string sanitized from ../ |
|
| 367 | + $result = GETPOST("param4a", 'alpha'); // Must return string sanitized from ../ |
|
| 368 | 368 | print __METHOD__." result=".$result."\n"; |
| 369 | 369 | $this->assertEquals($result, 'dir'); |
| 370 | 370 | |
| 371 | - $result = GETPOST("param4b", 'alpha'); // Must return string sanitized from ../ |
|
| 371 | + $result = GETPOST("param4b", 'alpha'); // Must return string sanitized from ../ |
|
| 372 | 372 | print __METHOD__." result=".$result."\n"; |
| 373 | 373 | $this->assertEquals($result, 'dirwindows'); |
| 374 | 374 | |
@@ -378,19 +378,19 @@ discard block |
||
| 378 | 378 | print __METHOD__." result=".$result."\n"; |
| 379 | 379 | $this->assertEquals($result, $_GET["param1"]); |
| 380 | 380 | |
| 381 | - $result = GETPOST("param2", 'aZ09'); // Must return '' as string contains car not in aZ09 definition |
|
| 381 | + $result = GETPOST("param2", 'aZ09'); // Must return '' as string contains car not in aZ09 definition |
|
| 382 | 382 | print __METHOD__." result=".$result."\n"; |
| 383 | 383 | $this->assertEquals($result, ''); |
| 384 | 384 | |
| 385 | - $result = GETPOST("param3", 'aZ09'); // Must return '' as string contains car not in aZ09 definition |
|
| 385 | + $result = GETPOST("param3", 'aZ09'); // Must return '' as string contains car not in aZ09 definition |
|
| 386 | 386 | print __METHOD__." result=".$result."\n"; |
| 387 | 387 | $this->assertEquals($result, ''); |
| 388 | 388 | |
| 389 | - $result = GETPOST("param4a", 'aZ09'); // Must return '' as string contains car not in aZ09 definition |
|
| 389 | + $result = GETPOST("param4a", 'aZ09'); // Must return '' as string contains car not in aZ09 definition |
|
| 390 | 390 | print __METHOD__." result=".$result."\n"; |
| 391 | 391 | $this->assertEquals('', $result); |
| 392 | 392 | |
| 393 | - $result = GETPOST("param4b", 'aZ09'); // Must return '' as string contains car not in aZ09 definition |
|
| 393 | + $result = GETPOST("param4b", 'aZ09'); // Must return '' as string contains car not in aZ09 definition |
|
| 394 | 394 | print __METHOD__." result=".$result."\n"; |
| 395 | 395 | $this->assertEquals('', $result); |
| 396 | 396 | |
@@ -501,9 +501,9 @@ discard block |
||
| 501 | 501 | print __METHOD__." result=".$result."\n"; |
| 502 | 502 | $this->assertEquals("Text with ' encoded with the numeric html entity converted into text entity ' (like when submitted by CKEditor)", $result, 'Test 14'); |
| 503 | 503 | |
| 504 | - $result = GETPOST("param15", 'restricthtml'); // param15 = <img onerror<=alert(document.domain)> src=>0xbeefed that is a dangerous string |
|
| 504 | + $result = GETPOST("param15", 'restricthtml'); // param15 = <img onerror<=alert(document.domain)> src=>0xbeefed that is a dangerous string |
|
| 505 | 505 | print __METHOD__." result=".$result."\n"; |
| 506 | - $this->assertEquals("<img onerror=alert(document.domain) src=>0xbeefed", $result, 'Test 15'); // The GETPOST return a harmull string |
|
| 506 | + $this->assertEquals("<img onerror=alert(document.domain) src=>0xbeefed", $result, 'Test 15'); // The GETPOST return a harmull string |
|
| 507 | 507 | |
| 508 | 508 | $result = GETPOST("param19", 'restricthtml'); |
| 509 | 509 | print __METHOD__." result=".$result."\n"; |
@@ -520,17 +520,17 @@ discard block |
||
| 520 | 520 | print __METHOD__." result for param0=".$result."\n"; |
| 521 | 521 | $this->assertEquals($resultexpected, $result, 'Test on param0'); |
| 522 | 522 | |
| 523 | - $result = GETPOST("param15", 'restricthtml'); // param15 = <img onerror<=alert(document.domain)> src=>0xbeefed that is a dangerous string |
|
| 523 | + $result = GETPOST("param15", 'restricthtml'); // param15 = <img onerror<=alert(document.domain)> src=>0xbeefed that is a dangerous string |
|
| 524 | 524 | print __METHOD__." result for param15=".$result."\n"; |
| 525 | 525 | //$this->assertEquals('InvalidHTMLStringCantBeCleaned', $result, 'Test 15b'); // With some PHP and libxml version, we got this result when parsing invalid HTML, but ... |
| 526 | 526 | //$this->assertEquals('<img onerror> src=>0xbeefed', $result, 'Test 15b'); // ... on other PHP and libxml versions, we got a HTML that has been cleaned |
| 527 | 527 | |
| 528 | - $result = GETPOST("param6", 'restricthtml'); // param6 = ""><svg onload='console.log("123")'>" |
|
| 528 | + $result = GETPOST("param6", 'restricthtml'); // param6 = ""><svg onload='console.log("123")'>" |
|
| 529 | 529 | print __METHOD__." result for param6=".$result." - before=".$_POST["param6"]."\n"; |
| 530 | 530 | //$this->assertEquals('InvalidHTMLStringCantBeCleaned', $result, 'Test 15b'); // With some PHP and libxml version, we got this result when parsing invalid HTML, but ... |
| 531 | 531 | //$this->assertEquals('">', $result); // ... on other PHP and libxml versions, we got a HTML that has been cleaned |
| 532 | 532 | |
| 533 | - $result = GETPOST("param7", 'restricthtml'); // param7 = "c:\this is a path~1\aaan &#x110;" abc<bad>def</bad> |
|
| 533 | + $result = GETPOST("param7", 'restricthtml'); // param7 = "c:\this is a path~1\aaan &#x110;" abc<bad>def</bad> |
|
| 534 | 534 | print __METHOD__." result param7 = ".$result."\n"; |
| 535 | 535 | //$this->assertEquals('InvalidHTMLStringCantBeCleaned', $result, 'Test 15b'); // With some PHP and libxml version, we got this result when parsing invalid HTML, but ... |
| 536 | 536 | //$this->assertEquals('"c:\this is a path~1\aaan 110;" abcdef', $result); // ... on other PHP and libxml versions, we got a HTML that has been cleaned |
@@ -547,7 +547,7 @@ discard block |
||
| 547 | 547 | print __METHOD__." result for param0=".$result."\n"; |
| 548 | 548 | $this->assertEquals($resultexpected, $result, 'Test on param0'); |
| 549 | 549 | |
| 550 | - $result = GETPOST("param15", 'restricthtml'); // param15 = <img onerror<=alert(document.domain)> src=>0xbeefed that is a dangerous string |
|
| 550 | + $result = GETPOST("param15", 'restricthtml'); // param15 = <img onerror<=alert(document.domain)> src=>0xbeefed that is a dangerous string |
|
| 551 | 551 | print __METHOD__." result=".$result."\n"; |
| 552 | 552 | |
| 553 | 553 | $result = GETPOST("param6", 'restricthtml'); |
@@ -571,7 +571,7 @@ discard block |
||
| 571 | 571 | print __METHOD__." result for param0=".$result."\n"; |
| 572 | 572 | $this->assertEquals($resultexpected, $result, 'Test on param0'); |
| 573 | 573 | |
| 574 | - $result = GETPOST("param15", 'restricthtml'); // param15 = <img onerror<=alert(document.domain)> src=>0xbeefed that is a dangerous string |
|
| 574 | + $result = GETPOST("param15", 'restricthtml'); // param15 = <img onerror<=alert(document.domain)> src=>0xbeefed that is a dangerous string |
|
| 575 | 575 | print __METHOD__." result=".$result."\n"; |
| 576 | 576 | |
| 577 | 577 | $result = GETPOST("param6", 'restricthtml'); |
@@ -784,21 +784,21 @@ discard block |
||
| 784 | 784 | { |
| 785 | 785 | global $conf; |
| 786 | 786 | |
| 787 | - $genpass1 = getRandomPassword(true); // Should be a string return by dol_hash (if no option set, will be md5) |
|
| 787 | + $genpass1 = getRandomPassword(true); // Should be a string return by dol_hash (if no option set, will be md5) |
|
| 788 | 788 | print __METHOD__." genpass1=".$genpass1."\n"; |
| 789 | 789 | $this->assertEquals(strlen($genpass1), 32); |
| 790 | 790 | |
| 791 | - $genpass1 = getRandomPassword(true, array('I')); // Should be a string return by dol_hash (if no option set, will be md5) |
|
| 791 | + $genpass1 = getRandomPassword(true, array('I')); // Should be a string return by dol_hash (if no option set, will be md5) |
|
| 792 | 792 | print __METHOD__." genpass1=".$genpass1."\n"; |
| 793 | 793 | $this->assertEquals(strlen($genpass1), 32); |
| 794 | 794 | |
| 795 | 795 | $conf->global->USER_PASSWORD_GENERATED = 'None'; |
| 796 | - $genpass2 = getRandomPassword(false); // Should return an empty string |
|
| 796 | + $genpass2 = getRandomPassword(false); // Should return an empty string |
|
| 797 | 797 | print __METHOD__." genpass2=".$genpass2."\n"; |
| 798 | 798 | $this->assertEquals($genpass2, ''); |
| 799 | 799 | |
| 800 | 800 | $conf->global->USER_PASSWORD_GENERATED = 'Standard'; |
| 801 | - $genpass3 = getRandomPassword(false); // Should return a password of 12 chars |
|
| 801 | + $genpass3 = getRandomPassword(false); // Should return a password of 12 chars |
|
| 802 | 802 | print __METHOD__." genpass3=".$genpass3."\n"; |
| 803 | 803 | $this->assertEquals(strlen($genpass3), 12); |
| 804 | 804 | |
@@ -812,7 +812,7 @@ discard block |
||
| 812 | 812 | */ |
| 813 | 813 | public function testRestrictedArea() |
| 814 | 814 | { |
| 815 | - global $conf,$user,$langs,$db; |
|
| 815 | + global $conf, $user, $langs, $db; |
|
| 816 | 816 | $conf = $this->savconf; |
| 817 | 817 | $user = $this->savuser; |
| 818 | 818 | $langs = $this->savlangs; |
@@ -843,40 +843,40 @@ discard block |
||
| 843 | 843 | $tmpvar = preg_match('/not supported/', $tmp['curl_error_msg']); |
| 844 | 844 | $this->assertEquals(1, $tmpvar, "Did not find the /not supported/ in getURLContent error message. We should."); |
| 845 | 845 | |
| 846 | - $url = 'https://www.dolibarr.fr'; // This is a redirect 301 page |
|
| 847 | - $tmp = getURLContent($url, 'GET', '', 0); // We do NOT follow |
|
| 846 | + $url = 'https://www.dolibarr.fr'; // This is a redirect 301 page |
|
| 847 | + $tmp = getURLContent($url, 'GET', '', 0); // We do NOT follow |
|
| 848 | 848 | print __METHOD__." url=".$url."\n"; |
| 849 | 849 | $this->assertEquals(301, (empty($tmp['http_code']) ? 0 : $tmp['http_code']), 'Should GET url 301 response'); |
| 850 | 850 | |
| 851 | - $url = 'https://www.dolibarr.fr'; // This is a redirect 301 page |
|
| 852 | - $tmp = getURLContent($url); // We DO follow a page with return 300 so result should be 200 |
|
| 851 | + $url = 'https://www.dolibarr.fr'; // This is a redirect 301 page |
|
| 852 | + $tmp = getURLContent($url); // We DO follow a page with return 300 so result should be 200 |
|
| 853 | 853 | print __METHOD__." url=".$url."\n"; |
| 854 | 854 | $this->assertEquals(200, (empty($tmp['http_code']) ? 0 : $tmp['http_code']), 'Should GET url 301 with a follow -> 200 but we get '.(empty($tmp['http_code']) ? 0 : $tmp['http_code'])); |
| 855 | 855 | |
| 856 | 856 | $url = 'http://localhost'; |
| 857 | - $tmp = getURLContent($url, 'GET', '', 0, array(), array('http', 'https'), 0); // Only external URL |
|
| 857 | + $tmp = getURLContent($url, 'GET', '', 0, array(), array('http', 'https'), 0); // Only external URL |
|
| 858 | 858 | print __METHOD__." url=".$url."\n"; |
| 859 | - $this->assertEquals(400, (empty($tmp['http_code']) ? 0 : $tmp['http_code']), 'Should GET url to '.$url.' that resolves to a local URL'); // Test we receive an error because localtest.me is not an external URL |
|
| 859 | + $this->assertEquals(400, (empty($tmp['http_code']) ? 0 : $tmp['http_code']), 'Should GET url to '.$url.' that resolves to a local URL'); // Test we receive an error because localtest.me is not an external URL |
|
| 860 | 860 | |
| 861 | 861 | $url = 'http://127.0.0.1'; |
| 862 | - $tmp = getURLContent($url, 'GET', '', 0, array(), array('http', 'https'), 0); // Only external URL |
|
| 862 | + $tmp = getURLContent($url, 'GET', '', 0, array(), array('http', 'https'), 0); // Only external URL |
|
| 863 | 863 | print __METHOD__." url=".$url."\n"; |
| 864 | - $this->assertEquals(400, (empty($tmp['http_code']) ? 0 : $tmp['http_code']), 'Should GET url to '.$url.' that is a local URL'); // Test we receive an error because 127.0.0.1 is not an external URL |
|
| 864 | + $this->assertEquals(400, (empty($tmp['http_code']) ? 0 : $tmp['http_code']), 'Should GET url to '.$url.' that is a local URL'); // Test we receive an error because 127.0.0.1 is not an external URL |
|
| 865 | 865 | |
| 866 | 866 | $url = 'http://127.0.2.1'; |
| 867 | - $tmp = getURLContent($url, 'GET', '', 0, array(), array('http', 'https'), 0); // Only external URL |
|
| 867 | + $tmp = getURLContent($url, 'GET', '', 0, array(), array('http', 'https'), 0); // Only external URL |
|
| 868 | 868 | print __METHOD__." url=".$url."\n"; |
| 869 | - $this->assertEquals(400, (empty($tmp['http_code']) ? 0 : $tmp['http_code']), 'Should GET url to '.$url.' that is a local URL'); // Test we receive an error because 127.0.2.1 is not an external URL |
|
| 869 | + $this->assertEquals(400, (empty($tmp['http_code']) ? 0 : $tmp['http_code']), 'Should GET url to '.$url.' that is a local URL'); // Test we receive an error because 127.0.2.1 is not an external URL |
|
| 870 | 870 | |
| 871 | 871 | $url = 'https://169.254.0.1'; |
| 872 | - $tmp = getURLContent($url, 'GET', '', 0, array(), array('http', 'https'), 0); // Only external URL |
|
| 872 | + $tmp = getURLContent($url, 'GET', '', 0, array(), array('http', 'https'), 0); // Only external URL |
|
| 873 | 873 | print __METHOD__." url=".$url."\n"; |
| 874 | - $this->assertEquals(400, (empty($tmp['http_code']) ? 0 : $tmp['http_code']), 'Should GET url to '.$url.' that is a local URL'); // Test we receive an error because 169.254.0.1 is not an external URL |
|
| 874 | + $this->assertEquals(400, (empty($tmp['http_code']) ? 0 : $tmp['http_code']), 'Should GET url to '.$url.' that is a local URL'); // Test we receive an error because 169.254.0.1 is not an external URL |
|
| 875 | 875 | |
| 876 | 876 | $url = 'http://[::1]'; |
| 877 | - $tmp = getURLContent($url, 'GET', '', 0, array(), array('http', 'https'), 0); // Only external URL |
|
| 877 | + $tmp = getURLContent($url, 'GET', '', 0, array(), array('http', 'https'), 0); // Only external URL |
|
| 878 | 878 | print __METHOD__." url=".$url."\n"; |
| 879 | - $this->assertEquals(400, (empty($tmp['http_code']) ? 0 : $tmp['http_code']), 'Should GET url to '.$url.' that is a local URL'); // Test we receive an error because [::1] is not an external URL |
|
| 879 | + $this->assertEquals(400, (empty($tmp['http_code']) ? 0 : $tmp['http_code']), 'Should GET url to '.$url.' that is a local URL'); // Test we receive an error because [::1] is not an external URL |
|
| 880 | 880 | |
| 881 | 881 | /*$url = 'localtest.me'; |
| 882 | 882 | $tmp = getURLContent($url, 'GET', '', 0, array(), array('http', 'https'), 0); // Only external URL |
@@ -885,9 +885,9 @@ discard block |
||
| 885 | 885 | */ |
| 886 | 886 | |
| 887 | 887 | $url = 'http://192.0.0.192'; |
| 888 | - $tmp = getURLContent($url, 'GET', '', 0, array(), array('http', 'https'), 0); // Only external URL but on an IP in blacklist |
|
| 888 | + $tmp = getURLContent($url, 'GET', '', 0, array(), array('http', 'https'), 0); // Only external URL but on an IP in blacklist |
|
| 889 | 889 | print __METHOD__." url=".$url." tmp['http_code'] = ".(empty($tmp['http_code']) ? 0 : $tmp['http_code'])."\n"; |
| 890 | - $this->assertEquals(400, (empty($tmp['http_code']) ? 0 : $tmp['http_code']), 'Access should be refused and was not'); // Test we receive an error because ip is in blacklist |
|
| 890 | + $this->assertEquals(400, (empty($tmp['http_code']) ? 0 : $tmp['http_code']), 'Access should be refused and was not'); // Test we receive an error because ip is in blacklist |
|
| 891 | 891 | |
| 892 | 892 | return 0; |
| 893 | 893 | } |
@@ -899,7 +899,7 @@ discard block |
||
| 899 | 899 | */ |
| 900 | 900 | public function testDolSanitizeUrl() |
| 901 | 901 | { |
| 902 | - global $conf,$user,$langs,$db; |
|
| 902 | + global $conf, $user, $langs, $db; |
|
| 903 | 903 | $conf = $this->savconf; |
| 904 | 904 | $user = $this->savuser; |
| 905 | 905 | $langs = $this->savlangs; |
@@ -925,7 +925,7 @@ discard block |
||
| 925 | 925 | */ |
| 926 | 926 | public function testDolSanitizeEmail() |
| 927 | 927 | { |
| 928 | - global $conf,$user,$langs,$db; |
|
| 928 | + global $conf, $user, $langs, $db; |
|
| 929 | 929 | $conf = $this->savconf; |
| 930 | 930 | $user = $this->savuser; |
| 931 | 931 | $langs = $this->savlangs; |
@@ -955,7 +955,7 @@ discard block |
||
| 955 | 955 | */ |
| 956 | 956 | public function testDolSanitizeFileName() |
| 957 | 957 | { |
| 958 | - global $conf,$user,$langs,$db; |
|
| 958 | + global $conf, $user, $langs, $db; |
|
| 959 | 959 | $conf = $this->savconf; |
| 960 | 960 | $user = $this->savuser; |
| 961 | 961 | $langs = $this->savlangs; |
@@ -978,7 +978,7 @@ discard block |
||
| 978 | 978 | */ |
| 979 | 979 | public function testDolEval() |
| 980 | 980 | { |
| 981 | - global $conf,$user,$langs,$db; |
|
| 981 | + global $conf, $user, $langs, $db; |
|
| 982 | 982 | $conf = $this->savconf; |
| 983 | 983 | $user = $this->savuser; |
| 984 | 984 | $langs = $this->savlangs; |
@@ -988,7 +988,7 @@ discard block |
||
| 988 | 988 | include_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; |
| 989 | 989 | include_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php'; |
| 990 | 990 | |
| 991 | - $result = dol_eval('1==\x01', 1, 0); // Check that we can't make dol_eval on string containing \ char. |
|
| 991 | + $result = dol_eval('1==\x01', 1, 0); // Check that we can't make dol_eval on string containing \ char. |
|
| 992 | 992 | print "result0 = ".$result."\n"; |
| 993 | 993 | $this->assertStringContainsString('Bad string syntax to evaluate', $result); |
| 994 | 994 | |
@@ -1067,7 +1067,7 @@ discard block |
||
| 1067 | 1067 | print "result13 = ".$result."\n"; |
| 1068 | 1068 | $this->assertEquals('358080.38', $result); |
| 1069 | 1069 | |
| 1070 | - global $leftmenu; // Used into strings to eval |
|
| 1070 | + global $leftmenu; // Used into strings to eval |
|
| 1071 | 1071 | |
| 1072 | 1072 | $leftmenu = 'AAA'; |
| 1073 | 1073 | $result = dol_eval('$conf->currency && preg_match(\'/^(AAA|BBB)/\',$leftmenu)', 1, 1, '1'); |
@@ -1095,7 +1095,7 @@ discard block |
||
| 1095 | 1095 | print "result17 = ".$result."\n"; |
| 1096 | 1096 | $this->assertTrue($result); |
| 1097 | 1097 | |
| 1098 | - $result = dol_eval('1 && getDolGlobalInt("doesnotexist1") && $conf->global->MAIN_FEATURES_LEVEL', 1, 0); // Should return false and not a 'Bad string syntax to evaluate ...' |
|
| 1098 | + $result = dol_eval('1 && getDolGlobalInt("doesnotexist1") && $conf->global->MAIN_FEATURES_LEVEL', 1, 0); // Should return false and not a 'Bad string syntax to evaluate ...' |
|
| 1099 | 1099 | print "result18 = ".$result."\n"; |
| 1100 | 1100 | $this->assertFalse($result); |
| 1101 | 1101 | |
@@ -1121,12 +1121,12 @@ discard block |
||
| 1121 | 1121 | global $conf; |
| 1122 | 1122 | |
| 1123 | 1123 | // Set options for cleaning data |
| 1124 | - $conf->global->MAIN_RESTRICTHTML_ONLY_VALID_HTML = 0; // disabled, does not work on HTML5 and some libxml versions |
|
| 1124 | + $conf->global->MAIN_RESTRICTHTML_ONLY_VALID_HTML = 0; // disabled, does not work on HTML5 and some libxml versions |
|
| 1125 | 1125 | // Enabled option MAIN_RESTRICTHTML_ONLY_VALID_HTML_TIDY if possible |
| 1126 | 1126 | if (extension_loaded('tidy') && class_exists("tidy")) { |
| 1127 | 1127 | $conf->global->MAIN_RESTRICTHTML_ONLY_VALID_HTML_TIDY = 1; |
| 1128 | 1128 | } |
| 1129 | - $conf->global->MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES = 0; // disabled, does not work on HTML5 and some libxml versions |
|
| 1129 | + $conf->global->MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES = 0; // disabled, does not work on HTML5 and some libxml versions |
|
| 1130 | 1130 | |
| 1131 | 1131 | |
| 1132 | 1132 | |
@@ -1139,7 +1139,7 @@ discard block |
||
| 1139 | 1139 | //$result = dol_escape_htmltag(dol_htmlwithnojs(dol_string_onlythesehtmltags(dol_htmlentitiesbr($stringtotest), 1, 1, 1, 0)), 1, 1, 'common', 0, 1); |
| 1140 | 1140 | $result = dolPrintHTML($stringtotest); |
| 1141 | 1141 | print __METHOD__." result=".$result."\n"; |
| 1142 | - $this->assertEquals($stringfixed, $result, 'Error'); // Expected '' because should failed because login 'auto' does not exists |
|
| 1142 | + $this->assertEquals($stringfixed, $result, 'Error'); // Expected '' because should failed because login 'auto' does not exists |
|
| 1143 | 1143 | |
| 1144 | 1144 | |
| 1145 | 1145 | // For a string that is already HTML (contains HTML tags) with special tags but badly formatted |
@@ -1196,17 +1196,17 @@ discard block |
||
| 1196 | 1196 | print __METHOD__." login=".$login."\n"; |
| 1197 | 1197 | $this->assertEquals($login, ''); |
| 1198 | 1198 | |
| 1199 | - $login = checkLoginPassEntity('admin', 'admin', 1, array('dolibarr')); // Should works because admin/admin exists |
|
| 1199 | + $login = checkLoginPassEntity('admin', 'admin', 1, array('dolibarr')); // Should works because admin/admin exists |
|
| 1200 | 1200 | print __METHOD__." login=".$login."\n"; |
| 1201 | 1201 | $this->assertEquals($login, 'admin', 'The test to check if pass of user "admin" is "admin" has failed'); |
| 1202 | 1202 | |
| 1203 | - $login = checkLoginPassEntity('admin', 'admin', 1, array('http','dolibarr')); // Should work because of second authentication method |
|
| 1203 | + $login = checkLoginPassEntity('admin', 'admin', 1, array('http', 'dolibarr')); // Should work because of second authentication method |
|
| 1204 | 1204 | print __METHOD__." login=".$login."\n"; |
| 1205 | 1205 | $this->assertEquals($login, 'admin'); |
| 1206 | 1206 | |
| 1207 | 1207 | $login = checkLoginPassEntity('admin', 'admin', 1, array('forceuser')); |
| 1208 | 1208 | print __METHOD__." login=".$login."\n"; |
| 1209 | - $this->assertEquals('', $login, 'Error'); // Expected '' because should failed because login 'auto' does not exists |
|
| 1209 | + $this->assertEquals('', $login, 'Error'); // Expected '' because should failed because login 'auto' does not exists |
|
| 1210 | 1210 | } |
| 1211 | 1211 | |
| 1212 | 1212 | |
@@ -1225,11 +1225,11 @@ discard block |
||
| 1225 | 1225 | $this->assertEquals('a', $result); |
| 1226 | 1226 | |
| 1227 | 1227 | // Test that testRealCharforNumericEntities return an emoji utf8 char when code is inside Emoji range |
| 1228 | - $arraytmp = array(0 => '✅', 1 => '9989;'); // Encoded as decimal |
|
| 1228 | + $arraytmp = array(0 => '✅', 1 => '9989;'); // Encoded as decimal |
|
| 1229 | 1229 | $result = realCharForNumericEntities($arraytmp); |
| 1230 | 1230 | $this->assertEquals('✅', $result); |
| 1231 | 1231 | |
| 1232 | - $arraytmp = array(0 => '✅', 1 => 'x2705;'); // Encoded as hexadecimal |
|
| 1232 | + $arraytmp = array(0 => '✅', 1 => 'x2705;'); // Encoded as hexadecimal |
|
| 1233 | 1233 | $result = realCharForNumericEntities($arraytmp); |
| 1234 | 1234 | $this->assertEquals('✅', $result); |
| 1235 | 1235 | |