/** * Insertamos un usuario en la base de datos * * @return void * @group insert */ public function testInsertUser() { $this->notSeeInDatabase('users', ['email' => '*****@*****.**']); $userModel = new UserModel(); $traveler = new Traveler(); $traveler->setEmail('*****@*****.**'); $traveler->setAdmin(false); $traveler->setPassword('123456'); $traveler->setName('Javier'); $traveler->setOwner(false); $traveler->setPhone('654321987'); $traveler->setSurname('Comino'); $userModel->createUser($traveler); $this->seeInDatabase('users', ['email' => '*****@*****.**']); $traveler2 = new Traveler(); $traveler2->setEmail('*****@*****.**'); $traveler2->setAdmin(false); $traveler2->setPassword('123456'); $traveler2->setName('Javi Missed'); $traveler2->setOwner(false); $traveler2->setPhone('654321987'); $traveler2->setSurname('Vera'); $userModel->createUser($traveler2); $this->notSeeInDatabase('users', ['name' => 'Javi Missed']); }
/** *Recibe los campos del usuario por parámetro y los valida. Si la validación es incorrecta, le redirige a la página * de registro indicándole los errores pertinente. Si es válida, intenta registrar al usuario. Si el email introducido ya * existe, se le vuelve a redirigir a la página de registro. En caso contrario, se inserta al usuario y se le loguea. * * @param Request $request * @return Response */ public function register(Request $request) { $messages = ['email.required' => 'El email es obligatorio', 'name.required' => 'El nombre es obligatorio', 'surname.required' => 'Los apellidos son obligatorios', 'password.required' => 'La contraseña es obligatoria', 'phone.required' => 'El teléfono es obligatorio', 'email.email' => 'El email introducido no es correcto', 'password.regex' => 'La contraseña introducida no es correcta. Debe tener un mínimo de 6 caractares, y un máximo de 15. Debe empezar por una letra, y solo puede ser alfanumérica', 'name.regex' => 'El nombre solo puede contener letras', 'surname.regex' => 'Los apellidos solo puede contener letras', 'digits' => 'El teléfono solo puede contener números, y debe ser correcto']; $validator = Validator::make($request->all(), ['name' => 'required|regex:/^[A-Z]+[a-zA-ZÁÉÍÓÚáéíóuñÑ\\s\']+$/', 'surname' => 'required|regex:/^[A-Z]+[a-zA-ZÁÉÍÓÚáéíóuñÑ\\s\']+$/', 'email' => 'required|email', 'password' => 'required|regex:[^[a-zA-Z]\\w{5,14}$]', 'phone' => 'required|digits:9'], $messages); if ($validator->fails()) { return redirect('/register')->withErrors($validator)->withInput(); } else { $user = null; if ($request->input('owner')) { $user = new Owner(); } else { $user = new Traveler(); } $user->setName($request->input('name')); $user->setSurname($request->input('surname')); $user->setEmail($request->input('email')); $user->setPassword($request->input('password')); $user->setPhone($request->input('phone')); if ($request->input('owner') != null) { $user->setOwner($request->input('owner')); } $uModel = new UserModel(); $uCreated = $uModel->createUser($user); if ($uCreated != null) { Auth::login($uCreated); flash()->overlay('Su cuenta en Alojarural ha sido creada correctamente..', 'Bienvenido'); if (!Auth::user()->admin && !Auth::user()->owner) { return redirect()->intended('/manage/traveler'); } else { return redirect()->intended('/manage/owner'); } } return redirect('/register')->withErrors(['email' => 'El email introducido ya se encuentra registrado'])->withInput(); } }
/** * Escenario: Login ya realizado * Dado que soy un usuario del sistema y ya estoy logueado * Cuando intento acceder de nuevo a la página del login * Entonces debo ser redireccionado a la página Home * * @return void * @group userAcceptance * @test */ public function try_visit_login_page_once_authenticated() { $userModel = new UserModel(); $traveler = new Traveler(); $traveler->setEmail('*****@*****.**'); $traveler->setAdmin(false); $traveler->setPassword('123456'); $traveler->setName('Traveler'); $traveler->setOwner(false); $traveler->setPhone('654321987'); $traveler->setSurname('Apellido2'); $userModel->createUser($traveler); $this->visit('/login')->type('*****@*****.**', 'email')->type('123456', 'password')->press('btn-login')->seePageIs('/manage/traveler')->visit('login')->seePageIs('/home'); }
/** * A basic functional test example. * * @return void * @group modelo */ public function testCreate() { $userModel = new UserModel(); $admin = new Admin(); $traveler = new Traveler(); $owner = new Owner(); $admin->setName('Admin'); $admin->setEmail('*****@*****.**'); $admin->setPassword("123456"); $owner->setEmail('*****@*****.**'); $owner->setAdmin(false); $owner->setPassword('123456'); $owner->setName('Owner'); $owner->setOwner(true); $owner->setPhone('654321987'); $owner->setSurname('Apellido'); $traveler->setEmail('*****@*****.**'); $traveler->setAdmin(false); $traveler->setPassword('123456'); $traveler->setName('Traveler'); $traveler->setOwner(false); $traveler->setPhone('654321987'); $traveler->setSurname('Apellido2'); //$ok= $userModel->createUser($admin); $this->assertNotEquals(null, $userModel->createUser($admin)); $this->assertEquals(null, $userModel->createUser($admin)); $this->assertNotEquals(null, $userModel->createUser($traveler)); $this->assertEquals(null, $userModel->createUser($traveler)); $this->assertNotEquals(null, $userModel->createUser($owner)); $this->assertEquals(null, $userModel->createUser($owner)); }