summaryrefslogtreecommitdiff
path: root/modules/simpletest
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2008-08-13 07:11:18 +0000
committerDries Buytaert <dries@buytaert.net>2008-08-13 07:11:18 +0000
commitab4e39da832da4929df3c0a327dffb657f24b544 (patch)
treedc7cc9a4a9ecf075cbf63943ee14633cefebb026 /modules/simpletest
parent774d060142d400abb5daf61614b35a62750337d6 (diff)
downloadbrdo-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.test139
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.'));
+ }
+}