Chris@17
|
1 <?php
|
Chris@17
|
2
|
Chris@17
|
3 namespace Drupal\Tests\media\Unit;
|
Chris@17
|
4
|
Chris@17
|
5 use Drupal\Core\PrivateKey;
|
Chris@17
|
6 use Drupal\Core\Routing\RequestContext;
|
Chris@17
|
7 use Drupal\media\IFrameUrlHelper;
|
Chris@17
|
8 use Drupal\Tests\UnitTestCase;
|
Chris@17
|
9
|
Chris@17
|
10 /**
|
Chris@17
|
11 * @coversDefaultClass \Drupal\media\IFrameUrlHelper
|
Chris@17
|
12 *
|
Chris@17
|
13 * @group media
|
Chris@17
|
14 */
|
Chris@17
|
15 class IFrameUrlHelperTest extends UnitTestCase {
|
Chris@17
|
16
|
Chris@17
|
17 /**
|
Chris@17
|
18 * Data provider for testIsSecure().
|
Chris@17
|
19 *
|
Chris@17
|
20 * @see ::testIsSecure()
|
Chris@17
|
21 *
|
Chris@17
|
22 * @return array
|
Chris@17
|
23 */
|
Chris@17
|
24 public function providerIsSecure() {
|
Chris@17
|
25 return [
|
Chris@17
|
26 'no domain' => [
|
Chris@17
|
27 '/path/to/media.php',
|
Chris@17
|
28 'http://www.example.com/',
|
Chris@17
|
29 FALSE,
|
Chris@17
|
30 ],
|
Chris@17
|
31 'no base URL domain' => [
|
Chris@17
|
32 'http://www.example.com/media.php',
|
Chris@17
|
33 '/invalid/base/url',
|
Chris@17
|
34 FALSE,
|
Chris@17
|
35 ],
|
Chris@17
|
36 'same domain' => [
|
Chris@17
|
37 'http://www.example.com/media.php',
|
Chris@17
|
38 'http://www.example.com/',
|
Chris@17
|
39 FALSE,
|
Chris@17
|
40 ],
|
Chris@17
|
41 'different domain' => [
|
Chris@17
|
42 'http://www.example.com/media.php',
|
Chris@17
|
43 'http://www.example-assets.com/',
|
Chris@17
|
44 TRUE,
|
Chris@17
|
45 ],
|
Chris@17
|
46 'same subdomain' => [
|
Chris@17
|
47 'http://foo.example.com/media.php',
|
Chris@17
|
48 'http://foo.example.com/',
|
Chris@17
|
49 FALSE,
|
Chris@17
|
50 ],
|
Chris@17
|
51 'different subdomain' => [
|
Chris@17
|
52 'http://assets.example.com/media.php',
|
Chris@17
|
53 'http://foo.example.com/',
|
Chris@17
|
54 TRUE,
|
Chris@17
|
55 ],
|
Chris@17
|
56 'subdomain and top-level domain' => [
|
Chris@17
|
57 'http://assets.example.com/media.php',
|
Chris@17
|
58 'http://example.com/',
|
Chris@17
|
59 TRUE,
|
Chris@17
|
60 ],
|
Chris@17
|
61 ];
|
Chris@17
|
62 }
|
Chris@17
|
63
|
Chris@17
|
64 /**
|
Chris@17
|
65 * Tests that isSecure() behaves properly.
|
Chris@17
|
66 *
|
Chris@17
|
67 * @param string $url
|
Chris@17
|
68 * The URL to test for security.
|
Chris@17
|
69 * @param string $base_url
|
Chris@17
|
70 * The base URL to compare $url against.
|
Chris@17
|
71 * @param bool $secure
|
Chris@17
|
72 * The expected result of isSecure().
|
Chris@17
|
73 *
|
Chris@17
|
74 * @covers ::isSecure
|
Chris@17
|
75 *
|
Chris@17
|
76 * @dataProvider providerIsSecure
|
Chris@17
|
77 */
|
Chris@17
|
78 public function testIsSecure($url, $base_url, $secure) {
|
Chris@17
|
79 $request_context = $this->prophesize(RequestContext::class);
|
Chris@17
|
80 $request_context->getCompleteBaseUrl()->willReturn($base_url);
|
Chris@17
|
81 $url_helper = new IFrameUrlHelper(
|
Chris@17
|
82 $request_context->reveal(),
|
Chris@17
|
83 $this->prophesize(PrivateKey::class)->reveal()
|
Chris@17
|
84 );
|
Chris@17
|
85
|
Chris@17
|
86 $this->assertSame($secure, $url_helper->isSecure($url));
|
Chris@17
|
87 }
|
Chris@17
|
88
|
Chris@17
|
89 }
|