Author: garak
Date: 2010-02-24 19:34:03 +0100 (Wed, 24 Feb 2010)
New Revision: 28254

Modified:
   plugins/sfSocialPlugin/trunk/config/schema.yml
   plugins/sfSocialPlugin/trunk/data/fixtures/06_notifies.yml
   plugins/sfSocialPlugin/trunk/i18n/sfSocial.it.xml
   plugins/sfSocialPlugin/trunk/lib/form/sfSocialEventUserForm.class.php
   plugins/sfSocialPlugin/trunk/lib/form/sfSocialProfileForm.class.php
   plugins/sfSocialPlugin/trunk/lib/model/sfSocialContactPeer.php
   plugins/sfSocialPlugin/trunk/lib/model/sfSocialContactRequestPeer.php
   plugins/sfSocialPlugin/trunk/lib/model/sfSocialEventInvite.php
   plugins/sfSocialPlugin/trunk/lib/model/sfSocialEventPeer.php
   plugins/sfSocialPlugin/trunk/lib/model/sfSocialGroupInvitePeer.php
   plugins/sfSocialPlugin/trunk/lib/model/sfSocialGroupPeer.php
   plugins/sfSocialPlugin/trunk/lib/sfSocial.class.php
   plugins/sfSocialPlugin/trunk/modules/sfSocialGroup/templates/viewSuccess.php
   plugins/sfSocialPlugin/trunk/test/bootstrap/functional.php
   plugins/sfSocialPlugin/trunk/test/functional/runAll.sh
   plugins/sfSocialPlugin/trunk/test/functional/sfSocialContactActionsTest.php
   plugins/sfSocialPlugin/trunk/test/functional/sfSocialEventActionsTest.php
   plugins/sfSocialPlugin/trunk/test/functional/sfSocialGroupActionsTest.php
   plugins/sfSocialPlugin/trunk/test/functional/sfSocialMessageActionsTest.php
   plugins/sfSocialPlugin/trunk/test/functional/sfSocialNotifyActionsTest.php
   plugins/sfSocialPlugin/trunk/test/functional/sfSocialUserActionsTest.php
Log:
[sfSocialPlugin] fixed bug in groups; improved tests; migrated schema to 
alternate syntax


Modified: plugins/sfSocialPlugin/trunk/config/schema.yml
===================================================================
--- plugins/sfSocialPlugin/trunk/config/schema.yml      2010-02-24 18:15:43 UTC 
(rev 28253)
+++ plugins/sfSocialPlugin/trunk/config/schema.yml      2010-02-24 18:34:03 UTC 
(rev 28254)
@@ -1,122 +1,128 @@
-propel:
-  _attributes: { package: plugins.sfSocialPlugin.lib.model }
+package:  plugins.sfSocialPlugin.lib.model
 
