CRM_Utils_StringTest - Add test for strtobool
authorTim Otten <totten@civicrm.org>
Sat, 21 Jun 2014 04:08:50 +0000 (21:08 -0700)
committerTim Otten <totten@civicrm.org>
Sat, 21 Jun 2014 04:08:50 +0000 (21:08 -0700)
tests/phpunit/CRM/Utils/StringTest.php

index 862d3f2c3cd3a226f759516cc006fa7dc2d951e0..04c320c388f19ac8719a451bdb693b1a5f118a40 100644 (file)
@@ -130,5 +130,41 @@ class CRM_Utils_StringTest extends CiviUnitTestCase {
     $actual = CRM_Utils_String::parsePrefix(':', $input, $defaultPrefix);
     $this->assertEquals($expected, $actual);
   }
+
+  function booleanDataProvider() {
+    $cases = array(); // array(0 => $input, 1 => $expectedOutput)
+    $cases[] = array(TRUE, TRUE);
+    $cases[] = array(FALSE, FALSE);
+    $cases[] = array(1, TRUE);
+    $cases[] = array(0, FALSE);
+    $cases[] = array('1', TRUE);
+    $cases[] = array('0', FALSE);
+    $cases[] = array(TRUE, TRUE);
+    $cases[] = array(FALSE, FALSE);
+    $cases[] = array('Y', TRUE);
+    $cases[] = array('N', FALSE);
+    $cases[] = array('y', TRUE);
+    $cases[] = array('n', FALSE);
+    $cases[] = array('Yes', TRUE);
+    $cases[] = array('No', FALSE);
+    $cases[] = array('True', TRUE);
+    $cases[] = array('False', FALSE);
+    $cases[] = array('yEs', TRUE);
+    $cases[] = array('nO', FALSE);
+    $cases[] = array('tRuE', TRUE);
+    $cases[] = array('FaLsE', FALSE);
+    return $cases;
+  }
+
+  /**
+   * @param $input
+   * @param $expected bool
+   * @dataProvider booleanDataProvider
+   */
+  function testStrToBool($input, $expected) {
+    $actual = CRM_Utils_String::strtobool($input);
+    $this->assertTrue($expected === $actual);
+  }
+
 }