270 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			270 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace PhpOffice\PhpSpreadsheetTests\Reader\Gnumeric;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use PhpOffice\PhpSpreadsheet\Cell\DataType;
							 | 
						||
| 
								 | 
							
								use PhpOffice\PhpSpreadsheet\Reader\Gnumeric;
							 | 
						||
| 
								 | 
							
								use PhpOffice\PhpSpreadsheet\Style\Alignment;
							 | 
						||
| 
								 | 
							
								use PhpOffice\PhpSpreadsheet\Style\Border;
							 | 
						||
| 
								 | 
							
								use PhpOffice\PhpSpreadsheet\Style\Fill;
							 | 
						||
| 
								 | 
							
								use PhpOffice\PhpSpreadsheet\Style\Font;
							 | 
						||
| 
								 | 
							
								use PHPUnit\Framework\TestCase;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class GnumericStylesTest extends TestCase
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @dataProvider providerBorderStyle
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public function testBorderStyle(string $style, string $expectedResult): void
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $styles = Gnumeric::gnumericMappings();
							 | 
						||
| 
								 | 
							
								        $borders = $styles['borderStyle'];
							 | 
						||
| 
								 | 
							
								        self::assertEquals($expectedResult, $borders[$style]);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function testBorderStyleCoverage(): void
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $styles = Gnumeric::gnumericMappings();
							 | 
						||
| 
								 | 
							
								        $expected = $styles['borderStyle'];
							 | 
						||
| 
								 | 
							
								        $covered = [];
							 | 
						||