-  sf_social_contact:
-    _attributes: { phpName: sfSocialContact }
-    id:         ~
-    user_from:  { type: integer, required: true, foreignTable: sf_guard_user, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
-    user_to:    { type: integer, required: true, foreignTable: sf_guard_user, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
-    created_at: ~
-    _uniques:   { contact: [user_from, user_to] }
+classes:
+
+  sfSocialContact:
+    columns:
+      id:         ~
+      user_from:  { type: integer, required: true, foreignClass: sfGuardUser, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
+      user_to:    { type: integer, required: true, foreignClass: sfGuardUser, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
+      created_at: ~
+    uniques:
+      contact:    [ user_from, user_to ]
   
-  sf_social_contact_group:
-    _attributes: { phpName: sfSocialContactGroup }
-    id:         ~
-    contact_id: { type: integer, required: true, foreignTable: 
sf_social_contact, foreignReference: id, onDelete: cascade, onUpdate: cascade }
-    name:       { type: varchar }
+  sfSocialContactGroup:
+    columns:
+      id:         ~
+      contact_id: { type: integer, required: true, foreignClass: 
sfSocialContact, foreignReference: id, onDelete: cascade, onUpdate: cascade }
+      name:       { type: varchar }
   
-  sf_social_contact_group_contact:
-    _attributes: { phpName: sfSocialContactGroupContact }
-    contact_group_id: { type: integer, primaryKey: true, required: true, 
foreignTable: sf_social_contact_group, foreignReference: id, onDelete: cascade, 
onUpdate: cascade }
-    contact_id:       { type: integer, primaryKey: true, required: true, 
foreignTable: sf_social_contact, foreignReference: id, onDelete: cascade, 
onUpdate: cascade }
-    created_at:       ~
+  sfSocialContactGroupContact:
+    columns:
+      contact_group_id: { type: integer, primaryKey: true, required: true, 
foreignClass: sfSocialContactGroup, foreignReference: id, onDelete: cascade, 
onUpdate: cascade }
+      contact_id:       { type: integer, primaryKey: true, required: true, 
foreignClass: sfSocialContact, foreignReference: id, onDelete: cascade, 
onUpdate: cascade }
+      created_at:       ~
   
-  sf_social_contact_request:
-    _attributes: { phpName: sfSocialContactRequest }
-    id:         ~
-    user_from:  { type: integer, required: true, foreignTable: sf_guard_user, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
-    user_to:    { type: integer, required: true, foreignTable: sf_guard_user, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
-    message:    { type: varchar }
-    accepted:   { type: boolean, default: false }
-    created_at: ~
-    _uniques:   { request: [user_from, user_to] }
+  sfSocialContactRequest:
+    columns:
+      id:         ~
+      user_from:  { type: integer, required: true, foreignClass: sfGuardUser, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
+      user_to:    { type: integer, required: true, foreignClass: sfGuardUser, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
+      message:    { type: varchar }
+      accepted:   { type: boolean, default: false }
+      created_at: ~
+    uniques:
+      request:   [ user_from, user_to ]
   
-  sf_social_event:
-    _attributes: { phpName: sfSocialEvent }
-    id:          ~
-    user_admin:  { type: integer, required: true, foreignTable: sf_guard_user, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
-    title:       { type: varchar, required: true }
-    description: { type: longvarchar, required: true }
-    start:       { type: timestamp }
-    end:         { type: timestamp }
-    location:    { type: varchar, required: true }
-    created_at:  ~
-    updated_at:  ~
+  sfSocialEvent:
+    columns:
+      id:          ~
+      user_admin:  { type: integer, required: true, foreignClass: sfGuardUser, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
+      title:       { type: varchar, required: true }
+      description: { type: longvarchar, required: true }
+      start:       { type: timestamp }
+      end:         { type: timestamp }
+      location:    { type: varchar, required: true }
+      created_at:  ~
+      updated_at:  ~
   
-  sf_social_event_invite:
-    _attributes: { phpName: sfSocialEventInvite }
-    id:         ~
-    event_id:   { type: integer, required: true, foreignTable: 
sf_social_event, foreignReference: id, onDelete: cascade, onUpdate: cascade }
-    user_id:    { type: integer, required: true, foreignTable: sf_guard_user, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
-    user_from:  { type: integer, required: true, foreignTable: sf_guard_user, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
-    replied:    { type: boolean, default: false }
-    created_at: ~
-    _uniques:   { invite: [event_id, user_id, user_from] }
+  sfSocialEventInvite:
+    columns:
+      id:         ~
+      event_id:   { type: integer, required: true, foreignClass: 
sfSocialEvent, foreignReference: id, onDelete: cascade, onUpdate: cascade }
+      user_id:    { type: integer, required: true, foreignClass: sfGuardUser, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
+      user_from:  { type: integer, required: true, foreignClass: sfGuardUser, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
+      replied:    { type: boolean, default: false }
+      created_at: ~
+    uniques:
+      invite:     [ event_id, user_id, user_from ]
   
-  sf_social_event_user:
-    _attributes: { phpName: sfSocialEventUser }
-    event_id:   { type: integer, primaryKey: true, required: true, 
foreignTable: sf_social_event, foreignReference: id, onDelete: cascade, 
onUpdate: cascade }
-    user_id:    { type: integer, primaryKey: true, required: true, 
foreignTable: sf_guard_user, foreignReference: id, onDelete: cascade, onUpdate: 
cascade }
-    confirm:    { type: integer, required: true, default: 0 }
-    created_at: ~
+  sfSocialEventUser:
+    columns:
+      event_id:   { type: integer, primaryKey: true, required: true, 
foreignClass: sfSocialEvent, foreignReference: id, onDelete: cascade, onUpdate: 
cascade }
+      user_id:    { type: integer, primaryKey: true, required: true, 
foreignClass: sfGuardUser, foreignReference: id, onDelete: cascade, onUpdate: 
cascade }
+      confirm:    { type: integer, required: true, default: 0 }
+      created_at: ~
   
-  sf_social_group:
-    _attributes: { phpName: sfSocialGroup }
-    id:          ~
-    user_admin:  { type: integer, required: true, foreignTable: sf_guard_user, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
-    title:       { type: varchar, required: true }
-    description: { type: longvarchar, required: true }
-    created_at:  ~
-    updated_at:  ~
+  sfSocialGroup:
+    columns:
+      id:          ~
+      user_admin:  { type: integer, required: true, foreignClass: sfGuardUser, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
+      title:       { type: varchar, required: true }
+      description: { type: longvarchar, required: true }
+      created_at:  ~
+      updated_at:  ~
   
-  sf_social_group_invite:
-    _attributes: { phpName: sfSocialGroupInvite }
-    id:         ~
-    group_id:   { type: integer, required: true, foreignTable: 
sf_social_group, foreignReference: id, onDelete: cascade, onUpdate: cascade }
-    user_id:    { type: integer, required: true, foreignTable: sf_guard_user, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
-    user_from:  { type: integer, required: true, foreignTable: sf_guard_user, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
-    replied:    { type: boolean, default: false }
-    created_at: ~
-    _uniques:   { invite: [group_id, user_id, user_from] }
+  sfSocialGroupInvite:
+    columns:
+      id:         ~
+      group_id:   { type: integer, required: true, foreignClass: 
sfSocialGroup, foreignReference: id, onDelete: cascade, onUpdate: cascade }
+      user_id:    { type: integer, required: true, foreignClass: sfGuardUser, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
+      user_from:  { type: integer, required: true, foreignClass: sfGuardUser, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
+      replied:    { type: boolean, default: false }
+      created_at: ~
+    uniques:
+      invite:     [ group_id, user_id, user_from ]
   
-  sf_social_group_user:
-    _attributes: { phpName: sfSocialGroupUser }
-    group_id:   { type: integer, primaryKey: true, required: true, 
foreignTable: sf_social_group, foreignReference: id, onDelete: cascade, 
onUpdate: cascade }
-    user_id:    { type: integer, primaryKey: true, required: true, 
foreignTable: sf_guard_user, foreignReference: id, onDelete: cascade, onUpdate: 
cascade }
-    created_at: ~
+  sfSocialGroupUser:
+    columns:
+      group_id:   { type: integer, primaryKey: true, required: true, 
foreignClass: sfSocialGroup, foreignReference: id, onDelete: cascade, onUpdate: 
cascade }
+      user_id:    { type: integer, primaryKey: true, required: true, 
foreignClass: sfGuardUser, foreignReference: id, onDelete: cascade, onUpdate: 
cascade }
+      created_at: ~
   
-  sf_social_message:
-    _attributes: { phpName: sfSocialMessage }
-    id:         ~
-    user_from:  { type: integer, required: true, foreignTable: sf_guard_user, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
-    subject:    { type: varchar, required: true }
-    text:       { type: longvarchar, required: true }
-    created_at: ~
+  sfSocialMessage:
+    columns:
+      id:         ~
+      user_from:  { type: integer, required: true, foreignClass: sfGuardUser, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
+      subject:    { type: varchar, required: true }
+      text:       { type: longvarchar, required: true }
+      created_at: ~
   
-  sf_social_message_rcpt:
-    _attributes: { phpName: sfSocialMessageRcpt }
-    id:      ~
-    msg_id:  { type: integer, required: true, foreignTable: sf_social_message, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
-    user_to: { type: integer, required: true, foreignTable: sf_guard_user, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
-    is_read: { type: boolean, default: false }
+  sfSocialMessageRcpt:
+    columns:
+      id:      ~
+      msg_id:  { type: integer, required: true, foreignClass: sfSocialMessage, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
+      user_to: { type: integer, required: true, foreignClass: sfGuardUser, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
+      is_read: { type: boolean, default: false }
   
-  sf_social_notify:
-    _attributes: { phpName: sfSocialNotify }
-    id:         ~
-    user_id:    { type: integer, required: true, foreignTable: sf_guard_user, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
-    model_name: { type: varchar, required: true }
-    model_id:   { type: integer, required: true }
-    is_read:    { type: boolean, default: false }
-    created_at: ~
+  sfSocialNotify:
+    columns:
+      id:         ~
+      user_id:    { type: integer, required: true, foreignClass: sfGuardUser, 
foreignReference: id, onDelete: cascade, onUpdate: cascade }
+      model_name: { type: varchar, required: true }
+      model_id:   { type: integer, required: true }
+      is_read:    { type: boolean, default: false }
+      created_at: ~
   
-  sf_guard_user_profile:
-    _attributes: { phpName: sfGuardUserProfile, package: 
plugins.sfGuardPlugin.lib.model }
-    id:         ~
-    user_id:    { type: integer, foreignTable: sf_guard_user, 
foreignReference: id, required: true, onDelete: cascade }
-    email:      { type: varchar, required: true }
-    first_name: { type: varchar }
-    last_name:  { type: varchar }
-    birthday:   { type: date }
-    sex:        { type: char, size: 1 }
-    location:   { type: varchar }
-    picture:    { type: varchar, size: 155 }
+  sfGuardUserProfile:
+    package: plugins.sfGuardPlugin.lib.model
+    columns:
+      id:         ~
+      user_id:    { type: integer, foreignClass: sfGuardUser, 
foreignReference: id, required: true, onDelete: cascade }
+      email:      { type: varchar, required: true }
+      first_name: { type: varchar }
+      last_name:  { type: varchar }
+      birthday:   { type: date }
+      sex:        { type: char, size: 1 }
+      location:   { type: varchar }
+      picture:    { type: varchar }
\ No newline at end of file

Modified: plugins/sfSocialPlugin/trunk/data/fixtures/06_notifies.yml
===================================================================
--- plugins/sfSocialPlugin/trunk/data/fixtures/06_notifies.yml  2010-02-24 
18:15:43 UTC (rev 28253)
+++ plugins/sfSocialPlugin/trunk/data/fixtures/06_notifies.yml  2010-02-24 
18:34:03 UTC (rev 28254)
@@ -1,3 +1,12 @@
+<?php
+/* this is needed because of lack of foreign key in sfSocialNotify model */
+$danny = sfGuardUserPeer::retrieveByUsername('danny');
+$anna = sfGuardUserPeer::retrieveByUsername('anna');
+$max = sfGuardUserPeer::retrieveByUsername('max');
+$group4 = sfSocialGroupPeer::retrieveByTitle('webgrrls');
+$crToMax = sfSocialContactRequestPeer::retrieveByUsers($danny, $max);
+$giToMax = sfSocialGroupInvitePeer::retrieveByInvite($group4, $max, $anna);
+?>
 sfSocialNotify:
   message_to_max:
     user_id:    max
@@ -6,8 +15,8 @@
   request_to_max:
     user_id:    max
     model_name: sfSocialContactRequest
-    model_id:   1
+    model_id:   <?php echo ($crToMax ? $crToMax->getId() : '0') . PHP_EOL ?>
   group_invite_for_max:
     user_id:    max
     model_name: sfSocialGroupInvite
-    model_id:   3
\ No newline at end of file
+    model_id:   <?php echo ($giToMax ? $giToMax->getId() : '0') . PHP_EOL ?>
\ No newline at end of file

Modified: plugins/sfSocialPlugin/trunk/i18n/sfSocial.it.xml
===================================================================
--- plugins/sfSocialPlugin/trunk/i18n/sfSocial.it.xml   2010-02-24 18:15:43 UTC 
(rev 28253)
+++ plugins/sfSocialPlugin/trunk/i18n/sfSocial.it.xml   2010-02-24 18:34:03 UTC 
(rev 28254)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE xliff PUBLIC "-//XLIFF//DTD XLIFF//EN" 
"http://www.oasis-open.org/committees/xliff/documents/xliff.dtd";>
 <xliff version="1.0">
-  <file source-language="EN" target-language="it" datatype="plaintext" 
original="messages" date="2009-07-08T15:34:11Z" product-name="messages">
+  <file source-language="en" target-language="it" datatype="plaintext" 
original="sfSocial" date="2009-07-08T15:34:11Z" product-name="messages">
     <header/>
     <body>
       <trans-unit>

Modified: plugins/sfSocialPlugin/trunk/lib/form/sfSocialEventUserForm.class.php
===================================================================
--- plugins/sfSocialPlugin/trunk/lib/form/sfSocialEventUserForm.class.php       
2010-02-24 18:15:43 UTC (rev 28253)
+++ plugins/sfSocialPlugin/trunk/lib/form/sfSocialEventUserForm.class.php       
2010-02-24 18:34:03 UTC (rev 28254)
@@ -16,7 +16,7 @@
     unset($this['created_at']);
 
     // make "confirm" a choice
-    $this->widgetSchema['confirm'] = new sfWidgetFormChoice(array('choices'  
=> sfSocial::getI18NChoices(sfSocialEventUserPeer::$confirmChoices),
+    $this->widgetSchema['confirm'] = new sfWidgetFormChoice(array('choices'  
=> sfSocialEventUserPeer::$confirmChoices,
                                                                   'expanded' 
=> true));
     $this->validatorSchema['confirm'] = new sfValidatorChoice(array('required' 
=> false,
                                                                     'choices' 
=> array_keys(sfSocialEventUserPeer::$confirmChoices)));

Modified: plugins/sfSocialPlugin/trunk/lib/form/sfSocialProfileForm.class.php
===================================================================
--- plugins/sfSocialPlugin/trunk/lib/form/sfSocialProfileForm.class.php 
2010-02-24 18:15:43 UTC (rev 28253)
+++ plugins/sfSocialPlugin/trunk/lib/form/sfSocialProfileForm.class.php 
2010-02-24 18:34:03 UTC (rev 28254)
@@ -9,6 +9,15 @@
  */
 class sfSocialProfileForm extends sfGuardUserForm
 {
+
+  // "sex" choices
+  const SEX_UNKNOWN = '';
+  const SEX_MALE    = 'M';
+  const SEX_FEMALE  = 'F';
+  static public $sexChoices = array(self::SEX_UNKNOWN => 'Unspecified',
+                                    self::SEX_MALE    => 'Male',
+                                    self::SEX_FEMALE  => 'Female');
+
   public function configure()
   {
     parent::configure();
@@ -20,11 +29,11 @@
     $years = range(date('Y'), 1900);
     $this->widgetSchema['birthday']->setOption('years', array_combine($years, 
$years));
 
-    // make "sex" a choice 
+    // make "sex" a choice
     $this->widgetSchema['sex'] = new sfWidgetFormChoice(array('expanded' => 
false,
-                                                              'choices' => 
sfSocial::getI18NChoices(sfSocial::$sexChoices)));
+                                                              'choices' => 
self::$sexChoices));
     $this->validatorSchema['sex'] = new sfValidatorChoice(array('required' => 
false,
-                                                                'choices' => 
array_keys(sfSocial::$sexChoices)));
+                                                                'choices' => 
array_keys(self::$sexChoices)));
 
     // make picture editable
     $path = sfConfig::get('app_sf_social_pic_path', '/sf_social_pics/');

Modified: plugins/sfSocialPlugin/trunk/lib/model/sfSocialContactPeer.php
===================================================================
--- plugins/sfSocialPlugin/trunk/lib/model/sfSocialContactPeer.php      
2010-02-24 18:15:43 UTC (rev 28253)
+++ plugins/sfSocialPlugin/trunk/lib/model/sfSocialContactPeer.php      
2010-02-24 18:34:03 UTC (rev 28254)
@@ -109,4 +109,19 @@
     return $array;
   }
 
+       /**
+   * get object by from/to users
+   * @param  sfGuardUser            $from
+   * @param  sfGuardUser            $to
+   * @return sfSocialContactRequest
+   */
+  public static function retrieveByUsers(sfGuardUser $from, sfGuardUser $to)
+  {
+    $c = new Criteria;
+    $c->add(self::USER_FROM, $from->getId());
+    $c->add(self::USER_TO, $to->getId());
+
+    return self::doSelectOne($c);
+  }
+
 }

Modified: plugins/sfSocialPlugin/trunk/lib/model/sfSocialContactRequestPeer.php
===================================================================
--- plugins/sfSocialPlugin/trunk/lib/model/sfSocialContactRequestPeer.php       
2010-02-24 18:15:43 UTC (rev 28253)
+++ plugins/sfSocialPlugin/trunk/lib/model/sfSocialContactRequestPeer.php       
2010-02-24 18:34:03 UTC (rev 28254)
@@ -45,4 +45,20 @@
 
     return $pager;
   }
+
+       /**
+   * get object by from/to users
+   * @param  sfGuardUser            $from
+   * @param  sfGuardUser            $to
+   * @return sfSocialContactRequest
+   */
+  public static function retrieveByUsers(sfGuardUser $from, sfGuardUser $to)
+  {
+    $c = new Criteria;
+    $c->add(self::USER_FROM, $from->getId());
+    $c->add(self::USER_TO, $to->getId());
+
+    return self::doSelectOne($c);
+  }
+
 }

Modified: plugins/sfSocialPlugin/trunk/lib/model/sfSocialEventInvite.php
===================================================================
--- plugins/sfSocialPlugin/trunk/lib/model/sfSocialEventInvite.php      
2010-02-24 18:15:43 UTC (rev 28253)
+++ plugins/sfSocialPlugin/trunk/lib/model/sfSocialEventInvite.php      
2010-02-24 18:34:03 UTC (rev 28254)
@@ -16,7 +16,7 @@
     {
       return null;
     }
-    $choices = 
sfSocial::getI18NChoices(sfSocialEventUserPeer::$confirmChoices);
+    $choices = sfSocialEventUserPeer::$confirmChoices;
     return $choices[$eventUser->getConfirm()];
   }
 

Modified: plugins/sfSocialPlugin/trunk/lib/model/sfSocialEventPeer.php
===================================================================
--- plugins/sfSocialPlugin/trunk/lib/model/sfSocialEventPeer.php        
2010-02-24 18:15:43 UTC (rev 28253)
+++ plugins/sfSocialPlugin/trunk/lib/model/sfSocialEventPeer.php        
2010-02-24 18:34:03 UTC (rev 28254)
@@ -19,7 +19,7 @@
     $pager->setPeerMethod('doSelectJoinsfGuardUser');
     $pager->setPage($page);
     $pager->init();
-    
+
     return $pager;
   }
 
@@ -43,4 +43,17 @@
     return $pager;
   }
 
+  /**
+   * get event by its title (warning: title is NOT unique)
+   * @param  string        $title
+   * @return sfSocialEvent
+   */
+  public static function retrieveByTitle($title)
+  {
+    $c = new Criteria;
+    $c->add(self::TITLE, $title);
+
+    return self::doSelectOne($c);
+  }
+
 }

Modified: plugins/sfSocialPlugin/trunk/lib/model/sfSocialGroupInvitePeer.php
===================================================================
--- plugins/sfSocialPlugin/trunk/lib/model/sfSocialGroupInvitePeer.php  
2010-02-24 18:15:43 UTC (rev 28253)
+++ plugins/sfSocialPlugin/trunk/lib/model/sfSocialGroupInvitePeer.php  
2010-02-24 18:34:03 UTC (rev 28254)
@@ -2,4 +2,21 @@
 
 class sfSocialGroupInvitePeer extends BasesfSocialGroupInvitePeer
 {
+       /**
+   * get object by tuple group_id/user_id/user_from
+   * @param  sfSocialGroup       $group
+   * @param  sfGuardUser         $to
+   * @param  sfGuardUser         $from
+   * @return sfSocialGroupInvite
+   */
+  public static function retrieveByInvite(sfSocialGroup $group, sfGuardUser 
$to, sfGuardUser $from)
+  {
+    $c = new Criteria;
+    $c->add(self::GROUP_ID, $group->getId());
+    $c->add(self::USER_ID, $to->getId());
+    $c->add(self::USER_FROM, $from->getId());
+
+
+    return self::doSelectOne($c);
+  }
 }

Modified: plugins/sfSocialPlugin/trunk/lib/model/sfSocialGroupPeer.php
===================================================================
--- plugins/sfSocialPlugin/trunk/lib/model/sfSocialGroupPeer.php        
2010-02-24 18:15:43 UTC (rev 28253)
+++ plugins/sfSocialPlugin/trunk/lib/model/sfSocialGroupPeer.php        
2010-02-24 18:34:03 UTC (rev 28254)
@@ -17,8 +17,21 @@
     $pager->setPeerMethod('doSelectJoinsfGuardUser');
     $pager->setPage($page);
     $pager->init();
-    
+
     return $pager;
   }
 
+  /**
+   * get group by its title
+   * @param  string        $title
+   * @return sfSocialGroup
+   */
+  public static function retrieveByTitle($title)
+  {
+    $c = new Criteria;
+    $c->add(self::TITLE, $title);
+
+    return self::doSelectOne($c);
+  }
+
 }

Modified: plugins/sfSocialPlugin/trunk/lib/sfSocial.class.php
===================================================================
--- plugins/sfSocialPlugin/trunk/lib/sfSocial.class.php 2010-02-24 18:15:43 UTC 
(rev 28253)
+++ plugins/sfSocialPlugin/trunk/lib/sfSocial.class.php 2010-02-24 18:34:03 UTC 
(rev 28254)
@@ -10,36 +10,6 @@
 
 class sfSocial
 {
-  // sex choices
 
-  const SEX_UNSPECIFIED = '';
-  const SEX_MALE        = 'M';
-  const SEX_FEMALE      = 'F';
-  
-  static public $sexChoices = array(self::SEX_UNSPECIFIED => 'Unspecified',
-                                    self::SEX_MALE        => 'Male',
-                                    self::SEX_FEMALE      => 'Female');
 
-  /**
-   * Get the I18n array of choices from the one
-   * given in parameter, if i18n enabled.
-   * @param array $choices An array instance of choices
-   */
-  static public function getI18NChoices(array $choices)
-  {
-    if (sfConfig::get('sf_i18n'))
-    {
-      // make confirm a choice (i18n solution is very ugly, is there a better 
way? TODO)
-      $i18n = sfContext::getInstance()->getI18N();
-      foreach ($choices as $k => $choice)
-      {
-        $i18nChoices[$k] = $i18n->__($choice, null, 'sfSocial');
-      }
-      return $i18nChoices;
-    }
-    else
-    {
-      return $choices;
-    }
-  }
 }

Modified: 
plugins/sfSocialPlugin/trunk/modules/sfSocialGroup/templates/viewSuccess.php
===================================================================
--- 
plugins/sfSocialPlugin/trunk/modules/sfSocialGroup/templates/viewSuccess.php    
    2010-02-24 18:15:43 UTC (rev 28253)
+++ 
plugins/sfSocialPlugin/trunk/modules/sfSocialGroup/templates/viewSuccess.php    
    2010-02-24 18:34:03 UTC (rev 28254)
@@ -35,6 +35,7 @@
 <?php if ($group->isMember($_user)): ?>
 <h3><?php echo __('Invite', null, 'sfSocial') ?>:</h3>
 <div id="group_invite">
+  <?php if (isset($form['user_id'])): ?>
   <form id="invites" action="<?php echo url_for('@sf_social_group_invite?id=' 
. $group->getId()) ?>" method="post">
     <?php echo $form['user_id']->renderError() ?>
     <?php echo $form['user_id']->renderLabel() ?>
@@ -44,6 +45,9 @@
     <input type="hidden" id="ajax_search" value="<?php echo 
url_for('@sf_social_contact_search') ?>" />
     <input type="hidden" id="remove_text" value="<?php echo __('remove', null, 
'sfSocial') ?>" />
   </form>
+  <?php else: ?>
+  <?php echo __('You can\'t invite any other user') ?>
+  <?php endif ?>
 </div>
 <?php endif ?>
 

Modified: plugins/sfSocialPlugin/trunk/test/bootstrap/functional.php
===================================================================
--- plugins/sfSocialPlugin/trunk/test/bootstrap/functional.php  2010-02-24 
18:15:43 UTC (rev 28253)
+++ plugins/sfSocialPlugin/trunk/test/bootstrap/functional.php  2010-02-24 
18:34:03 UTC (rev 28254)
@@ -13,25 +13,7 @@
 // remove all cache
 sfToolkit::clearDirectory(sfConfig::get('sf_app_cache_dir'));
 
-// clear fixture data
-new 
sfDatabaseManager(ProjectConfiguration::getApplicationConfiguration('frontend', 
'test', true));
-
-$tables = array('sf_social' => array('contact', 'contact_group', 
'contact_group_contact',
-                  'contact_request', 'event', 'event_invite',
-                  'event_user', 'group', 'group_invite', 'group_user',
-                  'message', 'message_rcpt', 'notify'),
-                'sf_guard' => array('group', 'group_permission', 'permission', 
'user',
-                  'user_group', 'user_permission'));
-$con = Propel::getConnection();
-foreach ($tables as $plugin => $table)
-{
-  foreach ($table as $model)
-  {
-    $stmt = $con->prepare('TRUNCATE TABLE ' . $plugin . '_' . $model);
-    $stmt->execute();
-  }
-}
-
-// re-import fixture data
+// import fixture data
+#new 
sfDatabaseManager(ProjectConfiguration::getApplicationConfiguration('frontend', 
'test', true));
 $data = new sfPropelData();
 $data->loadData(dirname(__FILE__) . '/../../data/fixtures');
\ No newline at end of file

Modified: plugins/sfSocialPlugin/trunk/test/functional/runAll.sh
===================================================================
--- plugins/sfSocialPlugin/trunk/test/functional/runAll.sh      2010-02-24 
18:15:43 UTC (rev 28253)
+++ plugins/sfSocialPlugin/trunk/test/functional/runAll.sh      2010-02-24 
18:34:03 UTC (rev 28254)
@@ -1,5 +1,6 @@
 #!/bin/sh
 # shell script to execute all functional tests
+# for older symfony versions (< 1.3)
 
 for i in `ls *.php`;
 do

Modified: 
plugins/sfSocialPlugin/trunk/test/functional/sfSocialContactActionsTest.php
===================================================================
--- plugins/sfSocialPlugin/trunk/test/functional/sfSocialContactActionsTest.php 
2010-02-24 18:15:43 UTC (rev 28253)
+++ plugins/sfSocialPlugin/trunk/test/functional/sfSocialContactActionsTest.php 
2010-02-24 18:34:03 UTC (rev 28254)
@@ -6,6 +6,15 @@
 
 $browser->setTester('propel', 'sfTesterPropel');
 
+$john = sfGuardUserPeer::retrieveByUsername('john');
+$danny = sfGuardUserPeer::retrieveByUsername('danny');
+$anna = sfGuardUserPeer::retrieveByUsername('anna');
+$julie = sfGuardUserPeer::retrieveByUsername('julie');
+$max = sfGuardUserPeer::retrieveByUsername('max');
+$contact1 = sfSocialContactPeer::retrieveByUsers($anna, $julie);
+$request1 = sfSocialContactRequestPeer::retrieveByUsers($danny, $max);
+$request4 = sfSocialContactRequestPeer::retrieveByUsers($john, $anna);
+
 $browser->
 
   doLogin()->
@@ -36,17 +45,16 @@
     isParameter('action', 'sendrequest')->
   end()->
   click('send', array('sf_social_contact_request' => array(
-    'user_to' => 6,
+    'user_to' => $anna->getId(),
     'message' => 'can I be you friend?'
   )))->
-  with('form')->begin()->hasErrors(false)->
-  end()->
+  with('form')->hasErrors(false)->
   with('propel')->begin()->
     check('sfSocialContactRequest', array(
-      'user_from' => 8,
-      'user_to'   => 6,
-      'accepted'  => 0,
-  ))->
+      'user_from' => $max->getId(),
+      'user_to'   => $anna->getId(),
+      'accepted'  => false,
+    ))->
   end()->
 
   info('list of received requests')->
@@ -65,16 +73,14 @@
   with('response')->isRedirected()->followRedirect()->
   with('propel')->begin()->
     check('sfSocialContactRequest', array(
-      'user_from' => 1,
-      'user_to'   => 8,
-      'accepted'  => 1,
-  ))->
-  end()->
-  with('propel')->begin()->
+      'user_from' => $john->getId(),
+      'user_to'   => $max->getId(),
+      'accepted'  => true,
+    ))->
     check('sfSocialContact', array(
-      'user_from' => 8,
-      'user_to'   => 1,
-  ))->
+      'user_from' => $max->getId(),
+      'user_to'   => $john->getId(),
+    ))->
   end()->
 
   info('deny a request')->
@@ -86,15 +92,13 @@
   with('response')->isRedirected()->followRedirect()->
   with('propel')->begin()->
     check('sfSocialContactRequest', array(
-      'user_from' => 3,
-      'user_to'   => 8,
-  ), false)->
-  end()->
-  with('propel')->begin()->
+      'user_from' => $danny->getId(),
+      'user_to'   => $max->getId(),
+    ), false)->
     check('sfSocialContact', array(
-      'user_from' => 8,
-      'user_to'   => 3,
-  ), false)->
+      'user_from' => $max->getId(),
+      'user_to'   => $danny->getId(),
+    ), false)->
   end()->
 
   info('list of sent requests')->
@@ -113,25 +117,25 @@
   with('response')->isRedirected()->followRedirect()->
   with('propel')->begin()->
     check('sfSocialContactRequest', array(
-      'user_from' => 8,
-      'user_to'   => 6,
-  ), false)->
+      'user_from' => $max->getId(),
+      'user_to'   => $anna->getId(),
+    ), false)->
   end()->
 
   info('unauthorized contact removing')->
-  get('/contact/delete/1')->
+  get('/contact/delete/' . $contact1->getId())->
   with('response')->begin()->
     isStatusCode(403)->
   end()->
 
   info('unauthorized request accepting')->
-  get('/request/accept/4')->
+  get('/request/accept/' .  $request4->getId())->
   with('response')->begin()->
     isStatusCode(403)->
   end()->
 
   info('unauthorized request denying')->
-  get('/request/deny/4')->
+  get('/request/deny/' . $request4->getId())->
   with('response')->begin()->
     isStatusCode(403)->
 

Modified: 
plugins/sfSocialPlugin/trunk/test/functional/sfSocialEventActionsTest.php
===================================================================
--- plugins/sfSocialPlugin/trunk/test/functional/sfSocialEventActionsTest.php   
2010-02-24 18:15:43 UTC (rev 28253)
+++ plugins/sfSocialPlugin/trunk/test/functional/sfSocialEventActionsTest.php   
2010-02-24 18:34:03 UTC (rev 28254)
@@ -6,6 +6,13 @@
 
 $browser->setTester('propel', 'sfTesterPropel');
 
+$mike = sfGuardUserPeer::retrieveByUsername('mike');
+$luigi = sfGuardUserPeer::retrieveByUsername('luigi');
+$max = sfGuardUserPeer::retrieveByUsername('max');
+$event1 = sfSocialEventPeer::retrieveByTitle('let\'s party!');
+$event2 = sfSocialEventPeer::retrieveByTitle('I love pizza');
+$event4 = sfSocialEventPeer::retrieveByTitle('End of the world');
+
 $browser->
 
   doLogin()->
@@ -25,18 +32,18 @@
 
   info('single event')->
   click('End of the world')->
-    with('request')->begin()->
+  with('request')->begin()->
     isParameter('module', 'sfSocialEvent')->
     isParameter('action', 'view')->
   end()->
-    with('response')->begin()->
+  with('response')->begin()->
     checkElement('body h2', '/Event "End of the world"/')->
     checkElement('a[href$="/events"]', '/Back to list/')->
   end()->
 
   info('edit event')->
   click('Edit event')->
-    with('request')->begin()->
+  with('request')->begin()->
     isParameter('module', 'sfSocialEvent')->
     isParameter('action', 'edit')->
   end()->
@@ -45,7 +52,8 @@
     'description' => '',
     'location'    => '',
   )))->
