Ejemplo n.º 1
0
 /**
  * @covers FrmDb::migrate_to_17
  */
 function test_migrate_from_12_to_17()
 {
     $this->frm_install();
     update_option('frm_db_version', 12);
     $form = FrmForm::getOne('contact-db12');
     $this->assertNotEmpty($form);
     $this->assertTrue(is_numeric($form->id));
     $notification = array(0 => array('email_to' => '*****@*****.**', 'also_email_to' => array(1, 2), 'reply_to' => '*****@*****.**', 'reply_to_name' => 'Reply to me', 'cust_reply_to' => '', 'cust_reply_to_name' => '', 'plain_text' => 1, 'email_message' => 'This is my email message. [default-message]', 'email_subject' => 'The subject', 'update_email' => 2, 'inc_user_info' => 1));
     $form->options['notification'] = $notification;
     global $wpdb;
     $updated = $wpdb->update($wpdb->prefix . 'frm_forms', array('options' => maybe_serialize($form->options)), array('id' => $form->id));
     FrmForm::clear_form_cache();
     $this->assertEquals($updated, 1);
     $form = FrmForm::getOne('contact-db12');
     $this->assertNotEmpty($form->options, 'The form settings are empty');
     $this->assertTrue(isset($form->options['notification']), 'The old notification settings are missing');
     $this->assertEquals($form->options['notification'][0]['email_to'], '*****@*****.**');
     // migrate data
     FrmAppController::install();
     $form_actions = FrmFormAction::get_action_for_form($form->id, 'email');
     foreach ($form_actions as $action) {
         $this->assertTrue(strpos($action->post_content['email_to'], '*****@*****.**') !== false);
     }
 }
 /**
  * Migrate settings from form->options into new action.
  */
 public function migrate_to_2($form, $update = 'update')
 {
     $action = $this->prepare_new($form->id);
     $form->options = maybe_unserialize($form->options);
     // fill with existing options
     foreach ($action->post_content as $name => $val) {
         if (isset($form->options[$name])) {
             $action->post_content[$name] = $form->options[$name];
             unset($form->options[$name]);
         }
     }
     $action = $this->migrate_values($action, $form);
     // check if action already exists
     $post_id = get_posts(array('name' => $action->post_name, 'post_type' => FrmFormActionsController::$action_post_type, 'post_status' => $action->post_status, 'numberposts' => 1));
     if (empty($post_id)) {
         // create action now
         $post_id = $this->save_settings($action);
     }
     if ($post_id && 'update' == $update) {
         global $wpdb;
         $form->options = maybe_serialize($form->options);
         // update form options
         $wpdb->update($wpdb->prefix . 'frm_forms', array('options' => $form->options), array('id' => $form->id));
         FrmForm::clear_form_cache();
     }
     return $post_id;
 }