mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-05 04:03:26 +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)
|
public function updatePassword(\User $user, $password)
|
||||||
{
|
{
|
||||||
$password = \Hash::make($password);
|
|
||||||
/** @noinspection PhpUndefinedFieldInspection */
|
/** @noinspection PhpUndefinedFieldInspection */
|
||||||
$user->password = $password;
|
$user->password = $password;
|
||||||
/** @noinspection PhpUndefinedMethodInspection */
|
/** @noinspection PhpUndefinedMethodInspection */
|
||||||
|
@@ -10,19 +10,19 @@ use LaravelBook\Ardent\Ardent;
|
|||||||
/**
|
/**
|
||||||
* User
|
* User
|
||||||
*
|
*
|
||||||
* @property integer $id
|
* @property integer $id
|
||||||
* @property \Carbon\Carbon $created_at
|
* @property \Carbon\Carbon $created_at
|
||||||
* @property \Carbon\Carbon $updated_at
|
* @property \Carbon\Carbon $updated_at
|
||||||
* @property string $email
|
* @property string $email
|
||||||
* @property string $password
|
* @property string $password
|
||||||
* @property string $reset
|
* @property string $reset
|
||||||
* @property string $remember_token
|
* @property string $remember_token
|
||||||
* @property boolean $migrated
|
* @property boolean $migrated
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Account[] $accounts
|
* @property-read \Illuminate\Database\Eloquent\Collection|\Account[] $accounts
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Preference[] $preferences
|
* @property-read \Illuminate\Database\Eloquent\Collection|\Preference[] $preferences
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Component[] $components
|
* @property-read \Illuminate\Database\Eloquent\Collection|\Component[] $components
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Budget[] $budgets
|
* @property-read \Illuminate\Database\Eloquent\Collection|\Budget[] $budgets
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Category[] $categories
|
* @property-read \Illuminate\Database\Eloquent\Collection|\Category[] $categories
|
||||||
* @method static \Illuminate\Database\Query\Builder|\User whereId($value)
|
* @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 whereCreatedAt($value)
|
||||||
* @method static \Illuminate\Database\Query\Builder|\User whereUpdatedAt($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 whereReset($value)
|
||||||
* @method static \Illuminate\Database\Query\Builder|\User whereRememberToken($value)
|
* @method static \Illuminate\Database\Query\Builder|\User whereRememberToken($value)
|
||||||
* @method static \Illuminate\Database\Query\Builder|\User whereMigrated($value)
|
* @method static \Illuminate\Database\Query\Builder|\User whereMigrated($value)
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection|\TransactionJournal[] $transactionjournals
|
* @property-read \Illuminate\Database\Eloquent\Collection|\TransactionJournal[] $transactionjournals
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection|\Piggybank[] $piggybanks
|
* @property-read \Illuminate\Database\Eloquent\Collection|\Piggybank[] $piggybanks
|
||||||
* @property-read \Illuminate\Database\Eloquent\Collection|\RecurringTransaction[] $recurringtransactions
|
* @property-read \Illuminate\Database\Eloquent\Collection|\RecurringTransaction[] $recurringtransactions
|
||||||
*/
|
*/
|
||||||
class User extends Ardent implements UserInterface, RemindableInterface
|
class User extends Ardent implements UserInterface, RemindableInterface
|
||||||
@@ -48,14 +48,6 @@ class User extends Ardent implements UserInterface, RemindableInterface
|
|||||||
'password' => 'required|between:60,60',
|
'password' => 'required|between:60,60',
|
||||||
'reset' => 'between:32,32',
|
'reset' => 'between:32,32',
|
||||||
];
|
];
|
||||||
|
|
||||||
public static $factory
|
|
||||||
= [
|
|
||||||
'email' => 'email',
|
|
||||||
'password' => 'string|60',
|
|
||||||
'migrated' => '0'
|
|
||||||
|
|
||||||
];
|
|
||||||
/**
|
/**
|
||||||
* The database table used by the model.
|
* The database table used by the model.
|
||||||
*
|
*
|
||||||
@@ -69,31 +61,21 @@ class User extends Ardent implements UserInterface, RemindableInterface
|
|||||||
*/
|
*/
|
||||||
protected $hidden = ['remember_token'];
|
protected $hidden = ['remember_token'];
|
||||||
|
|
||||||
|
public static function factory()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'email' => 'email',
|
||||||
|
'password' => 'sander',
|
||||||
|
'migrated' => '0'
|
||||||
|
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
public function accounts()
|
public function accounts()
|
||||||
{
|
{
|
||||||
return $this->hasMany('Account');
|
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()
|
public function budgets()
|
||||||
{
|
{
|
||||||
return $this->hasMany('Budget');
|
return $this->hasMany('Budget');
|
||||||
@@ -104,6 +86,31 @@ class User extends Ardent implements UserInterface, RemindableInterface
|
|||||||
return $this->hasMany('Category');
|
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()
|
public function transactionjournals()
|
||||||
{
|
{
|
||||||
return $this->hasMany('TransactionJournal');
|
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