-  with('form')->begin()->hasErrors(3)->
+  with('form')->begin()->
+    hasErrors(3)->
     isError('title', 'required')->
     isError('description', 'required')->
     isError('location', 'required')->
@@ -55,14 +63,13 @@
     'description' => 'I\'m a believer',
     'location'    => 'Earth',
   )))->
-  with('form')->begin()->hasErrors(false)->
-  end()->
+  with('form')->hasErrors(false)->
   with('propel')->begin()->
     check('sfSocialEvent', array(
       'title'       => 'No more end!',
       'description' => 'I\'m a believer',
       'location'    => 'Earth',
-  ))->
+    ))->
   end()->
 
   info('confirm event')->
@@ -80,35 +87,35 @@
 
   info('invite friend')->
   click('invite', array('sf_social_event_invite' => array(
-    'user_id' => 5,
+    'user_id' => $luigi->getId(),
   )))->
   with('form')->begin()->hasErrors(false)->
   end()->
   with('propel')->begin()->
     check('sfSocialEventInvite', array(
-      'event_id'  => 4,
-      'user_id'   => 5,
-      'user_from' => 8,
+      'event_id'  => $event4->getId(),
+      'user_id'   => $luigi->getId(),
+      'user_from' => $max->getId(),
       'replied'   => false,
-  ))->
+    ))->
   end()->
