@@ 172-202 (lines=31) @@ | ||
169 | * |
|
170 | * @return array test results. |
|
171 | */ |
|
172 | public function run_tests( $password, $tests, $required_only = false ) { |
|
173 | $results = array( |
|
174 | 'passed' => array(), |
|
175 | 'failed' => array(), |
|
176 | ); |
|
177 | ||
178 | foreach ( $tests as $test_type => $section_tests ) { |
|
179 | foreach ( $section_tests as $test_name => $test_data ) { |
|
180 | // Skip non-required tests if required_only param is set. |
|
181 | if ( $required_only && ! $test_data['required'] ) { |
|
182 | continue; |
|
183 | } |
|
184 | ||
185 | $result = call_user_func_array( array( $this, 'test_' . $test_type ), array( $password, $test_data ) ); |
|
186 | if ( $result ) { |
|
187 | $results['passed'][] = array( 'test_name' => $test_name ); |
|
188 | } else { |
|
189 | $results['failed'][] = array( |
|
190 | 'test_name' => $test_name, |
|
191 | 'explanation' => $test_data['error'], |
|
192 | ); |
|
193 | ||
194 | if ( isset( $test_data['fail_immediately'] ) ) { |
|
195 | return $results; |
|
196 | } |
|
197 | } |
|
198 | } |
|
199 | } |
|
200 | ||
201 | return $results; |
|
202 | } |
|
203 | ||
204 | /** |
|
205 | * Returns an array of tests that need to be run on password strings. |
@@ 176-211 (lines=36) @@ | ||
173 | * @param Boolean $required_only whether to run only required tests. |
|
174 | * @return array test results. |
|
175 | */ |
|
176 | protected function run_tests( $tests, $required_only = false ) { |
|
177 | ||
178 | $results = array( |
|
179 | 'passed' => array(), |
|
180 | 'failed' => array(), |
|
181 | ); |
|
182 | ||
183 | foreach ( $tests as $test_type => $section_tests ) { |
|
184 | foreach ( $section_tests as $test_name => $test_data ) { |
|
185 | ||
186 | // Skip non-required tests if required_only param is set. |
|
187 | if ( $required_only && ! $test_data['required'] ) { |
|
188 | continue; |
|
189 | } |
|
190 | ||
191 | $test_function = 'test_' . $test_type; |
|
192 | ||
193 | $result = call_user_func( array( $this, $test_function ), $test_data ); |
|
194 | ||
195 | if ( $result ) { |
|
196 | $results['passed'][] = array( 'test_name' => $test_name ); |
|
197 | } else { |
|
198 | $results['failed'][] = array( |
|
199 | 'test_name' => $test_name, |
|
200 | 'explanation' => $test_data['error'], |
|
201 | ); |
|
202 | ||
203 | if ( isset( $test_data['fail_immediately'] ) ) { |
|
204 | return $results; |
|
205 | } |
|
206 | } |
|
207 | } |
|
208 | } |
|
209 | ||
210 | return $results; |
|
211 | } |
|
212 | ||
213 | /** |
|
214 | * Returns a list of tests that need to be run on password strings. |