blob: aa09e0596284bef3f2cc326c5890be22af04ceee (
plain) (
blame)
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
63
64
65
66
67
68
69
70
71
72
73
74
|
<?php
namespace Zotlabs\Tests\Unit\Module;
class TestCase extends \Zotlabs\Tests\Unit\UnitTestCase {
// Import PHPMock methods into this class
use \phpmock\phpunit\PHPMock;
/**
* Emulate a GET request.
*
* @param string $uri The URI to request. Typically this will be the module
* name, followed by any req args separated by slashes.
*/
protected function get(string $uri): void {
$_GET['q'] = $uri;
$_SERVER['REQUEST_METHOD'] = 'GET';
\App::init();
\App::$page['content'] = '';
$router = new \Zotlabs\Web\Router();
$router->Dispatch();
}
/**
* Stub out the `killme` function.
*
* Usefule for modules that call this function directly.
*
* Instead of calling exit, the stub will throw a `KillmeException`,
* that can be caught by the test code to regain control after request
* processing is terminated.
*/
protected function stub_killme(): void {
$killme_stub = $this->getFunctionMock('Zotlabs\Module', 'killme');
$killme_stub
->expects($this->once())
->willReturnCallback(
function () {
throw new KillmeException();
}
);
}
protected function stub_goaway(): void {
$goaway_stub = $this->getFunctionMock('Zotlabs\Module', 'goaway');
$goaway_stub
->expects($this->once())
->willReturnCallback(
function (string $uri) {
throw new RedirectException($uri);
}
);
}
}
/**
* Exception class for killme stub
*/
class KillmeException extends \Exception {}
/**
* Exception class for goaway stub.
*
* Takes the goaway uri as an arg, and makes it available as
* the public `$uri` member variable.
*/
class RedirectException extends \Exception {
function __construct(string $uri) {
parent::__construct($uri);
}
}
|