-    followRedirect()->
-    with('response')->begin()->
+  with('response')->isRedirected()->followRedirect()->
+  with('response')->begin()->
     checkElement('ul#invited li', true)->
   end()->
 
   info('invite an user that already confirmed')->
-  get('/event/1')->
+  get('/event/' . $event1->getId())->
   click('invite', array('sf_social_event_invite' => array(
-    'user_id' => 2,
+    'user_id' => $mike->getId(),
   )))->
   with('propel')->begin()->
     check('sfSocialEventInvite', array(
-      'event_id'  => 1,
-      'user_id'   => 2,
-      'user_from' => 8,
+      'event_id'  => $event1->getId(),
+      'user_id'   => $mike->getId(),
+      'user_from' => $max->getId(),
       'replied'   => false,
-  ), false)->
+    ), false)->
   end()->
 
   info('create a new event')->
@@ -122,7 +129,8 @@
     'description' => '',
     'location'    => '',
   )))->
-  with('form')->begin()->hasErrors(3)->
+  with('form')->begin()->
+    hasErrors(3)->
     isError('title', 'required')->
     isError('description', 'required')->
     isError('location', 'required')->
@@ -139,11 +147,11 @@
       'title'       => 'A new event',
       'description' => 'What about a new event?',
       'location'    => 'Just here!',
