Exemple #1
0
 public function testCreate()
 {
     // Create new crash group
     $model = new CrashGroup();
     $model->project_id = 1;
     $model->appversion_id = 1;
     $model->title = 'Crash group title';
     $model->md5 = '12345678901234567890123456789012';
     // Save - should succeed
     $saved = $model->save();
     $this->assertTrue($saved);
     // Find created model
     $model = CrashGroup::model()->findByAttributes(array('title' => 'Crash group title'));
     // Ensure found
     $this->assertTrue($model != null);
 }
Exemple #2
0
 /**
  * This method looks for an existing crash group for the given crash report
  * and if the crash group doesn't exist, it creates a new one.
  * @return CrashGroup crash group model, or Null on error.
  */
 public function createCrashGroup()
 {
     // Get crash group title
     $crashGroupMD5 = "";
     $crashGroupTitle = $this->getCrashGroupTitle($crashGroupMD5);
     Yii::log('Crash group title = ' . $crashGroupTitle, 'info');
     Yii::log('Crash group MD5 = ' . $crashGroupMD5, 'info');
     $criteria = new CDbCriteria();
     $criteria->compare('project_id', $this->project_id);
     $criteria->compare('appversion_id', $this->appversion_id);
     $criteria->compare('md5', $crashGroupMD5);
     // Look for existing crash group
     $crashGroup = CrashGroup::model()->find($criteria);
     if ($crashGroup === Null) {
         // Not found, create new crash group
         // First check if such a title already presents
         $criteria = new CDbCriteria();
         $criteria->compare('project_id', $this->project_id);
         $criteria->compare('appversion_id', $this->appversion_id);
         $criteria->addSearchCondition('title', $crashGroupTitle);
         $count = CrashGroup::model()->count($criteria);
         if ($count != 0) {
             // Add suffix to the title to avoid similar group names
             $postfix = ' (' . ($count + 1) . ')';
             $crashGroupTitle .= $postfix;
         }
         // Create new crash group
         $crashGroup = new CrashGroup();
         $crashGroup->title = $crashGroupTitle;
         $crashGroup->md5 = $crashGroupMD5;
         $crashGroup->project_id = $this->project_id;
         $crashGroup->appversion_id = $this->appversion_id;
         if (!$crashGroup->save()) {
             // Error saving crash group record
             return Null;
         }
     }
     // Return crash group
     return $crashGroup;
 }