-
Notifications
You must be signed in to change notification settings - Fork 333
/
MigrateSiteTreeLinkingTaskTest.php
80 lines (71 loc) · 2.2 KB
/
MigrateSiteTreeLinkingTaskTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
/**
* @package cms
* @subpackage tests
*/
class MigrateSiteTreeLinkingTaskTest extends SapphireTest {
public static $fixture_file = 'MigrateSiteTreeLinkingTaskTest.yml';
public static $use_draft_site = true;
public function testLinkingMigration() {
ob_start();
$task = new MigrateSiteTreeLinkingTask();
$task->run(null);
$this->assertEquals (
"Rewrote 9 link(s) on 5 page(s) to use shortcodes.\n",
ob_get_contents(),
'Rewritten links are correctly reported'
);
ob_end_clean();
$homeID = $this->idFromFixture('SiteTree', 'home');
$aboutID = $this->idFromFixture('SiteTree', 'about');
$staffID = $this->idFromFixture('SiteTree', 'staff');
$actionID = $this->idFromFixture('SiteTree', 'action');
$hashID = $this->idFromFixture('SiteTree', 'hash_link');
$homeContent = sprintf (
'<a href="[sitetree_link id=%d]">About</a><a href="[sitetree_link id=%d]">Staff</a><a href="http://silverstripe.org/">External Link</a>',
$aboutID,
$staffID
);
$aboutContent = sprintf (
'<a href="[sitetree_link id=%d]">Home</a><a href="[sitetree_link id=%d]">Staff</a>',
$homeID,
$staffID
);
$staffContent = sprintf (
'<a href="[sitetree_link id=%d]">Home</a><a href="[sitetree_link id=%d]">About</a>',
$homeID,
$aboutID
);
$actionContent = sprintf (
'<a href="[sitetree_link id=%d]SearchForm">Search Form</a>', $homeID
);
$hashLinkContent = sprintf (
'<a href="[sitetree_link id=%d]#anchor">Home</a><a href="[sitetree_link id=%d]#second-anchor">About</a>',
$homeID,
$aboutID
);
$this->assertEquals (
$homeContent,
DataObject::get_by_id('SiteTree', $homeID)->Content,
'HTML URLSegment links are rewritten.'
);
$this->assertEquals (
$aboutContent,
DataObject::get_by_id('SiteTree', $aboutID)->Content
);
$this->assertEquals (
$staffContent,
DataObject::get_by_id('SiteTree', $staffID)->Content
);
$this->assertEquals (
$actionContent,
DataObject::get_by_id('SiteTree', $actionID)->Content,
'Links to actions on pages are rewritten correctly.'
);
$this->assertEquals (
$hashLinkContent,
DataObject::get_by_id('SiteTree', $hashID)->Content,
'Hash/anchor links are correctly handled.'
);
}
}