-  ))->
+    ))->
   end()->
 
   info('check various invite replies')->
-  get('/event/1')->
+  get('/event/' . $event1->getId())->
   with('response')->begin()->
     checkElement('ul#confirmed li', 1)->
     checkElement('ul#maybe li', 1)->
@@ -152,13 +160,13 @@
   end()->
 
   info('past event')->
-  get('/event/1')->
-    with('response')->begin()->
+  get('/event/' . $event1->getId())->
+  with('response')->begin()->
     checkElement('a[href$="/pastevents"]', '/Back to list/')->
   end()->
 
   info('edit forbidden event')->
-  get('/event/2/edit')->
+  get('/event/' . $event2->getId() . '/edit')->
   with('response')->begin()->
     isStatusCode(403)->
   end()

Modified: 
plugins/sfSocialPlugin/trunk/test/functional/sfSocialGroupActionsTest.php
===================================================================
--- plugins/sfSocialPlugin/trunk/test/functional/sfSocialGroupActionsTest.php   
2010-02-24 18:15:43 UTC (rev 28253)
+++ plugins/sfSocialPlugin/trunk/test/functional/sfSocialGroupActionsTest.php   
2010-02-24 18:34:03 UTC (rev 28254)
@@ -6,6 +6,18 @@
 
 $browser->setTester('propel', 'sfTesterPropel');
 
