@@ -23,19 +23,19 @@ discard block |
||
23 | 23 | $toemail = ''; |
24 | 24 | $template = 'alert_gone'; |
25 | 25 | for ($k=1; $k<$argc; $k++) { |
26 | - if ($argv[$k] == '--nomail') |
|
27 | - $nomail = true; |
|
28 | - if (preg_match('#^--only=(.*)$#', $argv[$k], $m)) |
|
29 | - $onlyemail = $m[1]; |
|
30 | - if (preg_match('#^--from=(.*)$#', $argv[$k], $m)) |
|
31 | - $fromemail = $m[1]; |
|
32 | - if (preg_match('#^--to=(.*)$#', $argv[$k], $m)) |
|
33 | - $toemail = $m[1]; |
|
34 | - if (preg_match('#^--template=(.*)$#', $argv[$k], $m)) { |
|
35 | - $template = $m[1]; |
|
36 | - # Tee hee |
|
37 | - $template = "../../../../../../../../../../home/twfy-live/email-alert-templates/alert_mailout_$template"; |
|
38 | - } |
|
26 | + if ($argv[$k] == '--nomail') |
|
27 | + $nomail = true; |
|
28 | + if (preg_match('#^--only=(.*)$#', $argv[$k], $m)) |
|
29 | + $onlyemail = $m[1]; |
|
30 | + if (preg_match('#^--from=(.*)$#', $argv[$k], $m)) |
|
31 | + $fromemail = $m[1]; |
|
32 | + if (preg_match('#^--to=(.*)$#', $argv[$k], $m)) |
|
33 | + $toemail = $m[1]; |
|
34 | + if (preg_match('#^--template=(.*)$#', $argv[$k], $m)) { |
|
35 | + $template = $m[1]; |
|
36 | + # Tee hee |
|
37 | + $template = "../../../../../../../../../../home/twfy-live/email-alert-templates/alert_mailout_$template"; |
|
38 | + } |
|
39 | 39 | } |
40 | 40 | |
41 | 41 | #if (DEVSITE) |
@@ -43,8 +43,8 @@ discard block |
||
43 | 43 | |
44 | 44 | if ($nomail) mlog("NOT SENDING EMAIL\n"); |
45 | 45 | if (($fromemail && $onlyemail) || ($toemail && $onlyemail)) { |
46 | - mlog("Can't have both from/to and only!\n"); |
|
47 | - exit; |
|
46 | + mlog("Can't have both from/to and only!\n"); |
|
47 | + exit; |
|
48 | 48 | } |
49 | 49 | |
50 | 50 | $active = 0; |
@@ -68,22 +68,22 @@ discard block |
||
68 | 68 | $members = array(); |
69 | 69 | $start_time = time(); |
70 | 70 | foreach ($alertdata as $alertitem) { |
71 | - $active++; |
|
72 | - $email = $alertitem['email']; |
|
71 | + $active++; |
|
72 | + $email = $alertitem['email']; |
|
73 | 73 | if ($onlyemail && $email != $onlyemail) continue; |
74 | 74 | if ($fromemail && strtolower($email) == $fromemail) $fromflag = true; |
75 | 75 | if ($fromemail && !$fromflag) continue; |
76 | 76 | if ($toemail && strtolower($email) >= $toemail) continue; |
77 | 77 | $criteria_raw = $alertitem['criteria']; |
78 | 78 | |
79 | - if (!strstr($criteria_raw, 'speaker:')) continue; |
|
79 | + if (!strstr($criteria_raw, 'speaker:')) continue; |
|
80 | 80 | |
81 | - preg_match('#speaker:(\d+)#', $criteria_raw, $m); |
|
82 | - $person_id = $m[1]; |
|
83 | - if (!isset($members[$person_id])) { |
|
81 | + preg_match('#speaker:(\d+)#', $criteria_raw, $m); |
|
82 | + $person_id = $m[1]; |
|
83 | + if (!isset($members[$person_id])) { |
|
84 | 84 | $queries++; |
85 | 85 | $members[$person_id] = new MEMBER(array('person_id' => $person_id)); |
86 | - } |
|
86 | + } |
|
87 | 87 | $member = $members[$person_id]; |
88 | 88 | if ($member->current_member_anywhere()) continue; |
89 | 89 | |
@@ -96,29 +96,29 @@ discard block |
||
96 | 96 | 'John Reid', 'Angela Smith', 'Don Touhig', 'Michael Wills', 'Ian Paisley', |
97 | 97 | ))) continue; |
98 | 98 | |
99 | - if ($email != $current['email']) { |
|
100 | - if ($email_text) |
|
99 | + if ($email != $current['email']) { |
|
100 | + if ($email_text) |
|
101 | 101 | write_and_send_email($current, $email_text, $template); |
102 | - $current['email'] = $email; |
|
103 | - $current['token'] = $alertitem['alert_id'] . '-' . $alertitem['registrationtoken']; |
|
104 | - $email_text = array(); |
|
105 | - $q = $db->query('SELECT user_id FROM users WHERE email = :email', array( |
|
102 | + $current['email'] = $email; |
|
103 | + $current['token'] = $alertitem['alert_id'] . '-' . $alertitem['registrationtoken']; |
|
104 | + $email_text = array(); |
|
105 | + $q = $db->query('SELECT user_id FROM users WHERE email = :email', array( |
|
106 | 106 | ':email' => $email)); |
107 | 107 | if ($q->rows() > 0) { |
108 | 108 | $user_id = $q->field(0, 'user_id'); |
109 | 109 | $registered++; |
110 | - } else { |
|
111 | - $user_id = 0; |
|
112 | - $unregistered++; |
|
113 | - } |
|
114 | - mlog("\nEMAIL: $email, uid $user_id; memory usage : ".memory_get_usage()."\n"); |
|
115 | - } |
|
110 | + } else { |
|
111 | + $user_id = 0; |
|
112 | + $unregistered++; |
|
113 | + } |
|
114 | + mlog("\nEMAIL: $email, uid $user_id; memory usage : ".memory_get_usage()."\n"); |
|
115 | + } |
|
116 | 116 | |
117 | 117 | $lh = $member->left_house(); |
118 | 118 | $lh = array_shift($lh); |
119 | 119 | $text = '* ' . $member->full_name() . ', left ' . $lh['date_pretty']; |
120 | 120 | if (!in_array($text, $email_text)) |
121 | - $email_text[] = $text; |
|
121 | + $email_text[] = $text; |
|
122 | 122 | } |
123 | 123 | if ($email_text) |
124 | 124 | write_and_send_email($current, $email_text, $template); |
@@ -127,39 +127,39 @@ discard block |
||
127 | 127 | |
128 | 128 | $sss = "Active alerts: $active\nEmail lookups: $registered registered, $unregistered unregistered\nQuery lookups: $queries\nSent emails: $sentemails\n"; |
129 | 129 | if ($globalsuccess) { |
130 | - $sss .= 'Everything went swimmingly, in '; |
|
130 | + $sss .= 'Everything went swimmingly, in '; |
|
131 | 131 | } else { |
132 | - $sss .= 'Something went wrong! Total time: '; |
|
132 | + $sss .= 'Something went wrong! Total time: '; |
|
133 | 133 | } |
134 | 134 | $sss .= (getmicrotime()-$global_start)."\n\n"; |
135 | 135 | mlog($sss); |
136 | 136 | mlog(date('r') . "\n"); |
137 | 137 | |
138 | 138 | function write_and_send_email($current, $data, $template) { |
139 | - global $globalsuccess, $sentemails, $nomail, $start_time; |
|
140 | - |
|
141 | - $sentemails++; |
|
142 | - mlog("SEND $sentemails : Sending email to $current[email] ... "); |
|
143 | - $d = array('to' => $current['email'], 'template' => $template); |
|
144 | - $m = array( |
|
145 | - 'DATA' => join("\n", $data), |
|
146 | - 'MANAGE' => 'https://www.theyworkforyou.com/D/' . $current['token'], |
|
139 | + global $globalsuccess, $sentemails, $nomail, $start_time; |
|
140 | + |
|
141 | + $sentemails++; |
|
142 | + mlog("SEND $sentemails : Sending email to $current[email] ... "); |
|
143 | + $d = array('to' => $current['email'], 'template' => $template); |
|
144 | + $m = array( |
|
145 | + 'DATA' => join("\n", $data), |
|
146 | + 'MANAGE' => 'https://www.theyworkforyou.com/D/' . $current['token'], |
|
147 | 147 | 'ALERT_IS' => count($data)==1 ? 'alert is' : 'alerts are', |
148 | 148 | 'ALERTS' => count($data)==1 ? 'an alert' : 'some alerts', |
149 | - ); |
|
150 | - if (!$nomail) { |
|
151 | - $success = send_template_email($d, $m, true); |
|
152 | - mlog("sent ... "); |
|
153 | - # sleep if time between sending mails is less than a certain number of seconds on average |
|
154 | - if (((time() - $start_time) / $sentemails) < 0.5 ) { # number of seconds per mail not to be quicker than |
|
155 | - mlog("pausing ... "); |
|
156 | - sleep(1); |
|
157 | - } |
|
158 | - } else { |
|
159 | - mlog(join('', $data)); |
|
160 | - $success = 1; |
|
161 | - } |
|
162 | - mlog("done\n"); |
|
163 | - if (!$success) $globalsuccess = 0; |
|
149 | + ); |
|
150 | + if (!$nomail) { |
|
151 | + $success = send_template_email($d, $m, true); |
|
152 | + mlog("sent ... "); |
|
153 | + # sleep if time between sending mails is less than a certain number of seconds on average |
|
154 | + if (((time() - $start_time) / $sentemails) < 0.5 ) { # number of seconds per mail not to be quicker than |
|
155 | + mlog("pausing ... "); |
|
156 | + sleep(1); |
|
157 | + } |
|
158 | + } else { |
|
159 | + mlog(join('', $data)); |
|
160 | + $success = 1; |
|
161 | + } |
|
162 | + mlog("done\n"); |
|
163 | + if (!$success) $globalsuccess = 0; |
|
164 | 164 | } |
165 | 165 |
@@ -139,7 +139,7 @@ |
||
139 | 139 | global $globalsuccess, $sentemails, $nomail, $start_time; |
140 | 140 | |
141 | 141 | $sentemails++; |
142 | - mlog("SEND $sentemails : Sending email to $current[email] ... "); |
|
142 | + mlog("send $sentemails : Sending email to $current[email] ... "); |
|
143 | 143 | $d = array('to' => $current['email'], 'template' => $template); |
144 | 144 | $m = array( |
145 | 145 | 'DATA' => join("\n", $data), |
@@ -22,7 +22,7 @@ discard block |
||
22 | 22 | $fromflag = false; |
23 | 23 | $toemail = ''; |
24 | 24 | $template = 'alert_gone'; |
25 | -for ($k=1; $k<$argc; $k++) { |
|
25 | +for ($k = 1; $k < $argc; $k++) { |
|
26 | 26 | if ($argv[$k] == '--nomail') |
27 | 27 | $nomail = true; |
28 | 28 | if (preg_match('#^--only=(.*)$#', $argv[$k], $m)) |
@@ -111,7 +111,7 @@ discard block |
||
111 | 111 | $user_id = 0; |
112 | 112 | $unregistered++; |
113 | 113 | } |
114 | - mlog("\nEMAIL: $email, uid $user_id; memory usage : ".memory_get_usage()."\n"); |
|
114 | + mlog("\nEMAIL: $email, uid $user_id; memory usage : " . memory_get_usage() . "\n"); |
|
115 | 115 | } |
116 | 116 | |
117 | 117 | $lh = $member->left_house(); |
@@ -131,7 +131,7 @@ discard block |
||
131 | 131 | } else { |
132 | 132 | $sss .= 'Something went wrong! Total time: '; |
133 | 133 | } |
134 | -$sss .= (getmicrotime()-$global_start)."\n\n"; |
|
134 | +$sss .= (getmicrotime() - $global_start) . "\n\n"; |
|
135 | 135 | mlog($sss); |
136 | 136 | mlog(date('r') . "\n"); |
137 | 137 | |
@@ -144,14 +144,14 @@ discard block |
||
144 | 144 | $m = array( |
145 | 145 | 'DATA' => join("\n", $data), |
146 | 146 | 'MANAGE' => 'https://www.theyworkforyou.com/D/' . $current['token'], |
147 | - 'ALERT_IS' => count($data)==1 ? 'alert is' : 'alerts are', |
|
148 | - 'ALERTS' => count($data)==1 ? 'an alert' : 'some alerts', |
|
147 | + 'ALERT_IS' => count($data) == 1 ? 'alert is' : 'alerts are', |
|
148 | + 'ALERTS' => count($data) == 1 ? 'an alert' : 'some alerts', |
|
149 | 149 | ); |
150 | 150 | if (!$nomail) { |
151 | 151 | $success = send_template_email($d, $m, true); |
152 | 152 | mlog("sent ... "); |
153 | 153 | # sleep if time between sending mails is less than a certain number of seconds on average |
154 | - if (((time() - $start_time) / $sentemails) < 0.5 ) { # number of seconds per mail not to be quicker than |
|
154 | + if (((time() - $start_time) / $sentemails) < 0.5) { # number of seconds per mail not to be quicker than |
|
155 | 155 | mlog("pausing ... "); |
156 | 156 | sleep(1); |
157 | 157 | } |
@@ -23,14 +23,18 @@ discard block |
||
23 | 23 | $toemail = ''; |
24 | 24 | $template = 'alert_gone'; |
25 | 25 | for ($k=1; $k<$argc; $k++) { |
26 | - if ($argv[$k] == '--nomail') |
|
27 | - $nomail = true; |
|
28 | - if (preg_match('#^--only=(.*)$#', $argv[$k], $m)) |
|
29 | - $onlyemail = $m[1]; |
|
30 | - if (preg_match('#^--from=(.*)$#', $argv[$k], $m)) |
|
31 | - $fromemail = $m[1]; |
|
32 | - if (preg_match('#^--to=(.*)$#', $argv[$k], $m)) |
|
33 | - $toemail = $m[1]; |
|
26 | + if ($argv[$k] == '--nomail') { |
|
27 | + $nomail = true; |
|
28 | + } |
|
29 | + if (preg_match('#^--only=(.*)$#', $argv[$k], $m)) { |
|
30 | + $onlyemail = $m[1]; |
|
31 | + } |
|
32 | + if (preg_match('#^--from=(.*)$#', $argv[$k], $m)) { |
|
33 | + $fromemail = $m[1]; |
|
34 | + } |
|
35 | + if (preg_match('#^--to=(.*)$#', $argv[$k], $m)) { |
|
36 | + $toemail = $m[1]; |
|
37 | + } |
|
34 | 38 | if (preg_match('#^--template=(.*)$#', $argv[$k], $m)) { |
35 | 39 | $template = $m[1]; |
36 | 40 | # Tee hee |
@@ -41,7 +45,9 @@ discard block |
||
41 | 45 | #if (DEVSITE) |
42 | 46 | # $nomail = true; |
43 | 47 | |
44 | -if ($nomail) mlog("NOT SENDING EMAIL\n"); |
|
48 | +if ($nomail) { |
|
49 | + mlog("NOT SENDING EMAIL\n"); |
|
50 | +} |
|
45 | 51 | if (($fromemail && $onlyemail) || ($toemail && $onlyemail)) { |
46 | 52 | mlog("Can't have both from/to and only!\n"); |
47 | 53 | exit; |
@@ -70,13 +76,23 @@ discard block |
||
70 | 76 | foreach ($alertdata as $alertitem) { |
71 | 77 | $active++; |
72 | 78 | $email = $alertitem['email']; |
73 | - if ($onlyemail && $email != $onlyemail) continue; |
|
74 | - if ($fromemail && strtolower($email) == $fromemail) $fromflag = true; |
|
75 | - if ($fromemail && !$fromflag) continue; |
|
76 | - if ($toemail && strtolower($email) >= $toemail) continue; |
|
79 | + if ($onlyemail && $email != $onlyemail) { |
|
80 | + continue; |
|
81 | + } |
|
82 | + if ($fromemail && strtolower($email) == $fromemail) { |
|
83 | + $fromflag = true; |
|
84 | + } |
|
85 | + if ($fromemail && !$fromflag) { |
|
86 | + continue; |
|
87 | + } |
|
88 | + if ($toemail && strtolower($email) >= $toemail) { |
|
89 | + continue; |
|
90 | + } |
|
77 | 91 | $criteria_raw = $alertitem['criteria']; |
78 | 92 | |
79 | - if (!strstr($criteria_raw, 'speaker:')) continue; |
|
93 | + if (!strstr($criteria_raw, 'speaker:')) { |
|
94 | + continue; |
|
95 | + } |
|
80 | 96 | |
81 | 97 | preg_match('#speaker:(\d+)#', $criteria_raw, $m); |
82 | 98 | $person_id = $m[1]; |
@@ -85,7 +101,9 @@ discard block |
||
85 | 101 | $members[$person_id] = new MEMBER(array('person_id' => $person_id)); |
86 | 102 | } |
87 | 103 | $member = $members[$person_id]; |
88 | - if ($member->current_member_anywhere()) continue; |
|
104 | + if ($member->current_member_anywhere()) { |
|
105 | + continue; |
|
106 | + } |
|
89 | 107 | |
90 | 108 | if (in_array($member->full_name(), array( |
91 | 109 | 'Mr Paul Boateng', 'Mrs Helen Liddell', 'Jack McConnell', 'Tim Boswell', |
@@ -94,11 +112,14 @@ discard block |
||
94 | 112 | 'Hilary Armstrong', 'Des Browne', 'Quentin Davies', 'Beverley Hughes', |
95 | 113 | 'John Hutton', 'Jim Knight', 'Thomas McAvoy', 'John McFall', 'John Prescott', |
96 | 114 | 'John Reid', 'Angela Smith', 'Don Touhig', 'Michael Wills', 'Ian Paisley', |
97 | - ))) continue; |
|
115 | + ))) { |
|
116 | + continue; |
|
117 | + } |
|
98 | 118 | |
99 | 119 | if ($email != $current['email']) { |
100 | - if ($email_text) |
|
101 | - write_and_send_email($current, $email_text, $template); |
|
120 | + if ($email_text) { |
|
121 | + write_and_send_email($current, $email_text, $template); |
|
122 | + } |
|
102 | 123 | $current['email'] = $email; |
103 | 124 | $current['token'] = $alertitem['alert_id'] . '-' . $alertitem['registrationtoken']; |
104 | 125 | $email_text = array(); |
@@ -107,7 +128,8 @@ discard block |
||
107 | 128 | if ($q->rows() > 0) { |
108 | 129 | $user_id = $q->field(0, 'user_id'); |
109 | 130 | $registered++; |
110 | - } else { |
|
131 | + } |
|
132 | + else { |
|
111 | 133 | $user_id = 0; |
112 | 134 | $unregistered++; |
113 | 135 | } |
@@ -117,18 +139,21 @@ discard block |
||
117 | 139 | $lh = $member->left_house(); |
118 | 140 | $lh = array_shift($lh); |
119 | 141 | $text = '* ' . $member->full_name() . ', left ' . $lh['date_pretty']; |
120 | - if (!in_array($text, $email_text)) |
|
121 | - $email_text[] = $text; |
|
122 | -} |
|
123 | -if ($email_text) |
|
142 | + if (!in_array($text, $email_text)) { |
|
143 | + $email_text[] = $text; |
|
144 | + } |
|
145 | + } |
|
146 | +if ($email_text) { |
|
124 | 147 | write_and_send_email($current, $email_text, $template); |
148 | +} |
|
125 | 149 | |
126 | 150 | mlog("\n"); |
127 | 151 | |
128 | 152 | $sss = "Active alerts: $active\nEmail lookups: $registered registered, $unregistered unregistered\nQuery lookups: $queries\nSent emails: $sentemails\n"; |
129 | 153 | if ($globalsuccess) { |
130 | 154 | $sss .= 'Everything went swimmingly, in '; |
131 | -} else { |
|
155 | +} |
|
156 | +else { |
|
132 | 157 | $sss .= 'Something went wrong! Total time: '; |
133 | 158 | } |
134 | 159 | $sss .= (getmicrotime()-$global_start)."\n\n"; |
@@ -151,15 +176,19 @@ discard block |
||
151 | 176 | $success = send_template_email($d, $m, true); |
152 | 177 | mlog("sent ... "); |
153 | 178 | # sleep if time between sending mails is less than a certain number of seconds on average |
154 | - if (((time() - $start_time) / $sentemails) < 0.5 ) { # number of seconds per mail not to be quicker than |
|
179 | + if (((time() - $start_time) / $sentemails) < 0.5 ) { |
|
180 | +# number of seconds per mail not to be quicker than |
|
155 | 181 | mlog("pausing ... "); |
156 | 182 | sleep(1); |
157 | 183 | } |
158 | - } else { |
|
184 | + } |
|
185 | + else { |
|
159 | 186 | mlog(join('', $data)); |
160 | 187 | $success = 1; |
161 | 188 | } |
162 | 189 | mlog("done\n"); |
163 | - if (!$success) $globalsuccess = 0; |
|
164 | -} |
|
190 | + if (!$success) { |
|
191 | + $globalsuccess = 0; |
|
192 | + } |
|
193 | + } |
|
165 | 194 |
@@ -26,9 +26,13 @@ |
||
26 | 26 | $body = strip_tags($q->field($i, 'body')); |
27 | 27 | $qq = $db->query('select time_to_sec(atime) as atime from hansard,video_timestamps where hansard.gid=video_timestamps.gid and deleted=0 and video_status in (5,7) and hdate="' . $hdate . '" and hpos=' . ($hpos+1) . ' group by video_timestamps.gid'); |
28 | 28 | $next_atime = $qq->field(0, 'atime'); |
29 | - if (!$next_atime) continue; |
|
29 | + if (!$next_atime) { |
|
30 | + continue; |
|
31 | + } |
|
30 | 32 | $duration = $next_atime - $atime; |
31 | - if ($duration<=0) continue; |
|
33 | + if ($duration<=0) { |
|
34 | + continue; |
|
35 | + } |
|
32 | 36 | $words = preg_split('/\W+/', $body, -1, PREG_SPLIT_NO_EMPTY); |
33 | 37 | $num_words = count($words); |
34 | 38 | $speed = $num_words / ($duration/60); |
@@ -5,7 +5,7 @@ discard block |
||
5 | 5 | $db = new ParlDB; |
6 | 6 | |
7 | 7 | $q = $db->query('select distinct(person_id) from hansard where video_status in (5,7) and person_id>0 limit 5'); |
8 | -for ($i=0; $i<$q->rows(); $i++) { |
|
8 | +for ($i = 0; $i < $q->rows(); $i++) { |
|
9 | 9 | $spid = $q->field($i, 'person_id'); |
10 | 10 | calculate_speed($db, $spid); |
11 | 11 | } |
@@ -18,20 +18,20 @@ discard block |
||
18 | 18 | $total_words = 0; |
19 | 19 | $total_speed = 0; |
20 | 20 | $num = 0; |
21 | - for ($i=0; $i<$q->rows(); $i++) { |
|
21 | + for ($i = 0; $i < $q->rows(); $i++) { |
|
22 | 22 | $hpos = $q->field($i, 'hpos'); |
23 | 23 | $hdate = $q->field($i, 'hdate'); |
24 | 24 | $gid = $q->field($i, 'gid'); |
25 | 25 | $atime = $q->field($i, 'atime'); |
26 | 26 | $body = strip_tags($q->field($i, 'body')); |
27 | - $qq = $db->query('select time_to_sec(atime) as atime from hansard,video_timestamps where hansard.gid=video_timestamps.gid and deleted=0 and video_status in (5,7) and hdate="' . $hdate . '" and hpos=' . ($hpos+1) . ' group by video_timestamps.gid'); |
|
27 | + $qq = $db->query('select time_to_sec(atime) as atime from hansard,video_timestamps where hansard.gid=video_timestamps.gid and deleted=0 and video_status in (5,7) and hdate="' . $hdate . '" and hpos=' . ($hpos + 1) . ' group by video_timestamps.gid'); |
|
28 | 28 | $next_atime = $qq->field(0, 'atime'); |
29 | 29 | if (!$next_atime) continue; |
30 | 30 | $duration = $next_atime - $atime; |
31 | - if ($duration<=0) continue; |
|
31 | + if ($duration <= 0) continue; |
|
32 | 32 | $words = preg_split('/\W+/', $body, -1, PREG_SPLIT_NO_EMPTY); |
33 | 33 | $num_words = count($words); |
34 | - $speed = $num_words / ($duration/60); |
|
34 | + $speed = $num_words / ($duration / 60); |
|
35 | 35 | $total_speed += $speed; |
36 | 36 | print "$gid, $num_words words, from $atime to $next_atime, duration $duration s, speed $speed wpm\n"; |
37 | 37 | $total += $duration; |
@@ -39,12 +39,12 @@ discard block |
||
39 | 39 | $num++; |
40 | 40 | } |
41 | 41 | |
42 | - $total_min = $total/60; |
|
42 | + $total_min = $total / 60; |
|
43 | 43 | |
44 | 44 | print "Person ID $spid\n"; |
45 | - print "Average length = " . ($total/$num) . "s\n"; |
|
46 | - print "Average speed = " . ($total_words/$total_min) . "wpm\n"; |
|
47 | - print "Average of speeds = " . ($total_speed/$num) . "wpm\n"; |
|
45 | + print "Average length = " . ($total / $num) . "s\n"; |
|
46 | + print "Average speed = " . ($total_words / $total_min) . "wpm\n"; |
|
47 | + print "Average of speeds = " . ($total_speed / $num) . "wpm\n"; |
|
48 | 48 | print "\n"; |
49 | 49 | } |
50 | 50 |
@@ -325,10 +325,10 @@ discard block |
||
325 | 325 | |
326 | 326 | $msps = array( |
327 | 327 | array( |
328 | - 'person_id' => "19", |
|
329 | - 'name' => "Mr Regional MSP1", |
|
330 | - 'constituency' => "Mid Scotland and Fife", |
|
331 | - 'house' => "4" |
|
328 | + 'person_id' => "19", |
|
329 | + 'name' => "Mr Regional MSP1", |
|
330 | + 'constituency' => "Mid Scotland and Fife", |
|
331 | + 'house' => "4" |
|
332 | 332 | ), |
333 | 333 | array( |
334 | 334 | 'person_id' => "20", |
@@ -340,10 +340,10 @@ discard block |
||
340 | 340 | $this->assertEquals($msps, \MySociety\TheyWorkForYou\Member::getRegionalList('KY16 8YG', 4, 'SPE')); |
341 | 341 | $mlas = array( |
342 | 342 | array( |
343 | - 'person_id' => "21", |
|
344 | - 'name' => "Mr Regional MLA1", |
|
345 | - 'constituency' => "Belfast West", |
|
346 | - 'house' => "3" |
|
343 | + 'person_id' => "21", |
|
344 | + 'name' => "Mr Regional MLA1", |
|
345 | + 'constituency' => "Belfast West", |
|
346 | + 'house' => "3" |
|
347 | 347 | ), |
348 | 348 | array( |
349 | 349 | 'person_id' => "22", |
@@ -11,7 +11,7 @@ |
||
11 | 11 | */ |
12 | 12 | public function getDataSet() |
13 | 13 | { |
14 | - return $this->createMySQLXMLDataSet(dirname(__FILE__).'/_fixtures/member.xml'); |
|
14 | + return $this->createMySQLXMLDataSet(dirname(__FILE__) . '/_fixtures/member.xml'); |
|
15 | 15 | } |
16 | 16 | |
17 | 17 | /** |
@@ -18,7 +18,7 @@ |
||
18 | 18 | /** |
19 | 19 | * Test converting a postcode to a constituency |
20 | 20 | */ |
21 | - public function testPostcodeToConstituency() |
|
21 | + public function testPostcodeToConstituency() |
|
22 | 22 | { |
23 | 23 | $this->assertEquals( |
24 | 24 | 'Cities of London and Westminster', |
@@ -12,7 +12,7 @@ |
||
12 | 12 | */ |
13 | 13 | public function getDataSet() |
14 | 14 | { |
15 | - return $this->createMySQLXMLDataSet(dirname(__FILE__).'/_fixtures/postcode.xml'); |
|
15 | + return $this->createMySQLXMLDataSet(dirname(__FILE__) . '/_fixtures/postcode.xml'); |
|
16 | 16 | } |
17 | 17 | |
18 | 18 | /** |
@@ -17,7 +17,7 @@ |
||
17 | 17 | /** |
18 | 18 | * Ensures the database is prepared and the comment class is included for every test. |
19 | 19 | */ |
20 | - public function setUp() { |
|
20 | + public function setUp() { |
|
21 | 21 | |
22 | 22 | parent::setUp(); |
23 | 23 |
@@ -11,7 +11,7 @@ discard block |
||
11 | 11 | */ |
12 | 12 | public function getDataSet() |
13 | 13 | { |
14 | - return $this->createMySQLXMLDataSet(dirname(__FILE__).'/_fixtures/comment.xml'); |
|
14 | + return $this->createMySQLXMLDataSet(dirname(__FILE__) . '/_fixtures/comment.xml'); |
|
15 | 15 | } |
16 | 16 | |
17 | 17 | /** |
@@ -56,7 +56,7 @@ discard block |
||
56 | 56 | public function testHTMLCleaningOfAngleBrackets() { |
57 | 57 | $text = 'Is 2 < 3?'; |
58 | 58 | |
59 | - $this->assertEquals('Is 2 < 3?', filter_user_input( $text, 'comment' ) ); |
|
59 | + $this->assertEquals('Is 2 < 3?', filter_user_input($text, 'comment')); |
|
60 | 60 | } |
61 | 61 | |
62 | 62 | public function testHTMLCleaningWithNonASCIIChars() |
@@ -100,7 +100,7 @@ |
||
100 | 100 | ); |
101 | 101 | |
102 | 102 | $expectedTable = $this->createXmlDataSet(dirname(__FILE__).'/_fixtures/expectedTokens.xml') |
103 | - ->getTable("tokens"); |
|
103 | + ->getTable("tokens"); |
|
104 | 104 | $this->assertTablesEqual($expectedTable, $queryTable); |
105 | 105 | |
106 | 106 | $alertCount = $this->getConnection()->getRowCount('alerts', 'email = "[email protected]"'); |
@@ -11,7 +11,7 @@ discard block |
||
11 | 11 | */ |
12 | 12 | public function getDataSet() |
13 | 13 | { |
14 | - return $this->createMySQLXMLDataSet(dirname(__FILE__).'/_fixtures/user.xml'); |
|
14 | + return $this->createMySQLXMLDataSet(dirname(__FILE__) . '/_fixtures/user.xml'); |
|
15 | 15 | } |
16 | 16 | |
17 | 17 | /** |
@@ -44,8 +44,8 @@ discard block |
||
44 | 44 | $id = $u->user_id(); |
45 | 45 | $u->init($id); |
46 | 46 | |
47 | - $this->assertEquals( 'Test', $u->firstname() ); |
|
48 | - $this->assertEquals( 'EH1 99SP', $u->postcode() ); |
|
47 | + $this->assertEquals('Test', $u->firstname()); |
|
48 | + $this->assertEquals('EH1 99SP', $u->postcode()); |
|
49 | 49 | } |
50 | 50 | |
51 | 51 | public function testEditUser() { |
@@ -53,9 +53,9 @@ discard block |
||
53 | 53 | $u = new THEUSER(); |
54 | 54 | $u->loggedin = 1; |
55 | 55 | |
56 | - $this->assertEquals( 'Test', $u->firstname() ); |
|
56 | + $this->assertEquals('Test', $u->firstname()); |
|
57 | 57 | |
58 | - $d = $u->update_self( array( |
|
58 | + $d = $u->update_self(array( |
|
59 | 59 | 'firstname' => 'Experiment', |
60 | 60 | 'lastname' => 'User', |
61 | 61 | 'emailpublic' => '0', |
@@ -64,9 +64,9 @@ discard block |
||
64 | 64 | 'url' => '', |
65 | 65 | 'optin' => '', |
66 | 66 | 'user_id' => 1 |
67 | - ) ); |
|
67 | + )); |
|
68 | 68 | |
69 | - $this->assertEquals( 'Experiment', $u->firstname() ); |
|
69 | + $this->assertEquals('Experiment', $u->firstname()); |
|
70 | 70 | } |
71 | 71 | |
72 | 72 | public function testEditUserEmail() { |
@@ -74,9 +74,9 @@ discard block |
||
74 | 74 | $u = new THEUSER(); |
75 | 75 | $u->loggedin = 1; |
76 | 76 | |
77 | - $this->assertEquals( '[email protected]', $u->email() ); |
|
77 | + $this->assertEquals('[email protected]', $u->email()); |
|
78 | 78 | |
79 | - $d = $u->update_self( array( |
|
79 | + $d = $u->update_self(array( |
|
80 | 80 | 'firstname' => 'Experiment', |
81 | 81 | 'lastname' => 'User', |
82 | 82 | 'email' => '[email protected]', |
@@ -86,10 +86,10 @@ discard block |
||
86 | 86 | 'url' => '', |
87 | 87 | 'optin' => '', |
88 | 88 | 'user_id' => 1 |
89 | - ), false ); |
|
89 | + ), false); |
|
90 | 90 | |
91 | 91 | // email should not change as user needs to confirm |
92 | - $this->assertEquals( '[email protected]', $u->email() ); |
|
92 | + $this->assertEquals('[email protected]', $u->email()); |
|
93 | 93 | |
94 | 94 | $tokenCount = $this->getConnection()->getRowCount('tokens', 'data = "1::[email protected]"'); |
95 | 95 | $this->assertEquals(1, $tokenCount, 'correct number of email confirm tokens'); |
@@ -99,7 +99,7 @@ discard block |
||
99 | 99 | 'tokens', 'SELECT type, data FROM tokens WHERE data = "1::[email protected]"' |
100 | 100 | ); |
101 | 101 | |
102 | - $expectedTable = $this->createXmlDataSet(dirname(__FILE__).'/_fixtures/expectedTokens.xml') |
|
102 | + $expectedTable = $this->createXmlDataSet(dirname(__FILE__) . '/_fixtures/expectedTokens.xml') |
|
103 | 103 | ->getTable("tokens"); |
104 | 104 | $this->assertTablesEqual($expectedTable, $queryTable); |
105 | 105 | |
@@ -113,9 +113,9 @@ discard block |
||
113 | 113 | $tokenRow = $queryTable->getRow(0); |
114 | 114 | $token = '2-' . $tokenRow['token']; |
115 | 115 | |
116 | - $u->confirm_email($token,false); |
|
116 | + $u->confirm_email($token, false); |
|
117 | 117 | |
118 | - $this->assertEquals( '[email protected]', $u->email(), 'confirming with token updates email address' ); |
|
118 | + $this->assertEquals('[email protected]', $u->email(), 'confirming with token updates email address'); |
|
119 | 119 | $tokenCount = $this->getConnection()->getRowCount('tokens', 'data = "1::[email protected]"'); |
120 | 120 | $this->assertEquals(0, $tokenCount, 'token deleted once email confirmed'); |
121 | 121 | |
@@ -131,15 +131,15 @@ discard block |
||
131 | 131 | $u = new THEUSER(); |
132 | 132 | $u->loggedin = 1; |
133 | 133 | |
134 | - $this->assertEquals( '[email protected]', $u->email(), 'confirming inital email address' ); |
|
134 | + $this->assertEquals('[email protected]', $u->email(), 'confirming inital email address'); |
|
135 | 135 | |
136 | 136 | $tokenCount = $this->getConnection()->getRowCount('tokens', 'data = "1::[email protected]"'); |
137 | 137 | $this->assertEquals(1, $tokenCount, 'correct number of email confirm tokens'); |
138 | 138 | |
139 | 139 | $token = '2-lkdsjafhsadjhf'; |
140 | 140 | |
141 | - $u->confirm_email($token,false); |
|
142 | - $this->assertEquals( '[email protected]', $u->email(), 'expired token does not update email address' ); |
|
141 | + $u->confirm_email($token, false); |
|
142 | + $this->assertEquals('[email protected]', $u->email(), 'expired token does not update email address'); |
|
143 | 143 | |
144 | 144 | $tokenCount = $this->getConnection()->getRowCount('tokens', 'data = "1::[email protected]"'); |
145 | 145 | $this->assertEquals(1, $tokenCount, 'correct number of email confirm tokens'); |
@@ -34,7 +34,7 @@ discard block |
||
34 | 34 | $this->assertContains('<span class="party Lab">Labour</span>', $page); |
35 | 35 | } |
36 | 36 | |
37 | - public function testSittingMLA() |
|
37 | + public function testSittingMLA() |
|
38 | 38 | { |
39 | 39 | $page = $this->fetch_page( array( 'pid' => 4, 'url' => '/mp/4/test_current-mla/test_northern_ireland_constituency' ) ); |
40 | 40 | $this->assertContains('Test Current-MLA', $page); |
@@ -63,7 +63,7 @@ discard block |
||
63 | 63 | /** |
64 | 64 | * Ensure that the Speaker is given the correct constituency. |
65 | 65 | */ |
66 | - public function testSpeaker() |
|
66 | + public function testSpeaker() |
|
67 | 67 | { |
68 | 68 | $page = $this->fetch_page( array( 'pid' => 13, 'url' => '/mp/13/test_speaker/buckingham' ) ); |
69 | 69 | $this->assertContains('<span class="party SPK">Speaker</span>', $page); |
@@ -11,7 +11,7 @@ discard block |
||
11 | 11 | */ |
12 | 12 | public function getDataSet() |
13 | 13 | { |
14 | - return $this->createMySQLXMLDataSet(dirname(__FILE__).'/_fixtures/member.xml'); |
|
14 | + return $this->createMySQLXMLDataSet(dirname(__FILE__) . '/_fixtures/member.xml'); |
|
15 | 15 | } |
16 | 16 | |
17 | 17 | private function fetch_page($vars) |
@@ -21,14 +21,14 @@ discard block |
||
21 | 21 | |
22 | 22 | public function testQueenie() |
23 | 23 | { |
24 | - $page = $this->fetch_page( array( 'royal' => 1, 'n' => 'elizabeth_the_second' ) ); |
|
24 | + $page = $this->fetch_page(array('royal' => 1, 'n' => 'elizabeth_the_second')); |
|
25 | 25 | $this->assertContains('Elizabeth the Second', $page); |
26 | 26 | $this->assertContains('Coronated on 2 June 1953', $page); |
27 | 27 | } |
28 | 28 | |
29 | 29 | public function testSittingMP() |
30 | 30 | { |
31 | - $page = $this->fetch_page( array( 'pid' => 2, 'url' => '/mp/2/test_current-mp/test_westminster_constituency' ) ); |
|
31 | + $page = $this->fetch_page(array('pid' => 2, 'url' => '/mp/2/test_current-mp/test_westminster_constituency')); |
|
32 | 32 | $this->assertContains('Test Current-MP', $page); |
33 | 33 | $this->assertContains('<span class="constituency">Test Westminster Constituency</span>', $page); |
34 | 34 | $this->assertContains('<span class="party Lab">Labour</span>', $page); |
@@ -36,7 +36,7 @@ discard block |
||
36 | 36 | |
37 | 37 | public function testSittingMLA() |
38 | 38 | { |
39 | - $page = $this->fetch_page( array( 'pid' => 4, 'url' => '/mp/4/test_current-mla/test_northern_ireland_constituency' ) ); |
|
39 | + $page = $this->fetch_page(array('pid' => 4, 'url' => '/mp/4/test_current-mla/test_northern_ireland_constituency')); |
|
40 | 40 | $this->assertContains('Test Current-MLA', $page); |
41 | 41 | $this->assertContains('<span class="constituency">Test Northern Ireland Constituency</span>', $page); |
42 | 42 | $this->assertContains('<span class="party SinnFéin">Sinn Féin</span>', $page); |
@@ -47,7 +47,7 @@ discard block |
||
47 | 47 | */ |
48 | 48 | public function testSittingSinnFeinMP() |
49 | 49 | { |
50 | - $page = $this->fetch_page( array( 'pid' => 15, 'url' => '/mp/15/test_current-sf-mp/test_westminster_constituency' ) ); |
|
50 | + $page = $this->fetch_page(array('pid' => 15, 'url' => '/mp/15/test_current-sf-mp/test_westminster_constituency')); |
|
51 | 51 | $this->assertContains('Sinn Féin MPs do not take their seats in Parliament.', $page); |
52 | 52 | } |
53 | 53 | |
@@ -56,7 +56,7 @@ discard block |
||
56 | 56 | */ |
57 | 57 | public function testSittingNonSinnFeinMP() |
58 | 58 | { |
59 | - $page = $this->fetch_page( array( 'pid' => 2, 'url' => '/mp/2/test_current-mp/test_westminster_constituency' ) ); |
|
59 | + $page = $this->fetch_page(array('pid' => 2, 'url' => '/mp/2/test_current-mp/test_westminster_constituency')); |
|
60 | 60 | $this->assertNotContains('Sinn Féin MPs do not take their seats in Parliament.', $page); |
61 | 61 | } |
62 | 62 | |
@@ -65,7 +65,7 @@ discard block |
||
65 | 65 | */ |
66 | 66 | public function testSpeaker() |
67 | 67 | { |
68 | - $page = $this->fetch_page( array( 'pid' => 13, 'url' => '/mp/13/test_speaker/buckingham' ) ); |
|
68 | + $page = $this->fetch_page(array('pid' => 13, 'url' => '/mp/13/test_speaker/buckingham')); |
|
69 | 69 | $this->assertContains('<span class="party SPK">Speaker</span>', $page); |
70 | 70 | } |
71 | 71 | |
@@ -75,25 +75,25 @@ discard block |
||
75 | 75 | # makes sure it is empty in case there's something hanging |
76 | 76 | # about in memcached |
77 | 77 | $banner->set_text(''); |
78 | - $page = $this->fetch_page( array( 'url' => '/' ) ); |
|
78 | + $page = $this->fetch_page(array('url' => '/')); |
|
79 | 79 | $this->assertNotContains('<div class="banner">', $page); |
80 | 80 | $this->assertNotContains('This is a banner', $page); |
81 | 81 | |
82 | 82 | $banner->set_text('This is a banner'); |
83 | - $page = $this->fetch_page( array( 'url' => '/' ) ); |
|
83 | + $page = $this->fetch_page(array('url' => '/')); |
|
84 | 84 | $this->assertContains('This is a banner', $page); |
85 | 85 | |
86 | 86 | $banner->set_text(''); |
87 | - $page = $this->fetch_page( array( 'url' => '/' ) ); |
|
87 | + $page = $this->fetch_page(array('url' => '/')); |
|
88 | 88 | $this->assertNotContains('<div class="banner">', $page); |
89 | 89 | $this->assertNotContains('This is a banner', $page); |
90 | 90 | } |
91 | 91 | |
92 | 92 | public function testNewMPMessage() { |
93 | - $page = $this->fetch_page( array( 'pid' => 17, 'url' => '/mp/17/recent_mp/test_westminster_constituency' ) ); |
|
93 | + $page = $this->fetch_page(array('pid' => 17, 'url' => '/mp/17/recent_mp/test_westminster_constituency')); |
|
94 | 94 | $this->assertNotContains('is a recently elected MP', $page); |
95 | 95 | $this->db->query('UPDATE member SET entered_house = NOW() WHERE person_id = 17'); |
96 | - $page = $this->fetch_page( array( 'pid' => 17, 'url' => '/mp/17/recent_mp/test_westminster_constituency' ) ); |
|
96 | + $page = $this->fetch_page(array('pid' => 17, 'url' => '/mp/17/recent_mp/test_westminster_constituency')); |
|
97 | 97 | $this->assertContains('is a recently elected MP', $page); |
98 | 98 | } |
99 | 99 |
@@ -17,8 +17,8 @@ discard block |
||
17 | 17 | /** |
18 | 18 | * Ensures the database is prepared and the glossary class is included for every test. |
19 | 19 | */ |
20 | - public function setUp() |
|
21 | - { |
|
20 | + public function setUp() |
|
21 | + { |
|
22 | 22 | parent::setUp(); |
23 | 23 | |
24 | 24 | include_once('www/includes/easyparliament/glossary.php'); |
@@ -27,10 +27,10 @@ discard block |
||
27 | 27 | /** |
28 | 28 | * Test that glossarising a single word works as expected. |
29 | 29 | */ |
30 | - public function testGlossariseNormal() |
|
30 | + public function testGlossariseNormal() |
|
31 | 31 | { |
32 | 32 | $args['sort'] = "regexp_replace"; |
33 | - $glossary = new GLOSSARY($args); |
|
33 | + $glossary = new GLOSSARY($args); |
|
34 | 34 | |
35 | 35 | $this->assertEquals('<a href="/glossary/?gl=1" title="In a general election, each Constituency chooses an MP to represent them...." class="glossary">constituency</a>', $glossary->glossarise('constituency')); |
36 | 36 | } |
@@ -41,7 +41,7 @@ discard block |
||
41 | 41 | public function testGlossariseInLink() |
42 | 42 | { |
43 | 43 | $args['sort'] = "regexp_replace"; |
44 | - $glossary = new GLOSSARY($args); |
|
44 | + $glossary = new GLOSSARY($args); |
|
45 | 45 | |
46 | 46 | $this->assertEquals('<a href="#">constituency</a>', $glossary->glossarise('<a href="#">constituency</a>')); |
47 | 47 | } |
@@ -52,7 +52,7 @@ discard block |
||
52 | 52 | public function testGlossariseInString() |
53 | 53 | { |
54 | 54 | $args['sort'] = "regexp_replace"; |
55 | - $glossary = new GLOSSARY($args); |
|
55 | + $glossary = new GLOSSARY($args); |
|
56 | 56 | |
57 | 57 | $this->assertEquals('fooconstituencybar', $glossary->glossarise('fooconstituencybar')); |
58 | 58 | } |
@@ -63,7 +63,7 @@ discard block |
||
63 | 63 | public function testGlossariseInSpacedString() |
64 | 64 | { |
65 | 65 | $args['sort'] = "regexp_replace"; |
66 | - $glossary = new GLOSSARY($args); |
|
66 | + $glossary = new GLOSSARY($args); |
|
67 | 67 | |
68 | 68 | $this->assertEquals('foo <a href="/glossary/?gl=1" title="In a general election, each Constituency chooses an MP to represent them...." class="glossary">constituency</a> bar', $glossary->glossarise('foo constituency bar')); |
69 | 69 | } |
@@ -74,7 +74,7 @@ discard block |
||
74 | 74 | public function testWikipediaLinkNormal() |
75 | 75 | { |
76 | 76 | $args['sort'] = "regexp_replace"; |
77 | - $glossary = new GLOSSARY($args); |
|
77 | + $glossary = new GLOSSARY($args); |
|
78 | 78 | |
79 | 79 | $this->assertEquals('<a href="https://en.wikipedia.org/wiki/MP">MP</a>', $glossary->glossarise('MP')); |
80 | 80 | } |
@@ -85,7 +85,7 @@ discard block |
||
85 | 85 | public function testWikipediaLinkInLink() |
86 | 86 | { |
87 | 87 | $args['sort'] = "regexp_replace"; |
88 | - $glossary = new GLOSSARY($args); |
|
88 | + $glossary = new GLOSSARY($args); |
|
89 | 89 | |
90 | 90 | $this->assertEquals('<a href="#">MP</a>', $glossary->glossarise('<a href="#">MP</a>')); |
91 | 91 | } |
@@ -96,7 +96,7 @@ discard block |
||
96 | 96 | public function testWikipediaLinkInString() |
97 | 97 | { |
98 | 98 | $args['sort'] = "regexp_replace"; |
99 | - $glossary = new GLOSSARY($args); |
|
99 | + $glossary = new GLOSSARY($args); |
|
100 | 100 | |
101 | 101 | $this->assertEquals('fooMPbar', $glossary->glossarise('fooMPbar')); |
102 | 102 | } |
@@ -107,7 +107,7 @@ discard block |
||
107 | 107 | public function testWikipediaLinkInSpacedString() |
108 | 108 | { |
109 | 109 | $args['sort'] = "regexp_replace"; |
110 | - $glossary = new GLOSSARY($args); |
|
110 | + $glossary = new GLOSSARY($args); |
|
111 | 111 | |
112 | 112 | $this->assertEquals('foo <a href="https://en.wikipedia.org/wiki/MP">MP</a> bar', $glossary->glossarise('foo MP bar')); |
113 | 113 | } |
@@ -11,7 +11,7 @@ |
||
11 | 11 | */ |
12 | 12 | public function getDataSet() |
13 | 13 | { |
14 | - return $this->createMySQLXMLDataSet(dirname(__FILE__).'/_fixtures/glossary.xml'); |
|
14 | + return $this->createMySQLXMLDataSet(dirname(__FILE__) . '/_fixtures/glossary.xml'); |
|
15 | 15 | } |
16 | 16 | |
17 | 17 | /** |
@@ -6,8 +6,8 @@ discard block |
||
6 | 6 | |
7 | 7 | class UtilityTest extends PHPUnit_Framework_TestCase |
8 | 8 | { |
9 | - public function setUp() |
|
10 | - { |
|
9 | + public function setUp() |
|
10 | + { |
|
11 | 11 | parent::setUp(); |
12 | 12 | include_once('www/includes/utility.php'); |
13 | 13 | } |
@@ -16,7 +16,7 @@ discard block |
||
16 | 16 | * Test the escaping of replacement strings for use with |
17 | 17 | * preg_replace. |
18 | 18 | */ |
19 | - public function testPregReplacement() |
|
19 | + public function testPregReplacement() |
|
20 | 20 | { |
21 | 21 | $example = 'try \1 and $0, also backslash \ and dollar $ alone'; |
22 | 22 | $this->assertEquals( |