Skip to content

Commit ee7bfd2

Browse files
committed
Complete event listener unit tests
1 parent 0559079 commit ee7bfd2

1 file changed

Lines changed: 64 additions & 63 deletions

File tree

tests/event/listener_test.php

Lines changed: 64 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,11 @@ public function setUp()
2424
{
2525
parent::setUp();
2626

27-
global $phpbb_dispatcher;
27+
global $phpbb_dispatcher, $phpbb_extension_manager, $phpbb_root_path;
2828

2929
// Mock some global classes that may be called during code execution
3030
$phpbb_dispatcher = new \phpbb_mock_event_dispatcher();
31+
$phpbb_extension_manager = new \phpbb_mock_extension_manager($phpbb_root_path);
3132

3233
// Load/Mock classes required by the event listener class
3334
$this->config = new \phpbb\config\config(array('googleanalytics_id' => 'UA-000000-01'));
@@ -68,8 +69,8 @@ public function test_construct()
6869
public function test_getSubscribedEvents()
6970
{
7071
$this->assertEquals(array(
71-
'core.page_header',
7272
'core.acp_board_config_edit_add',
73+
'core.page_header',
7374
'core.validate_config_variable',
7475
), array_keys(\phpbb\googleanalytics\event\listener::getSubscribedEvents()));
7576
}
@@ -92,6 +93,67 @@ public function test_load_google_analytics()
9293
), $this->template->get_template_vars());
9394
}
9495

96+
/**
97+
* Data set for test_add_googleanalytics_configs
98+
*
99+
* @return array Array of test data
100+
* @access public
101+
*/
102+
public function add_googleanalytics_configs_data()
103+
{
104+
return array(
105+
array( // expected config and mode
106+
'settings',
107+
array('vars' => array('override_user_style' => array())),
108+
array('override_user_style', 'googleanalytics_id'),
109+
),
110+
array( // unexpected mode
111+
'foobar',
112+
array('vars' => array('override_user_style' => array())),
113+
array('override_user_style'),
114+
),
115+
array( // unexpected config
116+
'settings',
117+
array('vars' => array('foobar' => array())),
118+
array('foobar'),
119+
),
120+
array( // unexpected config and mode
121+
'foobar',
122+
array('vars' => array('foobar' => array())),
123+
array('foobar'),
124+
),
125+
);
126+
}
127+
128+
/**
129+
* Test the add_googleanalytics_configs event
130+
*
131+
* @dataProvider add_googleanalytics_configs_data
132+
* @access public
133+
*/
134+
public function test_add_googleanalytics_configs($mode, $display_vars, $expected_keys)
135+
{
136+
$this->set_listener();
137+
138+
$dispatcher = new \Symfony\Component\EventDispatcher\EventDispatcher();
139+
$dispatcher->addListener('core.acp_board_config_edit_add', array($this->listener, 'add_googleanalytics_configs'));
140+
141+
$event_data = array('display_vars', 'mode');
142+
$event = new \phpbb\event\data(compact($event_data));
143+
$dispatcher->dispatch('core.acp_board_config_edit_add', $event);
144+
145+
$event_data_after = $event->get_data_filtered($event_data);
146+
foreach ($event_data as $expected)
147+
{
148+
$this->assertArrayHasKey($expected, $event_data_after);
149+
}
150+
extract($event_data_after);
151+
152+
$keys = array_keys($display_vars['vars']);
153+
154+
$this->assertEquals($expected_keys, $keys);
155+
}
156+
95157
/**
96158
* Data set for test_validate_googleanalytics_id
97159
*
@@ -164,65 +226,4 @@ public function test_validate_googleanalytics_id($cfg_array, $expected_error)
164226

165227
$this->assertEquals($expected_error, $error);
166228
}
167-
168-
/**
169-
* Data set for test_add_googleanalytics_configs
170-
*
171-
* @return array Array of test data
172-
* @access public
173-
*/
174-
public function add_googleanalytics_configs_data()
175-
{
176-
return array(
177-
array( // expected config and mode
178-
'settings',
179-
array('vars' => array('override_user_style' => array())),
180-
array('override_user_style', 'googleanalytics_id'),
181-
),
182-
array( // unexpected mode
183-
'foobar',
184-
array('vars' => array('override_user_style' => array())),
185-
array('override_user_style'),
186-
),
187-
array( // unexpected config
188-
'settings',
189-
array('vars' => array('foobar' => array())),
190-
array('foobar'),
191-
),
192-
array( // unexpected config and mode
193-
'foobar',
194-
array('vars' => array('foobar' => array())),
195-
array('foobar'),
196-
),
197-
);
198-
}
199-
200-
/**
201-
* Test the add_googleanalytics_configs event
202-
*
203-
* @dataProvider add_googleanalytics_configs_data
204-
* @access public
205-
*/
206-
public function test_add_googleanalytics_configs($mode, $display_vars, $expected_keys)
207-
{
208-
$this->set_listener();
209-
210-
$dispatcher = new \Symfony\Component\EventDispatcher\EventDispatcher();
211-
$dispatcher->addListener('core.acp_board_config_edit_add', array($this->listener, 'add_googleanalytics_configs'));
212-
213-
$event_data = array('display_vars', 'mode');
214-
$event = new \phpbb\event\data(compact($event_data));
215-
$dispatcher->dispatch('core.acp_board_config_edit_add', $event);
216-
217-
$event_data_after = $event->get_data_filtered($event_data);
218-
foreach ($event_data as $expected)
219-
{
220-
$this->assertArrayHasKey($expected, $event_data_after);
221-
}
222-
extract($event_data_after);
223-
224-
$keys = array_keys($display_vars['vars']);
225-
226-
$this->assertEquals($expected_keys, $keys);
227-
}
228229
}

0 commit comments

Comments
 (0)