Skip to content

Commit

Permalink
Merge pull request #45 from jcummins/master
Browse files Browse the repository at this point in the history
Add UserController Valid Guest Registration test
  • Loading branch information
rydurham committed Dec 9, 2013
2 parents cb95485 + 13ca166 commit 1f426ce
Show file tree
Hide file tree
Showing 3 changed files with 152 additions and 23 deletions.
108 changes: 108 additions & 0 deletions app/config/testing/mail.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
<?php
return array(

/*
|--------------------------------------------------------------------------
| Mail Driver
|--------------------------------------------------------------------------
|
| Laravel supports both SMTP and PHP's "mail" function as drivers for the
| sending of e-mail. You may specify which one you're using throughout
| your application here. By default, Laravel is setup for SMTP mail.
|
| Supported: "smtp", "mail"
|
*/

'driver' => 'smtp',

/*
|--------------------------------------------------------------------------
| SMTP Host Address
|--------------------------------------------------------------------------
|
| Here you may provide the host address of the SMTP server used by your
| applications. A default option is provided that is compatible with
| the Postmark mail service, which will provide reliable delivery.
|
*/

'host' => 'smtp.mailgun.org',

/*
|--------------------------------------------------------------------------
| SMTP Host Port
|--------------------------------------------------------------------------
|
| This is the SMTP port used by your application to delivery e-mails to
| users of your application. Like the host we have set this value to
| stay compatible with the Postmark e-mail application by default.
|
*/

'port' => 587,

/*
|--------------------------------------------------------------------------
| Global "From" Address
|--------------------------------------------------------------------------
|
| You may wish for all e-mails sent by your application to be sent from
| the same address. Here, you may specify a name and address that is
| used globally for all e-mails that are sent by your application.
|
*/

'from' => array('address' => null, 'name' => null),

/*
|--------------------------------------------------------------------------
| E-Mail Encryption Protocol
|--------------------------------------------------------------------------
|
| Here you may specify the encryption protocol that should be used when
| the application send e-mail messages. A sensible default using the
| transport layer security protocol should provide great security.
|
*/

'encryption' => 'tls',

/*
|--------------------------------------------------------------------------
| SMTP Server Username
|--------------------------------------------------------------------------
|
| If your SMTP server requires a username for authentication, you should
| set it here. This will get used to authenticate with your server on
| connection. You may also set the "password" value below this one.
|
*/

'username' => null,

/*
|--------------------------------------------------------------------------
| SMTP Server Password
|--------------------------------------------------------------------------
|
| Here you may set the password required by your SMTP server to send out
| messages from your application. This will be given to the server on
| connection so that the application will be able to send messages.
|
*/

'password' => null,

/*
|--------------------------------------------------------------------------
| Pretend to email
|--------------------------------------------------------------------------
|
| In testing, we don't actually want to send emails. Instead, just pretend.
|
*/

'pretend' => true,

);
46 changes: 23 additions & 23 deletions app/controllers/UserController.php
Original file line number Diff line number Diff line change
Expand Up @@ -87,14 +87,14 @@ public function store()
if( $result['success'] )
{
Event::fire('user.signup', array(
'email' => $result['mailData']['email'],
'userId' => $result['mailData']['userId'],
'activationCode' => $result['mailData']['activationCode']
));
'email' => $result['mailData']['email'],
'userId' => $result['mailData']['userId'],
'activationCode' => $result['mailData']['activationCode']
));

// Success!
Session::flash('success', $result['message']);
return Redirect::to('/');
return Redirect::route('home');

} else {
Session::flash('error', $result['message']);
Expand Down Expand Up @@ -232,11 +232,11 @@ public function activate($id, $code)
{
// Success!
Session::flash('success', $result['message']);
return Redirect::to('/');
return Redirect::route('home');

} else {
Session::flash('error', $result['message']);
return Redirect::to('/');
return Redirect::route('home');
}
}

Expand All @@ -252,14 +252,14 @@ public function resend()
if( $result['success'] )
{
Event::fire('user.resend', array(
'email' => $result['mailData']['email'],
'userId' => $result['mailData']['userId'],
'activationCode' => $result['mailData']['activationCode']
));
'email' => $result['mailData']['email'],
'userId' => $result['mailData']['userId'],
'activationCode' => $result['mailData']['activationCode']
));

// Success!
Session::flash('success', $result['message']);
return Redirect::to('/');
return Redirect::route('home');
}
else
{
Expand All @@ -282,14 +282,14 @@ public function forgot()
if( $result['success'] )
{
Event::fire('user.forgot', array(
'email' => $result['mailData']['email'],
'userId' => $result['mailData']['userId'],
'resetCode' => $result['mailData']['resetCode']
));
'email' => $result['mailData']['email'],
'userId' => $result['mailData']['userId'],
'resetCode' => $result['mailData']['resetCode']
));

// Success!
Session::flash('success', $result['message']);
return Redirect::to('/');
return Redirect::route('home');
}
else
{
Expand Down Expand Up @@ -320,17 +320,17 @@ public function reset($id, $code)
if( $result['success'] )
{
Event::fire('user.newpassword', array(
'email' => $result['mailData']['email'],
'newPassword' => $result['mailData']['newPassword']
));
'email' => $result['mailData']['email'],
'newPassword' => $result['mailData']['newPassword']
));

// Success!
Session::flash('success', $result['message']);
return Redirect::to('/');
return Redirect::route('home');

} else {
Session::flash('error', $result['message']);
return Redirect::to('/');
return Redirect::route('home');
}
}

Expand Down Expand Up @@ -358,7 +358,7 @@ public function change($id)
{
// Success!
Session::flash('success', $result['message']);
return Redirect::to('/');
return Redirect::route('home');
}
else
{
Expand Down
21 changes: 21 additions & 0 deletions app/tests/UserControllerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -304,4 +304,25 @@ public function testUserControllerStoreInvalidBlankInputAsAdmin()
$this->assertSessionHasErrors();
}

public function testUserControllerStoreValidAsGuest()
{
$this->beGuest();
Input::replace($input = array(
'IgnoreCSRFTokenError' => true,
'email' => 'test@test.com',
'password' => 'testtest',
'password_confirmation' => 'testtest'
));

$userSignupEventFired = false;
Event::listen('user.signup', function() use (&$userSignupEventFired) {
$userSignupEventFired = true;
});

$this->call('post', URL::action('UserController@store'), $input);

$this->assertTrue($userSignupEventFired, 'The user.signup event never fired during UserController@store');
$this->assertRedirectedToRoute('home');
}

}

0 comments on commit 1f426ce

Please sign in to comment.