FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
BookStack/tests/Unit/SsrUrlValidatorTest.php at development · ucoding/BookStack · GitHub
ucoding
/
BookStack
Public
forked from
BookStackApp/BookStack
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
BookStack
/
tests
/
Unit
/
SsrUrlValidatorTest.php
Copy path
More file actions
More file actions
Latest commit
History
History
History
62 lines (54 loc) · 3.64 KB
Breadcrumbs
BookStack
/
tests
/
Unit
/
SsrUrlValidatorTest.php
Copy path
File metadata and controls
62 lines (54 loc) · 3.64 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
<?php
namespace
Tests
\
Unit
;
use
BookStack
\
Exceptions
\
HttpFetchException
;
use
BookStack
\
Util
\
SsrUrlValidator
;
use
Tests
\
TestCase
;
class
SsrUrlValidatorTest
extends
TestCase
{
public
function
test_allowed
()
{
$
testMap
= [
// Single values
[
'
config
'
=>
''
,
'
url
'
=>
''
,
'
result
'
=>
false
],
[
'
config
'
=>
''
,
'
url
'
=>
'
https://example.com
'
,
'
result
'
=>
false
],
[
'
config
'
=>
'
'
,
'
url
'
=>
'
https://example.com
'
,
'
result
'
=>
false
],
[
'
config
'
=>
'
*
'
,
'
url
'
=>
''
,
'
result
'
=>
false
],
[
'
config
'
=>
'
*
'
,
'
url
'
=>
'
https://example.com
'
,
'
result
'
=>
true
],
[
'
config
'
=>
'
https://*
'
,
'
url
'
=>
'
https://example.com
'
,
'
result
'
=>
true
],
[
'
config
'
=>
'
http://*
'
,
'
url
'
=>
'
https://example.com
'
,
'
result
'
=>
false
],
[
'
config
'
=>
'
https://*example.com
'
,
'
url
'
=>
'
https://example.com
'
,
'
result
'
=>
true
],
[
'
config
'
=>
'
https://*ample.com
'
,
'
url
'
=>
'
https://example.com
'
,
'
result
'
=>
true
],
[
'
config
'
=>
'
https://*.example.com
'
,
'
url
'
=>
'
https://example.com
'
,
'
result
'
=>
false
],
[
'
config
'
=>
'
https://*.example.com
'
,
'
url
'
=>
'
https://test.example.com
'
,
'
result
'
=>
true
],
[
'
config
'
=>
'
*//example.com
'
,
'
url
'
=>
'
https://example.com
'
,
'
result
'
=>
true
],
[
'
config
'
=>
'
*//example.com
'
,
'
url
'
=>
'
http://example.com
'
,
'
result
'
=>
true
],
[
'
config
'
=>
'
*//example.co
'
,
'
url
'
=>
'
http://example.co.uk
'
,
'
result
'
=>
false
],
[
'
config
'
=>
'
*//example.co/bookstack
'
,
'
url
'
=>
'
https://example.co/bookstack/a/path
'
,
'
result
'
=>
true
],
[
'
config
'
=>
'
*//example.co*
'
,
'
url
'
=>
'
https://example.co.uk/bookstack/a/path
'
,
'
result
'
=>
true
],
[
'
config
'
=>
'
https://example.com
'
,
'
url
'
=>
'
https://example.com/a/b/c?test=cat
'
,
'
result
'
=>
true
],
[
'
config
'
=>
'
https://example.com
'
,
'
url
'
=>
'
https://example.co.uk
'
,
'
result
'
=>
false
],
// Escapes
[
'
config
'
=>
'
https://(.*?).com
'
,
'
url
'
=>
'
https://example.com
'
,
'
result
'
=>
false
],
[
'
config
'
=>
'
https://example.com
'
,
'
url
'
=>
'
https://example.co.uk#https://example.com
'
,
'
result
'
=>
false
],
// Multi values
[
'
config
'
=>
'
*//example.org *//example.com
'
,
'
url
'
=>
'
https://example.com
'
,
'
result
'
=>
true
],
[
'
config
'
=>
'
*//example.org *//example.com
'
,
'
url
'
=>
'
https://example.com/a/b/c?test=cat#hello
'
,
'
result
'
=>
true
],
[
'
config
'
=>
'
*.example.org *.example.com
'
,
'
url
'
=>
'
https://example.co.uk
'
,
'
result
'
=>
false
],
[
'
config
'
=>
'
*.example.org *.example.com
'
,
'
url
'
=>
'
https://example.co.uk
'
,
'
result
'
=>
false
],
[
'
config
'
=>
'
* *.example.com
'
,
'
url
'
=>
'
https://example.co.uk
'
,
'
result
'
=>
true
],
[
'
config
'
=>
'
*//example.org *//example.com *//example.co.uk
'
,
'
url
'
=>
'
https://example.co.uk
'
,
'
result
'
=>
true
],
[
'
config
'
=>
'
*//example.org *//example.com *//example.co.uk
'
,
'
url
'
=>
'
https://example.net
'
,
'
result
'
=>
false
],
];
foreach
(
$
testMap
as
$
test
) {
$
result
= (
new
SsrUrlValidator
(
$
test
[
'
config
'
]))->
allowed
(
$
test
[
'
url
'
]);
$
this
->
assertEquals
(
$
test
[
'
result
'
],
$
result
,
"
Failed asserting url '
{
$
test
[
'
url
'
]}
' with config '
{
$
test
[
'
config
'
]}
' results
"
. (
$
test
[
'
result
'
] ?
'
true
'
:
'
false
'
));
}
}
public
function
test_enssure_allowed
()
{
$
result
= (
new
SsrUrlValidator
(
'
https://example.com
'
))->
ensureAllowed
(
'
https://example.com
'
);
$
this
->
assertNull
(
$
result
);
$
this
->
expectException
(HttpFetchException::class);
(
new
SsrUrlValidator
(
'
https://example.com
'
))->
ensureAllowed
(
'
https://test.example.com
'
);
}
}
Back
|
FazBrowse Home
|
New Git URL