Esempio n. 1
0
 public function test_confirmed_registration()
 {
     // Fake notifications
     Notification::fake();
     // Set settings and get user instance
     $this->setSettings(['registration-enabled' => 'true', 'registration-confirmation' => 'true']);
     $user = factory(\BookStack\User::class)->make();
     // Go through registration process
     $this->visit('/register')->see('Sign Up')->type($user->name, '#name')->type($user->email, '#email')->type($user->password, '#password')->press('Create Account')->seePageIs('/register/confirm')->seeInDatabase('users', ['name' => $user->name, 'email' => $user->email, 'email_confirmed' => false]);
     // Ensure notification sent
     $dbUser = \BookStack\User::where('email', '=', $user->email)->first();
     Notification::assertSentTo($dbUser, ConfirmEmail::class);
     // Test access and resend confirmation email
     $this->login($user->email, $user->password)->seePageIs('/register/confirm/awaiting')->see('Resend')->visit('/books')->seePageIs('/register/confirm/awaiting')->press('Resend Confirmation Email');
     // Get confirmation and confirm notification matches
     $emailConfirmation = DB::table('email_confirmations')->where('user_id', '=', $dbUser->id)->first();
     Notification::assertSentTo($dbUser, ConfirmEmail::class, function ($notification, $channels) use($emailConfirmation) {
         return $notification->token === $emailConfirmation->token;
     });
     // Check confirmation email confirmation activation.
     $this->visit('/register/confirm/' . $emailConfirmation->token)->seePageIs('/')->see($user->name)->notSeeInDatabase('email_confirmations', ['token' => $emailConfirmation->token])->seeInDatabase('users', ['name' => $dbUser->name, 'email' => $dbUser->email, 'email_confirmed' => true]);
 }
Esempio n. 2
0
 /**
  * Get a user that's not a system user such as the guest user.
  */
 public function getNormalUser()
 {
     return \BookStack\User::where('system_name', '=', null)->get()->last();
 }