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.
 
 
 
 
 

114 lines
3.8 KiB

  1. <?php
  2. class helper_plugin_move_plan_findMissingDocuments_mock extends helper_plugin_move_plan {
  3. public function findMissingDocuments($src, $dst, $type = self::TYPE_PAGES) {
  4. parent::findMissingDocuments($src, $dst, $type);
  5. }
  6. public function getTmpstore() {
  7. return $this->tmpstore;
  8. }
  9. }
  10. /**
  11. * Test cases for helper_plugin_move_plan::stepThroughDocuments function of the move plugin
  12. *
  13. * @group plugin_move
  14. * @group plugin_move_unittests
  15. * @group plugins
  16. * @group unittests
  17. * @covers helper_plugin_move_plan::findMissingDocuments
  18. */
  19. class plugin_move_findMissingPages_test extends DokuWikiTest {
  20. protected $pluginsEnabled = array('move',);
  21. /** @var helper_plugin_move_plan_findMissingDocuments_mock $plan */
  22. protected $plan;
  23. /**
  24. * @coversNothing
  25. */
  26. public function setUp(): void {
  27. parent::setUp();
  28. $this->plan = new helper_plugin_move_plan_findMissingDocuments_mock();
  29. }
  30. /**
  31. * @coversNothing
  32. */
  33. public function tearDown(): void {
  34. global $conf;
  35. $dirs = array('indexdir','datadir','metadir', 'mediadir');
  36. foreach ($dirs as $dir) {
  37. io_rmdir($conf[$dir],true);
  38. mkdir($conf[$dir]);
  39. }
  40. $this->plan->abort();
  41. parent::tearDown();
  42. }
  43. function test_findMissingPages_empty () {
  44. $this->plan->findMissingDocuments('oldns','newns:');
  45. $tmpstore = $this->plan->getTmpstore();
  46. $this->assertSame(array(),$tmpstore['miss']);
  47. }
  48. function test_findMissingPages_missingPage_default () {
  49. saveWikiText('start','[[oldns:missing]]','test edit');
  50. idx_addPage('start');
  51. $this->plan->findMissingDocuments('oldns:','newns:');
  52. $tmpstore = $this->plan->getTmpstore();
  53. $this->assertSame(array('oldns:missing' => 'newns:missing',),$tmpstore['miss']);
  54. }
  55. function test_findMissingPages_missingPage_explicit () {
  56. saveWikiText('start','[[oldns:missing]]','test edit');
  57. idx_addPage('start');
  58. $this->plan->findMissingDocuments('oldns:','newns:',helper_plugin_move_plan::TYPE_PAGES);
  59. $tmpstore = $this->plan->getTmpstore();
  60. $this->assertSame(array('oldns:missing' => 'newns:missing',),$tmpstore['miss']);
  61. }
  62. function test_findMissingPages_missingPage_integrated () {
  63. saveWikiText('oldns:start','[[oldns:missing]] {{oldns:missing.png}}','test edit');
  64. idx_addPage('oldns:start');
  65. $this->plan->addPageNamespaceMove('oldns', 'newns');
  66. $this->plan->addMediaNamespaceMove('oldns', 'newns');
  67. $this->plan->commit();
  68. $missing_file = file(TMP_DIR . '/data/meta/__move_missing');
  69. $this->assertSame(array("oldns:missing\tnewns:missing\n",),$missing_file,'new configuration fails');
  70. $missing_media_file = file(TMP_DIR . '/data/meta/__move_missing_media');
  71. $this->assertSame(array("oldns:missing.png\tnewns:missing.png\n",),$missing_media_file,'new configuration fails');
  72. }
  73. function test_findMissingPages_missingMedia () {
  74. saveWikiText('start','{{oldns:missing.png}}','test edit');
  75. idx_addPage('start');
  76. $this->plan->findMissingDocuments('oldns:','newns:',helper_plugin_move_plan::TYPE_MEDIA);
  77. $tmpstore = $this->plan->getTmpstore();
  78. $this->assertSame(array('oldns:missing.png' => 'newns:missing.png',),$tmpstore['miss_media']);
  79. }
  80. function test_findMissingDocuments_nonMissingMedia () {
  81. $filepath = DOKU_TMP_DATA.'media/oldns/oldnsimage.png';
  82. io_makeFileDir($filepath);
  83. io_saveFile($filepath,'');
  84. saveWikiText('start','{{oldns:oldnsimage.png}}','test edit');
  85. idx_addPage('start');
  86. $this->plan->findMissingDocuments('oldns:','newns:',helper_plugin_move_plan::TYPE_MEDIA);
  87. $tmpstore = $this->plan->getTmpstore();
  88. $this->assertSame(array(),$tmpstore['miss_media']);
  89. }
  90. }