forena-8.x-1.x-dev/tests/src/Unit/AReportTokenTest.php

tests/src/Unit/AReportTokenTest.php
<?php

namespace Drupal\Tests\forena\Unit;
use Drupal\forena\Token\ReportReplacer;
use Drupal\Tests\forena\Unit\Mock\TestingDataManager;

/**
 * Class AReportTokenTest
 * @group Forena
 * @require module forena
 * @coversDefaultClass \Drupal\forena\Token\ReportReplacer
 */
class AReportTokenTest extends FrxTestCase {

  private $replacer;

  public function __construct() {
    parent::__construct();
    $this->replacer = new ReportReplacer($this->dataService());
  }

  public function testReplacement() {
    $data = ['name' => 'Bob'];
    $this->pushData($data, 'p');
    $rep = new ReportReplacer($this->dataService());
    $this->assertNotNull($rep);

    // Replace the data
    $text = $rep->replace('Hello {name}');
    $this->assertEquals('Hello Bob', $text);
    $this->popData();
  }

  /**
   * Verify that basic Context specific token replacement works.
   */
  public function testContextReplacement() {
    $data = ['name' => 'Bob'];
    $this->pushData($data, 'p');

    // Replace the data
    $text = $this->replacer->replace('Hello {p.name}');
    $this->assertEquals('Hello Bob', $text);
    $this->popData();

    $messages = ['messages' => ['deep' => [
      'Hello {p.name}',
    ]]];

    $this->replacer->replaceNested($messages);
    $this->assertEquals('Hello Bob', $messages['messages']['deep'][0]);
  }

  /**
   * Test token replacement from a custom data context. 
   */
  public function testCustomContext() {
    $text = $this->replacer->replace('you are {custom_security.secure} secure.');
    $this->assertEquals('you are not secure.', $text);
  }

  public function testReportContext() {
    $text = $this->replacer->replace('Report follows: {FrxReport.sample}');
    $this->assertContains('col1', $text); 
  }

  /**
   * basic test for field generation.
   */
  public function testLinkGeneration() {
    $data = ['title' => 'Title'];
    $data['link'] = 'some/page';
    $data['data-test'] = 'foo';
    $this->pushData($data);
    $text="See {title}";
    $this->replacer->defineField('title', $data);
    $text = $this->replacer->replace($text);
    $this->assertContains("<a title='Title' data-test='foo' href='some/page'>Title</a>", $text);
    $this->popData();
  }


}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc