Issue2965Test.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Chart;
  3. use PhpOffice\PhpSpreadsheet\Reader\Xlsx as XlsxReader;
  4. use PHPUnit\Framework\TestCase;
  5. class Issue2965Test extends TestCase
  6. {
  7. private const DIRECTORY = 'tests' . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'Reader' . DIRECTORY_SEPARATOR . 'XLSX' . DIRECTORY_SEPARATOR;
  8. public function testPreliminaries(): void
  9. {
  10. $file = 'zip://';
  11. $file .= self::DIRECTORY . 'issue.2965.xlsx';
  12. $file .= '#xl/charts/chart1.xml';
  13. $data = file_get_contents($file);
  14. // confirm that file contains expected namespaced xml tag
  15. if ($data === false) {
  16. self::fail('Unable to read file');
  17. } else {
  18. self::assertStringContainsString('<c:title><c:tx><c:strRef><c:f>Sheet1!$A$1</c:f><c:strCache><c:ptCount val="1"/><c:pt idx="0"><c:v>NewTitle</c:v></c:pt></c:strCache></c:strRef></c:tx>', $data);
  19. }
  20. }
  21. public function testChartTitleFormula(): void
  22. {
  23. $reader = new XlsxReader();
  24. $reader->setIncludeCharts(true);
  25. $spreadsheet = $reader->load(self::DIRECTORY . 'issue.2965.xlsx');
  26. $worksheet = $spreadsheet->getActiveSheet();
  27. $charts = $worksheet->getChartCollection();
  28. self::assertCount(1, $charts);
  29. $originalChart1 = $charts[0];
  30. self::assertNotNull($originalChart1);
  31. $originalTitle1 = $originalChart1->getTitle();
  32. self::assertNotNull($originalTitle1);
  33. self::assertSame('NewTitle', $originalTitle1->getCaptionText());
  34. $spreadsheet->disconnectWorksheets();
  35. }
  36. }