StringTest.php 7.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. /**
  3. *
  4. * @filesource StringTest.php
  5. * @created 08.02.2016
  6. * @package chillerlan\QRCodeTest\Output
  7. * @author Smiley <smiley@chillerlan.net>
  8. * @copyright 2015 Smiley
  9. * @license MIT
  10. */
  11. namespace chillerlan\QRCodeTest\Output;
  12. use chillerlan\QRCode\Output\QRString;
  13. use chillerlan\QRCode\Output\QRStringOptions;
  14. use chillerlan\QRCode\QRCode;
  15. class StringTest extends \PHPUnit_Framework_TestCase{
  16. /**
  17. * @var \chillerlan\QRCode\Output\QRStringOptions
  18. */
  19. protected $options;
  20. protected function setUp(){
  21. $this->options = new QRStringOptions;
  22. }
  23. public function testOptionsInstance(){
  24. $this->assertInstanceOf(QRStringOptions::class, $this->options);
  25. $this->assertEquals(QRCode::OUTPUT_STRING_HTML, $this->options->type);
  26. }
  27. public function stringDataProvider(){
  28. return [
  29. ['foobar', QRCode::OUTPUT_STRING_HTML, '<p><b></b><b></b><b></b><b></b><b></b><b></b><b></b><i></i><i></i><i></i><b></b><b></b><b></b><i></i><b></b><b></b><b></b><b></b><b></b><b></b><b></b>'.PHP_EOL.'<p><b></b><i></i><i></i><i></i><i></i><i></i><b></b><i></i><b></b><b></b><b></b><i></i><i></i><i></i><b></b><i></i><i></i><i></i><i></i><i></i><b></b>'.PHP_EOL.'<p><b></b><i></i><b></b><b></b><b></b><i></i><b></b><i></i><i></i><b></b><i></i><i></i><b></b><i></i><b></b><i></i><b></b><b></b><b></b><i></i><b></b>'.PHP_EOL.'<p><b></b><i></i><b></b><b></b><b></b><i></i><b></b><i></i><i></i><b></b><b></b><b></b><i></i><i></i><b></b><i></i><b></b><b></b><b></b><i></i><b></b>'.PHP_EOL.'<p><b></b><i></i><b></b><b></b><b></b><i></i><b></b><i></i><b></b><b></b><i></i><b></b><b></b><i></i><b></b><i></i><b></b><b></b><b></b><i></i><b></b>'.PHP_EOL.'<p><b></b><i></i><i></i><i></i><i></i><i></i><b></b><i></i><i></i><b></b><i></i><b></b><i></i><i></i><b></b><i></i><i></i><i></i><i></i><i></i><b></b>'.PHP_EOL.'<p><b></b><b></b><b></b><b></b><b></b><b></b><b></b><i></i><b></b><i></i><b></b><i></i><b></b><i></i><b></b><b></b><b></b><b></b><b></b><b></b><b></b>'.PHP_EOL.'<p><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><b></b><b></b><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i>'.PHP_EOL.'<p><b></b><i></i><b></b><i></i><b></b><i></i><b></b><i></i><i></i><b></b><i></i><i></i><b></b><i></i><i></i><i></i><b></b><i></i><i></i><b></b><i></i>'.PHP_EOL.'<p><b></b><b></b><b></b><b></b><b></b><i></i><i></i><i></i><i></i><b></b><b></b><b></b><i></i><b></b><i></i><b></b><i></i><i></i><b></b><b></b><b></b>'.PHP_EOL.'<p><b></b><b></b><i></i><b></b><b></b><b></b><b></b><b></b><i></i><i></i><b></b><b></b><i></i><b></b><b></b><b></b><i></i><b></b><i></i><b></b><b></b>'.PHP_EOL.'<p><b></b><b></b><i></i><i></i><b></b><b></b><i></i><i></i><b></b><i></i><b></b><b></b><b></b><b></b><i></i><b></b><b></b><i></i><i></i><b></b><b></b>'.PHP_EOL.'<p><b></b><i></i><b></b><i></i><i></i><b></b><b></b><b></b><i></i><b></b><i></i><b></b><i></i><b></b><b></b><b></b><i></i><i></i><i></i><b></b><b></b>'.PHP_EOL.'<p><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><b></b><i></i><i></i><i></i><i></i><i></i><b></b><b></b><i></i><i></i><b></b><b></b><b></b>'.PHP_EOL.'<p><b></b><b></b><b></b><b></b><b></b><b></b><b></b><i></i><i></i><b></b><b></b><i></i><b></b><i></i><i></i><i></i><b></b><b></b><i></i><b></b><b></b>'.PHP_EOL.'<p><b></b><i></i><i></i><i></i><i></i><i></i><b></b><i></i><i></i><b></b><b></b><i></i><i></i><i></i><b></b><b></b><b></b><i></i><i></i><b></b><b></b>'.PHP_EOL.'<p><b></b><i></i><b></b><b></b><b></b><i></i><b></b><i></i><b></b><b></b><b></b><i></i><b></b><i></i><b></b><i></i><b></b><i></i><i></i><b></b><b></b>'.PHP_EOL.'<p><b></b><i></i><b></b><b></b><b></b><i></i><b></b><i></i><i></i><b></b><i></i><b></b><i></i><b></b><i></i><i></i><b></b><b></b><i></i><b></b><i></i>'.PHP_EOL.'<p><b></b><i></i><b></b><b></b><b></b><i></i><b></b><i></i><b></b><b></b><i></i><b></b><i></i><b></b><b></b><b></b><b></b><i></i><i></i><i></i><b></b>'.PHP_EOL.'<p><b></b><i></i><i></i><i></i><i></i><i></i><b></b><i></i><i></i><i></i><i></i><b></b><b></b><b></b><i></i><i></i><i></i><i></i><i></i><b></b><i></i>'.PHP_EOL.'<p><b></b><b></b><b></b><b></b><b></b><b></b><b></b><i></i><b></b><i></i><b></b><b></b><i></i><b></b><b></b><i></i><b></b><i></i><i></i><b></b><b></b>'.PHP_EOL.''],
  30. ['foobar', QRCode::OUTPUT_STRING_JSON, '[[true,true,true,true,true,true,true,false,false,false,true,true,true,false,true,true,true,true,true,true,true],[true,false,false,false,false,false,true,false,true,true,true,false,false,false,true,false,false,false,false,false,true],[true,false,true,true,true,false,true,false,false,true,false,false,true,false,true,false,true,true,true,false,true],[true,false,true,true,true,false,true,false,false,true,true,true,false,false,true,false,true,true,true,false,true],[true,false,true,true,true,false,true,false,true,true,false,true,true,false,true,false,true,true,true,false,true],[true,false,false,false,false,false,true,false,false,true,false,true,false,false,true,false,false,false,false,false,true],[true,true,true,true,true,true,true,false,true,false,true,false,true,false,true,true,true,true,true,true,true],[false,false,false,false,false,false,false,false,false,true,true,false,false,false,false,false,false,false,false,false,false],[true,false,true,false,true,false,true,false,false,true,false,false,true,false,false,false,true,false,false,true,false],[true,true,true,true,true,false,false,false,false,true,true,true,false,true,false,true,false,false,true,true,true],[true,true,false,true,true,true,true,true,false,false,true,true,false,true,true,true,false,true,false,true,true],[true,true,false,false,true,true,false,false,true,false,true,true,true,true,false,true,true,false,false,true,true],[true,false,true,false,false,true,true,true,false,true,false,true,false,true,true,true,false,false,false,true,true],[false,false,false,false,false,false,false,false,true,false,false,false,false,false,true,true,false,false,true,true,true],[true,true,true,true,true,true,true,false,false,true,true,false,true,false,false,false,true,true,false,true,true],[true,false,false,false,false,false,true,false,false,true,true,false,false,false,true,true,true,false,false,true,true],[true,false,true,true,true,false,true,false,true,true,true,false,true,false,true,false,true,false,false,true,true],[true,false,true,true,true,false,true,false,false,true,false,true,false,true,false,false,true,true,false,true,false],[true,false,true,true,true,false,true,false,true,true,false,true,false,true,true,true,true,false,false,false,true],[true,false,false,false,false,false,true,false,false,false,false,true,true,true,false,false,false,false,false,true,false],[true,true,true,true,true,true,true,false,true,false,true,true,false,true,true,false,true,false,false,true,true]]'],
  31. ['foobar', QRCode::OUTPUT_STRING_TEXT, '####### ### #######'.PHP_EOL.'# # ### # #'.PHP_EOL.'# ### # # # # ### #'.PHP_EOL.'# ### # ### # ### #'.PHP_EOL.'# ### # ## ## # ### #'.PHP_EOL.'# # # # # #'.PHP_EOL.'####### # # # #######'.PHP_EOL.' ## '.PHP_EOL.'# # # # # # # # '.PHP_EOL.'##### ### # # ###'.PHP_EOL.'## ##### ## ### # ##'.PHP_EOL.'## ## # #### ## ##'.PHP_EOL.'# # ### # # ### ##'.PHP_EOL.' # ## ###'.PHP_EOL.'####### ## # ## ##'.PHP_EOL.'# # ## ### ##'.PHP_EOL.'# ### # ### # # # ##'.PHP_EOL.'# ### # # # # ## # '.PHP_EOL.'# ### # ## # #### #'.PHP_EOL.'# # ### # '.PHP_EOL.'####### # ## ## # ##'.PHP_EOL.''],
  32. ];
  33. }
  34. /**
  35. * @dataProvider stringDataProvider
  36. */
  37. public function testImageOutput($data, $type, $expected){
  38. $this->options->type = $type;
  39. $this->assertEquals($expected, (new QRCode($data, new QRString($this->options)))->output());
  40. }
  41. /**
  42. * @expectedException \chillerlan\QRCode\Output\QRCodeOutputException
  43. * @expectedExceptionMessage Invalid matrix!
  44. */
  45. public function testSetMatrixException(){
  46. (new QRString)->setMatrix([]);
  47. }
  48. }