? storm--332555-23b.patch
? storm--918758-1.patch
? storm--918758-3.patch
? storm--918758-5.patch
Index: stormperson/stormperson.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/storm/stormperson/stormperson.module,v
retrieving revision 1.7.4.31.2.1
diff -u -p -r1.7.4.31.2.1 stormperson.module
--- stormperson/stormperson.module	5 Jan 2011 00:10:37 -0000	1.7.4.31.2.1
+++ stormperson/stormperson.module	8 Jan 2011 00:34:02 -0000
@@ -20,18 +20,13 @@ function stormperson_help($path, $arg) {
 function stormperson_init() {
   if (function_exists('drupal_set_content')) {
     global $user;
-    if ($user->uid && !$user->stormorganization_nid || !$user->stormperson_nid) {
-      $r = db_query("SELECT nid, organization_nid FROM {stormperson} WHERE user_uid=%d", $user->uid);
-      if ($r) {
-        $a = db_fetch_object($r);
-        $user->stormperson_nid = $a->nid;
-        $user->stormorganization_nid = $a->organization_nid;
-      }
+    if ($user->uid && !isset($user->stormorganization_nid) || !isset($user->stormperson_nid)) {
+      _stormperson_user_load($user);
     }
-    if (!$user->uid || !$user->stormperson_nid) {
+    if (!$user->uid || !isset($user->stormperson_nid)) {
       $user->stormperson_nid = -1;
     }
-    if (!$user->uid || !$user->stormorganization_nid) {
+    if (!$user->uid || !isset($user->stormorganization_nid)) {
       $user->stormorganization_nid = -1;
     }
   }
@@ -279,7 +274,7 @@ function stormperson_form(&$node) {
       $node->organization_nid = $_GET['organization_nid'];
     }
 
-    if ($_SESSION['stormperson_list_filter']['organization_nid'] && !$node->organization_nid) {
+    if (isset($_SESSION['stormperson_list_filter']['organization_nid']) && !$node->organization_nid) {
       $node->organization_nid = $_SESSION['stormperson_list_filter']['organization_nid'];
     }
   }
@@ -301,7 +296,7 @@ function stormperson_form(&$node) {
   $organizations = array();
   while ($organization = db_fetch_object($r)) {
     $organizations[$organization->nid] = $organization->title;
-    if (!$node->organization_nid) $node->organization_nid = $organization->nid;
+    if (!isset($node->organization_nid)) $node->organization_nid = $organization->nid;
   }
   $form['group1']['organization_nid'] = array(
     '#type' => 'select',
@@ -324,7 +319,7 @@ function stormperson_form(&$node) {
   $form['group1']['user_name'] = array(
     '#type' => 'textfield',
     '#title' => t('User'),
-    '#default_value' => $node->user_name,
+    '#default_value' => isset($node->user_name) ? $node->user_name : '',
     '#autocomplete_path' => 'user/autocomplete',
     '#size' => 40,
   );
@@ -339,14 +334,14 @@ function stormperson_form(&$node) {
     '#type' => 'textfield',
     '#title' => t('Prefix'),
     '#size' => 20,
-    '#default_value' => $node->prefix,
+    '#default_value' => isset($node->prefix) ? $node->prefix : '',
   );
 
   $form['group2']['fullname'] = array(
     '#type' => 'textfield',
     '#title' => t('Fullname'),
     '#size' => 40,
-    '#default_value' => $node->fullname,
+    '#default_value' => isset($node->fullname) ? $node->fullname : '',
   );
 
   $form['group3'] = array(
@@ -359,14 +354,14 @@ function stormperson_form(&$node) {
     '#type' => 'textfield',
     '#title' => t('Email'),
     '#size' => 30,
-    '#default_value' => $node->email,
+    '#default_value' => isset($node->email) ? $node->email : '',
   );
 
   $form['group3']['www'] = array(
     '#type' => 'textfield',
     '#title' => t('WWW'),
     '#size' => 30,
-    '#default_value' => $node->www,
+    '#default_value' => isset($node->www) ? $node->www : '',
   );
 
   $form['group4'] = array(
@@ -379,14 +374,14 @@ function stormperson_form(&$node) {
     '#type' => 'textfield',
     '#title' => t('Phone'),
     '#size' => 30,
-    '#default_value' => $node->phone,
+    '#default_value' => isset($node->phone) ? $node->phone : '',
   );
 
   $form['group4']['im'] = array(
     '#type' => 'textfield',
     '#title' => t('IM'),
     '#size' => 30,
-    '#default_value' => $node->im,
+    '#default_value' => isset($node->im) ? $node->im : '',
   );
 
   if ($type->has_body) {
@@ -395,7 +390,7 @@ function stormperson_form(&$node) {
 
   $form['title_old'] = array(
     '#type' => 'hidden',
-    '#default_value' => $node->title_old,
+    '#default_value' => isset($node->title_old) ? $node->title_old : NULL,
   );
 
   return $form;
@@ -520,9 +515,8 @@ function stormperson_user($type, &$edit,
 }
 
 function _stormperson_user_load(&$account) {
-  $r = db_query("SELECT nid, organization_nid FROM {stormperson} WHERE user_uid=%d", $account->uid);
-  if ($r) {
-    $a = db_fetch_object($r);
+  $a = db_fetch_object(db_query("SELECT nid, organization_nid FROM {stormperson} WHERE user_uid=%d", $account->uid));
+  if ($a) {
     $account->stormperson_nid = $a->nid;
     $account->stormorganization_nid = $a->organization_nid;
   }
@@ -556,4 +550,4 @@ function stormperson_primary_email($node
   elseif ($node->email) {
     return $node->email;
   }
-}
\ No newline at end of file
+}
Index: stormperson/stormperson.test
===================================================================
RCS file: stormperson/stormperson.test
diff -N stormperson/stormperson.test
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ stormperson/stormperson.test	8 Jan 2011 00:34:02 -0000
@@ -0,0 +1,33 @@
+<?php
+class StormpersonTestCase extends DrupalWebTestCase {
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Storm Person functionality',
+      'description' => 'Test the functionality of the Storm 
+Person module',
+      'group' => 'Storm',
+    );
+  }
+
+  public function setUp() {
+    parent::setUp('storm', 'stormattribute', 'stormorganization', 'stormperson');
+    $privileged_user = $this->drupalCreateUser(array('Storm organization: add', 'Storm organization: view all', 'Storm person: add'));
+    $this->drupalLogin($privileged_user);
+  }
+
+  public function testStormpersonCreate() {
+    $org = array(
+      'title' => $this->randomName(32),
+      'body' => $this->randomName(64),
+    );
+    $person = array(
+      'title' => $this->randomName(32),
+      'body' => $this->randomName(64),
+    );
+
+    $this->drupalPost('node/add/stormorganization', $org, t('Save'));
+    $this->drupalPost('node/add/stormperson', $person, t('Save'));
+    $this->assertText(t('Person @title has been created.', array('@title' => $person['title'])));
+  }
+}
