sarga/tests/Feature/Auth/AuthTest.php

125 lines
3.4 KiB
PHP
Raw Normal View History

<?php
namespace Tests\Feature;
use Tests\TestCase;
use Auth;
2019-02-23 10:43:24 +00:00
use Crypt;
use App;
use Faker\Generator as Faker;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Webkul\Customer\Repositories\CustomerRepository as Customer;
class AuthTest extends TestCase
{
protected $customer;
/**
* To check if the customer can view the login page or not
*
* @return void
*/
public function testCustomerLoginPage()
{
config(['app.url' => 'http://prashant.com']);
$response = $this->get('/customer/login');
$response->assertSuccessful();
$response->assertViewIs('shop::customers.session.index');
}
public function testCustomerResgistrationPage()
{
config(['app.url' => 'http://prashant.com']);
$response = $this->get('/customer/register');
$response->assertSuccessful();
$response->assertViewIs('shop::customers.signup.index');
}
public function testCustomerRegistration() {
$faker = \Faker\Factory::create();
$allCustomers = array();
$customers = app(Customer::class);
$created = $customers->create([
2019-02-23 10:43:24 +00:00
'first_name' => explode(' ', $faker->name)[0],
'last_name' => explode(' ', $faker->name)[0],
'channel_id' => core()->getCurrentChannel()->id,
'gender' => $faker->randomElement($array = array ('Male','Female', 'Other')),
'date_of_birth' => $faker->date($format = 'Y-m-d', $max = 'now'),
'email' => $faker->email,
'password' => bcrypt('12345678'),
'is_verified' => 1
]);
$this->assertEquals($created->id, $created->id);
}
public function testCustomerLogin()
{
config(['app.url' => 'http://prashant.com']);
2019-02-23 10:43:24 +00:00
$customers = app(Customer::class);
2019-07-10 08:03:00 +00:00
$customer = $customers->findOneByField('email', 'john@doe.net');
2019-02-23 10:43:24 +00:00
$response = $this->post('/customer/login', [
'email' => $customer->email,
'password' => '12345678'
]);
$response->assertRedirect('/customer/account/profile');
}
/**
* Test that customer cannot login with the wrong credentials.
*/
public function willNotLoginWithWrongCredentials()
{
$customers = app(Customer::class);
2019-07-10 08:03:00 +00:00
$customer = $customers->findOneByField('email', 'john@doe.net');
$response = $this->from(route('login'))->post(route('customer.session.create'),
[
'email' => $customer->email,
'password' => 'wrongpassword3428903mlndvsnljkvsd',
]);
$this->assertGuest();
}
/**
* Test to confirm that customer cannot login if user does not exist.
*/
public function willNotLoginWithNonexistingCustomer()
{
$response = $this->post(route('customer.session.create'), [
'email' => 'fiaiia9q2943jklq34h203qtb3o2@something.com',
'password' => 'wrong-password',
]);
$this->assertGuest();
}
/**
* To test that customer can logout
*/
public function allowsCustomerToLogout()
{
$customer = auth()->guard('customer')->user();
$this->get(route('customer.session.destroy'));
$this->assertGuest();
}
}