@@ -4,7 +4,7 @@ discard block |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 | } |
@@ -17,66 +17,66 @@ discard block |
||
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 |
||
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; |
@@ -10,17 +10,17 @@ discard block |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
1715 | 1715 | </style> |
1716 | 1716 | HTML; |
1717 | 1717 | |
1718 | - $expected = '<style media="all">@import url(' . $cdnurl . '/' . $sub . 'foo.css?a&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&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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 | - [ '<--[if', false ], |
|
2687 | - [ '/booya/i', true ], |
|
2688 | - [ '~Valid(Regular)Expression~', true ], |
|
2685 | + ['<!--[if', false], |
|
2686 | + ['<--[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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 |
||
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 | } |