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_OK, ); } else { $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' => t('Stores simpletest messages'), 'fields' => array( 'message_id' => array( 'type' => 'serial', 'not null' => TRUE, 'description' => t('Primary Key: Unique simpletest message ID.'), ), 'test_id' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0, 'description' => t('Test id, messages belonging to the same id are reported together'), ), 'test_class' => array( 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '', 'description' => t('The name of the class that created this message.'), ), 'status' => array( 'type' => 'varchar', 'length' => 9, 'not null' => TRUE, 'default' => '', 'description' => t('Message status. Core understands pass, fail, exception.'), ), 'message' => array( 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '', 'description' => t('The message itself.'), ), 'message_group' => array( 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '', 'description' => t('The message group this message belongs to. For example: warning, browser, user.'), ), 'caller' => array( 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '', 'description' => t('Name of the caller function or method that created this message.'), ), 'line' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0, 'description' => t('Line number of the caller.'), ), 'file' => array( 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '', 'description' => t('Name of the file where the caller is.'), ), ), 'primary key' => array('message_id'), 'indexes' => array( 'reporter' => array('test_class, message_id'), ), ); $schema['simpletest_test_id'] = array( 'description' => t('Stores simpletest test IDs.'), 'fields' => array( 'message_id' => array( 'type' => 'serial', 'not null' => TRUE, 'description' => t('Primary Key: Unique simpletest ID.'), ), ), 'primary key' => array('message_id'), ); return $schema; } /** * Create the simpletest tables. */ function simpletest_update_7000() { $ret = array(); $schema = array(); $schema['simpletest'] = array( 'fields' => array( 'message_id' => array('type' => 'serial', 'not null' => TRUE), 'test_id' => array('type' => 'int', 'not null' => TRUE, 'default' => 0), 'test_class' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''), 'status' => array('type' => 'varchar', 'length' => 9, 'not null' => TRUE, 'default' => ''), 'message' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''), 'message_group' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''), 'caller' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''), 'line' => array('type' => 'int', 'not null' => TRUE, 'default' => 0), 'file' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''), ), 'primary key' => array('message_id'), 'indexes' => array( 'reporter' => array('test_class, message_id'), ), ); $schema['simpletest_test_id'] = array( 'fields' => array( 'message_id' => array('type' => 'serial', 'not null' => TRUE), ), 'primary key' => array('message_id'), ); foreach ($schema as $name => $definition) { db_create_table($ret, $name, $definition); } return $ret; }