@@ -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