34 $this->configMock = $this->getMockBuilder(\
Magento\Config\Model\Config\Structure\SearchInterface::class)
35 ->setMethods([
'getElementByConfigPath'])
36 ->disableOriginalConstructor()
37 ->getMockForAbstractClass();
38 $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
39 $this->configVariables = [
41 'web/unsecure/base_url' =>
'1',
42 'web/secure/base_url' =>
'1' 46 $element1 = $this->getMockBuilder(\
Magento\Config\Model\Config\StructureElementInterface::class)
47 ->disableOriginalConstructor()
48 ->setMethods([
'getLabel'])
49 ->getMockForAbstractClass();
50 $element2 = clone $element1;
51 $groupElement = clone $element1;
52 $element1->expects($this->once())->method(
'getLabel')->willReturn(
__(
'Base URL'));
53 $element2->expects($this->once())->method(
'getLabel')->willReturn(
__(
'Secure Base URL'));
54 $groupElement->expects($this->once())->method(
'getLabel')->willReturn(
__(
'Web'));
56 $this->configMock->expects($this->any())->method(
'getElementByConfigPath')->willReturnMap([
57 [
'web', $groupElement],
58 [
'web/unsecure/base_url', $element1],
59 [
'web/secure/base_url', $element2]
62 $this->model =
$helper->getObject(\
Magento\Variable\Model\Source\Variables::class, [
63 'configStructure' => $this->configMock,
64 'configPaths' => $this->configVariables
70 $optionArray = $this->model->toOptionArray();
71 $this->assertEquals(count($this->configVariables[
'web']), count($optionArray));
72 $expectedResults = $this->getExpectedOptionsResults();
75 $this->assertEquals($expectedResults[
$index][
'value'],
$variable[
'value']);
76 $this->assertEquals($expectedResults[
$index][
'label_text'],
$variable[
'label']->getText());
83 $optionArray = $this->model->toOptionArray(
true);
84 $this->assertEquals(
'Web', $optionArray[0][
'label']);
85 $optionArrayValues = $optionArray[0][
'value'];
86 $this->assertEquals(count($this->configVariables[
'web']), count($optionArrayValues));
87 $expectedResults = $this->getExpectedOptionsResults();
89 foreach ($optionArray[0][
'value'] as
$variable) {
90 $this->assertEquals($expectedResults[
$index][
'value'],
$variable[
'value']);
91 $this->assertEquals($expectedResults[
$index][
'label_text'],
$variable[
'label']->getText());
99 private function getExpectedOptionsResults()
103 'value' =>
'{{config path="web/unsecure/base_url"}}',
104 'label_text' =>
'Base URL' 107 'value' =>
'{{config path="web/secure/base_url"}}',
108 'label_text' =>
'Secure Base URL'
testToOptionArrayWithGroup()
testToOptionArrayWithoutGroup()