diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-06-20 13:43:29 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-06-20 13:43:29 +0300 |
commit | 3b1af5cc7ed2666ff18b718ce5d30fa5a2756674 (patch) | |
tree | 3bc4a40e0ee51ec27eabf917c537033c0c5b14d4 /spec/lib/gitlab/email | |
parent | 9bba14be3f2c211bf79e15769cd9b77bc73a13bc (diff) |
Add latest changes from gitlab-org/gitlab@16-1-stable-eev16.1.0-rc42
Diffstat (limited to 'spec/lib/gitlab/email')
-rw-r--r-- | spec/lib/gitlab/email/handler/service_desk_handler_spec.rb | 18 | ||||
-rw-r--r-- | spec/lib/gitlab/email/reply_parser_spec.rb | 34 |
2 files changed, 51 insertions, 1 deletions
diff --git a/spec/lib/gitlab/email/handler/service_desk_handler_spec.rb b/spec/lib/gitlab/email/handler/service_desk_handler_spec.rb index 7bba0775668..ef2acc9ec92 100644 --- a/spec/lib/gitlab/email/handler/service_desk_handler_spec.rb +++ b/spec/lib/gitlab/email/handler/service_desk_handler_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Gitlab::Email::Handler::ServiceDeskHandler do +RSpec.describe Gitlab::Email::Handler::ServiceDeskHandler, feature_category: :service_desk do include ServiceDeskHelper include_context 'email shared context' @@ -67,6 +67,22 @@ RSpec.describe Gitlab::Email::Handler::ServiceDeskHandler do end end + context 'when encoding of an email is iso-8859-2' do + let(:email_raw) { email_fixture('emails/service_desk_encoding.eml') } + let(:expected_description) do + "Body of encoding iso-8859-2 test: ťžščľžťťč" + end + + it 'creates a new issue with readable subject and body' do + expect { receiver.execute }.to change { Issue.count }.by(1) + + new_issue = Issue.last + + expect(new_issue.title).to eq("Testing encoding iso-8859-2 ťžščľžťťč") + expect(new_issue.description).to eq(expected_description.strip) + end + end + context 'when everything is fine' do it_behaves_like 'a new issue request' diff --git a/spec/lib/gitlab/email/reply_parser_spec.rb b/spec/lib/gitlab/email/reply_parser_spec.rb index 35065b74eff..05c8559e30f 100644 --- a/spec/lib/gitlab/email/reply_parser_spec.rb +++ b/spec/lib/gitlab/email/reply_parser_spec.rb @@ -380,5 +380,39 @@ RSpec.describe Gitlab::Email::ReplyParser, feature_category: :team_planning do end end end + + context 'iso-8859-2 content' do + let(:raw_content) do + <<-BODY.strip_heredoc.chomp + From: Jake the Dog <jake@adventuretime.ooo> + To: <incoming+email-test-project_id-issue-@appmail.adventuretime.ooo> + Subject: =?iso-8859-2?B?VGVzdGluZyBlbmNvZGluZyBpc28tODg1OS0yILu+uei1vru76A==?= + Date: Wed, 31 May 2023 18:43:32 +0200 + Message-ID: <CADkmRc+rNGAGGbV2iE5p918UVy4UyJqVcXRO2=otppgzduJSg@mail.gmail.com> + MIME-Version: 1.0 + Content-Type: multipart/alternative; + boundary="----=_NextPart_000_0001_01D993EF.CDD81EA0" + X-Mailer: Microsoft Outlook 16.0 + Thread-Index: AdmT3ur1lfLfsfGgRM699GyWkjowfg== + Content-Language: en-us + + This is a multipart message in MIME format. + + ------=_NextPart_000_0001_01D993EF.CDD81EA0 + Content-Type: text/plain; + charset="iso-8859-2" + Content-Transfer-Encoding: base64 + + Qm9keSBvZiBlbmNvZGluZyBpc28tODg1OS0yIHRlc3Q6ILu+uei1vru76A0KDQo= + BODY + end + + it "parses body under UTF-8 encoding" do + expect(test_parse_body(raw_content, { trim_reply: false })) + .to eq(<<-BODY.strip_heredoc.chomp) + Body of encoding iso-8859-2 test: ťžščľžťťč\r\n\r\n + BODY + end + end end end |