You are here

class AReportTokenTest in Forena Reports 8

Class AReportTokenTest @group Forena @require module forena @coversDefaultClass \Drupal\forena\Token\ReportReplacer

Hierarchy

Expanded class hierarchy of AReportTokenTest

File

tests/src/Unit/AReportTokenTest.php, line 13

Namespace

Drupal\Tests\forena\Unit
View source
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();
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AReportTokenTest::$replacer private property
AReportTokenTest::testContextReplacement public function Verify that basic Context specific token replacement works.
AReportTokenTest::testCustomContext public function Test token replacement from a custom data context.
AReportTokenTest::testLinkGeneration public function basic test for field generation.
AReportTokenTest::testReplacement public function
AReportTokenTest::testReportContext public function
AReportTokenTest::__construct public function
FrxAPI::app public function Returns containing application service
FrxAPI::currentDataContext public function Get the current data context.
FrxAPI::currentDataContextArray public function
FrxAPI::dataManager public function Returns the data manager service
FrxAPI::dataService public function Return Data Service
FrxAPI::documentManager public function Returns the fornea document manager
FrxAPI::error public function Report an error
FrxAPI::getDataContext public function Get the context of a specific id.
FrxAPI::getDocument public function Get the current document
FrxAPI::getReportFileContents public function Load the contents of a file in the report file system.
FrxAPI::innerXML function Enter description here... 1
FrxAPI::popData public function Pop data off of the stack.
FrxAPI::pushData public function Push data onto the Stack
FrxAPI::report public function Run a report with a particular format. 1
FrxAPI::reportFileSystem public function Get the current report file system.
FrxAPI::setDataContext public function Set Data context by id.
FrxAPI::setDocument public function Change to a specific document type.
FrxAPI::skins public function Get list of skins.
FrxTestCase::initParametersForm public function
FrxTestCase::setUp public function Mock object instantiation. Overrides UnitTestCase::setUp 2
PhpunitCompatibilityTrait::getMock Deprecated public function Returns a mock object for the specified class using the available method.
PhpunitCompatibilityTrait::setExpectedException Deprecated public function Compatibility layer for PHPUnit 6 to support PHPUnit 4 code.
UnitTestCase::$randomGenerator protected property The random generator.
UnitTestCase::$root protected property The app root. 1
UnitTestCase::assertArrayEquals protected function Asserts if two arrays are equal by sorting them first.
UnitTestCase::getBlockMockWithMachineName Deprecated protected function Mocks a block with a block plugin. 1
UnitTestCase::getClassResolverStub protected function Returns a stub class resolver.
UnitTestCase::getConfigFactoryStub public function Returns a stub config factory that behaves according to the passed array.
UnitTestCase::getConfigStorageStub public function Returns a stub config storage that returns the supplied configuration.
UnitTestCase::getContainerWithCacheTagsInvalidator protected function Sets up a container with a cache tags invalidator.
UnitTestCase::getRandomGenerator protected function Gets the random generator for the utility methods.
UnitTestCase::getStringTranslationStub public function Returns a stub translation manager that just returns the passed string.
UnitTestCase::randomMachineName public function Generates a unique random string containing letters and numbers.