summaryrefslogtreecommitdiff
path: root/modules/simpletest/tests
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2009-01-06 12:00:40 +0000
committerDries Buytaert <dries@buytaert.net>2009-01-06 12:00:40 +0000
commit2e1827d0402de6d1dc355e30756b8cf8070e4044 (patch)
treef9ea1d921d82ab620098a9c6e8d9ecee07099073 /modules/simpletest/tests
parentcce322378c7b16258cf088082664ee796c3c8eda (diff)
downloadbrdo-2e1827d0402de6d1dc355e30756b8cf8070e4044.tar.gz
brdo-2e1827d0402de6d1dc355e30756b8cf8070e4044.tar.bz2
- Patch #341910 by Josh Waihi, drewish et al: file_space_used() was not properly checking bitmapped status values. Added unit tests too.
Diffstat (limited to 'modules/simpletest/tests')
-rw-r--r--modules/simpletest/tests/file.test61
1 files changed, 61 insertions, 0 deletions
diff --git a/modules/simpletest/tests/file.test b/modules/simpletest/tests/file.test
index 19b54c9dc..ee7c9ef62 100644
--- a/modules/simpletest/tests/file.test
+++ b/modules/simpletest/tests/file.test
@@ -130,6 +130,67 @@ class FileHookTestCase extends FileTestCase {
}
}
+
+/**
+ * This will run tests against the file_space_used() function.
+ */
+class FileSpaceUsedTest extends FileTestCase {
+ function getInfo() {
+ return array(
+ 'name' => t('File space used tests'),
+ 'description' => t('Tests the file_space_used() function.'),
+ 'group' => t('File'),
+ );
+ }
+
+ function setUp() {
+ parent::setUp();
+
+ // Create records for a couple of users with different sizes.
+ drupal_write_record('files', $file = array('uid' => 2, 'filesize' => 50, 'status' => FILE_STATUS_PERMANENT));
+ drupal_write_record('files', $file = array('uid' => 2, 'filesize' => 20, 'status' => FILE_STATUS_PERMANENT));
+ drupal_write_record('files', $file = array('uid' => 3, 'filesize' => 100, 'status' => FILE_STATUS_PERMANENT));
+ drupal_write_record('files', $file = array('uid' => 3, 'filesize' => 200, 'status' => FILE_STATUS_PERMANENT));
+
+ // Now create some with other statuses. These values were chosen arbitrarily
+ // for the sole purpose of testing that bitwise operators were used
+ // correctly on the field.
+ drupal_write_record('files', $file = array('uid' => 2, 'filesize' => 1, 'status' => 2 | 8));
+ drupal_write_record('files', $file = array('uid' => 3, 'filesize' => 3, 'status' => 2 | 4));
+ }
+
+ /**
+ * Test different users with the default status.
+ */
+ function testUser() {
+ $this->assertEqual(file_space_used(2), 70, t("Found the size of the first user's files."));
+ $this->assertEqual(file_space_used(3), 300, t("Found the size of the second user's files."));
+ $this->assertEqual(file_space_used(), 370, t("Found the size of all user's files."));
+ }
+
+ /**
+ * Test the status fields
+ */
+ function testStatus() {
+ // Check selection with a single bit set.
+ $this->assertEqual(file_space_used(NULL, 2), 4, t("Found the size of all user's files with status 2."));
+ $this->assertEqual(file_space_used(NULL, 4), 3, t("Found the size of all user's files with status 4."));
+ // Check that the bitwise AND operator is used when selecting so that we
+ // only get files with the 2 AND 4 bits set.
+ $this->assertEqual(file_space_used(NULL, 2 | 4), 3, t("Found the size of all user's files with status 6."));
+ }
+
+ /**
+ * Test both the user and status.
+ */
+ function testUserAndStatus() {
+ $this->assertEqual(file_space_used(1, 8), 0, t("Found the size of the admin user's files with status 8."));
+ $this->assertEqual(file_space_used(2, 8), 1, t("Found the size of the first user's files with status 8."));
+ $this->assertEqual(file_space_used(2, 2), 1, t("Found the size of the first user's files with status 2."));
+ $this->assertEqual(file_space_used(3, 2), 3, t("Found the size of the second user's files with status 2."));
+ }
+}
+
/**
* This will run tests against the file validation functions (file_validate_*).
*/