Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
TokenizerTest.php
Go to the documentation of this file.
1 <?php
7 
8 use \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer;
9 
11 
15 class TokenizerTest extends \PHPUnit\Framework\TestCase
16 {
20  protected $tokenizer;
21 
25  protected $objectManager;
26 
27  protected function setUp()
28  {
29  $this->objectManager = new ObjectManager($this);
30  $this->tokenizer = $this->objectManager->getObject(
31  \Magento\Setup\Module\I18n\Parser\Adapter\Php\Tokenizer::class
32  );
33  }
34 
38  public function testIsMatchingClass()
39  {
40  $class = 'Phrase';
41  $this->parseFile();
42  $this->assertEquals(false, $this->tokenizer->isMatchingClass($class)); // new
43  $this->assertEquals(true, $this->tokenizer->isMatchingClass($class)); // \Magento\Framework\Phrase(
44  $this->assertEquals(false, $this->tokenizer->isMatchingClass($class)); // 'Testing'
45  $this->assertEquals(false, $this->tokenizer->isMatchingClass($class)); // )
46  $this->assertEquals(false, $this->tokenizer->isMatchingClass($class)); // ;
47  $this->assertEquals(false, $this->tokenizer->isMatchingClass($class)); // new
48  $this->assertEquals(true, $this->tokenizer->isMatchingClass($class)); // Phrase(
49  $this->assertEquals(false, $this->tokenizer->isMatchingClass($class)); // 'More testing'
50  $this->assertEquals(false, $this->tokenizer->isMatchingClass($class)); // )
51  $this->assertEquals(false, $this->tokenizer->isMatchingClass($class)); // ;
52  $this->assertEquals(false, $this->tokenizer->isMatchingClass($class)); // new
53  $this->assertEquals(false, $this->tokenizer->isMatchingClass($class)); // \Magento\Framework\DataObject(
54  $this->assertEquals(false, $this->tokenizer->isMatchingClass($class)); // )
55  $this->assertEquals(false, $this->tokenizer->isMatchingClass($class)); // ;
56  }
57 
61  public function testGetNextRealToken()
62  {
63  $this->parseFile();
64  $this->assertEquals('new', $this->tokenizer->getNextRealToken()->getValue());
65  $this->assertEquals('\\', $this->tokenizer->getNextRealToken()->getValue());
66  $this->assertEquals('Magento', $this->tokenizer->getNextRealToken()->getValue());
67  $this->assertEquals('\\', $this->tokenizer->getNextRealToken()->getValue());
68  $this->assertEquals('Framework', $this->tokenizer->getNextRealToken()->getValue());
69  $this->assertEquals('\\', $this->tokenizer->getNextRealToken()->getValue());
70  $this->assertEquals('Phrase', $this->tokenizer->getNextRealToken()->getValue());
71  $this->assertEquals('(', $this->tokenizer->getNextRealToken()->getValue());
72  $this->assertEquals('\'Testing\'', $this->tokenizer->getNextRealToken()->getValue());
73  $this->assertEquals(')', $this->tokenizer->getNextRealToken()->getValue());
74  $this->assertEquals(';', $this->tokenizer->getNextRealToken()->getValue());
75  }
76 
80  public function testIsEndOfLoop()
81  {
82  $this->parseFile();
83  //We have 27 total tokens in objectsCode.php file (excluding whitespaces)
84  //So the isEndOfLoop function should return true after we pick 28th non-existent token
85  for ($i = 0; $i < 28; $i += 1) {
86  $this->assertFalse($this->tokenizer->isEndOfLoop());
87  $this->tokenizer->getNextRealToken();
88  }
89  $this->assertTrue($this->tokenizer->isEndOfLoop());
90  }
91 
92  protected function parseFile()
93  {
94  $file = __DIR__.'/_files/objectsCode.php.txt';
95  $this->tokenizer->parse($file);
96  }
97 }
defined('TESTS_BP')||define('TESTS_BP' __DIR__
Definition: _bootstrap.php:60
$_option $_optionId $class
Definition: date.phtml:13
$i
Definition: gallery.phtml:31