You are here

public function TokenTests::testTokenReplacement in Lightweight Directory Access Protocol (LDAP) 8.3

Test the replacement of tokens.

See http://drupal.org/node/1245736 for test tokens.

File

ldap_servers/tests/src/Unit/TokenTests.php, line 96

Class

TokenTests
@coversDefaultClass \Drupal\ldap_servers\Processor\TokenProcessor @group ldap @runTestsInSeparateProcesses @preserveGlobalState disabled

Namespace

Drupal\Tests\ldap_servers\Unit

Code

public function testTokenReplacement() {
  $tokenHelper = new TokenProcessor($this->detailLog, $this->fileSystem);
  $dn = $tokenHelper
    ->tokenReplace($this->ldapEntry, '[dn]');
  $this
    ->assertEquals($this->ldapEntry['dn'], $dn);
  $house0 = $tokenHelper
    ->tokenReplace($this->ldapEntry, '[house:0]');
  $this
    ->assertEquals($this->ldapEntry['house'][0], $house0);
  $mixed = $tokenHelper
    ->tokenReplace($this->ldapEntry, 'thisold[house:0]');
  $this
    ->assertEquals('thisold' . $this->ldapEntry['house'][0], $mixed);
  $compound = $tokenHelper
    ->tokenReplace($this->ldapEntry, '[samaccountname:0][house:0]');
  $this
    ->assertEquals($this->ldapEntry['sAMAccountName'][0] . $this->ldapEntry['house'][0], $compound);
  $literalValue = $tokenHelper
    ->tokenReplace($this->ldapEntry, 'literalvalue');
  $this
    ->assertEquals('literalvalue', $literalValue);
  $house0 = $tokenHelper
    ->tokenReplace($this->ldapEntry, '[house]');
  $this
    ->assertEquals($this->ldapEntry['house'][0], $house0);
  $houseLast = $tokenHelper
    ->tokenReplace($this->ldapEntry, '[house:last]');
  $this
    ->assertEquals($this->ldapEntry['house'][1], $houseLast);
  $sAMAccountName = $tokenHelper
    ->tokenReplace($this->ldapEntry, '[samaccountname:0]');
  $this
    ->assertEquals($this->ldapEntry['sAMAccountName'][0], $sAMAccountName);
  $sAMAccountNameMixedCase = $tokenHelper
    ->tokenReplace($this->ldapEntry, '[sAMAccountName:0]');
  $this
    ->assertEquals($this->ldapEntry['sAMAccountName'][0], $sAMAccountNameMixedCase);
  $sAMAccountName2 = $tokenHelper
    ->tokenReplace($this->ldapEntry, '[samaccountname]');
  $this
    ->assertEquals($this->ldapEntry['sAMAccountName'][0], $sAMAccountName2);
  $sAMAccountName3 = $tokenHelper
    ->tokenReplace($this->ldapEntry, '[sAMAccountName]');
  $this
    ->assertEquals($this->ldapEntry['sAMAccountName'][0], $sAMAccountName3);
  $base64encode = $tokenHelper
    ->tokenReplace($this->ldapEntry, '[guid;base64_encode]');
  $this
    ->assertEquals(base64_encode($this->ldapEntry['guid'][0]), $base64encode);
  $bin2hex = $tokenHelper
    ->tokenReplace($this->ldapEntry, '[guid;bin2hex]');
  $this
    ->assertEquals(bin2hex($this->ldapEntry['guid'][0]), $bin2hex);
  $msguid = $tokenHelper
    ->tokenReplace($this->ldapEntry, '[guid;msguid]');
  $this
    ->assertEquals(ConversionHelper::convertMsguidToString($this->ldapEntry['guid'][0]), $msguid);
  $binary = $tokenHelper
    ->tokenReplace($this->ldapEntry, '[guid;binary]');
  $this
    ->assertEquals(ConversionHelper::binaryConversionToString($this->ldapEntry['guid'][0]), $binary);
  $account = $this
    ->prophesize('\\Drupal\\user\\Entity\\User');
  $value = new \stdClass();
  $value->value = $this->ldapEntry['sAMAccountName'][0];
  $account
    ->get('name')
    ->willReturn($value);
  $nameReplacement = $tokenHelper
    ->tokenReplace($account
    ->reveal(), '[property.name]', 'user_account');
  $this
    ->assertEquals($this->ldapEntry['sAMAccountName'][0], $nameReplacement);
}