1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace Win\Mvc; |
4
|
|
|
|
5
|
|
|
use Win\Mvc\Application; |
6
|
|
|
use Win\Helper\Url; |
7
|
|
|
|
8
|
|
|
class ApplicationTest extends \PHPUnit_Framework_TestCase { |
9
|
|
|
|
10
|
|
|
public function testGetInstanceApp() { |
11
|
|
|
Url::instance()->setUrl('index'); |
12
|
|
|
$app = new Application(); |
13
|
|
|
$this->assertTrue($app instanceof Application); |
14
|
|
|
$this->assertTrue(Application::app() instanceof Application); |
15
|
|
|
} |
16
|
|
|
|
17
|
|
|
public function testGetName() { |
18
|
|
|
$config = ['name' => 'My custom Application Name']; |
19
|
|
|
$app = new Application($config); |
20
|
|
|
|
21
|
|
|
$this->assertEquals('My custom Application Name', $app->getName()); |
22
|
|
|
$this->assertEquals($app->getName(), $app->getConfig('name')); |
23
|
|
|
} |
24
|
|
|
|
25
|
|
|
public function testGetTitle() { |
26
|
|
|
Url::instance()->setUrl(''); |
27
|
|
|
$app = new Application(); |
28
|
|
|
$this->assertEquals('Index', $app->getTitle()); |
29
|
|
|
|
30
|
|
|
Url::instance()->setUrl('my-custom-page'); |
31
|
|
|
$app2 = new Application(); |
32
|
|
|
$this->assertEquals('My Custom Page', $app2->getTitle()); |
33
|
|
|
|
34
|
|
|
Url::instance()->setUrl('my-custom-page/my-action'); |
35
|
|
|
$app3 = new Application(); |
36
|
|
|
$app3->controller->load(); |
37
|
|
|
$this->assertNotEquals('My Custom Page', $app3->getTitle()); |
38
|
|
|
|
39
|
|
|
$app->setTitle('My Custom Test Title'); |
40
|
|
|
$this->assertEquals('My Custom Test Title', $app->getTitle()); |
41
|
|
|
|
42
|
|
|
$app->pageNotFound(); |
43
|
|
|
$this->assertNotEquals('My Custom Test Title', $app->getTitle()); |
44
|
|
|
} |
45
|
|
|
|
46
|
|
|
public function testGetPage() { |
47
|
|
|
Url::instance()->setUrl('my-page/my-action/first-param/2nd-param/3rd-param'); |
48
|
|
|
$app = new Application(); |
49
|
|
|
|
50
|
|
|
$this->assertEquals('my-page', $app->getPage()); |
51
|
|
|
} |
52
|
|
|
|
53
|
|
|
public function testGetParamDefault() { |
54
|
|
|
Url::instance()->setUrl('my-page'); |
55
|
|
|
$app = new Application(); |
56
|
|
|
|
57
|
|
|
$this->assertEquals('index', $app->getParam(1)); |
58
|
|
|
$this->assertNotEquals('', $app->getParam(1)); |
59
|
|
|
} |
60
|
|
|
|
61
|
|
|
public function testGetAction() { |
62
|
|
|
Url::instance()->setUrl('my-page/my-action/first-param/2nd-param/3rd-param'); |
63
|
|
|
$app = new Application(); |
64
|
|
|
|
65
|
|
|
$this->assertEquals('myAction', $app->controller->getAction()); |
66
|
|
|
} |
67
|
|
|
|
68
|
|
|
public function testGetParam() { |
69
|
|
|
Url::instance()->setUrl('my-page/my-action/second-param/3rd-param'); |
70
|
|
|
$app = new Application(); |
71
|
|
|
|
72
|
|
|
$this->assertEquals('my-page', $app->getParam(0)); |
73
|
|
|
$this->assertEquals('my-action', $app->getParam(1)); |
74
|
|
|
$this->assertEquals('second-param', $app->getParam(2)); |
75
|
|
|
$this->assertEquals('3rd-param', $app->getParam(3)); |
76
|
|
|
$this->assertEquals('', $app->getParam(4)); |
77
|
|
|
} |
78
|
|
|
|
79
|
|
|
public function testIsErrorPage() { |
80
|
|
|
Url::instance()->setUrl('index'); |
81
|
|
|
$app = new Application(); |
82
|
|
|
$this->assertFalse($app->isErrorPage()); |
83
|
|
|
|
84
|
|
|
$app->pageNotFound(); |
85
|
|
|
$this->assertTrue($app->isErrorPage()); |
86
|
|
|
} |
87
|
|
|
|
88
|
|
|
public function testIsHomePage() { |
89
|
|
|
Url::instance()->setUrl(''); |
90
|
|
|
$app = new Application(); |
91
|
|
|
$this->assertTrue($app->isHomePage()); |
92
|
|
|
|
93
|
|
|
Url::instance()->setUrl('index'); |
94
|
|
|
$app2 = new Application(); |
95
|
|
|
$this->assertTrue($app2->isHomePage()); |
96
|
|
|
} |
97
|
|
|
|
98
|
|
|
public function testIsNotHomePage() { |
99
|
|
|
Url::instance()->setUrl('index'); |
100
|
|
|
$app = new Application(); |
101
|
|
|
$app->pageNotFound(); |
102
|
|
|
$this->assertFalse($app->isHomePage()); |
103
|
|
|
|
104
|
|
|
Url::instance()->setUrl('other-page'); |
105
|
|
|
$app2 = new Application(); |
106
|
|
|
$this->assertFalse($app2->isHomePage()); |
107
|
|
|
} |
108
|
|
|
|
109
|
|
|
public function testIsLocalHost() { |
110
|
|
|
$app = new Application(); |
111
|
|
|
$this->assertEquals(true, $app->isLocalHost()); |
112
|
|
|
} |
113
|
|
|
|
114
|
|
|
public function testGetConfig() { |
115
|
|
|
$config = ['year' => 2040]; |
116
|
|
|
$app = new Application($config); |
117
|
|
|
$this->assertEquals(2040, $app->getConfig('year', 3000)); |
118
|
|
|
} |
119
|
|
|
|
120
|
|
|
public function testGetConfigDefault() { |
121
|
|
|
$configEmpty = []; |
122
|
|
|
$app2 = new Application($configEmpty); |
123
|
|
|
$this->assertEquals(3000, $app2->getConfig('year', 3000)); |
124
|
|
|
} |
125
|
|
|
|
126
|
|
|
public function testRun() { |
127
|
|
|
Url::instance()->setUrl('this-page-doesnt-exist'); |
128
|
|
|
$app = new Application(); |
129
|
|
|
$this->assertNotEquals('404', $app->getPage()); |
130
|
|
|
|
131
|
|
|
Url::instance()->setUrl('this-page-doesnt-exist'); |
132
|
|
|
$app2 = new Application(); |
133
|
|
|
|
134
|
|
|
ob_start(); |
135
|
|
|
$app2->run(); |
136
|
|
|
ob_end_clean(); |
137
|
|
|
$this->assertEquals('404', $app2->getPage()); |
138
|
|
|
} |
139
|
|
|
|
140
|
|
|
public function testGetUrl() { |
141
|
|
|
$currentUrl = Url::instance()->format('my-page/my-action/param1/param2'); |
142
|
|
|
Url::instance()->setUrl($currentUrl); |
143
|
|
|
$app = new Application(); |
144
|
|
|
$this->assertEquals($currentUrl, $app->getUrl()); |
145
|
|
|
} |
146
|
|
|
|
147
|
|
|
public function testValidatePage404() { |
148
|
|
|
Url::instance()->setUrl('this-url-doent-exist'); |
149
|
|
|
$app = new Application(); |
150
|
|
|
$this->assertEquals('This Url Doent Exist', $app->getTitle()); |
151
|
|
|
|
152
|
|
|
Url::instance()->setUrl('404'); |
153
|
|
|
$app2 = new Application(); |
154
|
|
|
$this->assertNotEquals('404', $app2->getTitle()); |
155
|
|
|
} |
156
|
|
|
|
157
|
|
|
} |
158
|
|
|
|