ILIAS
trunk Revision v13.0_alpha-62-g3b72d83f2e5
◀ ilDoc Overview
LinkManagerTest.php
Go to the documentation of this file.
1
<?php
2
19
declare(strict_types=1);
20
21
namespace
ILIAS\COPage\Test\Link
;
22
23
use PHPUnit\Framework\TestCase;
24
use
ILIAS\COPage\Link\LinkManager
;
25
29
class
LinkManagerTest
extends
\COPageTestBase
30
{
31
public
function
testGetInternalLinks
(): void
32
{
33
$page
= $this->
getEmptyPageWithDom
();
34
$lm =
new
LinkManager
();
35
36
$cases = [
37
'xx [iln cat="106"] xx [/iln] xx'
=> [
38
"Target"
=>
"il__obj_106"
,
39
"Type"
=>
"RepositoryItem"
,
40
"TargetFrame"
=>
""
,
41
"Anchor"
=>
""
42
],
43
'xx [iln page="107"] xx [/iln] xx'
=> [
44
"Target"
=>
"il__pg_107"
,
45
"Type"
=>
"PageObject"
,
46
"TargetFrame"
=>
""
,
47
"Anchor"
=>
""
48
],
49
'xx [iln chap="106"] xx [/iln] xx'
=> [
50
"Target"
=>
"il__st_106"
,
51
"Type"
=>
"StructureObject"
,
52
"TargetFrame"
=>
""
,
53
"Anchor"
=>
""
54
],
55
'xx [iln inst="123" page="106"] xx [/iln] xx'
=> [
56
"Target"
=>
"il_123_pg_106"
,
57
"Type"
=>
"PageObject"
,
58
"TargetFrame"
=>
""
,
59
"Anchor"
=>
""
60
],
61
'xx [iln page="106" target="New" anchor="test"] xx [/iln] xx'
=> [
62
"Target"
=>
"il__pg_106"
,
63
"Type"
=>
"PageObject"
,
64
"TargetFrame"
=>
"New"
,
65
"Anchor"
=>
"test"
66
],
67
'xx [iln term="106" target="New"] xx [/iln] xx'
=> [
68
"Target"
=>
"il__git_106"
,
69
"Type"
=>
"GlossaryItem"
,
70
"TargetFrame"
=>
"New"
,
71
"Anchor"
=>
""
72
],
73
'xx [iln wpage="106" anchor="test"] xx [/iln] xx'
=> [
74
"Target"
=>
"il__wpage_106"
,
75
"Type"
=>
"WikiPage"
,
76
"TargetFrame"
=>
""
,
77
"Anchor"
=>
"test"
78
],
79
'xx [iln ppage="106"] xx [/iln] xx'
=> [
80
"Target"
=>
"il__ppage_106"
,
81
"Type"
=>
"PortfolioPage"
,
82
"TargetFrame"
=>
""
,
83
"Anchor"
=>
""
84
],
85
'xx [iln media="545"/] xx '
=> [
86
"Target"
=>
"il__mob_545"
,
87
"Type"
=>
"MediaObject"
,
88
"TargetFrame"
=>
""
,
89
"Anchor"
=>
""
90
],
91
'xx [iln media="108" target="Media"] xx [/iln] xx'
=> [
92
"Target"
=>
"il__mob_108"
,
93
"Type"
=>
"MediaObject"
,
94
"TargetFrame"
=>
"Media"
,
95
"Anchor"
=>
""
96
],
97
'xx [iln dfile="546"] xx [/iln] xx'
=> [
98
"Target"
=>
"il__dfile_546"
,
99
"Type"
=>
"File"
,
100
"TargetFrame"
=>
""
,
101
"Anchor"
=>
""
102
]
103
];
104
105
foreach
($cases as $html => $expected) {
106
$html = $this->
legacyHtmlToXml
(
107
'<div id="1:1234" class="ilc_text_block_Standard">'
. $html .
'</div>'
108
);
109
$this->
insertParagraphAt
(
$page
,
"pg"
, $html);
110
$page
->insertPCIds();
111
112
$links = $lm->getInternalLinks(
$page
->getDomDoc());
113
114
//var_dump($links);
115
//exit;
116
117
$this->assertEquals(
118
$expected,
119
current($links)
120
);
121
}
122
}
123
124
public
function
testContainsFileLinkId
(): void
125
{
126
$page
= $this->
getEmptyPageWithDom
();
127
$lm =
new
LinkManager
();
128
129
$html =
'xx [iln dfile="546"] xx [/iln] xx'
;
130
$html = $this->
legacyHtmlToXml
(
131
'<div id="1:1234" class="ilc_text_block_Standard">'
. $html .
'</div>'
132
);
133
$this->
insertParagraphAt
(
$page
,
"pg"
, $html);
134
$page
->insertPCIds();
135
136
$this->assertEquals(
137
true
,
138
$lm->containsFileLinkId(
$page
->getDomDoc(),
"il__file_546"
)
139
);
140
141
$this->assertEquals(
142
true
,
143
$lm->containsFileLinkId(
$page
->getDomDoc(),
"il__dfile_546"
)
144
);
145
146
$this->assertEquals(
147
false
,
148
$lm->containsFileLinkId(
$page
->getDomDoc(),
"il__file_555"
)
149
);
150
}
151
152
public
function
testExtractFileFromLinkId
(): void
153
{
154
$page
= $this->
getEmptyPageWithDom
();
155
$lm =
new
LinkManager
();
156
157
$this->assertEquals(
158
555,
159
$lm->extractFileFromLinkId(
"il__file_555"
)
160
);
161
}
162
163
public
function
testResolveInternalLinks
(): void
164
{
165
$lm =
new
LinkManager
();
166
167
$cases = [
168
[
169
"html"
=>
'xx [iln inst="20" page="107"] xx [/iln] xx'
,
170
"map"
=> [
171
"il_20_pg_107"
=>
"il_0_pg_108"
172
],
173
"expected"
=>
'<IntLink Target="il__pg_108" Type="PageObject">'
174
],
175
[
176
"html"
=>
'xx [iln inst="20" chap="11"] xx [/iln] xx'
,
177
"map"
=> [
178
"il_20_st_11"
=>
"il_0_st_12"
179
],
180
"expected"
=>
'<IntLink Target="il__st_12" Type="StructureObject">'
181
]
182
];
183
184
foreach
($cases as $case) {
185
$page
= $this->
getEmptyPageWithDom
();
186
$html = $this->
legacyHtmlToXml
(
187
'<div id="1:1234" class="ilc_text_block_Standard">'
. $case[
"html"
] .
'</div>'
188
);
189
$this->
insertParagraphAt
(
$page
,
"pg"
, $html);
190
$page
->insertPCIds();
191
192
$dom =
$page
->getDomDoc();
193
$changed = $lm->resolveIntLinks($dom, $case[
"map"
]);
194
195
$this->assertTrue($changed);
196
$this->assertStringContainsString(
197
$case[
"expected"
],
198
$page
->getXMLFromDom()
199
);
200
}
201
}
202
203
public
function
testMoveInternalLinks
(): void
204
{
205
$lm =
new
LinkManager
();
206
207
$cases = [
208
[
209
"html"
=>
'xx [iln page="107"] xx [/iln] xx'
,
210
"map"
=> [
211
107 => 108
212
],
213
"expected"
=>
'<IntLink Target="il__pg_108" Type="PageObject">'
214
],
215
[
216
"html"
=>
'xx [iln chap="10"] xx [/iln] xx'
,
217
"map"
=> [
218
10 => 11
219
],
220
"expected"
=>
'<IntLink Target="il__st_11" Type="StructureObject">'
221
]
222
];
223
224
foreach
($cases as $case) {
225
$page
= $this->
getEmptyPageWithDom
();
226
$html = $this->
legacyHtmlToXml
(
227
'<div id="1:1234" class="ilc_text_block_Standard">'
. $case[
"html"
] .
'</div>'
228
);
229
$this->
insertParagraphAt
(
$page
,
"pg"
, $html);
230
$page
->insertPCIds();
231
232
$dom =
$page
->getDomDoc();
233
$links = $lm->moveIntLinks($dom, $case[
"map"
],
function
(
int
$id
) {
234
$type = [
235
11 =>
"st"
,
236
108 =>
"pg"
237
];
238
return
$type[
$id
];
239
});
240
241
$this->assertStringContainsString(
242
$case[
"expected"
],
243
$page
->getXMLFromDom()
244
);
245
}
246
}
247
}
$id
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition:
plugin.php:23
COPageTestBase
Definition:
COPageTestBase.php:27
COPageTestBase\legacyHtmlToXml
legacyHtmlToXml(string $content)
Definition:
COPageTestBase.php:223
COPageTestBase\getEmptyPageWithDom
getEmptyPageWithDom()
Definition:
COPageTestBase.php:212
COPageTestBase\insertParagraphAt
insertParagraphAt(\ilPageObject $page, string $hier_id, string $text="")
Definition:
COPageTestBase.php:175
ILIAS\COPage\Link\LinkManager
Definition:
LinkManager.php:27
ILIAS\COPage\Test\Link\LinkManagerTest
Definition:
LinkManagerTest.php:30
ILIAS\COPage\Test\Link\LinkManagerTest\testMoveInternalLinks
testMoveInternalLinks()
Definition:
LinkManagerTest.php:203
ILIAS\COPage\Test\Link\LinkManagerTest\testResolveInternalLinks
testResolveInternalLinks()
Definition:
LinkManagerTest.php:163
ILIAS\COPage\Test\Link\LinkManagerTest\testContainsFileLinkId
testContainsFileLinkId()
Definition:
LinkManagerTest.php:124
ILIAS\COPage\Test\Link\LinkManagerTest\testGetInternalLinks
testGetInternalLinks()
Definition:
LinkManagerTest.php:31
ILIAS\COPage\Test\Link\LinkManagerTest\testExtractFileFromLinkId
testExtractFileFromLinkId()
Definition:
LinkManagerTest.php:152
$page
$page
Definition:
ltitoolregistration.php:51
ILIAS\COPage\Test\Link
Definition:
ExtLinkMapperTest.php:21
components
ILIAS
COPage
tests
Link
LinkManagerTest.php
Generated on Wed Nov 11 2026 23:06:37 for ILIAS by
1.9.4 (using
Doxyfile
)