| 
								 | 
							
								        foreach ($expected as $key => $val) {
							 | 
						||
| 
								 | 
							
								            $covered[$key] = 0;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $tests = $this->providerBorderStyle();
							 | 
						||
| 
								 | 
							
								        foreach ($tests as $test) {
							 | 
						||
| 
								 | 
							
								            $covered[$test[0]] = 1;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        foreach ($covered as $key => $val) {
							 | 
						||
| 
								 | 
							
								            self::assertEquals(1, $val, "Borderstyle $key not tested");
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @dataProvider providerfillType
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public function testFillType(string $style, string $expectedResult): void
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $styles = Gnumeric::gnumericMappings();
							 | 
						||
| 
								 | 
							
								        $borders = $styles['fillType'];
							 | 
						||
| 
								 | 
							
								        self::assertEquals($expectedResult, $borders[$style]);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function testFillTypeCoverage(): void
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $styles = Gnumeric::gnumericMappings();
							 | 
						||
| 
								 | 
							
								        $expected = $styles['fillType'];
							 | 
						||
| 
								 | 
							
								        $covered = [];
							 | 
						||
| 
								 | 
							
								        foreach ($expected as $key => $val) {
							 | 
						||
| 
								 | 
							
								            $covered[$key] = 0;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $tests = $this->providerfillType();
							 | 
						||
| 
								 | 
							
								        foreach ($tests as $test) {
							 | 
						||
| 
								 | 
							
								            $covered[$test[0]] = 1;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        foreach ($covered as $key => $val) {
							 | 
						||
| 
								 | 
							
								            self::assertEquals(1, $val, "fillType $key not tested");
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @dataProvider providerHorizontal
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public function testHorizontal(string $style, string $expectedResult): void
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $styles = Gnumeric::gnumericMappings();
							 | 
						||
| 
								 | 
							
								        $borders = $styles['horizontal'];
							 | 
						||
| 
								 | 
							
								        self::assertEquals($expectedResult, $borders[$style]);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function testHorizontalCoverage(): void
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $styles = Gnumeric::gnumericMappings();
							 | 
						||
| 
								 | 
							
								        $expected = $styles['horizontal'];
							 | 
						||
| 
								 | 
							
								        $covered = [];
							 | 
						||
| 
								 | 
							
								        foreach ($expected as $key => $val) {
							 | 
						||
| 
								 | 
							
								            $covered[$key] = 0;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $tests = $this->providerHorizontal();
							 | 
						||
| 
								 | 
							
								        foreach ($tests as $test) {
							 | 
						||
| 
								 | 
							
								            $covered[$test[0]] = 1;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        foreach ($covered as $key => $val) {
							 | 
						||
| 
								 | 
							
								            self::assertEquals(1, $val, "horizontal $key not tested");
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @dataProvider providerunderline
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public function testUnderline(string $style, string $expectedResult): void
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $styles = Gnumeric::gnumericMappings();
							 | 
						||
| 
								 | 
							
								        $borders = $styles['underline'];
							 | 
						||
| 
								 | 
							
								        self::assertEquals($expectedResult, $borders[$style]);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function testUnderlineCoverage(): void
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $styles = Gnumeric::gnumericMappings();
							 | 
						||
| 
								 | 
							
								        $expected = $styles['underline'];
							 | 
						||
| 
								 | 
							
								        $covered = [];
							 | 
						||
| 
								 | 
							
								        foreach ($expected as $key => $val) {
							 | 
						||
| 
								 | 
							
								            $covered[$key] = 0;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $tests = $this->providerUnderline();
							 | 
						||
| 
								 | 
							
								        foreach ($tests as $test) {
							 | 
						||
| 
								 | 
							
								            $covered[$test[0]] = 1;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        foreach ($covered as $key => $val) {
							 | 
						||
| 
								 | 
							
								            self::assertEquals(1, $val, "underline $key not tested");
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @dataProvider providerVertical
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public function testVertical(string $style, string $expectedResult): void
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $styles = Gnumeric::gnumericMappings();
							 | 
						||
| 
								 | 
							
								        $borders = $styles['vertical'];
							 | 
						||
| 
								 | 
							
								        self::assertEquals($expectedResult, $borders[$style]);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function testVerticalCoverage(): void
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $styles = Gnumeric::gnumericMappings();
							 | 
						||
| 
								 | 
							
								        $expected = $styles['vertical'];
							 | 
						||
| 
								 | 
							
								        $covered = [];
							 | 
						||
| 
								 | 
							
								        foreach ($expected as $key => $val) {
							 | 
						||
| 
								 | 
							
								            $covered[$key] = 0;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $tests = $this->providerVertical();
							 | 
						||
| 
								 | 
							
								        foreach ($tests as $test) {
							 | 
						||
| 
								 | 
							
								            $covered[$test[0]] = 1;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        foreach ($covered as $key => $val) {
							 | 
						||
| 
								 | 
							
								            self::assertEquals(1, $val, "vertical $key not tested");
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @dataProvider providerDataType
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public function testDataType(string $style, string $expectedResult): void
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $styles = Gnumeric::gnumericMappings();
							 | 
						||
| 
								 | 
							
								        $borders = $styles['dataType'];
							 | 
						||
| 
								 | 
							
								        self::assertEquals($expectedResult, $borders[$style]);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function testDataTypeCoverage(): void
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $styles = Gnumeric::gnumericMappings();
							 | 
						||
| 
								 | 
							
								        $expected = $styles['dataType'];
							 | 
						||
| 
								 | 
							
								        self::assertArrayNotHasKey('70', $expected);
							 | 
						||
| 
								 | 
							
								        self::assertArrayNotHasKey('80', $expected);
							 | 
						||
| 
								 | 
							
								        $covered = [];
							 | 
						||
| 
								 | 
							
								        foreach ($expected as $key => $val) {
							 | 
						||
| 
								 | 
							
								            $covered[$key] = 0;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $tests = $this->providerDataType();
							 | 
						||
| 
								 | 
							
								        foreach ($tests as $test) {
							 | 
						||
| 
								 | 
							
								            $covered[$test[0]] = 1;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        foreach ($covered as $key => $val) {
							 | 
						||
| 
								 | 
							
								            self::assertEquals(1, $val, "dataType $key not tested");
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function providerBorderStyle(): array
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return [
							 | 
						||
| 
								 | 
							
								            ['0', Border::BORDER_NONE],
							 | 
						||
| 
								 | 
							
								            ['1', Border::BORDER_THIN],
							 | 
						||
| 
								 | 
							
								            ['2', Border::BORDER_MEDIUM],
							 | 
						||
| 
								 | 
							
								            ['3', Border::BORDER_SLANTDASHDOT],
							 | 
						||
| 
								 | 
							
								            ['4', Border::BORDER_DASHED],
							 | 
						||
| 
								 | 
							
								            ['5', Border::BORDER_THICK],
							 | 
						||
| 
								 | 
							
								            ['6', Border::BORDER_DOUBLE],
							 | 
						||
| 
								 | 
							
								            ['7', Border::BORDER_DOTTED],
							 | 
						||
| 
								 | 
							
								            ['8', Border::BORDER_MEDIUMDASHED],
							 | 
						||
| 
								 | 
							
								            ['9', Border::BORDER_DASHDOT],
							 | 
						||
| 
								 | 
							
								            ['10', Border::BORDER_MEDIUMDASHDOT],
							 | 
						||
| 
								 | 
							
								            ['11', Border::BORDER_DASHDOTDOT],
							 | 
						||
| 
								 | 
							
								            ['12', Border::BORDER_MEDIUMDASHDOTDOT],
							 | 
						||
| 
								 | 
							
								            ['13', Border::BORDER_MEDIUMDASHDOTDOT],
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function providerFillType(): array
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return [
							 | 
						||
| 
								 | 
							
								            ['1', Fill::FILL_SOLID],
							 | 
						||
| 
								 | 
							
								            ['2', Fill::FILL_PATTERN_DARKGRAY],
							 | 
						||
| 
								 | 
							
								            ['3', Fill::FILL_PATTERN_MEDIUMGRAY],
							 | 
						||
| 
								 | 
							
								            ['4', Fill::FILL_PATTERN_LIGHTGRAY],
							 | 
						||
| 
								 | 
							
								            ['5', Fill::FILL_PATTERN_GRAY125],
							 | 
						||
| 
								 | 
							
								            ['6', Fill::FILL_PATTERN_GRAY0625],
							 | 
						||
| 
								 | 
							
								            ['7', Fill::FILL_PATTERN_DARKHORIZONTAL],
							 | 
						||
| 
								 | 
							
								            ['8', Fill::FILL_PATTERN_DARKVERTICAL],
							 | 
						||
| 
								 | 
							
								            ['9', Fill::FILL_PATTERN_DARKDOWN],
							 | 
						||
| 
								 | 
							
								            ['10', Fill::FILL_PATTERN_DARKUP],
							 | 
						||
| 
								 | 
							
								            ['11', Fill::FILL_PATTERN_DARKGRID],
							 | 
						||
| 
								 | 
							
								            ['12', Fill::FILL_PATTERN_DARKTRELLIS],
							 | 
						||
| 
								 | 
							
								            ['13', Fill::FILL_PATTERN_LIGHTHORIZONTAL],
							 | 
						||
| 
								 | 
							
								            ['14', Fill::FILL_PATTERN_LIGHTVERTICAL],
							 | 
						||
| 
								 | 
							
								            ['15', Fill::FILL_PATTERN_LIGHTUP],
							 | 
						||
| 
								 | 
							
								            ['16', Fill::FILL_PATTERN_LIGHTDOWN],
							 | 
						||
| 
								 | 
							
								            ['17', Fill::FILL_PATTERN_LIGHTGRID],
							 | 
						||
| 
								 | 
							
								            ['18', Fill::FILL_PATTERN_LIGHTTRELLIS],
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function providerHorizontal(): array
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return [
							 | 
						||
| 
								 | 
							
								            ['1', Alignment::HORIZONTAL_GENERAL],
							 | 
						||
| 
								 | 
							
								            ['2', Alignment::HORIZONTAL_LEFT],
							 | 
						||
| 
								 | 
							
								            ['4', Alignment::HORIZONTAL_RIGHT],
							 | 
						||
| 
								 | 
							
								            ['8', Alignment::HORIZONTAL_CENTER],
							 | 
						||
| 
								 | 
							
								            ['16', Alignment::HORIZONTAL_CENTER_CONTINUOUS],
							 | 
						||
| 
								 | 
							
								            ['32', Alignment::HORIZONTAL_JUSTIFY],
							 | 
						||
| 
								 | 
							
								            ['64', Alignment::HORIZONTAL_CENTER_CONTINUOUS],
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function providerUnderline(): array
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return [
							 | 
						||
| 
								 | 
							
								            ['1', Font::UNDERLINE_SINGLE],
							 | 
						||
| 
								 | 
							
								            ['2', Font::UNDERLINE_DOUBLE],
							 | 
						||
| 
								 | 
							
								            ['3', Font::UNDERLINE_SINGLEACCOUNTING],
							 | 
						||
| 
								 | 
							
								            ['4', Font::UNDERLINE_DOUBLEACCOUNTING],
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function providerVertical(): array
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return [
							 | 
						||
| 
								 | 
							
								            ['1', Alignment::VERTICAL_TOP],
							 | 
						||
| 
								 | 
							
								            ['2', Alignment::VERTICAL_BOTTOM],
							 | 
						||
| 
								 | 
							
								            ['4', Alignment::VERTICAL_CENTER],
							 | 
						||
| 
								 | 
							
								            ['8', Alignment::VERTICAL_JUSTIFY],
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function providerDataType(): array
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return [
							 | 
						||
| 
								 | 
							
								            ['10', DataType::TYPE_NULL],
							 | 
						||
| 
								 | 
							
								            ['20', DataType::TYPE_BOOL],
							 | 
						||
| 
								 | 
							
								            ['30', DataType::TYPE_NUMERIC], // Integer doesn't exist in Excel
							 | 
						||
| 
								 | 
							
								            ['40', DataType::TYPE_NUMERIC], // Float
							 | 
						||
| 
								 | 
							
								            ['50', DataType::TYPE_ERROR],
							 | 
						||
| 
								 | 
							
								            ['60', DataType::TYPE_STRING],
							 | 
						||
| 
								 | 
							
								            //'70':        //    Cell Range
							 | 
						||
| 
								 | 
							
								            //'80':        //    Array
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |