- <?php
- * @file
- *
- * Tests color conversion functions.
- */
- class ColorTest extends BackdropUnitTestCase {
-
-
- * Tests Color::hexToRgb().
- */
- function testHexToRgb() {
-
- $values = array('', '-1', '1', '12', '12345', '1234567', '123456789', '123456789a', 'foo');
-
-
- foreach ($values as $value) {
- $values[] = '#' . $value;
- }
-
- $values = array_merge($values, array(
- 1, 12, 1234, 12345, 123456, 1234567, 12345678, 123456789, 123456789,
- -1, PHP_INT_MAX, PHP_INT_MAX + 1, -PHP_INT_MAX,
- 0x0, 0x010,
- ));
-
- foreach ($values as $test) {
- $this->assertFalse(Color::validateHex($test), var_export($test, TRUE) . ' is invalid.');
- try {
- Color::hexToRgb($test);
- $this->fail('Color::hexToRgb(' . var_export($test, TRUE) . ') did not throw an exception.');
- }
- catch (\InvalidArgumentException $e) {
- $this->pass('Color::hexToRgb(' . var_export($test, TRUE) . ') threw an exception.');
- }
- }
-
-
-
-
- $tests = array(
-
- array('hex' => '#000', 'rgb' => array('red' => 0, 'green' => 0, 'blue' => 0)),
- array('hex' => '#fff', 'rgb' => array('red' => 255, 'green' => 255, 'blue' => 255)),
- array('hex' => '#abc', 'rgb' => array('red' => 170, 'green' => 187, 'blue' => 204)),
- array('hex' => 'cba', 'rgb' => array('red' => 204, 'green' => 187, 'blue' => 170)),
-
- array('hex' => '#000000', 'rgb' => array('red' => 0, 'green' => 0, 'blue' => 0)),
- array('hex' => '#ffffff', 'rgb' => array('red' => 255, 'green' => 255, 'blue' => 255)),
- array('hex' => '#010203', 'rgb' => array('red' => 1, 'green' => 2, 'blue' => 3)),
- );
- foreach ($tests as $test) {
- $result = Color::hexToRgb($test['hex']);
- $this->assertIdentical($result, $test['rgb']);
- }
- }
-
-
- * Tests Color::rgbToHex().
- */
- function testRgbToHex() {
- $tests = array(
- '#000000' => array('red' => 0, 'green' => 0, 'blue' => 0),
- '#ffffff' => array('red' => 255, 'green' => 255, 'blue' => 255),
- '#777777' => array('red' => 119, 'green' => 119, 'blue' => 119),
- '#010203' => array('red' => 1, 'green' => 2, 'blue' => 3),
- );
-
- foreach ($tests as $expected => $rgb) {
- $this->assertIdentical(Color::rgbToHex($rgb), $expected);
- }
-
- foreach ($tests as $expected => $rgb) {
- $rgb = array_values($rgb);
- $this->assertIdentical(Color::rgbToHex($rgb), $expected);
- }
-
- foreach ($tests as $expected => $rgb) {
- $rgb = implode(', ', $rgb);
- $this->assertIdentical(Color::rgbToHex($rgb), $expected);
- }
- }
- }