filename, $path . '/' . $file->basename); } $generated = TRUE; } if ($generated) { drupal_set_message('Extra test files generated.'); } } } /** * Generate test file. */ function simpletest_generate_file($filename, $width, $lines, $type = 'binary-text') { $size = $width * $lines - $lines; // Generate random text $text = ''; for ($i = 0; $i < $size; $i++) { switch ($type) { case 'text': $text .= chr(rand(32, 126)); break; case 'binary': $text .= chr(rand(0, 31)); break; case 'binary-text': default: $text .= rand(0, 1); break; } } $text = wordwrap($text, $width - 1, "\n", TRUE) ."\n"; // Add \n for symetrical file. // Create filename. $path = file_directory_path() . '/simpletest/'; $count = simpletest_get_file_count($path, $filename); file_put_contents($path . $filename . '-' . ($count + 1) . '.txt', $text); } /** * Get the number of files that have the specified filename base. */ function simpletest_get_file_count($directory, $filename) { $files = scandir($directory); $count = 0; foreach ($files as $file) { if (preg_match('/' . $filename . '.*?/', $file)) { $count++; } } return $count; } /** * Implementation of hook_uninstall(). */ function simpletest_uninstall() { variable_del('simpletest_httpauth'); variable_del('simpletest_httpauth_username'); variable_del('simpletest_httpauth_pass'); variable_del('simpletest_devel'); drupal_uninstall_schema('simpletest'); } /** * Check that the cURL extension exists for PHP. */ function simpletest_requirements($phase) { $requirements = array(); $t = get_t(); $has_curl = function_exists('curl_init'); switch ($phase) { case 'runtime': $requirements['simpletest'] = array( 'title' => $t('cURL'), 'value' => $has_curl ? $t('Enabled') : $t('Not found'), 'severity' => $has_curl ? REQUIREMENT_OK : REQUIREMENT_ERROR, ); break; case 'install': if (!$has_curl) { $requirements['simpletest'] = array( 'title' => $t('cURL'), 'severity' => REQUIREMENT_ERROR, 'description' => $t('Simpletest could not be installed because the PHP cURL library is not available.', array('!curl_url' => 'http://php.net/manual/en/curl.setup.php')), ); } break; } return $requirements; } function simpletest_schema() { $schema['simpletest'] = array( 'description' => 'Stores simpletest messages', 'fields' => array( 'message_id' => array( 'type' => 'serial', 'not null' => TRUE, 'description' => 'Primary Key: Unique simpletest message ID.', ), 'test_id' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0, 'description' => 'Test ID, messages belonging to the same ID are reported together', ), 'test_class' => array( 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '', 'description' => 'The name of the class that created this message.', ), 'status' => array( 'type' => 'varchar', 'length' => 9, 'not null' => TRUE, 'default' => '', 'description' => 'Message status. Core understands pass, fail, exception.', ), 'message' => array( 'type' => 'text', 'not null' => TRUE, 'description' => 'The message itself.', ), 'message_group' => array( 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '', 'description' => 'The message group this message belongs to. For example: warning, browser, user.', ), 'function' => array( 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '', 'description' => 'Name of the assertion function or method that created this message.', ), 'line' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0, 'description' => 'Line number on which the function is called.', ), 'file' => array( 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '', 'description' => 'Name of the file where the function is called.', ), ), 'primary key' => array('message_id'), 'indexes' => array( 'reporter' => array('test_class', 'message_id'), ), ); $schema['simpletest_test_id'] = array( 'description' => 'Stores simpletest test IDs, used to auto-incrament the test ID so that a fresh test ID is used.', 'fields' => array( 'test_id' => array( 'type' => 'serial', 'not null' => TRUE, 'description' => 'Primary Key: Unique simpletest ID used to group test results together. Each time a set of tests are run a new test ID is used.', ), ), 'primary key' => array('test_id'), ); return $schema; }