+$john = sfGuardUserPeer::retrieveByUsername('john');
+$mike = sfGuardUserPeer::retrieveByUsername('mike');
+$danny = sfGuardUserPeer::retrieveByUsername('danny');
+$mario = sfGuardUserPeer::retrieveByUsername('mario');
+$anna = sfGuardUserPeer::retrieveByUsername('anna');
+$max = sfGuardUserPeer::retrieveByUsername('max');
+$group1 = sfSocialGroupPeer::retrieveByTitle('we are all dummies');
+$group4 = sfSocialGroupPeer::retrieveByTitle('webgrrls');
+$group5 = sfSocialGroupPeer::retrieveByTitle('a group for web creatives');
+$group6 = sfSocialGroupPeer::retrieveByTitle('mensa members');
+$invite4 = sfSocialGroupInvitePeer::retrieveByInvite($group4, $max, $anna);
+
 $browser->
 
   doLogin()->
@@ -24,17 +36,17 @@
 
   info('single group')->
   click('we are all dummies')->
-    with('request')->begin()->
+  with('request')->begin()->
     isParameter('module', 'sfSocialGroup')->
     isParameter('action', 'view')->
   end()->
-    with('response')->begin()->
+  with('response')->begin()->
     checkElement('body h2', '/Group "we are all dummies"/')->
   end()->
 
   info('edit a group')->
   click('Edit group')->
-    with('request')->begin()->
+  with('request')->begin()->
     isParameter('module', 'sfSocialGroup')->
     isParameter('action', 'edit')->
   end()->
@@ -59,7 +71,7 @@
     check('sfSocialGroup', array(
       'title'       => 'We rulez',
       'description' => 'Now we are the masterers!',
-  ))->
+    ))->
   end()->
 
   info('create a new group')->
@@ -72,7 +84,8 @@
     'title'       => '',
     'description' => '',
   )))->
-  with('form')->begin()->hasErrors(2)->
+  with('form')->begin()->
+    hasErrors(2)->
     isError('title', 'required')->
     isError('description', 'required')->
   end()->
@@ -80,52 +93,50 @@
     'title'       => 'A new group',
     'description' => 'What about a new group?',
   )))->
-  with('form')->begin()->hasErrors(false)->
-  end()->
+  with('form')->hasErrors(false)->
   with('propel')->begin()->
     check('sfSocialGroup', array(
       'title'       => 'A new group',
       'description' => 'What about a new group?',
-      'user_admin'  => 8,
+      'user_admin'  => $max->getId(),
   ))->
   end()->
   with('propel')->begin()->
     check('sfSocialGroupUser', array(
-      'group_id' => 7,
-      'user_id'  => 8,
+      'group_id' => $group6->getId() + 1,
+      'user_id'  => $max->getId(),
   ))->
   end()->
 
   info('invite users to join group')->
-  get('/group/1')->
+  get('/group/' . $group1->getId())->
   click('invite', array('sf_social_group_invite' => array(
-    'user_id' => array(1, 2, 3),
+    'user_id' => array($john->getId(), $mike->getId(), $danny->getId()),
   )))->
-  with('form')->begin()->hasErrors(false)->
-  end()->
+  with('form')->hasErrors(false)->
   with('propel')->begin()->
     check('sfSocialGroupInvite', array(
-      'group_id' => 1,
+      'group_id' => $group1->getId(),
       'replied'  => false,
-  ), 4)->
+    ), 4)->
   end()->
 
   info('invite an user that already confirmed')->
-  get('/group/1')->
+  get('/group/' . $group1->getId())->
   click('invite', array('sf_social_group_invite' => array(
-    'user_id' => 4,
+    'user_id' => $mario->getId(),
   )))->
   with('propel')->begin()->
     check('sfSocialGroupInvite', array(
-      'group_id'  => 1,
-      'user_id'   => 4,
-      'user_from' => 8,
+      'group_id'  => $group1->getId(),
+      'user_id'   => $mario->getId(),
+      'user_from' => $max->getId(),
       'replied'   => false,
-  ), false)->
+    ), false)->
   end()->
 
   info('join a group directly')->
