Issue2266Test.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Writer\Xlsx;
  3. use PhpOffice\PhpSpreadsheet\Reader\Xlsx as Reader;
  4. use PhpOffice\PhpSpreadsheetTests\Functional\AbstractFunctional;
  5. class Issue2266Test extends AbstractFunctional
  6. {
  7. /**
  8. * @dataProvider providerType
  9. */
  10. public function testIssue2266(string $type): void
  11. {
  12. // Problem deleting sheet containing local defined name.
  13. $reader = new Reader();
  14. $spreadsheet = $reader->load('tests/data/Writer/XLSX/issue.2266f.xlsx');
  15. self::assertCount(2, $spreadsheet->getAllSheets());
  16. self::assertCount(1, $spreadsheet->getDefinedNames());
  17. $index = 1;
  18. $sheet = $spreadsheet->getSheet($index);
  19. self::assertSame('Sheet2', $sheet->getTitle());
  20. $definedName = $spreadsheet->getDefinedName('LocalName', $sheet);
  21. self::assertNotNull($definedName);
  22. self::assertTrue($definedName->getLocalOnly());
  23. $spreadsheet->removeSheetByIndex($index);
  24. $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, $type);
  25. $spreadsheet->disconnectWorksheets();
  26. self::assertCount(1, $reloadedSpreadsheet->getAllSheets());
  27. self::assertCount(0, $reloadedSpreadsheet->getDefinedNames());
  28. self::assertNotEquals('Sheet2', $reloadedSpreadsheet->getSheet(0)->getTitle());
  29. $reloadedSpreadsheet->disconnectWorksheets();
  30. }
  31. public function providerType(): array
  32. {
  33. return [
  34. ['Xlsx'],
  35. ['Xls'],
  36. ['Ods'],
  37. ];
  38. }
  39. }