19 declare(strict_types=1);
29 protected function setUp(): void
31 $this->URI_COMPLETE = new \ILIAS\Data\URI(
'https://www.ilias.de/foo/bar?var1=42&var2=foo#12345');
37 $this->assertInstanceOf(\
ILIAS\
Data\URI::class,
$url->buildURI());
38 $this->assertEquals(
'https://www.ilias.de/foo/bar?var1=42&var2=foo#12345', (
string)
$url->buildURI());
44 $result =
$url->acquireParameter([
'test'],
'title');
45 $this->assertInstanceOf(URLBuilder::class, $result[0]);
48 (
string) $result[0]->buildURI()
50 $this->assertInstanceOf(URLBuilderToken::class, $result[1]);
52 $this->assertNotEmpty($result[1]->getToken());
58 $result =
$url->acquireParameter([
'test',
'object',
'metadata'],
'title');
59 $this->assertInstanceOf(URLBuilder::class, $result[0]);
65 (
string) $result[0]->buildURI()
67 $this->assertInstanceOf(URLBuilderToken::class, $result[1]);
69 'test' . URLBuilder::SEPARATOR .
70 'object' . URLBuilder::SEPARATOR .
71 'metadata' . URLBuilder::SEPARATOR .
75 $this->assertNotEmpty($result[1]->getToken());
82 $result =
$url->acquireParameter([
'test'],
'title',
'bar');
83 $this->assertInstanceOf(URLBuilder::class, $result[0]);
85 'https://www.ilias.de/foo/bar?var1=42&var2=foo&test' . $sep .
'title=bar#12345',
86 (
string) $result[0]->buildURI()
88 $this->assertInstanceOf(URLBuilderToken::class, $result[1]);
89 $this->assertEquals(
'test' . $sep .
'title', $result[1]->getName());
90 $this->assertNotEmpty($result[1]->getToken());
97 $result =
$url->acquireParameter([
'test'],
'title',
'foo');
99 'https://www.ilias.de/foo/bar?var1=42&var2=foo&test' . $sep .
'title=foo#12345',
100 (
string) $result[0]->buildURI()
102 $this->assertEquals(
'test' . $sep .
'title', $result[1]->getName());
104 $result2 = $result[0]->acquireParameter([
'notatest'],
'title',
'bar');
106 'https://www.ilias.de/foo/bar?var1=42&var2=foo&test' . $sep .
'title=foo¬atest' . $sep .
'title=bar#12345',
107 (
string) $result2[0]->buildURI()
109 $this->assertEquals(
'notatest' . $sep .
'title', $result2[1]->getName());
110 $this->assertNotEquals($result[1]->getToken(), $result2[1]->getToken());
117 $result =
$url->acquireParameter([
'test'],
'title',
'bar');
119 'https://www.ilias.de/foo/bar?var1=42&var2=foo&test' . $sep .
'title=bar#12345',
120 (
string) $result[0]->buildURI()
123 $url = $result[0]->withParameter($result[1],
'foobar');
124 $this->assertInstanceOf(URLBuilder::class,
$url);
126 'https://www.ilias.de/foo/bar?var1=42&var2=foo&test' . $sep .
'title=foobar#12345',
127 (
string)
$url->buildURI()
130 $url = $result[0]->withParameter($result[1], [
'foo',
'bar']);
131 $this->assertInstanceOf(URLBuilder::class, $url);
133 'https://www.ilias.de/foo/bar?var1=42&var2=foo' 134 .
'&test' . $sep . urlencode(
'title[]') .
'=foo' 135 .
'&test' . $sep . urlencode(
'title[]') .
'=bar' 137 (
string) $url->buildURI()
145 $result =
$url->acquireParameter([
'test'],
'title',
'bar');
147 'https://www.ilias.de/foo/bar?var1=42&var2=foo&test' . $sep .
'title=bar#12345',
148 (
string) $result[0]->buildURI()
151 $url = $result[0]->deleteParameter($result[1]);
152 $this->assertEquals(
'https://www.ilias.de/foo/bar?var1=42&var2=foo#12345', (
string)
$url->buildURI());
162 $this->expectException(\LengthException::class);
163 $output = $result[0]->buildURI();
170 $this->assertInstanceOf(URLBuilder::class,
$url);
171 $this->assertEquals(
'https://www.ilias.de/foo/bar?var1=42&var2=foo', (
string)
$url->buildURI());
173 $this->assertInstanceOf(URLBuilder::class, $url);
174 $this->assertEquals(
'https://www.ilias.de/foo/bar?var1=42&var2=foo#12345', (
string) $url->buildURI());
175 $url = $url->withFragment(
'54321');
176 $this->assertInstanceOf(URLBuilder::class, $url);
177 $this->assertEquals(
'https://www.ilias.de/foo/bar?var1=42&var2=foo#54321', (
string) $url->buildURI());
183 $result =
$url->acquireParameter([
'test'],
'title',
'bar');
184 $url = $result[0]->withURI(
189 (
string)
$url->buildURI()
198 $result1 =
$url->acquireParameter([
'test',
'object'],
'title',
'bar');
200 $expected_token =
'new Map([["' . $result1[1]->getName() .
'",' 201 .
'new il.UI.core.URLBuilderToken(["test","object"], "title", "' . $result1[1]->getToken() .
'")]])';
202 $this->assertEquals($expected_token,
$url->renderTokens([$result1[1]]));
205 $result2 =
$url->acquireParameter([
'test'],
'description',
'foo');
207 $this->assertEquals($expected_token,
$url->renderTokens([$result1[1]]));
210 $expected_token =
'new Map([["' . $result1[1]->getName() .
'",' 211 .
'new il.UI.core.URLBuilderToken(["test","object"], "title", "' . $result1[1]->getToken() .
'")],' 212 .
'["' . $result2[1]->getName() .
'",' 213 .
'new il.UI.core.URLBuilderToken(["test"], "description", "' . $result2[1]->getToken() .
'")]])';
214 $this->assertEquals($expected_token,
$url->renderTokens([$result1[1], $result2[1]]));
222 $result1 =
$url->acquireParameter([
'test',
'object'],
'title',
'bar');
224 $expected_token =
'new Map([["' . $result1[1]->getName() .
'",' 225 .
'new il.UI.core.URLBuilderToken(["test","object"], "title", "' . $result1[1]->getToken() .
'")]])';
226 $expected_object =
'new il.UI.core.URLBuilder(new URL("https://www.ilias.de/foo/bar?var1=42&var2=foo&' 228 $this->assertEquals($expected_object,
$url->renderObject([$result1[1]]));
231 $result2 =
$url->acquireParameter([
'test'],
'description',
'foo');
233 $expected_object =
'new il.UI.core.URLBuilder(new URL("https://www.ilias.de/foo/bar?var1=42&var2=foo&' 236 $this->assertEquals($expected_object,
$url->renderObject([$result1[1]]));
239 $expected_token =
'new Map([["' . $result1[1]->getName() .
'",' 240 .
'new il.UI.core.URLBuilderToken(["test","object"], "title", "' . $result1[1]->getToken() .
'")],' 241 .
'["' . $result2[1]->getName() .
'",' 242 .
'new il.UI.core.URLBuilderToken(["test"], "description", "' . $result2[1]->getToken() .
'")]])';
243 $expected_object =
'new il.UI.core.URLBuilder(new URL("https://www.ilias.de/foo/bar?var1=42&var2=foo&' 246 $this->assertEquals($expected_object,
$url->renderObject([$result1[1], $result2[1]]));
testAcquireParamWithLongNamespace()
const URL_MAX_LENGTH
A maximum length of 8192 characters should be safe to use in most browsers, even though longer URLs w...
Interface Observer Contains several chained tasks and infos about them.
const SEPARATOR
Separator for parts of a parameter's namespace.
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
readonly ILIAS Data URI $URI_COMPLETE
testRemoveAndAddFragment()
testAcquireParamWithSameName()
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
testAcquireParamWithValue()