### Eclipse Workspace Patch 1.0 #P simpletest Index: drupal_test_case.php =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/simpletest/drupal_test_case.php,v retrieving revision 1.68 diff -u -r1.68 drupal_test_case.php --- drupal_test_case.php 25 Mar 2008 15:07:57 -0000 1.68 +++ drupal_test_case.php 26 Mar 2008 20:38:27 -0000 @@ -36,46 +36,65 @@ /** * Creates a node based on default settings. * - * @param settings + * @param array $settings * An assocative array of settings to change from the defaults, keys are * node properties, for example 'body' => 'Hello, world!'. + * @param boolean $use_browser Create the node through the browser interface + * using the currently logged in user. */ - function drupalCreateNode($settings = array()) { - // Populate defaults array - $defaults = array( - 'body' => $this->randomName(32), - 'title' => $this->randomName(8), - 'comment' => 2, - 'changed' => time(), - 'format' => FILTER_FORMAT_DEFAULT, - 'moderate' => 0, - 'promote' => 0, - 'revision' => 1, - 'log' => '', - 'status' => 1, - 'sticky' => 0, - 'type' => 'page', - 'revisions' => NULL, - 'taxonomy' => NULL, - ); - $defaults['teaser'] = $defaults['body']; - // If we already have a node, we use the original node's created time, and this - if (isset($defaults['created'])) { - $defaults['date'] = format_date($defaults['created'], 'custom', 'Y-m-d H:i:s O'); - } - if (empty($settings['uid'])) { - global $user; - $defaults['uid'] = $user->uid; - } - $node = ($settings + $defaults); - $node = (object)$node; - - node_save($node); - - // small hack to link revisions to our test user - db_query('UPDATE {node_revisions} SET uid = %d WHERE vid = %d', $node->uid, $node->vid); - $this->_cleanupNodes[] = $node->nid; - return $node; + function drupalCreateNode($settings = array(), $use_browser = FALSE) { + if ($use_browser) { + $defaults = array( + 'type' => 'page', + 'title' =>$this->randomName(8), + 'body' => $this->randomName(32) + ); + $edit = ($settings + $defaults); + + $type = $edit['type']; + unset($edit['type']); // Only used in URL. + $this->drupalPost('node/add/'. $type, $edit, t('Save')); + $this->assertWantedRaw(t('Page %title has been created.', array('%title' => $edit['title'])), 'Node created successfully.'); + + return node_load(array('title' => $edit['title'])); + } + else { + // Populate defaults array + $defaults = array( + 'body' => $this->randomName(32), + 'title' => $this->randomName(8), + 'comment' => 2, + 'changed' => time(), + 'format' => FILTER_FORMAT_DEFAULT, + 'moderate' => 0, + 'promote' => 0, + 'revision' => 1, + 'log' => '', + 'status' => 1, + 'sticky' => 0, + 'type' => 'page', + 'revisions' => NULL, + 'taxonomy' => NULL, + ); + $defaults['teaser'] = $defaults['body']; + // If we already have a node, we use the original node's created time, and this + if (isset($defaults['created'])) { + $defaults['date'] = format_date($defaults['created'], 'custom', 'Y-m-d H:i:s O'); + } + if (empty($settings['uid'])) { + global $user; + $defaults['uid'] = $user->uid; + } + $node = ($settings + $defaults); + $node = (object)$node; + + node_save($node); + + // small hack to link revisions to our test user + db_query('UPDATE {node_revisions} SET uid = %d WHERE vid = %d', $node->uid, $node->vid); + $this->_cleanupNodes[] = $node->nid; + return $node; + } } /**