LinesTest.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. declare(strict_types=1);
  3. namespace Dotenv\Tests\Parser;
  4. use Dotenv\Parser\Lines;
  5. use Dotenv\Util\Regex;
  6. use PHPUnit\Framework\TestCase;
  7. final class LinesTest extends TestCase
  8. {
  9. public function testProcessBasic()
  10. {
  11. $content = \file_get_contents(\dirname(\dirname(__DIR__)).'/fixtures/env/assertions.env');
  12. self::assertIsString($content);
  13. $result = Regex::split("/(\r\n|\n|\r)/", $content);
  14. self::assertTrue($result->success()->isDefined());
  15. $expected = [
  16. 'ASSERTVAR1=val1',
  17. 'ASSERTVAR2=""',
  18. 'ASSERTVAR3="val3 "',
  19. 'ASSERTVAR4="0" # empty looking value',
  20. 'ASSERTVAR5="#foo"',
  21. "ASSERTVAR6=\"val1\nval2\"",
  22. "ASSERTVAR7=\"\nval3\" #",
  23. "ASSERTVAR8=\"val3\n\"",
  24. "ASSERTVAR9=\"\n\n\"",
  25. ];
  26. self::assertSame($expected, Lines::process($result->success()->get()));
  27. }
  28. public function testProcessQuotes()
  29. {
  30. $content = \file_get_contents(\dirname(\dirname(__DIR__)).'/fixtures/env/multiline.env');
  31. self::assertIsString($content);
  32. $result = Regex::split("/(\r\n|\n|\r)/", $content);
  33. self::assertTrue($result->success()->isDefined());
  34. $expected = [
  35. "TEST=\"test\n test\\\"test\\\"\n test\"",
  36. 'TEST_ND="test\\ntest"',
  37. 'TEST_NS=\'test\\ntest\'',
  38. 'TEST_EQD="https://vision.googleapis.com/v1/images:annotate?key="',
  39. 'TEST_EQS=\'https://vision.googleapis.com/v1/images:annotate?key=\'',
  40. "BASE64_ENCODED_MULTILINE=\"qS1zCzMVVUJWQShokv6YVYi+ruKSC/bHV7GmEiyVkLaBWJHNVHCHsgTksEBsy8wJ\nuwycAvR07ZyOJJed4XTRMKnKp1/v+6UATpWzkIjZXytK+pD+XlZimUHTx3uiDcmU\njhQX1wWSxHDqrSWxeIJiTD+BuUyId8FzmXQ3TcBydJ474tmOU2F492ubk3LAiZ18\nmhiRGoshXAOSbS/P3+RZi4bDeNE/No4=\"",
  41. ];
  42. self::assertSame($expected, Lines::process($result->success()->get()));
  43. }
  44. }