xref: /plugin/include/_test/pagemove_support.test.php (revision 6cfb597df7aab56a124cf5a9019c9c2e94f73234)
112d9bd9eSMichael Hamann<?php
212d9bd9eSMichael Hamann
312d9bd9eSMichael Hamann/**
49d6a86f3SAndreas Gohr * Tests the move support for adapting the syntax of the include plugin
5c76c7b12SAndreas Gohr *
6c76c7b12SAndreas Gohr * @group plugin_include
7c76c7b12SAndreas Gohr * @group plugins
812d9bd9eSMichael Hamann */
912d9bd9eSMichael Hamannclass plugin_include_pagemove_support_test extends DokuWikiTest {
1012d9bd9eSMichael Hamann    public function setup() {
11306441b3SMichael Hamann        $this->pluginsEnabled[] = 'move';
1212d9bd9eSMichael Hamann        $this->pluginsEnabled[] = 'include';
1312d9bd9eSMichael Hamann        parent::setup();
1412d9bd9eSMichael Hamann    }
1512d9bd9eSMichael Hamann
1612d9bd9eSMichael Hamann    public function test_relative_include() {
1783d8beadSMichael Hamann        /** @var $move helper_plugin_move_op */
1883d8beadSMichael Hamann        $move = plugin_load('helper', 'move_op');
199d6a86f3SAndreas Gohr        if (!$move) {
209d6a86f3SAndreas Gohr            $this->markTestSkipped('the move plugin is not installed');
219d6a86f3SAndreas Gohr            return;
229d6a86f3SAndreas Gohr        }
2312d9bd9eSMichael Hamann        saveWikiText('editx', '{{page>start#start}} %%{{page>start}}%% {{section>wiki:syntax#tables&nofooter}} {{page>:}} {{section>test:start#test}}', 'Testcase created');
2412d9bd9eSMichael Hamann        idx_addPage('editx');
2583d8beadSMichael Hamann        $this->assertTrue($move->movePage('editx', 'test:editx'));
2612d9bd9eSMichael Hamann        $this->assertEquals('{{page>:start#start}} %%{{page>start}}%% {{section>wiki:syntax#tables&nofooter}} {{page>:}} {{section>test:start#test}}',rawWiki('test:editx'));
2712d9bd9eSMichael Hamann    }
2812d9bd9eSMichael Hamann
2912d9bd9eSMichael Hamann    public function test_rename() {
3083d8beadSMichael Hamann        /** @var $move helper_plugin_move_op */
3183d8beadSMichael Hamann        $move = plugin_load('helper', 'move_op');
329d6a86f3SAndreas Gohr        if (!$move) {
339d6a86f3SAndreas Gohr            $this->markTestSkipped('the move plugin is not installed');
349d6a86f3SAndreas Gohr            return;
359d6a86f3SAndreas Gohr        }
3612d9bd9eSMichael Hamann        saveWikiText('editx', 'Page to rename', 'Testcase create');
3712d9bd9eSMichael Hamann        saveWikiText('links', '{{section>links#foo}} {{page>editx}} {{page>:eDitX&nofooter}} {{section>editx#test}} {{page>editx&nofooter}}', 'Testcase created');
3812d9bd9eSMichael Hamann        idx_addPage('editx');
3912d9bd9eSMichael Hamann        idx_addPage('links');
4012d9bd9eSMichael Hamann
4183d8beadSMichael Hamann        $this->assertTrue($move->movePage('editx', 'test:edit'));
4212d9bd9eSMichael Hamann        $this->assertEquals('{{section>links#foo}} {{page>test:edit}} {{page>test:edit&nofooter}} {{section>test:edit#test}} {{page>test:edit&nofooter}}', rawWiki('links'));
4312d9bd9eSMichael Hamann    }
44*6cfb597dSMichael Hamann
45*6cfb597dSMichael Hamann    public function test_relative_include_adaption() {
46*6cfb597dSMichael Hamann        /** @var $move helper_plugin_move_op */
47*6cfb597dSMichael Hamann        $move = plugin_load('helper', 'move_op');
48*6cfb597dSMichael Hamann        if (!$move) {
49*6cfb597dSMichael Hamann            $this->markTestSkipped('the move plugin is not installed');
50*6cfb597dSMichael Hamann            return;
51*6cfb597dSMichael Hamann        }
52*6cfb597dSMichael Hamann
53*6cfb597dSMichael Hamann        $text = '====== Main ======
54*6cfb597dSMichael Hamann
55*6cfb597dSMichael HamannThis is a test page
56*6cfb597dSMichael Hamann
57*6cfb597dSMichael Hamann[[.1:page_1|link]]
58*6cfb597dSMichael Hamann
59*6cfb597dSMichael Hamann{{page>.1:page_1&nofooter&noeditbutton}}
60*6cfb597dSMichael Hamann
61*6cfb597dSMichael Hamann{{page>.1:page_2&nofooter&noeditbutton}}';
62*6cfb597dSMichael Hamann
63*6cfb597dSMichael Hamann        saveWikiText('old:namespace:main', $text, 'Created');
64*6cfb597dSMichael Hamann        saveWikiText('old:namespace:1:page_1', 'Page 1', 'Created');
65*6cfb597dSMichael Hamann        saveWikiText('old:namespace:1:page_2', 'Page 2', 'Created');
66*6cfb597dSMichael Hamann        idx_addPage('old:namespace:main');
67*6cfb597dSMichael Hamann        idx_addPage('old:namespace:1:page_1');
68*6cfb597dSMichael Hamann        idx_addPage('old:namespace:1:page_2');
69*6cfb597dSMichael Hamann
70*6cfb597dSMichael Hamann        $this->assertTrue($move->movePage('old:namespace:main', 'new:namespace:main'));
71*6cfb597dSMichael Hamann        $this->assertTrue($move->movePage('old:namespace:1:page_1', 'new:namespace:1:page_1'));
72*6cfb597dSMichael Hamann        $this->assertTrue($move->movePage('old:namespace:1:page_2', 'new:namespace:1:page_2'));
73*6cfb597dSMichael Hamann        $this->assertEquals($text, rawWiki('new:namespace:main'));
74*6cfb597dSMichael Hamann    }
7512d9bd9eSMichael Hamann}
76