60 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			60 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								declare(strict_types=1);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace Drupal\FunctionalTests;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use Drupal\Tests\BrowserTestBase;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Tests User related helper methods of BrowserTestBase.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @group browsertestbase
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								class UserHelpersTest extends BrowserTestBase {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * {@inheritdoc}
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  protected $defaultTheme = 'stark';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Tests BrowserTestBase::drupalUserIsLoggedIn().
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  public function testDrupalUserIsLoggedIn(): void {
							 | 
						||
| 
								 | 
							
								    $first_user = $this->drupalCreateUser();
							 | 
						||
| 
								 | 
							
								    $second_user = $this->drupalCreateUser();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // After logging in, the first user should be logged in, the second not.
							 | 
						||
| 
								 | 
							
								    $this->drupalLogin($first_user);
							 | 
						||
| 
								 | 
							
								    $this->assertTrue($this->drupalUserIsLoggedIn($first_user));
							 | 
						||
| 
								 | 
							
								    $this->assertFalse($this->drupalUserIsLoggedIn($second_user));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // Verify that logged in state is retained across pages.
							 | 
						||
| 
								 | 
							
								    $this->drupalGet('');
							 | 
						||
| 
								 | 
							
								    $this->assertTrue($this->drupalUserIsLoggedIn($first_user));
							 | 
						||
| 
								 | 
							
								    $this->assertFalse($this->drupalUserIsLoggedIn($second_user));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // After logging out, both users should be logged out.
							 | 
						||
| 
								 | 
							
								    $this->drupalLogout();
							 | 
						||
| 
								 | 
							
								    $this->assertFalse($this->drupalUserIsLoggedIn($first_user));
							 | 
						||
| 
								 | 
							
								    $this->assertFalse($this->drupalUserIsLoggedIn($second_user));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // After logging back in, the second user should still be logged out.
							 | 
						||
| 
								 | 
							
								    $this->drupalLogin($first_user);
							 | 
						||
| 
								 | 
							
								    $this->assertTrue($this->drupalUserIsLoggedIn($first_user));
							 | 
						||
| 
								 | 
							
								    $this->assertFalse($this->drupalUserIsLoggedIn($second_user));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // After logging in the second user, the first one should be logged out.
							 | 
						||
| 
								 | 
							
								    $this->drupalLogin($second_user);
							 | 
						||
| 
								 | 
							
								    $this->assertTrue($this->drupalUserIsLoggedIn($second_user));
							 | 
						||
| 
								 | 
							
								    $this->assertFalse($this->drupalUserIsLoggedIn($first_user));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // After logging out, both should be logged out.
							 | 
						||
| 
								 | 
							
								    $this->drupalLogout();
							 | 
						||
| 
								 | 
							
								    $this->assertFalse($this->drupalUserIsLoggedIn($first_user));
							 | 
						||
| 
								 | 
							
								    $this->assertFalse($this->drupalUserIsLoggedIn($second_user));
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |