You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

125 lines
3.9 KiB

  1. <?php
  2. // must be run within Dokuwiki
  3. if (!defined('DOKU_INC')) die();
  4. /**
  5. * Test cases for the move plugin
  6. *
  7. * @group plugin_move
  8. * @group plugins
  9. */
  10. class plugin_move_mediamove_test extends DokuWikiTest {
  11. public function setUp(): void {
  12. $this->pluginsEnabled[] = 'move';
  13. parent::setUp();
  14. }
  15. /**
  16. * @group slow
  17. */
  18. public function test_movePageWithRelativeMedia() {
  19. $src = 'mediareltest:foo';
  20. saveWikiText($src,
  21. '{{ myimage.png}} [[:start|{{ testimage.png?200x800 }}]] [[bar|{{testimage.gif?400x200}}]]
  22. [[doku>wiki:dokuwiki|{{wiki:logo.png}}]] [[http://www.example.com|{{testimage.jpg}}]]
  23. [[doku>wiki:foo|{{foo.gif?200x3000}}]]', 'Test setup');
  24. idx_addPage($src);
  25. $dst = 'foo';
  26. /** @var helper_plugin_move_op $move */
  27. $move = plugin_load('helper', 'move_op');
  28. $this->assertTrue($move->movePage($src, $dst));
  29. $this->assertEquals('{{ mediareltest:myimage.png}} [[:start|{{ mediareltest:testimage.png?200x800 }}]] [[mediareltest:bar|{{mediareltest:testimage.gif?400x200}}]]
  30. [[doku>wiki:dokuwiki|{{wiki:logo.png}}]] [[http://www.example.com|{{mediareltest:testimage.jpg}}]]
  31. [[doku>wiki:foo|{{mediareltest:foo.gif?200x3000}}]]', rawWiki('foo'));
  32. }
  33. /**
  34. * @group slow
  35. */
  36. public function test_moveSingleMedia() {
  37. global $AUTH_ACL;
  38. $AUTH_ACL[] = "wiki:*\t@ALL\t16";
  39. $AUTH_ACL[] = "foobar:*\t@ALL\t8";
  40. saveWikiText('wiki:movetest', '{{wiki:dokuwiki-128.png?200}}', 'Test initialized');
  41. idx_addPage('wiki:movetest');
  42. $src = 'wiki:dokuwiki-128.png';
  43. $dst = 'foobar:logo.png';
  44. /** @var helper_plugin_move_op $move */
  45. $move = plugin_load('helper', 'move_op');
  46. $this->assertTrue($move->moveMedia($src, $dst));
  47. $this->assertTrue(@file_exists(mediaFn('foobar:logo.png')));
  48. $this->assertEquals('{{foobar:logo.png?200}}', rawWiki('wiki:movetest'));
  49. }
  50. /**
  51. * @group slow
  52. */
  53. public function test_moveSingleMedia_colonstart() {
  54. global $AUTH_ACL;
  55. $AUTH_ACL[] = "wiki:*\t@ALL\t16";
  56. $AUTH_ACL[] = "foobar:*\t@ALL\t16";
  57. $AUTH_ACL[] = "*\t@ALL\t8";
  58. $filepath = DOKU_TMP_DATA.'media/wiki/testimage.png';
  59. io_makeFileDir($filepath);
  60. io_saveFile($filepath,'');
  61. saveWikiText('wiki:movetest', '{{:wiki:testimage.png?200}}', 'Test initialized');
  62. idx_addPage('wiki:movetest');
  63. $src = 'wiki:testimage.png';
  64. $dst = 'foobar:logo_2.png';
  65. /** @var helper_plugin_move_op $move */
  66. $move = plugin_load('helper', 'move_op');
  67. $this->assertTrue($move->moveMedia($src, $dst));
  68. $this->assertTrue(@file_exists(mediaFn('foobar:logo_2.png')));
  69. $this->assertEquals('{{foobar:logo_2.png?200}}', rawWiki('wiki:movetest'));
  70. $this->assertTrue($move->moveMedia($dst, 'logo_2.png'));
  71. $this->assertTrue(@file_exists(mediaFn('logo_2.png')));
  72. $this->assertEquals('{{:logo_2.png?200}}', rawWiki('wiki:movetest'));
  73. }
  74. /**
  75. * @group slow
  76. */
  77. public function test_moveSingleMedia_space() {
  78. global $AUTH_ACL;
  79. $AUTH_ACL[] = "wiki:*\t@ALL\t16";
  80. $AUTH_ACL[] = "foobar:*\t@ALL\t8";
  81. $filepath = DOKU_TMP_DATA.'media/wiki/foo/test_image.png';
  82. io_makeFileDir($filepath);
  83. io_saveFile($filepath,'');
  84. saveWikiText('wiki:movetest', '{{:wiki:foo:test image.png?200|test image}}', 'Test initialized');
  85. idx_addPage('wiki:movetest');
  86. $src = 'wiki:foo:test_image.png';
  87. $dst = 'wiki:foobar:test_image.png';
  88. /** @var helper_plugin_move_op $move */
  89. $move = plugin_load('helper', 'move_op');
  90. $this->assertTrue($move->moveMedia($src, $dst));
  91. $this->assertTrue(@file_exists(mediaFn('wiki:foobar:test_image.png')));
  92. $this->assertEquals('{{wiki:foobar:test_image.png?200|test image}}', rawWiki('wiki:movetest'));
  93. }
  94. }