DEV: Enable preserve_email_structure_when_styling by default

In 1bd8a075, a hidden site setting was added that causes Email::Styles
to treat its input as a complete document in all cases.

This commit enables that setting by default.

Some tests were removed that were broken by this change. They tested the
behaviour of applying email styles to empty strings. They weren't useful
because:

 * Sending empty email is not something we ever intend to do,
 * They were testing incidental behaviour - there are lots of
   valid ways to process the empty string,
 * Their intent wasn't clear from their descriptions,
This commit is contained in:
Daniel Waterworth 2020-07-20 10:04:04 +01:00
parent 383537a2fa
commit 9313706649
3 changed files with 4 additions and 17 deletions

View File

@ -1131,7 +1131,7 @@ email:
default: true
hidden: true
preserve_email_structure_when_styling:
default: false
default: true
hidden: true
files:

View File

@ -19,13 +19,6 @@ describe Email::Styles do
end
context "basic formatter" do
it "works with an empty string" do
style = Email::Styles.new("")
style.format_basic
expect(style.to_html).to be_blank
end
it "adds a max-width to large images" do
frag = basic_fragment("<img height='auto' width='auto' src='gigantic.jpg'>")
expect(frag.at("img")["style"]).to match("max-width")
@ -56,12 +49,6 @@ describe Email::Styles do
end
context "html template formatter" do
it "works with an empty string" do
style = Email::Styles.new("")
style.format_html
expect(style.to_html).to be_blank
end
it "attaches a style to h3 tags" do
frag = html_fragment("<h3>hello</h3>")
expect(frag.at('h3')['style']).to be_present
@ -188,7 +175,7 @@ describe Email::Styles do
cooked = "Create a method for click on image and use ng-click in <img> in your slide box...it is simple"
style = Email::Styles.new(cooked)
style.strip_avatars_and_emojis
expect(style.to_html).to eq(cooked)
expect(style.to_html).to include(cooked)
end
end

View File

@ -8,8 +8,8 @@ describe EmailStyle do
it "does not evaluate ERB outside of the email itself" do
SiteSetting.email_custom_template = "<hello>%{email_content}</hello><%= (111 * 333) %>"
html = Email::Renderer.new(UserNotifications.signup(Fabricate(:user))).html
expect(html).not_to match("36963")
expect(html.starts_with?('<hello>')).to eq(true)
expect(html).not_to include("36963")
expect(html).to include('<hello>')
end
end