Skip to content

Commit b4f0629

Browse files
committed
Update tests
1 parent 47f3ed1 commit b4f0629

17 files changed

Lines changed: 246 additions & 140 deletions

tests/controller/controller_base.php

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ class controller_base extends \phpbb_test_case
2121
/** @var \PHPUnit_Framework_MockObject_MockObject|\phpbb\controller\helper */
2222
protected $controller_helper;
2323

24-
/** @var \PHPUnit_Framework_MockObject_MockObject|\phpbb\ideas\factory\ideas */
25-
protected $ideas;
24+
/** @var \PHPUnit_Framework_MockObject_MockObject|\phpbb\ideas\factory\base */
25+
protected $entity;
2626

2727
/** @var \phpbb\language\language */
2828
protected $lang;
@@ -69,12 +69,6 @@ public function setUp()
6969
->willReturnCallback(function ($template_file, $page_title = '', $status_code = 200, $display_online_list = false) {
7070
return new \Symfony\Component\HttpFoundation\Response($template_file, $status_code);
7171
});
72-
$this->ideas = $this->getMockBuilder('\phpbb\ideas\factory\ideas')
73-
->disableOriginalConstructor()
74-
->getMock();
75-
$this->ideas->expects($this->atMost(3))
76-
->method('get_ideas')
77-
->willReturn(array(array()));
7872
$lang_loader = new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx);
7973
$this->lang = new \phpbb\language\language($lang_loader);
8074
$this->link_helper = $this->getMockBuilder('\phpbb\ideas\factory\linkhelper')
@@ -98,14 +92,13 @@ public function setUp()
9892
$this->php_ext = $phpEx;
9993
}
10094

101-
public function get_controller($name)
95+
public function get_controller($name, $entity = null)
10296
{
10397
$controller = "\\phpbb\\ideas\\controller\\$name";
104-
return new $controller(
98+
$controller = new $controller(
10599
$this->auth,
106100
$this->config,
107101
$this->controller_helper,
108-
$this->ideas,
109102
$this->lang,
110103
$this->link_helper,
111104
$this->pagination,
@@ -115,5 +108,16 @@ public function get_controller($name)
115108
$this->root_path,
116109
$this->php_ext
117110
);
111+
112+
if ($entity !== null)
113+
{
114+
$this->entity = $this->getMockBuilder("\\phpbb\\ideas\\factory\\$entity")
115+
->disableOriginalConstructor()
116+
->getMock();
117+
118+
$controller->get_entity($this->entity);
119+
}
120+
121+
return $controller;
118122
}
119123
}

