LinesTest.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. use Dotenv\Lines;
  3. use PHPUnit\Framework\TestCase;
  4. class LinesTest extends TestCase
  5. {
  6. public function testProcessBasic()
  7. {
  8. $content = file_get_contents(dirname(__DIR__).'/fixtures/env/assertions.env');
  9. $expected = [
  10. 'ASSERTVAR1=val1',
  11. 'ASSERTVAR2=""',
  12. 'ASSERTVAR3="val3 "',
  13. 'ASSERTVAR4="0" # empty looking value',
  14. 'ASSERTVAR5="#foo"',
  15. "ASSERTVAR6=\"val1\nval2\"",
  16. "ASSERTVAR7=\"\nval3\" #",
  17. "ASSERTVAR8=\"val3\n\"",
  18. "ASSERTVAR9=\"\n\n\"",
  19. ];
  20. $this->assertSame($expected, Lines::process(preg_split("/(\r\n|\n|\r)/", $content)));
  21. }
  22. public function testProcessQuotes()
  23. {
  24. $content = file_get_contents(dirname(__DIR__).'/fixtures/env/multiline.env');
  25. $expected = [
  26. "TEST=\"test\n test\\\"test\\\"\n test\"",
  27. "TEST_ND=\"test\\ntest\"",
  28. 'TEST_NS=\'test\\ntest\'',
  29. 'TEST_EQD="https://vision.googleapis.com/v1/images:annotate?key="',
  30. 'TEST_EQS=\'https://vision.googleapis.com/v1/images:annotate?key=\'',
  31. ];
  32. $this->assertSame($expected, Lines::process(preg_split("/(\r\n|\n|\r)/", $content)));
  33. }
  34. public function testProcessClosingSlash()
  35. {
  36. $lines = [
  37. 'SPVAR5="test some escaped characters like a quote \" or maybe a backslash \\" # not escaped',
  38. ];
  39. $expected = [
  40. 'SPVAR5="test some escaped characters like a quote \" or maybe a backslash \\" # not escaped',
  41. ];
  42. $this->assertSame($expected, $lines);
  43. }
  44. }