Fix test failures
authorColeman Watts <coleman@civicrm.org>
Tue, 29 Sep 2015 00:22:33 +0000 (20:22 -0400)
committermonishdeb <monish.deb@webaccessglobal.com>
Wed, 30 Sep 2015 12:50:58 +0000 (18:20 +0530)
CRM/Utils/Type.php
tests/phpunit/CRM/Utils/TypeTest.php

index 61fad52555e116d6abefd16eddd055a3d6f87337..5e12acd9ba3524b00ecddd07709f3461ff28469c 100644 (file)
@@ -173,13 +173,13 @@ class CRM_Utils_Type {
       // CRM-8925 for custom fields of this type
       case 'Country':
       case 'StateProvince':
-        if (is_array($data)) {
+        // Handle multivalued data in delimited or array format
+        if (is_array($data) || (strpos($data, CRM_Core_DAO::VALUE_SEPARATOR) !== FALSE)) {
           $valid = TRUE;
-          foreach ($data as &$item) {
+          foreach (CRM_Utils_Array::explodePadded($data) as $item) {
             if (!CRM_Utils_Rule::positiveInteger($item)) {
               $valid = FALSE;
             }
-            $item = (int) $item;
           }
           if ($valid) {
             return $data;
index eef34932afb725c0d5e49abab1adce3ebdc5e3f5..e9235565cc67663419292cbec07e8a17d1f3898e 100644 (file)
@@ -68,7 +68,7 @@ class CRM_Utils_TypeTest extends CiviUnitTestCase {
       array(-10, 'Positive', NULL),
       array('-10', 'Positive', NULL),
       array('-10foo', 'Positive', NULL),
-      array(array('10', 20), 'Country', array(10, 20)),
+      array(array('10', 20), 'Country', array('10', 20)),
       array(array('10', '-10foo'), 'Country', NULL),
       array('', 'Timestamp', ''),
       array('', 'ContactReference', ''),