| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247 |
- <?php
- namespace PhpOffice\PhpSpreadsheetTests\Style;
- use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
- use PhpOffice\PhpSpreadsheet\Spreadsheet;
- use PhpOffice\PhpSpreadsheet\Style\Border;
- use PhpOffice\PhpSpreadsheet\Style\Borders;
- use PhpOffice\PhpSpreadsheet\Style\Color;
- use PHPUnit\Framework\TestCase;
- class BorderTest extends TestCase
- {
- public function testAllBorders(): void
- {
- $spreadsheet = new Spreadsheet();
- $borders = $spreadsheet->getActiveSheet()->getStyle('A1')->getBorders();
- $allBorders = $borders->getAllBorders();
- $bottom = $borders->getBottom();
- $actual = $bottom->getBorderStyle();
- self::assertSame(Border::BORDER_NONE, $actual, 'should default to none');
- $allBorders->setBorderStyle(Border::BORDER_THIN);
- $actual = $bottom->getBorderStyle();
- self::assertSame(Border::BORDER_THIN, $actual, 'should have been set via allBorders');
- self::assertSame(Border::BORDER_THIN, $borders->getTop()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $borders->getRight()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $borders->getLeft()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $borders->getDiagonal()->getBorderStyle());
- }
- public function testAllBordersArray(): void
- {
- $spreadsheet = new Spreadsheet();
- $sheet = $spreadsheet->getActiveSheet();
- $sheet->getStyle('A1')->getBorders()->applyFromArray(['allBorders' => ['borderStyle' => Border::BORDER_THIN]]);
- $borders = $sheet->getCell('A1')->getStyle()->getBorders();
- self::assertSame(Border::BORDER_THIN, $borders->getBottom()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $borders->getTop()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $borders->getRight()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $borders->getLeft()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $borders->getDiagonal()->getBorderStyle());
- }
- public function testAllBordersArrayNotSupervisor(): void
- {
- $borders = new Borders();
- $borders->applyFromArray(['allBorders' => ['borderStyle' => Border::BORDER_THIN]]);
- self::assertSame(Border::BORDER_THIN, $borders->getBottom()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $borders->getTop()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $borders->getRight()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $borders->getLeft()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $borders->getDiagonal()->getBorderStyle());
- }
- public function testOutline(): void
- {
- $spreadsheet = new Spreadsheet();
- $sheet = $spreadsheet->getActiveSheet();
- $borders = $sheet->getStyle('A1:B2')->getBorders();
- $outline = $borders->getOutline();
- $outline->setBorderStyle(Border::BORDER_THIN);
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('A1')->getStyle()->getBorders()->getLeft()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('A1')->getStyle()->getBorders()->getTop()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A1')->getStyle()->getBorders()->getRight()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A1')->getStyle()->getBorders()->getBottom()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('A2')->getStyle()->getBorders()->getLeft()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('A2')->getStyle()->getBorders()->getBottom()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A2')->getStyle()->getBorders()->getRight()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A2')->getStyle()->getBorders()->getTop()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('B1')->getStyle()->getBorders()->getRight()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('B1')->getStyle()->getBorders()->getTop()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B1')->getStyle()->getBorders()->getLeft()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B1')->getStyle()->getBorders()->getBottom()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('B2')->getStyle()->getBorders()->getRight()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('B2')->getStyle()->getBorders()->getBottom()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B2')->getStyle()->getBorders()->getLeft()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B2')->getStyle()->getBorders()->getTop()->getBorderStyle());
- }
- public function testInside(): void
- {
- $spreadsheet = new Spreadsheet();
- $sheet = $spreadsheet->getActiveSheet();
- $borders = $sheet->getStyle('A1:B2')->getBorders();
- $inside = $borders->getInside();
- $inside->setBorderStyle(Border::BORDER_THIN);
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A1')->getStyle()->getBorders()->getLeft()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A1')->getStyle()->getBorders()->getTop()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('A1')->getStyle()->getBorders()->getRight()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('A1')->getStyle()->getBorders()->getBottom()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A2')->getStyle()->getBorders()->getLeft()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A2')->getStyle()->getBorders()->getBottom()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('A2')->getStyle()->getBorders()->getRight()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('A2')->getStyle()->getBorders()->getTop()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B1')->getStyle()->getBorders()->getRight()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B1')->getStyle()->getBorders()->getTop()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('B1')->getStyle()->getBorders()->getLeft()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('B1')->getStyle()->getBorders()->getBottom()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B2')->getStyle()->getBorders()->getRight()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B2')->getStyle()->getBorders()->getBottom()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('B2')->getStyle()->getBorders()->getLeft()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('B2')->getStyle()->getBorders()->getTop()->getBorderStyle());
- }
- public function testHorizontal(): void
- {
- $spreadsheet = new Spreadsheet();
- $sheet = $spreadsheet->getActiveSheet();
- $borders = $sheet->getStyle('A1:B2')->getBorders();
- $horizontal = $borders->getHorizontal();
- $horizontal->setBorderStyle(Border::BORDER_THIN);
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A1')->getStyle()->getBorders()->getLeft()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A1')->getStyle()->getBorders()->getTop()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A1')->getStyle()->getBorders()->getRight()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('A1')->getStyle()->getBorders()->getBottom()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A2')->getStyle()->getBorders()->getLeft()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A2')->getStyle()->getBorders()->getBottom()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A2')->getStyle()->getBorders()->getRight()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('A2')->getStyle()->getBorders()->getTop()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B1')->getStyle()->getBorders()->getRight()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B1')->getStyle()->getBorders()->getTop()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B1')->getStyle()->getBorders()->getLeft()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('B1')->getStyle()->getBorders()->getBottom()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B2')->getStyle()->getBorders()->getRight()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B2')->getStyle()->getBorders()->getBottom()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B2')->getStyle()->getBorders()->getLeft()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('B2')->getStyle()->getBorders()->getTop()->getBorderStyle());
- }
- public function testVertical(): void
- {
- $spreadsheet = new Spreadsheet();
- $sheet = $spreadsheet->getActiveSheet();
- $borders = $sheet->getStyle('A1:B2')->getBorders();
- $vertical = $borders->getVertical();
- $vertical->setBorderStyle(Border::BORDER_THIN);
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A1')->getStyle()->getBorders()->getLeft()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A1')->getStyle()->getBorders()->getTop()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('A1')->getStyle()->getBorders()->getRight()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A1')->getStyle()->getBorders()->getBottom()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A2')->getStyle()->getBorders()->getLeft()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A2')->getStyle()->getBorders()->getBottom()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('A2')->getStyle()->getBorders()->getRight()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('A2')->getStyle()->getBorders()->getTop()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B1')->getStyle()->getBorders()->getRight()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B1')->getStyle()->getBorders()->getTop()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('B1')->getStyle()->getBorders()->getLeft()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B1')->getStyle()->getBorders()->getBottom()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B2')->getStyle()->getBorders()->getRight()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B2')->getStyle()->getBorders()->getBottom()->getBorderStyle());
- self::assertSame(Border::BORDER_THIN, $sheet->getCell('B2')->getStyle()->getBorders()->getLeft()->getBorderStyle());
- self::assertSame(Border::BORDER_NONE, $sheet->getCell('B2')->getStyle()->getBorders()->getTop()->getBorderStyle());
- }
- public function testNoSupervisorAllBorders(): void
- {
- $this->expectException(PhpSpreadsheetException::class);
- $borders = new Borders();
- $borders->getAllBorders();
- }
- public function testNoSupervisorOutline(): void
- {
- $this->expectException(PhpSpreadsheetException::class);
- $borders = new Borders();
- $borders->getOutline();
- }
- public function testNoSupervisorInside(): void
- {
- $this->expectException(PhpSpreadsheetException::class);
- $borders = new Borders();
- $borders->getInside();
- }
- public function testNoSupervisorVertical(): void
- {
- $this->expectException(PhpSpreadsheetException::class);
- $borders = new Borders();
- $borders->getVertical();
- }
- public function testNoSupervisorHorizontal(): void
- {
- $this->expectException(PhpSpreadsheetException::class);
- $borders = new Borders();
- $borders->getHorizontal();
- }
- public function testGetSharedComponentPseudo(): void
- {
- $this->expectException(PhpSpreadsheetException::class);
- $spreadsheet = new Spreadsheet();
- $sheet = $spreadsheet->getActiveSheet();
- $sheet->getStyle('A1')->getBorders()->getHorizontal()->setBorderStyle(Border::BORDER_MEDIUM);
- $sheet->getStyle('A1')->getBorders()->getHorizontal()->getSharedComponent();
- }
- public function testBorderStyle(): void
- {
- $spreadsheet = new Spreadsheet();
- $sheet = $spreadsheet->getActiveSheet();
- $sheet->getStyle('A1')->getBorders()->getTop()->setBorderStyle(false);
- $sheet->getStyle('A2')->getBorders()->getTop()->setBorderStyle(true);
- self::assertEquals(Border::BORDER_NONE, $sheet->getStyle('A1')->getBorders()->getTop()->getBorderStyle());
- self::assertEquals(Border::BORDER_MEDIUM, $sheet->getStyle('A2')->getBorders()->getTop()->getBorderStyle());
- $sheet->getStyle('A3')->getBorders()->getTop()->applyFromArray(['borderStyle' => Border::BORDER_MEDIUM]);
- self::assertEquals(Border::BORDER_MEDIUM, $sheet->getStyle('A3')->getBorders()->getTop()->getBorderStyle());
- $border = new Border();
- $border->setBorderStyle(Border::BORDER_THIN)->setColor(new Color('FFFF0000'));
- self::assertEquals('FFFF0000', $border->getColor()->getARGB());
- self::assertEquals(Border::BORDER_THIN, $border->getBorderStyle());
- }
- public function testDiagonalDirection(): void
- {
- $spreadsheet = new Spreadsheet();
- $sheet = $spreadsheet->getActiveSheet();
- $sheet->getStyle('A1')->getBorders()->getDiagonal()->setBorderStyle(Border::BORDER_MEDIUM);
- $sheet->getStyle('A1')->getBorders()->setDiagonalDirection(Borders::DIAGONAL_BOTH);
- $borders = $sheet->getStyle('A1')->getBorders();
- self::assertSame(Border::BORDER_MEDIUM, $borders->getDiagonal()->getBorderStyle());
- self::assertSame(Borders::DIAGONAL_BOTH, $borders->getDiagonalDirection());
- }
- }
|