/**
  * @param array $contactData
  */
 public function submit(array $contactData)
 {
     $contactForm = new ContactForm();
     foreach ($contactData as $field => $value) {
         $inputType = $field === 'body' ? 'textarea' : 'input';
         $this->actor->fillField($inputType . '[name="' . $contactForm->formName() . '[' . $field . ']"]', $value);
     }
     $this->actor->click('contact-button');
 }
 public function testContact()
 {
     $model = new ContactForm();
     $model->attributes = ['name' => 'Tester', 'email' => '*****@*****.**', 'subject' => 'very important letter subject', 'body' => 'body of current message', 'verifyCode' => 'testme'];
     expect('no validation errors', $model->send())->true();
     $this->specify('email should be send', function () {
         expect('email file should exist', file_exists($this->getMessageFile()))->true();
     });
     $this->specify('message should contain correct data', function () use($model) {
         $emailMessage = file_get_contents($this->getMessageFile());
         expect('email should contain user name', $emailMessage)->contains($model->name);
         expect('email should contain sender email', $emailMessage)->contains($model->email);
         expect('email should contain subject', $emailMessage)->contains($model->subject);
         expect('email should contain body', $emailMessage)->contains($model->body);
     });
 }
 /**
  * Displays contact page.
  * @return mixed response
  */
 public function actionContact()
 {
     $model = new ContactForm();
     if ($model->load(Yii::$app->request->post()) && $model->send()) {
         Yii::$app->session->setFlash('success', Yii::t('help', 'Thank you for contacting us. We will respond to you as soon as possible.'));
         return $this->refresh();
     } else {
         $webUser = Yii::$app->user;
         if (!$webUser->isGuest) {
             /* @var $identity \app\models\db\User */
             $identity = $webUser->identity;
             $model->email = $identity->email;
             $model->name = $identity->username;
         }
     }
     return $this->render('contact', ['model' => $model]);
 }