diff options
author | Dries Buytaert <dries@buytaert.net> | 2008-08-13 07:11:18 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2008-08-13 07:11:18 +0000 |
commit | ab4e39da832da4929df3c0a327dffb657f24b544 (patch) | |
tree | dc7cc9a4a9ecf075cbf63943ee14633cefebb026 /modules/simpletest | |
parent | 774d060142d400abb5daf61614b35a62750337d6 (diff) | |
download | brdo-ab4e39da832da4929df3c0a327dffb657f24b544.tar.gz brdo-ab4e39da832da4929df3c0a327dffb657f24b544.tar.bz2 |
- Patch #283806 by mustafau: fixed bug in drupal_http_request() and added some first drupal_http_request() tests to core. Yay.
Diffstat (limited to 'modules/simpletest')
-rw-r--r-- | modules/simpletest/tests/common.test | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/modules/simpletest/tests/common.test b/modules/simpletest/tests/common.test new file mode 100644 index 000000000..d9c6ceaa1 --- /dev/null +++ b/modules/simpletest/tests/common.test @@ -0,0 +1,139 @@ +<?php +// $Id$ + +class CommonFormatSizeTestCase extends DrupalWebTestCase { + + /** + * Implementation of getInfo(). + */ + function getInfo() { + return array( + 'name' => t('Format size test'), + 'description' => t('Parse a predefined amount of bytes and compare the output with the expected value.'), + 'group' => t('System') + ); + } + + /** + * Implementation of setUp(). + */ + function setUp() { + $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 + ); + $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 + ); + parent::setUp(); + } + + /** + * testCommonFormatSize + */ + 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" + ); + } + } + } +} + +/** + * Test drupal_explode_tags() and drupal_implode_tags(). + */ +class DrupalTagsHandlingTestCase extends DrupalWebTestCase { + var $validTags = array( + 'Drupal' => 'Drupal', + 'Drupal with some spaces' => 'Drupal with some spaces', + '"Legendary Drupal mascot of doom: ""Druplicon"""' => 'Legendary Drupal mascot of doom: "Druplicon"', + '"Drupal, although it rhymes with sloopal, is as awesome as a troopal!"' => 'Drupal, although it rhymes with sloopal, is as awesome as a troopal!', + ); + + /** + * Implementation of getInfo(). + */ + function getInfo() { + return array( + 'name' => t('Drupal tags handling'), + 'description' => t("Performs tests on Drupal's handling of tags, both explosion and implosion tactics used."), + 'group' => t('System') + ); + } + + /** + * Explode a series of tags. + */ + function testDrupalExplodeTags() { + $string = implode(', ', array_keys($this->validTags)); + $tags = drupal_explode_tags($string); + $this->assertTags($tags); + } + + /** + * Implode a series of tags. + */ + function testDrupalImplodeTags() { + $tags = array_values($this->validTags); + // Let's explode and implode to our heart's content. + for ($i = 0; $i < 10; $i++) { + $string = drupal_implode_tags($tags); + $tags = drupal_explode_tags($string); + } + $this->assertTags($tags); + } + + /** + * Helper function: asserts that the ending array of tags is what we wanted. + */ + function assertTags($tags) { + $original = $this->validTags; + foreach ($tags as $tag) { + $key = array_search($tag, $original); + $this->_assert($key !== FALSE, t('Make sure tag %tag shows up in the final tags array (originally %original)', array('%tag' => $tag, '%original' => $key))); + unset($original[$key]); + } + foreach ($original as $leftover) { + $this->_assert(FALSE, t('Leftover tag %leftover was left over.', array('%leftover' => $leftover))); + } + } +} + +/** + * Test drupal_http_request(). + */ +class DrupalHTTPRequestTestCase extends DrupalWebTestCase { + /** + * Implementation of getInfo(). + */ + function getInfo() { + return array( + 'name' => t('Drupal HTTP request'), + 'description' => t("Performs tests on Drupal's HTTP request mechanism."), + 'group' => t('System') + ); + } + + function testDrupalHTTPRequest() { + $missing_scheme = drupal_http_request('example.com/path'); + $this->assertEqual($missing_scheme->error, 'missing schema', t('Returned with missing scheme error.')); + + $unable_to_parse = drupal_http_request('http:///path'); + $this->assertEqual($unable_to_parse->error, 'unable to parse URL', t('Returned with unable to parse URL error.')); + } +} |