-  get('/group/6')->
+  get('/group/' . $group6->getId())->
   click('Join this group')->
   with('request')->begin()->
     isParameter('module', 'sfSocialGroup')->
@@ -133,13 +144,13 @@
   end()->
   with('propel')->begin()->
     check('sfSocialGroupUser', array(
-      'group_id' => 6,
-      'user_id'  => 8,
-  ))->
+      'group_id' => $group6->getId(),
+      'user_id'  => $max->getId(),
+    ))->
   end()->
 
   info('join a group accepting an invite')->
-  get('/group/4')->
+  get('/group/' . $group4->getId())->
   click('Accept invite')->
   with('request')->begin()->
     isParameter('module', 'sfSocialGroup')->
@@ -147,32 +158,30 @@
   end()->
   with('propel')->begin()->
     check('sfSocialGroupUser', array(
-      'group_id' => 4,
-      'user_id'  => 8,
-  ))->
+      'group_id' => $group4->getId(),
+      'user_id'  => $max->getId(),
+    ))->
   end()->
 
   info('refuse an invite')->
-  get('/group/4/deny')->
+  get('/group/' . $group4->getId() . '/deny')->
   with('request')->begin()->
     isParameter('module', 'sfSocialGroup')->
     isParameter('action', 'deny')->
   end()->
   with('propel')->begin()->
     check('sfSocialGroupUser', array(
-      'group_id' => 5,
-      'user_id'  => 8,
-  ), false)->
-  end()->
-  with('propel')->begin()->
+      'group_id' => $group5->getId(),
+      'user_id'  => $max->getId(),
+    ), false)->
     check('sfSocialGroupInvite', array(
-      'id' => 4,
-      'replied'=> true,
-  ))->
+      'id'      => $invite4->getId(),
+      'replied' => true,
+    ))->
   end()->
 
   info('edit forbidden group')->
-  get('/group/4/edit')->
+  get('/group/' . $group4->getId() . '/edit')->
   with('response')->begin()->
     isStatusCode(403)->
   end()

Modified: 
plugins/sfSocialPlugin/trunk/test/functional/sfSocialMessageActionsTest.php
===================================================================
--- plugins/sfSocialPlugin/trunk/test/functional/sfSocialMessageActionsTest.php 
2010-02-24 18:15:43 UTC (rev 28253)
+++ plugins/sfSocialPlugin/trunk/test/functional/sfSocialMessageActionsTest.php 
2010-02-24 18:34:03 UTC (rev 28254)
@@ -6,6 +6,16 @@
 
 $browser->setTester('propel', 'sfTesterPropel');
 
+$john = sfGuardUserPeer::retrieveByUsername('john');
+$mike = sfGuardUserPeer::retrieveByUsername('mike');
+$danny = sfGuardUserPeer::retrieveByUsername('danny');
+$anna = sfGuardUserPeer::retrieveByUsername('anna');
+$max = sfGuardUserPeer::retrieveByUsername('max');
+
+$c = new Criteria;
+$c->addDescendingOrderByColumn(sfSocialMessagePeer::CREATED_AT);
+$lastMessage = sfSocialMessagePeer::doSelectOne($c);
+
 $browser->
 
   doLogin()->
@@ -41,7 +51,7 @@
   click('Reply')->
   with('response')->begin()->
     checkElement('input[name="sf_social_message[subject]"][value="Re: hello 
pal"]', true)->
-    checkElement('select#sf_social_message_to > 
option[value="3"][selected="selected"]', true)->
+    checkElement('select#sf_social_message_to > option[value="' . 
$danny->getId() . '"][selected="selected"]', true)->
   end()->
 
   click('cancel')
@@ -66,7 +76,8 @@
     'text'    => '',
     'to'      => array(),
   )))->
-  with('form')->begin()->hasErrors(3)->
+  with('form')->begin()->
+    hasErrors(3)->
     isError('subject', 'required')->
     isError('text', 'required')->
     isError('to', 'required')->
@@ -74,36 +85,32 @@
   click('send', array('sf_social_message' => array(
     'subject' => 'a message from functional test',
     'text'    => 'TDD rulez! I found a lot of bugs doing these nice tests.',
-    'to'      => array(1, 2),
+    'to'      => array($john->getId(), $mike->getId()),
   )))->
   with('form')->begin()->hasErrors(false)->
   end()->
   with('propel')->begin()->
     check('sfSocialMessage', array(
-      'user_from' => 8,
+      'user_from' => $max->getId(),
       'subject'   => 'a message from functional test',
       'text'      => 'TDD rulez! I found a lot of bugs doing these nice 
tests.',
-  ))->
-  end()->
-  with('propel')->begin()->
+    ))->
     check('sfSocialMessageRcpt', array(
-      'msg_id'  => 7,
-      'user_to' => 1,
-      'is_read' => 0,
-  ))->
-  end()->
-  with('propel')->begin()->
+      'msg_id'  => $lastMessage->getId() + 1,
+      'user_to' => $john->getId(),
+      'is_read' => false,
+    ))->
     check('sfSocialMessageRcpt', array(
-      'msg_id'  => 7,
-      'user_to' => 2,
-      'is_read' => 0,
-  ))->
+      'msg_id'  => $lastMessage->getId() + 1,
+      'user_to' => $mike->getId(),
+      'is_read' => false,
+    ))->
   end()->
 
   info('compose a message for a specific recipient')->
   get('/message/compose/to/anna')->
   with('response')->begin()->
-    checkElement('select#sf_social_message_to > 
option[value="6"][selected="selected"]', true)->
+    checkElement('select#sf_social_message_to > option[value="' . 
$anna->getId() . '"][selected="selected"]', true)->
   end()->
 
   info('sent messages')->

Modified: 
plugins/sfSocialPlugin/trunk/test/functional/sfSocialNotifyActionsTest.php
===================================================================
--- plugins/sfSocialPlugin/trunk/test/functional/sfSocialNotifyActionsTest.php  
2010-02-24 18:15:43 UTC (rev 28253)
+++ plugins/sfSocialPlugin/trunk/test/functional/sfSocialNotifyActionsTest.php  
2010-02-24 18:34:03 UTC (rev 28254)
@@ -6,6 +6,29 @@
 
 $browser->setTester('propel', 'sfTesterPropel');
 
+$john = sfGuardUserPeer::retrieveByUsername('john');
+$mike = sfGuardUserPeer::retrieveByUsername('mike');
+$luigi = sfGuardUserPeer::retrieveByUsername('luigi');
+$max = sfGuardUserPeer::retrieveByUsername('max');
+$event1 = sfSocialEventPeer::retrieveByTitle('let\'s party!');
+$group1 = sfSocialGroupPeer::retrieveByTitle('we are all dummies');
+
+$c = new Criteria;
+$c->addDescendingOrderByColumn(sfSocialMessagePeer::ID);
+$lastMessage = sfSocialMessagePeer::doSelectOne($c);
+
+$c = new Criteria;
+$c->addDescendingOrderByColumn(sfSocialContactRequestPeer::ID);
+$lastContactRequest = sfSocialContactRequestPeer::doSelectOne($c);
+
+$c = new Criteria;
+$c->addDescendingOrderByColumn(sfSocialEventInvitePeer::ID);
+$lastEventInvite = sfSocialEventInvitePeer::doSelectOne($c);
+
+$c = new Criteria;
+$c->addDescendingOrderByColumn(sfSocialGroupInvitePeer::ID);
+$lastGroupInvite = sfSocialGroupInvitePeer::doSelectOne($c);
+
 $browser->
 
   doLogin()->
@@ -15,23 +38,21 @@
   click('send', array('sf_social_message' => array(
     'subject' => 'hello',
     'text'    => 'just a test',
-    'to'      => array(1, 2),
+    'to'      => array($john->getId(), $mike->getId()),
   )))->
   with('form')->begin()->hasErrors(false)->
   end()->
   with('propel')->begin()->
     check('sfSocialNotify', array(
-      'user_id'    => 1,
+      'user_id'    => $john->getId(),
       'model_name' => 'sfSocialMessage',
-      'model_id'   => 7,
+      'model_id'   => $lastMessage->getId() + 1,
       'is_read'    => false,
-  ))->
-  end()->
-  with('propel')->begin()->
+    ))->
     check('sfSocialNotify', array(
-      'user_id'    => 2,
+      'user_id'    => $mike->getId(),
       'model_name' => 'sfSocialMessage',
-      'model_id'   => 7,
+      'model_id'   => $lastMessage->getId() + 1,
       'is_read'    => false,
   ))->
   end()->
