start(); while (!self::$httpServer->isRunning()) { usleep(1000); } } public static function tearDownAfterClass(): void { self::$httpServer->stop(); } public function testServer(): void { var_dump(ini_get('allow_url_fopen')); self::assertSame(self::NEWVALUE, file_get_contents(self::DIRECT)); self::assertSame(self::NEWVALUE, file_get_contents(self::REDIRECT)); } public function testReadFile(): void { $reader = new XlsxReader(); $spreadsheet = $reader->load(__DIR__ . '/redirect.xlsx'); $spreadsheet->setDomainWhiteList(['localhost']); $sheet = $spreadsheet->getActiveSheet(); self::assertSame(self::OLDVALUE, $sheet->getCell('A1')->getOldCalculatedValue()); self::assertSame(self::OLDVALUE, $sheet->getCell('A2')->getOldCalculatedValue()); self::assertSame(self::NEWVALUE, $sheet->getCell('A1')->getCalculatedValue(), 'no redirect so recomputed'); self::assertSame(self::OLDVALUE, $sheet->getCell('A2')->getCalculatedValue(), 'redirect so use old computed'); } public static function testNew(): void { $spreadsheet = new Spreadsheet(); $spreadsheet->setDomainWhiteList(['localhost']); $sheet = $spreadsheet->getActiveSheet(); $sheet->getCell('G1')->setValue(self::DIRECT); $sheet->getCell('A1')->setValue('=WEBSERVICE(G1)'); self::assertSame(self::NEWVALUE, $sheet->getCell('A1')->getCalculatedValue(), 'no redirect so computed'); $sheet->getCell('G2')->setValue(self::REDIRECT); $sheet->getCell('A2')->setValue('=WEBSERVICE(G2)'); self::assertNull( $sheet->getCell('A2')->getCalculatedValue(), 'redirect so not computed' ); } }