tests/controller/idea_controller_test.php

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,18 @@ public function controller_test_data()
2929
array(3, 'duplicate', 'set_duplicate', true, true, 'true', 200), // ajax set duplicate success
3030
array(3, 'duplicate', '', true, false, 'false', 200), // ajax set duplicate fail
3131
array(4, 'removevote', 'remove_vote', true, true, 'true', 200), // ajax remove vote success
32-
array(4, 'removevote', 'remove_vote', true, true, 'false', 200, ['idea_status' => \phpbb\ideas\factory\ideas::$statuses['DUPLICATE']]), // ajax remove vote not allowed
33-
array(4, 'removevote', 'remove_vote', true, true, 'false', 200, ['idea_status' => \phpbb\ideas\factory\ideas::$statuses['IMPLEMENTED']]), // ajax remove vote not allowed
32+
array(4, 'removevote', 'remove_vote', true, true, 'false', 200, ['idea_status' => \phpbb\ideas\ext::$statuses['DUPLICATE']]), // ajax remove vote not allowed
33+
array(4, 'removevote', 'remove_vote', true, true, 'false', 200, ['idea_status' => \phpbb\ideas\ext::$statuses['IMPLEMENTED']]), // ajax remove vote not allowed
3434
array(4, 'removevote', '', true, false, '"You do not have the necessary permissions to complete this operation."', 200), // ajax remove vote fail
3535
array(5, 'rfc', 'set_rfc', true, true, 'true', 200), // ajax set rfc success
3636
array(5, 'rfc', '', true, false, 'false', 200), // ajax set rfc fail
37-
array(6, 'status', 'change_status', true, true, 'true', 200), // ajax set status success
37+
array(6, 'status', 'set_status', true, true, 'true', 200), // ajax set status success
3838
array(6, 'status', '', true, false, 'false', 200), // ajax set status fail
3939
array(7, 'ticket', 'set_ticket', true, true, 'true', 200), // ajax set ticket success
4040
array(7, 'ticket', '', true, false, 'false', 200), // ajax set ticket fail
41-
array(8, 'title', 'set_title', true, true, 'true', 200), // ajax set title success
42-
array(8, 'title', '', true, false, 'false', 200), // ajax set title fail
4341
array(9, 'vote', 'vote', true, true, 'true', 200), // ajax vote success
44-
array(9, 'vote', 'vote', true, true, 'false', 200, ['idea_status' => \phpbb\ideas\factory\ideas::$statuses['DUPLICATE']]), // ajax vote not allowed
45-
array(9, 'vote', 'vote', true, true, 'false', 200, ['idea_status' => \phpbb\ideas\factory\ideas::$statuses['IMPLEMENTED']]), // ajax vote not allowed
42+
array(9, 'vote', 'vote', true, true, 'false', 200, ['idea_status' => \phpbb\ideas\ext::$statuses['DUPLICATE']]), // ajax vote not allowed
43+
array(9, 'vote', 'vote', true, true, 'false', 200, ['idea_status' => \phpbb\ideas\ext::$statuses['IMPLEMENTED']]), // ajax vote not allowed
4644
array(9, 'vote', '', true, false, '"You do not have the necessary permissions to complete this operation."', 200), // ajax vote fail
4745
array(10, 'implemented', 'set_implemented', true, true, 'true', 200), // ajax set implemented success
4846
array(10, 'implemented', '', true, false, 'false', 200), // ajax set implemented fail
@@ -56,20 +54,24 @@ public function controller_test_data()
5654
*/
5755
public function test_controller($idea_id, $mode, $callback, $is_ajax, $authorised, $expected, $status_code, $additional_data = [])
5856
{
57+
/** @var \phpbb\ideas\controller\idea_controller $controller */
58+
$controller = $this->get_controller('idea_controller', 'idea');
59+
$this->assertInstanceOf('phpbb\ideas\controller\idea_controller', $controller);
60+
5961
// mock some basic idea data
60-
$this->ideas->expects($this->once())
62+
$this->entity->expects($this->once())
6163
->method('get_idea')
6264
->willReturn(array_merge(array(
6365
'idea_id' => $idea_id,
6466
'idea_author' => 2,
65-
'idea_status' => \phpbb\ideas\factory\ideas::$statuses['NEW']
67+
'idea_status' => \phpbb\ideas\ext::$statuses['NEW']
6668
), $additional_data)
6769
);
6870

6971
// mock a result from each method called by the idea controller
7072
if ($expected === 'true')
7173
{
72-
$this->ideas->expects($this->once())
74+
$this->entity->expects($this->once())
7375
->method(($callback))
7476
->willReturn($authorised);
7577
}
@@ -112,10 +114,6 @@ public function test_controller($idea_id, $mode, $callback, $is_ajax, $authorise
112114
$this->expectExceptionMessage('NO_AUTH_OPERATION');
113115
}
114116

115-
/** @var \phpbb\ideas\controller\idea_controller $controller */
116-
$controller = $this->get_controller('idea_controller');
117-
$this->assertInstanceOf('phpbb\ideas\controller\idea_controller', $controller);
118-
119117
$response = $controller->idea($idea_id);
120118

121119
if ($is_ajax)
@@ -155,7 +153,7 @@ public function test_controller_exception($idea_id, $forum, $status_code, $page_
155153
$this->config['ideas_forum_id'] = $forum;
156154

157155
/** @var \phpbb\ideas\controller\idea_controller $controller */
158-
$controller = $this->get_controller('idea_controller');
156+
$controller = $this->get_controller('idea_controller', 'idea');
159157
$this->assertInstanceOf('phpbb\ideas\controller\idea_controller', $controller);
160158

161159
try

tests/controller/index_controller_test.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,13 @@ public function controller_test_data()
3232
public function test_controller($status_code, $page_content)
3333
{
3434
/** @var \phpbb\ideas\controller\index_controller $controller */
35-
$controller = $this->get_controller('index_controller');
35+
$controller = $this->get_controller('index_controller', 'ideas');
3636
$this->assertInstanceOf('phpbb\ideas\controller\index_controller', $controller);
3737

38+
$this->entity->expects($this->atMost(3))
39+
->method('get_ideas')
40+
->willReturn([[]]);
41+
3842
$response = $controller->index();
3943
$this->assertInstanceOf('\Symfony\Component\HttpFoundation\Response', $response);
4044
$this->assertEquals($status_code, $response->getStatusCode());
@@ -65,7 +69,7 @@ public function test_controller_exception($forum)
6569
$this->config['ideas_forum_id'] = $forum;
6670

6771
/** @var \phpbb\ideas\controller\index_controller $controller */
68-
$controller = $this->get_controller('index_controller');
72+
$controller = $this->get_controller('index_controller', 'ideas');
6973
$this->assertInstanceOf('phpbb\ideas\controller\index_controller', $controller);
7074

7175
$controller->index();

tests/controller/list_controller_test.php

Lines changed: 41 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ public function controller_test_data()
2626
200,
2727
'list_body.html',
2828
array(
29-
'sort' => \phpbb\ideas\factory\ideas::SORT_TOP,
29+
'sort' => \phpbb\ideas\ext::SORT_TOP,
3030
'status' => 0,
3131
),
3232
array(
33-
'sort' => \phpbb\ideas\factory\ideas::SORT_TOP,
33+
'sort' => \phpbb\ideas\ext::SORT_TOP,
3434
'status' => 0,
3535
),
3636
),
@@ -52,12 +52,12 @@ public function controller_test_data()
5252
200,
5353
'list_body.html',
5454
array(
55-
'sort' => \phpbb\ideas\factory\ideas::SORT_DATE,
56-
'status' => \phpbb\ideas\factory\ideas::$statuses['IMPLEMENTED'],
55+
'sort' => \phpbb\ideas\ext::SORT_DATE,
56+
'status' => \phpbb\ideas\ext::$statuses['IMPLEMENTED'],
5757
),
5858
array(
59-
'sort' => \phpbb\ideas\factory\ideas::SORT_DATE,
60-
'status' => \phpbb\ideas\factory\ideas::$statuses['IMPLEMENTED'],
59+
'sort' => \phpbb\ideas\ext::SORT_DATE,
60+
'status' => \phpbb\ideas\ext::$statuses['IMPLEMENTED'],
6161
),
6262
),
6363

@@ -67,90 +67,90 @@ public function controller_test_data()
6767
200,
6868
'list_body.html',
6969
array(
70-
'sort' => \phpbb\ideas\factory\ideas::SORT_NEW,
71-
'status' => \phpbb\ideas\factory\ideas::$statuses['NEW'],
70+
'sort' => \phpbb\ideas\ext::SORT_NEW,
71+
'status' => \phpbb\ideas\ext::$statuses['NEW'],
7272
),
7373
array(
74-
'sort' => \phpbb\ideas\factory\ideas::SORT_DATE,
75-
'status' => \phpbb\ideas\factory\ideas::$statuses['NEW'],
74+
'sort' => \phpbb\ideas\ext::SORT_DATE,
75+
'status' => \phpbb\ideas\ext::$statuses['NEW'],
7676
),
7777
),
7878
// In progress ideas sorted by score
7979
array(
8080
200,
8181
'list_body.html',
8282
array(
83-
'sort' => \phpbb\ideas\factory\ideas::SORT_SCORE,
84-
'status' => \phpbb\ideas\factory\ideas::$statuses['IN_PROGRESS'],
83+
'sort' => \phpbb\ideas\ext::SORT_SCORE,
84+
'status' => \phpbb\ideas\ext::$statuses['IN_PROGRESS'],
8585
),
8686
array(
87-
'sort' => \phpbb\ideas\factory\ideas::SORT_SCORE,
88-
'status' => \phpbb\ideas\factory\ideas::$statuses['IN_PROGRESS'],
87+
'sort' => \phpbb\ideas\ext::SORT_SCORE,
88+
'status' => \phpbb\ideas\ext::$statuses['IN_PROGRESS'],
8989
),
9090
),
9191
// Duplicate ideas sorted by author
9292
array(
9393
200,
9494
'list_body.html',
9595
array(
96-
'sort' => \phpbb\ideas\factory\ideas::SORT_AUTHOR,
97-
'status' => \phpbb\ideas\factory\ideas::$statuses['DUPLICATE'],
96+
'sort' => \phpbb\ideas\ext::SORT_AUTHOR,
97+
'status' => \phpbb\ideas\ext::$statuses['DUPLICATE'],
9898
),
9999
array(
100-
'sort' => \phpbb\ideas\factory\ideas::SORT_AUTHOR,
101-
'status' => \phpbb\ideas\factory\ideas::$statuses['DUPLICATE'],
100+
'sort' => \phpbb\ideas\ext::SORT_AUTHOR,
101+
'status' => \phpbb\ideas\ext::$statuses['DUPLICATE'],
102102
),
103103
),
104104
// Invalid ideas sorted by date
105105
array(
106106
200,
107107
'list_body.html',
108108
array(
109-
'sort' => \phpbb\ideas\factory\ideas::SORT_DATE,
110-
'status' => \phpbb\ideas\factory\ideas::$statuses['INVALID'],
109+
'sort' => \phpbb\ideas\ext::SORT_DATE,
110+
'status' => \phpbb\ideas\ext::$statuses['INVALID'],
111111
),
112112
array(
113-
'sort' => \phpbb\ideas\factory\ideas::SORT_DATE,
114-
'status' => \phpbb\ideas\factory\ideas::$statuses['INVALID'],
113+
'sort' => \phpbb\ideas\ext::SORT_DATE,
114+
'status' => \phpbb\ideas\ext::$statuses['INVALID'],
115115
),
116116
),
117117
// Implemented ideas sorted by top
118118
array(
119119
200,
120120
'list_body.html',
121121
array(
122-
'sort' => \phpbb\ideas\factory\ideas::SORT_TOP,
123-
'status' => \phpbb\ideas\factory\ideas::$statuses['IMPLEMENTED'],
122+
'sort' => \phpbb\ideas\ext::SORT_TOP,
123+
'status' => \phpbb\ideas\ext::$statuses['IMPLEMENTED'],
124124
),
125125
array(
126-
'sort' => \phpbb\ideas\factory\ideas::SORT_TOP,
127-
'status' => \phpbb\ideas\factory\ideas::$statuses['IMPLEMENTED'],
126+
'sort' => \phpbb\ideas\ext::SORT_TOP,
127+
'status' => \phpbb\ideas\ext::$statuses['IMPLEMENTED'],
128128
),
129129
),
130130
// All ideas sorted by date
131131
array(
132132
200,
133133
'list_body.html',
134134
array(
135-
'sort' => \phpbb\ideas\factory\ideas::SORT_NEW,
135+
'sort' => \phpbb\ideas\ext::SORT_NEW,
136136
'status' => -1,
137137
),
138138
array(
139-
'sort' => \phpbb\ideas\factory\ideas::SORT_DATE,
140-
'status' => \phpbb\ideas\factory\ideas::$statuses,
139+
'sort' => \phpbb\ideas\ext::SORT_DATE,
140+
'status' => \phpbb\ideas\ext::$statuses,
141141
),
142142
),
143143
// My ideas list
144144
array(
145145
200,
146146
'list_body.html',
147147
array(
148-
'sort' => \phpbb\ideas\factory\ideas::SORT_MYIDEAS,
148+
'sort' => \phpbb\ideas\ext::SORT_MYIDEAS,
149149
'status' => -1,
150150
),
151151
array(
152-
'sort' => \phpbb\ideas\factory\ideas::SORT_MYIDEAS,
153-
'status' => \phpbb\ideas\factory\ideas::$statuses,
152+
'sort' => \phpbb\ideas\ext::SORT_MYIDEAS,
153+
'status' => \phpbb\ideas\ext::$statuses,
154154
),
155155
),
156156
);
@@ -163,21 +163,22 @@ public function controller_test_data()
163163
*/
164164
public function test_controller($status_code, $page_content, $params, $expected)
165165
{
166+
/** @var \phpbb\ideas\controller\list_controller $controller */
167+
$controller = $this->get_controller('list_controller', 'ideas');
168+
$this->assertInstanceOf('phpbb\ideas\controller\list_controller', $controller);
169+
166170
$this->request->expects($this->atMost(3))
167171
->method('variable')
168172
->willReturnMap(array(
169-
array('sd', 'd', false, \phpbb\request\request_interface::REQUEST, ''),
173+
array('sd', 'd', false, \phpbb\request\request_interface::REQUEST, 'd'),
170174
array('status', 0, false, \phpbb\request\request_interface::REQUEST, $params['status']),
171175
array('start', 0, false, \phpbb\request\request_interface::REQUEST, 0),
172176
));
173177

174-
$this->ideas->expects($this->once())
178+
$this->entity->expects($this->once())
175179
->method('get_ideas')
176-
->with('', $expected['sort'], 'ASC', $expected['status'], 0);
177-
178-
/** @var \phpbb\ideas\controller\list_controller $controller */
179-
$controller = $this->get_controller('list_controller');
180-
$this->assertInstanceOf('phpbb\ideas\controller\list_controller', $controller);
180+
->with('', $expected['sort'], 'DESC', $expected['status'], 0)
181+
->willReturn([[]]);
181182

182183
$response = $controller->ideas_list($params['sort']);
183184
$this->assertInstanceOf('\Symfony\Component\HttpFoundation\Response', $response);
@@ -209,7 +210,7 @@ public function test_controller_exception($forum)
209210
$this->config['ideas_forum_id'] = $forum;
210211

211212
/** @var \phpbb\ideas\controller\list_controller $controller */
212-
$controller = $this->get_controller('list_controller');
213+
$controller = $this->get_controller('list_controller', 'ideas');
213214
$this->assertInstanceOf('phpbb\ideas\controller\list_controller', $controller);
214215

215216
$controller->ideas_list('');

tests/controller/livesearch_controller_test.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,20 @@ public function controller_test_data()
3232
*/
3333
public function test_controller($status_code, $content)
3434
{
35+
/** @var \phpbb\ideas\controller\livesearch_controller $controller */
36+
$controller = $this->get_controller('livesearch_controller', 'livesearch');
37+
$this->assertInstanceOf('phpbb\ideas\controller\livesearch_controller', $controller);
38+
3539
$this->request->expects($this->once())
3640
->method('variable')
3741
->with('duplicateeditinput', '', true)
3842
->willReturn($content['keyword']);
3943

40-
$this->ideas->expects($this->once())
41-
->method('ideas_title_livesearch')
44+
$this->entity->expects($this->once())
45+
->method('title_search')
4246
->with($content['keyword'], 10)
4347
->willReturn($content['results']);
4448

45-
/** @var \phpbb\ideas\controller\livesearch_controller $controller */
46-
$controller = $this->get_controller('livesearch_controller');
47-
$this->assertInstanceOf('phpbb\ideas\controller\livesearch_controller', $controller);
48-
4949
$response = $controller->title_search();
5050
$this->assertInstanceOf('\Symfony\Component\HttpFoundation\JsonResponse', $response);
5151
$this->assertEquals($status_code, $response->getStatusCode());

0 commit comments

Comments
 (0)