mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-04 19:53:44 +00:00
More tests; profile controller.
This commit is contained in:
@@ -84,7 +84,6 @@ class EloquentUserRepository implements UserRepositoryInterface
|
||||
*/
|
||||
public function updatePassword(\User $user, $password)
|
||||
{
|
||||
$password = \Hash::make($password);
|
||||
/** @noinspection PhpUndefinedFieldInspection */
|
||||
$user->password = $password;
|
||||
/** @noinspection PhpUndefinedMethodInspection */
|
||||
|
@@ -10,19 +10,19 @@ use LaravelBook\Ardent\Ardent;
|
||||
/**
|
||||
* User
|
||||
*
|
||||
* @property integer $id
|
||||
* @property \Carbon\Carbon $created_at
|
||||
* @property \Carbon\Carbon $updated_at
|
||||
* @property string $email
|
||||
* @property string $password
|
||||
* @property string $reset
|
||||
* @property string $remember_token
|
||||
* @property boolean $migrated
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Account[] $accounts
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Preference[] $preferences
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Component[] $components
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Budget[] $budgets
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Category[] $categories
|
||||
* @property integer $id
|
||||
* @property \Carbon\Carbon $created_at
|
||||
* @property \Carbon\Carbon $updated_at
|
||||
* @property string $email
|
||||
* @property string $password
|
||||
* @property string $reset
|
||||
* @property string $remember_token
|
||||
* @property boolean $migrated
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Account[] $accounts
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Preference[] $preferences
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Component[] $components
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Budget[] $budgets
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Category[] $categories
|
||||
* @method static \Illuminate\Database\Query\Builder|\User whereId($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\User whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\User whereUpdatedAt($value)
|
||||
@@ -31,8 +31,8 @@ use LaravelBook\Ardent\Ardent;
|
||||
* @method static \Illuminate\Database\Query\Builder|\User whereReset($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\User whereRememberToken($value)
|
||||
* @method static \Illuminate\Database\Query\Builder|\User whereMigrated($value)
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\TransactionJournal[] $transactionjournals
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Piggybank[] $piggybanks
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\TransactionJournal[] $transactionjournals
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Piggybank[] $piggybanks
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\RecurringTransaction[] $recurringtransactions
|
||||
*/
|
||||
class User extends Ardent implements UserInterface, RemindableInterface
|
||||
@@ -48,14 +48,6 @@ class User extends Ardent implements UserInterface, RemindableInterface
|
||||
'password' => 'required|between:60,60',
|
||||
'reset' => 'between:32,32',
|
||||
];
|
||||
|
||||
public static $factory
|
||||
= [
|
||||
'email' => 'email',
|
||||
'password' => 'string|60',
|
||||
'migrated' => '0'
|
||||
|
||||
];
|
||||
/**
|
||||
* The database table used by the model.
|
||||
*
|
||||
@@ -69,31 +61,21 @@ class User extends Ardent implements UserInterface, RemindableInterface
|
||||
*/
|
||||
protected $hidden = ['remember_token'];
|
||||
|
||||
public static function factory()
|
||||
{
|
||||
return [
|
||||
'email' => 'email',
|
||||
'password' => 'sander',
|
||||
'migrated' => '0'
|
||||
|
||||
];
|
||||
}
|
||||
|
||||
public function accounts()
|
||||
{
|
||||
return $this->hasMany('Account');
|
||||
}
|
||||
|
||||
public function recurringtransactions()
|
||||
{
|
||||
return $this->hasMany('RecurringTransaction');
|
||||
}
|
||||
|
||||
public function piggybanks()
|
||||
{
|
||||
return $this->hasMany('Piggybank');
|
||||
}
|
||||
|
||||
public function preferences()
|
||||
{
|
||||
return $this->hasMany('Preference');
|
||||
}
|
||||
|
||||
public function components()
|
||||
{
|
||||
return $this->hasMany('Component');
|
||||
}
|
||||
|
||||
public function budgets()
|
||||
{
|
||||
return $this->hasMany('Budget');
|
||||
@@ -104,6 +86,31 @@ class User extends Ardent implements UserInterface, RemindableInterface
|
||||
return $this->hasMany('Category');
|
||||
}
|
||||
|
||||
public function components()
|
||||
{
|
||||
return $this->hasMany('Component');
|
||||
}
|
||||
|
||||
public function piggybanks()
|
||||
{
|
||||
return $this->hasMany('Piggybank');
|
||||
}
|
||||
|
||||
public function preferences()
|
||||
{
|
||||
return $this->hasMany('Preference');
|
||||
}
|
||||
|
||||
public function recurringtransactions()
|
||||
{
|
||||
return $this->hasMany('RecurringTransaction');
|
||||
}
|
||||
|
||||
public function setPasswordAttribute($value)
|
||||
{
|
||||
$this->attributes['password'] = Hash::make($value);
|
||||
}
|
||||
|
||||
public function transactionjournals()
|
||||
{
|
||||
return $this->hasMany('TransactionJournal');
|
||||
|
129
app/tests/controllers/ProfileControllerTest.php
Normal file
129
app/tests/controllers/ProfileControllerTest.php
Normal file
@@ -0,0 +1,129 @@
|
||||
<?php
|
||||
use Mockery as m;
|
||||
use Zizaco\FactoryMuff\Facade\FactoryMuff as f;
|
||||
|
||||
/**
|
||||
* Class ProfileControllerTest
|
||||
*/
|
||||
class ProfileControllerTest extends TestCase
|
||||
{
|
||||
protected $_user;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
Artisan::call('migrate');
|
||||
Artisan::call('db:seed');
|
||||
$this->_user = m::mock('User', 'Eloquent');
|
||||
|
||||
}
|
||||
|
||||
public function tearDown()
|
||||
{
|
||||
m::close();
|
||||
}
|
||||
|
||||
|
||||
public function testChangePassword()
|
||||
{
|
||||
// for binding
|
||||
Auth::shouldReceive('user')->andReturn($this->_user);
|
||||
Auth::shouldReceive('check')->andReturn(true);
|
||||
$this->_user->shouldReceive('getAttribute')->with('id')->andReturn($this->_user->id);
|
||||
$this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email');
|
||||
|
||||
$this->action('GET', 'ProfileController@changePassword');
|
||||
$this->assertResponseOk();
|
||||
}
|
||||
|
||||
public function testIndex()
|
||||
{
|
||||
// for binding
|
||||
Auth::shouldReceive('user')->andReturn($this->_user);
|
||||
Auth::shouldReceive('check')->andReturn(true);
|
||||
$this->_user->shouldReceive('getAttribute')->with('id')->andReturn($this->_user->id);
|
||||
$this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email');
|
||||
|
||||
$this->action('GET', 'ProfileController@index');
|
||||
$this->assertResponseOk();
|
||||
}
|
||||
|
||||
public function testPostChangePasswordDifferentNew()
|
||||
{
|
||||
$user = f::create('User');
|
||||
// for binding
|
||||
Auth::shouldReceive('user')->andReturn($user);
|
||||
Auth::shouldReceive('check')->andReturn(true);
|
||||
$this->_user->shouldReceive('getAttribute')->with('id')->andReturn($user->id);
|
||||
$this->_user->shouldReceive('getAttribute')->with('email')->andReturn($user->email);
|
||||
$this->_user->shouldReceive('getAttribute')->with('password')->andReturn($user->password);
|
||||
|
||||
$this->action(
|
||||
'POST', 'ProfileController@postChangePassword',
|
||||
['old' => 'sander', 'new1' => 'sander1', 'new2' => 'sander2']
|
||||
);
|
||||
$this->assertResponseOk();
|
||||
}
|
||||
|
||||
public function testPostChangePasswordOK()
|
||||
{
|
||||
$user = f::create('User');
|
||||
// for binding
|
||||
Auth::shouldReceive('user')->andReturn($user);
|
||||
Auth::shouldReceive('check')->andReturn(true);
|
||||
$this->_user->shouldReceive('getAttribute')->with('id')->andReturn($user->id);
|
||||
$this->_user->shouldReceive('getAttribute')->with('email')->andReturn($user->email);
|
||||
$this->_user->shouldReceive('getAttribute')->with('password')->andReturn($user->password);
|
||||
|
||||
$this->action(
|
||||
'POST', 'ProfileController@postChangePassword',
|
||||
['old' => 'sander', 'new1' => 'sander2', 'new2' => 'sander2']
|
||||
);
|
||||
$this->assertResponseStatus(302);
|
||||
}
|
||||
|
||||
|
||||
public function testPostChangePasswordNoCurrent()
|
||||
{
|
||||
// for binding
|
||||
Auth::shouldReceive('user')->andReturn($this->_user);
|
||||
Auth::shouldReceive('check')->andReturn(true);
|
||||
$this->_user->shouldReceive('getAttribute')->with('id')->andReturn($this->_user->id);
|
||||
$this->_user->shouldReceive('getAttribute')->with('email')->andReturn('some@email');
|
||||
$this->_user->shouldReceive('getAttribute')->with('password')->andReturn('Blablabla');
|
||||
|
||||
$this->action('POST', 'ProfileController@postChangePassword');
|
||||
$this->assertResponseOk();
|
||||
}
|
||||
|
||||
public function testPostChangePasswordNoMatchNew()
|
||||
{
|
||||
$user = f::create('User');
|
||||
// for binding
|
||||
Auth::shouldReceive('user')->andReturn($user);
|
||||
Auth::shouldReceive('check')->andReturn(true);
|
||||
$this->_user->shouldReceive('getAttribute')->with('id')->andReturn($user->id);
|
||||
$this->_user->shouldReceive('getAttribute')->with('email')->andReturn($user->email);
|
||||
$this->_user->shouldReceive('getAttribute')->with('password')->andReturn($user->password);
|
||||
|
||||
$this->action(
|
||||
'POST', 'ProfileController@postChangePassword', ['old' => 'sander', 'new1' => 'sander', 'new2' => 'sander']
|
||||
);
|
||||
$this->assertResponseOk();
|
||||
}
|
||||
|
||||
public function testPostChangePasswordSame()
|
||||
{
|
||||
$user = f::create('User');
|
||||
// for binding
|
||||
Auth::shouldReceive('user')->andReturn($user);
|
||||
Auth::shouldReceive('check')->andReturn(true);
|
||||
$this->_user->shouldReceive('getAttribute')->with('id')->andReturn($user->id);
|
||||
$this->_user->shouldReceive('getAttribute')->with('email')->andReturn($user->email);
|
||||
$this->_user->shouldReceive('getAttribute')->with('password')->andReturn($user->password);
|
||||
|
||||
$this->action('POST', 'ProfileController@postChangePassword', ['old' => 'sander']);
|
||||
$this->assertResponseOk();
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user