Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ConfigTest.php
Go to the documentation of this file.
1 <?php
7 
9 
10 class ConfigTest extends \PHPUnit\Framework\TestCase
11 {
15  protected $config;
16 
17  protected function setUp()
18  {
19  $this->config = new Config();
20  }
21 
22  public function testConstruct()
23  {
24  $xml = '<root><node1><node2/></node1><node3><node4/></node3></root>';
25  $file = __DIR__ . '/_files/data.xml';
26 
27  $config = new Config($xml);
28  $this->assertXmlStringEqualsXmlString($xml, $config->getXmlString());
29 
30  $config = new Config($file);
31  $this->assertXmlStringEqualsXmlString($xml, $config->getXmlString());
32 
34  $simpleXml = simplexml_load_string(file_get_contents($file), \Magento\Framework\Simplexml\Element::class);
35  $config = new Config($simpleXml);
36  $this->assertXmlStringEqualsXmlString($xml, $config->getXmlString());
37  }
38 
39  public function testLoadString()
40  {
41  $xml = '<?xml version="1.0"?><config><node>1</node></config>';
42  $this->assertFalse($this->config->loadString(''));
43  $this->assertTrue($this->config->loadString($xml));
44  $this->assertXmlStringEqualsXmlString($xml, $this->config->getXmlString());
45  }
46 
47  public function testLoadDom()
48  {
49  $dom = new \DOMDocument();
50  $dom->loadXML('<?xml version="1.0"?><config><node>1</node></config>');
51  $this->assertTrue($this->config->loadDom($dom));
52  }
53 
54  public function testGetNode()
55  {
56  $this->assertFalse($this->config->getNode());
57  $config = new Config(__DIR__ . '/_files/mixed_data.xml');
58  $this->assertSame('Value 2.1', $config->getNode('node_2/node_2_1')->asArray());
59  }
60 
61  public function testGetXpath()
62  {
63  $this->assertFalse($this->config->getXpath('wrong_xpath'));
64  $config = new Config(__DIR__ . '/_files/mixed_data.xml');
65  $this->assertFalse($config->getXpath('wrong_xpath'));
66  $element = $config->getXpath('/root/node_2/node_2_1');
67  $this->assertArrayHasKey(0, $element);
68  $this->assertInstanceOf(\Magento\Framework\Simplexml\Element::class, $element[0]);
69  $this->assertSame('Value 2.1', $element[0]->asArray());
70  }
71 
72  public function testLoadWrongFile()
73  {
74  $this->assertFalse($this->config->loadFile('wrong_file'));
75  }
76 
77  public function testSetNode()
78  {
79  $config = new Config(__DIR__ . '/_files/mixed_data.xml');
80  $config->setNode('node_2', 'new_value');
81  $this->assertSame('new_value', $config->getNode('node_2')->asArray());
82  }
83 
84  public function testApplyExtends()
85  {
86  $config = new Config(__DIR__ . '/_files/extend_data.xml');
87  $config->applyExtends();
88  $this->assertEquals(
89  $config->getNode('node_1/node_1_1')->asArray(),
90  $config->getNode('node_3/node_1_1')->asArray()
91  );
92  $config = new Config(__DIR__ . '/_files/data.xml');
93  $config->applyExtends();
94  }
95 
96  public function testExtendNode()
97  {
98  $config = new Config(__DIR__ . '/_files/data.xml');
99  $config->extend(new Config('<config><node>1</node></config>'));
100  $this->assertSame('1', $config->getNode('node')->asArray());
101  }
102 }
defined('TESTS_BP')||define('TESTS_BP' __DIR__
Definition: _bootstrap.php:60
$element
Definition: element.phtml:12