@@ -6,321 +6,321 @@ |
||
| 6 | 6 | */ |
| 7 | 7 | class SpeedTrapListener implements PHPUnit_Framework_TestListener |
| 8 | 8 | { |
| 9 | - /** |
|
| 10 | - * Internal tracking for test suites. |
|
| 11 | - * |
|
| 12 | - * Increments as more suites are run, then decremented as they finish. All |
|
| 13 | - * suites have been run when returns to 0. |
|
| 14 | - * |
|
| 15 | - * @var integer |
|
| 16 | - */ |
|
| 17 | - protected $suites = 0; |
|
| 18 | - |
|
| 19 | - /** |
|
| 20 | - * Time in milliseconds at which a test will be considered "slow" and be |
|
| 21 | - * reported by this listener. |
|
| 22 | - * |
|
| 23 | - * @var int |
|
| 24 | - */ |
|
| 25 | - protected $slowThreshold; |
|
| 26 | - |
|
| 27 | - /** |
|
| 28 | - * Number of tests to report on for slowness. |
|
| 29 | - * |
|
| 30 | - * @var int |
|
| 31 | - */ |
|
| 32 | - protected $reportLength; |
|
| 33 | - |
|
| 34 | - /** |
|
| 35 | - * Collection of slow tests. |
|
| 36 | - * |
|
| 37 | - * @var array |
|
| 38 | - */ |
|
| 39 | - protected $slow = array(); |
|
| 40 | - |
|
| 41 | - /** |
|
| 42 | - * Construct a new instance. |
|
| 43 | - * |
|
| 44 | - * @param array $options |
|
| 45 | - */ |
|
| 46 | - public function __construct(array $options = array()) |
|
| 47 | - { |
|
| 48 | - $this->loadOptions($options); |
|
| 49 | - } |
|
| 50 | - |
|
| 51 | - /** |
|
| 52 | - * An error occurred. |
|
| 53 | - * |
|
| 54 | - * @param PHPUnit_Framework_Test $test |
|
| 55 | - * @param Exception $e |
|
| 56 | - * @param float $time |
|
| 57 | - */ |
|
| 58 | - public function addError(PHPUnit_Framework_Test $test, Exception $e, $time) |
|
| 59 | - { |
|
| 60 | - } |
|
| 61 | - |
|
| 62 | - /** |
|
| 63 | - * A warning occurred. |
|
| 64 | - * |
|
| 65 | - * @param PHPUnit_Framework_Test $test |
|
| 66 | - * @param PHPUnit_Framework_Warning $e |
|
| 67 | - * @param float $time |
|
| 68 | - * @since Method available since Release 5.1.0 |
|
| 69 | - */ |
|
| 70 | - public function addWarning(PHPUnit_Framework_Test $test, PHPUnit_Framework_Warning $e, $time) |
|
| 71 | - { |
|
| 72 | - } |
|
| 73 | - |
|
| 74 | - /** |
|
| 75 | - * A failure occurred. |
|
| 76 | - * |
|
| 77 | - * @param PHPUnit_Framework_Test $test |
|
| 78 | - * @param PHPUnit_Framework_AssertionFailedError $e |
|
| 79 | - * @param float $time |
|
| 80 | - */ |
|
| 81 | - public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time) |
|
| 82 | - { |
|
| 83 | - } |
|
| 84 | - |
|
| 85 | - /** |
|
| 86 | - * Incomplete test. |
|
| 87 | - * |
|
| 88 | - * @param PHPUnit_Framework_Test $test |
|
| 89 | - * @param Exception $e |
|
| 90 | - * @param float $time |
|
| 91 | - */ |
|
| 92 | - public function addIncompleteTest(PHPUnit_Framework_Test $test, Exception $e, $time) |
|
| 93 | - { |
|
| 94 | - } |
|
| 95 | - |
|
| 96 | - /** |
|
| 97 | - * Risky test. |
|
| 98 | - * |
|
| 99 | - * @param PHPUnit_Framework_Test $test |
|
| 100 | - * @param Exception $e |
|
| 101 | - * @param float $time |
|
| 102 | - * @since Method available since Release 4.0.0 |
|
| 103 | - */ |
|
| 104 | - public function addRiskyTest(PHPUnit_Framework_Test $test, Exception $e, $time) |
|
| 105 | - { |
|
| 106 | - } |
|
| 107 | - |
|
| 108 | - /** |
|
| 109 | - * Skipped test. |
|
| 110 | - * |
|
| 111 | - * @param PHPUnit_Framework_Test $test |
|
| 112 | - * @param Exception $e |
|
| 113 | - * @param float $time |
|
| 114 | - */ |
|
| 115 | - public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time) |
|
| 116 | - { |
|
| 117 | - } |
|
| 118 | - |
|
| 119 | - /** |
|
| 120 | - * A test started. |
|
| 121 | - * |
|
| 122 | - * @param PHPUnit_Framework_Test $test |
|
| 123 | - */ |
|
| 124 | - public function startTest(PHPUnit_Framework_Test $test) |
|
| 125 | - { |
|
| 126 | - } |
|
| 127 | - |
|
| 128 | - /** |
|
| 129 | - * A test ended. |
|
| 130 | - * |
|
| 131 | - * @param PHPUnit_Framework_Test $test |
|
| 132 | - * @param float $time |
|
| 133 | - */ |
|
| 134 | - public function endTest(PHPUnit_Framework_Test $test, $time) |
|
| 135 | - { |
|
| 136 | - if (!$test instanceof PHPUnit_Framework_TestCase) return; |
|
| 137 | - |
|
| 138 | - $time = $this->toMilliseconds($time); |
|
| 139 | - $threshold = $this->getSlowThreshold($test); |
|
| 140 | - |
|
| 141 | - if ($this->isSlow($time, $threshold)) { |
|
| 142 | - $this->addSlowTest($test, $time); |
|
| 143 | - } |
|
| 144 | - } |
|
| 145 | - |
|
| 146 | - /** |
|
| 147 | - * A test suite started. |
|
| 148 | - * |
|
| 149 | - * @param PHPUnit_Framework_TestSuite $suite |
|
| 150 | - */ |
|
| 151 | - public function startTestSuite(PHPUnit_Framework_TestSuite $suite) |
|
| 152 | - { |
|
| 153 | - $this->suites++; |
|
| 154 | - } |
|
| 155 | - |
|
| 156 | - /** |
|
| 157 | - * A test suite ended. |
|
| 158 | - * |
|
| 159 | - * @param PHPUnit_Framework_TestSuite $suite |
|
| 160 | - */ |
|
| 161 | - public function endTestSuite(PHPUnit_Framework_TestSuite $suite) |
|
| 162 | - { |
|
| 163 | - $this->suites--; |
|
| 164 | - |
|
| 165 | - if (0 === $this->suites && $this->hasSlowTests()) { |
|
| 166 | - arsort($this->slow); // Sort longest running tests to the top |
|
| 167 | - |
|
| 168 | - $this->renderHeader(); |
|
| 169 | - $this->renderBody(); |
|
| 170 | - $this->renderFooter(); |
|
| 171 | - } |
|
| 172 | - } |
|
| 173 | - |
|
| 174 | - /** |
|
| 175 | - * Whether the given test execution time is considered slow. |
|
| 176 | - * |
|
| 177 | - * @param int $time Test execution time in milliseconds |
|
| 178 | - * @param int $slowThreshold Test execution time at which a test should be considered slow (milliseconds) |
|
| 179 | - * @return bool |
|
| 180 | - */ |
|
| 181 | - protected function isSlow($time, $slowThreshold) |
|
| 182 | - { |
|
| 183 | - return $time >= $slowThreshold; |
|
| 184 | - } |
|
| 185 | - |
|
| 186 | - /** |
|
| 187 | - * Stores a test as slow. |
|
| 188 | - * |
|
| 189 | - * @param PHPUnit_Framework_TestCase $test |
|
| 190 | - * @param int $time Test execution time in milliseconds |
|
| 191 | - */ |
|
| 192 | - protected function addSlowTest(PHPUnit_Framework_TestCase $test, $time) |
|
| 193 | - { |
|
| 194 | - $label = $this->makeLabel($test); |
|
| 195 | - |
|
| 196 | - $this->slow[$label] = $time; |
|
| 197 | - } |
|
| 198 | - |
|
| 199 | - /** |
|
| 200 | - * Whether at least one test has been considered slow. |
|
| 201 | - * |
|
| 202 | - * @return bool |
|
| 203 | - */ |
|
| 204 | - protected function hasSlowTests() |
|
| 205 | - { |
|
| 206 | - return !empty($this->slow); |
|
| 207 | - } |
|
| 208 | - |
|
| 209 | - /** |
|
| 210 | - * Convert PHPUnit's reported test time (microseconds) to milliseconds. |
|
| 211 | - * |
|
| 212 | - * @param float $time |
|
| 213 | - * @return int |
|
| 214 | - */ |
|
| 215 | - protected function toMilliseconds($time) |
|
| 216 | - { |
|
| 217 | - return (int) round($time * 1000); |
|
| 218 | - } |
|
| 219 | - |
|
| 220 | - /** |
|
| 221 | - * Label for describing a test. |
|
| 222 | - * |
|
| 223 | - * @param PHPUnit_Framework_TestCase $test |
|
| 224 | - * @return string |
|
| 225 | - */ |
|
| 226 | - protected function makeLabel(PHPUnit_Framework_TestCase $test) |
|
| 227 | - { |
|
| 228 | - return sprintf('%s:%s', get_class($test), $test->getName()); |
|
| 229 | - } |
|
| 230 | - |
|
| 231 | - /** |
|
| 232 | - * Calculate number of slow tests to report about. |
|
| 233 | - * |
|
| 234 | - * @return int |
|
| 235 | - */ |
|
| 236 | - protected function getReportLength() |
|
| 237 | - { |
|
| 238 | - return min(count($this->slow), $this->reportLength); |
|
| 239 | - } |
|
| 240 | - |
|
| 241 | - /** |
|
| 242 | - * Find how many slow tests occurred that won't be shown due to list length. |
|
| 243 | - * |
|
| 244 | - * @return int Number of hidden slow tests |
|
| 245 | - */ |
|
| 246 | - protected function getHiddenCount() |
|
| 247 | - { |
|
| 248 | - $total = count($this->slow); |
|
| 249 | - $showing = $this->getReportLength($this->slow); |
|
| 250 | - |
|
| 251 | - $hidden = 0; |
|
| 252 | - if ($total > $showing) { |
|
| 253 | - $hidden = $total - $showing; |
|
| 254 | - } |
|
| 255 | - |
|
| 256 | - return $hidden; |
|
| 257 | - } |
|
| 258 | - |
|
| 259 | - /** |
|
| 260 | - * Renders slow test report header. |
|
| 261 | - */ |
|
| 262 | - protected function renderHeader() |
|
| 263 | - { |
|
| 264 | - echo sprintf("\n\nYou should really fix these slow tests (>%sms)...\n", $this->slowThreshold); |
|
| 265 | - } |
|
| 266 | - |
|
| 267 | - /** |
|
| 268 | - * Renders slow test report body. |
|
| 269 | - */ |
|
| 270 | - protected function renderBody() |
|
| 271 | - { |
|
| 272 | - $slowTests = $this->slow; |
|
| 273 | - |
|
| 274 | - $length = $this->getReportLength($slowTests); |
|
| 275 | - for ($i = 1; $i <= $length; ++$i) { |
|
| 276 | - $label = key($slowTests); |
|
| 277 | - $time = array_shift($slowTests); |
|
| 278 | - |
|
| 279 | - echo sprintf(" %s. %sms to run %s\n", $i, $time, $label); |
|
| 280 | - } |
|
| 281 | - } |
|
| 282 | - |
|
| 283 | - /** |
|
| 284 | - * Renders slow test report footer. |
|
| 285 | - */ |
|
| 286 | - protected function renderFooter() |
|
| 287 | - { |
|
| 288 | - if ($hidden = $this->getHiddenCount($this->slow)) { |
|
| 289 | - echo sprintf("...and there %s %s more above your threshold hidden from view", $hidden == 1 ? 'is' : 'are', $hidden); |
|
| 290 | - } |
|
| 291 | - } |
|
| 292 | - |
|
| 293 | - /** |
|
| 294 | - * Populate options into class internals. |
|
| 295 | - * |
|
| 296 | - * @param array $options |
|
| 297 | - */ |
|
| 298 | - protected function loadOptions(array $options) |
|
| 299 | - { |
|
| 300 | - $this->slowThreshold = isset($options['slowThreshold']) ? $options['slowThreshold'] : 500; |
|
| 301 | - $this->reportLength = isset($options['reportLength']) ? $options['reportLength'] : 10; |
|
| 302 | - } |
|
| 303 | - |
|
| 304 | - /** |
|
| 305 | - * Get slow test threshold for given test. A TestCase can override the |
|
| 306 | - * suite-wide slow threshold by using the annotation @slowThreshold with |
|
| 307 | - * the threshold value in milliseconds. |
|
| 308 | - * |
|
| 309 | - * The following test will only be considered slow when its execution time |
|
| 310 | - * reaches 5000ms (5 seconds): |
|
| 311 | - * |
|
| 312 | - * <code> |
|
| 313 | - * @slowThreshold 5000 |
|
| 314 | - * public function testLongRunningProcess() {} |
|
| 315 | - * </code> |
|
| 316 | - * |
|
| 317 | - * @param PHPUnit_Framework_TestCase $test |
|
| 318 | - * @return int |
|
| 319 | - */ |
|
| 320 | - protected function getSlowThreshold(PHPUnit_Framework_TestCase $test) |
|
| 321 | - { |
|
| 322 | - $ann = $test->getAnnotations(); |
|
| 323 | - |
|
| 324 | - return isset($ann['method']['slowThreshold'][0]) ? $ann['method']['slowThreshold'][0] : $this->slowThreshold; |
|
| 325 | - } |
|
| 9 | + /** |
|
| 10 | + * Internal tracking for test suites. |
|
| 11 | + * |
|
| 12 | + * Increments as more suites are run, then decremented as they finish. All |
|
| 13 | + * suites have been run when returns to 0. |
|
| 14 | + * |
|
| 15 | + * @var integer |
|
| 16 | + */ |
|
| 17 | + protected $suites = 0; |
|
| 18 | + |
|
| 19 | + /** |
|
| 20 | + * Time in milliseconds at which a test will be considered "slow" and be |
|
| 21 | + * reported by this listener. |
|
| 22 | + * |
|
| 23 | + * @var int |
|
| 24 | + */ |
|
| 25 | + protected $slowThreshold; |
|
| 26 | + |
|
| 27 | + /** |
|
| 28 | + * Number of tests to report on for slowness. |
|
| 29 | + * |
|
| 30 | + * @var int |
|
| 31 | + */ |
|
| 32 | + protected $reportLength; |
|
| 33 | + |
|
| 34 | + /** |
|
| 35 | + * Collection of slow tests. |
|
| 36 | + * |
|
| 37 | + * @var array |
|
| 38 | + */ |
|
| 39 | + protected $slow = array(); |
|
| 40 | + |
|
| 41 | + /** |
|
| 42 | + * Construct a new instance. |
|
| 43 | + * |
|
| 44 | + * @param array $options |
|
| 45 | + */ |
|
| 46 | + public function __construct(array $options = array()) |
|
| 47 | + { |
|
| 48 | + $this->loadOptions($options); |
|
| 49 | + } |
|
| 50 | + |
|
| 51 | + /** |
|
| 52 | + * An error occurred. |
|
| 53 | + * |
|
| 54 | + * @param PHPUnit_Framework_Test $test |
|
| 55 | + * @param Exception $e |
|
| 56 | + * @param float $time |
|
| 57 | + */ |
|
| 58 | + public function addError(PHPUnit_Framework_Test $test, Exception $e, $time) |
|
| 59 | + { |
|
| 60 | + } |
|
| 61 | + |
|
| 62 | + /** |
|
| 63 | + * A warning occurred. |
|
| 64 | + * |
|
| 65 | + * @param PHPUnit_Framework_Test $test |
|
| 66 | + * @param PHPUnit_Framework_Warning $e |
|
| 67 | + * @param float $time |
|
| 68 | + * @since Method available since Release 5.1.0 |
|
| 69 | + */ |
|
| 70 | + public function addWarning(PHPUnit_Framework_Test $test, PHPUnit_Framework_Warning $e, $time) |
|
| 71 | + { |
|
| 72 | + } |
|
| 73 | + |
|
| 74 | + /** |
|
| 75 | + * A failure occurred. |
|
| 76 | + * |
|
| 77 | + * @param PHPUnit_Framework_Test $test |
|
| 78 | + * @param PHPUnit_Framework_AssertionFailedError $e |
|
| 79 | + * @param float $time |
|
| 80 | + */ |
|
| 81 | + public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time) |
|
| 82 | + { |
|
| 83 | + } |
|
| 84 | + |
|
| 85 | + /** |
|
| 86 | + * Incomplete test. |
|
| 87 | + * |
|
| 88 | + * @param PHPUnit_Framework_Test $test |
|
| 89 | + * @param Exception $e |
|
| 90 | + * @param float $time |
|
| 91 | + */ |
|
| 92 | + public function addIncompleteTest(PHPUnit_Framework_Test $test, Exception $e, $time) |
|
| 93 | + { |
|
| 94 | + } |
|
| 95 | + |
|
| 96 | + /** |
|
| 97 | + * Risky test. |
|
| 98 | + * |
|
| 99 | + * @param PHPUnit_Framework_Test $test |
|
| 100 | + * @param Exception $e |
|
| 101 | + * @param float $time |
|
| 102 | + * @since Method available since Release 4.0.0 |
|
| 103 | + */ |
|
| 104 | + public function addRiskyTest(PHPUnit_Framework_Test $test, Exception $e, $time) |
|
| 105 | + { |
|
| 106 | + } |
|
| 107 | + |
|
| 108 | + /** |
|
| 109 | + * Skipped test. |
|
| 110 | + * |
|
| 111 | + * @param PHPUnit_Framework_Test $test |
|
| 112 | + * @param Exception $e |
|
| 113 | + * @param float $time |
|
| 114 | + */ |
|
| 115 | + public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time) |
|
| 116 | + { |
|
| 117 | + } |
|
| 118 | + |
|
| 119 | + /** |
|
| 120 | + * A test started. |
|
| 121 | + * |
|
| 122 | + * @param PHPUnit_Framework_Test $test |
|
| 123 | + */ |
|
| 124 | + public function startTest(PHPUnit_Framework_Test $test) |
|
| 125 | + { |
|
| 126 | + } |
|
| 127 | + |
|
| 128 | + /** |
|
| 129 | + * A test ended. |
|
| 130 | + * |
|
| 131 | + * @param PHPUnit_Framework_Test $test |
|
| 132 | + * @param float $time |
|
| 133 | + */ |
|
| 134 | + public function endTest(PHPUnit_Framework_Test $test, $time) |
|
| 135 | + { |
|
| 136 | + if (!$test instanceof PHPUnit_Framework_TestCase) return; |
|
| 137 | + |
|
| 138 | + $time = $this->toMilliseconds($time); |
|
| 139 | + $threshold = $this->getSlowThreshold($test); |
|
| 140 | + |
|
| 141 | + if ($this->isSlow($time, $threshold)) { |
|
| 142 | + $this->addSlowTest($test, $time); |
|
| 143 | + } |
|
| 144 | + } |
|
| 145 | + |
|
| 146 | + /** |
|
| 147 | + * A test suite started. |
|
| 148 | + * |
|
| 149 | + * @param PHPUnit_Framework_TestSuite $suite |
|
| 150 | + */ |
|
| 151 | + public function startTestSuite(PHPUnit_Framework_TestSuite $suite) |
|
| 152 | + { |
|
| 153 | + $this->suites++; |
|
| 154 | + } |
|
| 155 | + |
|
| 156 | + /** |
|
| 157 | + * A test suite ended. |
|
| 158 | + * |
|
| 159 | + * @param PHPUnit_Framework_TestSuite $suite |
|
| 160 | + */ |
|
| 161 | + public function endTestSuite(PHPUnit_Framework_TestSuite $suite) |
|
| 162 | + { |
|
| 163 | + $this->suites--; |
|
| 164 | + |
|
| 165 | + if (0 === $this->suites && $this->hasSlowTests()) { |
|
| 166 | + arsort($this->slow); // Sort longest running tests to the top |
|
| 167 | + |
|
| 168 | + $this->renderHeader(); |
|
| 169 | + $this->renderBody(); |
|
| 170 | + $this->renderFooter(); |
|
| 171 | + } |
|
| 172 | + } |
|
| 173 | + |
|
| 174 | + /** |
|
| 175 | + * Whether the given test execution time is considered slow. |
|
| 176 | + * |
|
| 177 | + * @param int $time Test execution time in milliseconds |
|
| 178 | + * @param int $slowThreshold Test execution time at which a test should be considered slow (milliseconds) |
|
| 179 | + * @return bool |
|
| 180 | + */ |
|
| 181 | + protected function isSlow($time, $slowThreshold) |
|
| 182 | + { |
|
| 183 | + return $time >= $slowThreshold; |
|
| 184 | + } |
|
| 185 | + |
|
| 186 | + /** |
|
| 187 | + * Stores a test as slow. |
|
| 188 | + * |
|
| 189 | + * @param PHPUnit_Framework_TestCase $test |
|
| 190 | + * @param int $time Test execution time in milliseconds |
|
| 191 | + */ |
|
| 192 | + protected function addSlowTest(PHPUnit_Framework_TestCase $test, $time) |
|
| 193 | + { |
|
| 194 | + $label = $this->makeLabel($test); |
|
| 195 | + |
|
| 196 | + $this->slow[$label] = $time; |
|
| 197 | + } |
|
| 198 | + |
|
| 199 | + /** |
|
| 200 | + * Whether at least one test has been considered slow. |
|
| 201 | + * |
|
| 202 | + * @return bool |
|
| 203 | + */ |
|
| 204 | + protected function hasSlowTests() |
|
| 205 | + { |
|
| 206 | + return !empty($this->slow); |
|
| 207 | + } |
|
| 208 | + |
|
| 209 | + /** |
|
| 210 | + * Convert PHPUnit's reported test time (microseconds) to milliseconds. |
|
| 211 | + * |
|
| 212 | + * @param float $time |
|
| 213 | + * @return int |
|
| 214 | + */ |
|
| 215 | + protected function toMilliseconds($time) |
|
| 216 | + { |
|
| 217 | + return (int) round($time * 1000); |
|
| 218 | + } |
|
| 219 | + |
|
| 220 | + /** |
|
| 221 | + * Label for describing a test. |
|
| 222 | + * |
|
| 223 | + * @param PHPUnit_Framework_TestCase $test |
|
| 224 | + * @return string |
|
| 225 | + */ |
|
| 226 | + protected function makeLabel(PHPUnit_Framework_TestCase $test) |
|
| 227 | + { |
|
| 228 | + return sprintf('%s:%s', get_class($test), $test->getName()); |
|
| 229 | + } |
|
| 230 | + |
|
| 231 | + /** |
|
| 232 | + * Calculate number of slow tests to report about. |
|
| 233 | + * |
|
| 234 | + * @return int |
|
| 235 | + */ |
|
| 236 | + protected function getReportLength() |
|
| 237 | + { |
|
| 238 | + return min(count($this->slow), $this->reportLength); |
|
| 239 | + } |
|
| 240 | + |
|
| 241 | + /** |
|
| 242 | + * Find how many slow tests occurred that won't be shown due to list length. |
|
| 243 | + * |
|
| 244 | + * @return int Number of hidden slow tests |
|
| 245 | + */ |
|
| 246 | + protected function getHiddenCount() |
|
| 247 | + { |
|
| 248 | + $total = count($this->slow); |
|
| 249 | + $showing = $this->getReportLength($this->slow); |
|
| 250 | + |
|
| 251 | + $hidden = 0; |
|
| 252 | + if ($total > $showing) { |
|
| 253 | + $hidden = $total - $showing; |
|
| 254 | + } |
|
| 255 | + |
|
| 256 | + return $hidden; |
|
| 257 | + } |
|
| 258 | + |
|
| 259 | + /** |
|
| 260 | + * Renders slow test report header. |
|
| 261 | + */ |
|
| 262 | + protected function renderHeader() |
|
| 263 | + { |
|
| 264 | + echo sprintf("\n\nYou should really fix these slow tests (>%sms)...\n", $this->slowThreshold); |
|
| 265 | + } |
|
| 266 | + |
|
| 267 | + /** |
|
| 268 | + * Renders slow test report body. |
|
| 269 | + */ |
|
| 270 | + protected function renderBody() |
|
| 271 | + { |
|
| 272 | + $slowTests = $this->slow; |
|
| 273 | + |
|
| 274 | + $length = $this->getReportLength($slowTests); |
|
| 275 | + for ($i = 1; $i <= $length; ++$i) { |
|
| 276 | + $label = key($slowTests); |
|
| 277 | + $time = array_shift($slowTests); |
|
| 278 | + |
|
| 279 | + echo sprintf(" %s. %sms to run %s\n", $i, $time, $label); |
|
| 280 | + } |
|
| 281 | + } |
|
| 282 | + |
|
| 283 | + /** |
|
| 284 | + * Renders slow test report footer. |
|
| 285 | + */ |
|
| 286 | + protected function renderFooter() |
|
| 287 | + { |
|
| 288 | + if ($hidden = $this->getHiddenCount($this->slow)) { |
|
| 289 | + echo sprintf("...and there %s %s more above your threshold hidden from view", $hidden == 1 ? 'is' : 'are', $hidden); |
|
| 290 | + } |
|
| 291 | + } |
|
| 292 | + |
|
| 293 | + /** |
|
| 294 | + * Populate options into class internals. |
|
| 295 | + * |
|
| 296 | + * @param array $options |
|
| 297 | + */ |
|
| 298 | + protected function loadOptions(array $options) |
|
| 299 | + { |
|
| 300 | + $this->slowThreshold = isset($options['slowThreshold']) ? $options['slowThreshold'] : 500; |
|
| 301 | + $this->reportLength = isset($options['reportLength']) ? $options['reportLength'] : 10; |
|
| 302 | + } |
|
| 303 | + |
|
| 304 | + /** |
|
| 305 | + * Get slow test threshold for given test. A TestCase can override the |
|
| 306 | + * suite-wide slow threshold by using the annotation @slowThreshold with |
|
| 307 | + * the threshold value in milliseconds. |
|
| 308 | + * |
|
| 309 | + * The following test will only be considered slow when its execution time |
|
| 310 | + * reaches 5000ms (5 seconds): |
|
| 311 | + * |
|
| 312 | + * <code> |
|
| 313 | + * @slowThreshold 5000 |
|
| 314 | + * public function testLongRunningProcess() {} |
|
| 315 | + * </code> |
|
| 316 | + * |
|
| 317 | + * @param PHPUnit_Framework_TestCase $test |
|
| 318 | + * @return int |
|
| 319 | + */ |
|
| 320 | + protected function getSlowThreshold(PHPUnit_Framework_TestCase $test) |
|
| 321 | + { |
|
| 322 | + $ann = $test->getAnnotations(); |
|
| 323 | + |
|
| 324 | + return isset($ann['method']['slowThreshold'][0]) ? $ann['method']['slowThreshold'][0] : $this->slowThreshold; |
|
| 325 | + } |
|
| 326 | 326 | } |
@@ -133,7 +133,9 @@ |
||
| 133 | 133 | */ |
| 134 | 134 | public function endTest(PHPUnit_Framework_Test $test, $time) |
| 135 | 135 | { |
| 136 | - if (!$test instanceof PHPUnit_Framework_TestCase) return; |
|
| 136 | + if (!$test instanceof PHPUnit_Framework_TestCase) { |
|
| 137 | + return; |
|
| 138 | + } |
|
| 137 | 139 | |
| 138 | 140 | $time = $this->toMilliseconds($time); |
| 139 | 141 | $threshold = $this->getSlowThreshold($test); |
@@ -1,6 +1,6 @@ discard block |
||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | -if (class_exists( 'WP_Image_Editor' ) ) : |
|
| 3 | +if (class_exists('WP_Image_Editor')) : |
|
| 4 | 4 | |
| 5 | 5 | class WP_Image_Editor_Mock extends WP_Image_Editor { |
| 6 | 6 | |
@@ -9,38 +9,38 @@ discard block |
||
| 9 | 9 | public static $save_return = array(); |
| 10 | 10 | |
| 11 | 11 | // Allow testing of jpeg_quality filter. |
| 12 | - public function set_mime_type( $mime_type = null ) { |
|
| 12 | + public function set_mime_type($mime_type = null) { |
|
| 13 | 13 | $this->mime_type = $mime_type; |
| 14 | 14 | } |
| 15 | 15 | |
| 16 | 16 | public function load() { |
| 17 | 17 | return self::$load_return; |
| 18 | 18 | } |
| 19 | - public static function test( $args = array() ) { |
|
| 19 | + public static function test($args = array()) { |
|
| 20 | 20 | return self::$test_return; |
| 21 | 21 | } |
| 22 | - public static function supports_mime_type( $mime_type ) { |
|
| 22 | + public static function supports_mime_type($mime_type) { |
|
| 23 | 23 | return true; |
| 24 | 24 | } |
| 25 | - public function resize( $max_w, $max_h, $crop = false ) { |
|
| 25 | + public function resize($max_w, $max_h, $crop = false) { |
|
| 26 | 26 | |
| 27 | 27 | } |
| 28 | - public function multi_resize( $sizes ) { |
|
| 28 | + public function multi_resize($sizes) { |
|
| 29 | 29 | |
| 30 | 30 | } |
| 31 | - public function crop( $src_x, $src_y, $src_w, $src_h, $dst_w = null, $dst_h = null, $src_abs = false ) { |
|
| 31 | + public function crop($src_x, $src_y, $src_w, $src_h, $dst_w = null, $dst_h = null, $src_abs = false) { |
|
| 32 | 32 | |
| 33 | 33 | } |
| 34 | - public function rotate( $angle ) { |
|
| 34 | + public function rotate($angle) { |
|
| 35 | 35 | |
| 36 | 36 | } |
| 37 | - public function flip( $horz, $vert ) { |
|
| 37 | + public function flip($horz, $vert) { |
|
| 38 | 38 | |
| 39 | 39 | } |
| 40 | - public function save( $destfilename = null, $mime_type = null ) { |
|
| 40 | + public function save($destfilename = null, $mime_type = null) { |
|
| 41 | 41 | return self::$save_return; |
| 42 | 42 | } |
| 43 | - public function stream( $mime_type = null ) { |
|
| 43 | + public function stream($mime_type = null) { |
|
| 44 | 44 | |
| 45 | 45 | } |
| 46 | 46 | } |
@@ -1,19 +1,19 @@ |
||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | 3 | abstract class WP_Test_REST_TestCase extends WP_UnitTestCase { |
| 4 | - protected function assertErrorResponse( $code, $response, $status = null ) { |
|
| 4 | + protected function assertErrorResponse($code, $response, $status = null) { |
|
| 5 | 5 | |
| 6 | - if ( is_a( $response, 'WP_REST_Response' ) ) { |
|
| 6 | + if (is_a($response, 'WP_REST_Response')) { |
|
| 7 | 7 | $response = $response->as_error(); |
| 8 | 8 | } |
| 9 | 9 | |
| 10 | - $this->assertInstanceOf( 'WP_Error', $response ); |
|
| 11 | - $this->assertEquals( $code, $response->get_error_code() ); |
|
| 10 | + $this->assertInstanceOf('WP_Error', $response); |
|
| 11 | + $this->assertEquals($code, $response->get_error_code()); |
|
| 12 | 12 | |
| 13 | - if ( null !== $status ) { |
|
| 13 | + if (null !== $status) { |
|
| 14 | 14 | $data = $response->get_error_data(); |
| 15 | - $this->assertArrayHasKey( 'status', $data ); |
|
| 16 | - $this->assertEquals( $status, $data['status'] ); |
|
| 15 | + $this->assertArrayHasKey('status', $data); |
|
| 16 | + $this->assertEquals($status, $data['status']); |
|
| 17 | 17 | } |
| 18 | 18 | } |
| 19 | 19 | } |
@@ -7,9 +7,10 @@ discard block |
||
| 7 | 7 | $config_file_path = dirname( dirname( __FILE__ ) ); |
| 8 | 8 | if ( ! file_exists( $config_file_path . '/wp-tests-config.php' ) ) { |
| 9 | 9 | // Support the config file from the root of the develop repository. |
| 10 | - if ( basename( $config_file_path ) === 'phpunit' && basename( dirname( $config_file_path ) ) === 'tests' ) |
|
| 11 | - $config_file_path = dirname( dirname( $config_file_path ) ); |
|
| 12 | -} |
|
| 10 | + if ( basename( $config_file_path ) === 'phpunit' && basename( dirname( $config_file_path ) ) === 'tests' ) { |
|
| 11 | + $config_file_path = dirname( dirname( $config_file_path ) ); |
|
| 12 | + } |
|
| 13 | + } |
|
| 13 | 14 | $config_file_path .= '/wp-tests-config.php'; |
| 14 | 15 | |
| 15 | 16 | /* |
@@ -26,8 +27,9 @@ discard block |
||
| 26 | 27 | define( 'WP_TESTS_TABLE_PREFIX', $table_prefix ); |
| 27 | 28 | define( 'DIR_TESTDATA', dirname( __FILE__ ) . '/../data' ); |
| 28 | 29 | |
| 29 | -if ( ! defined( 'WP_TESTS_FORCE_KNOWN_BUGS' ) ) |
|
| 30 | +if ( ! defined( 'WP_TESTS_FORCE_KNOWN_BUGS' ) ) { |
|
| 30 | 31 | define( 'WP_TESTS_FORCE_KNOWN_BUGS', false ); |
| 32 | +} |
|
| 31 | 33 | |
| 32 | 34 | // Cron tries to make an HTTP request to the blog, which always fails, because tests are run in CLI mode only |
| 33 | 35 | define( 'DISABLE_WP_CRON', true ); |
@@ -126,8 +128,7 @@ discard block |
||
| 126 | 128 | if ( strlen( $arg ) > 1 && $arg[0] === '-' && $arg[1] === '-' ) { |
| 127 | 129 | PHPUnit_Util_Getopt::parseLongOption( substr( $arg, 2 ), $this->longOptions, $options, $argv ); |
| 128 | 130 | } |
| 129 | - } |
|
| 130 | - catch ( PHPUnit_Framework_Exception $e ) { |
|
| 131 | + } catch ( PHPUnit_Framework_Exception $e ) { |
|
| 131 | 132 | // Enforcing recognized arguments or correctly formed arguments is |
| 132 | 133 | // not really the concern here. |
| 133 | 134 | continue; |
@@ -175,6 +175,6 @@ |
||
| 175 | 175 | echo 'If this changeset includes changes to HTTP, make sure there are no timeouts.' . PHP_EOL; |
| 176 | 176 | echo PHP_EOL; |
| 177 | 177 | } |
| 178 | - } |
|
| 178 | + } |
|
| 179 | 179 | } |
| 180 | 180 | new WP_PHPUnit_Util_Getopt( $_SERVER['argv'] ); |
@@ -4,11 +4,11 @@ discard block |
||
| 4 | 4 | */ |
| 5 | 5 | |
| 6 | 6 | |
| 7 | -$config_file_path = dirname( dirname( __FILE__ ) ); |
|
| 8 | -if ( ! file_exists( $config_file_path . '/wp-tests-config.php' ) ) { |
|
| 7 | +$config_file_path = dirname(dirname(__FILE__)); |
|
| 8 | +if (!file_exists($config_file_path.'/wp-tests-config.php')) { |
|
| 9 | 9 | // Support the config file from the root of the develop repository. |
| 10 | - if ( basename( $config_file_path ) === 'phpunit' && basename( dirname( $config_file_path ) ) === 'tests' ) |
|
| 11 | - $config_file_path = dirname( dirname( $config_file_path ) ); |
|
| 10 | + if (basename($config_file_path) === 'phpunit' && basename(dirname($config_file_path)) === 'tests') |
|
| 11 | + $config_file_path = dirname(dirname($config_file_path)); |
|
| 12 | 12 | } |
| 13 | 13 | $config_file_path .= '/wp-tests-config.php'; |
| 14 | 14 | |
@@ -18,22 +18,22 @@ discard block |
||
| 18 | 18 | */ |
| 19 | 19 | global $wpdb, $current_site, $current_blog, $wp_rewrite, $shortcode_tags, $wp, $phpmailer; |
| 20 | 20 | |
| 21 | -if ( !is_readable( $config_file_path ) ) { |
|
| 22 | - die( "ERROR: wp-tests-config.php is missing! Please use wp-tests-config-sample.php to create a config file.\n" ); |
|
| 21 | +if (!is_readable($config_file_path)) { |
|
| 22 | + die("ERROR: wp-tests-config.php is missing! Please use wp-tests-config-sample.php to create a config file.\n"); |
|
| 23 | 23 | } |
| 24 | 24 | require_once $config_file_path; |
| 25 | 25 | |
| 26 | -define( 'WP_TESTS_TABLE_PREFIX', $table_prefix ); |
|
| 27 | -define( 'DIR_TESTDATA', dirname( __FILE__ ) . '/../data' ); |
|
| 26 | +define('WP_TESTS_TABLE_PREFIX', $table_prefix); |
|
| 27 | +define('DIR_TESTDATA', dirname(__FILE__).'/../data'); |
|
| 28 | 28 | |
| 29 | -if ( ! defined( 'WP_TESTS_FORCE_KNOWN_BUGS' ) ) |
|
| 30 | - define( 'WP_TESTS_FORCE_KNOWN_BUGS', false ); |
|
| 29 | +if (!defined('WP_TESTS_FORCE_KNOWN_BUGS')) |
|
| 30 | + define('WP_TESTS_FORCE_KNOWN_BUGS', false); |
|
| 31 | 31 | |
| 32 | 32 | // Cron tries to make an HTTP request to the blog, which always fails, because tests are run in CLI mode only |
| 33 | -define( 'DISABLE_WP_CRON', true ); |
|
| 33 | +define('DISABLE_WP_CRON', true); |
|
| 34 | 34 | |
| 35 | -define( 'WP_MEMORY_LIMIT', -1 ); |
|
| 36 | -define( 'WP_MAX_MEMORY_LIMIT', -1 ); |
|
| 35 | +define('WP_MEMORY_LIMIT', -1); |
|
| 36 | +define('WP_MAX_MEMORY_LIMIT', -1); |
|
| 37 | 37 | |
| 38 | 38 | $_SERVER['SERVER_PROTOCOL'] = 'HTTP/1.1'; |
| 39 | 39 | $_SERVER['HTTP_HOST'] = WP_TESTS_DOMAIN; |
@@ -43,62 +43,62 @@ discard block |
||
| 43 | 43 | |
| 44 | 44 | $PHP_SELF = $GLOBALS['PHP_SELF'] = $_SERVER['PHP_SELF'] = '/index.php'; |
| 45 | 45 | |
| 46 | -if ( "1" == getenv( 'WP_MULTISITE' ) || |
|
| 47 | - ( defined( 'WP_TESTS_MULTISITE') && WP_TESTS_MULTISITE ) ) { |
|
| 46 | +if ("1" == getenv('WP_MULTISITE') || |
|
| 47 | + (defined('WP_TESTS_MULTISITE') && WP_TESTS_MULTISITE)) { |
|
| 48 | 48 | $multisite = true; |
| 49 | 49 | } else { |
| 50 | 50 | $multisite = false; |
| 51 | 51 | } |
| 52 | 52 | |
| 53 | 53 | // Override the PHPMailer |
| 54 | -require_once( dirname( __FILE__ ) . '/mock-mailer.php' ); |
|
| 54 | +require_once(dirname(__FILE__).'/mock-mailer.php'); |
|
| 55 | 55 | $phpmailer = new MockPHPMailer(); |
| 56 | 56 | |
| 57 | -system( WP_PHP_BINARY . ' ' . escapeshellarg( dirname( __FILE__ ) . '/install.php' ) . ' ' . escapeshellarg( $config_file_path ) . ' ' . $multisite ); |
|
| 57 | +system(WP_PHP_BINARY.' '.escapeshellarg(dirname(__FILE__).'/install.php').' '.escapeshellarg($config_file_path).' '.$multisite); |
|
| 58 | 58 | |
| 59 | -if ( $multisite ) { |
|
| 60 | - echo "Running as multisite..." . PHP_EOL; |
|
| 61 | - define( 'MULTISITE', true ); |
|
| 62 | - define( 'SUBDOMAIN_INSTALL', false ); |
|
| 59 | +if ($multisite) { |
|
| 60 | + echo "Running as multisite...".PHP_EOL; |
|
| 61 | + define('MULTISITE', true); |
|
| 62 | + define('SUBDOMAIN_INSTALL', false); |
|
| 63 | 63 | $GLOBALS['base'] = '/'; |
| 64 | 64 | } else { |
| 65 | - echo "Running as single site... To run multisite, use -c tests/phpunit/multisite.xml" . PHP_EOL; |
|
| 65 | + echo "Running as single site... To run multisite, use -c tests/phpunit/multisite.xml".PHP_EOL; |
|
| 66 | 66 | } |
| 67 | -unset( $multisite ); |
|
| 67 | +unset($multisite); |
|
| 68 | 68 | |
| 69 | -require_once dirname( __FILE__ ) . '/functions.php'; |
|
| 69 | +require_once dirname(__FILE__).'/functions.php'; |
|
| 70 | 70 | |
| 71 | 71 | $GLOBALS['_wp_die_disabled'] = false; |
| 72 | 72 | // Allow tests to override wp_die |
| 73 | -tests_add_filter( 'wp_die_handler', '_wp_die_handler_filter' ); |
|
| 73 | +tests_add_filter('wp_die_handler', '_wp_die_handler_filter'); |
|
| 74 | 74 | |
| 75 | 75 | // Preset WordPress options defined in bootstrap file. |
| 76 | 76 | // Used to activate themes, plugins, as well as other settings. |
| 77 | -if(isset($GLOBALS['wp_tests_options'])) { |
|
| 78 | - function wp_tests_options( $value ) { |
|
| 79 | - $key = substr( current_filter(), strlen( 'pre_option_' ) ); |
|
| 77 | +if (isset($GLOBALS['wp_tests_options'])) { |
|
| 78 | + function wp_tests_options($value) { |
|
| 79 | + $key = substr(current_filter(), strlen('pre_option_')); |
|
| 80 | 80 | return $GLOBALS['wp_tests_options'][$key]; |
| 81 | 81 | } |
| 82 | 82 | |
| 83 | - foreach ( array_keys( $GLOBALS['wp_tests_options'] ) as $key ) { |
|
| 84 | - tests_add_filter( 'pre_option_'.$key, 'wp_tests_options' ); |
|
| 83 | + foreach (array_keys($GLOBALS['wp_tests_options']) as $key) { |
|
| 84 | + tests_add_filter('pre_option_'.$key, 'wp_tests_options'); |
|
| 85 | 85 | } |
| 86 | 86 | } |
| 87 | 87 | |
| 88 | 88 | // Load WordPress |
| 89 | -require_once ABSPATH . '/wp-settings.php'; |
|
| 89 | +require_once ABSPATH.'/wp-settings.php'; |
|
| 90 | 90 | |
| 91 | 91 | // Delete any default posts & related data |
| 92 | 92 | _delete_all_posts(); |
| 93 | 93 | |
| 94 | -require dirname( __FILE__ ) . '/testcase.php'; |
|
| 95 | -require dirname( __FILE__ ) . '/testcase-rest-api.php'; |
|
| 96 | -require dirname( __FILE__ ) . '/testcase-xmlrpc.php'; |
|
| 97 | -require dirname( __FILE__ ) . '/testcase-ajax.php'; |
|
| 98 | -require dirname( __FILE__ ) . '/testcase-canonical.php'; |
|
| 99 | -require dirname( __FILE__ ) . '/exceptions.php'; |
|
| 100 | -require dirname( __FILE__ ) . '/utils.php'; |
|
| 101 | -require dirname( __FILE__ ) . '/spy-rest-server.php'; |
|
| 94 | +require dirname(__FILE__).'/testcase.php'; |
|
| 95 | +require dirname(__FILE__).'/testcase-rest-api.php'; |
|
| 96 | +require dirname(__FILE__).'/testcase-xmlrpc.php'; |
|
| 97 | +require dirname(__FILE__).'/testcase-ajax.php'; |
|
| 98 | +require dirname(__FILE__).'/testcase-canonical.php'; |
|
| 99 | +require dirname(__FILE__).'/exceptions.php'; |
|
| 100 | +require dirname(__FILE__).'/utils.php'; |
|
| 101 | +require dirname(__FILE__).'/spy-rest-server.php'; |
|
| 102 | 102 | |
| 103 | 103 | /** |
| 104 | 104 | * A child class of the PHP test runner. |
@@ -118,16 +118,16 @@ discard block |
||
| 118 | 118 | 'exclude-group=', |
| 119 | 119 | 'group=', |
| 120 | 120 | ); |
| 121 | - function __construct( $argv ) { |
|
| 122 | - array_shift( $argv ); |
|
| 121 | + function __construct($argv) { |
|
| 122 | + array_shift($argv); |
|
| 123 | 123 | $options = array(); |
| 124 | - while ( list( $i, $arg ) = each( $argv ) ) { |
|
| 124 | + while (list($i, $arg) = each($argv)) { |
|
| 125 | 125 | try { |
| 126 | - if ( strlen( $arg ) > 1 && $arg[0] === '-' && $arg[1] === '-' ) { |
|
| 127 | - PHPUnit_Util_Getopt::parseLongOption( substr( $arg, 2 ), $this->longOptions, $options, $argv ); |
|
| 126 | + if (strlen($arg) > 1 && $arg[0] === '-' && $arg[1] === '-') { |
|
| 127 | + PHPUnit_Util_Getopt::parseLongOption(substr($arg, 2), $this->longOptions, $options, $argv); |
|
| 128 | 128 | } |
| 129 | 129 | } |
| 130 | - catch ( PHPUnit_Framework_Exception $e ) { |
|
| 130 | + catch (PHPUnit_Framework_Exception $e) { |
|
| 131 | 131 | // Enforcing recognized arguments or correctly formed arguments is |
| 132 | 132 | // not really the concern here. |
| 133 | 133 | continue; |
@@ -140,41 +140,41 @@ discard block |
||
| 140 | 140 | 'external-http' => true, |
| 141 | 141 | ); |
| 142 | 142 | |
| 143 | - foreach ( $options as $option ) { |
|
| 144 | - switch ( $option[0] ) { |
|
| 143 | + foreach ($options as $option) { |
|
| 144 | + switch ($option[0]) { |
|
| 145 | 145 | case '--exclude-group' : |
| 146 | - foreach ( $skipped_groups as $group_name => $skipped ) { |
|
| 147 | - $skipped_groups[ $group_name ] = false; |
|
| 146 | + foreach ($skipped_groups as $group_name => $skipped) { |
|
| 147 | + $skipped_groups[$group_name] = false; |
|
| 148 | 148 | } |
| 149 | 149 | continue 2; |
| 150 | 150 | case '--group' : |
| 151 | - $groups = explode( ',', $option[1] ); |
|
| 152 | - foreach ( $groups as $group ) { |
|
| 153 | - if ( is_numeric( $group ) || preg_match( '/^(UT|Plugin)\d+$/', $group ) ) { |
|
| 154 | - WP_UnitTestCase::forceTicket( $group ); |
|
| 151 | + $groups = explode(',', $option[1]); |
|
| 152 | + foreach ($groups as $group) { |
|
| 153 | + if (is_numeric($group) || preg_match('/^(UT|Plugin)\d+$/', $group)) { |
|
| 154 | + WP_UnitTestCase::forceTicket($group); |
|
| 155 | 155 | } |
| 156 | 156 | } |
| 157 | 157 | |
| 158 | - foreach ( $skipped_groups as $group_name => $skipped ) { |
|
| 159 | - if ( in_array( $group_name, $groups ) ) { |
|
| 160 | - $skipped_groups[ $group_name ] = false; |
|
| 158 | + foreach ($skipped_groups as $group_name => $skipped) { |
|
| 159 | + if (in_array($group_name, $groups)) { |
|
| 160 | + $skipped_groups[$group_name] = false; |
|
| 161 | 161 | } |
| 162 | 162 | } |
| 163 | 163 | continue 2; |
| 164 | 164 | } |
| 165 | 165 | } |
| 166 | 166 | |
| 167 | - $skipped_groups = array_filter( $skipped_groups ); |
|
| 168 | - foreach ( $skipped_groups as $group_name => $skipped ) { |
|
| 169 | - echo sprintf( 'Not running %1$s tests. To execute these, use --group %1$s.', $group_name ) . PHP_EOL; |
|
| 167 | + $skipped_groups = array_filter($skipped_groups); |
|
| 168 | + foreach ($skipped_groups as $group_name => $skipped) { |
|
| 169 | + echo sprintf('Not running %1$s tests. To execute these, use --group %1$s.', $group_name).PHP_EOL; |
|
| 170 | 170 | } |
| 171 | 171 | |
| 172 | - if ( ! isset( $skipped_groups['external-http'] ) ) { |
|
| 172 | + if (!isset($skipped_groups['external-http'])) { |
|
| 173 | 173 | echo PHP_EOL; |
| 174 | - echo 'External HTTP skipped tests can be caused by timeouts.' . PHP_EOL; |
|
| 175 | - echo 'If this changeset includes changes to HTTP, make sure there are no timeouts.' . PHP_EOL; |
|
| 174 | + echo 'External HTTP skipped tests can be caused by timeouts.'.PHP_EOL; |
|
| 175 | + echo 'If this changeset includes changes to HTTP, make sure there are no timeouts.'.PHP_EOL; |
|
| 176 | 176 | echo PHP_EOL; |
| 177 | 177 | } |
| 178 | 178 | } |
| 179 | 179 | } |
| 180 | -new WP_PHPUnit_Util_Getopt( $_SERVER['argv'] ); |
|
| 180 | +new WP_PHPUnit_Util_Getopt($_SERVER['argv']); |
|
@@ -168,19 +168,22 @@ discard block |
||
| 168 | 168 | public function assertCanonical( $test_url, $expected, $ticket = 0, $expected_doing_it_wrong = array() ) { |
| 169 | 169 | $this->expected_doing_it_wrong = array_merge( $this->expected_doing_it_wrong, (array) $expected_doing_it_wrong ); |
| 170 | 170 | |
| 171 | - if ( $ticket ) |
|
| 172 | - $this->knownWPBug( $ticket ); |
|
| 171 | + if ( $ticket ) { |
|
| 172 | + $this->knownWPBug( $ticket ); |
|
| 173 | + } |
|
| 173 | 174 | |
| 174 | 175 | $ticket_ref = ($ticket > 0) ? 'Ticket #' . $ticket : null; |
| 175 | 176 | global $wpdb; |
| 176 | 177 | //print_r( $wpdb->get_results( "SELECT * FROM $wpdb->terms" ) ); |
| 177 | - if ( is_string($expected) ) |
|
| 178 | - $expected = array('url' => $expected); |
|
| 179 | - elseif ( is_array($expected) && !isset($expected['url']) && !isset($expected['qv']) ) |
|
| 180 | - $expected = array( 'qv' => $expected ); |
|
| 178 | + if ( is_string($expected) ) { |
|
| 179 | + $expected = array('url' => $expected); |
|
| 180 | + } elseif ( is_array($expected) && !isset($expected['url']) && !isset($expected['qv']) ) { |
|
| 181 | + $expected = array( 'qv' => $expected ); |
|
| 182 | + } |
|
| 181 | 183 | |
| 182 | - if ( !isset($expected['url']) && !isset($expected['qv']) ) |
|
| 183 | - $this->markTestSkipped('No valid expected output was provided'); |
|
| 184 | + if ( !isset($expected['url']) && !isset($expected['qv']) ) { |
|
| 185 | + $this->markTestSkipped('No valid expected output was provided'); |
|
| 186 | + } |
|
| 184 | 187 | |
| 185 | 188 | $this->go_to( home_url( $test_url ) ); |
| 186 | 189 | |
@@ -193,8 +196,9 @@ discard block |
||
| 193 | 196 | $this->assertEquals( $expected['url'], $parsed_can_url['path'] . (!empty($parsed_can_url['query']) ? '?' . $parsed_can_url['query'] : ''), $ticket_ref ); |
| 194 | 197 | } |
| 195 | 198 | |
| 196 | - if ( ! isset($expected['qv']) ) |
|
| 197 | - return; |
|
| 199 | + if ( ! isset($expected['qv']) ) { |
|
| 200 | + return; |
|
| 201 | + } |
|
| 198 | 202 | |
| 199 | 203 | // "make" that the request and check the query is correct |
| 200 | 204 | $this->go_to( $can_url ); |
@@ -227,8 +231,10 @@ discard block |
||
| 227 | 231 | $test_url = home_url( $test_url ); |
| 228 | 232 | |
| 229 | 233 | $can_url = redirect_canonical( $test_url, false ); |
| 230 | - if ( ! $can_url ) |
|
| 231 | - return $test_url; // No redirect will take place for this request |
|
| 234 | + if ( ! $can_url ) { |
|
| 235 | + return $test_url; |
|
| 236 | + } |
|
| 237 | + // No redirect will take place for this request |
|
| 232 | 238 | |
| 233 | 239 | return $can_url; |
| 234 | 240 | } |
@@ -18,13 +18,13 @@ discard block |
||
| 18 | 18 | public function setUp() { |
| 19 | 19 | parent::setUp(); |
| 20 | 20 | |
| 21 | - update_option( 'page_comments', true ); |
|
| 22 | - update_option( 'comments_per_page', 5 ); |
|
| 23 | - update_option( 'posts_per_page', 5 ); |
|
| 21 | + update_option('page_comments', true); |
|
| 22 | + update_option('comments_per_page', 5); |
|
| 23 | + update_option('posts_per_page', 5); |
|
| 24 | 24 | |
| 25 | 25 | global $wp_rewrite; |
| 26 | 26 | $wp_rewrite->init(); |
| 27 | - $wp_rewrite->set_permalink_structure( $this->structure ); |
|
| 27 | + $wp_rewrite->set_permalink_structure($this->structure); |
|
| 28 | 28 | |
| 29 | 29 | create_initial_taxonomies(); |
| 30 | 30 | |
@@ -38,94 +38,94 @@ discard block |
||
| 38 | 38 | * |
| 39 | 39 | * @since 4.1.0 |
| 40 | 40 | */ |
| 41 | - public static function generate_shared_fixtures( $factory ) { |
|
| 41 | + public static function generate_shared_fixtures($factory) { |
|
| 42 | 42 | self::$old_current_user = get_current_user_id(); |
| 43 | - self::$author_id = $factory->user->create( array( 'user_login' => 'canonical-author' ) ); |
|
| 43 | + self::$author_id = $factory->user->create(array('user_login' => 'canonical-author')); |
|
| 44 | 44 | |
| 45 | 45 | /* |
| 46 | 46 | * Also set in self::setUp(), but we must configure here to make sure that |
| 47 | 47 | * post authorship is properly attributed for fixtures. |
| 48 | 48 | */ |
| 49 | - wp_set_current_user( self::$author_id ); |
|
| 49 | + wp_set_current_user(self::$author_id); |
|
| 50 | 50 | |
| 51 | 51 | // Already created by install defaults: |
| 52 | 52 | // self::factory()->term->create( array( 'taxonomy' => 'category', 'name' => 'uncategorized' ) ); |
| 53 | 53 | |
| 54 | - self::$post_ids[] = $factory->post->create( array( 'import_id' => 587, 'post_title' => 'post-format-test-audio', 'post_date' => '2008-06-02 00:00:00' ) ); |
|
| 55 | - self::$post_ids[] = $post_id = $factory->post->create( array( 'post_title' => 'post-format-test-gallery', 'post_date' => '2008-06-10 00:00:00' ) ); |
|
| 56 | - self::$post_ids[] = $factory->post->create( array( 'import_id' => 611, 'post_type' => 'attachment', 'post_title' => 'canola2', 'post_parent' => $post_id ) ); |
|
| 54 | + self::$post_ids[] = $factory->post->create(array('import_id' => 587, 'post_title' => 'post-format-test-audio', 'post_date' => '2008-06-02 00:00:00')); |
|
| 55 | + self::$post_ids[] = $post_id = $factory->post->create(array('post_title' => 'post-format-test-gallery', 'post_date' => '2008-06-10 00:00:00')); |
|
| 56 | + self::$post_ids[] = $factory->post->create(array('import_id' => 611, 'post_type' => 'attachment', 'post_title' => 'canola2', 'post_parent' => $post_id)); |
|
| 57 | 57 | |
| 58 | - self::$post_ids[] = $factory->post->create( array( |
|
| 58 | + self::$post_ids[] = $factory->post->create(array( |
|
| 59 | 59 | 'post_title' => 'images-test', |
| 60 | 60 | 'post_date' => '2008-09-03 00:00:00', |
| 61 | 61 | 'post_content' => 'Page 1 <!--nextpage--> Page 2 <!--nextpage--> Page 3' |
| 62 | - ) ); |
|
| 62 | + )); |
|
| 63 | 63 | |
| 64 | - self::$post_ids[] = $post_id = $factory->post->create( array( 'import_id' => 149, 'post_title' => 'comment-test', 'post_date' => '2008-03-03 00:00:00' ) ); |
|
| 65 | - self::$comment_ids = $factory->comment->create_post_comments( $post_id, 15 ); |
|
| 64 | + self::$post_ids[] = $post_id = $factory->post->create(array('import_id' => 149, 'post_title' => 'comment-test', 'post_date' => '2008-03-03 00:00:00')); |
|
| 65 | + self::$comment_ids = $factory->comment->create_post_comments($post_id, 15); |
|
| 66 | 66 | |
| 67 | - self::$post_ids[] = $factory->post->create( array( 'post_date' => '2008-09-05 00:00:00' ) ); |
|
| 67 | + self::$post_ids[] = $factory->post->create(array('post_date' => '2008-09-05 00:00:00')); |
|
| 68 | 68 | |
| 69 | - self::$post_ids[] = $factory->post->create( array( 'import_id' => 123 ) ); |
|
| 70 | - self::$post_ids[] = $factory->post->create( array( 'import_id' => 1 ) ); |
|
| 71 | - self::$post_ids[] = $factory->post->create( array( 'import_id' => 358 ) ); |
|
| 69 | + self::$post_ids[] = $factory->post->create(array('import_id' => 123)); |
|
| 70 | + self::$post_ids[] = $factory->post->create(array('import_id' => 1)); |
|
| 71 | + self::$post_ids[] = $factory->post->create(array('import_id' => 358)); |
|
| 72 | 72 | |
| 73 | - self::$post_ids[] = $factory->post->create( array( 'post_type' => 'page', 'post_title' => 'sample-page' ) ); |
|
| 74 | - self::$post_ids[] = $factory->post->create( array( 'post_type' => 'page', 'post_title' => 'about' ) ); |
|
| 75 | - self::$post_ids[] = $post_id = $factory->post->create( array( 'post_type' => 'page', 'post_title' => 'parent-page' ) ); |
|
| 73 | + self::$post_ids[] = $factory->post->create(array('post_type' => 'page', 'post_title' => 'sample-page')); |
|
| 74 | + self::$post_ids[] = $factory->post->create(array('post_type' => 'page', 'post_title' => 'about')); |
|
| 75 | + self::$post_ids[] = $post_id = $factory->post->create(array('post_type' => 'page', 'post_title' => 'parent-page')); |
|
| 76 | 76 | self::$post_ids[] = $factory->post->create( |
| 77 | - array( 'import_id' => 144, 'post_type' => 'page', 'post_title' => 'child-page-1', 'post_parent' => $post_id, |
|
| 77 | + array('import_id' => 144, 'post_type' => 'page', 'post_title' => 'child-page-1', 'post_parent' => $post_id, |
|
| 78 | 78 | ) ); |
| 79 | 79 | |
| 80 | - self::$post_ids[] = $parent_id = $factory->post->create( array( |
|
| 80 | + self::$post_ids[] = $parent_id = $factory->post->create(array( |
|
| 81 | 81 | 'post_name' => 'parent', |
| 82 | 82 | 'post_type' => 'page', |
| 83 | - ) ); |
|
| 84 | - self::$post_ids[] = $child_id_1 = $factory->post->create( array( |
|
| 83 | + )); |
|
| 84 | + self::$post_ids[] = $child_id_1 = $factory->post->create(array( |
|
| 85 | 85 | 'post_name' => 'child1', |
| 86 | 86 | 'post_type' => 'page', |
| 87 | 87 | 'post_parent' => $parent_id, |
| 88 | - ) ); |
|
| 89 | - self::$post_ids[] = $child_id_2 = $factory->post->create( array( |
|
| 88 | + )); |
|
| 89 | + self::$post_ids[] = $child_id_2 = $factory->post->create(array( |
|
| 90 | 90 | 'post_name' => 'child2', |
| 91 | 91 | 'post_type' => 'page', |
| 92 | 92 | 'post_parent' => $parent_id, |
| 93 | - ) ); |
|
| 94 | - self::$post_ids[] = $grandchild_id_1 = $factory->post->create( array( |
|
| 93 | + )); |
|
| 94 | + self::$post_ids[] = $grandchild_id_1 = $factory->post->create(array( |
|
| 95 | 95 | 'post_name' => 'grandchild', |
| 96 | 96 | 'post_type' => 'page', |
| 97 | 97 | 'post_parent' => $child_id_1, |
| 98 | - ) ); |
|
| 99 | - self::$post_ids[] = $grandchild_id_2 = $factory->post->create( array( |
|
| 98 | + )); |
|
| 99 | + self::$post_ids[] = $grandchild_id_2 = $factory->post->create(array( |
|
| 100 | 100 | 'post_name' => 'grandchild', |
| 101 | 101 | 'post_type' => 'page', |
| 102 | 102 | 'post_parent' => $child_id_2, |
| 103 | - ) ); |
|
| 103 | + )); |
|
| 104 | 104 | |
| 105 | - $cat1 = $factory->term->create( array( 'taxonomy' => 'category', 'name' => 'parent' ) ); |
|
| 105 | + $cat1 = $factory->term->create(array('taxonomy' => 'category', 'name' => 'parent')); |
|
| 106 | 106 | self::$terms['/category/parent/'] = $cat1; |
| 107 | - self::$term_ids[ $cat1 ] = 'category'; |
|
| 107 | + self::$term_ids[$cat1] = 'category'; |
|
| 108 | 108 | |
| 109 | - $cat2 = $factory->term->create( array( |
|
| 109 | + $cat2 = $factory->term->create(array( |
|
| 110 | 110 | 'taxonomy' => 'category', 'name' => 'child-1', 'parent' => self::$terms['/category/parent/'], |
| 111 | - ) ); |
|
| 111 | + )); |
|
| 112 | 112 | self::$terms['/category/parent/child-1/'] = $cat2; |
| 113 | - self::$term_ids[ $cat2 ] = 'category'; |
|
| 113 | + self::$term_ids[$cat2] = 'category'; |
|
| 114 | 114 | |
| 115 | - $cat3 = $factory->term->create( array( |
|
| 115 | + $cat3 = $factory->term->create(array( |
|
| 116 | 116 | 'taxonomy' => 'category', 'name' => 'child-2', 'parent' => self::$terms['/category/parent/child-1/'], |
| 117 | - ) ); |
|
| 117 | + )); |
|
| 118 | 118 | self::$terms['/category/parent/child-1/child-2/'] = $cat3; |
| 119 | - self::$term_ids[ $cat3 ] = 'category'; |
|
| 119 | + self::$term_ids[$cat3] = 'category'; |
|
| 120 | 120 | |
| 121 | - $cat4 = $factory->term->create( array( 'taxonomy' => 'category', 'name' => 'cat-a' ) ); |
|
| 122 | - self::$term_ids[ $cat4 ] = 'category'; |
|
| 121 | + $cat4 = $factory->term->create(array('taxonomy' => 'category', 'name' => 'cat-a')); |
|
| 122 | + self::$term_ids[$cat4] = 'category'; |
|
| 123 | 123 | |
| 124 | - $cat5 = $factory->term->create( array( 'taxonomy' => 'category', 'name' => 'cat-b' ) ); |
|
| 125 | - self::$term_ids[ $cat5 ] = 'category'; |
|
| 124 | + $cat5 = $factory->term->create(array('taxonomy' => 'category', 'name' => 'cat-b')); |
|
| 125 | + self::$term_ids[$cat5] = 'category'; |
|
| 126 | 126 | |
| 127 | - $tag1 = $factory->term->create( array( 'name' => 'post-formats' ) ); |
|
| 128 | - self::$term_ids[ $tag1 ] = 'post_tag'; |
|
| 127 | + $tag1 = $factory->term->create(array('name' => 'post-formats')); |
|
| 128 | + self::$term_ids[$tag1] = 'post_tag'; |
|
| 129 | 129 | } |
| 130 | 130 | |
| 131 | 131 | /** |
@@ -134,18 +134,18 @@ discard block |
||
| 134 | 134 | * @since 4.1.0 |
| 135 | 135 | */ |
| 136 | 136 | public static function delete_shared_fixtures() { |
| 137 | - self::delete_user( self::$author_id ); |
|
| 137 | + self::delete_user(self::$author_id); |
|
| 138 | 138 | |
| 139 | - foreach ( self::$post_ids as $pid ) { |
|
| 140 | - wp_delete_post( $pid, true ); |
|
| 139 | + foreach (self::$post_ids as $pid) { |
|
| 140 | + wp_delete_post($pid, true); |
|
| 141 | 141 | } |
| 142 | 142 | |
| 143 | - foreach ( self::$comment_ids as $cid ) { |
|
| 144 | - wp_delete_comment( $cid, true ); |
|
| 143 | + foreach (self::$comment_ids as $cid) { |
|
| 144 | + wp_delete_comment($cid, true); |
|
| 145 | 145 | } |
| 146 | 146 | |
| 147 | - foreach ( self::$term_ids as $tid => $tax ) { |
|
| 148 | - wp_delete_term( $tid, $tax ); |
|
| 147 | + foreach (self::$term_ids as $tid => $tax) { |
|
| 148 | + wp_delete_term($tid, $tax); |
|
| 149 | 149 | } |
| 150 | 150 | |
| 151 | 151 | self::$author_id = null; |
@@ -165,54 +165,54 @@ discard block |
||
| 165 | 165 | * @param int $ticket Optional. Trac ticket number. |
| 166 | 166 | * @param array $expected_doing_it_wrong Array of class/function names expected to throw _doing_it_wrong() notices. |
| 167 | 167 | */ |
| 168 | - public function assertCanonical( $test_url, $expected, $ticket = 0, $expected_doing_it_wrong = array() ) { |
|
| 169 | - $this->expected_doing_it_wrong = array_merge( $this->expected_doing_it_wrong, (array) $expected_doing_it_wrong ); |
|
| 168 | + public function assertCanonical($test_url, $expected, $ticket = 0, $expected_doing_it_wrong = array()) { |
|
| 169 | + $this->expected_doing_it_wrong = array_merge($this->expected_doing_it_wrong, (array) $expected_doing_it_wrong); |
|
| 170 | 170 | |
| 171 | - if ( $ticket ) |
|
| 172 | - $this->knownWPBug( $ticket ); |
|
| 171 | + if ($ticket) |
|
| 172 | + $this->knownWPBug($ticket); |
|
| 173 | 173 | |
| 174 | - $ticket_ref = ($ticket > 0) ? 'Ticket #' . $ticket : null; |
|
| 174 | + $ticket_ref = ($ticket > 0) ? 'Ticket #'.$ticket : null; |
|
| 175 | 175 | global $wpdb; |
| 176 | 176 | //print_r( $wpdb->get_results( "SELECT * FROM $wpdb->terms" ) ); |
| 177 | - if ( is_string($expected) ) |
|
| 177 | + if (is_string($expected)) |
|
| 178 | 178 | $expected = array('url' => $expected); |
| 179 | - elseif ( is_array($expected) && !isset($expected['url']) && !isset($expected['qv']) ) |
|
| 180 | - $expected = array( 'qv' => $expected ); |
|
| 179 | + elseif (is_array($expected) && !isset($expected['url']) && !isset($expected['qv'])) |
|
| 180 | + $expected = array('qv' => $expected); |
|
| 181 | 181 | |
| 182 | - if ( !isset($expected['url']) && !isset($expected['qv']) ) |
|
| 182 | + if (!isset($expected['url']) && !isset($expected['qv'])) |
|
| 183 | 183 | $this->markTestSkipped('No valid expected output was provided'); |
| 184 | 184 | |
| 185 | - $this->go_to( home_url( $test_url ) ); |
|
| 185 | + $this->go_to(home_url($test_url)); |
|
| 186 | 186 | |
| 187 | 187 | // Does the redirect match what's expected? |
| 188 | - $can_url = $this->get_canonical( $test_url ); |
|
| 188 | + $can_url = $this->get_canonical($test_url); |
|
| 189 | 189 | $parsed_can_url = parse_url($can_url); |
| 190 | 190 | |
| 191 | 191 | // Just test the Path and Query if present |
| 192 | - if ( isset($expected['url']) ) { |
|
| 193 | - $this->assertEquals( $expected['url'], $parsed_can_url['path'] . (!empty($parsed_can_url['query']) ? '?' . $parsed_can_url['query'] : ''), $ticket_ref ); |
|
| 192 | + if (isset($expected['url'])) { |
|
| 193 | + $this->assertEquals($expected['url'], $parsed_can_url['path'].(!empty($parsed_can_url['query']) ? '?'.$parsed_can_url['query'] : ''), $ticket_ref); |
|
| 194 | 194 | } |
| 195 | 195 | |
| 196 | - if ( ! isset($expected['qv']) ) |
|
| 196 | + if (!isset($expected['qv'])) |
|
| 197 | 197 | return; |
| 198 | 198 | |
| 199 | 199 | // "make" that the request and check the query is correct |
| 200 | - $this->go_to( $can_url ); |
|
| 200 | + $this->go_to($can_url); |
|
| 201 | 201 | |
| 202 | 202 | // Are all query vars accounted for, And correct? |
| 203 | 203 | global $wp; |
| 204 | 204 | |
| 205 | 205 | $query_vars = array_diff($wp->query_vars, $wp->extra_query_vars); |
| 206 | - if ( !empty($parsed_can_url['query']) ) { |
|
| 206 | + if (!empty($parsed_can_url['query'])) { |
|
| 207 | 207 | parse_str($parsed_can_url['query'], $_qv); |
| 208 | 208 | |
| 209 | 209 | // $_qv should not contain any elements which are set in $query_vars already (ie. $_GET vars should not be present in the Rewrite) |
| 210 | - $this->assertEquals( array(), array_intersect( $query_vars, $_qv ), 'Query vars are duplicated from the Rewrite into $_GET; ' . $ticket_ref ); |
|
| 210 | + $this->assertEquals(array(), array_intersect($query_vars, $_qv), 'Query vars are duplicated from the Rewrite into $_GET; '.$ticket_ref); |
|
| 211 | 211 | |
| 212 | 212 | $query_vars = array_merge($query_vars, $_qv); |
| 213 | 213 | } |
| 214 | 214 | |
| 215 | - $this->assertEquals( $expected['qv'], $query_vars ); |
|
| 215 | + $this->assertEquals($expected['qv'], $query_vars); |
|
| 216 | 216 | } |
| 217 | 217 | |
| 218 | 218 | /** |
@@ -223,11 +223,11 @@ discard block |
||
| 223 | 223 | * @return $can_url Returns the original $test_url if no canonical can be generated, otherwise returns |
| 224 | 224 | * the fully-qualified URL as generated by redirect_canonical(). |
| 225 | 225 | */ |
| 226 | - public function get_canonical( $test_url ) { |
|
| 227 | - $test_url = home_url( $test_url ); |
|
| 226 | + public function get_canonical($test_url) { |
|
| 227 | + $test_url = home_url($test_url); |
|
| 228 | 228 | |
| 229 | - $can_url = redirect_canonical( $test_url, false ); |
|
| 230 | - if ( ! $can_url ) |
|
| 229 | + $can_url = redirect_canonical($test_url, false); |
|
| 230 | + if (!$can_url) |
|
| 231 | 231 | return $test_url; // No redirect will take place for this request |
| 232 | 232 | |
| 233 | 233 | return $can_url; |
@@ -21,18 +21,18 @@ |
||
| 21 | 21 | * @param array $args Arguments to pass to the method |
| 22 | 22 | * @return mixed |
| 23 | 23 | */ |
| 24 | - public function __call( $method, $args ) { |
|
| 25 | - return call_user_func_array( array( $this, $method ), $args ); |
|
| 24 | + public function __call($method, $args) { |
|
| 25 | + return call_user_func_array(array($this, $method), $args); |
|
| 26 | 26 | } |
| 27 | 27 | |
| 28 | - public function send_header( $header, $value ) { |
|
| 29 | - $this->sent_headers[ $header ] = $value; |
|
| 28 | + public function send_header($header, $value) { |
|
| 29 | + $this->sent_headers[$header] = $value; |
|
| 30 | 30 | } |
| 31 | 31 | |
| 32 | - public function serve_request( $path = null ) { |
|
| 32 | + public function serve_request($path = null) { |
|
| 33 | 33 | |
| 34 | 34 | ob_start(); |
| 35 | - $result = parent::serve_request( $path ); |
|
| 35 | + $result = parent::serve_request($path); |
|
| 36 | 36 | $this->sent_body = ob_get_clean(); |
| 37 | 37 | return $result; |
| 38 | 38 | } |
@@ -412,37 +412,37 @@ |
||
| 412 | 412 | ini_set( 'pcre.backtrack_limit', $i ); |
| 413 | 413 | |
| 414 | 414 | switch( $strategy ) { |
| 415 | - case 'split': |
|
| 416 | - preg_split( $pattern, $subject ); |
|
| 417 | - break; |
|
| 418 | - case 'match': |
|
| 419 | - preg_match( $pattern, $subject ); |
|
| 420 | - break; |
|
| 421 | - case 'match_all': |
|
| 422 | - $matches = array(); |
|
| 423 | - preg_match_all( $pattern, $subject, $matches ); |
|
| 424 | - break; |
|
| 415 | + case 'split': |
|
| 416 | + preg_split( $pattern, $subject ); |
|
| 417 | + break; |
|
| 418 | + case 'match': |
|
| 419 | + preg_match( $pattern, $subject ); |
|
| 420 | + break; |
|
| 421 | + case 'match_all': |
|
| 422 | + $matches = array(); |
|
| 423 | + preg_match_all( $pattern, $subject, $matches ); |
|
| 424 | + break; |
|
| 425 | 425 | } |
| 426 | 426 | |
| 427 | 427 | ini_set( 'pcre.backtrack_limit', $saved_config ); |
| 428 | 428 | |
| 429 | 429 | switch( preg_last_error() ) { |
| 430 | - case PREG_NO_ERROR: |
|
| 431 | - return $i; |
|
| 432 | - case PREG_BACKTRACK_LIMIT_ERROR: |
|
| 433 | - continue; |
|
| 434 | - case PREG_RECURSION_LIMIT_ERROR: |
|
| 435 | - trigger_error('PCRE recursion limit encountered before backtrack limit.'); |
|
| 436 | - return; |
|
| 437 | - case PREG_BAD_UTF8_ERROR: |
|
| 438 | - trigger_error('UTF-8 error during PCRE benchmark.'); |
|
| 439 | - return; |
|
| 440 | - case PREG_INTERNAL_ERROR: |
|
| 441 | - trigger_error('Internal error during PCRE benchmark.'); |
|
| 442 | - return; |
|
| 443 | - default: |
|
| 444 | - trigger_error('Unexpected error during PCRE benchmark.'); |
|
| 445 | - return; |
|
| 430 | + case PREG_NO_ERROR: |
|
| 431 | + return $i; |
|
| 432 | + case PREG_BACKTRACK_LIMIT_ERROR: |
|
| 433 | + continue; |
|
| 434 | + case PREG_RECURSION_LIMIT_ERROR: |
|
| 435 | + trigger_error('PCRE recursion limit encountered before backtrack limit.'); |
|
| 436 | + return; |
|
| 437 | + case PREG_BAD_UTF8_ERROR: |
|
| 438 | + trigger_error('UTF-8 error during PCRE benchmark.'); |
|
| 439 | + return; |
|
| 440 | + case PREG_INTERNAL_ERROR: |
|
| 441 | + trigger_error('Internal error during PCRE benchmark.'); |
|
| 442 | + return; |
|
| 443 | + default: |
|
| 444 | + trigger_error('Unexpected error during PCRE benchmark.'); |
|
| 445 | + return; |
|
| 446 | 446 | } |
| 447 | 447 | } |
| 448 | 448 | |
@@ -10,9 +10,10 @@ discard block |
||
| 10 | 10 | function strip_ws($txt) { |
| 11 | 11 | $lines = explode("\n", $txt); |
| 12 | 12 | $result = array(); |
| 13 | - foreach ($lines as $line) |
|
| 14 | - if (trim($line)) |
|
| 13 | + foreach ($lines as $line) { |
|
| 14 | + if (trim($line)) |
|
| 15 | 15 | $result[] = trim($line); |
| 16 | + } |
|
| 16 | 17 | |
| 17 | 18 | return trim(join("\n", $result)); |
| 18 | 19 | } |
@@ -38,21 +39,26 @@ discard block |
||
| 38 | 39 | } |
| 39 | 40 | |
| 40 | 41 | function current_filter() { |
| 41 | - if (is_callable('current_filter')) |
|
| 42 | - return current_filter(); |
|
| 42 | + if (is_callable('current_filter')) { |
|
| 43 | + return current_filter(); |
|
| 44 | + } |
|
| 43 | 45 | global $wp_actions; |
| 44 | 46 | return end($wp_actions); |
| 45 | 47 | } |
| 46 | 48 | |
| 47 | 49 | function action($arg) { |
| 48 | -if ($this->debug) dmp(__FUNCTION__, $this->current_filter()); |
|
| 50 | +if ($this->debug) { |
|
| 51 | + dmp(__FUNCTION__, $this->current_filter()); |
|
| 52 | +} |
|
| 49 | 53 | $args = func_get_args(); |
| 50 | 54 | $this->events[] = array('action' => __FUNCTION__, 'tag'=>$this->current_filter(), 'args'=>$args); |
| 51 | 55 | return $arg; |
| 52 | 56 | } |
| 53 | 57 | |
| 54 | 58 | function action2($arg) { |
| 55 | -if ($this->debug) dmp(__FUNCTION__, $this->current_filter()); |
|
| 59 | +if ($this->debug) { |
|
| 60 | + dmp(__FUNCTION__, $this->current_filter()); |
|
| 61 | +} |
|
| 56 | 62 | |
| 57 | 63 | $args = func_get_args(); |
| 58 | 64 | $this->events[] = array('action' => __FUNCTION__, 'tag'=>$this->current_filter(), 'args'=>$args); |
@@ -60,7 +66,9 @@ discard block |
||
| 60 | 66 | } |
| 61 | 67 | |
| 62 | 68 | function filter($arg) { |
| 63 | -if ($this->debug) dmp(__FUNCTION__, $this->current_filter()); |
|
| 69 | +if ($this->debug) { |
|
| 70 | + dmp(__FUNCTION__, $this->current_filter()); |
|
| 71 | +} |
|
| 64 | 72 | |
| 65 | 73 | $args = func_get_args(); |
| 66 | 74 | $this->events[] = array('filter' => __FUNCTION__, 'tag'=>$this->current_filter(), 'args'=>$args); |
@@ -68,7 +76,9 @@ discard block |
||
| 68 | 76 | } |
| 69 | 77 | |
| 70 | 78 | function filter2($arg) { |
| 71 | -if ($this->debug) dmp(__FUNCTION__, $this->current_filter()); |
|
| 79 | +if ($this->debug) { |
|
| 80 | + dmp(__FUNCTION__, $this->current_filter()); |
|
| 81 | +} |
|
| 72 | 82 | |
| 73 | 83 | $args = func_get_args(); |
| 74 | 84 | $this->events[] = array('filter' => __FUNCTION__, 'tag'=>$this->current_filter(), 'args'=>$args); |
@@ -76,7 +86,9 @@ discard block |
||
| 76 | 86 | } |
| 77 | 87 | |
| 78 | 88 | function filter_append($arg) { |
| 79 | -if ($this->debug) dmp(__FUNCTION__, $this->current_filter()); |
|
| 89 | +if ($this->debug) { |
|
| 90 | + dmp(__FUNCTION__, $this->current_filter()); |
|
| 91 | +} |
|
| 80 | 92 | |
| 81 | 93 | $args = func_get_args(); |
| 82 | 94 | $this->events[] = array('filter' => __FUNCTION__, 'tag'=>$this->current_filter(), 'args'=>$args); |
@@ -85,7 +97,9 @@ discard block |
||
| 85 | 97 | |
| 86 | 98 | function filterall($tag, $arg=NULL) { |
| 87 | 99 | // this one doesn't return the result, so it's safe to use with the new 'all' filter |
| 88 | -if ($this->debug) dmp(__FUNCTION__, $this->current_filter()); |
|
| 100 | +if ($this->debug) { |
|
| 101 | + dmp(__FUNCTION__, $this->current_filter()); |
|
| 102 | +} |
|
| 89 | 103 | |
| 90 | 104 | $args = func_get_args(); |
| 91 | 105 | $this->events[] = array('filter' => __FUNCTION__, 'tag'=>$tag, 'args'=>array_slice($args, 1)); |
@@ -100,9 +114,10 @@ discard block |
||
| 100 | 114 | function get_call_count($tag='') { |
| 101 | 115 | if ($tag) { |
| 102 | 116 | $count = 0; |
| 103 | - foreach ($this->events as $e) |
|
| 104 | - if ($e['action'] == $tag) |
|
| 117 | + foreach ($this->events as $e) { |
|
| 118 | + if ($e['action'] == $tag) |
|
| 105 | 119 | ++$count; |
| 120 | + } |
|
| 106 | 121 | return $count; |
| 107 | 122 | } |
| 108 | 123 | return count($this->events); |
@@ -120,8 +135,9 @@ discard block |
||
| 120 | 135 | // return an array of args passed in calls to this action |
| 121 | 136 | function get_args() { |
| 122 | 137 | $out = array(); |
| 123 | - foreach ($this->events as $e) |
|
| 124 | - $out[] = $e['args']; |
|
| 138 | + foreach ($this->events as $e) { |
|
| 139 | + $out[] = $e['args']; |
|
| 140 | + } |
|
| 125 | 141 | return $out; |
| 126 | 142 | } |
| 127 | 143 | } |
@@ -186,17 +202,18 @@ discard block |
||
| 186 | 202 | $n = count($a); |
| 187 | 203 | $out = array(); |
| 188 | 204 | |
| 189 | - if ($n < 1) |
|
| 190 | - return $out; |
|
| 205 | + if ($n < 1) { |
|
| 206 | + return $out; |
|
| 207 | + } |
|
| 191 | 208 | |
| 192 | 209 | for ($i=0; $i<count($tree); $i++) { |
| 193 | 210 | # echo "checking '{$tree[$i][name]}' == '{$a[0]}'\n"; |
| 194 | 211 | # var_dump($tree[$i]['name'], $a[0]); |
| 195 | 212 | if ($tree[$i]['name'] == $a[0]) { |
| 196 | 213 | # echo "n == {$n}\n"; |
| 197 | - if ($n == 1) |
|
| 198 | - $out[] = $tree[$i]; |
|
| 199 | - else { |
|
| 214 | + if ($n == 1) { |
|
| 215 | + $out[] = $tree[$i]; |
|
| 216 | + } else { |
|
| 200 | 217 | $subtree =& $tree[$i]['child']; |
| 201 | 218 | $call_args = array($subtree); |
| 202 | 219 | $call_args = array_merge($call_args, array_slice($a, 1)); |
@@ -210,8 +227,9 @@ discard block |
||
| 210 | 227 | |
| 211 | 228 | function xml_join_atts($atts) { |
| 212 | 229 | $a = array(); |
| 213 | - foreach ($atts as $k=>$v) |
|
| 214 | - $a[] = $k.'="'.$v.'"'; |
|
| 230 | + foreach ($atts as $k=>$v) { |
|
| 231 | + $a[] = $k.'="'.$v.'"'; |
|
| 232 | + } |
|
| 215 | 233 | return join(' ', $a); |
| 216 | 234 | } |
| 217 | 235 | |
@@ -220,14 +238,15 @@ discard block |
||
| 220 | 238 | |
| 221 | 239 | foreach (array_keys($data) as $i) { |
| 222 | 240 | $name = $data[$i]['name']; |
| 223 | - if (!empty($data[$i]['attributes'])) |
|
| 224 | - $name .= ' '.xml_join_atts($data[$i]['attributes']); |
|
| 241 | + if (!empty($data[$i]['attributes'])) { |
|
| 242 | + $name .= ' '.xml_join_atts($data[$i]['attributes']); |
|
| 243 | + } |
|
| 225 | 244 | |
| 226 | 245 | if (!empty($data[$i]['child'])) { |
| 227 | 246 | $out[$name][] = xml_array_dumbdown($data[$i]['child']); |
| 247 | + } else { |
|
| 248 | + $out[$name] = $data[$i]['content']; |
|
| 228 | 249 | } |
| 229 | - else |
|
| 230 | - $out[$name] = $data[$i]['content']; |
|
| 231 | 250 | } |
| 232 | 251 | |
| 233 | 252 | return $out; |
@@ -236,9 +255,10 @@ discard block |
||
| 236 | 255 | function dmp() { |
| 237 | 256 | $args = func_get_args(); |
| 238 | 257 | |
| 239 | - foreach ($args as $thing) |
|
| 240 | - echo (is_scalar($thing) ? strval($thing) : var_export($thing, true)), "\n"; |
|
| 241 | -} |
|
| 258 | + foreach ($args as $thing) { |
|
| 259 | + echo (is_scalar($thing) ? strval($thing) : var_export($thing, true)), "\n"; |
|
| 260 | + } |
|
| 261 | + } |
|
| 242 | 262 | |
| 243 | 263 | function dmp_filter($a) { |
| 244 | 264 | dmp($a); |
@@ -255,18 +275,17 @@ discard block |
||
| 255 | 275 | function gen_tests_array($name, $array) { |
| 256 | 276 | $out = array(); |
| 257 | 277 | foreach ($array as $k=>$v) { |
| 258 | - if (is_numeric($k)) |
|
| 259 | - $index = strval($k); |
|
| 260 | - else |
|
| 261 | - $index = "'".addcslashes($k, "\n\r\t'\\")."'"; |
|
| 278 | + if (is_numeric($k)) { |
|
| 279 | + $index = strval($k); |
|
| 280 | + } else { |
|
| 281 | + $index = "'".addcslashes($k, "\n\r\t'\\")."'"; |
|
| 282 | + } |
|
| 262 | 283 | |
| 263 | 284 | if (is_string($v)) { |
| 264 | 285 | $out[] = '$this->assertEquals( \'' . addcslashes($v, "\n\r\t'\\") . '\', $'.$name.'['.$index.'] );'; |
| 265 | - } |
|
| 266 | - elseif (is_numeric($v)) { |
|
| 286 | + } elseif (is_numeric($v)) { |
|
| 267 | 287 | $out[] = '$this->assertEquals( ' . $v . ', $'.$name.'['.$index.'] );'; |
| 268 | - } |
|
| 269 | - elseif (is_array($v)) { |
|
| 288 | + } elseif (is_array($v)) { |
|
| 270 | 289 | $out[] = gen_tests_array("{$name}[{$index}]", $v); |
| 271 | 290 | } |
| 272 | 291 | } |
@@ -284,9 +303,10 @@ discard block |
||
| 284 | 303 | function drop_tables() { |
| 285 | 304 | global $wpdb; |
| 286 | 305 | $tables = $wpdb->get_col('SHOW TABLES;'); |
| 287 | - foreach ($tables as $table) |
|
| 288 | - $wpdb->query("DROP TABLE IF EXISTS {$table}"); |
|
| 289 | -} |
|
| 306 | + foreach ($tables as $table) { |
|
| 307 | + $wpdb->query("DROP TABLE IF EXISTS {$table}"); |
|
| 308 | + } |
|
| 309 | + } |
|
| 290 | 310 | |
| 291 | 311 | function print_backtrace() { |
| 292 | 312 | $bt = debug_backtrace(); |
@@ -294,10 +314,12 @@ discard block |
||
| 294 | 314 | $i = 0; |
| 295 | 315 | foreach ($bt as $stack) { |
| 296 | 316 | echo ++$i, ": "; |
| 297 | - if ( isset($stack['class']) ) |
|
| 298 | - echo $stack['class'].'::'; |
|
| 299 | - if ( isset($stack['function']) ) |
|
| 300 | - echo $stack['function'].'() '; |
|
| 317 | + if ( isset($stack['class']) ) { |
|
| 318 | + echo $stack['class'].'::'; |
|
| 319 | + } |
|
| 320 | + if ( isset($stack['function']) ) { |
|
| 321 | + echo $stack['function'].'() '; |
|
| 322 | + } |
|
| 301 | 323 | echo "line {$stack[line]} in {$stack[file]}\n"; |
| 302 | 324 | } |
| 303 | 325 | echo "\n"; |
@@ -350,20 +372,24 @@ discard block |
||
| 350 | 372 | |
| 351 | 373 | function _cleanup_query_vars() { |
| 352 | 374 | // clean out globals to stop them polluting wp and wp_query |
| 353 | - foreach ( $GLOBALS['wp']->public_query_vars as $v ) |
|
| 354 | - unset( $GLOBALS[$v] ); |
|
| 375 | + foreach ( $GLOBALS['wp']->public_query_vars as $v ) { |
|
| 376 | + unset( $GLOBALS[$v] ); |
|
| 377 | + } |
|
| 355 | 378 | |
| 356 | - foreach ( $GLOBALS['wp']->private_query_vars as $v ) |
|
| 357 | - unset( $GLOBALS[$v] ); |
|
| 379 | + foreach ( $GLOBALS['wp']->private_query_vars as $v ) { |
|
| 380 | + unset( $GLOBALS[$v] ); |
|
| 381 | + } |
|
| 358 | 382 | |
| 359 | 383 | foreach ( get_taxonomies( array() , 'objects' ) as $t ) { |
| 360 | - if ( $t->public && ! empty( $t->query_var ) ) |
|
| 361 | - $GLOBALS['wp']->add_query_var( $t->query_var ); |
|
| 384 | + if ( $t->public && ! empty( $t->query_var ) ) { |
|
| 385 | + $GLOBALS['wp']->add_query_var( $t->query_var ); |
|
| 386 | + } |
|
| 362 | 387 | } |
| 363 | 388 | |
| 364 | 389 | foreach ( get_post_types( array() , 'objects' ) as $t ) { |
| 365 | - if ( is_post_type_viewable( $t ) && ! empty( $t->query_var ) ) |
|
| 366 | - $GLOBALS['wp']->add_query_var( $t->query_var ); |
|
| 390 | + if ( is_post_type_viewable( $t ) && ! empty( $t->query_var ) ) { |
|
| 391 | + $GLOBALS['wp']->add_query_var( $t->query_var ); |
|
| 392 | + } |
|
| 367 | 393 | } |
| 368 | 394 | } |
| 369 | 395 | |
@@ -2,7 +2,7 @@ discard block |
||
| 2 | 2 | |
| 3 | 3 | // misc help functions and utilities |
| 4 | 4 | |
| 5 | -function rand_str($len=32) { |
|
| 5 | +function rand_str($len = 32) { |
|
| 6 | 6 | return substr(md5(uniqid(rand())), 0, $len); |
| 7 | 7 | } |
| 8 | 8 | |
@@ -28,7 +28,7 @@ discard block |
||
| 28 | 28 | /** |
| 29 | 29 | * PHP5 constructor. |
| 30 | 30 | */ |
| 31 | - function __construct( $debug = 0 ) { |
|
| 31 | + function __construct($debug = 0) { |
|
| 32 | 32 | $this->reset(); |
| 33 | 33 | $this->debug = $debug; |
| 34 | 34 | } |
@@ -80,10 +80,10 @@ discard block |
||
| 80 | 80 | |
| 81 | 81 | $args = func_get_args(); |
| 82 | 82 | $this->events[] = array('filter' => __FUNCTION__, 'tag'=>$this->current_filter(), 'args'=>$args); |
| 83 | - return $arg . '_append'; |
|
| 83 | + return $arg.'_append'; |
|
| 84 | 84 | } |
| 85 | 85 | |
| 86 | - function filterall($tag, $arg=NULL) { |
|
| 86 | + function filterall($tag, $arg = NULL) { |
|
| 87 | 87 | // this one doesn't return the result, so it's safe to use with the new 'all' filter |
| 88 | 88 | if ($this->debug) dmp(__FUNCTION__, $this->current_filter()); |
| 89 | 89 | |
@@ -97,7 +97,7 @@ discard block |
||
| 97 | 97 | } |
| 98 | 98 | |
| 99 | 99 | // return a count of the number of times the action was called since the last reset |
| 100 | - function get_call_count($tag='') { |
|
| 100 | + function get_call_count($tag = '') { |
|
| 101 | 101 | if ($tag) { |
| 102 | 102 | $count = 0; |
| 103 | 103 | foreach ($this->events as $e) |
@@ -135,10 +135,10 @@ discard block |
||
| 135 | 135 | /** |
| 136 | 136 | * PHP5 constructor. |
| 137 | 137 | */ |
| 138 | - function __construct( $in ) { |
|
| 138 | + function __construct($in) { |
|
| 139 | 139 | $this->xml = xml_parser_create(); |
| 140 | 140 | xml_set_object($this->xml, $this); |
| 141 | - xml_parser_set_option($this->xml,XML_OPTION_CASE_FOLDING, 0); |
|
| 141 | + xml_parser_set_option($this->xml, XML_OPTION_CASE_FOLDING, 0); |
|
| 142 | 142 | xml_set_element_handler($this->xml, array($this, 'startHandler'), array($this, 'endHandler')); |
| 143 | 143 | xml_set_character_data_handler($this->xml, array($this, 'dataHandler')); |
| 144 | 144 | $this->parse($in); |
@@ -189,7 +189,7 @@ discard block |
||
| 189 | 189 | if ($n < 1) |
| 190 | 190 | return $out; |
| 191 | 191 | |
| 192 | - for ($i=0; $i<count($tree); $i++) { |
|
| 192 | + for ($i = 0; $i < count($tree); $i++) { |
|
| 193 | 193 | # echo "checking '{$tree[$i][name]}' == '{$a[0]}'\n"; |
| 194 | 194 | # var_dump($tree[$i]['name'], $a[0]); |
| 195 | 195 | if ($tree[$i]['name'] == $a[0]) { |
@@ -197,7 +197,7 @@ discard block |
||
| 197 | 197 | if ($n == 1) |
| 198 | 198 | $out[] = $tree[$i]; |
| 199 | 199 | else { |
| 200 | - $subtree =& $tree[$i]['child']; |
|
| 200 | + $subtree = & $tree[$i]['child']; |
|
| 201 | 201 | $call_args = array($subtree); |
| 202 | 202 | $call_args = array_merge($call_args, array_slice($a, 1)); |
| 203 | 203 | $out = array_merge($out, call_user_func_array('xml_find', $call_args)); |
@@ -261,10 +261,10 @@ discard block |
||
| 261 | 261 | $index = "'".addcslashes($k, "\n\r\t'\\")."'"; |
| 262 | 262 | |
| 263 | 263 | if (is_string($v)) { |
| 264 | - $out[] = '$this->assertEquals( \'' . addcslashes($v, "\n\r\t'\\") . '\', $'.$name.'['.$index.'] );'; |
|
| 264 | + $out[] = '$this->assertEquals( \''.addcslashes($v, "\n\r\t'\\").'\', $'.$name.'['.$index.'] );'; |
|
| 265 | 265 | } |
| 266 | 266 | elseif (is_numeric($v)) { |
| 267 | - $out[] = '$this->assertEquals( ' . $v . ', $'.$name.'['.$index.'] );'; |
|
| 267 | + $out[] = '$this->assertEquals( '.$v.', $'.$name.'['.$index.'] );'; |
|
| 268 | 268 | } |
| 269 | 269 | elseif (is_array($v)) { |
| 270 | 270 | $out[] = gen_tests_array("{$name}[{$index}]", $v); |
@@ -294,9 +294,9 @@ discard block |
||
| 294 | 294 | $i = 0; |
| 295 | 295 | foreach ($bt as $stack) { |
| 296 | 296 | echo ++$i, ": "; |
| 297 | - if ( isset($stack['class']) ) |
|
| 297 | + if (isset($stack['class'])) |
|
| 298 | 298 | echo $stack['class'].'::'; |
| 299 | - if ( isset($stack['function']) ) |
|
| 299 | + if (isset($stack['function'])) |
|
| 300 | 300 | echo $stack['function'].'() '; |
| 301 | 301 | echo "line {$stack[line]} in {$stack[file]}\n"; |
| 302 | 302 | } |
@@ -304,17 +304,17 @@ discard block |
||
| 304 | 304 | } |
| 305 | 305 | |
| 306 | 306 | // mask out any input fields matching the given name |
| 307 | -function mask_input_value($in, $name='_wpnonce') { |
|
| 307 | +function mask_input_value($in, $name = '_wpnonce') { |
|
| 308 | 308 | return preg_replace('@<input([^>]*) name="'.preg_quote($name).'"([^>]*) value="[^>]*" />@', '<input$1 name="'.preg_quote($name).'"$2 value="***" />', $in); |
| 309 | 309 | } |
| 310 | 310 | |
| 311 | -if ( !function_exists( 'str_getcsv' ) ) { |
|
| 312 | - function str_getcsv( $input, $delimiter = ',', $enclosure = '"', $escape = "\\" ) { |
|
| 313 | - $fp = fopen( 'php://temp/', 'r+' ); |
|
| 314 | - fputs( $fp, $input ); |
|
| 315 | - rewind( $fp ); |
|
| 316 | - $data = fgetcsv( $fp, strlen( $input ), $delimiter, $enclosure ); |
|
| 317 | - fclose( $fp ); |
|
| 311 | +if (!function_exists('str_getcsv')) { |
|
| 312 | + function str_getcsv($input, $delimiter = ',', $enclosure = '"', $escape = "\\") { |
|
| 313 | + $fp = fopen('php://temp/', 'r+'); |
|
| 314 | + fputs($fp, $input); |
|
| 315 | + rewind($fp); |
|
| 316 | + $data = fgetcsv($fp, strlen($input), $delimiter, $enclosure); |
|
| 317 | + fclose($fp); |
|
| 318 | 318 | return $data; |
| 319 | 319 | } |
| 320 | 320 | } |
@@ -322,19 +322,19 @@ discard block |
||
| 322 | 322 | /** |
| 323 | 323 | * Removes the post type and its taxonomy associations. |
| 324 | 324 | */ |
| 325 | -function _unregister_post_type( $cpt_name ) { |
|
| 326 | - unset( $GLOBALS['wp_post_types'][ $cpt_name ] ); |
|
| 327 | - unset( $GLOBALS['_wp_post_type_features'][ $cpt_name ] ); |
|
| 325 | +function _unregister_post_type($cpt_name) { |
|
| 326 | + unset($GLOBALS['wp_post_types'][$cpt_name]); |
|
| 327 | + unset($GLOBALS['_wp_post_type_features'][$cpt_name]); |
|
| 328 | 328 | |
| 329 | - foreach ( $GLOBALS['wp_taxonomies'] as $taxonomy ) { |
|
| 330 | - if ( false !== $key = array_search( $cpt_name, $taxonomy->object_type ) ) { |
|
| 331 | - unset( $taxonomy->object_type[$key] ); |
|
| 329 | + foreach ($GLOBALS['wp_taxonomies'] as $taxonomy) { |
|
| 330 | + if (false !== $key = array_search($cpt_name, $taxonomy->object_type)) { |
|
| 331 | + unset($taxonomy->object_type[$key]); |
|
| 332 | 332 | } |
| 333 | 333 | } |
| 334 | 334 | } |
| 335 | 335 | |
| 336 | -function _unregister_taxonomy( $taxonomy_name ) { |
|
| 337 | - unset( $GLOBALS['wp_taxonomies'][$taxonomy_name] ); |
|
| 336 | +function _unregister_taxonomy($taxonomy_name) { |
|
| 337 | + unset($GLOBALS['wp_taxonomies'][$taxonomy_name]); |
|
| 338 | 338 | } |
| 339 | 339 | |
| 340 | 340 | /** |
@@ -344,32 +344,32 @@ discard block |
||
| 344 | 344 | * |
| 345 | 345 | * @param string $status |
| 346 | 346 | */ |
| 347 | -function _unregister_post_status( $status ) { |
|
| 348 | - unset( $GLOBALS['wp_post_statuses'][ $status ] ); |
|
| 347 | +function _unregister_post_status($status) { |
|
| 348 | + unset($GLOBALS['wp_post_statuses'][$status]); |
|
| 349 | 349 | } |
| 350 | 350 | |
| 351 | 351 | function _cleanup_query_vars() { |
| 352 | 352 | // clean out globals to stop them polluting wp and wp_query |
| 353 | - foreach ( $GLOBALS['wp']->public_query_vars as $v ) |
|
| 354 | - unset( $GLOBALS[$v] ); |
|
| 353 | + foreach ($GLOBALS['wp']->public_query_vars as $v) |
|
| 354 | + unset($GLOBALS[$v]); |
|
| 355 | 355 | |
| 356 | - foreach ( $GLOBALS['wp']->private_query_vars as $v ) |
|
| 357 | - unset( $GLOBALS[$v] ); |
|
| 356 | + foreach ($GLOBALS['wp']->private_query_vars as $v) |
|
| 357 | + unset($GLOBALS[$v]); |
|
| 358 | 358 | |
| 359 | - foreach ( get_taxonomies( array() , 'objects' ) as $t ) { |
|
| 360 | - if ( $t->public && ! empty( $t->query_var ) ) |
|
| 361 | - $GLOBALS['wp']->add_query_var( $t->query_var ); |
|
| 359 | + foreach (get_taxonomies(array(), 'objects') as $t) { |
|
| 360 | + if ($t->public && !empty($t->query_var)) |
|
| 361 | + $GLOBALS['wp']->add_query_var($t->query_var); |
|
| 362 | 362 | } |
| 363 | 363 | |
| 364 | - foreach ( get_post_types( array() , 'objects' ) as $t ) { |
|
| 365 | - if ( is_post_type_viewable( $t ) && ! empty( $t->query_var ) ) |
|
| 366 | - $GLOBALS['wp']->add_query_var( $t->query_var ); |
|
| 364 | + foreach (get_post_types(array(), 'objects') as $t) { |
|
| 365 | + if (is_post_type_viewable($t) && !empty($t->query_var)) |
|
| 366 | + $GLOBALS['wp']->add_query_var($t->query_var); |
|
| 367 | 367 | } |
| 368 | 368 | } |
| 369 | 369 | |
| 370 | 370 | function _clean_term_filters() { |
| 371 | - remove_filter( 'get_terms', array( 'Featured_Content', 'hide_featured_term' ), 10, 2 ); |
|
| 372 | - remove_filter( 'get_the_terms', array( 'Featured_Content', 'hide_the_featured_term' ), 10, 3 ); |
|
| 371 | + remove_filter('get_terms', array('Featured_Content', 'hide_featured_term'), 10, 2); |
|
| 372 | + remove_filter('get_the_terms', array('Featured_Content', 'hide_the_featured_term'), 10, 3); |
|
| 373 | 373 | } |
| 374 | 374 | |
| 375 | 375 | /** |
@@ -386,8 +386,8 @@ discard block |
||
| 386 | 386 | $this->charset = $wpdb->charset; |
| 387 | 387 | } |
| 388 | 388 | |
| 389 | - public function __call( $name, $arguments ) { |
|
| 390 | - return call_user_func_array( array( $this, $name ), $arguments ); |
|
| 389 | + public function __call($name, $arguments) { |
|
| 390 | + return call_user_func_array(array($this, $name), $arguments); |
|
| 391 | 391 | } |
| 392 | 392 | } |
| 393 | 393 | |
@@ -396,37 +396,37 @@ discard block |
||
| 396 | 396 | * |
| 397 | 397 | * @return int The backtrack count. |
| 398 | 398 | */ |
| 399 | -function benchmark_pcre_backtracking( $pattern, $subject, $strategy ) { |
|
| 400 | - $saved_config = ini_get( 'pcre.backtrack_limit' ); |
|
| 399 | +function benchmark_pcre_backtracking($pattern, $subject, $strategy) { |
|
| 400 | + $saved_config = ini_get('pcre.backtrack_limit'); |
|
| 401 | 401 | |
| 402 | 402 | // Attempt to prevent PHP crashes. Adjust these lower when needed. |
| 403 | - if ( version_compare( phpversion(), '5.4.8', '>' ) ) { |
|
| 403 | + if (version_compare(phpversion(), '5.4.8', '>')) { |
|
| 404 | 404 | $limit = 1000000; |
| 405 | 405 | } else { |
| 406 | - $limit = 20000; // 20,000 is a reasonable upper limit, but see also https://core.trac.wordpress.org/ticket/29557#comment:10 |
|
| 406 | + $limit = 20000; // 20,000 is a reasonable upper limit, but see also https://core.trac.wordpress.org/ticket/29557#comment:10 |
|
| 407 | 407 | } |
| 408 | 408 | |
| 409 | 409 | // Start with small numbers, so if a crash is encountered at higher numbers we can still debug the problem. |
| 410 | - for( $i = 4; $i <= $limit; $i *= 2 ) { |
|
| 410 | + for ($i = 4; $i <= $limit; $i *= 2) { |
|
| 411 | 411 | |
| 412 | - ini_set( 'pcre.backtrack_limit', $i ); |
|
| 412 | + ini_set('pcre.backtrack_limit', $i); |
|
| 413 | 413 | |
| 414 | - switch( $strategy ) { |
|
| 414 | + switch ($strategy) { |
|
| 415 | 415 | case 'split': |
| 416 | - preg_split( $pattern, $subject ); |
|
| 416 | + preg_split($pattern, $subject); |
|
| 417 | 417 | break; |
| 418 | 418 | case 'match': |
| 419 | - preg_match( $pattern, $subject ); |
|
| 419 | + preg_match($pattern, $subject); |
|
| 420 | 420 | break; |
| 421 | 421 | case 'match_all': |
| 422 | 422 | $matches = array(); |
| 423 | - preg_match_all( $pattern, $subject, $matches ); |
|
| 423 | + preg_match_all($pattern, $subject, $matches); |
|
| 424 | 424 | break; |
| 425 | 425 | } |
| 426 | 426 | |
| 427 | - ini_set( 'pcre.backtrack_limit', $saved_config ); |
|
| 427 | + ini_set('pcre.backtrack_limit', $saved_config); |
|
| 428 | 428 | |
| 429 | - switch( preg_last_error() ) { |
|
| 429 | + switch (preg_last_error()) { |
|
| 430 | 430 | case PREG_NO_ERROR: |
| 431 | 431 | return $i; |
| 432 | 432 | case PREG_BACKTRACK_LIMIT_ERROR: |
@@ -119,8 +119,9 @@ discard block |
||
| 119 | 119 | public function logout() { |
| 120 | 120 | unset( $GLOBALS['current_user'] ); |
| 121 | 121 | $cookies = array(AUTH_COOKIE, SECURE_AUTH_COOKIE, LOGGED_IN_COOKIE, USER_COOKIE, PASS_COOKIE); |
| 122 | - foreach ( $cookies as $c ) |
|
| 123 | - unset( $_COOKIE[$c] ); |
|
| 122 | + foreach ( $cookies as $c ) { |
|
| 123 | + unset( $_COOKIE[$c] ); |
|
| 124 | + } |
|
| 124 | 125 | } |
| 125 | 126 | |
| 126 | 127 | /** |
@@ -195,7 +196,8 @@ discard block |
||
| 195 | 196 | |
| 196 | 197 | // Save the output |
| 197 | 198 | $buffer = ob_get_clean(); |
| 198 | - if ( !empty( $buffer ) ) |
|
| 199 | - $this->_last_response = $buffer; |
|
| 199 | + if ( !empty( $buffer ) ) { |
|
| 200 | + $this->_last_response = $buffer; |
|
| 201 | + } |
|
| 200 | 202 | } |
| 201 | 203 | } |
@@ -57,18 +57,18 @@ discard block |
||
| 57 | 57 | ); |
| 58 | 58 | |
| 59 | 59 | public static function setUpBeforeClass() { |
| 60 | - if ( ! defined( 'DOING_AJAX' ) ) { |
|
| 61 | - define( 'DOING_AJAX', true ); |
|
| 60 | + if (!defined('DOING_AJAX')) { |
|
| 61 | + define('DOING_AJAX', true); |
|
| 62 | 62 | } |
| 63 | 63 | |
| 64 | - remove_action( 'admin_init', '_maybe_update_core' ); |
|
| 65 | - remove_action( 'admin_init', '_maybe_update_plugins' ); |
|
| 66 | - remove_action( 'admin_init', '_maybe_update_themes' ); |
|
| 64 | + remove_action('admin_init', '_maybe_update_core'); |
|
| 65 | + remove_action('admin_init', '_maybe_update_plugins'); |
|
| 66 | + remove_action('admin_init', '_maybe_update_themes'); |
|
| 67 | 67 | |
| 68 | 68 | // Register the core actions |
| 69 | - foreach ( array_merge( self::$_core_actions_get, self::$_core_actions_post ) as $action ) { |
|
| 70 | - if ( function_exists( 'wp_ajax_' . str_replace( '-', '_', $action ) ) ) { |
|
| 71 | - add_action( 'wp_ajax_' . $action, 'wp_ajax_' . str_replace( '-', '_', $action ), 1 ); |
|
| 69 | + foreach (array_merge(self::$_core_actions_get, self::$_core_actions_post) as $action) { |
|
| 70 | + if (function_exists('wp_ajax_'.str_replace('-', '_', $action))) { |
|
| 71 | + add_action('wp_ajax_'.$action, 'wp_ajax_'.str_replace('-', '_', $action), 1); |
|
| 72 | 72 | } |
| 73 | 73 | } |
| 74 | 74 | |
@@ -82,19 +82,19 @@ discard block |
||
| 82 | 82 | public function setUp() { |
| 83 | 83 | parent::setUp(); |
| 84 | 84 | |
| 85 | - add_filter( 'wp_die_ajax_handler', array( $this, 'getDieHandler' ), 1, 1 ); |
|
| 85 | + add_filter('wp_die_ajax_handler', array($this, 'getDieHandler'), 1, 1); |
|
| 86 | 86 | |
| 87 | - set_current_screen( 'ajax' ); |
|
| 87 | + set_current_screen('ajax'); |
|
| 88 | 88 | |
| 89 | 89 | // Clear logout cookies |
| 90 | - add_action( 'clear_auth_cookie', array( $this, 'logout' ) ); |
|
| 90 | + add_action('clear_auth_cookie', array($this, 'logout')); |
|
| 91 | 91 | |
| 92 | 92 | // Suppress warnings from "Cannot modify header information - headers already sent by" |
| 93 | 93 | $this->_error_level = error_reporting(); |
| 94 | - error_reporting( $this->_error_level & ~E_WARNING ); |
|
| 94 | + error_reporting($this->_error_level & ~E_WARNING); |
|
| 95 | 95 | |
| 96 | 96 | // Make some posts |
| 97 | - self::factory()->post->create_many( 5 ); |
|
| 97 | + self::factory()->post->create_many(5); |
|
| 98 | 98 | } |
| 99 | 99 | |
| 100 | 100 | /** |
@@ -105,22 +105,22 @@ discard block |
||
| 105 | 105 | parent::tearDown(); |
| 106 | 106 | $_POST = array(); |
| 107 | 107 | $_GET = array(); |
| 108 | - unset( $GLOBALS['post'] ); |
|
| 109 | - unset( $GLOBALS['comment'] ); |
|
| 110 | - remove_filter( 'wp_die_ajax_handler', array( $this, 'getDieHandler' ), 1, 1 ); |
|
| 111 | - remove_action( 'clear_auth_cookie', array( $this, 'logout' ) ); |
|
| 112 | - error_reporting( $this->_error_level ); |
|
| 113 | - set_current_screen( 'front' ); |
|
| 108 | + unset($GLOBALS['post']); |
|
| 109 | + unset($GLOBALS['comment']); |
|
| 110 | + remove_filter('wp_die_ajax_handler', array($this, 'getDieHandler'), 1, 1); |
|
| 111 | + remove_action('clear_auth_cookie', array($this, 'logout')); |
|
| 112 | + error_reporting($this->_error_level); |
|
| 113 | + set_current_screen('front'); |
|
| 114 | 114 | } |
| 115 | 115 | |
| 116 | 116 | /** |
| 117 | 117 | * Clear login cookies, unset the current user |
| 118 | 118 | */ |
| 119 | 119 | public function logout() { |
| 120 | - unset( $GLOBALS['current_user'] ); |
|
| 120 | + unset($GLOBALS['current_user']); |
|
| 121 | 121 | $cookies = array(AUTH_COOKIE, SECURE_AUTH_COOKIE, LOGGED_IN_COOKIE, USER_COOKIE, PASS_COOKIE); |
| 122 | - foreach ( $cookies as $c ) |
|
| 123 | - unset( $_COOKIE[$c] ); |
|
| 122 | + foreach ($cookies as $c) |
|
| 123 | + unset($_COOKIE[$c]); |
|
| 124 | 124 | } |
| 125 | 125 | |
| 126 | 126 | /** |
@@ -128,7 +128,7 @@ discard block |
||
| 128 | 128 | * @return callback |
| 129 | 129 | */ |
| 130 | 130 | public function getDieHandler() { |
| 131 | - return array( $this, 'dieHandler' ); |
|
| 131 | + return array($this, 'dieHandler'); |
|
| 132 | 132 | } |
| 133 | 133 | |
| 134 | 134 | /** |
@@ -146,17 +146,17 @@ discard block |
||
| 146 | 146 | * </code> |
| 147 | 147 | * @param string $message |
| 148 | 148 | */ |
| 149 | - public function dieHandler( $message ) { |
|
| 149 | + public function dieHandler($message) { |
|
| 150 | 150 | $this->_last_response .= ob_get_clean(); |
| 151 | 151 | |
| 152 | - if ( '' === $this->_last_response ) { |
|
| 153 | - if ( is_scalar( $message ) ) { |
|
| 154 | - throw new WPAjaxDieStopException( (string) $message ); |
|
| 152 | + if ('' === $this->_last_response) { |
|
| 153 | + if (is_scalar($message)) { |
|
| 154 | + throw new WPAjaxDieStopException((string) $message); |
|
| 155 | 155 | } else { |
| 156 | - throw new WPAjaxDieStopException( '0' ); |
|
| 156 | + throw new WPAjaxDieStopException('0'); |
|
| 157 | 157 | } |
| 158 | 158 | } else { |
| 159 | - throw new WPAjaxDieContinueException( $message ); |
|
| 159 | + throw new WPAjaxDieContinueException($message); |
|
| 160 | 160 | } |
| 161 | 161 | } |
| 162 | 162 | |
@@ -165,10 +165,10 @@ discard block |
||
| 165 | 165 | * E.g. administrator, editor, author, contributor, subscriber |
| 166 | 166 | * @param string $role |
| 167 | 167 | */ |
| 168 | - protected function _setRole( $role ) { |
|
| 168 | + protected function _setRole($role) { |
|
| 169 | 169 | $post = $_POST; |
| 170 | - $user_id = self::factory()->user->create( array( 'role' => $role ) ); |
|
| 171 | - wp_set_current_user( $user_id ); |
|
| 170 | + $user_id = self::factory()->user->create(array('role' => $role)); |
|
| 171 | + wp_set_current_user($user_id); |
|
| 172 | 172 | $_POST = array_merge($_POST, $post); |
| 173 | 173 | } |
| 174 | 174 | |
@@ -181,21 +181,21 @@ discard block |
||
| 181 | 181 | protected function _handleAjax($action) { |
| 182 | 182 | |
| 183 | 183 | // Start output buffering |
| 184 | - ini_set( 'implicit_flush', false ); |
|
| 184 | + ini_set('implicit_flush', false); |
|
| 185 | 185 | ob_start(); |
| 186 | 186 | |
| 187 | 187 | // Build the request |
| 188 | 188 | $_POST['action'] = $action; |
| 189 | 189 | $_GET['action'] = $action; |
| 190 | - $_REQUEST = array_merge( $_POST, $_GET ); |
|
| 190 | + $_REQUEST = array_merge($_POST, $_GET); |
|
| 191 | 191 | |
| 192 | 192 | // Call the hooks |
| 193 | - do_action( 'admin_init' ); |
|
| 194 | - do_action( 'wp_ajax_' . $_REQUEST['action'], null ); |
|
| 193 | + do_action('admin_init'); |
|
| 194 | + do_action('wp_ajax_'.$_REQUEST['action'], null); |
|
| 195 | 195 | |
| 196 | 196 | // Save the output |
| 197 | 197 | $buffer = ob_get_clean(); |
| 198 | - if ( !empty( $buffer ) ) |
|
| 198 | + if (!empty($buffer)) |
|
| 199 | 199 | $this->_last_response = $buffer; |
| 200 | 200 | } |
| 201 | 201 | } |
@@ -1,38 +1,38 @@ |
||
| 1 | 1 | <?php |
| 2 | 2 | class SearchWithKeyword extends WP_UnitTestCase |
| 3 | 3 | { |
| 4 | - public function setUp() |
|
| 5 | - { |
|
| 6 | - parent::setUp(); |
|
| 7 | - } |
|
| 4 | + public function setUp() |
|
| 5 | + { |
|
| 6 | + parent::setUp(); |
|
| 7 | + } |
|
| 8 | 8 | |
| 9 | - public function testSearchWithKeyword() |
|
| 10 | - { |
|
| 11 | - $_REQUEST['geodir_search'] = 1; |
|
| 12 | - $query_args = array( |
|
| 13 | - 'post_status' => 'publish', |
|
| 14 | - 'post_type' => 'gd_place', |
|
| 15 | - 'posts_per_page' => 1, |
|
| 16 | - 's' => 'Longwood Gardens' |
|
| 17 | - ); |
|
| 9 | + public function testSearchWithKeyword() |
|
| 10 | + { |
|
| 11 | + $_REQUEST['geodir_search'] = 1; |
|
| 12 | + $query_args = array( |
|
| 13 | + 'post_status' => 'publish', |
|
| 14 | + 'post_type' => 'gd_place', |
|
| 15 | + 'posts_per_page' => 1, |
|
| 16 | + 's' => 'Longwood Gardens' |
|
| 17 | + ); |
|
| 18 | 18 | |
| 19 | - $all_posts = new WP_Query( $query_args ); |
|
| 19 | + $all_posts = new WP_Query( $query_args ); |
|
| 20 | 20 | |
| 21 | - $total_posts = $all_posts->found_posts; |
|
| 21 | + $total_posts = $all_posts->found_posts; |
|
| 22 | 22 | |
| 23 | - $this->assertTrue(is_int((int) $total_posts)); |
|
| 23 | + $this->assertTrue(is_int((int) $total_posts)); |
|
| 24 | 24 | |
| 25 | - $title = null; |
|
| 26 | - while ( $all_posts->have_posts() ) : $all_posts->the_post(); |
|
| 27 | - $title = get_the_title(); |
|
| 28 | - endwhile; |
|
| 25 | + $title = null; |
|
| 26 | + while ( $all_posts->have_posts() ) : $all_posts->the_post(); |
|
| 27 | + $title = get_the_title(); |
|
| 28 | + endwhile; |
|
| 29 | 29 | |
| 30 | - $this->assertEquals($title, 'Longwood Gardens'); |
|
| 31 | - } |
|
| 30 | + $this->assertEquals($title, 'Longwood Gardens'); |
|
| 31 | + } |
|
| 32 | 32 | |
| 33 | - public function tearDown() |
|
| 34 | - { |
|
| 35 | - parent::tearDown(); |
|
| 36 | - } |
|
| 33 | + public function tearDown() |
|
| 34 | + { |
|
| 35 | + parent::tearDown(); |
|
| 36 | + } |
|
| 37 | 37 | } |
| 38 | 38 | ?> |
| 39 | 39 | \ No newline at end of file |
@@ -16,14 +16,14 @@ |
||
| 16 | 16 | 's' => 'Longwood Gardens' |
| 17 | 17 | ); |
| 18 | 18 | |
| 19 | - $all_posts = new WP_Query( $query_args ); |
|
| 19 | + $all_posts = new WP_Query($query_args); |
|
| 20 | 20 | |
| 21 | 21 | $total_posts = $all_posts->found_posts; |
| 22 | 22 | |
| 23 | 23 | $this->assertTrue(is_int((int) $total_posts)); |
| 24 | 24 | |
| 25 | 25 | $title = null; |
| 26 | - while ( $all_posts->have_posts() ) : $all_posts->the_post(); |
|
| 26 | + while ($all_posts->have_posts()) : $all_posts->the_post(); |
|
| 27 | 27 | $title = get_the_title(); |
| 28 | 28 | endwhile; |
| 29 | 29 | |