Completed
Push — master ( da5a66...8cd4be )
by frank
03:29
created
classes/autoptimizeCriticalCSSCron.php 1 patch
Spacing   +254 added lines, -254 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
4 4
  * processes the queue, submitting jobs to criticalcss.com and retrieving generated CSS from criticalcss.com and saving rules.
5 5
  */
6 6
 
7
-if ( ! defined( 'ABSPATH' ) ) {
7
+if (!defined('ABSPATH')) {
8 8
     exit;
9 9
 }
10 10
 
@@ -13,23 +13,23 @@  discard block
 block discarded – undo
13 13
     {
14 14
         // fetch all options at once and populate them individually explicitely as globals.
15 15
         $all_options = autoptimizeCriticalCSSBase::fetch_options();
16
-        foreach ( $all_options as $_option => $_value ) {
16
+        foreach ($all_options as $_option => $_value) {
17 17
             global ${$_option};
18 18
             ${$_option} = $_value;
19 19
         }
20 20
 
21 21
         // Add queue control to a registered event.
22
-        add_action( 'ao_ccss_queue', array( $this, 'ao_ccss_queue_control' ) );
22
+        add_action('ao_ccss_queue', array($this, 'ao_ccss_queue_control'));
23 23
         // Add cleaning job to a registered event.
24
-        add_action( 'ao_ccss_maintenance', array( $this, 'ao_ccss_cleaning' ) );
24
+        add_action('ao_ccss_maintenance', array($this, 'ao_ccss_cleaning'));
25 25
     }
26 26
 
27 27
     public function ao_ccss_queue_control() {
28 28
         // The queue execution backend.
29 29
         global $ao_ccss_key;
30
-        if ( ! isset( $ao_ccss_key ) || empty( $ao_ccss_key ) ) {
30
+        if (!isset($ao_ccss_key) || empty($ao_ccss_key)) {
31 31
             // no key set, not processing the queue!
32
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'No key set, so not processing queue.', 3 );
32
+            autoptimizeCriticalCSSCore::ao_ccss_log('No key set, so not processing queue.', 3);
33 33
             return;
34 34
         }
35 35
 
@@ -50,35 +50,35 @@  discard block
 block discarded – undo
50 50
          *    When properly set, queue will always finish a job with the declared settings above regardless of the real API responses.
51 51
          */
52 52
         $queue_debug = false;
53
-        if ( file_exists( AO_CCSS_DEBUG ) ) {
54
-            $qdobj_raw = file_get_contents( AO_CCSS_DEBUG );
55
-            $qdobj     = json_decode( $qdobj_raw, true );
56
-            if ( $qdobj ) {
57
-                if ( 1 === $qdobj['enable'] ) {
53
+        if (file_exists(AO_CCSS_DEBUG)) {
54
+            $qdobj_raw = file_get_contents(AO_CCSS_DEBUG);
55
+            $qdobj     = json_decode($qdobj_raw, true);
56
+            if ($qdobj) {
57
+                if (1 === $qdobj['enable']) {
58 58
                     $queue_debug = true;
59
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue operating in debug mode with the following settings: <' . $qdobj_raw . '>', 3 );
59
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Queue operating in debug mode with the following settings: <'.$qdobj_raw.'>', 3);
60 60
                 }
61 61
             }
62 62
         }
63 63
 
64 64
         // Set some default values for $qdobj to avoid function call warnings.
65
-        if ( ! $queue_debug ) {
65
+        if (!$queue_debug) {
66 66
             $qdobj['htcode'] = false;
67 67
         }
68 68
 
69 69
         // Check if queue is already running.
70 70
         $queue_lock = false;
71
-        if ( file_exists( AO_CCSS_LOCK ) ) {
71
+        if (file_exists(AO_CCSS_LOCK)) {
72 72
             $queue_lock = true;
73 73
         }
74 74
 
75 75
         // Proceed with the queue if it's not already running.
76
-        if ( ! $queue_lock ) {
76
+        if (!$queue_lock) {
77 77
 
78 78
             // Log queue start and create the lock file.
79
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue control started', 3 );
80
-            if ( touch( AO_CCSS_LOCK ) ) {
81
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue control locked', 3 );
79
+            autoptimizeCriticalCSSCore::ao_ccss_log('Queue control started', 3);
80
+            if (touch(AO_CCSS_LOCK)) {
81
+                autoptimizeCriticalCSSCore::ao_ccss_log('Queue control locked', 3);
82 82
             }
83 83
 
84 84
             // Attach required variables.
@@ -86,45 +86,45 @@  discard block
 block discarded – undo
86 86
             global $ao_ccss_rtimelimit;
87 87
 
88 88
             // Initialize counters.
89
-            if ( $ao_ccss_rtimelimit == 0 ) {
89
+            if ($ao_ccss_rtimelimit == 0) {
90 90
                 // no time limit set, let's go with 1000 seconds.
91 91
                 $ao_ccss_rtimelimit = 1000;
92 92
             }
93 93
             $mt = time() + $ao_ccss_rtimelimit; // maxtime queue processing can run.
94 94
             $jc = 1; // job count number.
95 95
             $jr = 1; // jobs requests number.
96
-            $jt = count( $ao_ccss_queue ); // number of jobs in queue.
96
+            $jt = count($ao_ccss_queue); // number of jobs in queue.
97 97
 
98 98
             // Sort queue by ascending job status (e.g. ERROR, JOB_ONGOING, JOB_QUEUED, NEW...).
99
-            array_multisort( array_column( $ao_ccss_queue, 'jqstat' ), $ao_ccss_queue ); // @codingStandardsIgnoreLine
99
+            array_multisort(array_column($ao_ccss_queue, 'jqstat'), $ao_ccss_queue); // @codingStandardsIgnoreLine
100 100
 
101 101
             // Iterates over the entire queue.
102
-            foreach ( $ao_ccss_queue as $path => $jprops ) {
102
+            foreach ($ao_ccss_queue as $path => $jprops) {
103 103
                 // Prepare flags and target rule.
104 104
                 $update      = false;
105 105
                 $deljob      = false;
106 106
                 $rule_update = false;
107 107
                 $oldccssfile = false;
108
-                $trule       = explode( '|', $jprops['rtarget'] );
108
+                $trule       = explode('|', $jprops['rtarget']);
109 109
 
110 110
                 // Log job count.
111
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Processing job ' . $jc . ' of ' . $jt . ' with id <' . $jprops['ljid'] . '> and status <' . $jprops['jqstat'] . '>', 3 );
111
+                autoptimizeCriticalCSSCore::ao_ccss_log('Processing job '.$jc.' of '.$jt.' with id <'.$jprops['ljid'].'> and status <'.$jprops['jqstat'].'>', 3);
112 112
 
113 113
                 // Process NEW jobs.
114
-                if ( 'NEW' == $jprops['jqstat'] ) {
114
+                if ('NEW' == $jprops['jqstat']) {
115 115
 
116 116
                     // Log the new job.
117
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Found NEW job with local ID <' . $jprops['ljid'] . '>, starting its queue processing', 3 );
117
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Found NEW job with local ID <'.$jprops['ljid'].'>, starting its queue processing', 3);
118 118
 
119 119
                     // Compare job and rule hashes (if any).
120
-                    $hash = $this->ao_ccss_diff_hashes( $jprops['ljid'], $jprops['hash'], $jprops['hashes'], $jprops['rtarget'] );
120
+                    $hash = $this->ao_ccss_diff_hashes($jprops['ljid'], $jprops['hash'], $jprops['hashes'], $jprops['rtarget']);
121 121
 
122 122
                     // If job hash is new or different of a previous one.
123
-                    if ( $hash ) {
124
-                        if ( $jr > 2 ) {
123
+                    if ($hash) {
124
+                        if ($jr > 2) {
125 125
                             // we already posted 2 jobs to criticalcss.com, don't post more this run
126 126
                             // but we can keep on processing the queue to keep it tidy.
127
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Holding off on generating request for job with local ID <' . $jprops['ljid'] . '>, maximum number of POSTS reached.', 3 );
127
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Holding off on generating request for job with local ID <'.$jprops['ljid'].'>, maximum number of POSTS reached.', 3);
128 128
                             continue;
129 129
                         }
130 130
 
@@ -132,182 +132,182 @@  discard block
 block discarded – undo
132 132
                         $jprops['hash'] = $hash;
133 133
 
134 134
                         // Dispatch the job generate request and increment request count.
135
-                        $apireq = $this->ao_ccss_api_generate( $path, $queue_debug, $qdobj['htcode'] );
135
+                        $apireq = $this->ao_ccss_api_generate($path, $queue_debug, $qdobj['htcode']);
136 136
                         $jr++;
137 137
 
138 138
                         // NOTE: All the following conditions maps to the ones in admin_settings_queue.js.php.
139
-                        if ( 'JOB_QUEUED' == $apireq['job']['status'] || 'JOB_ONGOING' == $apireq['job']['status'] ) {
139
+                        if ('JOB_QUEUED' == $apireq['job']['status'] || 'JOB_ONGOING' == $apireq['job']['status']) {
140 140
                             // SUCCESS: request has a valid result.
141 141
                             // Update job properties.
142 142
                             $jprops['jid']    = $apireq['job']['id'];
143 143
                             $jprops['jqstat'] = $apireq['job']['status'];
144
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> generate request successful, remote id <' . $jprops['jid'] . '>, status now is <' . $jprops['jqstat'] . '>', 3 );
145
-                        } elseif ( 'STATUS_JOB_BAD' == $apireq['job']['status'] ) {
144
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> generate request successful, remote id <'.$jprops['jid'].'>, status now is <'.$jprops['jqstat'].'>', 3);
145
+                        } elseif ('STATUS_JOB_BAD' == $apireq['job']['status']) {
146 146
                             // ERROR: concurrent requests
147 147
                             // Update job properties.
148 148
                             $jprops['jid']    = $apireq['job']['id'];
149 149
                             $jprops['jqstat'] = $apireq['job']['status'];
150
-                            if ( $apireq['job']['error'] ) {
150
+                            if ($apireq['job']['error']) {
151 151
                                 $jprops['jrstat'] = $apireq['job']['error'];
152 152
                             } else {
153 153
                                 $jprops['jrstat'] = 'Baby did a bad bad thing';
154 154
                             }
155 155
                             $jprops['jvstat'] = 'NONE';
156
-                            $jprops['jftime'] = microtime( true );
157
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Concurrent requests when processing job id <' . $jprops['ljid'] . '>, job status is now <' . $jprops['jqstat'] . '>', 3 );
158
-                        } elseif ( 'INVALID_JWT_TOKEN' == $apireq['errorCode'] ) {
156
+                            $jprops['jftime'] = microtime(true);
157
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Concurrent requests when processing job id <'.$jprops['ljid'].'>, job status is now <'.$jprops['jqstat'].'>', 3);
158
+                        } elseif ('INVALID_JWT_TOKEN' == $apireq['errorCode']) {
159 159
                             // ERROR: key validation
160 160
                             // Update job properties.
161 161
                             $jprops['jqstat'] = $apireq['errorCode'];
162 162
                             $jprops['jrstat'] = $apireq['error'];
163 163
                             $jprops['jvstat'] = 'NONE';
164
-                            $jprops['jftime'] = microtime( true );
165
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'API key validation error when processing job id <' . $jprops['ljid'] . '>, job status is now <' . $jprops['jqstat'] . '>', 3 );
166
-                        } elseif ( empty( $apireq ) ) {
164
+                            $jprops['jftime'] = microtime(true);
165
+                            autoptimizeCriticalCSSCore::ao_ccss_log('API key validation error when processing job id <'.$jprops['ljid'].'>, job status is now <'.$jprops['jqstat'].'>', 3);
166
+                        } elseif (empty($apireq)) {
167 167
                             // ERROR: no response
168 168
                             // Update job properties.
169 169
                             $jprops['jqstat'] = 'NO_RESPONSE';
170 170
                             $jprops['jrstat'] = 'NONE';
171 171
                             $jprops['jvstat'] = 'NONE';
172
-                            $jprops['jftime'] = microtime( true );
173
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> request has no response, status now is <' . $jprops['jqstat'] . '>', 3 );
172
+                            $jprops['jftime'] = microtime(true);
173
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> request has no response, status now is <'.$jprops['jqstat'].'>', 3);
174 174
                         } else {
175 175
                             // UNKNOWN: unhandled generate exception
176 176
                             // Update job properties.
177 177
                             $jprops['jqstat'] = 'JOB_UNKNOWN';
178 178
                             $jprops['jrstat'] = 'NONE';
179 179
                             $jprops['jvstat'] = 'NONE';
180
-                            $jprops['jftime'] = microtime( true );
181
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> generate request has an UNKNOWN condition, status now is <' . $jprops['jqstat'] . '>, check log messages above for more information', 2 );
182
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job response was: ' . json_encode( $apireq ), 3 );
180
+                            $jprops['jftime'] = microtime(true);
181
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> generate request has an UNKNOWN condition, status now is <'.$jprops['jqstat'].'>, check log messages above for more information', 2);
182
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job response was: '.json_encode($apireq), 3);
183 183
                         }
184 184
                     } else {
185 185
                         // SUCCESS: Job hash is equal to a previous one, so it's done
186 186
                         // Update job status and finish time.
187 187
                         $jprops['jqstat'] = 'JOB_DONE';
188
-                        $jprops['jftime'] = microtime( true );
189
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> requires no further processing, status now is <' . $jprops['jqstat'] . '>', 3 );
188
+                        $jprops['jftime'] = microtime(true);
189
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> requires no further processing, status now is <'.$jprops['jqstat'].'>', 3);
190 190
                     }
191 191
 
192 192
                     // Set queue update flag.
193 193
                     $update = true;
194 194
 
195
-                } elseif ( 'JOB_QUEUED' == $jprops['jqstat'] || 'JOB_ONGOING' == $jprops['jqstat'] ) {
195
+                } elseif ('JOB_QUEUED' == $jprops['jqstat'] || 'JOB_ONGOING' == $jprops['jqstat']) {
196 196
                     // Process QUEUED and ONGOING jobs
197 197
                     // Log the pending job.
198
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Found PENDING job with local ID <' . $jprops['ljid'] . '>, continuing its queue processing', 3 );
198
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Found PENDING job with local ID <'.$jprops['ljid'].'>, continuing its queue processing', 3);
199 199
 
200 200
                     // Dispatch the job result request and increment request count.
201
-                    $apireq = $this->ao_ccss_api_results( $jprops['jid'], $queue_debug, $qdobj['htcode'] );
201
+                    $apireq = $this->ao_ccss_api_results($jprops['jid'], $queue_debug, $qdobj['htcode']);
202 202
 
203 203
                     // NOTE: All the following condigitons maps to the ones in admin_settings_queue.js.php
204 204
                     // Replace API response values if queue debugging is enabled and some value is set.
205
-                    if ( $queue_debug ) {
206
-                        if ( $qdobj['status'] ) {
205
+                    if ($queue_debug) {
206
+                        if ($qdobj['status']) {
207 207
                             $apireq['status'] = $qdobj['status'];
208 208
                         }
209
-                        if ( $qdobj['resultStatus'] ) {
209
+                        if ($qdobj['resultStatus']) {
210 210
                             $apireq['resultStatus'] = $qdobj['resultStatus'];
211 211
                         }
212
-                        if ( $qdobj['validationStatus'] ) {
212
+                        if ($qdobj['validationStatus']) {
213 213
                             $apireq['validationStatus'] = $qdobj['validationStatus'];
214 214
                         }
215 215
                     }
216 216
 
217
-                    if ( 'JOB_QUEUED' == $apireq['status'] || 'JOB_ONGOING' == $apireq['status'] ) {
217
+                    if ('JOB_QUEUED' == $apireq['status'] || 'JOB_ONGOING' == $apireq['status']) {
218 218
                         // SUCCESS: request has a valid result
219 219
                         // Process a PENDING job
220 220
                         // Update job properties.
221 221
                         $jprops['jqstat'] = $apireq['status'];
222
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful, remote id <' . $jprops['jid'] . '>, status <' . $jprops['jqstat'] . '> unchanged', 3 );
223
-                    } elseif ( 'JOB_DONE' == $apireq['status'] ) {
222
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful, remote id <'.$jprops['jid'].'>, status <'.$jprops['jqstat'].'> unchanged', 3);
223
+                    } elseif ('JOB_DONE' == $apireq['status']) {
224 224
                         // Process a DONE job
225 225
                         // New resultStatus from ccss.com "HTML_404", consider as "GOOD" for now.
226
-                        if ( 'HTML_404' == $apireq['resultStatus'] ) {
226
+                        if ('HTML_404' == $apireq['resultStatus']) {
227 227
                             $apireq['resultStatus'] = 'GOOD';
228 228
                         }
229 229
 
230
-                        if ( 'GOOD' == $apireq['resultStatus'] && 'GOOD' == $apireq['validationStatus'] ) {
230
+                        if ('GOOD' == $apireq['resultStatus'] && 'GOOD' == $apireq['validationStatus']) {
231 231
                             // SUCCESS: GOOD job with GOOD validation
232 232
                             // Update job properties.
233
-                            $jprops['file']   = $this->ao_ccss_save_file( $apireq['css'], $trule, false );
233
+                            $jprops['file']   = $this->ao_ccss_save_file($apireq['css'], $trule, false);
234 234
                             $jprops['jqstat'] = $apireq['status'];
235 235
                             $jprops['jrstat'] = $apireq['resultStatus'];
236 236
                             $jprops['jvstat'] = $apireq['validationStatus'];
237
-                            $jprops['jftime'] = microtime( true );
237
+                            $jprops['jftime'] = microtime(true);
238 238
                             $rule_update      = true;
239
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful, remote id <' . $jprops['jid'] . '>, status <' . $jprops['jqstat'] . '>, file saved <' . $jprops['file'] . '>', 3 );
240
-                        } elseif ( 'GOOD' == $apireq['resultStatus'] && ( 'WARN' == $apireq['validationStatus'] || 'BAD' == $apireq['validationStatus'] || 'SCREENSHOT_WARN_BLANK' == $apireq['validationStatus'] ) ) {
239
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful, remote id <'.$jprops['jid'].'>, status <'.$jprops['jqstat'].'>, file saved <'.$jprops['file'].'>', 3);
240
+                        } elseif ('GOOD' == $apireq['resultStatus'] && ('WARN' == $apireq['validationStatus'] || 'BAD' == $apireq['validationStatus'] || 'SCREENSHOT_WARN_BLANK' == $apireq['validationStatus'])) {
241 241
                             // SUCCESS: GOOD job with WARN or BAD validation
242 242
                             // Update job properties.
243 243
                             $jprops['jqstat'] = $apireq['status'];
244 244
                             $jprops['jrstat'] = $apireq['resultStatus'];
245 245
                             $jprops['jvstat'] = $apireq['validationStatus'];
246
-                            $jprops['jftime'] = microtime( true );
247
-                            if ( apply_filters( 'autoptimize_filter_ccss_save_review_rules', true ) ) {
248
-                                $jprops['file']   = $this->ao_ccss_save_file( $apireq['css'], $trule, true );
246
+                            $jprops['jftime'] = microtime(true);
247
+                            if (apply_filters('autoptimize_filter_ccss_save_review_rules', true)) {
248
+                                $jprops['file']   = $this->ao_ccss_save_file($apireq['css'], $trule, true);
249 249
                                 $rule_update      = true;
250
-                                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful, remote id <' . $jprops['jid'] . '>, status <' . $jprops['jqstat'] . ', file saved <' . $jprops['file'] . '> but requires REVIEW', 3 );
250
+                                autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful, remote id <'.$jprops['jid'].'>, status <'.$jprops['jqstat'].', file saved <'.$jprops['file'].'> but requires REVIEW', 3);
251 251
                             } else {
252
-                                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful, remote id <' . $jprops['jid'] . '>, status <' . $jprops['jqstat'] . ', file saved <' . $jprops['file'] . '> but required REVIEW so not saved.', 3 );
252
+                                autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful, remote id <'.$jprops['jid'].'>, status <'.$jprops['jqstat'].', file saved <'.$jprops['file'].'> but required REVIEW so not saved.', 3);
253 253
                             }
254
-                        } elseif ( 'GOOD' != $apireq['resultStatus'] && ( 'GOOD' != $apireq['validationStatus'] || 'WARN' != $apireq['validationStatus'] || 'BAD' != $apireq['validationStatus'] || 'SCREENSHOT_WARN_BLANK' != $apireq['validationStatus'] ) ) {
254
+                        } elseif ('GOOD' != $apireq['resultStatus'] && ('GOOD' != $apireq['validationStatus'] || 'WARN' != $apireq['validationStatus'] || 'BAD' != $apireq['validationStatus'] || 'SCREENSHOT_WARN_BLANK' != $apireq['validationStatus'])) {
255 255
                             // ERROR: no GOOD, WARN or BAD results
256 256
                             // Update job properties.
257 257
                             $jprops['jqstat'] = $apireq['status'];
258 258
                             $jprops['jrstat'] = $apireq['resultStatus'];
259 259
                             $jprops['jvstat'] = $apireq['validationStatus'];
260
-                            $jprops['jftime'] = microtime( true );
261
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful but job FAILED, status now is <' . $jprops['jqstat'] . '>', 3 );
260
+                            $jprops['jftime'] = microtime(true);
261
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful but job FAILED, status now is <'.$jprops['jqstat'].'>', 3);
262 262
                             $apireq['css'] = '/* critical css removed for DEBUG logging purposes */';
263
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job response was: ' . json_encode( $apireq ), 3 );
263
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job response was: '.json_encode($apireq), 3);
264 264
                         } else {
265 265
                             // UNKNOWN: unhandled JOB_DONE exception
266 266
                             // Update job properties.
267 267
                             $jprops['jqstat'] = 'JOB_UNKNOWN';
268 268
                             $jprops['jrstat'] = $apireq['resultStatus'];
269 269
                             $jprops['jvstat'] = $apireq['validationStatus'];
270
-                            $jprops['jftime'] = microtime( true );
271
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful but job is UNKNOWN, status now is <' . $jprops['jqstat'] . '>', 2 );
270
+                            $jprops['jftime'] = microtime(true);
271
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful but job is UNKNOWN, status now is <'.$jprops['jqstat'].'>', 2);
272 272
                             $apireq['css'] = '/* critical css removed for DEBUG logging purposes */';
273
-                            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job response was: ' . json_encode( $apireq ), 3 );
273
+                            autoptimizeCriticalCSSCore::ao_ccss_log('Job response was: '.json_encode($apireq), 3);
274 274
                         }
275
-                    } elseif ( 'JOB_FAILED' == $apireq['job']['status'] || 'STATUS_JOB_BAD' == $apireq['job']['status'] ) {
275
+                    } elseif ('JOB_FAILED' == $apireq['job']['status'] || 'STATUS_JOB_BAD' == $apireq['job']['status']) {
276 276
                         // ERROR: failed job
277 277
                         // Update job properties.
278 278
                         $jprops['jqstat'] = $apireq['job']['status'];
279
-                        if ( $apireq['job']['error'] ) {
279
+                        if ($apireq['job']['error']) {
280 280
                             $jprops['jrstat'] = $apireq['job']['error'];
281 281
                         } else {
282 282
                             $jprops['jrstat'] = 'Baby did a bad bad thing';
283 283
                         }
284 284
                         $jprops['jvstat'] = 'NONE';
285
-                        $jprops['jftime'] = microtime( true );
286
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful but job FAILED, status now is <' . $jprops['jqstat'] . '>', 3 );
287
-                    } elseif ( 'This css no longer exists. Please re-generate it.' == $apireq['error'] ) {
285
+                        $jprops['jftime'] = microtime(true);
286
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful but job FAILED, status now is <'.$jprops['jqstat'].'>', 3);
287
+                    } elseif ('This css no longer exists. Please re-generate it.' == $apireq['error']) {
288 288
                         // ERROR: CSS doesn't exist
289 289
                         // Update job properties.
290 290
                         $jprops['jqstat'] = 'NO_CSS';
291 291
                         $jprops['jrstat'] = $apireq['error'];
292 292
                         $jprops['jvstat'] = 'NONE';
293
-                        $jprops['jftime'] = microtime( true );
294
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request successful but job FAILED, status now is <' . $jprops['jqstat'] . '>', 3 );
295
-                    } elseif ( empty( $apireq ) ) {
293
+                        $jprops['jftime'] = microtime(true);
294
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request successful but job FAILED, status now is <'.$jprops['jqstat'].'>', 3);
295
+                    } elseif (empty($apireq)) {
296 296
                         // ERROR: no response
297 297
                         // Update job properties.
298 298
                         $jprops['jqstat'] = 'NO_RESPONSE';
299 299
                         $jprops['jrstat'] = 'NONE';
300 300
                         $jprops['jvstat'] = 'NONE';
301
-                        $jprops['jftime'] = microtime( true );
302
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> request has no response, status now is <' . $jprops['jqstat'] . '>', 3 );
301
+                        $jprops['jftime'] = microtime(true);
302
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> request has no response, status now is <'.$jprops['jqstat'].'>', 3);
303 303
                     } else {
304 304
                         // UNKNOWN: unhandled results exception
305 305
                         // Update job properties.
306 306
                         $jprops['jqstat'] = 'JOB_UNKNOWN';
307 307
                         $jprops['jrstat'] = 'NONE';
308 308
                         $jprops['jvstat'] = 'NONE';
309
-                        $jprops['jftime'] = microtime( true );
310
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> result request has an UNKNOWN condition, status now is <' . $jprops['jqstat'] . '>, check log messages above for more information', 2 );
309
+                        $jprops['jftime'] = microtime(true);
310
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> result request has an UNKNOWN condition, status now is <'.$jprops['jqstat'].'>, check log messages above for more information', 2);
311 311
                     }
312 312
 
313 313
                     // Set queue update flag.
@@ -315,40 +315,40 @@  discard block
 block discarded – undo
315 315
                 }
316 316
 
317 317
                 // Mark DONE jobs for removal.
318
-                if ( 'JOB_DONE' == $jprops['jqstat'] ) {
318
+                if ('JOB_DONE' == $jprops['jqstat']) {
319 319
                     $update = true;
320 320
                     $deljob = true;
321 321
                 }
322 322
 
323 323
                 // Persist updated queue object.
324
-                if ( $update ) {
325
-                    if ( ! $deljob ) {
324
+                if ($update) {
325
+                    if (!$deljob) {
326 326
                         // Update properties of a NEW or PENDING job...
327
-                        $ao_ccss_queue[ $path ] = $jprops;
327
+                        $ao_ccss_queue[$path] = $jprops;
328 328
                     } else {
329 329
                         // ...or remove the DONE job.
330
-                        unset( $ao_ccss_queue[ $path ] );
331
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> is DONE and was removed from the queue', 3 );
330
+                        unset($ao_ccss_queue[$path]);
331
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> is DONE and was removed from the queue', 3);
332 332
                     }
333 333
 
334 334
                     // Update queue object.
335
-                    $ao_ccss_queue_raw = json_encode( $ao_ccss_queue );
336
-                    update_option( 'autoptimize_ccss_queue', $ao_ccss_queue_raw, false );
337
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue updated by job id <' . $jprops['ljid'] . '>', 3 );
335
+                    $ao_ccss_queue_raw = json_encode($ao_ccss_queue);
336
+                    update_option('autoptimize_ccss_queue', $ao_ccss_queue_raw, false);
337
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Queue updated by job id <'.$jprops['ljid'].'>', 3);
338 338
 
339 339
                     // Update target rule.
340
-                    if ( $rule_update ) {
341
-                        $this->ao_ccss_rule_update( $jprops['ljid'], $jprops['rtarget'], $jprops['file'], $jprops['hash'] );
342
-                        autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $jprops['ljid'] . '> updated the target rule <' . $jprops['rtarget'] . '>', 3 );
340
+                    if ($rule_update) {
341
+                        $this->ao_ccss_rule_update($jprops['ljid'], $jprops['rtarget'], $jprops['file'], $jprops['hash']);
342
+                        autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$jprops['ljid'].'> updated the target rule <'.$jprops['rtarget'].'>', 3);
343 343
                     }
344 344
                 } else {
345 345
                     // Or log no queue action.
346
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'Nothing to do on this job', 3 );
346
+                    autoptimizeCriticalCSSCore::ao_ccss_log('Nothing to do on this job', 3);
347 347
                 }
348 348
 
349 349
                 // Break the loop if request time limit is (almost exceeded).
350
-                if ( time() > $mt ) {
351
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'The time limit of ' . $ao_ccss_rtimelimit . ' seconds was exceeded, queue control must finish now', 3 );
350
+                if (time() > $mt) {
351
+                    autoptimizeCriticalCSSCore::ao_ccss_log('The time limit of '.$ao_ccss_rtimelimit.' seconds was exceeded, queue control must finish now', 3);
352 352
                     break;
353 353
                 }
354 354
 
@@ -357,46 +357,46 @@  discard block
 block discarded – undo
357 357
             }
358 358
 
359 359
             // Remove the lock file and log the queue end.
360
-            if ( file_exists( AO_CCSS_LOCK ) ) {
361
-                unlink( AO_CCSS_LOCK );
362
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue control unlocked', 3 );
360
+            if (file_exists(AO_CCSS_LOCK)) {
361
+                unlink(AO_CCSS_LOCK);
362
+                autoptimizeCriticalCSSCore::ao_ccss_log('Queue control unlocked', 3);
363 363
             }
364
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue control finished', 3 );
364
+            autoptimizeCriticalCSSCore::ao_ccss_log('Queue control finished', 3);
365 365
 
366 366
             // Log that queue is locked.
367 367
         } else {
368
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue is already running, skipping the attempt to run it again', 3 );
368
+            autoptimizeCriticalCSSCore::ao_ccss_log('Queue is already running, skipping the attempt to run it again', 3);
369 369
         }
370 370
     }
371 371
 
372
-    public function ao_ccss_diff_hashes( $ljid, $hash, $hashes, $rule ) {
372
+    public function ao_ccss_diff_hashes($ljid, $hash, $hashes, $rule) {
373 373
         // Compare job hashes
374 374
         // STEP 1: update job hashes.
375
-        if ( 1 == count( $hashes ) ) {
375
+        if (1 == count($hashes)) {
376 376
             // Job with a single hash
377 377
             // Set job hash.
378 378
             $hash = $hashes[0];
379
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> updated with SINGLE hash <' . $hash . '>', 3 );
379
+            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> updated with SINGLE hash <'.$hash.'>', 3);
380 380
         } else {
381 381
             // Job with multiple hashes
382 382
             // Loop through hashes to concatenate them.
383 383
             $nhash = '';
384
-            foreach ( $hashes as $shash ) {
384
+            foreach ($hashes as $shash) {
385 385
                 $nhash .= $shash;
386 386
             }
387 387
 
388 388
             // Set job hash.
389
-            $hash = md5( $nhash );
390
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> updated with a COMPOSITE hash <' . $hash . '>', 3 );
389
+            $hash = md5($nhash);
390
+            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> updated with a COMPOSITE hash <'.$hash.'>', 3);
391 391
         }
392 392
 
393 393
         // STEP 2: compare job to existing jobs to prevent double submission for same type+hash.
394 394
         global $ao_ccss_queue;
395 395
 
396
-        foreach ( $ao_ccss_queue as $queue_item ) {
397
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Comparing <' . $rule . $hash . '> with <' . $queue_item['rtarget'] . $queue_item['hash'] . '>', 3 );
398
-            if ( $queue_item['hash'] == $hash && $queue_item['rtarget'] == $rule && in_array( $queue_item['jqstat'], array( 'JOB_QUEUED', 'JOB_ONGOING', 'JOB_DONE' ) ) ) {
399
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> matches the already pending job <' . $queue_item['ljid'] . '>', 3 );
396
+        foreach ($ao_ccss_queue as $queue_item) {
397
+            autoptimizeCriticalCSSCore::ao_ccss_log('Comparing <'.$rule.$hash.'> with <'.$queue_item['rtarget'].$queue_item['hash'].'>', 3);
398
+            if ($queue_item['hash'] == $hash && $queue_item['rtarget'] == $rule && in_array($queue_item['jqstat'], array('JOB_QUEUED', 'JOB_ONGOING', 'JOB_DONE'))) {
399
+                autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> matches the already pending job <'.$queue_item['ljid'].'>', 3);
400 400
                 return false;
401 401
             }
402 402
         }
@@ -406,32 +406,32 @@  discard block
 block discarded – undo
406 406
         global $ao_ccss_rules;
407 407
 
408 408
         // Prepare rule variables.
409
-        $trule = explode( '|', $rule );
410
-        $srule = $ao_ccss_rules[ $trule[0] ][ $trule[1] ];
409
+        $trule = explode('|', $rule);
410
+        $srule = $ao_ccss_rules[$trule[0]][$trule[1]];
411 411
 
412 412
         // Check if a MANUAL rule exist and return false.
413
-        if ( ! empty( $srule ) && ( 0 == $srule['hash'] && 0 != $srule['file'] ) ) {
414
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> matches the MANUAL rule <' . $trule[0] . '|' . $trule[1] . '>', 3 );
413
+        if (!empty($srule) && (0 == $srule['hash'] && 0 != $srule['file'])) {
414
+            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> matches the MANUAL rule <'.$trule[0].'|'.$trule[1].'>', 3);
415 415
             return false;
416
-        } elseif ( ! empty( $srule ) ) {
416
+        } elseif (!empty($srule)) {
417 417
             // Check if an AUTO rule exist.
418
-            if ( $hash === $srule['hash'] && is_file( AO_CCSS_DIR . $srule['file'] ) && 0 != filesize( AO_CCSS_DIR . $srule['file'] ) ) {
418
+            if ($hash === $srule['hash'] && is_file(AO_CCSS_DIR.$srule['file']) && 0 != filesize(AO_CCSS_DIR.$srule['file'])) {
419 419
                 // Check if job hash matches rule, if the CCSS file exists said file is not empty and return FALSE is so.
420
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> with hash <' . $hash . '> MATCH the one in rule <' . $trule[0] . '|' . $trule[1] . '>', 3 );
420
+                autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> with hash <'.$hash.'> MATCH the one in rule <'.$trule[0].'|'.$trule[1].'>', 3);
421 421
                 return false;
422 422
             } else {
423 423
                 // Or return the new hash if they differ.
424
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> with hash <' . $hash . '> DOES NOT MATCH the one in rule <' . $trule[0] . '|' . $trule[1] . '> or rule\'s CCSS file was invalid.', 3 );
424
+                autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> with hash <'.$hash.'> DOES NOT MATCH the one in rule <'.$trule[0].'|'.$trule[1].'> or rule\'s CCSS file was invalid.', 3);
425 425
                 return $hash;
426 426
             }
427 427
         } else {
428 428
             // Or just return the hash if no rule exist yet.
429
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Job id <' . $ljid . '> with hash <' . $hash . '> has no rule yet', 3 );
429
+            autoptimizeCriticalCSSCore::ao_ccss_log('Job id <'.$ljid.'> with hash <'.$hash.'> has no rule yet', 3);
430 430
             return $hash;
431 431
         }
432 432
     }
433 433
 
434
-    public function ao_ccss_api_generate( $path, $debug, $dcode ) {
434
+    public function ao_ccss_api_generate($path, $debug, $dcode) {
435 435
         // POST jobs to criticalcss.com and return responses
436 436
         // Get key and key status.
437 437
         global $ao_ccss_key;
@@ -443,35 +443,35 @@  discard block
 block discarded – undo
443 443
         global $ao_ccss_noptimize;
444 444
 
445 445
         $site_host = get_site_url();
446
-        $site_path = parse_url( $site_host, PHP_URL_PATH );
446
+        $site_path = parse_url($site_host, PHP_URL_PATH);
447 447
 
448
-        if ( ! empty( $site_path ) ) {
449
-            $site_host = str_replace( $site_path, '', $site_host );
448
+        if (!empty($site_path)) {
449
+            $site_host = str_replace($site_path, '', $site_host);
450 450
         }
451 451
 
452 452
         // Logic to bind to one domain to avoid site clones of sites would
453 453
         // automatically begin spawning requests to criticalcss.com which has
454 454
         // a per domain cost.
455 455
         global $ao_ccss_domain;
456
-        if ( empty( $ao_ccss_domain ) ) {
456
+        if (empty($ao_ccss_domain)) {
457 457
             // first request being done, update option to allow future requests are only allowed if from same domain.
458
-            update_option( 'autoptimize_ccss_domain', str_rot13( $site_host ) );
459
-        } elseif ( trim( $ao_ccss_domain, '\'"' ) !== 'none' && parse_url( $site_host, PHP_URL_HOST ) !== parse_url( $ao_ccss_domain, PHP_URL_HOST ) && apply_filters( 'autoptimize_filter_ccss_bind_domain', true ) ) {
458
+            update_option('autoptimize_ccss_domain', str_rot13($site_host));
459
+        } elseif (trim($ao_ccss_domain, '\'"') !== 'none' && parse_url($site_host, PHP_URL_HOST) !== parse_url($ao_ccss_domain, PHP_URL_HOST) && apply_filters('autoptimize_filter_ccss_bind_domain', true)) {
460 460
             // not the same domain, log as error and return without posting to criticalcss.com.
461
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Request for domain ' . $site_host . ' does not match bound domain ' . $ao_ccss_domain . ' so not proceeding.', 2 );
461
+            autoptimizeCriticalCSSCore::ao_ccss_log('Request for domain '.$site_host.' does not match bound domain '.$ao_ccss_domain.' so not proceeding.', 2);
462 462
             return false;
463 463
         }
464 464
 
465
-        $src_url = $site_host . $path;
465
+        $src_url = $site_host.$path;
466 466
 
467 467
         // Avoid AO optimizations if required by config or avoid lazyload if lazyload is active in AO.
468
-        if ( ! empty( $ao_ccss_noptimize ) ) {
468
+        if (!empty($ao_ccss_noptimize)) {
469 469
             $src_url .= '?ao_noptirocket=1';
470
-        } elseif ( class_exists( 'autoptimizeImages', false ) && autoptimizeImages::should_lazyload_wrapper() ) {
470
+        } elseif (class_exists('autoptimizeImages', false) && autoptimizeImages::should_lazyload_wrapper()) {
471 471
             $src_url .= '?ao_nolazy=1';
472 472
         }
473 473
 
474
-        $src_url = apply_filters( 'autoptimize_filter_ccss_cron_srcurl', $src_url );
474
+        $src_url = apply_filters('autoptimize_filter_ccss_cron_srcurl', $src_url);
475 475
 
476 476
         // Initialize request body.
477 477
         $body           = array();
@@ -481,88 +481,88 @@  discard block
 block discarded – undo
481 481
 
482 482
         // Prepare and add viewport size to the body if available.
483 483
         $viewport = autoptimizeCriticalCSSCore::ao_ccss_viewport();
484
-        if ( ! empty( $viewport['w'] ) && ! empty( $viewport['h'] ) ) {
484
+        if (!empty($viewport['w']) && !empty($viewport['h'])) {
485 485
             $body['width']  = $viewport['w'];
486 486
             $body['height'] = $viewport['h'];
487 487
         }
488 488
 
489 489
         // Prepare and add forceInclude to the body if available.
490 490
         global $ao_ccss_finclude;
491
-        $finclude = $this->ao_ccss_finclude( $ao_ccss_finclude );
492
-        if ( ! empty( $finclude ) ) {
491
+        $finclude = $this->ao_ccss_finclude($ao_ccss_finclude);
492
+        if (!empty($finclude)) {
493 493
             $body['forceInclude'] = $finclude;
494 494
         }
495 495
 
496 496
         // Add filter to allow the body array to be altered (e.g. to add customPageHeaders).
497
-        $body = apply_filters( 'autoptimize_ccss_cron_api_generate_body', $body );
497
+        $body = apply_filters('autoptimize_ccss_cron_api_generate_body', $body);
498 498
 
499 499
         // Body must be json and log it.
500
-        $body = json_encode( $body );
501
-        autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: POST generate request body is ' . $body, 3 );
500
+        $body = json_encode($body);
501
+        autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: POST generate request body is '.$body, 3);
502 502
 
503 503
         // Prepare the request.
504
-        $url  = esc_url_raw( AO_CCSS_API . 'generate?aover=' . AO_CCSS_VER );
504
+        $url  = esc_url_raw(AO_CCSS_API.'generate?aover='.AO_CCSS_VER);
505 505
         $args = array(
506 506
             'headers' => array(
507
-                'User-Agent'    => 'Autoptimize v' . AO_CCSS_VER,
507
+                'User-Agent'    => 'Autoptimize v'.AO_CCSS_VER,
508 508
                 'Content-type'  => 'application/json; charset=utf-8',
509
-                'Authorization' => 'JWT ' . $key,
509
+                'Authorization' => 'JWT '.$key,
510 510
                 'Connection'    => 'close',
511 511
             ),
512 512
             'body'    => $body,
513 513
         );
514 514
 
515 515
         // Dispatch the request and store its response code.
516
-        $req  = wp_safe_remote_post( $url, $args );
517
-        $code = wp_remote_retrieve_response_code( $req );
518
-        $body = json_decode( wp_remote_retrieve_body( $req ), true );
516
+        $req  = wp_safe_remote_post($url, $args);
517
+        $code = wp_remote_retrieve_response_code($req);
518
+        $body = json_decode(wp_remote_retrieve_body($req), true);
519 519
 
520
-        if ( $debug && $dcode ) {
520
+        if ($debug && $dcode) {
521 521
             // If queue debug is active, change response code.
522 522
             $code = $dcode;
523 523
         }
524 524
 
525
-        if ( 200 == $code ) {
525
+        if (200 == $code) {
526 526
             // Response code is OK.
527 527
             // Workaround criticalcss.com non-RESTful reponses.
528
-            if ( 'JOB_QUEUED' == $body['job']['status'] || 'JOB_ONGOING' == $body['job']['status'] || 'STATUS_JOB_BAD' == $body['job']['status'] ) {
528
+            if ('JOB_QUEUED' == $body['job']['status'] || 'JOB_ONGOING' == $body['job']['status'] || 'STATUS_JOB_BAD' == $body['job']['status']) {
529 529
                 // Log successful and return encoded request body.
530
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: POST generate request for path <' . $src_url . '> replied successfully', 3 );
530
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: POST generate request for path <'.$src_url.'> replied successfully', 3);
531 531
 
532 532
                 // This code also means the key is valid, so cache key status for 24h if not already cached.
533
-                if ( ( ! $key_status || 2 != $key_status ) && $key ) {
534
-                    update_option( 'autoptimize_ccss_keyst', 2 );
535
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: API key is valid, updating key status', 3 );
533
+                if ((!$key_status || 2 != $key_status) && $key) {
534
+                    update_option('autoptimize_ccss_keyst', 2);
535
+                    autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: API key is valid, updating key status', 3);
536 536
                 }
537 537
 
538 538
                 // Return the request body.
539 539
                 return $body;
540 540
             } else {
541 541
                 // Log successful requests with invalid reponses.
542
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: POST generate request for path <' . $src_url . '> replied with code <' . $code . '> and an UNKNOWN error condition, body follows...', 2 );
543
-                autoptimizeCriticalCSSCore::ao_ccss_log( print_r( $body, true ), 2 );
542
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: POST generate request for path <'.$src_url.'> replied with code <'.$code.'> and an UNKNOWN error condition, body follows...', 2);
543
+                autoptimizeCriticalCSSCore::ao_ccss_log(print_r($body, true), 2);
544 544
                 return $body;
545 545
             }
546 546
         } else {
547 547
             // Response code is anything else.
548 548
             // Log failed request with a valid response code and return body.
549
-            if ( $code ) {
550
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: POST generate request for path <' . $src_url . '> replied with error code <' . $code . '>, body follows...', 2 );
551
-                autoptimizeCriticalCSSCore::ao_ccss_log( print_r( $body, true ), 2 );
549
+            if ($code) {
550
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: POST generate request for path <'.$src_url.'> replied with error code <'.$code.'>, body follows...', 2);
551
+                autoptimizeCriticalCSSCore::ao_ccss_log(print_r($body, true), 2);
552 552
 
553
-                if ( 401 == $code ) {
553
+                if (401 == $code) {
554 554
                     // If request is unauthorized, also clear key status.
555
-                    update_option( 'autoptimize_ccss_keyst', 1 );
556
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: API key is invalid, updating key status', 3 );
555
+                    update_option('autoptimize_ccss_keyst', 1);
556
+                    autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: API key is invalid, updating key status', 3);
557 557
                 }
558 558
 
559 559
                 // Return the request body.
560 560
                 return $body;
561 561
             } else {
562 562
                 // Log failed request with no response and return false.
563
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: POST generate request for path <' . $src_url . '> has no response, this could be a service timeout', 2 );
564
-                if ( is_wp_error( $req ) ) {
565
-                    autoptimizeCriticalCSSCore::ao_ccss_log( $req->get_error_message(), 2 );
563
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: POST generate request for path <'.$src_url.'> has no response, this could be a service timeout', 2);
564
+                if (is_wp_error($req)) {
565
+                    autoptimizeCriticalCSSCore::ao_ccss_log($req->get_error_message(), 2);
566 566
                 }
567 567
 
568 568
                 return false;
@@ -570,76 +570,76 @@  discard block
 block discarded – undo
570 570
         }
571 571
     }
572 572
 
573
-    public function ao_ccss_api_results( $jobid, $debug, $dcode ) {
573
+    public function ao_ccss_api_results($jobid, $debug, $dcode) {
574 574
         // GET jobs from criticalcss.com and return responses
575 575
         // Get key.
576 576
         global $ao_ccss_key;
577 577
         $key = $ao_ccss_key;
578 578
 
579 579
         // Prepare the request.
580
-        $url  = AO_CCSS_API . 'results?resultId=' . $jobid;
580
+        $url  = AO_CCSS_API.'results?resultId='.$jobid;
581 581
         $args = array(
582 582
             'headers' => array(
583
-                'User-Agent'    => 'Autoptimize CriticalCSS Power-Up v' . AO_CCSS_VER,
584
-                'Authorization' => 'JWT ' . $key,
583
+                'User-Agent'    => 'Autoptimize CriticalCSS Power-Up v'.AO_CCSS_VER,
584
+                'Authorization' => 'JWT '.$key,
585 585
                 'Connection'    => 'close',
586 586
             ),
587 587
         );
588 588
 
589 589
         // Dispatch the request and store its response code.
590
-        $req  = wp_safe_remote_get( $url, $args );
591
-        $code = wp_remote_retrieve_response_code( $req );
592
-        $body = json_decode( wp_remote_retrieve_body( $req ), true );
590
+        $req  = wp_safe_remote_get($url, $args);
591
+        $code = wp_remote_retrieve_response_code($req);
592
+        $body = json_decode(wp_remote_retrieve_body($req), true);
593 593
 
594
-        if ( $debug && $dcode ) {
594
+        if ($debug && $dcode) {
595 595
             // If queue debug is active, change response code.
596 596
             $code = $dcode;
597 597
         }
598 598
 
599
-        if ( 200 == $code ) {
599
+        if (200 == $code) {
600 600
             // Response code is OK.
601
-            if ( is_array( $body ) && ( array_key_exists( 'status', $body ) || array_key_exists( 'job', $body ) ) && ( 'JOB_QUEUED' == $body['status'] || 'JOB_ONGOING' == $body['status'] || 'JOB_DONE' == $body['status'] || 'JOB_FAILED' == $body['status'] || 'JOB_UNKNOWN' == $body['status'] || 'STATUS_JOB_BAD' == $body['job']['status'] ) ) {
601
+            if (is_array($body) && (array_key_exists('status', $body) || array_key_exists('job', $body)) && ('JOB_QUEUED' == $body['status'] || 'JOB_ONGOING' == $body['status'] || 'JOB_DONE' == $body['status'] || 'JOB_FAILED' == $body['status'] || 'JOB_UNKNOWN' == $body['status'] || 'STATUS_JOB_BAD' == $body['job']['status'])) {
602 602
                 // Workaround criticalcss.com non-RESTful reponses
603 603
                 // Log successful and return encoded request body.
604
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: GET results request for remote job id <' . $jobid . '> replied successfully', 3 );
604
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: GET results request for remote job id <'.$jobid.'> replied successfully', 3);
605 605
                 return $body;
606
-            } elseif ( is_array( $body ) && ( array_key_exists( 'error', $body ) && 'This css no longer exists. Please re-generate it.' == $body['error'] ) ) {
606
+            } elseif (is_array($body) && (array_key_exists('error', $body) && 'This css no longer exists. Please re-generate it.' == $body['error'])) {
607 607
                 // Handle no CSS reply
608 608
                 // Log no CSS error and return encoded request body.
609
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: GET results request for remote job id <' . $jobid . '> replied successfully but the CSS for it does not exist anymore', 3 );
609
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: GET results request for remote job id <'.$jobid.'> replied successfully but the CSS for it does not exist anymore', 3);
610 610
                 return $body;
611 611
             } else {
612 612
                 // Log failed request and return false.
613
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: GET results request for remote job id <' . $jobid . '> replied with code <' . $code . '> and an UNKNOWN error condition, body follows...', 2 );
614
-                autoptimizeCriticalCSSCore::ao_ccss_log( print_r( $body, true ), 2 );
613
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: GET results request for remote job id <'.$jobid.'> replied with code <'.$code.'> and an UNKNOWN error condition, body follows...', 2);
614
+                autoptimizeCriticalCSSCore::ao_ccss_log(print_r($body, true), 2);
615 615
                 return false;
616 616
             }
617 617
         } else {
618 618
             // Response code is anything else
619 619
             // Log failed request with a valid response code and return body.
620
-            if ( $code ) {
621
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: GET results request for remote job id <' . $jobid . '> replied with error code <' . $code . '>, body follows...', 2 );
622
-                autoptimizeCriticalCSSCore::ao_ccss_log( print_r( $body, true ), 2 );
623
-                if ( 401 == $code ) {
620
+            if ($code) {
621
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: GET results request for remote job id <'.$jobid.'> replied with error code <'.$code.'>, body follows...', 2);
622
+                autoptimizeCriticalCSSCore::ao_ccss_log(print_r($body, true), 2);
623
+                if (401 == $code) {
624 624
                     // If request is unauthorized, also clear key status.
625
-                    update_option( 'autoptimize_ccss_keyst', 1 );
626
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: API key is invalid, updating key status', 3 );
625
+                    update_option('autoptimize_ccss_keyst', 1);
626
+                    autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: API key is invalid, updating key status', 3);
627 627
                 }
628 628
 
629 629
                 // Return the request body.
630 630
                 return $body;
631 631
             } else {
632 632
                 // Log failed request with no response and return false.
633
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'criticalcss.com: GET results request for remote job id <' . $jobid . '> has no response, this could be a service timeout', 2 );
633
+                autoptimizeCriticalCSSCore::ao_ccss_log('criticalcss.com: GET results request for remote job id <'.$jobid.'> has no response, this could be a service timeout', 2);
634 634
                 return false;
635 635
             }
636 636
         }
637 637
     }
638 638
 
639
-    public function ao_ccss_save_file( $ccss, $target, $review ) {
639
+    public function ao_ccss_save_file($ccss, $target, $review) {
640 640
         // Save critical CSS into the filesystem and return its filename
641 641
         // Prepare review mark.
642
-        if ( $review ) {
642
+        if ($review) {
643 643
             $rmark = '_R';
644 644
         } else {
645 645
             $rmark = '';
@@ -649,21 +649,21 @@  discard block
 block discarded – undo
649 649
         $filename = false;
650 650
         $content  = $ccss;
651 651
 
652
-        if ( autoptimizeCriticalCSSCore::ao_ccss_check_contents( $content ) ) {
652
+        if (autoptimizeCriticalCSSCore::ao_ccss_check_contents($content)) {
653 653
             // Sanitize content, set filename and try to save file.
654
-            $file     = AO_CCSS_DIR . 'ccss_' . md5( $ccss . $target[1] ) . $rmark . '.css';
655
-            $status   = file_put_contents( $file, $content, LOCK_EX );
656
-            $filename = pathinfo( $file, PATHINFO_BASENAME );
657
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Critical CSS file for the rule <' . $target[0] . '|' . $target[1] . '> was saved as <' . $filename . '>, size in bytes is <' . $status . '>', 3 );
654
+            $file     = AO_CCSS_DIR.'ccss_'.md5($ccss.$target[1]).$rmark.'.css';
655
+            $status   = file_put_contents($file, $content, LOCK_EX);
656
+            $filename = pathinfo($file, PATHINFO_BASENAME);
657
+            autoptimizeCriticalCSSCore::ao_ccss_log('Critical CSS file for the rule <'.$target[0].'|'.$target[1].'> was saved as <'.$filename.'>, size in bytes is <'.$status.'>', 3);
658 658
 
659
-            if ( ! $status ) {
659
+            if (!$status) {
660 660
                 // If file has not been saved, reset filename.
661
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Critical CSS file <' . $filename . '> could not be not saved', 2 );
661
+                autoptimizeCriticalCSSCore::ao_ccss_log('Critical CSS file <'.$filename.'> could not be not saved', 2);
662 662
                 $filename = false;
663 663
                 return $filename;
664 664
             }
665 665
         } else {
666
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Critical CSS received did not pass content check', 2 );
666
+            autoptimizeCriticalCSSCore::ao_ccss_log('Critical CSS received did not pass content check', 2);
667 667
             return $filename;
668 668
         }
669 669
 
@@ -673,15 +673,15 @@  discard block
 block discarded – undo
673 673
         global $ao_ccss_rules;
674 674
 
675 675
         // Prepare rule variables.
676
-        $srule   = $ao_ccss_rules[ $target[0] ][ $target[1] ];
676
+        $srule   = $ao_ccss_rules[$target[0]][$target[1]];
677 677
         $oldfile = $srule['file'];
678 678
 
679
-        if ( $oldfile && $oldfile !== $filename ) {
680
-            $delfile = AO_CCSS_DIR . $oldfile;
681
-            if ( file_exists( $delfile ) ) {
682
-                $unlinkst = unlink( $delfile );
683
-                if ( $unlinkst ) {
684
-                    autoptimizeCriticalCSSCore::ao_ccss_log( 'A previous critical CSS file <' . $oldfile . '> was removed for the rule <' . $target[0] . '|' . $target[1] . '>', 3 );
679
+        if ($oldfile && $oldfile !== $filename) {
680
+            $delfile = AO_CCSS_DIR.$oldfile;
681
+            if (file_exists($delfile)) {
682
+                $unlinkst = unlink($delfile);
683
+                if ($unlinkst) {
684
+                    autoptimizeCriticalCSSCore::ao_ccss_log('A previous critical CSS file <'.$oldfile.'> was removed for the rule <'.$target[0].'|'.$target[1].'>', 3);
685 685
                 }
686 686
             }
687 687
         }
@@ -690,29 +690,29 @@  discard block
 block discarded – undo
690 690
         return $filename;
691 691
     }
692 692
 
693
-    public function ao_ccss_rule_update( $ljid, $srule, $file, $hash ) {
693
+    public function ao_ccss_rule_update($ljid, $srule, $file, $hash) {
694 694
         // Update or create a rule
695 695
         // Attach required arrays.
696 696
         global $ao_ccss_rules;
697 697
 
698 698
         // Prepare rule variables.
699
-        $trule  = explode( '|', $srule );
700
-        $rule   = $ao_ccss_rules[ $trule[0] ][ $trule[1] ];
699
+        $trule  = explode('|', $srule);
700
+        $rule   = $ao_ccss_rules[$trule[0]][$trule[1]];
701 701
         $action = false;
702 702
         $rtype  = '';
703 703
 
704
-        if ( 0 === $rule['hash'] && 0 !== $rule['file'] ) {
704
+        if (0 === $rule['hash'] && 0 !== $rule['file']) {
705 705
             // manual rule, don't ever overwrite.
706 706
             $action = 'NOT UPDATED';
707 707
             $rtype  = 'MANUAL';
708
-        } elseif ( 0 === $rule['hash'] && 0 === $rule['file'] ) {
708
+        } elseif (0 === $rule['hash'] && 0 === $rule['file']) {
709 709
             // If this is an user created AUTO rule with no hash and file yet, update its hash and filename
710 710
             // Set rule hash, file and action flag.
711 711
             $rule['hash'] = $hash;
712 712
             $rule['file'] = $file;
713 713
             $action       = 'UPDATED';
714 714
             $rtype        = 'AUTO';
715
-        } elseif ( 0 !== $rule['hash'] && ctype_alnum( $rule['hash'] ) ) {
715
+        } elseif (0 !== $rule['hash'] && ctype_alnum($rule['hash'])) {
716 716
             // If this is an genuine AUTO rule, update its hash and filename
717 717
             // Set rule hash, file and action flag.
718 718
             $rule['hash'] = $hash;
@@ -722,7 +722,7 @@  discard block
 block discarded – undo
722 722
         } else {
723 723
             // If rule doesn't exist, create an AUTO rule
724 724
             // AUTO rules were only for types, but will now also work for paths.
725
-            if ( 'types' == $trule[0] || 'paths' == $trule[0] ) {
725
+            if ('types' == $trule[0] || 'paths' == $trule[0]) {
726 726
                 // Set rule hash and file and action flag.
727 727
                 $rule['hash'] = $hash;
728 728
                 $rule['file'] = $file;
@@ -730,47 +730,47 @@  discard block
 block discarded – undo
730 730
                 $rtype        = 'AUTO';
731 731
             } else {
732 732
                 // Log that no rule was created.
733
-                autoptimizeCriticalCSSCore::ao_ccss_log( 'Exception, no AUTO rule created', 3 );
733
+                autoptimizeCriticalCSSCore::ao_ccss_log('Exception, no AUTO rule created', 3);
734 734
             }
735 735
         }
736 736
 
737
-        if ( $action ) {
737
+        if ($action) {
738 738
             // If a rule creation/update is required, persist updated rules object.
739
-            $ao_ccss_rules[ $trule[0] ][ $trule[1] ] = $rule;
740
-            $ao_ccss_rules_raw                       = json_encode( $ao_ccss_rules );
741
-            update_option( 'autoptimize_ccss_rules', $ao_ccss_rules_raw );
742
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Target rule <' . $srule . '> of type <' . $rtype . '> was ' . $action . ' for job id <' . $ljid . '>', 3 );
739
+            $ao_ccss_rules[$trule[0]][$trule[1]] = $rule;
740
+            $ao_ccss_rules_raw                       = json_encode($ao_ccss_rules);
741
+            update_option('autoptimize_ccss_rules', $ao_ccss_rules_raw);
742
+            autoptimizeCriticalCSSCore::ao_ccss_log('Target rule <'.$srule.'> of type <'.$rtype.'> was '.$action.' for job id <'.$ljid.'>', 3);
743 743
         } else {
744
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'No rule action required', 3 );
744
+            autoptimizeCriticalCSSCore::ao_ccss_log('No rule action required', 3);
745 745
         }
746 746
     }
747 747
 
748
-    function ao_ccss_finclude( $finclude_raw ) {
748
+    function ao_ccss_finclude($finclude_raw) {
749 749
         // Prepare forceInclude object.
750
-        if ( ! empty( $finclude_raw ) ) {
750
+        if (!empty($finclude_raw)) {
751 751
             // If there are any content
752 752
             // Convert raw string into arra and initialize the returning object.
753
-            $fincludes = explode( ',', $finclude_raw );
753
+            $fincludes = explode(',', $finclude_raw);
754 754
             $finclude  = array();
755 755
 
756 756
             // Interacts over every rule.
757 757
             $i = 0;
758
-            foreach ( $fincludes as $include ) {
758
+            foreach ($fincludes as $include) {
759 759
                 // Trim leading and trailing whitespaces.
760
-                $include = trim( $include );
760
+                $include = trim($include);
761 761
 
762
-                if ( substr( $include, 0, 2 ) === '//' ) {
762
+                if (substr($include, 0, 2) === '//') {
763 763
                     // Regex rule
764 764
                     // Format value as required.
765
-                    $include = str_replace( '//', '/', $include );
766
-                    $include = $include . '/i';
765
+                    $include = str_replace('//', '/', $include);
766
+                    $include = $include.'/i';
767 767
 
768 768
                     // Store regex object.
769
-                    $finclude[ $i ]['type']  = 'RegExp';
770
-                    $finclude[ $i ]['value'] = $include;
769
+                    $finclude[$i]['type']  = 'RegExp';
770
+                    $finclude[$i]['value'] = $include;
771 771
                 } else {
772 772
                     // Simple value rule.
773
-                    $finclude[ $i ]['value'] = $include;
773
+                    $finclude[$i]['value'] = $include;
774 774
                 }
775 775
 
776 776
                 $i++;
@@ -787,54 +787,54 @@  discard block
 block discarded – undo
787 787
     public function ao_ccss_cleaning() {
788 788
         // Perform plugin maintenance
789 789
         // Truncate log file >= 1MB .
790
-        if ( file_exists( AO_CCSS_LOG ) ) {
791
-            if ( filesize( AO_CCSS_LOG ) >= 1048576 ) {
792
-                $logfile = fopen( AO_CCSS_LOG, 'w' );
793
-                fclose( $logfile );
790
+        if (file_exists(AO_CCSS_LOG)) {
791
+            if (filesize(AO_CCSS_LOG) >= 1048576) {
792
+                $logfile = fopen(AO_CCSS_LOG, 'w');
793
+                fclose($logfile);
794 794
             }
795 795
         }
796 796
 
797 797
         // Remove lock file.
798
-        if ( file_exists( AO_CCSS_LOCK ) ) {
799
-            unlink( AO_CCSS_LOCK );
798
+        if (file_exists(AO_CCSS_LOCK)) {
799
+            unlink(AO_CCSS_LOCK);
800 800
         }
801 801
 
802 802
         // Make sure queue processing is scheduled, recreate if not.
803
-        if ( ! wp_next_scheduled( 'ao_ccss_queue' ) ) {
804
-            wp_schedule_event( time(), apply_filters( 'ao_ccss_queue_schedule', 'ao_ccss' ), 'ao_ccss_queue' );
803
+        if (!wp_next_scheduled('ao_ccss_queue')) {
804
+            wp_schedule_event(time(), apply_filters('ao_ccss_queue_schedule', 'ao_ccss'), 'ao_ccss_queue');
805 805
         }
806 806
 
807 807
         // Queue cleaning.
808 808
         global $ao_ccss_queue;
809 809
         $queue_purge_threshold = 100;
810
-        $queue_purge_age       = 24 * 60 * 60;
811
-        $queue_length          = count( $ao_ccss_queue );
812
-        $timestamp_yesterday   = microtime( true ) - $queue_purge_age;
810
+        $queue_purge_age       = 24*60*60;
811
+        $queue_length          = count($ao_ccss_queue);
812
+        $timestamp_yesterday   = microtime(true) - $queue_purge_age;
813 813
         $remove_old_new        = false;
814 814
         $queue_altered         = false;
815 815
 
816
-        if ( $queue_length > $queue_purge_threshold ) {
816
+        if ($queue_length > $queue_purge_threshold) {
817 817
             $remove_old_new = true;
818 818
         }
819 819
 
820
-        foreach ( $ao_ccss_queue as $path => $job ) {
821
-            if ( ( $remove_old_new && 'NEW' == $job['jqstat'] && $job['jctime'] < $timestamp_yesterday ) || in_array( $job['jqstat'], array( 'JOB_FAILED', 'STATUS_JOB_BAD', 'NO_CSS', 'NO_RESPONSE' ) ) ) {
822
-                unset( $ao_ccss_queue[ $path ] );
820
+        foreach ($ao_ccss_queue as $path => $job) {
821
+            if (($remove_old_new && 'NEW' == $job['jqstat'] && $job['jctime'] < $timestamp_yesterday) || in_array($job['jqstat'], array('JOB_FAILED', 'STATUS_JOB_BAD', 'NO_CSS', 'NO_RESPONSE'))) {
822
+                unset($ao_ccss_queue[$path]);
823 823
                 $queue_altered = true;
824 824
             }
825 825
         }
826 826
 
827 827
         // save queue to options!
828
-        if ( $queue_altered ) {
829
-            $ao_ccss_queue_raw = json_encode( $ao_ccss_queue );
830
-            update_option( 'autoptimize_ccss_queue', $ao_ccss_queue_raw, false );
831
-            autoptimizeCriticalCSSCore::ao_ccss_log( 'Queue cleaning done.', 3 );
828
+        if ($queue_altered) {
829
+            $ao_ccss_queue_raw = json_encode($ao_ccss_queue);
830
+            update_option('autoptimize_ccss_queue', $ao_ccss_queue_raw, false);
831
+            autoptimizeCriticalCSSCore::ao_ccss_log('Queue cleaning done.', 3);
832 832
         }
833 833
 
834 834
         // re-check key if invalid.
835 835
         global $ao_ccss_keyst;
836
-        if ( 1 == $ao_ccss_keyst ) {
837
-            $this->ao_ccss_api_generate( '', '', '' );
836
+        if (1 == $ao_ccss_keyst) {
837
+            $this->ao_ccss_api_generate('', '', '');
838 838
         }
839 839
     }
840 840
 }
Please login to merge, or discard this patch.
autoptimize.php 1 patch
Spacing   +33 added lines, -33 removed lines patch added patch discarded remove patch
@@ -17,66 +17,66 @@  discard block
 block discarded – undo
17 17
  */
18 18
 
19 19
 
20
-if ( ! defined( 'ABSPATH' ) ) {
20
+if (!defined('ABSPATH')) {
21 21
     exit;
22 22
 }
23 23
 
24
-define( 'AUTOPTIMIZE_PLUGIN_VERSION', '2.8.0' );
24
+define('AUTOPTIMIZE_PLUGIN_VERSION', '2.8.0');
25 25
 
26 26
 // plugin_dir_path() returns the trailing slash!
27
-define( 'AUTOPTIMIZE_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
28
-define( 'AUTOPTIMIZE_PLUGIN_FILE', __FILE__ );
27
+define('AUTOPTIMIZE_PLUGIN_DIR', plugin_dir_path(__FILE__));
28
+define('AUTOPTIMIZE_PLUGIN_FILE', __FILE__);
29 29
 
30 30
 // Bail early if attempting to run on non-supported php versions.
31
-if ( version_compare( PHP_VERSION, '5.6', '<' ) ) {
31
+if (version_compare(PHP_VERSION, '5.6', '<')) {
32 32
     function autoptimize_incompatible_admin_notice() {
33
-        echo '<div class="error"><p>' . __( 'Autoptimize requires PHP 5.6 (or higher) to function properly. Please upgrade PHP. The Plugin has been auto-deactivated.', 'autoptimize' ) . '</p></div>';
34
-        if ( isset( $_GET['activate'] ) ) {
35
-            unset( $_GET['activate'] );
33
+        echo '<div class="error"><p>'.__('Autoptimize requires PHP 5.6 (or higher) to function properly. Please upgrade PHP. The Plugin has been auto-deactivated.', 'autoptimize').'</p></div>';
34
+        if (isset($_GET['activate'])) {
35
+            unset($_GET['activate']);
36 36
         }
37 37
     }
38 38
     function autoptimize_deactivate_self() {
39
-        deactivate_plugins( plugin_basename( AUTOPTIMIZE_PLUGIN_FILE ) );
39
+        deactivate_plugins(plugin_basename(AUTOPTIMIZE_PLUGIN_FILE));
40 40
     }
41
-    add_action( 'admin_notices', 'autoptimize_incompatible_admin_notice' );
42
-    add_action( 'admin_init', 'autoptimize_deactivate_self' );
41
+    add_action('admin_notices', 'autoptimize_incompatible_admin_notice');
42
+    add_action('admin_init', 'autoptimize_deactivate_self');
43 43
     return;
44 44
 }
45 45
 
46
-function autoptimize_autoload( $class_name ) {
47
-    if ( in_array( $class_name, array( 'Minify_HTML', 'JSMin' ) ) ) {
48
-        $file     = strtolower( $class_name );
49
-        $file     = str_replace( '_', '-', $file );
50
-        $path     = dirname( __FILE__ ) . '/classes/external/php/';
51
-        $filepath = $path . $file . '.php';
52
-    } elseif ( false !== strpos( $class_name, 'Autoptimize\\tubalmartin\\CssMin' ) ) {
53
-        $file     = str_replace( 'Autoptimize\\tubalmartin\\CssMin\\', '', $class_name );
54
-        $path     = dirname( __FILE__ ) . '/classes/external/php/yui-php-cssmin-bundled/';
55
-        $filepath = $path . $file . '.php';
56
-    } elseif ( 'autoptimize' === substr( $class_name, 0, 11 ) ) {
46
+function autoptimize_autoload($class_name) {
47
+    if (in_array($class_name, array('Minify_HTML', 'JSMin'))) {
48
+        $file     = strtolower($class_name);
49
+        $file     = str_replace('_', '-', $file);
50
+        $path     = dirname(__FILE__).'/classes/external/php/';
51
+        $filepath = $path.$file.'.php';
52
+    } elseif (false !== strpos($class_name, 'Autoptimize\\tubalmartin\\CssMin')) {
53
+        $file     = str_replace('Autoptimize\\tubalmartin\\CssMin\\', '', $class_name);
54
+        $path     = dirname(__FILE__).'/classes/external/php/yui-php-cssmin-bundled/';
55
+        $filepath = $path.$file.'.php';
56
+    } elseif ('autoptimize' === substr($class_name, 0, 11)) {
57 57
         // One of our "old" classes.
58 58
         $file     = $class_name;
59
-        $path     = dirname( __FILE__ ) . '/classes/';
60
-        $filepath = $path . $file . '.php';
61
-    } elseif ( 'PAnD' === $class_name ) {
59
+        $path     = dirname(__FILE__).'/classes/';
60
+        $filepath = $path.$file.'.php';
61
+    } elseif ('PAnD' === $class_name) {
62 62
         $file     = 'persist-admin-notices-dismissal';
63
-        $path     = dirname( __FILE__ ) . '/classes/external/php/persist-admin-notices-dismissal/';
64
-        $filepath = $path . $file . '.php';
63
+        $path     = dirname(__FILE__).'/classes/external/php/persist-admin-notices-dismissal/';
64
+        $filepath = $path.$file.'.php';
65 65
     }
66 66
 
67 67
     // If we didn't match one of our rules, bail!
68
-    if ( ! isset( $filepath ) ) {
68
+    if (!isset($filepath)) {
69 69
         return;
70 70
     }
71 71
 
72 72
     require $filepath;
73 73
 }
74 74
 
75
-spl_autoload_register( 'autoptimize_autoload' );
75
+spl_autoload_register('autoptimize_autoload');
76 76
 
77 77
 // Load WP CLI command(s) on demand.
78
-if ( defined( 'WP_CLI' ) && WP_CLI ) {
79
-    require AUTOPTIMIZE_PLUGIN_DIR . 'classes/autoptimizeCLI.php';
78
+if (defined('WP_CLI') && WP_CLI) {
79
+    require AUTOPTIMIZE_PLUGIN_DIR.'classes/autoptimizeCLI.php';
80 80
 }
81 81
 
82 82
 /**
@@ -87,8 +87,8 @@  discard block
 block discarded – undo
87 87
 function autoptimize() {
88 88
     static $plugin = null;
89 89
 
90
-    if ( null === $plugin ) {
91
-        $plugin = new autoptimizeMain( AUTOPTIMIZE_PLUGIN_VERSION, AUTOPTIMIZE_PLUGIN_FILE );
90
+    if (null === $plugin) {
91
+        $plugin = new autoptimizeMain(AUTOPTIMIZE_PLUGIN_VERSION, AUTOPTIMIZE_PLUGIN_FILE);
92 92
     }
93 93
 
94 94
     return $plugin;
Please login to merge, or discard this patch.
tests/test-ao.php 1 patch
Spacing   +461 added lines, -461 removed lines patch added patch discarded remove patch
@@ -10,17 +10,17 @@  discard block
 block discarded – undo
10 10
     protected $ao;
11 11
 
12 12
     protected static $flexible_url_parts_js = [
13
-        'default'          => 'wp-content/cache/autoptimize/js/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
14
-        'custom'           => 'wp-content/c/ao/js/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
15
-        'multisite'        => 'wp-content/cache/autoptimize/1/js/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
16
-        'multisite_custom' => 'wp-content/c/ao/1/js/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
13
+        'default'          => 'wp-content/cache/autoptimize/js/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
14
+        'custom'           => 'wp-content/c/ao/js/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
15
+        'multisite'        => 'wp-content/cache/autoptimize/1/js/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
16
+        'multisite_custom' => 'wp-content/c/ao/1/js/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
17 17
     ];
18 18
 
19 19
     protected static $flexible_url_parts_css = [
20
-        'default'          => 'wp-content/cache/autoptimize/css/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
21
-        'custom'           => 'wp-content/c/ao/css/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
22
-        'multisite'        => 'wp-content/cache/autoptimize/1/css/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
23
-        'multisite_custom' => 'wp-content/c/ao/1/css/' . AUTOPTIMIZE_CACHEFILE_PREFIX,
20
+        'default'          => 'wp-content/cache/autoptimize/css/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
21
+        'custom'           => 'wp-content/c/ao/css/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
22
+        'multisite'        => 'wp-content/cache/autoptimize/1/css/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
23
+        'multisite_custom' => 'wp-content/c/ao/1/css/'.AUTOPTIMIZE_CACHEFILE_PREFIX,
24 24
     ];
25 25
 
26 26
     protected function getAoStylesDefaultOptions()
@@ -28,17 +28,17 @@  discard block
 block discarded – undo
28 28
         $conf = autoptimizeConfig::instance();
29 29
 
30 30
         return [
31
-            'aggregate'       => $conf->get( 'autoptimize_css_aggregate' ),
32
-            'justhead'        => $conf->get( 'autoptimize_css_justhead' ),
33
-            'datauris'        => $conf->get( 'autoptimize_css_datauris' ),
34
-            'defer'           => $conf->get( 'autoptimize_css_defer' ),
35
-            'defer_inline'    => $conf->get( 'autoptimize_css_defer_inline' ),
36
-            'inline'          => $conf->get( 'autoptimize_css_inline' ),
37
-            'css_exclude'     => $conf->get( 'autoptimize_css_exclude' ),
38
-            'cdn_url'         => $conf->get( 'autoptimize_cdn_url' ),
39
-            'include_inline'  => $conf->get( 'autoptimize_css_include_inline' ),
40
-            'nogooglefont'    => $conf->get( 'autoptimize_css_nogooglefont' ),
41
-            'minify_excluded' => $conf->get( 'autoptimize_minify_excluded' ),
31
+            'aggregate'       => $conf->get('autoptimize_css_aggregate'),
32
+            'justhead'        => $conf->get('autoptimize_css_justhead'),
33
+            'datauris'        => $conf->get('autoptimize_css_datauris'),
34
+            'defer'           => $conf->get('autoptimize_css_defer'),
35
+            'defer_inline'    => $conf->get('autoptimize_css_defer_inline'),
36
+            'inline'          => $conf->get('autoptimize_css_inline'),
37
+            'css_exclude'     => $conf->get('autoptimize_css_exclude'),
38
+            'cdn_url'         => $conf->get('autoptimize_cdn_url'),
39
+            'include_inline'  => $conf->get('autoptimize_css_include_inline'),
40
+            'nogooglefont'    => $conf->get('autoptimize_css_nogooglefont'),
41
+            'minify_excluded' => $conf->get('autoptimize_minify_excluded'),
42 42
         ];
43 43
     }
44 44
 
@@ -47,15 +47,15 @@  discard block
 block discarded – undo
47 47
         $conf = autoptimizeConfig::instance();
48 48
 
49 49
         return [
50
-            'aggregate'           => $conf->get( 'autoptimize_js_aggregate' ),
51
-            'defer_not_aggregate' => $conf->get( 'autoptimize_js_defer_not_aggregate' ),
52
-            'justhead'            => $conf->get( 'autoptimize_js_justhead' ),
53
-            'forcehead'           => $conf->get( 'autoptimize_js_forcehead' ),
54
-            'trycatch'            => $conf->get( 'autoptimize_js_trycatch' ),
55
-            'js_exclude'          => $conf->get( 'autoptimize_js_exclude' ),
56
-            'cdn_url'             => $conf->get( 'autoptimize_cdn_url' ),
57
-            'include_inline'      => $conf->get( 'autoptimize_js_include_inline' ),
58
-            'minify_excluded'     => $conf->get( 'autoptimize_minify_excluded' ),
50
+            'aggregate'           => $conf->get('autoptimize_js_aggregate'),
51
+            'defer_not_aggregate' => $conf->get('autoptimize_js_defer_not_aggregate'),
52
+            'justhead'            => $conf->get('autoptimize_js_justhead'),
53
+            'forcehead'           => $conf->get('autoptimize_js_forcehead'),
54
+            'trycatch'            => $conf->get('autoptimize_js_trycatch'),
55
+            'js_exclude'          => $conf->get('autoptimize_js_exclude'),
56
+            'cdn_url'             => $conf->get('autoptimize_cdn_url'),
57
+            'include_inline'      => $conf->get('autoptimize_js_include_inline'),
58
+            'minify_excluded'     => $conf->get('autoptimize_minify_excluded'),
59 59
         ];
60 60
     }
61 61
 
@@ -65,35 +65,35 @@  discard block
 block discarded – undo
65 65
     protected function get_urls()
66 66
     {
67 67
         static $site_url = null;
68
-        if ( null === $site_url ) {
68
+        if (null === $site_url) {
69 69
             $site_url = site_url();
70 70
         }
71 71
 
72 72
         static $cdn_url = null;
73
-        if ( null === $cdn_url ) {
74
-            $cdn_url = autoptimizeOptionWrapper::get_option( 'autoptimize_cdn_url' );
73
+        if (null === $cdn_url) {
74
+            $cdn_url = autoptimizeOptionWrapper::get_option('autoptimize_cdn_url');
75 75
         }
76 76
 
77 77
         static $imgopt_host = null;
78
-        if ( null === $imgopt_host ) {
78
+        if (null === $imgopt_host) {
79 79
             $optimizer   = new autoptimizeImages();
80
-            $imgopt_host = rtrim( $optimizer->get_imgopt_host(), '/' );
80
+            $imgopt_host = rtrim($optimizer->get_imgopt_host(), '/');
81 81
         }
82 82
 
83 83
         static $urls = [];
84 84
 
85
-        if ( empty( $urls ) ) {
85
+        if (empty($urls)) {
86 86
             $parts = autoptimizeUtils::get_ao_wp_site_url_parts();
87 87
             $urls  = [
88 88
                 'siteurl'    => $site_url,
89
-                'prsiteurl'  => '//' . str_replace( array( 'http://', 'https://' ), '', $site_url ),
90
-                'wwwsiteurl' => $parts['scheme'] . '://www.' . str_replace( 'www.', '', $parts['host'] ),
89
+                'prsiteurl'  => '//'.str_replace(array('http://', 'https://'), '', $site_url),
90
+                'wwwsiteurl' => $parts['scheme'].'://www.'.str_replace('www.', '', $parts['host']),
91 91
                 'cdnurl'     => $cdn_url,
92 92
                 'imgopthost' => $imgopt_host,
93 93
                 'subfolder'  => '',
94 94
             ];
95 95
 
96
-            if ( AO_TEST_SUBFOLDER_INSTALL ) {
96
+            if (AO_TEST_SUBFOLDER_INSTALL) {
97 97
                 $urls['subfolder'] = 'wordpress/';
98 98
             }
99 99
         }
@@ -106,7 +106,7 @@  discard block
 block discarded – undo
106 106
      */
107 107
     public function setUp()
108 108
     {
109
-        $this->ao = new autoptimizeMain( AUTOPTIMIZE_PLUGIN_VERSION, AUTOPTIMIZE_PLUGIN_FILE );
109
+        $this->ao = new autoptimizeMain(AUTOPTIMIZE_PLUGIN_VERSION, AUTOPTIMIZE_PLUGIN_FILE);
110 110
 
111 111
         parent::setUp();
112 112
     }
@@ -125,8 +125,8 @@  discard block
 block discarded – undo
125 125
             'autoptimize_filter_css_inlinesize',
126 126
             'autoptimize_filter_css_fonts_cdn',
127 127
         );
128
-        foreach ( $filter_tags as $filter_tag ) {
129
-            remove_all_filters( $filter_tag );
128
+        foreach ($filter_tags as $filter_tag) {
129
+            remove_all_filters($filter_tag);
130 130
         }
131 131
 
132 132
         parent::tearDown();
@@ -252,20 +252,20 @@  discard block
 block discarded – undo
252 252
     protected function get_test_markup_output()
253 253
     {
254 254
         $key = 'default';
255
-        if ( defined( 'CUSTOM_CONSTANTS_USED' ) && CUSTOM_CONSTANTS_USED ) {
255
+        if (defined('CUSTOM_CONSTANTS_USED') && CUSTOM_CONSTANTS_USED) {
256 256
             $key = 'custom';
257 257
         }
258 258
 
259
-        $csspart = self::$flexible_url_parts_css[ $key ];
260
-        $jspart  = self::$flexible_url_parts_js[ $key ];
259
+        $csspart = self::$flexible_url_parts_css[$key];
260
+        $jspart  = self::$flexible_url_parts_js[$key];
261 261
 
262 262
         $csshash = '863f587e89f100b0223ddccc0dabc57a';
263
-        if ( AO_TEST_SUBFOLDER_INSTALL ) {
263
+        if (AO_TEST_SUBFOLDER_INSTALL) {
264 264
             $csshash = '56398de576d59887e88e3011715250e0';
265 265
         }
266 266
 
267 267
         $urls      = $this->get_urls();
268
-            $siteurl   = $urls['siteurl'];
268
+            $siteurl = $urls['siteurl'];
269 269
         $cdnurl    = $urls['cdnurl'];
270 270
         $subfolder = $urls['subfolder'];
271 271
 
@@ -321,15 +321,15 @@  discard block
 block discarded – undo
321 321
     protected function get_test_markup_output_ms()
322 322
     {
323 323
         $key = 'multisite';
324
-        if ( defined( 'CUSTOM_CONSTANTS_USED' ) && CUSTOM_CONSTANTS_USED ) {
324
+        if (defined('CUSTOM_CONSTANTS_USED') && CUSTOM_CONSTANTS_USED) {
325 325
             $key = 'multisite_custom';
326 326
         }
327 327
 
328
-        $csspart = self::$flexible_url_parts_css[ $key ];
329
-        $jspart  = self::$flexible_url_parts_js[ $key ];
328
+        $csspart = self::$flexible_url_parts_css[$key];
329
+        $jspart  = self::$flexible_url_parts_js[$key];
330 330
 
331 331
         $csshash = '863f587e89f100b0223ddccc0dabc57a';
332
-        if ( AO_TEST_SUBFOLDER_INSTALL ) {
332
+        if (AO_TEST_SUBFOLDER_INSTALL) {
333 333
             $csshash = '56398de576d59887e88e3011715250e0';
334 334
         }
335 335
 
@@ -390,15 +390,15 @@  discard block
 block discarded – undo
390 390
     protected function get_test_markup_output_inline_defer()
391 391
     {
392 392
         $key = 'default';
393
-        if ( defined( 'CUSTOM_CONSTANTS_USED' ) && CUSTOM_CONSTANTS_USED ) {
393
+        if (defined('CUSTOM_CONSTANTS_USED') && CUSTOM_CONSTANTS_USED) {
394 394
             $key = 'custom';
395 395
         }
396 396
 
397
-        $csspart = self::$flexible_url_parts_css[ $key ];
398
-        $jspart  = self::$flexible_url_parts_js[ $key ];
397
+        $csspart = self::$flexible_url_parts_css[$key];
398
+        $jspart  = self::$flexible_url_parts_js[$key];
399 399
 
400 400
         $csshash = '863f587e89f100b0223ddccc0dabc57a';
401
-        if ( AO_TEST_SUBFOLDER_INSTALL ) {
401
+        if (AO_TEST_SUBFOLDER_INSTALL) {
402 402
             $csshash = '56398de576d59887e88e3011715250e0';
403 403
         }
404 404
 
@@ -459,15 +459,15 @@  discard block
 block discarded – undo
459 459
     protected function get_test_markup_output_inline_defer_ms()
460 460
     {
461 461
         $key = 'multisite';
462
-        if ( defined( 'CUSTOM_CONSTANTS_USED' ) && CUSTOM_CONSTANTS_USED ) {
462
+        if (defined('CUSTOM_CONSTANTS_USED') && CUSTOM_CONSTANTS_USED) {
463 463
             $key = 'multisite_custom';
464 464
         }
465 465
 
466
-        $csspart = self::$flexible_url_parts_css[ $key ];
467
-        $jspart  = self::$flexible_url_parts_js[ $key ];
466
+        $csspart = self::$flexible_url_parts_css[$key];
467
+        $jspart  = self::$flexible_url_parts_js[$key];
468 468
 
469 469
         $csshash = '863f587e89f100b0223ddccc0dabc57a';
470
-        if ( AO_TEST_SUBFOLDER_INSTALL ) {
470
+        if (AO_TEST_SUBFOLDER_INSTALL) {
471 471
             $csshash = '56398de576d59887e88e3011715250e0';
472 472
         }
473 473
 
@@ -528,11 +528,11 @@  discard block
 block discarded – undo
528 528
     /**
529 529
      * @dataProvider provider_test_rewrite_markup_with_cdn
530 530
      */
531
-    function test_rewrite_markup_with_cdn( $input, $expected )
531
+    function test_rewrite_markup_with_cdn($input, $expected)
532 532
     {
533
-        $actual = $this->ao->end_buffering( $input );
533
+        $actual = $this->ao->end_buffering($input);
534 534
 
535
-        $this->assertEquals( $expected, $actual );
535
+        $this->assertEquals($expected, $actual);
536 536
     }
537 537
 
538 538
     public function provider_test_rewrite_markup_with_cdn()
@@ -544,7 +544,7 @@  discard block
 block discarded – undo
544 544
                 $this->get_test_markup(),
545 545
                 // Expected output.
546 546
                 // TODO/FIXME: This seemed like the fastest way to get MS crude test to pass...
547
-                ( is_multisite() ? $this->get_test_markup_output_ms() : $this->get_test_markup_output() ),
547
+                (is_multisite() ? $this->get_test_markup_output_ms() : $this->get_test_markup_output()),
548 548
             ),
549 549
 
550 550
         );
@@ -604,12 +604,12 @@  discard block
 block discarded – undo
604 604
 }
605 605
 CSS;
606 606
 
607
-        $instance = new autoptimizeStyles( $css_in );
608
-        $instance->setOption( 'cdn_url', $cdnurl );
607
+        $instance = new autoptimizeStyles($css_in);
608
+        $instance->setOption('cdn_url', $cdnurl);
609 609
 
610
-        $css_actual = $instance->rewrite_assets( $css_in );
610
+        $css_actual = $instance->rewrite_assets($css_in);
611 611
 
612
-        $this->assertEquals( $css_expected, $css_actual );
612
+        $this->assertEquals($css_expected, $css_actual);
613 613
     }
614 614
 
615 615
     public function test_default_cssmin_minifier()
@@ -643,21 +643,21 @@  discard block
 block discarded – undo
643 643
 .bg{background:url('img/something.svg')}.bg-no-quote{background:url(img/something.svg)}.bg-double-quotes{background:url("img/something.svg")}.whitespaces{background:url ("../../somewhere-else/svg.svg")}.host-relative{background:url("/img/something.svg")}.protocol-relative{background:url("//something/somewhere/example.png")}@font-face{font-family:'Roboto';font-style:normal;font-weight:100;src:url(../fonts/roboto-v15-latin-ext_latin-100.eot);src:local('Roboto Thin'),local('Roboto-Thin'),url(../fonts/roboto-v15-latin-ext_latin-100.eot?#iefix) format('embedded-opentype'),url(../fonts/roboto-v15-latin-ext_latin-100.woff2) format('woff2'),url(../fonts/roboto-v15-latin-ext_latin-100.woff) format('woff'),url(../fonts/roboto-v15-latin-ext_latin-100.ttf) format('truetype'),url(../fonts/roboto-v15-latin-ext_latin-100.svg#Roboto) format('svg')}
644 644
 CSS;
645 645
 
646
-        $instance = new autoptimizeStyles( $css );
647
-        $minified = $instance->run_minifier_on( $css );
646
+        $instance = new autoptimizeStyles($css);
647
+        $minified = $instance->run_minifier_on($css);
648 648
 
649
-        $this->assertEquals( $expected, $minified );
649
+        $this->assertEquals($expected, $minified);
650 650
     }
651 651
 
652 652
     /**
653 653
      * @dataProvider provider_test_should_aggregate_script_types
654 654
      */
655
-    public function test_should_aggregate_script_types( $input, $expected )
655
+    public function test_should_aggregate_script_types($input, $expected)
656 656
     {
657
-        $instance = new autoptimizeScripts( '' );
658
-        $actual   = $instance->should_aggregate( $input );
657
+        $instance = new autoptimizeScripts('');
658
+        $actual   = $instance->should_aggregate($input);
659 659
 
660
-        $this->assertEquals( $expected, $actual );
660
+        $this->assertEquals($expected, $actual);
661 661
     }
662 662
 
663 663
     public function provider_test_should_aggregate_script_types()
@@ -719,11 +719,11 @@  discard block
 block discarded – undo
719 719
     /**
720 720
      * @dataProvider provider_is_valid_buffer
721 721
      */
722
-    public function test_valid_buffers( $input, $expected )
722
+    public function test_valid_buffers($input, $expected)
723 723
     {
724
-        $actual = $this->ao->is_valid_buffer( $input );
724
+        $actual = $this->ao->is_valid_buffer($input);
725 725
 
726
-        $this->assertEquals( $expected, $actual );
726
+        $this->assertEquals($expected, $actual);
727 727
     }
728 728
 
729 729
     public function provider_is_valid_buffer()
@@ -792,11 +792,11 @@  discard block
 block discarded – undo
792 792
     /**
793 793
      * @dataProvider provider_is_amp_markup
794 794
      */
795
-    public function test_autoptimize_is_amp_markup( $input, $expected )
795
+    public function test_autoptimize_is_amp_markup($input, $expected)
796 796
     {
797
-        $actual = autoptimizeMain::is_amp_markup( $input );
797
+        $actual = autoptimizeMain::is_amp_markup($input);
798 798
 
799
-        $this->assertEquals( $expected, $actual );
799
+        $this->assertEquals($expected, $actual);
800 800
     }
801 801
 
802 802
     public function provider_is_amp_markup()
@@ -827,31 +827,31 @@  discard block
 block discarded – undo
827 827
     public function test_skips_buffering_when_ao_noptimize_filter_is_true()
828 828
     {
829 829
         // True => disable autoptimize.
830
-        add_filter( 'autoptimize_filter_noptimize', '__return_true' );
830
+        add_filter('autoptimize_filter_noptimize', '__return_true');
831 831
 
832 832
         // Buffering should not run due to the above filter.
833 833
         $expected = false;
834
-        $actual   = $this->ao->should_buffer( $doing_tests = true );
834
+        $actual   = $this->ao->should_buffer($doing_tests = true);
835 835
 
836
-        $this->assertEquals( $expected, $actual );
836
+        $this->assertEquals($expected, $actual);
837 837
     }
838 838
 
839 839
     public function test_does_buffering_when_ao_noptimize_filter_is_false()
840 840
     {
841 841
         // False => disable noptimize, aka, run normally (weird, yes...).
842
-        add_filter( 'autoptimize_filter_noptimize', '__return_false' );
842
+        add_filter('autoptimize_filter_noptimize', '__return_false');
843 843
 
844 844
         // Buffering should run because of above.
845 845
         $expected = true;
846
-        $actual   = $this->ao->should_buffer( $doing_tests = true );
846
+        $actual   = $this->ao->should_buffer($doing_tests = true);
847 847
 
848
-        $this->assertEquals( $expected, $actual );
848
+        $this->assertEquals($expected, $actual);
849 849
     }
850 850
 
851 851
     public function test_ignores_ao_noptimize_qs_when_instructed()
852 852
     {
853 853
         // Should skip checking for the qs completely due to filter.
854
-        add_filter( 'autoptimize_filter_honor_qs_noptimize', '__return_false' );
854
+        add_filter('autoptimize_filter_honor_qs_noptimize', '__return_false');
855 855
 
856 856
         /**
857 857
          * The above should then result in the "current" value being `false`
@@ -862,23 +862,23 @@  discard block
 block discarded – undo
862 862
          */
863 863
 
864 864
         $that = $this; // Makes it work on php 5.3!
865
-        add_filter( 'autoptimize_filter_noptimize', function ( $current_value ) use ( $that ) {
865
+        add_filter('autoptimize_filter_noptimize', function($current_value) use ($that) {
866 866
             $expected = false;
867
-            if ( defined( 'DONOTMINIFY' ) && DONOTMINIFY ) {
867
+            if (defined('DONOTMINIFY') && DONOTMINIFY) {
868 868
                 $expected = true;
869 869
             }
870 870
 
871
-            $that->assertEquals( $expected, $current_value );
871
+            $that->assertEquals($expected, $current_value);
872 872
         });
873 873
 
874
-        $this->ao->should_buffer( $doing_tests = true );
874
+        $this->ao->should_buffer($doing_tests = true);
875 875
     }
876 876
 
877 877
     public function test_wpengine_cache_flush()
878 878
     {
879 879
         // Creating a mock so that we can get past class_exists() and method_exists() checks present
880 880
         // in `autoptimizeCache::flushPageCache()`...
881
-        $stub = $this->getMockBuilder( 'WpeCommon' )->disableAutoload()
881
+        $stub = $this->getMockBuilder('WpeCommon')->disableAutoload()
882 882
                 ->disableOriginalConstructor()->setMethods(
883 883
                     array(
884 884
                         'purge_varnish_cache',
@@ -887,9 +887,9 @@  discard block
 block discarded – undo
887 887
                 ->getMock();
888 888
 
889 889
         $that = $this;
890
-        add_filter( 'autoptimize_flush_wpengine_methods', function( $methods ) use ( $that ) {
891
-            $expected_methods = array( 'purge_varnish_cache' );
892
-            $that->assertEquals( $methods, $expected_methods );
890
+        add_filter('autoptimize_flush_wpengine_methods', function($methods) use ($that) {
891
+            $expected_methods = array('purge_varnish_cache');
892
+            $that->assertEquals($methods, $expected_methods);
893 893
 
894 894
             return $methods;
895 895
         });
@@ -903,7 +903,7 @@  discard block
 block discarded – undo
903 903
     public function test_wpengine_cache_flush_agressive()
904 904
     {
905 905
         // Creating a mock so that we can get past class_exists() and method_exists() checks `autoptimize_flush_pagecache()`...
906
-        $stub = $this->getMockBuilder( 'WpeCommon' )->disableAutoload()
906
+        $stub = $this->getMockBuilder('WpeCommon')->disableAutoload()
907 907
                 ->disableOriginalConstructor()->setMethods(
908 908
                     array(
909 909
                         'purge_varnish_cache',
@@ -913,19 +913,19 @@  discard block
 block discarded – undo
913 913
                 )
914 914
                 ->getMock();
915 915
 
916
-        add_filter( 'autoptimize_flush_wpengine_aggressive', function() {
916
+        add_filter('autoptimize_flush_wpengine_aggressive', function() {
917 917
             return true;
918 918
         });
919 919
 
920 920
         $that = $this;
921
-        add_filter( 'autoptimize_flush_wpengine_methods', function( $methods ) use ( $that ) {
921
+        add_filter('autoptimize_flush_wpengine_methods', function($methods) use ($that) {
922 922
             $expected_methods = array(
923 923
                 'purge_varnish_cache',
924 924
                 'purge_memcached',
925 925
                 'clear_maxcdn_cache',
926 926
             );
927 927
 
928
-            $that->assertEquals( $methods, $expected_methods );
928
+            $that->assertEquals($methods, $expected_methods);
929 929
 
930 930
             return $methods;
931 931
         });
@@ -936,15 +936,15 @@  discard block
 block discarded – undo
936 936
     /**
937 937
      * @dataProvider provider_test_url_replace_cdn
938 938
      */
939
-    public function test_url_replace_cdn( $cdn_url, $input, $expected )
939
+    public function test_url_replace_cdn($cdn_url, $input, $expected)
940 940
     {
941
-        $mock = $this->getMockBuilder( 'autoptimizeBase' )
941
+        $mock = $this->getMockBuilder('autoptimizeBase')
942 942
                 ->disableOriginalConstructor()
943 943
                 ->getMockForAbstractClass();
944 944
 
945 945
         $mock->cdn_url = $cdn_url;
946
-        $actual        = $mock->url_replace_cdn( $input );
947
-        $this->assertEquals( $expected, $actual );
946
+        $actual        = $mock->url_replace_cdn($input);
947
+        $this->assertEquals($expected, $actual);
948 948
     }
949 949
 
950 950
     public function provider_test_url_replace_cdn()
@@ -961,13 +961,13 @@  discard block
 block discarded – undo
961 961
                 // CDN base url, url, expected result...
962 962
                 'http://cdn-test.example.org',
963 963
                 '/a.jpg',
964
-                'http://cdn-test.example.org/' . $subfolder . 'a.jpg',
964
+                'http://cdn-test.example.org/'.$subfolder.'a.jpg',
965 965
             ),
966 966
             // Full link with a matching AUTOPTIMIZE_WP_SITE_URL gets properly replaced...
967 967
             array(
968 968
                 'http://cdn-test.example.org',
969
-                $siteurl . '/wp-content/themes/something/example.svg',
970
-                'http://cdn-test.example.org/' . $subfolder . 'wp-content/themes/something/example.svg',
969
+                $siteurl.'/wp-content/themes/something/example.svg',
970
+                'http://cdn-test.example.org/'.$subfolder.'wp-content/themes/something/example.svg',
971 971
             ),
972 972
             // Protocol-relative url with a "local" hostname that doesn't match example.org (AUTOPTIMIZE_WP_SITE_URL)...
973 973
             array(
@@ -978,59 +978,59 @@  discard block
 block discarded – undo
978 978
             // www.example.org does not match example.org (AUTOPTIMIZE_WP_SITE_URL) so it's left alone...
979 979
             array(
980 980
                 'http://cdn-test.example.org',
981
-                $wwwsiteurl . '/wp-content/themes/something/example.svg',
982
-                $wwwsiteurl . '/wp-content/themes/something/example.svg',
981
+                $wwwsiteurl.'/wp-content/themes/something/example.svg',
982
+                $wwwsiteurl.'/wp-content/themes/something/example.svg',
983 983
             ),
984 984
             // SSL cdn url + host-relative link...
985 985
             array(
986 986
                 'https://cdn.example.org',
987 987
                 '/a.jpg',
988
-                'https://cdn.example.org/' . $subfolder . 'a.jpg',
988
+                'https://cdn.example.org/'.$subfolder.'a.jpg',
989 989
             ),
990 990
             // SSL cdn url + http site url that matches AUTOPTIMIZE_WP_SITE_URL is properly replaced...
991 991
             array(
992 992
                 'https://cdn.example.org',
993
-                $siteurl . '/wp-content/themes/something/example.svg',
994
-                'https://cdn.example.org/' . $subfolder . 'wp-content/themes/something/example.svg',
993
+                $siteurl.'/wp-content/themes/something/example.svg',
994
+                'https://cdn.example.org/'.$subfolder.'wp-content/themes/something/example.svg',
995 995
             ),
996 996
             // Protocol-relative cdn url given with protocol relative link that matches AUTOPTIMIZE_WP_SITE_URL host...
997 997
             array(
998 998
                 '//cdn.example.org',
999
-                $protorelativesiteurl . '/something.jpg',
1000
-                '//cdn.example.org/' . $subfolder . 'something.jpg',
999
+                $protorelativesiteurl.'/something.jpg',
1000
+                '//cdn.example.org/'.$subfolder.'something.jpg',
1001 1001
             ),
1002 1002
             // Protocol-relative cdn url given a http link that matches AUTOPTIMIZE_WP_SITE_URL host...
1003 1003
             array(
1004 1004
                 '//cdn.example.org',
1005
-                $siteurl . '/something.png',
1006
-                '//cdn.example.org/' . $subfolder . 'something.png',
1005
+                $siteurl.'/something.png',
1006
+                '//cdn.example.org/'.$subfolder.'something.png',
1007 1007
             ),
1008 1008
             // Protocol-relative cdn url with a host-relative link...
1009 1009
             array(
1010 1010
                 '//cdn.example.org',
1011 1011
                 '/a.jpg',
1012
-                '//cdn.example.org/' . $subfolder . 'a.jpg',
1012
+                '//cdn.example.org/'.$subfolder.'a.jpg',
1013 1013
             ),
1014 1014
             // Testing cdn urls with an explicit port number...
1015 1015
             array(
1016 1016
                 'http://cdn.com:8080',
1017 1017
                 '/a.jpg',
1018
-                'http://cdn.com:8080/' . $subfolder . 'a.jpg',
1018
+                'http://cdn.com:8080/'.$subfolder.'a.jpg',
1019 1019
             ),
1020 1020
             array(
1021 1021
                 '//cdn.com:4433',
1022 1022
                 '/a.jpg',
1023
-                '//cdn.com:4433/' . $subfolder . 'a.jpg',
1023
+                '//cdn.com:4433/'.$subfolder.'a.jpg',
1024 1024
             ),
1025 1025
             array(
1026 1026
                 '//cdn.com:4433',
1027
-                $siteurl . '/something.jpg',
1028
-                '//cdn.com:4433/' . $subfolder . 'something.jpg',
1027
+                $siteurl.'/something.jpg',
1028
+                '//cdn.com:4433/'.$subfolder.'something.jpg',
1029 1029
             ),
1030 1030
             array(
1031 1031
                 '//cdn.com:1234',
1032
-                $protorelativesiteurl . '/something.jpg',
1033
-                '//cdn.com:1234/' . $subfolder . 'something.jpg',
1032
+                $protorelativesiteurl.'/something.jpg',
1033
+                '//cdn.com:1234/'.$subfolder.'something.jpg',
1034 1034
             ),
1035 1035
             // Relative links should not be touched by url_replace_cdn()...
1036 1036
             array(
@@ -1055,8 +1055,8 @@  discard block
 block discarded – undo
1055 1055
             // even though they are really strange...
1056 1056
             array(
1057 1057
                 $siteurl, // example.org or http://localhost or http://localhost/wordpress
1058
-                $siteurl . '/something.jpg',
1059
-                $siteurl . '/something.jpg',
1058
+                $siteurl.'/something.jpg',
1059
+                $siteurl.'/something.jpg',
1060 1060
             ),
1061 1061
             // These shouldn't really be changed, or even if replacements do
1062 1062
             // happen, they shouldn't be destructive...
@@ -1095,31 +1095,31 @@  discard block
 block discarded – undo
1095 1095
         $test_link = '/a.jpg';
1096 1096
         $cdn_url   = '//cdn.example.org';
1097 1097
 
1098
-        $with_ssl = function( $cdn ) {
1098
+        $with_ssl = function($cdn) {
1099 1099
             return '';
1100 1100
         };
1101 1101
         $expected_with_ssl = '/a.jpg';
1102 1102
 
1103
-        $without_ssl = function( $cdn ) {
1103
+        $without_ssl = function($cdn) {
1104 1104
             return $cdn;
1105 1105
         };
1106
-        $expected_without_ssl = '//cdn.example.org/' . $sub . 'a.jpg';
1106
+        $expected_without_ssl = '//cdn.example.org/'.$sub.'a.jpg';
1107 1107
 
1108 1108
         // With a filter that returns something considered "empty", cdn replacement shouldn't occur...
1109
-        add_filter( 'autoptimize_filter_base_cdnurl', $with_ssl );
1110
-        $mock = $this->getMockBuilder( 'autoptimizeBase' )
1109
+        add_filter('autoptimize_filter_base_cdnurl', $with_ssl);
1110
+        $mock = $this->getMockBuilder('autoptimizeBase')
1111 1111
                 ->disableOriginalConstructor()
1112 1112
                 ->getMockForAbstractClass();
1113 1113
 
1114 1114
         $mock->cdn_url   = $cdn_url;
1115
-        $actual_with_ssl = $mock->url_replace_cdn( $test_link );
1116
-        $this->assertEquals( $expected_with_ssl, $actual_with_ssl );
1117
-        remove_filter( 'autoptimize_filter_base_cdnurl', $with_ssl );
1115
+        $actual_with_ssl = $mock->url_replace_cdn($test_link);
1116
+        $this->assertEquals($expected_with_ssl, $actual_with_ssl);
1117
+        remove_filter('autoptimize_filter_base_cdnurl', $with_ssl);
1118 1118
 
1119 1119
         // With a filter that returns an actual cdn url, cdn replacement should occur.
1120
-        add_filter( 'autoptimize_filter_base_cdnurl', $without_ssl );
1121
-        $actual_without_ssl = $mock->url_replace_cdn( $test_link );
1122
-        $this->assertEquals( $expected_without_ssl, $actual_without_ssl );
1120
+        add_filter('autoptimize_filter_base_cdnurl', $without_ssl);
1121
+        $actual_without_ssl = $mock->url_replace_cdn($test_link);
1122
+        $this->assertEquals($expected_without_ssl, $actual_without_ssl);
1123 1123
     }
1124 1124
 
1125 1125
     public function provider_cssmin_issues()
@@ -1158,11 +1158,11 @@  discard block
 block discarded – undo
1158 1158
     /**
1159 1159
      * @dataProvider provider_cssmin_issues
1160 1160
      */
1161
-    public function test_cssmin_issues( $input, $expected )
1161
+    public function test_cssmin_issues($input, $expected)
1162 1162
     {
1163
-        $minifier = new autoptimizeCSSmin( false ); // No need to raise limits for now.
1164
-        $actual   = $minifier->run( $input );
1165
-        $this->assertEquals( $expected, $actual );
1163
+        $minifier = new autoptimizeCSSmin(false); // No need to raise limits for now.
1164
+        $actual   = $minifier->run($input);
1165
+        $this->assertEquals($expected, $actual);
1166 1166
     }
1167 1167
 
1168 1168
     public function provider_getpath()
@@ -1187,12 +1187,12 @@  discard block
 block discarded – undo
1187 1187
             // This file comes with core, so should exist...
1188 1188
             array(
1189 1189
                 '/wp-includes/js/jquery/jquery.js',
1190
-                WP_ROOT_DIR . '/wp-includes/js/jquery/jquery.js',
1190
+                WP_ROOT_DIR.'/wp-includes/js/jquery/jquery.js',
1191 1191
             ),
1192 1192
             // This file comes with core as of 5.6, so should exist...
1193 1193
             array(
1194 1194
                 '/wp-includes/js/jquery/jquery.min.js',
1195
-                WP_ROOT_DIR . '/wp-includes/js/jquery/jquery.min.js',
1195
+                WP_ROOT_DIR.'/wp-includes/js/jquery/jquery.min.js',
1196 1196
             ),
1197 1197
             // Empty $url should return false.
1198 1198
             array(
@@ -1217,12 +1217,12 @@  discard block
 block discarded – undo
1217 1217
     /**
1218 1218
      * @dataProvider provider_getpath
1219 1219
      */
1220
-    public function test_getpath( $input, $expected )
1220
+    public function test_getpath($input, $expected)
1221 1221
     {
1222
-        $mock = $this->getMockBuilder( 'autoptimizeBase' )->disableOriginalConstructor()->getMockForAbstractClass();
1222
+        $mock = $this->getMockBuilder('autoptimizeBase')->disableOriginalConstructor()->getMockForAbstractClass();
1223 1223
 
1224
-        $actual = $mock->getpath( $input );
1225
-        $this->assertEquals( $expected, $actual );
1224
+        $actual = $mock->getpath($input);
1225
+        $this->assertEquals($expected, $actual);
1226 1226
     }
1227 1227
 
1228 1228
     /**
@@ -1236,7 +1236,7 @@  discard block
 block discarded – undo
1236 1236
 
1237 1237
         $protorelativesiteurl = $urls['prsiteurl'];
1238 1238
 
1239
-        $css_orig     = <<<CSS
1239
+        $css_orig = <<<CSS
1240 1240
 header{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90px' height='110px' viewBox='0 0 90 110'%3E%3Cstyle%3E.a%7Bstop-color:%23FFF;%7D.b%7Bstop-color:%23B2D235;%7D.c%7Bstop-color:%23BEE7FA;%7D.d%7Bfill:%23590C15;%7D%3C/style%3E%3ClinearGradient id='c' y2='135.4' gradientUnits='userSpaceOnUse' x2='209.1' gradientTransform='rotate(-1.467 -4082.888 7786.794)' y1='205.8' x1='262'%3E%3Cstop class='b' offset='0'/%3E%3Cstop class='b' offset='.48'/%3E%3Cstop stop-color='%23829D25' offset='1'/%3E%3C/linearGradient%3E%3Cpath stroke-width='.3' d='M77.3 45.4c-3-3.5-7.1-6.5-11.6-7.8-5.1-1.5-10-.1-14.9 1.5C52 35.4 54.3 29 60 24l-4.8-5.5c-3.4 3-5.8 6.3-7.5 9.4-1.7-4.3-4.1-8.4-7.5-12C33.4 8.6 24.3 4.7 15.1 4.2c-.2 9.3 3.1 18.6 9.9 25.9 5.2 5.6 11.8 9.2 18.7 10.8-2.5.2-4.9-.1-7.7-.9-5.2-1.4-10.5-2.8-15.8-1C10.6 42.3 4.5 51.9 4 61.7c-.5 11.6 3.8 23.8 9.9 33.5 3.9 6.3 9.6 13.7 17.7 13.4 3.8-.1 7-2.1 10.7-2.7 5.2-.8 9.1 1.2 14.1 1.8 16.4 2 24.4-23.6 26.4-35.9 1.2-9.1.8-19.1-5.5-26.4z' stroke='%233E6D1F' fill='url(%23c)'/%3E%3C/svg%3E")}
1241 1241
 section.clipped.clippedTop {clip-path:url("#clipPolygonTop")}
1242 1242
 section.clipped.clippedBottom {clip-path:url("#clipPolygonBottom")}
@@ -1249,13 +1249,13 @@  discard block
 block discarded – undo
1249 1249
 .myimg {background-image: url($protorelativesiteurl/wp-content/themes/my-theme/images/under-left-leaf.png), url($protorelativesiteurl/wp-content/themes/my-theme/images/over-blue-bird.png), url($protorelativesiteurl/wp-content/themes/my-theme/images/under-top.png), url($protorelativesiteurl/wp-content/themes/my-theme/images/bg-top-grunge.png);}
1250 1250
 CSS;
1251 1251
 
1252
-        $fixurls_result = autoptimizeStyles::fixurls( ABSPATH . 'wp-content/themes/my-theme/style.css', $css_orig );
1253
-        $this->assertEquals( $css_expected, $fixurls_result );
1252
+        $fixurls_result = autoptimizeStyles::fixurls(ABSPATH.'wp-content/themes/my-theme/style.css', $css_orig);
1253
+        $this->assertEquals($css_expected, $fixurls_result);
1254 1254
     }
1255 1255
 
1256 1256
     public function test_background_datauri_sprites_with_fixurls()
1257 1257
     {
1258
-        $css_orig     = <<<CSS
1258
+        $css_orig = <<<CSS
1259 1259
 .shadow { background:url(img/1x1.png) top center; }
1260 1260
 .shadow1 { background-image:url(img/1x1.png) 0 -767px repeat-x; }
1261 1261
 .shadow2 {background:url(img/1x1.png) top center}
@@ -1307,27 +1307,27 @@  discard block
 block discarded – undo
1307 1307
 CSS;
1308 1308
 
1309 1309
         // For test purposes, ALL images in the css are being inline with a 1x1 trans png string/datauri.
1310
-        add_filter( 'autoptimize_filter_css_is_datauri_candidate', function( $is_candidate, $path ) {
1310
+        add_filter('autoptimize_filter_css_is_datauri_candidate', function($is_candidate, $path) {
1311 1311
             return true;
1312
-        }, 10, 2 );
1312
+        }, 10, 2);
1313 1313
 
1314 1314
         // For test purposes, ALL images in the css are being inline with a 1x1 trans png string/datauri.
1315
-        add_filter( 'autoptimize_filter_css_datauri_image', function( $base64array, $path ) {
1315
+        add_filter('autoptimize_filter_css_datauri_image', function($base64array, $path) {
1316 1316
             $head = 'data:image/png;base64,';
1317 1317
             $data = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
1318 1318
 
1319
-            $result['full']       = $head . $data;
1319
+            $result['full']       = $head.$data;
1320 1320
             $result['base64data'] = $data;
1321 1321
             return $result;
1322
-        }, 10, 2 );
1322
+        }, 10, 2);
1323 1323
 
1324
-        $instance = new autoptimizeStyles( $css_orig );
1325
-        $instance->setOption( 'datauris', true );
1324
+        $instance = new autoptimizeStyles($css_orig);
1325
+        $instance->setOption('datauris', true);
1326 1326
 
1327
-        $fixurls_result = autoptimizeStyles::fixurls( ABSPATH . 'wp-content/themes/my-theme/style.css', $css_orig );
1328
-        $css_actual     = $instance->rewrite_assets( $fixurls_result );
1327
+        $fixurls_result = autoptimizeStyles::fixurls(ABSPATH.'wp-content/themes/my-theme/style.css', $css_orig);
1328
+        $css_actual     = $instance->rewrite_assets($fixurls_result);
1329 1329
 
1330
-        $this->assertEquals( $css_expected, $css_actual );
1330
+        $this->assertEquals($css_expected, $css_actual);
1331 1331
     }
1332 1332
 
1333 1333
     /**
@@ -1347,7 +1347,7 @@  discard block
 block discarded – undo
1347 1347
      */
1348 1348
     public function test_background_datauri_sprites_without_fixurls()
1349 1349
     {
1350
-        $css_orig     = <<<CSS
1350
+        $css_orig = <<<CSS
1351 1351
 .shadow { background:url(img/1x1.png) top center; }
1352 1352
 .shadow1 { background-image:url(img/1x1.png) 0 -767px repeat-x; }
1353 1353
 .shadow2 {background:url(img/1x1.png) top center}
@@ -1391,24 +1391,24 @@  discard block
 block discarded – undo
1391 1391
 CSS;
1392 1392
 
1393 1393
         // For test purposes, ALL images in the css are being inlined with a 1x1 trans png string/datauri.
1394
-        add_filter( 'autoptimize_filter_css_is_datauri_candidate', function( $is_candidate, $path ) {
1394
+        add_filter('autoptimize_filter_css_is_datauri_candidate', function($is_candidate, $path) {
1395 1395
             return true;
1396
-        }, 10, 2 );
1396
+        }, 10, 2);
1397 1397
 
1398 1398
         // For test purposes, ALL images in the css are being inlined with a 1x1 trans png string/datauri.
1399
-        add_filter( 'autoptimize_filter_css_datauri_image', function( $base64array, $path ) {
1399
+        add_filter('autoptimize_filter_css_datauri_image', function($base64array, $path) {
1400 1400
             $head = 'data:image/png;base64,';
1401 1401
             $data = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
1402 1402
 
1403
-            $result['full']       = $head . $data;
1403
+            $result['full']       = $head.$data;
1404 1404
             $result['base64data'] = $data;
1405 1405
             return $result;
1406
-        }, 10, 2 );
1406
+        }, 10, 2);
1407 1407
 
1408
-        $instance = new autoptimizeStyles( $css_orig );
1409
-        $instance->setOption( 'datauris', true );
1410
-        $css_actual = $instance->rewrite_assets( $css_orig );
1411
-        $this->assertEquals( $css_expected, $css_actual );
1408
+        $instance = new autoptimizeStyles($css_orig);
1409
+        $instance->setOption('datauris', true);
1410
+        $css_actual = $instance->rewrite_assets($css_orig);
1411
+        $this->assertEquals($css_expected, $css_actual);
1412 1412
     }
1413 1413
 
1414 1414
     /**
@@ -1528,12 +1528,12 @@  discard block
 block discarded – undo
1528 1528
 CSS;
1529 1529
 
1530 1530
         // Test with fonts pointed to the CDN + cdn option is set.
1531
-        add_filter( 'autoptimize_filter_css_fonts_cdn', '__return_true' );
1532
-        $instance = new autoptimizeStyles( $css_in );
1533
-        $instance->setOption( 'cdn_url', $cdnurl );
1534
-        $css_actual_fonts_cdn = $instance->rewrite_assets( $css_in );
1531
+        add_filter('autoptimize_filter_css_fonts_cdn', '__return_true');
1532
+        $instance = new autoptimizeStyles($css_in);
1533
+        $instance->setOption('cdn_url', $cdnurl);
1534
+        $css_actual_fonts_cdn = $instance->rewrite_assets($css_in);
1535 1535
 
1536
-        $this->assertEquals( $css_expected_fonts_cdn, $css_actual_fonts_cdn );
1536
+        $this->assertEquals($css_expected_fonts_cdn, $css_actual_fonts_cdn);
1537 1537
     }
1538 1538
 
1539 1539
     /**
@@ -1649,10 +1649,10 @@  discard block
 block discarded – undo
1649 1649
 }
1650 1650
 CSS;
1651 1651
         // Test without moving fonts to CDN, but cdn option is set.
1652
-        $instance = new autoptimizeStyles( $css_in );
1653
-        $instance->setOption( 'cdn_url', $urls['cdnurl'] );
1654
-        $css_actual = $instance->rewrite_assets( $css_in );
1655
-        $this->assertEquals( $css_expected, $css_actual );
1652
+        $instance = new autoptimizeStyles($css_in);
1653
+        $instance->setOption('cdn_url', $urls['cdnurl']);
1654
+        $css_actual = $instance->rewrite_assets($css_in);
1655
+        $this->assertEquals($css_expected, $css_actual);
1656 1656
     }
1657 1657
 
1658 1658
     public function test_assets_regex_replaces_multi_bg_images()
@@ -1673,16 +1673,16 @@  discard block
 block discarded – undo
1673 1673
 }
1674 1674
 CSS;
1675 1675
 
1676
-        $instance = new autoptimizeStyles( $in );
1677
-        $instance->setOption( 'cdn_url', $cdnurl );
1678
-        $actual = $instance->rewrite_assets( $in );
1676
+        $instance = new autoptimizeStyles($in);
1677
+        $instance->setOption('cdn_url', $cdnurl);
1678
+        $actual = $instance->rewrite_assets($in);
1679 1679
 
1680
-        $this->assertEquals( $expected, $actual );
1680
+        $this->assertEquals($expected, $actual);
1681 1681
     }
1682 1682
 
1683 1683
     public function test_at_supports_spacing_issue_110()
1684 1684
     {
1685
-        $in       = <<<CSS
1685
+        $in = <<<CSS
1686 1686
 @supports (-webkit-filter: blur(3px)) or (filter: blur(3px)) {
1687 1687
     .blur {
1688 1688
         filter:blur(3px);
@@ -1696,10 +1696,10 @@  discard block
 block discarded – undo
1696 1696
 @supports (-webkit-filter:blur(3px)) or (filter:blur(3px)){.blur{filter:blur(3px)}}@supports((position:-webkit-sticky) or (position:sticky)){.sticky{position:sticky}}
1697 1697
 CSS;
1698 1698
 
1699
-        $instance = new autoptimizeStyles( $in );
1700
-        $actual   = $instance->run_minifier_on( $in );
1699
+        $instance = new autoptimizeStyles($in);
1700
+        $actual   = $instance->run_minifier_on($in);
1701 1701
 
1702
-        $this->assertEquals( $expected, $actual );
1702
+        $this->assertEquals($expected, $actual);
1703 1703
     }
1704 1704
 
1705 1705
     public function test_css_import_semicolon_url_issue_122()
@@ -1715,18 +1715,18 @@  discard block
 block discarded – undo
1715 1715
 </style>
1716 1716
 HTML;
1717 1717
 
1718
-        $expected = '<style media="all">@import url(' . $cdnurl . '/' . $sub . 'foo.css?a&#038;b);@import url(' . $cdnurl . '/' . $sub . 'bar.css);</style><!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag `title` missing --><!--/noptimize-->';
1718
+        $expected = '<style media="all">@import url('.$cdnurl.'/'.$sub.'foo.css?a&#038;b);@import url('.$cdnurl.'/'.$sub.'bar.css);</style><!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag `title` missing --><!--/noptimize-->';
1719 1719
 
1720 1720
         $options = [
1721 1721
             'autoptimizeStyles' => $this->getAoStylesDefaultOptions(),
1722 1722
         ];
1723 1723
 
1724
-        $instance = new autoptimizeStyles( $in );
1725
-        $instance->read( $options['autoptimizeStyles'] );
1724
+        $instance = new autoptimizeStyles($in);
1725
+        $instance->read($options['autoptimizeStyles']);
1726 1726
         $instance->minify();
1727 1727
         $instance->cache();
1728 1728
         $actual = $instance->getcontent();
1729
-        $this->assertEquals( $expected, $actual );
1729
+        $this->assertEquals($expected, $actual);
1730 1730
     }
1731 1731
 
1732 1732
     public function test_fixurls_with_at_imports_and_media_queries()
@@ -1736,10 +1736,10 @@  discard block
 block discarded – undo
1736 1736
         $subfolder = $urls['subfolder'];
1737 1737
 
1738 1738
         $in  = '@import "foo.css"; @import "bar.css" (orientation:landscape);';
1739
-        $exp = '@import url(' . $prsiteurl . '/wp-content/themes/my-theme/foo.css); @import url(' . $prsiteurl . '/wp-content/themes/my-theme/bar.css) (orientation:landscape);';
1739
+        $exp = '@import url('.$prsiteurl.'/wp-content/themes/my-theme/foo.css); @import url('.$prsiteurl.'/wp-content/themes/my-theme/bar.css) (orientation:landscape);';
1740 1740
 
1741
-        $actual = autoptimizeStyles::fixurls( ABSPATH . 'wp-content/themes/my-theme/style.css', $in );
1742
-        $this->assertEquals( $exp, $actual );
1741
+        $actual = autoptimizeStyles::fixurls(ABSPATH.'wp-content/themes/my-theme/style.css', $in);
1742
+        $this->assertEquals($exp, $actual);
1743 1743
     }
1744 1744
 
1745 1745
     public function test_aostyles_at_imports_with_media_queries()
@@ -1754,43 +1754,43 @@  discard block
 block discarded – undo
1754 1754
 </style>
1755 1755
 HTML;
1756 1756
 
1757
-        $expected = '<style media="all">@import url(' . $cdnurl . '/' . $sub . 'foo.css);@import url(' . $cdnurl . '/' . $sub . 'bar.css) (orientation:landscape);</style><!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag `title` missing --><!--/noptimize-->';
1757
+        $expected = '<style media="all">@import url('.$cdnurl.'/'.$sub.'foo.css);@import url('.$cdnurl.'/'.$sub.'bar.css) (orientation:landscape);</style><!--noptimize--><!-- Autoptimize found a problem with the HTML in your Theme, tag `title` missing --><!--/noptimize-->';
1758 1758
 
1759 1759
         $options = [
1760 1760
             'autoptimizeStyles' => $this->getAoStylesDefaultOptions(),
1761 1761
         ];
1762 1762
 
1763
-        $instance = new autoptimizeStyles( $in );
1764
-        $instance->read( $options['autoptimizeStyles'] );
1763
+        $instance = new autoptimizeStyles($in);
1764
+        $instance->read($options['autoptimizeStyles']);
1765 1765
         $instance->minify();
1766 1766
         $instance->cache();
1767 1767
 
1768 1768
         $actual = $instance->getcontent();
1769
-        $this->assertEquals( $expected, $actual );
1769
+        $this->assertEquals($expected, $actual);
1770 1770
     }
1771 1771
 
1772 1772
     public function test_cache_size_checker_hooked_by_default()
1773 1773
     {
1774
-        $this->assertNotEmpty( autoptimizeCacheChecker::SCHEDULE_HOOK );
1774
+        $this->assertNotEmpty(autoptimizeCacheChecker::SCHEDULE_HOOK);
1775 1775
 
1776 1776
         // No schedule, because it's only added when is_admin() is true.
1777
-        $this->assertEquals( false, wp_get_schedule( autoptimizeCacheChecker::SCHEDULE_HOOK ) );
1777
+        $this->assertEquals(false, wp_get_schedule(autoptimizeCacheChecker::SCHEDULE_HOOK));
1778 1778
 
1779 1779
         // Proving that setup() sets the schedule as needed.
1780 1780
         $checker = new autoptimizeCacheChecker();
1781 1781
         $checker->setup();
1782
-        $this->assertEquals( 'twicedaily', wp_get_schedule( autoptimizeCacheChecker::SCHEDULE_HOOK ) );
1782
+        $this->assertEquals('twicedaily', wp_get_schedule(autoptimizeCacheChecker::SCHEDULE_HOOK));
1783 1783
     }
1784 1784
 
1785 1785
     public function test_cache_size_checker_disabled_with_filter()
1786 1786
     {
1787
-        add_filter( 'autoptimize_filter_cachecheck_do', '__return_false' );
1787
+        add_filter('autoptimize_filter_cachecheck_do', '__return_false');
1788 1788
 
1789 1789
         $checker = new autoptimizeCacheChecker();
1790 1790
         $checker->setup();
1791
-        $this->assertEquals( false, wp_get_schedule( autoptimizeCacheChecker::SCHEDULE_HOOK ) );
1791
+        $this->assertEquals(false, wp_get_schedule(autoptimizeCacheChecker::SCHEDULE_HOOK));
1792 1792
 
1793
-        remove_all_filters( 'autoptimize_filter_cachecheck_do' );
1793
+        remove_all_filters('autoptimize_filter_cachecheck_do');
1794 1794
     }
1795 1795
 
1796 1796
     public function test_is_start_buffering_hooked_properly()
@@ -1803,12 +1803,12 @@  discard block
 block discarded – undo
1803 1803
          * https://www.theaveragedev.com/mocking-constants-in-tests/.
1804 1804
          */
1805 1805
 
1806
-        if ( defined( 'AUTOPTIMIZE_INIT_EARLIER' ) ) {
1806
+        if (defined('AUTOPTIMIZE_INIT_EARLIER')) {
1807 1807
             $this->assertEquals(
1808 1808
                 autoptimizeMain::INIT_EARLIER_PRIORITY,
1809
-                has_action( 'init', array( $instance, 'start_buffering' ) )
1809
+                has_action('init', array($instance, 'start_buffering'))
1810 1810
             );
1811
-            $this->assertTrue( ! defined( 'AUTOPTIMIZE_HOOK_INTO' ) );
1811
+            $this->assertTrue(!defined('AUTOPTIMIZE_HOOK_INTO'));
1812 1812
         }
1813 1813
 
1814 1814
         /*
@@ -1825,18 +1825,18 @@  discard block
 block discarded – undo
1825 1825
 
1826 1826
     public function test_inline_and_defer_markup()
1827 1827
     {
1828
-        add_filter( 'autoptimize_filter_css_defer', '__return_true' );
1829
-        add_filter( 'autoptimize_filter_css_defer_inline', '__return_true' );
1828
+        add_filter('autoptimize_filter_css_defer', '__return_true');
1829
+        add_filter('autoptimize_filter_css_defer_inline', '__return_true');
1830 1830
 
1831
-        $actual = $this->ao->end_buffering( $this->get_test_markup() );
1832
-        if ( is_multisite() ) {
1833
-            $this->assertEquals( $this->get_test_markup_output_inline_defer_ms(), $actual );
1831
+        $actual = $this->ao->end_buffering($this->get_test_markup());
1832
+        if (is_multisite()) {
1833
+            $this->assertEquals($this->get_test_markup_output_inline_defer_ms(), $actual);
1834 1834
         } else {
1835
-            $this->assertEquals( $this->get_test_markup_output_inline_defer(), $actual );
1835
+            $this->assertEquals($this->get_test_markup_output_inline_defer(), $actual);
1836 1836
         }
1837 1837
 
1838
-        remove_all_filters( 'autoptimize_filter_css_defer' );
1839
-        remove_all_filters( 'autoptimize_filter_css_defer_inline' );
1838
+        remove_all_filters('autoptimize_filter_css_defer');
1839
+        remove_all_filters('autoptimize_filter_css_defer_inline');
1840 1840
     }
1841 1841
 
1842 1842
     public function test_js_aggregation_decision_and_dontaggregate_filter()
@@ -1844,47 +1844,47 @@  discard block
 block discarded – undo
1844 1844
         $opts = $this->getAoScriptsDefaultOptions();
1845 1845
 
1846 1846
         // Aggregating: true by default.
1847
-        $scripts = new autoptimizeScripts( '' );
1848
-        $scripts->read( $opts );
1849
-        $this->assertTrue( $scripts->aggregating() );
1847
+        $scripts = new autoptimizeScripts('');
1848
+        $scripts->read($opts);
1849
+        $this->assertTrue($scripts->aggregating());
1850 1850
 
1851 1851
         // Aggregating: option=true (dontaggregate=false by default).
1852 1852
         $opts['aggregate'] = true;
1853
-        $scripts           = new autoptimizeScripts( '' );
1854
-        $scripts->read( $opts );
1855
-        $this->assertTrue( $scripts->aggregating() );
1853
+        $scripts           = new autoptimizeScripts('');
1854
+        $scripts->read($opts);
1855
+        $this->assertTrue($scripts->aggregating());
1856 1856
 
1857 1857
         // Aggregating: option=true, dontaggregate=false explicit.
1858 1858
         $opts['aggregate'] = true;
1859
-        add_filter( 'autoptimize_filter_js_dontaggregate', '__return_false' );
1860
-        $scripts = new autoptimizeScripts( '' );
1861
-        $scripts->read( $opts );
1862
-        $this->assertTrue( $scripts->aggregating() );
1863
-        remove_all_filters( 'autoptimize_filter_js_dontaggregate' );
1859
+        add_filter('autoptimize_filter_js_dontaggregate', '__return_false');
1860
+        $scripts = new autoptimizeScripts('');
1861
+        $scripts->read($opts);
1862
+        $this->assertTrue($scripts->aggregating());
1863
+        remove_all_filters('autoptimize_filter_js_dontaggregate');
1864 1864
 
1865 1865
         // Not aggregating: option=true, dontaggregate=true.
1866 1866
         $opts['aggregate'] = true;
1867
-        add_filter( 'autoptimize_filter_js_dontaggregate', '__return_true' );
1868
-        $scripts = new autoptimizeScripts( '' );
1869
-        $scripts->read( $opts );
1870
-        $this->assertFalse( $scripts->aggregating() );
1871
-        remove_all_filters( 'autoptimize_filter_js_dontaggregate' );
1867
+        add_filter('autoptimize_filter_js_dontaggregate', '__return_true');
1868
+        $scripts = new autoptimizeScripts('');
1869
+        $scripts->read($opts);
1870
+        $this->assertFalse($scripts->aggregating());
1871
+        remove_all_filters('autoptimize_filter_js_dontaggregate');
1872 1872
 
1873 1873
         // Not aggregating: option=false, dontaggregate=false.
1874 1874
         $opts['aggregate'] = false;
1875
-        add_filter( 'autoptimize_filter_js_dontaggregate', '__return_false' );
1876
-        $scripts = new autoptimizeScripts( '' );
1877
-        $scripts->read( $opts );
1878
-        $this->assertFalse( $scripts->aggregating() );
1879
-        remove_all_filters( 'autoptimize_filter_js_dontaggregate' );
1875
+        add_filter('autoptimize_filter_js_dontaggregate', '__return_false');
1876
+        $scripts = new autoptimizeScripts('');
1877
+        $scripts->read($opts);
1878
+        $this->assertFalse($scripts->aggregating());
1879
+        remove_all_filters('autoptimize_filter_js_dontaggregate');
1880 1880
 
1881 1881
         // Not aggregating: option=false, dontaggregate=true.
1882 1882
         $opts['aggregate'] = false;
1883
-        add_filter( 'autoptimize_filter_js_dontaggregate', '__return_true' );
1884
-        $scripts = new autoptimizeScripts( '' );
1885
-        $scripts->read( $opts );
1886
-        $this->assertFalse( $scripts->aggregating() );
1887
-        remove_all_filters( 'autoptimize_filter_js_dontaggregate' );
1883
+        add_filter('autoptimize_filter_js_dontaggregate', '__return_true');
1884
+        $scripts = new autoptimizeScripts('');
1885
+        $scripts->read($opts);
1886
+        $this->assertFalse($scripts->aggregating());
1887
+        remove_all_filters('autoptimize_filter_js_dontaggregate');
1888 1888
     }
1889 1889
 
1890 1890
     public function test_css_aggregation_decision_and_dontaggregate_filter()
@@ -1892,78 +1892,78 @@  discard block
 block discarded – undo
1892 1892
         $opts = $this->getAoStylesDefaultOptions();
1893 1893
 
1894 1894
         // Aggregating: true by default.
1895
-        $styles = new autoptimizeStyles( '' );
1896
-        $this->assertTrue( $styles->aggregating() );
1895
+        $styles = new autoptimizeStyles('');
1896
+        $this->assertTrue($styles->aggregating());
1897 1897
 
1898 1898
         // Aggregating: option=true (dontaggregate=false by default).
1899 1899
         $opts['aggregate'] = true;
1900
-        $styles            = new autoptimizeStyles( '' );
1901
-        $styles->read( $opts );
1902
-        $this->assertTrue( $styles->aggregating() );
1900
+        $styles            = new autoptimizeStyles('');
1901
+        $styles->read($opts);
1902
+        $this->assertTrue($styles->aggregating());
1903 1903
 
1904 1904
         // Aggregating: option=true, dontaggregate=false explicit.
1905 1905
         $opts['aggregate'] = true;
1906
-        add_filter( 'autoptimize_filter_css_dontaggregate', '__return_false' );
1907
-        $styles = new autoptimizeStyles( '' );
1908
-        $styles->read( $opts );
1909
-        $this->assertTrue( $styles->aggregating() );
1910
-        remove_all_filters( 'autoptimize_filter_css_dontaggregate' );
1906
+        add_filter('autoptimize_filter_css_dontaggregate', '__return_false');
1907
+        $styles = new autoptimizeStyles('');
1908
+        $styles->read($opts);
1909
+        $this->assertTrue($styles->aggregating());
1910
+        remove_all_filters('autoptimize_filter_css_dontaggregate');
1911 1911
 
1912 1912
         // Not aggregating: option=true, dontaggregate=true.
1913 1913
         $opts['aggregate'] = true;
1914
-        add_filter( 'autoptimize_filter_css_dontaggregate', '__return_true' );
1915
-        $styles = new autoptimizeStyles( '' );
1916
-        $styles->read( $opts );
1917
-        $this->assertFalse( $styles->aggregating() );
1918
-        remove_all_filters( 'autoptimize_filter_css_dontaggregate' );
1914
+        add_filter('autoptimize_filter_css_dontaggregate', '__return_true');
1915
+        $styles = new autoptimizeStyles('');
1916
+        $styles->read($opts);
1917
+        $this->assertFalse($styles->aggregating());
1918
+        remove_all_filters('autoptimize_filter_css_dontaggregate');
1919 1919
 
1920 1920
         // Not aggregating: option=false, dontaggregate=false.
1921 1921
         $opts['aggregate'] = false;
1922
-        add_filter( 'autoptimize_filter_css_dontaggregate', '__return_false' );
1923
-        $styles = new autoptimizeStyles( '' );
1924
-        $styles->read( $opts );
1925
-        $this->assertFalse( $styles->aggregating() );
1926
-        remove_all_filters( 'autoptimize_filter_css_dontaggregate' );
1922
+        add_filter('autoptimize_filter_css_dontaggregate', '__return_false');
1923
+        $styles = new autoptimizeStyles('');
1924
+        $styles->read($opts);
1925
+        $this->assertFalse($styles->aggregating());
1926
+        remove_all_filters('autoptimize_filter_css_dontaggregate');
1927 1927
 
1928 1928
         // Not aggregating: option=false, dontaggregate=true.
1929 1929
         $opts['aggregate'] = false;
1930
-        add_filter( 'autoptimize_filter_css_dontaggregate', '__return_true' );
1931
-        $styles = new autoptimizeStyles( '' );
1932
-        $styles->read( $opts );
1933
-        $this->assertFalse( $styles->aggregating() );
1934
-        remove_all_filters( 'autoptimize_filter_css_dontaggregate' );
1930
+        add_filter('autoptimize_filter_css_dontaggregate', '__return_true');
1931
+        $styles = new autoptimizeStyles('');
1932
+        $styles->read($opts);
1933
+        $this->assertFalse($styles->aggregating());
1934
+        remove_all_filters('autoptimize_filter_css_dontaggregate');
1935 1935
     }
1936 1936
 
1937 1937
     public function test_css_minify_single_with_cdning()
1938 1938
     {
1939
-        $pathname = dirname( __FILE__ ) . '/fixtures/minify-single.css';
1939
+        $pathname = dirname(__FILE__).'/fixtures/minify-single.css';
1940 1940
         $opts     = $this->getAoStylesDefaultOptions();
1941
-        $styles   = new autoptimizeStyles( '' );
1942
-        $styles->read( $opts );
1941
+        $styles   = new autoptimizeStyles('');
1942
+        $styles->read($opts);
1943 1943
 
1944
-        $url = $styles->minify_single( $pathname, $cache_miss = true );
1944
+        $url = $styles->minify_single($pathname, $cache_miss = true);
1945 1945
 
1946 1946
         // Minified url filename + its pointed to cdn.
1947
-        $this->assertContains( AUTOPTIMIZE_CACHE_CHILD_DIR, $url );
1948
-        $this->assertContains( '/autoptimize_single_', $url );
1949
-        $this->assertContains( $styles->cdn_url, $url );
1947
+        $this->assertContains(AUTOPTIMIZE_CACHE_CHILD_DIR, $url);
1948
+        $this->assertContains('/autoptimize_single_', $url);
1949
+        $this->assertContains($styles->cdn_url, $url);
1950 1950
 
1951 1951
         // Actual minified css contents are minified and cdn-ed.
1952
-        $path     = $styles->getpath( $url );
1953
-        $contents = file_get_contents( $path );
1954
-        $this->assertContains( $styles->cdn_url, $contents );
1955
-        $this->assertContains( '.bg{background:url(' . $styles->cdn_url, $contents );
1952
+        $path     = $styles->getpath($url);
1953
+        $contents = file_get_contents($path);
1954
+        $this->assertContains($styles->cdn_url, $contents);
1955
+        $this->assertContains('.bg{background:url('.$styles->cdn_url, $contents);
1956 1956
     }
1957 1957
 
1958 1958
     public function test_ao_partners_instantiation_without_explicit_include()
1959 1959
     {
1960 1960
         $partners = new autoptimizePartners();
1961
-        $this->assertTrue( $partners instanceof autoptimizePartners );
1961
+        $this->assertTrue($partners instanceof autoptimizePartners);
1962 1962
     }
1963 1963
 
1964 1964
     public function test_html_minify_keep_html_comments_inside_script_blocks()
1965 1965
     {
1966
-        $markup   = <<<MARKUP
1966
+        $markup = <<<MARKUP
1967 1967
 <script>
1968 1968
 <!-- End Support AJAX add to cart -->
1969 1969
 var a = "b";
@@ -1993,23 +1993,23 @@  discard block
 block discarded – undo
1993 1993
             ],
1994 1994
         ];
1995 1995
 
1996
-        $instance = new autoptimizeHTML( $markup );
1997
-        $instance->read( $options['autoptimizeHTML'] );
1996
+        $instance = new autoptimizeHTML($markup);
1997
+        $instance->read($options['autoptimizeHTML']);
1998 1998
         $instance->minify();
1999 1999
         $actual = $instance->getcontent();
2000
-        $this->assertEquals( $expected, $actual );
2000
+        $this->assertEquals($expected, $actual);
2001 2001
 
2002
-        $instance = new autoptimizeHTML( $markup2 );
2003
-        $instance->read( $options['autoptimizeHTML'] );
2002
+        $instance = new autoptimizeHTML($markup2);
2003
+        $instance->read($options['autoptimizeHTML']);
2004 2004
         $instance->minify();
2005 2005
         $actual2 = $instance->getcontent();
2006
-        $this->assertEquals( $expected2, $actual2 );
2006
+        $this->assertEquals($expected2, $actual2);
2007 2007
     }
2008 2008
 
2009 2009
     public function test_html_minify_remove_html_comments_inside_script_blocks()
2010 2010
     {
2011 2011
         // Default case, html comments removed (keepcomments = false).
2012
-        $markup1   = <<<MARKUP
2012
+        $markup1 = <<<MARKUP
2013 2013
 <script>
2014 2014
 var a = "b";
2015 2015
 <!-- End Support AJAX add to cart -->
@@ -2020,7 +2020,7 @@  discard block
 block discarded – undo
2020 2020
 <!-- End Support AJAX add to cart</script>
2021 2021
 MARKUP;
2022 2022
 
2023
-        $markup2   = <<<MARKUP
2023
+        $markup2 = <<<MARKUP
2024 2024
 <script>
2025 2025
 <!-- End Support AJAX add to cart -->
2026 2026
 var a = "b";
@@ -2037,17 +2037,17 @@  discard block
 block discarded – undo
2037 2037
             ],
2038 2038
         ];
2039 2039
 
2040
-        $instance = new autoptimizeHTML( $markup1 );
2041
-        $instance->read( $options['autoptimizeHTML'] );
2040
+        $instance = new autoptimizeHTML($markup1);
2041
+        $instance->read($options['autoptimizeHTML']);
2042 2042
         $instance->minify();
2043 2043
         $actual = $instance->getcontent();
2044
-        $this->assertEquals( $expected1, $actual );
2044
+        $this->assertEquals($expected1, $actual);
2045 2045
 
2046
-        $instance = new autoptimizeHTML( $markup2 );
2047
-        $instance->read( $options['autoptimizeHTML'] );
2046
+        $instance = new autoptimizeHTML($markup2);
2047
+        $instance->read($options['autoptimizeHTML']);
2048 2048
         $instance->minify();
2049 2049
         $actual2 = $instance->getcontent();
2050
-        $this->assertEquals( $expected2, $actual2 );
2050
+        $this->assertEquals($expected2, $actual2);
2051 2051
     }
2052 2052
 
2053 2053
     public function test_html_minify_html_comments_inside_script_blocks_old_school_pattern()
@@ -2071,11 +2071,11 @@  discard block
 block discarded – undo
2071 2071
             ],
2072 2072
         ];
2073 2073
 
2074
-        $instance = new autoptimizeHTML( $markup );
2075
-        $instance->read( $options['autoptimizeHTML'] );
2074
+        $instance = new autoptimizeHTML($markup);
2075
+        $instance->read($options['autoptimizeHTML']);
2076 2076
         $instance->minify();
2077 2077
         $actual = $instance->getcontent();
2078
-        $this->assertEquals( $expected, $actual );
2078
+        $this->assertEquals($expected, $actual);
2079 2079
     }
2080 2080
 
2081 2081
     public function test_html_minify_html_comments_inside_script_blocks_old_school_pattern_untouched()
@@ -2100,49 +2100,49 @@  discard block
 block discarded – undo
2100 2100
             ],
2101 2101
         ];
2102 2102
 
2103
-        $instance = new autoptimizeHTML( $markup );
2104
-        $instance->read( $options['autoptimizeHTML'] );
2103
+        $instance = new autoptimizeHTML($markup);
2104
+        $instance->read($options['autoptimizeHTML']);
2105 2105
         $instance->minify();
2106 2106
         $actual = $instance->getcontent();
2107
-        $this->assertEquals( $expected, $actual );
2107
+        $this->assertEquals($expected, $actual);
2108 2108
     }
2109 2109
 
2110 2110
     public function test_utils_mbstring_availabilty_overriding()
2111 2111
     {
2112 2112
         $orig     = autoptimizeUtils::mbstring_available();
2113
-        $opposite = ! $orig;
2113
+        $opposite = !$orig;
2114 2114
 
2115
-        $this->assertSame( $orig, autoptimizeUtils::mbstring_available() );
2115
+        $this->assertSame($orig, autoptimizeUtils::mbstring_available());
2116 2116
         // Override works...
2117
-        $this->assertSame( $opposite, autoptimizeUtils::mbstring_available( $opposite ) );
2117
+        $this->assertSame($opposite, autoptimizeUtils::mbstring_available($opposite));
2118 2118
         // And override remains cached as the last version.
2119
-        $this->assertSame( $opposite, autoptimizeUtils::mbstring_available() );
2119
+        $this->assertSame($opposite, autoptimizeUtils::mbstring_available());
2120 2120
     }
2121 2121
 
2122 2122
     public function test_utils_mbstring_basics()
2123 2123
     {
2124 2124
         // Turn on mbstring usage.
2125
-        autoptimizeUtils::mbstring_available( true );
2125
+        autoptimizeUtils::mbstring_available(true);
2126 2126
 
2127
-        $this->assertSame( 2, autoptimizeUtils::strlen( "\x00\xFF", 'ASCII' ) );
2128
-        $this->assertSame( 2, autoptimizeUtils::strlen( "\x00\xFF", 'CP850' ) );
2129
-        $this->assertSame( 3, autoptimizeUtils::strlen( '한국어' ) );
2127
+        $this->assertSame(2, autoptimizeUtils::strlen("\x00\xFF", 'ASCII'));
2128
+        $this->assertSame(2, autoptimizeUtils::strlen("\x00\xFF", 'CP850'));
2129
+        $this->assertSame(3, autoptimizeUtils::strlen('한국어'));
2130 2130
 
2131
-        $this->assertFalse( @autoptimizeUtils::strpos( 'abc', '' ) );
2132
-        $this->assertFalse( @autoptimizeUtils::strpos( 'abc', 'a', -1 ) );
2133
-        $this->assertFalse( autoptimizeUtils::strpos( 'abc', 'd' ) );
2134
-        $this->assertFalse( autoptimizeUtils::strpos( 'abc', 'a', 3 ) );
2135
-        $this->assertSame( 1, autoptimizeUtils::strpos( '한국어', '국' ) );
2131
+        $this->assertFalse(@autoptimizeUtils::strpos('abc', ''));
2132
+        $this->assertFalse(@autoptimizeUtils::strpos('abc', 'a', -1));
2133
+        $this->assertFalse(autoptimizeUtils::strpos('abc', 'd'));
2134
+        $this->assertFalse(autoptimizeUtils::strpos('abc', 'a', 3));
2135
+        $this->assertSame(1, autoptimizeUtils::strpos('한국어', '국'));
2136 2136
     }
2137 2137
 
2138 2138
     /**
2139 2139
      * @dataProvider provider_utils_substr_replace
2140 2140
      */
2141
-    function test_utils_substr_replace_basics_mbstring( $s, $repl, $start, $len, $expected )
2141
+    function test_utils_substr_replace_basics_mbstring($s, $repl, $start, $len, $expected)
2142 2142
     {
2143 2143
         // Force mbstring code path...
2144
-        autoptimizeUtils::mbstring_available( true );
2145
-        $this->assertEquals( $expected, autoptimizeUtils::substr_replace( $s, $repl, $start, $len ) );
2144
+        autoptimizeUtils::mbstring_available(true);
2145
+        $this->assertEquals($expected, autoptimizeUtils::substr_replace($s, $repl, $start, $len));
2146 2146
     }
2147 2147
 
2148 2148
     public function provider_utils_substr_replace()
@@ -2184,48 +2184,48 @@  discard block
 block discarded – undo
2184 2184
 
2185 2185
     function test_mb_substr_replace_with_ascii_input_string()
2186 2186
     {
2187
-        autoptimizeUtils::mbstring_available( false );
2187
+        autoptimizeUtils::mbstring_available(false);
2188 2188
 
2189 2189
         $str = 'Ascii';
2190 2190
 
2191
-        $this->assertSame( 'Añ', autoptimizeUtils::substr_replace( $str, 'ñ', 1 ) );
2192
-        $this->assertSame( 'ñcii', autoptimizeUtils::substr_replace( $str, 'ñ', 0, 2 ) );
2193
-        $this->assertSame( 'Asñx', autoptimizeUtils::substr_replace( $str, 'ñx', 2, 3 ) );
2194
-        $this->assertSame( 'Asz', autoptimizeUtils::substr_replace( $str, 'z', 2, 10 ) );
2195
-        $this->assertSame( 'Añii', autoptimizeUtils::substr_replace( $str, 'ñ', 1, 2 ) );
2191
+        $this->assertSame('Añ', autoptimizeUtils::substr_replace($str, 'ñ', 1));
2192
+        $this->assertSame('ñcii', autoptimizeUtils::substr_replace($str, 'ñ', 0, 2));
2193
+        $this->assertSame('Asñx', autoptimizeUtils::substr_replace($str, 'ñx', 2, 3));
2194
+        $this->assertSame('Asz', autoptimizeUtils::substr_replace($str, 'z', 2, 10));
2195
+        $this->assertSame('Añii', autoptimizeUtils::substr_replace($str, 'ñ', 1, 2));
2196 2196
     }
2197 2197
 
2198 2198
     function test_mb_substr_replace_with_utf8_input_string()
2199 2199
     {
2200
-        autoptimizeUtils::mbstring_available( true );
2200
+        autoptimizeUtils::mbstring_available(true);
2201 2201
 
2202 2202
         $str = 'âønæë';
2203 2203
 
2204
-        $this->assertSame( 'âñ', autoptimizeUtils::substr_replace( $str, 'ñ', 1 ) ); // No length.
2205
-        $this->assertSame( 'ñnæë', autoptimizeUtils::substr_replace( $str, 'ñ', 0, 2 ) );
2206
-        $this->assertSame( 'âøñx', autoptimizeUtils::substr_replace( $str, 'ñx', 2, 3 ) );
2207
-        $this->assertSame( 'âøz', autoptimizeUtils::substr_replace( $str, 'z', 2, 10 ) ); // Length larger than possible...
2208
-        $this->assertSame( 'âñæë', autoptimizeUtils::substr_replace( $str, 'ñ', 1, 2 ) );
2204
+        $this->assertSame('âñ', autoptimizeUtils::substr_replace($str, 'ñ', 1)); // No length.
2205
+        $this->assertSame('ñnæë', autoptimizeUtils::substr_replace($str, 'ñ', 0, 2));
2206
+        $this->assertSame('âøñx', autoptimizeUtils::substr_replace($str, 'ñx', 2, 3));
2207
+        $this->assertSame('âøz', autoptimizeUtils::substr_replace($str, 'z', 2, 10)); // Length larger than possible...
2208
+        $this->assertSame('âñæë', autoptimizeUtils::substr_replace($str, 'ñ', 1, 2));
2209 2209
     }
2210 2210
 
2211 2211
     function test_default_substr_replace_with_ascii_input_string()
2212 2212
     {
2213 2213
         // Disable mbstring which should fall ack to substr_replace...
2214
-        autoptimizeUtils::mbstring_available( false );
2214
+        autoptimizeUtils::mbstring_available(false);
2215 2215
 
2216 2216
         $str = 'Ascii';
2217 2217
 
2218
-        $this->assertSame( 'Añ', autoptimizeUtils::substr_replace( $str, 'ñ', 1 ) );
2219
-        $this->assertSame( 'ñcii', autoptimizeUtils::substr_replace( $str, 'ñ', 0, 2 ) );
2220
-        $this->assertSame( 'Asñx', autoptimizeUtils::substr_replace( $str, 'ñx', 2, 3 ) );
2221
-        $this->assertSame( 'Asz', autoptimizeUtils::substr_replace( $str, 'z', 2, 10 ) );
2222
-        $this->assertSame( 'Añii', autoptimizeUtils::substr_replace( $str, 'ñ', 1, 2 ) );
2218
+        $this->assertSame('Añ', autoptimizeUtils::substr_replace($str, 'ñ', 1));
2219
+        $this->assertSame('ñcii', autoptimizeUtils::substr_replace($str, 'ñ', 0, 2));
2220
+        $this->assertSame('Asñx', autoptimizeUtils::substr_replace($str, 'ñx', 2, 3));
2221
+        $this->assertSame('Asz', autoptimizeUtils::substr_replace($str, 'z', 2, 10));
2222
+        $this->assertSame('Añii', autoptimizeUtils::substr_replace($str, 'ñ', 1, 2));
2223 2223
     }
2224 2224
 
2225 2225
     function test_default_substr_replace_with_utf8_input_string()
2226 2226
     {
2227 2227
         // Disabling mbstring, falling back to substr_replace...
2228
-        autoptimizeUtils::mbstring_available( false );
2228
+        autoptimizeUtils::mbstring_available(false);
2229 2229
 
2230 2230
         // This is really impossible to make work properly, since
2231 2231
         // any start/len parameters we give are working with bytes instead
@@ -2234,59 +2234,59 @@  discard block
 block discarded – undo
2234 2234
 
2235 2235
         // $this->assertSame( '�ñ', autoptimizeUtils::substr_replace( $str, 'ñ', 1 ) ); // No length.
2236 2236
         // $this->assertSame( 'ñ�næë', autoptimizeUtils::substr_replace( $str, 'ñ', 1, 2 ) );
2237
-        $this->assertSame( 'ñønæë', autoptimizeUtils::substr_replace( $str, 'ñ', 0, 2 ) );
2238
-        $this->assertSame( 'âñxæë', autoptimizeUtils::substr_replace( $str, 'ñx', 2, 3 ) );
2239
-        $this->assertSame( 'âz', autoptimizeUtils::substr_replace( $str, 'z', 2, 10 ) ); // Length larger than possible...
2237
+        $this->assertSame('ñønæë', autoptimizeUtils::substr_replace($str, 'ñ', 0, 2));
2238
+        $this->assertSame('âñxæë', autoptimizeUtils::substr_replace($str, 'ñx', 2, 3));
2239
+        $this->assertSame('âz', autoptimizeUtils::substr_replace($str, 'z', 2, 10)); // Length larger than possible...
2240 2240
     }
2241 2241
 
2242 2242
     public function test_cache_fast_delete()
2243 2243
     {
2244
-        add_filter( 'autoptimize_filter_cache_clear_advanced', '__return_true' );
2244
+        add_filter('autoptimize_filter_cache_clear_advanced', '__return_true');
2245 2245
 
2246
-        $this->assertTrue( autoptimizeCache::clearall_actionless() );
2246
+        $this->assertTrue(autoptimizeCache::clearall_actionless());
2247 2247
 
2248
-        remove_all_filters( 'autoptimize_filter_cache_clear_advanced' );
2248
+        remove_all_filters('autoptimize_filter_cache_clear_advanced');
2249 2249
     }
2250 2250
 
2251 2251
     public function test_delete_advanced_cache_clear_artifacts()
2252 2252
     {
2253
-        add_filter( 'autoptimize_filter_cache_clear_advanced', '__return_true' );
2253
+        add_filter('autoptimize_filter_cache_clear_advanced', '__return_true');
2254 2254
 
2255
-        $this->assertTrue( autoptimizeCache::delete_advanced_cache_clear_artifacts() );
2255
+        $this->assertTrue(autoptimizeCache::delete_advanced_cache_clear_artifacts());
2256 2256
 
2257
-        remove_all_filters( 'autoptimize_filter_cache_clear_advanced' );
2257
+        remove_all_filters('autoptimize_filter_cache_clear_advanced');
2258 2258
     }
2259 2259
 
2260 2260
     public function provider_canonicalization()
2261 2261
     {
2262 2262
         return array(
2263
-            array( '../common', 'common' ),
2264
-            array( '../what-does-this-mean/really?/', 'what-does-this-mean/really?/' ),
2265
-            array( '../../what/where/how', 'what/where/how' ),
2266
-            array( '/../more.dots.please/', '/more.dots.please/' ),
2267
-            array( '/../../what/where/how', '/what/where/how' ),
2268
-            array( '/a/b/c/../../../d/e/file.txt', '/d/e/file.txt' ),
2269
-            array( 'a/b/../c', 'a/c' ),
2270
-            array( './../../etc/passwd', './etc/passwd' ),
2271
-            array( '/var/.////./user/./././..//.//../////../././.././test/////', '/test/' ),
2272
-            array( '/var/user/./././.././../.././././test/', '/test/' ),
2273
-            array( '/hello/0//how/../are/../you', '/hello/0/you' ),
2274
-            array( '', '' ),
2275
-            array( '.', '.' ),
2276
-            array( '..', '..' ),
2277
-            array( './..', './..' ),
2278
-            array( '../.', '.' ),
2263
+            array('../common', 'common'),
2264
+            array('../what-does-this-mean/really?/', 'what-does-this-mean/really?/'),
2265
+            array('../../what/where/how', 'what/where/how'),
2266
+            array('/../more.dots.please/', '/more.dots.please/'),
2267
+            array('/../../what/where/how', '/what/where/how'),
2268
+            array('/a/b/c/../../../d/e/file.txt', '/d/e/file.txt'),
2269
+            array('a/b/../c', 'a/c'),
2270
+            array('./../../etc/passwd', './etc/passwd'),
2271
+            array('/var/.////./user/./././..//.//../////../././.././test/////', '/test/'),
2272
+            array('/var/user/./././.././../.././././test/', '/test/'),
2273
+            array('/hello/0//how/../are/../you', '/hello/0/you'),
2274
+            array('', ''),
2275
+            array('.', '.'),
2276
+            array('..', '..'),
2277
+            array('./..', './..'),
2278
+            array('../.', '.'),
2279 2279
             // This might be debatable...
2280
-            array( '../..', '..' ),
2280
+            array('../..', '..'),
2281 2281
         );
2282 2282
     }
2283 2283
 
2284 2284
     /**
2285 2285
      * @dataProvider provider_canonicalization
2286 2286
      */
2287
-    public function test_path_canonicalize( $path, $canonicalized )
2287
+    public function test_path_canonicalize($path, $canonicalized)
2288 2288
     {
2289
-        $this->assertSame( $canonicalized, autoptimizeUtils::path_canonicalize( $path ) );
2289
+        $this->assertSame($canonicalized, autoptimizeUtils::path_canonicalize($path));
2290 2290
     }
2291 2291
 
2292 2292
     /**
@@ -2300,16 +2300,16 @@  discard block
 block discarded – undo
2300 2300
     public function test_autoptimize_filter_cdn_magic_path_check()
2301 2301
     {
2302 2302
         $cdnurl = 'http://cdn.example.org';
2303
-        add_filter( 'autoptimize_filter_cdn_magic_path_check', '__return_false', 10, 2 );
2303
+        add_filter('autoptimize_filter_cdn_magic_path_check', '__return_false', 10, 2);
2304 2304
 
2305 2305
         // Even when site is in a subfolder, the resulting cdn-rewritten url
2306 2306
         // should not magically include it, due to the above filter.
2307 2307
         // The second parameter is here to force a cache miss and re-run
2308 2308
         // the filter since we're using the same cdn url all over the place,
2309 2309
         // but want to prove different things with it.
2310
-        $this->assertSame( $cdnurl, autoptimizeUtils::tweak_cdn_url_if_needed( $cdnurl, true ) );
2310
+        $this->assertSame($cdnurl, autoptimizeUtils::tweak_cdn_url_if_needed($cdnurl, true));
2311 2311
 
2312
-        remove_all_filters( 'autoptimize_filter_cdn_magic_path_check' );
2312
+        remove_all_filters('autoptimize_filter_cdn_magic_path_check');
2313 2313
     }
2314 2314
 
2315 2315
     /**
@@ -2334,9 +2334,9 @@  discard block
 block discarded – undo
2334 2334
 <img src='$imgopthost/client/q_glossy,ret_img,w_400,h_200/$siteurl/wp-content/image.jpg' width='400' height='200' srcset="$imgopthost/client/q_glossy,ret_img,w_300/$siteurl/wp-content/image-300X150.jpg 300w, $imgopthost/client/q_glossy,ret_img,w_600/$siteurl/wp-content/image-600X300.jpg 600w" sizes="(max-width: 300px) 100vw, 300px" />
2335 2335
 MARKUP;
2336 2336
         $instance = autoptimizeImages::instance();
2337
-        $instance->set_options( $opts );
2338
-        $actual = $instance->filter_optimize_images( $markup );
2339
-        $this->assertEquals( $expected, $actual );
2337
+        $instance->set_options($opts);
2338
+        $actual = $instance->filter_optimize_images($markup);
2339
+        $this->assertEquals($expected, $actual);
2340 2340
     }
2341 2341
     
2342 2342
     /**
@@ -2364,9 +2364,9 @@  discard block
 block discarded – undo
2364 2364
 <img src='$siteurl/wp-content/excluded.jpg' width='400' height='200' srcset="$siteurl/wp-content/image-300X150.jpg 300w, $siteurl/wp-content/image-600X300.jpg 600w" sizes="(max-width: 300px) 100vw, 300px" />
2365 2365
 MARKUP;
2366 2366
         $instance = autoptimizeImages::instance();
2367
-        $instance->set_options( $opts );
2368
-        $actual = $instance->filter_optimize_images( $markup );
2369
-        $this->assertEquals( $expected, $actual );
2367
+        $instance->set_options($opts);
2368
+        $actual = $instance->filter_optimize_images($markup);
2369
+        $this->assertEquals($expected, $actual);
2370 2370
     }
2371 2371
 
2372 2372
     /**
@@ -2391,9 +2391,9 @@  discard block
 block discarded – undo
2391 2391
 <picture><source srcset="$imgopthost/client/q_glossy,ret_img/$siteurl/wp-content/image.jpg" media="(min-width: 800px)"><img src="$imgopthost/client/q_glossy,ret_img/$siteurl/wp-content/image.jpg"/></picture>
2392 2392
 MARKUP;
2393 2393
         $instance = autoptimizeImages::instance();
2394
-        $instance->set_options( $opts );
2395
-        $actual = $instance->filter_optimize_images( $markup );
2396
-        $this->assertEquals( $expected, $actual );
2394
+        $instance->set_options($opts);
2395
+        $actual = $instance->filter_optimize_images($markup);
2396
+        $this->assertEquals($expected, $actual);
2397 2397
     }
2398 2398
 
2399 2399
     /**
@@ -2418,9 +2418,9 @@  discard block
 block discarded – undo
2418 2418
 <picture><source data-srcset="$imgopthost/client/q_glossy,ret_img/$siteurl/wp-content/image.jpg" media="(min-width: 800px)"><noscript><img src="$imgopthost/client/q_glossy,ret_img/$siteurl/wp-content/image.jpg"/></noscript><img class="lazyload" src='$imgopthost/client/q_lqip,ret_wait/$siteurl/wp-content/image.jpg' data-src="https://cdn.shortpixel.ai/client/q_glossy,ret_img/$siteurl/wp-content/image.jpg"/></picture>
2419 2419
 MARKUP;
2420 2420
         $instance = autoptimizeImages::instance();
2421
-        $instance->set_options( $opts );
2422
-        $actual = $instance->filter_optimize_images( $markup );
2423
-        $this->assertEquals( $expected, $actual );
2421
+        $instance->set_options($opts);
2422
+        $actual = $instance->filter_optimize_images($markup);
2423
+        $this->assertEquals($expected, $actual);
2424 2424
     }
2425 2425
 
2426 2426
     /**
@@ -2446,9 +2446,9 @@  discard block
 block discarded – undo
2446 2446
 MARKUP;
2447 2447
 
2448 2448
         $instance = autoptimizeImages::instance();
2449
-        $instance->set_options( $opts );
2450
-        $actual = $instance->filter_optimize_images( $markup );
2451
-        $this->assertEquals( $expected, $actual );
2449
+        $instance->set_options($opts);
2450
+        $actual = $instance->filter_optimize_images($markup);
2451
+        $this->assertEquals($expected, $actual);
2452 2452
     }
2453 2453
 
2454 2454
     /**
@@ -2474,9 +2474,9 @@  discard block
 block discarded – undo
2474 2474
 MARKUP;
2475 2475
 
2476 2476
         $instance = autoptimizeImages::instance();
2477
-        $instance->set_options( $opts );
2478
-        $actual = $instance->filter_optimize_images( $markup );
2479
-        $this->assertEquals( $expected, $actual );
2477
+        $instance->set_options($opts);
2478
+        $actual = $instance->filter_optimize_images($markup);
2479
+        $this->assertEquals($expected, $actual);
2480 2480
     }
2481 2481
 
2482 2482
     /**
@@ -2501,9 +2501,9 @@  discard block
 block discarded – undo
2501 2501
 MARKUP;
2502 2502
 
2503 2503
         $instance = autoptimizeImages::instance();
2504
-        $instance->set_options( $opts );
2505
-        $actual = $instance->filter_lazyload_images( $markup );
2506
-        $this->assertEquals( $expected, $actual );
2504
+        $instance->set_options($opts);
2505
+        $actual = $instance->filter_lazyload_images($markup);
2506
+        $this->assertEquals($expected, $actual);
2507 2507
     }
2508 2508
 
2509 2509
     /**
@@ -2528,9 +2528,9 @@  discard block
 block discarded – undo
2528 2528
 MARKUP;
2529 2529
 
2530 2530
         $instance = autoptimizeImages::instance();
2531
-        $instance->set_options( $opts );
2532
-        $actual = $instance->filter_lazyload_images( $markup );
2533
-        $this->assertEquals( $expected, $actual );
2531
+        $instance->set_options($opts);
2532
+        $actual = $instance->filter_lazyload_images($markup);
2533
+        $this->assertEquals($expected, $actual);
2534 2534
     }
2535 2535
 
2536 2536
     /**
@@ -2555,9 +2555,9 @@  discard block
 block discarded – undo
2555 2555
 MARKUP;
2556 2556
 
2557 2557
         $instance = autoptimizeImages::instance();
2558
-        $instance->set_options( $opts );
2559
-        $actual = $instance->filter_lazyload_images( $markup );
2560
-        $this->assertEquals( $expected, $actual );
2558
+        $instance->set_options($opts);
2559
+        $actual = $instance->filter_lazyload_images($markup);
2560
+        $this->assertEquals($expected, $actual);
2561 2561
     }
2562 2562
 
2563 2563
     /**
@@ -2576,11 +2576,11 @@  discard block
 block discarded – undo
2576 2576
 MARKUP;
2577 2577
 
2578 2578
         $instance = autoptimizeImages::instance();
2579
-        $instance->set_options( $opts );
2580
-        $actual = $instance->filter_optimize_images( $markup );
2579
+        $instance->set_options($opts);
2580
+        $actual = $instance->filter_optimize_images($markup);
2581 2581
 
2582 2582
         // Expecting $markup since replacement should not happen.
2583
-        $this->assertEquals( $markup, $actual );
2583
+        $this->assertEquals($markup, $actual);
2584 2584
     }
2585 2585
 
2586 2586
     /**
@@ -2606,10 +2606,10 @@  discard block
 block discarded – undo
2606 2606
 MARKUP;
2607 2607
 
2608 2608
         $instance = autoptimizeImages::instance();
2609
-        $instance->set_options( $opts );
2610
-        $actual = $instance->filter_optimize_images( $markup );
2609
+        $instance->set_options($opts);
2610
+        $actual = $instance->filter_optimize_images($markup);
2611 2611
 
2612
-        $this->assertEquals( $expected, $actual );
2612
+        $this->assertEquals($expected, $actual);
2613 2613
     }
2614 2614
 
2615 2615
     /**
@@ -2619,8 +2619,8 @@  discard block
 block discarded – undo
2619 2619
     {
2620 2620
         $urls                                        = $this->get_urls();
2621 2621
         $siteurl                                     = $urls['siteurl'];
2622
-        $siteurlparsed                               = parse_url( $siteurl );
2623
-        $sitedomain                                  = $siteurlparsed['scheme'] . '://' . $siteurlparsed['host'];
2622
+        $siteurlparsed                               = parse_url($siteurl);
2623
+        $sitedomain                                  = $siteurlparsed['scheme'].'://'.$siteurlparsed['host'];
2624 2624
         $imgopthost                                  = $urls['imgopthost'];
2625 2625
         $opts                                        = autoptimizeImages::fetch_options();
2626 2626
         $opts['autoptimize_imgopt_checkbox_field_1'] = '1';
@@ -2635,10 +2635,10 @@  discard block
 block discarded – undo
2635 2635
 MARKUP;
2636 2636
 
2637 2637
         $instance = autoptimizeImages::instance();
2638
-        $instance->set_options( $opts );
2639
-        $actual = $instance->filter_optimize_images( $markup );
2638
+        $instance->set_options($opts);
2639
+        $actual = $instance->filter_optimize_images($markup);
2640 2640
 
2641
-        $this->assertEquals( $expected, $actual );
2641
+        $this->assertEquals($expected, $actual);
2642 2642
     }
2643 2643
 
2644 2644
     /**
@@ -2663,53 +2663,53 @@  discard block
 block discarded – undo
2663 2663
 MARKUP;
2664 2664
 
2665 2665
         $instance = autoptimizeImages::instance();
2666
-        $instance->set_options( $opts );
2667
-        $actual = $instance->filter_optimize_images( $markup );
2666
+        $instance->set_options($opts);
2667
+        $actual = $instance->filter_optimize_images($markup);
2668 2668
 
2669
-        $this->assertEquals( $expected, $actual );
2669
+        $this->assertEquals($expected, $actual);
2670 2670
     }
2671 2671
 
2672 2672
     /**
2673 2673
      * @dataProvider provider_str_is_valid_regex
2674 2674
      */
2675
-    public function test_str_is_valid_regex( $str, $expected )
2675
+    public function test_str_is_valid_regex($str, $expected)
2676 2676
     {
2677
-        $actual = autoptimizeUtils::str_is_valid_regex( $str );
2677
+        $actual = autoptimizeUtils::str_is_valid_regex($str);
2678 2678
 
2679
-        $this->assertEquals( $expected, $actual );
2679
+        $this->assertEquals($expected, $actual);
2680 2680
     }
2681 2681
 
2682 2682
     public function provider_str_is_valid_regex()
2683 2683
     {
2684 2684
         return [
2685
-            [ '<!--[if', false ],
2686
-            [ '&lt;--[if', false ],
2687
-            [ '/booya/i', true ],
2688
-            [ '~Valid(Regular)Expression~', true ],
2685
+            ['<!--[if', false],
2686
+            ['&lt;--[if', false],
2687
+            ['/booya/i', true],
2688
+            ['~Valid(Regular)Expression~', true],
2689 2689
         ];
2690 2690
     }
2691 2691
 
2692 2692
     /**
2693 2693
      * @dataProvider provider_protocol_relative_tests
2694 2694
      */
2695
-    public function test_is_protocol_relative( $str, $expected )
2695
+    public function test_is_protocol_relative($str, $expected)
2696 2696
     {
2697
-        $actual = autoptimizeUtils::is_protocol_relative( $str );
2697
+        $actual = autoptimizeUtils::is_protocol_relative($str);
2698 2698
 
2699
-        $this->assertEquals( $expected, $actual );
2699
+        $this->assertEquals($expected, $actual);
2700 2700
     }
2701 2701
 
2702 2702
     public function provider_protocol_relative_tests()
2703 2703
     {
2704 2704
         return [
2705
-            [ '//something-that-might-be-an-url-but-isnt-really', true ],
2706
-            [ '', false ],
2707
-            [ null, false ],
2708
-            [ 'booya/i', false ],
2709
-            [ '/root-relative', false ],
2710
-            [ 'http://what.ever/', false ],
2711
-            [ 'https://booya.kasha', false ],
2712
-            [ '1/', false ],
2705
+            ['//something-that-might-be-an-url-but-isnt-really', true],
2706
+            ['', false],
2707
+            [null, false],
2708
+            ['booya/i', false],
2709
+            ['/root-relative', false],
2710
+            ['http://what.ever/', false],
2711
+            ['https://booya.kasha', false],
2712
+            ['1/', false],
2713 2713
         ];
2714 2714
     }
2715 2715
 
@@ -2724,38 +2724,38 @@  discard block
 block discarded – undo
2724 2724
 
2725 2725
         $expected = 'img.centered,.aligncenter{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}';
2726 2726
 
2727
-        $instance = new autoptimizeStyles( $css );
2728
-        $minified = $instance->run_minifier_on( $css );
2727
+        $instance = new autoptimizeStyles($css);
2728
+        $minified = $instance->run_minifier_on($css);
2729 2729
 
2730
-        $this->assertEquals( $expected, $minified );
2730
+        $this->assertEquals($expected, $minified);
2731 2731
     }
2732 2732
 
2733 2733
     public function test_css_font_names_mangling()
2734 2734
     {
2735 2735
         // Properly quoted font names dont get mangled.
2736 2736
         $css      = 'h2{font-family:"Archivo Black"}';
2737
-        $instance = new autoptimizeStyles( $css );
2738
-        $actual   = $instance->run_minifier_on( $css );
2739
-        $this->assertEquals( $css, $actual );
2737
+        $instance = new autoptimizeStyles($css);
2738
+        $actual   = $instance->run_minifier_on($css);
2739
+        $this->assertEquals($css, $actual);
2740 2740
 
2741 2741
         // When not quoted, 'Black' used to become '#000', but not anymore :) ...
2742 2742
         $css_unquoted = 'h2{font-family:Archivo Black;}';
2743 2743
         $expected     = 'h2{font-family:Archivo Black}';
2744
-        $instance     = new autoptimizeStyles( $css_unquoted );
2745
-        $actual       = $instance->run_minifier_on( $css_unquoted );
2746
-        $this->assertEquals( $expected, $actual );
2744
+        $instance     = new autoptimizeStyles($css_unquoted);
2745
+        $actual       = $instance->run_minifier_on($css_unquoted);
2746
+        $this->assertEquals($expected, $actual);
2747 2747
 
2748 2748
         $css_unquoted = 'h1{font:italic 1.2em Fira White,serif}';
2749
-        $instance     = new autoptimizeStyles( $css_unquoted );
2750
-        $actual       = $instance->run_minifier_on( $css_unquoted );
2751
-        $this->assertEquals( $css_unquoted, $actual );
2749
+        $instance     = new autoptimizeStyles($css_unquoted);
2750
+        $actual       = $instance->run_minifier_on($css_unquoted);
2751
+        $this->assertEquals($css_unquoted, $actual);
2752 2752
     }
2753 2753
 
2754 2754
     public function test_is_plugin_active_utils_wrapper()
2755 2755
     {
2756 2756
         // Our plugin is loaded via "muplugins_loaded" filter in tests/bootstrap.php.
2757
-        $this->assertFalse( autoptimizeUtils::is_plugin_active( 'autoptimize/autoptimize.php' ) );
2758
-        $this->assertFalse( autoptimizeUtils::is_plugin_active( 'async-javascript/async-javascript.php' ) );
2757
+        $this->assertFalse(autoptimizeUtils::is_plugin_active('autoptimize/autoptimize.php'));
2758
+        $this->assertFalse(autoptimizeUtils::is_plugin_active('async-javascript/async-javascript.php'));
2759 2759
     }
2760 2760
 
2761 2761
     public function test_jsminphp_string_literal_minification()
@@ -2769,8 +2769,8 @@  discard block
 block discarded – undo
2769 2769
         $expected = '`line
2770 2770
 break`+`he  llo`;foo`hel( \'\');lo`;`he\nl\`lo`;(`he${one + two}`)';
2771 2771
 
2772
-        $actual = JSMin::minify( $js );
2773
-        $this->assertEquals( $expected, $actual );
2772
+        $actual = JSMin::minify($js);
2773
+        $this->assertEquals($expected, $actual);
2774 2774
     }
2775 2775
 
2776 2776
     /**
@@ -2790,9 +2790,9 @@  discard block
 block discarded – undo
2790 2790
 MARKUP;
2791 2791
 
2792 2792
         $instance = autoptimizeExtra::instance();
2793
-        $instance->set_options( $opts );
2794
-        $actual = $instance->filter_preload( $markup );
2795
-        $this->assertEquals( $expected, $actual );
2793
+        $instance->set_options($opts);
2794
+        $actual = $instance->filter_preload($markup);
2795
+        $this->assertEquals($expected, $actual);
2796 2796
     }
2797 2797
 
2798 2798
     /**
@@ -2812,9 +2812,9 @@  discard block
 block discarded – undo
2812 2812
 MARKUP;
2813 2813
 
2814 2814
         $instance = autoptimizeExtra::instance();
2815
-        $instance->set_options( $opts );
2816
-        $actual = $instance->filter_preload( $markup );
2817
-        $this->assertEquals( $expected, $actual );
2815
+        $instance->set_options($opts);
2816
+        $actual = $instance->filter_preload($markup);
2817
+        $this->assertEquals($expected, $actual);
2818 2818
     }
2819 2819
 
2820 2820
     /**
@@ -2834,9 +2834,9 @@  discard block
 block discarded – undo
2834 2834
 MARKUP;
2835 2835
 
2836 2836
         $instance = autoptimizeExtra::instance();
2837
-        $instance->set_options( $opts );
2838
-        $actual = $instance->filter_optimize_google_fonts( $markup );
2839
-        $this->assertEquals( $expected, $actual );
2837
+        $instance->set_options($opts);
2838
+        $actual = $instance->filter_optimize_google_fonts($markup);
2839
+        $this->assertEquals($expected, $actual);
2840 2840
     }
2841 2841
 
2842 2842
     /**
@@ -2844,19 +2844,19 @@  discard block
 block discarded – undo
2844 2844
      */
2845 2845
     public function test_network_no_site_settings()
2846 2846
     {
2847
-        if ( is_multisite() ) {
2848
-            define( 'TEST_MULTISITE_FORCE_AO_ON_NETWORK', true );
2847
+        if (is_multisite()) {
2848
+            define('TEST_MULTISITE_FORCE_AO_ON_NETWORK', true);
2849 2849
             // set options through WordPress core methods.
2850
-            update_option( 'autoptimize_js_exclude', 'site' );
2851
-            update_network_option( get_main_network_id(), 'autoptimize_js_exclude', 'network' );
2852
-            update_network_option( get_main_network_id(), 'autoptimize_enable_site_config', '' );
2850
+            update_option('autoptimize_js_exclude', 'site');
2851
+            update_network_option(get_main_network_id(), 'autoptimize_js_exclude', 'network');
2852
+            update_network_option(get_main_network_id(), 'autoptimize_enable_site_config', '');
2853 2853
 
2854 2854
             // and then try fetching them through optionwrapper.
2855 2855
             $expected = 'network';
2856
-            $actual   = autoptimizeOptionWrapper::get_option( 'autoptimize_js_exclude' );
2857
-            $this->assertEquals( $expected, $actual );
2856
+            $actual   = autoptimizeOptionWrapper::get_option('autoptimize_js_exclude');
2857
+            $this->assertEquals($expected, $actual);
2858 2858
         } else {
2859
-            $this->assertEquals( 1, 1 ); // just to ensure this isn't marked as a risky test.
2859
+            $this->assertEquals(1, 1); // just to ensure this isn't marked as a risky test.
2860 2860
         }
2861 2861
     }
2862 2862
 
@@ -2865,19 +2865,19 @@  discard block
 block discarded – undo
2865 2865
      */
2866 2866
     public function test_network_per_site_settings()
2867 2867
     {
2868
-        if ( is_multisite() ) {
2868
+        if (is_multisite()) {
2869 2869
             // define of TEST_MULTISITE_FORCE_AO_ON_NETWORK not needed, done in previous test.
2870 2870
             // set options through WordPress core methods.
2871
-            update_option( 'autoptimize_js_exclude', 'site' );
2872
-            update_network_option( get_main_network_id(), 'autoptimize_js_exclude', 'network' );
2873
-            update_network_option( get_main_network_id(), 'autoptimize_enable_site_config', 'on' );
2871
+            update_option('autoptimize_js_exclude', 'site');
2872
+            update_network_option(get_main_network_id(), 'autoptimize_js_exclude', 'network');
2873
+            update_network_option(get_main_network_id(), 'autoptimize_enable_site_config', 'on');
2874 2874
 
2875 2875
             // and then try fetching them through optionwrapper.
2876 2876
             $expected = 'site';
2877
-            $actual   = autoptimizeOptionWrapper::get_option( 'autoptimize_js_exclude' );
2878
-            $this->assertEquals( $expected, $actual );
2877
+            $actual   = autoptimizeOptionWrapper::get_option('autoptimize_js_exclude');
2878
+            $this->assertEquals($expected, $actual);
2879 2879
         } else {
2880
-            $this->assertEquals( 1, 1 ); // just to ensure this isn't marked as a risky test.
2880
+            $this->assertEquals(1, 1); // just to ensure this isn't marked as a risky test.
2881 2881
         }
2882 2882
     }
2883 2883
 }
Please login to merge, or discard this patch.