diff options
Diffstat (limited to 'modules/simpletest/tests/common.test')
-rw-r--r-- | modules/simpletest/tests/common.test | 92 |
1 files changed, 71 insertions, 21 deletions
diff --git a/modules/simpletest/tests/common.test b/modules/simpletest/tests/common.test index 62cfdb108..01fe73546 100644 --- a/modules/simpletest/tests/common.test +++ b/modules/simpletest/tests/common.test @@ -1,14 +1,16 @@ <?php // $Id$ -class CommonFormatSizeTestCase extends DrupalWebTestCase { +class CommonSizeTestCase extends DrupalWebTestCase { + protected $exact_test_cases; + protected $rounded_test_cases; /** * Implementation of getInfo(). */ function getInfo() { return array( - 'name' => t('Format size test'), + 'name' => t('Size parsing test'), 'description' => t('Parse a predefined amount of bytes and compare the output with the expected value.'), 'group' => t('System') ); @@ -18,40 +20,88 @@ class CommonFormatSizeTestCase extends DrupalWebTestCase { * Implementation of setUp(). */ function setUp() { + $kb = DRUPAL_KILOBYTE; $this->exact_test_cases = array( - '1 byte' => 1, // byte - '1 KB' => 1000, // kilobyte - '1 MB' => 1000000, // megabyte - '1 GB' => 1000000000, // gigabyte - '1 TB' => 1000000000000, // terabyte - '1 PB' => 1000000000000000, // petabyte - '1 EB' => 1000000000000000000, // exabyte - '1 ZB' => 1000000000000000000000, // zettabyte - '1 YB' => 1000000000000000000000000, // yottabyte + '1 byte' => 1, + '1 KB' => $kb, + '1 MB' => $kb * $kb, + '1 GB' => $kb * $kb * $kb, + '1 TB' => $kb * $kb * $kb * $kb, + '1 PB' => $kb * $kb * $kb * $kb * $kb, + '1 EB' => $kb * $kb * $kb * $kb * $kb * $kb, + '1 ZB' => $kb * $kb * $kb * $kb * $kb * $kb * $kb, + '1 YB' => $kb * $kb * $kb * $kb * $kb * $kb * $kb * $kb, ); $this->rounded_test_cases = array( - '2 bytes' => 2, // bytes - '1 MB' => 999999, // 1 MB (not 1000 kilobyte!) - '3.62 MB' => 3623651, // megabytes - '67.23 PB' => 67234178751368124, // petabytes - '235.35 YB' => 235346823821125814962843827, // yottabytes + '2 bytes' => 2, + '1 MB' => ($kb * $kb) - 1, // rounded to 1 MB (not 1000 or 1024 kilobyte!) + round(3623651 / ($this->exact_test_cases['1 MB']), 2) . ' MB' => 3623651, // megabytes + round(67234178751368124 / ($this->exact_test_cases['1 PB']), 2) . ' PB' => 67234178751368124, // petabytes + round(235346823821125814962843827 / ($this->exact_test_cases['1 YB']), 2) . ' YB' => 235346823821125814962843827, // yottabytes ); parent::setUp(); } /** - * testCommonFormatSize + * Check that format_size() returns the expected string. */ function testCommonFormatSize() { foreach (array($this->exact_test_cases, $this->rounded_test_cases) as $test_cases) { - foreach ($test_cases as $expected => $size) { - $this->assertTrue( - ($result = format_size($size, NULL)) == $expected, - $expected . " == " . $result . " (" . $size . " bytes) %s" + foreach ($test_cases as $expected => $input) { + $this->assertEqual( + ($result = format_size($input, NULL)), + $expected, + $expected . ' == ' . $result . ' (' . $input . ' bytes)' ); } } } + + /** + * Check that parse_size() returns the proper byte sizes. + */ + function testCommonParseSize() { + foreach ($this->exact_test_cases as $string => $size) { + $this->assertEqual( + $parsed_size = parse_size($string), + $size, + $size . ' == ' . $parsed_size . ' (' . $string . ')' + ); + } + + // Some custom parsing tests + $string = '23476892 bytes'; + $this->assertEqual( + ($parsed_size = parse_size($string)), + $size = 23476892, + $string . ' == ' . $parsed_size . ' bytes' + ); + $string = '76MRandomStringThatShouldBeIgnoredByParseSize.'; // 76 MB + $this->assertEqual( + $parsed_size = parse_size($string), + $size = 79691776, + $string . ' == ' . $parsed_size . ' bytes' + ); + $string = '76.24 Giggabyte'; // Misspeld text -> 76.24 GB + $this->assertEqual( + $parsed_size = parse_size($string), + $size = 81862076662, + $string . ' == ' . $parsed_size . ' bytes' + ); + } + + /** + * Cross-test parse_size() and format_size(). + */ + function testCommonParseSizeFormatSize() { + foreach ($this->exact_test_cases as $size) { + $this->assertEqual( + $size, + ($parsed_size = parse_size($string = format_size($size, NULL))), + $size . ' == ' . $parsed_size . ' (' . $string . ')' + ); + } + } } /** |