class TokenTest in Lightweight Directory Access Protocol (LDAP) 8.4
@coversDefaultClass \Drupal\ldap_servers\Processor\TokenProcessor @group ldap
Hierarchy
- class \Drupal\Tests\UnitTestCase extends \PHPUnit\Framework\TestCase uses PhpunitCompatibilityTrait- class \Drupal\Tests\ldap_servers\Unit\TokenTest
 
Expanded class hierarchy of TokenTest
File
- ldap_servers/tests/ src/ Unit/ TokenTest.php, line 16 
Namespace
Drupal\Tests\ldap_servers\UnitView source
class TokenTest extends UnitTestCase {
  /**
   * LDAP Entry.
   *
   * @var \Symfony\Component\Ldap\Entry
   */
  private $ldapEntry;
  /**
   * TokenProcessor.
   *
   * @var \Drupal\ldap_servers\Processor\TokenProcessor
   */
  private $processor;
  /**
   * Test setup.
   */
  protected function setUp() : void {
    parent::setUp();
    $this->ldapEntry = new Entry('cn=hpotter,ou=Gryffindor,ou=student,ou=people,dc=hogwarts,dc=edu', [
      'mail' => [
        'hpotter@hogwarts.edu',
      ],
      'sAMAccountName' => [
        'hpotter',
      ],
      'house' => [
        'Gryffindor',
        'Privet Drive',
      ],
      'guid' => [
        'sdafsdfsdf',
      ],
    ]);
    $this->processor = $this
      ->getMockBuilder(TokenProcessor::class)
      ->setMethods(NULL)
      ->disableOriginalConstructor()
      ->getMock();
  }
  /**
   * Test the replacement of tokens.
   *
   * See http://drupal.org/node/1245736 for test tokens.
   */
  public function testTokenReplacement() : void {
    $literalValue = $this->processor
      ->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, 'literalvalue');
    self::assertEquals('literalvalue', $literalValue);
    $dn = $this->processor
      ->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[dn]');
    self::assertEquals($this->ldapEntry
      ->getDn(), $dn);
    $house0 = $this->processor
      ->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[house:0]');
    self::assertEquals('Gryffindor', $house0);
    $house_noindex = $this->processor
      ->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[house]');
    self::assertEquals('Gryffindor', $house_noindex);
    $houseLast = $this->processor
      ->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[house:last]');
    self::assertEquals('Privet Drive', $houseLast);
    $mixed = $this->processor
      ->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, 'thisold[house:0]');
    self::assertEquals('thisoldGryffindor', $mixed);
    $compound = $this->processor
      ->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[sAMAccountName:0][house:0]');
    self::assertEquals('hpotterGryffindor', $compound);
  }
  /**
   * Test case sensitive issues.
   */
  public function testTokenReplacementCaseSensitivity() : void {
    $sAMAccountName = $this->processor
      ->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[samaccountname:0]');
    self::assertEquals('hpotter', $sAMAccountName);
    $sAMAccountNameMixedCase = $this->processor
      ->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[sAMAccountName:0]');
    self::assertEquals('hpotter', $sAMAccountNameMixedCase);
    $sAMAccountName2 = $this->processor
      ->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[samaccountname]');
    self::assertEquals('hpotter', $sAMAccountName2);
    $sAMAccountName3 = $this->processor
      ->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[sAMAccountName]');
    self::assertEquals('hpotter', $sAMAccountName3);
  }
  /**
   * Test binary conversion.
   */
  public function testBinaryConversion() : void {
    $base64encode = $this->processor
      ->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[guid;base64_encode]');
    self::assertEquals(base64_encode('sdafsdfsdf'), $base64encode);
    $bin2hex = $this->processor
      ->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[guid;bin2hex]');
    self::assertEquals(bin2hex('sdafsdfsdf'), $bin2hex);
    $msguid = $this->processor
      ->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[guid;msguid]');
    self::assertEquals(ConversionHelper::convertMsguidToString('sdafsdfsdf'), $msguid);
    $binary = $this->processor
      ->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[guid;binary]');
    self::assertEquals(bin2hex('sdafsdfsdf'), $binary);
  }
  /**
   * Test reversal.
   */
  public function testReversal() : void {
    // Test regular reversal (2 elements) at beginning.
    $dc = $this->processor
      ->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[dc:reverse:0]');
    self::assertEquals('edu', $dc);
    // Test single element reversion.
    $ou = $this->processor
      ->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[cn:reverse:0]');
    self::assertEquals('hpotter', $ou);
    // Test 3 element reversion at end.
    $ou2 = $this->processor
      ->ldapEntryReplacementsForDrupalAccount($this->ldapEntry, '[ou:reverse:2]');
    self::assertEquals('Gryffindor', $ou2);
  }
}Members
| Name   | Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| PhpunitCompatibilityTrait:: | public | function | Returns a mock object for the specified class using the available method. | |
| PhpunitCompatibilityTrait:: | public | function | Compatibility layer for PHPUnit 6 to support PHPUnit 4 code. | |
| TokenTest:: | private | property | LDAP Entry. | |
| TokenTest:: | private | property | TokenProcessor. | |
| TokenTest:: | protected | function | Test setup. Overrides UnitTestCase:: | |
| TokenTest:: | public | function | Test binary conversion. | |
| TokenTest:: | public | function | Test reversal. | |
| TokenTest:: | public | function | Test the replacement of tokens. | |
| TokenTest:: | public | function | Test case sensitive issues. | |
| UnitTestCase:: | protected | property | The random generator. | |
| UnitTestCase:: | protected | property | The app root. | 1 | 
| UnitTestCase:: | protected | function | Asserts if two arrays are equal by sorting them first. | |
| UnitTestCase:: | protected | function | Mocks a block with a block plugin. | 1 | 
| UnitTestCase:: | protected | function | Returns a stub class resolver. | |
| UnitTestCase:: | public | function | Returns a stub config factory that behaves according to the passed array. | |
| UnitTestCase:: | public | function | Returns a stub config storage that returns the supplied configuration. | |
| UnitTestCase:: | protected | function | Sets up a container with a cache tags invalidator. | |
| UnitTestCase:: | protected | function | Gets the random generator for the utility methods. | |
| UnitTestCase:: | public | function | Returns a stub translation manager that just returns the passed string. | |
| UnitTestCase:: | public | function | Generates a unique random string containing letters and numbers. | 
