diff options
Diffstat (limited to 't')
-rw-r--r-- | t/app/01app.t | 4 | ||||
-rw-r--r-- | t/app/controller/questionnaire.t | 10 | ||||
-rw-r--r-- | t/app/helpers/send_email.t | 3 | ||||
-rw-r--r-- | t/app/helpers/send_email_sample.txt | 4 | ||||
-rw-r--r-- | t/app/helpers/send_email_sample_mime.txt | 106 | ||||
-rw-r--r-- | t/app/model/alert_type.t | 2 | ||||
-rw-r--r-- | t/cobrand/fixamingata.t | 8 | ||||
-rw-r--r-- | t/cobrand/zurich.t | 7 | ||||
-rw-r--r-- | t/cobrand/zurich_attachments.txt | 73 | ||||
-rw-r--r-- | t/i18n.t | 12 |
10 files changed, 113 insertions, 116 deletions
diff --git a/t/app/01app.t b/t/app/01app.t index eb98b6319..df562b829 100644 --- a/t/app/01app.t +++ b/t/app/01app.t @@ -16,12 +16,16 @@ use Encode qw(encode); ok( request('/')->is_success, 'Request should succeed' ); +SKIP: { FixMyStreet::override_config { ALLOWED_COBRANDS => [ 'tester' ], }, sub { + skip 'Test will not pass on Mac OS', 1 if $^O eq 'darwin'; + my $page = get('/'); my $num = encode('UTF-8', "12\N{NO-BREAK SPACE}345"); like $page, qr/$num/; }; +} done_testing(); diff --git a/t/app/controller/questionnaire.t b/t/app/controller/questionnaire.t index 7718d5034..cad86a40d 100644 --- a/t/app/controller/questionnaire.t +++ b/t/app/controller/questionnaire.t @@ -63,8 +63,8 @@ my $email = $mech->get_email; ok $email, "got an email"; like $email->body, qr/fill in our short questionnaire/i, "got questionnaire email"; -like $email->body, qr/Testing =96 Detail/, 'email contains encoded character'; -is $email->header('Content-Type'), 'text/plain; charset="windows-1252"', 'in the right character set'; +like $email->body_str, qr/Testing \x{2013} Detail/, 'email contains encoded character'; +is $email->header('Content-Type'), 'text/plain; charset="utf-8"', 'in the right character set'; my ($token) = $email->body =~ m{http://.*?/Q/(\S+)}; ok $token, "extracted questionnaire token '$token'"; @@ -461,9 +461,9 @@ FixMyStreet::override_config { ok $email, "got an email"; $mech->clear_emails_ok; - like $email->body, qr/Testing =96 Detail/, 'email contains encoded character from user'; - like $email->body, qr/sak p=E5 FiksGataMi/, 'email contains encoded character from template'; - is $email->header('Content-Type'), 'text/plain; charset="windows-1252"', 'email is in right encoding'; + like $email->body_str, qr/Testing \x{2013} Detail/, 'email contains encoded character from user'; + like $email->body_str, qr/sak p\xe5 FiksGataMi/, 'email contains encoded character from template'; + is $email->header('Content-Type'), 'text/plain; charset="utf-8"', 'email is in right encoding'; }; $mech->delete_user('test@example.com'); diff --git a/t/app/helpers/send_email.t b/t/app/helpers/send_email.t index f60f7fa5a..e2c8688a8 100644 --- a/t/app/helpers/send_email.t +++ b/t/app/helpers/send_email.t @@ -41,8 +41,7 @@ my $email = Email::MIME->new($email_as_string); my $expected_email_content = path(__FILE__)->parent->child('send_email_sample.txt')->slurp; my $name = FixMyStreet->config('CONTACT_NAME'); -$name = "\"$name\"" if $name =~ / /; -my $sender = $name . ' <' . FixMyStreet->config('DO_NOT_REPLY_EMAIL') . '>'; +my $sender = '"' . $name . '" <' . FixMyStreet->config('DO_NOT_REPLY_EMAIL') . '>'; $expected_email_content =~ s{CONTACT_EMAIL}{$sender}; my $expected_email = Email::MIME->new($expected_email_content); diff --git a/t/app/helpers/send_email_sample.txt b/t/app/helpers/send_email_sample.txt index 1ccce6a23..0f7406172 100644 --- a/t/app/helpers/send_email_sample.txt +++ b/t/app/helpers/send_email_sample.txt @@ -1,5 +1,5 @@ MIME-Version: 1.0 -Subject: test email =?utf-8?Q?=E2=98=BA?= +Subject: =?UTF-8?B?dGVzdCBlbWFpbCDimLo=?= Content-Type: text/plain; charset="utf-8" To: test@recipient.com Content-Transfer-Encoding: quoted-printable @@ -24,5 +24,3 @@ culpa qui officia deserunt mollit anim id est laborum. Yours,=20=20 FixMyStreet.=20= - - diff --git a/t/app/helpers/send_email_sample_mime.txt b/t/app/helpers/send_email_sample_mime.txt index c4ca97bcc..0649d1ceb 100644 --- a/t/app/helpers/send_email_sample_mime.txt +++ b/t/app/helpers/send_email_sample_mime.txt @@ -1,57 +1,49 @@ -MIME-Version: 1.0 -Subject: test email =?utf-8?Q?=E2=98=BA?= -Content-Type: multipart/mixed; boundary="BOUNDARY" -To: test@recipient.com -Content-Transfer-Encoding: 7bit -From: CONTACT_EMAIL - - ---BOUNDARY -MIME-Version: 1.0 -Subject: test email =?utf-8?Q?=E2=98=BA?= -Content-Type: text/plain; charset="utf-8" -To: test@recipient.com -Content-Transfer-Encoding: quoted-printable -From: CONTACT_EMAIL - -Hello, - -This is a test email where foo: bar. - -utf8: =E6=88=91=E4=BB=AC=E5=BA=94=E8=AF=A5=E8=83=BD=E5=A4=9F=E6=97=A0=E7=BC= -=9D=E5=A4=84=E7=90=86UTF8=E7=BC=96=E7=A0=81 - - indented_text - -long line: Lorem ipsum dolor sit amet, consectetur adipisicing elit, -sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris -nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in -reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla -pariatur. Excepteur sint occaecat cupidatat non proident, sunt in -culpa qui officia deserunt mollit anim id est laborum. - -Yours,=20=20 -FixMyStreet.=20= - - - ---BOUNDARY -MIME-Version: 1.0 -Content-Type: image/gif; name="foo.gif" -Content-Disposition: inline; filename="foo.gif" -Content-Transfer-Encoding: quoted-printable - -GIF89a=01=00=01=00=80=00=00=00=00=00=CC=CC=CC,=00=00=00=00=01=00=01=00=00= -=02=01L=00;= - ---BOUNDARY -MIME-Version: 1.0 -Content-Type: image/gif; name="bar.gif" -Content-Disposition: inline; filename="bar.gif" -Content-Transfer-Encoding: quoted-printable - -GIF89a=01=00=01=00=80=00=00=00=00=00=CC=CC=CC,=00=00=00=00=01=00=01=00=00= -=02=01L=00;= - ---BOUNDARY-- +MIME-Version: 1.0
+Subject: =?UTF-8?B?dGVzdCBlbWFpbCDimLo=?=
+Content-Type: multipart/mixed; boundary="BOUNDARY"
+To: test@recipient.com
+Content-Transfer-Encoding: 7bit
+From: CONTACT_EMAIL
+
+
+--BOUNDARY
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: quoted-printable
+
+Hello,
+
+This is a test email where foo: bar.
+
+utf8: =E6=88=91=E4=BB=AC=E5=BA=94=E8=AF=A5=E8=83=BD=E5=A4=9F=E6=97=A0=E7=BC=
+=9D=E5=A4=84=E7=90=86UTF8=E7=BC=96=E7=A0=81
+
+ indented_text
+
+long line: Lorem ipsum dolor sit amet, consectetur adipisicing elit,
+sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
+nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
+reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
+pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
+culpa qui officia deserunt mollit anim id est laborum.
+
+Yours,=20=20
+FixMyStreet.=20=
+
+--BOUNDARY
+Content-Type: image/gif; name="foo.gif"
+Content-Disposition: inline; filename="foo.gif"
+Content-Transfer-Encoding: quoted-printable
+
+GIF89a=01=00=01=00=80=00=00=00=00=00=CC=CC=CC,=00=00=00=00=01=00=01=00=00=
+=02=01L=00;=
+
+--BOUNDARY
+Content-Type: image/gif; name="bar.gif"
+Content-Disposition: inline; filename="bar.gif"
+Content-Transfer-Encoding: quoted-printable
+
+GIF89a=01=00=01=00=80=00=00=00=00=00=CC=CC=CC,=00=00=00=00=01=00=01=00=00=
+=02=01L=00;=
+
+--BOUNDARY--
diff --git a/t/app/model/alert_type.t b/t/app/model/alert_type.t index 0130f404e..e94ee8ce1 100644 --- a/t/app/model/alert_type.t +++ b/t/app/model/alert_type.t @@ -287,7 +287,7 @@ foreach my $test ( desc => 'address only', addressLine => '18 North Bridge', locality => undef, - nearest => qr/: 18 North Bridge\n/, + nearest => qr/: 18 North Bridge\r?\n/, }, { desc => 'no fields', diff --git a/t/cobrand/fixamingata.t b/t/cobrand/fixamingata.t index 50b7713d1..0cf7a31fe 100644 --- a/t/cobrand/fixamingata.t +++ b/t/cobrand/fixamingata.t @@ -46,10 +46,10 @@ FixMyStreet::override_config { FixMyStreet::DB->resultset('Problem')->send_reports(); }; my $email = $mech->get_email; -like $email->header('Content-Type'), qr/iso-8859-1/, 'encoding looks okay'; +like $email->header('Content-Type'), qr/utf-8/, 'encoding looks okay'; like $email->header('Subject'), qr/Ny rapport: Test Test/, 'subject looks okay'; like $email->header('To'), qr/other\@example.org/, 'to line looks correct'; -like $email->body, qr/V=E4nligen,/, 'signature looks correct'; +like $email->body_str, qr/V\xe4nligen,/, 'signature looks correct'; $mech->clear_emails_ok; my $user = @@ -91,8 +91,8 @@ FixMyStreet::override_config { $mech->email_count_is(1); $email = $mech->get_email; -like $email->header('Content-Type'), qr/iso-8859-1/, 'encoding looks okay'; -like $email->body, qr/V=E4nligen,/, 'signature looks correct'; +like $email->header('Content-Type'), qr/utf-8/, 'encoding looks okay'; +like $email->body_str, qr/V\xe4nligen,/, 'signature looks correct'; $mech->clear_emails_ok; subtest "Test ajax decimal points" => sub { diff --git a/t/cobrand/zurich.t b/t/cobrand/zurich.t index 4734dc837..cf66136e5 100644 --- a/t/cobrand/zurich.t +++ b/t/cobrand/zurich.t @@ -661,7 +661,7 @@ subtest "external report triggers email" => sub { }; $email = $mech->get_email; my $report_id = $report->id; - like $email->header('Subject'), qr/Meldung #$report_id/, 'subject looks okay'; + like Encode::decode('MIME-Header', $email->header('Subject')), qr/Meldung #$report_id/, 'subject looks okay'; like $email->header('To'), qr/test\@example.com/, 'to line looks correct'; like $email->body, qr/$PUBLIC_RESPONSE/, 'public_response was passed on' or die $email->body; $mech->clear_emails_ok; @@ -894,6 +894,11 @@ subtest 'email images to external partners' => sub { my $expected_email_content = path(__FILE__)->parent->child('zurich_attachments.txt')->slurp; my $REPORT_ID = $report->id; + $expected_email_content =~ s{Subject: (.*?)\r?\n}{ + my $subj = Encode::decode('MIME-Header', $1); + $subj =~ s{REPORT_ID}{$REPORT_ID}g; + 'Subject: ' . Email::MIME::Encode::mime_encode($subj, "utf-8") . "\n"; + }eg; $expected_email_content =~ s{REPORT_ID}{$REPORT_ID}g; $expected_email_content =~ s{BOUNDARY}{$boundary}g; my $expected_email = Email::MIME->new($expected_email_content); diff --git a/t/cobrand/zurich_attachments.txt b/t/cobrand/zurich_attachments.txt index 4ccc90205..bdc4333bf 100644 --- a/t/cobrand/zurich_attachments.txt +++ b/t/cobrand/zurich_attachments.txt @@ -1,40 +1,33 @@ -MIME-Version: 1.0 -Subject: =?iso-8859-1?Q?Z=FCri?= wie neu: Weitergeleitete Meldung #REPORT_ID -Content-Type: multipart/mixed; boundary="BOUNDARY" -To: "External Body" <external_body@example.org> -Content-Transfer-Encoding: 7bit -From: FixMyStreet <division@example.org> - - ---BOUNDARY -MIME-Version: 1.0 -Subject: =?iso-8859-1?Q?Z=FCri?= wie neu: Weitergeleitete Meldung #REPORT_ID -Content-Type: text/plain; charset="iso-8859-1" -To: "External Body" <external_body@example.org> -Content-Transfer-Encoding: quoted-printable -From: FixMyStreet <division@example.org> - -Gr=FCezi External Body, - -=D6ffentliche URL: http://www.example.org/report/REPORT_ID - -Bei Fragen zu "Z=FCri wie neu" wenden Sie sich bitte an -gis-zentrum@zuerich.ch.= - - - ---BOUNDARY -MIME-Version: 1.0 -Content-Type: image/jpeg; name="REPORT_ID.0.jpeg" -Content-Disposition: inline; filename="REPORT_ID.0.jpeg" -Content-Transfer-Encoding: base64 - -/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEP -ERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4e -Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCABTAAEDAREA -AhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIIB//EAB8QAQAABAcAAAAAAAAAAAAAAAADBAbT -BxcYVVaUpf/EABcBAQEBAQAAAAAAAAAAAAAAAAAFBgT/xAAgEQEAAAQHAQAAAAAAAAAAAAAAAwQV -UgECFlNhodGx/9oADAMBAAIRAxEAPwCywAIozyxS5R58tbbujSW33j6zFRj3fGbKbjAGAgAACs9N -FCbtUfYg2mO1BM25e/V+lQeW3ISo/9k= - ---BOUNDARY-- +MIME-Version: 1.0
+Subject: =?iso-8859-1?Q?Z=FCri?= wie neu: Weitergeleitete Meldung #REPORT_ID
+Content-Type: multipart/mixed; boundary="BOUNDARY"
+To: "External Body" <external_body@example.org>
+Content-Transfer-Encoding: 7bit
+From: "FixMyStreet" <division@example.org>
+
+
+--BOUNDARY
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: quoted-printable
+
+Gr=C3=BCezi External Body,
+
+=C3=96ffentliche URL: http://www.example.org/report/REPORT_ID
+
+Bei Fragen zu "Z=C3=BCri wie neu" wenden Sie sich bitte an
+gis-zentrum@zuerich.ch.=
+
+--BOUNDARY
+Content-Type: image/jpeg; name="REPORT_ID.0.jpeg"
+Content-Disposition: inline; filename="REPORT_ID.0.jpeg"
+Content-Transfer-Encoding: base64
+
+/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEP
+ERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4e
+Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCABTAAEDAREA
+AhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIIB//EAB8QAQAABAcAAAAAAAAAAAAAAAADBAbT
+BxcYVVaUpf/EABcBAQEBAQAAAAAAAAAAAAAAAAAFBgT/xAAgEQEAAAQHAQAAAAAAAAAAAAAAAwQV
+UgECFlNhodGx/9oADAMBAAIRAxEAPwCywAIozyxS5R58tbbujSW33j6zFRj3fGbKbjAGAgAACs9N
+FCbtUfYg2mO1BM25e/V+lQeW3ISo/9k=
+
+--BOUNDARY--
@@ -56,7 +56,7 @@ my @EN_sorted = qw( A Å Ø Z ); my @NO_sorted = qw( A Z Ø Å ); my @default_sorted = qw( A Z Å Ø ); -{ +SKIP: { mySociety::Locale::negotiate_language( # 'en-gb,English,en_GB|cy,Cymraeg,cy_GB', 'en_GB' @@ -71,12 +71,16 @@ my @default_sorted = qw( A Z Å Ø ); is_deeply( [ keysort { $_ } @random_sorted ], \@default_sorted, "keysort correctly with no locale" ); + skip 'Will not pass on Mac', 1 if $^O eq 'darwin'; + # Note - this obeys the locale is_deeply( [ sort { strcoll( $a, $b ) } @random_sorted ], \@EN_sorted, "sort strcoll correctly with no locale (to 'en_GB')" ); } -{ +SKIP: { + skip 'Will not pass on Mac', 2 if $^O eq 'darwin'; + mySociety::Locale::negotiate_language( # 'en-gb,English,en_GB|cy,Cymraeg,cy_GB', 'en_GB' ); @@ -93,7 +97,9 @@ my @default_sorted = qw( A Z Å Ø ); \@EN_sorted, "sort strcoll correctly with use locale 'en_GB'" ); } -{ +SKIP: { + skip 'Will not pass on Mac', 2 if $^O eq 'darwin'; + mySociety::Locale::negotiate_language( # 'nb-no,Norwegian,nb_NO', 'nb_NO' ); |