@@ -39,64 +60,59 @@
   info('notify a contact request')->
   get('/request/send')->
   click('send', array('sf_social_contact_request' => array(
-    'user_to' => 1,
+    'user_to' => $john->getId(),
     'message' => 'just a test'
   )))->
-  with('form')->begin()->hasErrors(false)->
-  end()->
+  with('form')->hasErrors(false)->
   with('propel')->begin()->
     check('sfSocialNotify', array(
-      'user_id'    => 1,
+      'user_id'    => $john->getId(),
       'model_name' => 'sfSocialContactRequest',
-      'model_id'   => 5,
+      'model_id'   => $lastContactRequest->getId() + 1,
       'is_read'    => false,
-  ))->
+    ))->
   end()->
 
-  info('notify a group invite')->
-  get('/group/1')->
+  info('notify a group invite ' . $lastGroupInvite->getId())->
+  get('/group/' . $group1->getId())->
   click('invite', array('sf_social_group_invite' => array(
-    'user_id' => array(1, 2),
+    'user_id' => array($john->getId(), $mike->getId()),
   )))->
   with('form')->begin()->hasErrors(false)->
   end()->
   with('propel')->begin()->
     check('sfSocialNotify', array(
-      'user_id'    => 1,
+      'user_id'    => $john->getId(),
       'model_name' => 'sfSocialGroupInvite',
-      'model_id'   => 5,
+      'model_id'   => $lastGroupInvite->getId() + 1,
       'is_read'    => false,
-  ))->
-  end()->
-  with('propel')->begin()->
+    ))->
     check('sfSocialNotify', array(
-      'user_id'    => 2,
+      'user_id'    => $mike->getId(),
       'model_name' => 'sfSocialGroupInvite',
-      'model_id'   => 6,
+      'model_id'   => $lastGroupInvite->getId() + 2,
       'is_read'    => false,
-  ))->
+    ))->
   end()->
 
   info('notify an event invite')->
-  get('/event/1')->
+  get('/event/' . $event1->getId())->
   click('invite', array('sf_social_event_invite' => array(
-    'user_id' => array(1, 5),
+    'user_id' => array($john->getId(), $luigi->getId()),
   )))->
   with('form')->begin()->hasErrors(false)->
   end()->
   with('propel')->begin()->
     check('sfSocialNotify', array(
-      'user_id'    => 1,
+      'user_id'    => $john->getId(),
       'model_name' => 'sfSocialEventInvite',
-      'model_id'   => 4,
+      'model_id'   => $lastEventInvite->getId() + 1,
       'is_read'    => false,
-  ))->
-  end()->
-  with('propel')->begin()->
+    ))->
     check('sfSocialNotify', array(
-      'user_id'    => 5,
+      'user_id'    => $luigi->getId(),
       'model_name' => 'sfSocialEventInvite',
-      'model_id'   => 5,
+      'model_id'   => $lastEventInvite->getId() + 2,
       'is_read'    => false,
   ))->
   end()->
@@ -115,14 +131,13 @@
   end()->
   with('propel')->begin()->
     check('sfSocialNotify', array(
-      'user_id'    => 8,
+      'user_id'    => $max->getId(),
       'model_name' => 'sfSocialMessage',
-      'model_id'   => 3,
       'is_read'    => true,
-  ))->
+    ))->
   end()->
 
-  info('click on notify of request')->
+  info('click on notify of contact request')->
   get('/')->
   click('contact request')->
   with('request')->begin()->
@@ -136,14 +151,13 @@
   end()->
   with('propel')->begin()->
     check('sfSocialNotify', array(
-      'user_id'    => 8,
+      'user_id'    => $max->getId(),
       'model_name' => 'sfSocialContactRequest',
-      'model_id'   => 1,
       'is_read'    => true,
-  ))->
+    ))->
   end()->
 
-  info('click on notify of invite')->
+  info('click on notify of group invite')->
   get('/')->
   click('invite to join group webgrrls')->
   with('request')->begin()->
@@ -157,12 +171,11 @@
   end()->
   with('propel')->begin()->
     check('sfSocialNotify', array(
-      'user_id'    => 8,
+      'user_id'    => $max->getId(),
       'model_name' => 'sfSocialGroupInvite',
-      'model_id'   => 3,
+      #'model_id'   => 3,
       'is_read'    => true,
-  ))->
+    ))->
 
-
 end()
-;
+;
\ No newline at end of file

Modified: 
plugins/sfSocialPlugin/trunk/test/functional/sfSocialUserActionsTest.php
===================================================================
--- plugins/sfSocialPlugin/trunk/test/functional/sfSocialUserActionsTest.php    
2010-02-24 18:15:43 UTC (rev 28253)
+++ plugins/sfSocialPlugin/trunk/test/functional/sfSocialUserActionsTest.php    
2010-02-24 18:34:03 UTC (rev 28254)
@@ -6,6 +6,8 @@
 
 $browser->setTester('propel', 'sfTesterPropel');
 
+$max = sfGuardUserPeer::retrieveByUsername('max');
+
 $browser->
 
   doLogin()->
@@ -42,7 +44,8 @@
     'sex'            => 'Z',
     'picture'        => dirname(__FILE__) . '/../fixtures/image_too_big.png',
   )))->
-  with('form')->begin()->hasErrors(4)->
+  with('form')->begin()->
+    hasErrors(4)->
     isError('password', 'invalid')->
     isError('birthday', 'invalid')->
     isError('sex', 'invalid')->
@@ -55,17 +58,16 @@
     'location'   => 'Rome',
     'picture'    => dirname(__FILE__) . '/../fixtures/image_ok.png',
   )))->
-  with('form')->begin()->hasErrors(false)->
-  end()->
+  with('form')->hasErrors(false)->
   with('propel')->begin()->
     check('sfGuardUserProfile', array(
-      'user_id'    => 8,
+      'user_id'    => $max->getId(),
       'first_name' => 'Massimiliano',
       'birthday'   => '1974-04-01',
       'sex'        => 'M',
       'location'   => 'Rome',
       'picture'    => 'max.png',
-  ))->
+    ))->
   end()->
 
   info('profile of one of your contacts')->
@@ -103,6 +105,6 @@
   get('/user/danny/edit')->
   with('response')->begin()->
     isStatusCode(403)->
+
   end()
-
 ;
\ No newline at end of file

-- 
You received this message because you are subscribed to the Google Groups 
"symfony SVN" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/symfony-svn?hl=en.

Reply via email to