3 declare(strict_types
=1);
5 namespace PhpMyAdmin\Tests\Plugins\Export
;
7 use PhpMyAdmin\Plugins\Export\ExportExcel
;
8 use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup
;
9 use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyRootGroup
;
10 use PhpMyAdmin\Properties\Options\Items\BoolPropertyItem
;
11 use PhpMyAdmin\Properties\Options\Items\HiddenPropertyItem
;
12 use PhpMyAdmin\Properties\Options\Items\SelectPropertyItem
;
13 use PhpMyAdmin\Properties\Options\Items\TextPropertyItem
;
14 use PhpMyAdmin\Properties\Plugins\ExportPluginProperties
;
15 use PhpMyAdmin\Tests\AbstractTestCase
;
17 use ReflectionProperty
;
18 use function array_shift
;
23 class ExportExcelTest
extends AbstractTestCase
25 /** @var ExportExcel */
29 * Configures global environment.
31 protected function setUp(): void
34 $GLOBALS['server'] = 0;
35 $this->object = new ExportExcel();
39 * tearDown for test cases
41 protected function tearDown(): void
47 public function testSetProperties(): void
49 $method = new ReflectionMethod(ExportExcel
::class, 'setProperties');
50 $method->setAccessible(true);
51 $method->invoke($this->object, null);
53 $attrProperties = new ReflectionProperty(ExportExcel
::class, 'properties');
54 $attrProperties->setAccessible(true);
55 $properties = $attrProperties->getValue($this->object);
57 $this->assertInstanceOf(
58 ExportPluginProperties
::class,
64 $properties->getText()
69 $properties->getExtension()
73 'text/comma-separated-values',
74 $properties->getMimeType()
79 $properties->getOptionsText()
82 $options = $properties->getOptions();
84 $this->assertInstanceOf(
85 OptionsPropertyRootGroup
::class,
90 'Format Specific Options',
94 $generalOptionsArray = $options->getProperties();
95 $generalOptions = $generalOptionsArray[0];
97 $this->assertInstanceOf(
98 OptionsPropertyMainGroup
::class,
104 $generalOptions->getName()
107 $generalProperties = $generalOptions->getProperties();
109 $property = array_shift($generalProperties);
111 $this->assertInstanceOf(
112 TextPropertyItem
::class,
122 'Replace NULL with:',
126 $property = array_shift($generalProperties);
128 $this->assertInstanceOf(
129 BoolPropertyItem
::class,
139 'Remove carriage return/line feed characters within columns',
143 $property = array_shift($generalProperties);
145 $this->assertInstanceOf(
146 BoolPropertyItem
::class,
156 'Put columns names in the first row',
160 $property = array_shift($generalProperties);
162 $this->assertInstanceOf(
163 SelectPropertyItem
::class,
175 'mac_excel2003' => 'Excel 2003 / Macintosh',
176 'mac_excel2008' => 'Excel 2008 / Macintosh',
178 $property->getValues()
186 $property = array_shift($generalProperties);
188 $this->assertInstanceOf(
189 HiddenPropertyItem
::class,