File: DummySessionBackend.php

package info (click to toggle)
mediawiki 1%3A1.43.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 417,464 kB
  • sloc: php: 1,062,949; javascript: 664,290; sql: 9,714; python: 5,458; xml: 3,489; sh: 1,131; makefile: 64
file content (42 lines) | stat: -rw-r--r-- 933 bytes parent folder | download
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
<?php

namespace MediaWiki\Tests\Session;

use MediaWiki\User\User;

/**
 * Dummy session backend
 *
 * This isn't a real backend, but implements some methods that SessionBackend
 * does so tests can run.
 *
 * FIXME This class is a huge hack, and it won't work e.g. as methods in Session(Backend) are typehinted.
 * SessionBackend should be mocked directly instead, but that's currently impossible because the class is final.
 * At the very least, there should be an interface that SessionBackend implements, and that could also be used
 * for mocks.
 */
class DummySessionBackend {
	/** @var array */
	public $data = [
		'foo' => 1,
		'bar' => 2,
		0 => 'zero',
	];
	/** @var bool */
	public $dirty = false;

	public function &getData() {
		return $this->data;
	}

	public function dirty() {
		$this->dirty = true;
	}

	public function getUser(): User {
		return new User();
	}

	public function deregisterSession( $index ) {
	}
}