Scrutinizer GitHub App not installed

We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.

Install GitHub App

Passed
Pull Request — master (#1031)
by Dan
05:27
created

PageIntegrationTest::test_href()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 7
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 11
rs 10
1
<?php declare(strict_types=1);
2
3
namespace SmrTest\lib\DefaultGame;
4
5
use Page;
6
7
/**
8
 * This is an integration test, but does not need to extend BaseIntegrationTest
9
 * since we are not (or should not be!) writing any data.
10
 * @covers Page
11
 */
12
class PageIntegrationTest extends \PHPUnit\Framework\TestCase {
13
14
	public function test_create() {
15
		// Test create with $extra as array
16
		$page = Page::create('file', 'body', ['extra' => 'data']);
17
		// Check that the expected keys of the ArrayObject are set
18
		$expected = ['extra' => 'data', 'url' => 'file', 'body' => 'body'];
19
		self::assertSame($expected, $page->getArrayCopy());
20
21
		// Test create with $extra as a Page object
22
		$page2 = Page::create('file2', extra: $page);
23
		// Check that the expected keys of the ArrayObject are set
24
		$expected2 = ['extra' => 'data', 'url' => 'file2', 'body' => ''];
25
		self::assertSame($expected2, $page2->getArrayCopy());
26
27
		// Make sure they are not references to the same underlying object
28
		self::assertNotSame($page, $page2);
29
		// Make sure passing $page to create didn't modify the original
30
		self::assertSame($expected, $page->getArrayCopy());
31
32
		// Test create when setting $remainingPageLoads
33
		$page3 = Page::create('file', remainingPageLoads: 2);
34
		self::assertSame(2, $page3['RemainingPageLoads']);
35
	}
36
37
	public function test_copy() {
38
		// Create an arbitrary Page
39
		$page = Page::create('file');
40
		// The copy should be equal, but not the same
41
		$copy = Page::copy($page);
42
		self::assertNotSame($page, $copy);
43
		self::assertEquals($page, $copy);
44
	}
45
46
	public function test_useAsGlobalVar() {
47
		// Create an arbitrary Page
48
		$page = Page::create('file');
49
50
		// Unset the global $var in case it has been set elsewhere
51
		global $var;
52
		$var = null;
53
54
		// The global $var should be the same object as $page
55
		$page->useAsGlobalVar();
56
		self::assertSame($var, $page);
57
	}
58
59
	public function test_href() {
60
		// Create an arbitrary Page
61
		$page = Page::create('file');
62
63
		// The Page should not be modified when href() is called
64
		$expected = $page->getArrayCopy();
65
		srand(0); // for a deterministic SN
66
		$_SERVER['REQUEST_URI'] = 'loader.php'; // prevent "Undefined array key"
67
		$href = $page->href();
68
		self::assertSame('?sn=qpbqzr', $href);
69
		self::assertSame($expected, $page->getArrayCopy());
70
	}
71
72
}
73