test/rails/overrides/spec/mailers/mobile_mailer_spec.rb in jpmobile-5.0.0 vs test/rails/overrides/spec/mailers/mobile_mailer_spec.rb in jpmobile-5.0.1

- old
+ new

@@ -1,300 +1,315 @@ require 'rails_helper' -describe MobileMailer, :type => :mailer do +describe MobileMailer, type: :mailer do include Jpmobile::Util before(:each) do ActionMailer::Base.deliveries = [] - @to = ["outer@jp.mobile", "outer1@jp.mobile"] - @subject = "日本語題名" - @text = "日本語テキスト" - @sjis_regexp = %r!=\?shift_jis\?B\?(.+)\?=! - @jis_regexp = %r!=\?iso-2022-jp\?B\?(.+)\?=! + @to = ['outer@jp.mobile', 'outer1@jp.mobile'] + @subject = '日本語題名' + @text = '日本語テキスト' + @sjis_regexp = /=\?shift_jis\?B\?(.+)\?=/ + @jis_regexp = /=\?iso-2022-jp\?B\?(.+)\?=/ end - shared_examples_for "PC宛メール" do - it "正常に送信できること" do - email = MobileMailer.view_selection(@to, "題名", "本文").deliver_now + shared_examples_for 'PC宛メール' do + it '正常に送信できること' do + email = MobileMailer.view_selection(@to, '題名', '本文').deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) expect(email.to.include?(@to)).to be_truthy end - it "ISO-2022-JPに変換されること" do - email = MobileMailer.view_selection(@to, "題名", "本文").deliver_now + it 'ISO-2022-JPに変換されること' do + email = MobileMailer.view_selection(@to, '題名', '本文').deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) raw_mail = ascii_8bit(email.to_s) expect(raw_mail).to match(/iso-2022-jp/i) - expect(raw_mail).to match(Regexp.compile(Regexp.escape(ascii_8bit([utf8_to_jis("題名")].pack('m').strip)))) - expect(raw_mail).to match(Regexp.compile(Regexp.escape(ascii_8bit(utf8_to_jis("本文"))))) + expect(raw_mail).to match(Regexp.compile(Regexp.escape(ascii_8bit([utf8_to_jis('題名')].pack('m').strip)))) + expect(raw_mail).to match(Regexp.compile(Regexp.escape(ascii_8bit(utf8_to_jis('本文'))))) end - it "絵文字がゲタ(〓)に変換されること" do - email = MobileMailer.view_selection(@to, "題名", "本文".html_safe).deliver_now + it '絵文字がゲタ(〓)に変換されること' do + email = MobileMailer.view_selection(@to, '題名', '本文'.html_safe).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) raw_mail = ascii_8bit(email.to_s) - expect(raw_mail).to match(Regexp.escape("GyRCQmpMPiIuGyhC")) - expect(raw_mail).to match(Regexp.compile(Regexp.escape(ascii_8bit(utf8_to_jis("本文〓"))))) + expect(raw_mail).to match(Regexp.escape('GyRCQmpMPiIuGyhC')) + expect(raw_mail).to match(Regexp.compile(Regexp.escape(ascii_8bit(utf8_to_jis('本文〓'))))) end - it "quoted-printableではないときに勝手に変換されないこと" do - email = MobileMailer.view_selection(@to, "題名", - "本文です\nhttp://test.rails/foo/bar/index?d=430d0d1cea109cdb384ec5554b890e3940f293c7&e=ZVG%0FE%16%5E%07%04%21P%5CZ%06%00%0D%1D%40L").deliver_now + it 'quoted-printableではないときに勝手に変換されないこと' do + email = MobileMailer.view_selection( + @to, + '題名', + "本文です\nhttp://test.rails/foo/bar/index?d=430d0d1cea109cdb384ec5554b890e3940f293c7&e=ZVG%0FE%16%5E%07%04%21P%5CZ%06%00%0D%1D%40L" + ).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) raw_mail = ascii_8bit(email.to_s) expect(raw_mail).to match(/ZVG%0FE%16%5E%07%04%21P%5CZ%06%00%0D%1D%40L/) end - context ":toの指定が" do - it "ない場合でも正常に送信できること" do - email = MobileMailer.default_to_mail('題名', '本文').deliver_now + context ':toの指定が' do + it 'ない場合でも正常に送信できること' do + MobileMailer.default_to_mail('題名', '本文').deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) end end end - describe "PC宛に送るとき" do + describe 'PC宛に送るとき' do before(:each) do - @to = "bill.gate@microsoft.com" + @to = 'bill.gate@microsoft.com' end - it_behaves_like "PC宛メール" + it_behaves_like 'PC宛メール' - it "複数に配信するときもISO-2022-JPに変換されること" do - email = MobileMailer.view_selection(@to, "題名", "本文").deliver_now + it '複数に配信するときもISO-2022-JPに変換されること' do + email = MobileMailer.view_selection(@to, '題名', '本文').deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) raw_mail = ascii_8bit(email.to_s) expect(raw_mail).to match(/iso-2022-jp/i) - expect(raw_mail).to match(Regexp.compile(Regexp.escape(ascii_8bit([utf8_to_jis("題名")].pack('m').strip)))) - expect(raw_mail).to match(Regexp.compile(Regexp.escape(ascii_8bit(utf8_to_jis("本文"))))) + expect(raw_mail).to match(Regexp.compile(Regexp.escape(ascii_8bit([utf8_to_jis('題名')].pack('m').strip)))) + expect(raw_mail).to match(Regexp.compile(Regexp.escape(ascii_8bit(utf8_to_jis('本文'))))) expect(raw_mail).to match(/For PC/) end end - describe "docomo にメールを送るとき" do + describe 'docomo にメールを送るとき' do before(:each) do - @to = "docomo@docomo.ne.jp" + @to = 'docomo@docomo.ne.jp' end - it "subject/body が Shift-JIS になること" do + it 'subject/body が Shift-JIS になること' do email = MobileMailer.view_selection(@to, @subject, @text).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) raw_mail = email.to_s expect(raw_mail).to match(/shift_jis/i) # raw_mail.should match(/For docomo/) - expect(raw_mail).to match(Regexp.escape("k/qWe4zqkeiWvA==")) + expect(raw_mail).to match(Regexp.escape('k/qWe4zqkeiWvA==')) expect(raw_mail).to match(Regexp.compile(utf8_to_sjis(@text))) end - it "数値参照の絵文字が変換されること" do - emoji_subject = @subject + "" - emoji_text = @text + "" + it '数値参照の絵文字が変換されること' do + emoji_subject = @subject + '' + emoji_text = @text + '' email = MobileMailer.view_selection(@to, emoji_subject, emoji_text.html_safe).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) raw_mail = email.to_s expect(raw_mail).to match(/For docomo/) - expect(raw_mail).to match(Regexp.escape("k/qWe4zqkeiWvPjX")) + expect(raw_mail).to match(Regexp.escape('k/qWe4zqkeiWvPjX')) expect(raw_mail).to match(regexp_to_sjis("\xf8\xec")) end - it "半角カナがそのまま送信されること" do - half_kana_subject = @subject + "ゲーム" - half_kana_text = @text + "ブック" + it '半角カナがそのまま送信されること' do + half_kana_subject = @subject + 'ゲーム' + half_kana_text = @text + 'ブック' email = MobileMailer.view_selection(@to, half_kana_subject, half_kana_text).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) raw_mail = email.to_s expect(raw_mail).to match(/For docomo/) - expect(raw_mail).to match(Regexp.escape("k/qWe4zqkeiWvLnesNE=")) + expect(raw_mail).to match(Regexp.escape('k/qWe4zqkeiWvLnesNE=')) expect(raw_mail).to match(Regexp.compile(Regexp.escape(utf8_to_sjis(half_kana_text)))) end - it "quoted-printable ではないときに勝手に変換されないこと" do - email = MobileMailer.view_selection(@to, "題名", - "本文です\nhttp://test.rails/foo/bar/index?d=430d0d1cea109cdb384ec5554b890e3940f293c7&e=ZVG%0FE%16%5E%07%04%21P%5CZ%06%00%0D%1D%40L").deliver_now + it 'quoted-printable ではないときに勝手に変換されないこと' do + email = MobileMailer.view_selection( + @to, + '題名', + "本文です\nhttp://test.rails/foo/bar/index?d=430d0d1cea109cdb384ec5554b890e3940f293c7&e=ZVG%0FE%16%5E%07%04%21P%5CZ%06%00%0D%1D%40L" + ).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) raw_mail = email.to_s expect(raw_mail).to match(/ZVG%0FE%16%5E%07%04%21P%5CZ%06%00%0D%1D%40L/) end end - describe "au にメールを送るとき" do + describe 'au にメールを送るとき' do before(:each) do - @to = "au@ezweb.ne.jp" + @to = 'au@ezweb.ne.jp' end - it "subject/body がISO-2022-JPになること" do + it 'subject/body がISO-2022-JPになること' do email = MobileMailer.view_selection(@to, @subject, @text).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) raw_mail = ascii_8bit(email.to_s) expect(raw_mail).to match(/iso-2022-jp/i) expect(raw_mail).to match(Regexp.compile(Regexp.escape(ascii_8bit([utf8_to_jis(@subject)].pack('m').strip)))) expect(raw_mail).to match(Regexp.compile(Regexp.escape(ascii_8bit(utf8_to_jis(@text))))) end - it "数値参照が絵文字に変換されること" do - emoji_subject = @subject + "" - emoji_text = @text + "" + it '数値参照が絵文字に変換されること' do + emoji_subject = @subject + '' + emoji_text = @text + '' email = MobileMailer.view_selection(@to, emoji_subject, emoji_text.html_safe).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) raw_mail = ascii_8bit(email.to_s) expect(raw_mail).to match(/For au/) - expect(raw_mail).to match(Regexp.escape("GyRCRnxLXDhsQmpMPnZeGyhC")) + expect(raw_mail).to match(Regexp.escape('GyRCRnxLXDhsQmpMPnZeGyhC')) expect(raw_mail).to match(Regexp.compile(ascii_8bit("\x76\x21"))) end - it "quoted-printable ではないときに勝手に変換されないこと" do - email = MobileMailer.view_selection(@to, "題名", - "本文です\nhttp://test.rails/foo/bar/index?d=430d0d1cea109cdb384ec5554b890e3940f293c7&e=ZVG%0FE%16%5E%07%04%21P%5CZ%06%00%0D%1D%40L").deliver_now + it 'quoted-printable ではないときに勝手に変換されないこと' do + email = MobileMailer.view_selection( + @to, + '題名', + "本文です\nhttp://test.rails/foo/bar/index?d=430d0d1cea109cdb384ec5554b890e3940f293c7&e=ZVG%0FE%16%5E%07%04%21P%5CZ%06%00%0D%1D%40L" + ).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) raw_mail = ascii_8bit(email.to_s) expect(raw_mail).to match(/ZVG%0FE%16%5E%07%04%21P%5CZ%06%00%0D%1D%40L/) end end - describe "softbank にメールを送るとき" do + describe 'softbank にメールを送るとき' do before(:each) do - @to = "softbank@softbank.ne.jp" + @to = 'softbank@softbank.ne.jp' end - it "subject/body が Shift_JIS になること" do + it 'subject/body が Shift_JIS になること' do email = MobileMailer.view_selection(@to, @subject, @text).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) raw_mail = email.to_s expect(raw_mail).to match(/shift_jis/i) expect(raw_mail).to match(/For softbank/) - expect(raw_mail).to match(Regexp.escape("k/qWe4zqkeiWvA==")) + expect(raw_mail).to match(Regexp.escape('k/qWe4zqkeiWvA==')) expect(raw_mail).to match(Regexp.compile(utf8_to_sjis(@text))) end - it "数値参照が絵文字に変換されること" do - emoji_subject = @subject + "" - emoji_text = @text + "" + it '数値参照が絵文字に変換されること' do + emoji_subject = @subject + '' + emoji_text = @text + '' email = MobileMailer.view_selection(@to, emoji_subject, emoji_text.html_safe).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) raw_mail = email.to_s expect(raw_mail).to match(/For softbank/) - expect(raw_mail).to match(Regexp.escape("k/qWe4zqkeiWvPl8")) + expect(raw_mail).to match(Regexp.escape('k/qWe4zqkeiWvPl8')) expect(raw_mail).to match(regexp_to_sjis("\xf7\x6a")) end - it "quoted-printable ではないときに勝手に変換されないこと" do - email = MobileMailer.view_selection(@to, "題名", - "本文です\nhttp://test.rails/foo/bar/index?d=430d0d1cea109cdb384ec5554b890e3940f293c7&e=ZVG%0FE%16%5E%07%04%21P%5CZ%06%00%0D%1D%40L").deliver_now + it 'quoted-printable ではないときに勝手に変換されないこと' do + email = MobileMailer.view_selection( + @to, + '題名', + "本文です\nhttp://test.rails/foo/bar/index?d=430d0d1cea109cdb384ec5554b890e3940f293c7&e=ZVG%0FE%16%5E%07%04%21P%5CZ%06%00%0D%1D%40L" + ).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) raw_mail = email.to_s expect(raw_mail).to match(/ZVG%0FE%16%5E%07%04%21P%5CZ%06%00%0D%1D%40L/) end end - describe "vodafone にメールを送るとき" do + describe 'vodafone にメールを送るとき' do before(:each) do - @to = "vodafone@d.vodafone.ne.jp" + @to = 'vodafone@d.vodafone.ne.jp' end - it "subject/body が Shift_JIS になること" do + it 'subject/body が Shift_JIS になること' do email = MobileMailer.view_selection(@to, @subject, @text).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) raw_mail = email.to_s expect(raw_mail).to match(/shift_jis/i) expect(raw_mail).to match(/For vodafone/) - expect(raw_mail).to match(Regexp.escape("k/qWe4zqkeiWvA==")) + expect(raw_mail).to match(Regexp.escape('k/qWe4zqkeiWvA==')) expect(raw_mail).to match(Regexp.compile(utf8_to_sjis(@text))) end - it "数値参照が絵文字に変換されること" do - emoji_subject = @subject + "" - emoji_text = @text + "" + it '数値参照が絵文字に変換されること' do + emoji_subject = @subject + '' + emoji_text = @text + '' email = MobileMailer.view_selection(@to, emoji_subject, emoji_text.html_safe).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) raw_mail = email.to_s expect(raw_mail).to match(/For vodafone/) - expect(raw_mail).to match(Regexp.escape("k/qWe4zqkeiWvPl8")) + expect(raw_mail).to match(Regexp.escape('k/qWe4zqkeiWvPl8')) expect(raw_mail).to match(regexp_to_sjis("\xf7\x6a")) end - it "quoted-printable ではないときに勝手に変換されないこと" do - email = MobileMailer.view_selection(@to, "題名", - "本文です\nhttp://test.rails/foo/bar/index?d=430d0d1cea109cdb384ec5554b890e3940f293c7&e=ZVG%0FE%16%5E%07%04%21P%5CZ%06%00%0D%1D%40L").deliver_now + it 'quoted-printable ではないときに勝手に変換されないこと' do + email = MobileMailer.view_selection( + @to, + '題名', + "本文です\nhttp://test.rails/foo/bar/index?d=430d0d1cea109cdb384ec5554b890e3940f293c7&e=ZVG%0FE%16%5E%07%04%21P%5CZ%06%00%0D%1D%40L" + ).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) raw_mail = email.to_s expect(raw_mail).to match(/ZVG%0FE%16%5E%07%04%21P%5CZ%06%00%0D%1D%40L/) end end - describe "willcom にメールを送るとき" do + describe 'willcom にメールを送るとき' do before(:each) do - @to = "willcom@wm.pdx.ne.jp" + @to = 'willcom@wm.pdx.ne.jp' end - it_behaves_like "PC宛メール" + it_behaves_like 'PC宛メール' end - describe "emobile にメールを送るとき" do + describe 'emobile にメールを送るとき' do before(:each) do - @to = "emobile@emnet.ne.jp" + @to = 'emobile@emnet.ne.jp' end - it_behaves_like "PC宛メール" + it_behaves_like 'PC宛メール' end - describe "multipart メールを送信するとき" do + describe 'multipart メールを送信するとき' do before(:each) do ActionMailer::Base.deliveries = [] - @subject = "題名" - @text = "本文" - @html = "万葉" + @subject = '題名' + @text = '本文' + @html = '万葉' end - describe "PC の場合" do + describe 'PC の場合' do before(:each) do - @to = "gate@bill.com" + @to = 'gate@bill.com' end - it "漢字コードが変換されること" do + it '漢字コードが変換されること' do email = MobileMailer.multi_message(@to, @subject, @text, @html).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) expect(email.parts.size).to eq(2) @@ -303,16 +318,16 @@ expect(raw_mail).to match(Regexp.escape(ascii_8bit(utf8_to_jis(@text)))) expect(raw_mail).to match(Regexp.escape(ascii_8bit(utf8_to_jis(@html)))) end end - describe "docomo の場合" do + describe 'docomo の場合' do before(:each) do - @to = "docomo@docomo.ne.jp" + @to = 'docomo@docomo.ne.jp' end - it "漢字コードが変換されること" do + it '漢字コードが変換されること' do email = MobileMailer.multi_message(@to, @subject, @text, @html).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) expect(email.parts.size).to eq(2) @@ -320,13 +335,13 @@ raw_mail = email.to_s expect(raw_mail).to match(sjis_regexp(utf8_to_sjis(@text))) expect(raw_mail).to match(sjis_regexp(utf8_to_sjis(@html))) end - it "絵文字が変換されること" do - @text += "" - @html += "" + it '絵文字が変換されること' do + @text += '' + @html += '' email = MobileMailer.multi_message(@to, @subject, @text, @html).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) expect(email.parts.size).to eq(2) @@ -335,16 +350,16 @@ expect(raw_mail).to match(sjis_regexp(sjis("\xf8\xec"))) expect(raw_mail).to match(sjis_regexp(sjis("\xf8\xd7"))) end end - describe "au の場合" do + describe 'au の場合' do before(:each) do - @to = "au@ezweb.ne.jp" + @to = 'au@ezweb.ne.jp' end - it "漢字コードが変換されること" do + it '漢字コードが変換されること' do email = MobileMailer.multi_message(@to, @subject, @text, @html).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) expect(email.parts.size).to eq(2) @@ -352,13 +367,13 @@ raw_mail = ascii_8bit(email.to_s) expect(raw_mail).to match(Regexp.escape(ascii_8bit(utf8_to_jis(@text)))) expect(raw_mail).to match(Regexp.escape(ascii_8bit(utf8_to_jis(@html)))) end - it "絵文字が変換されること" do - @text += "" - @html += "" + it '絵文字が変換されること' do + @text += '' + @html += '' email = MobileMailer.multi_message(@to, @subject, @text, @html).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) expect(email.parts.size).to eq(2) @@ -367,16 +382,16 @@ expect(raw_mail).to match(jis_regexp("\x76\x21")) expect(raw_mail).to match(jis_regexp("\x76\x5e")) end end - describe "softbank の場合" do + describe 'softbank の場合' do before(:each) do - @to = "softbank@softbank.ne.jp" + @to = 'softbank@softbank.ne.jp' end - it "漢字コードが変換されること" do + it '漢字コードが変換されること' do email = MobileMailer.multi_message(@to, @subject, @text, @html).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) expect(email.parts.size).to eq(2) @@ -384,13 +399,13 @@ raw_mail = email.to_s expect(raw_mail).to match(sjis_regexp(utf8_to_sjis(@text))) expect(raw_mail).to match(sjis_regexp(utf8_to_sjis(@html))) end - it "絵文字が変換されること" do - @text += "" - @html += "" + it '絵文字が変換されること' do + @text += '' + @html += '' email = MobileMailer.multi_message(@to, @subject, @text, @html).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) expect(email.parts.size).to eq(2) @@ -399,16 +414,16 @@ expect(raw_mail).to match(sjis_regexp(sjis("\xf7\x6a"))) expect(raw_mail).to match(sjis_regexp(sjis("\xf9\x7c"))) end end - describe "vodafone の場合" do + describe 'vodafone の場合' do before(:each) do - @to = "vodafone@d.vodafone.ne.jp" + @to = 'vodafone@d.vodafone.ne.jp' end - it "漢字コードが変換されること" do + it '漢字コードが変換されること' do email = MobileMailer.multi_message(@to, @subject, @text, @html).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) expect(email.parts.size).to eq(2) @@ -416,13 +431,13 @@ raw_mail = email.to_s expect(raw_mail).to match(sjis_regexp(utf8_to_sjis(@text))) expect(raw_mail).to match(sjis_regexp(utf8_to_sjis(@html))) end - it "絵文字が変換されること" do - @text += "" - @html += "" + it '絵文字が変換されること' do + @text += '' + @html += '' email = MobileMailer.multi_message(@to, @subject, @text, @html).deliver_now expect(ActionMailer::Base.deliveries.size).to eq(1) expect(email.parts.size).to eq(2) @@ -433,227 +448,227 @@ end end end end -describe MobileMailer, " mail address", :type => :mailer do +describe MobileMailer, ' mail address', type: :mailer do before(:each) do ActionMailer::Base.deliveries = [] - @subject = "日本語題名" - @text = "日本語テキスト" + @subject = '日本語題名' + @text = '日本語テキスト' end - it "ピリオドが3つ以上連続するアドレスが有効になること" do - to = "ruby...rails@domomo-ezweb.ne.jp" + it 'ピリオドが3つ以上連続するアドレスが有効になること' do + to = 'ruby...rails@domomo-ezweb.ne.jp' MobileMailer.view_selection(to, @subject, @text).deliver_now emails = ActionMailer::Base.deliveries expect(emails.size).to eq(1) expect(emails.first.to.include?(to)).to be_truthy expect(emails.first.destinations.include?(to)).to be_truthy end - it "@マークの直前にピリオドあるアドレスが有効になること" do - to = "ruby.rails.@domomo-ezweb.ne.jp" + it '@マークの直前にピリオドあるアドレスが有効になること' do + to = 'ruby.rails.@domomo-ezweb.ne.jp' MobileMailer.view_selection(to, @subject, @text).deliver_now emails = ActionMailer::Base.deliveries expect(emails.size).to eq(1) expect(emails.first.to.include?(to)).to be_truthy expect(emails.first.destinations.include?(to)).to be_truthy end - it "ピリオドから始まるアドレスが有効になること" do - to = ".ruby.rails.@domomo-ezweb.ne.jp" + it 'ピリオドから始まるアドレスが有効になること' do + to = '.ruby.rails.@domomo-ezweb.ne.jp' MobileMailer.view_selection(to, @subject, @text).deliver_now emails = ActionMailer::Base.deliveries expect(emails.size).to eq(1) expect(emails.first.to.include?(to)).to be_truthy expect(emails.first.destinations.include?(to)).to be_truthy end - it "複数のアドレスが有効になること" do - to = [".ruby.rails.@domomo-ezweb.ne.jp", "ruby.rails.@domomo-ezweb.ne.jp", "ruby...rails@domomo-ezweb.ne.jp"] - MobileMailer.view_selection(to.join(", "), @subject, @text).deliver_now + it '複数のアドレスが有効になること' do + to = ['.ruby.rails.@domomo-ezweb.ne.jp', 'ruby.rails.@domomo-ezweb.ne.jp', 'ruby...rails@domomo-ezweb.ne.jp'] + MobileMailer.view_selection(to.join(', '), @subject, @text).deliver_now emails = ActionMailer::Base.deliveries expect(emails.size).to eq(1) expect(emails.first.to).to eq(to) expect(emails.first.destinations).to eq(to) end end -describe MobileMailer, "receiving", :type => :mailer do - describe "blank mail" do - it "softbank からの空メールがで受信できること" do - email = open(Rails.root + "spec/fixtures/mobile_mailer/softbank-blank.eml").read - # expect { +describe MobileMailer, 'receiving', type: :mailer do + describe 'blank mail' do + it 'softbank からの空メールがで受信できること' do + email = open(Rails.root + 'spec/fixtures/mobile_mailer/softbank-blank.eml').read + expect { email = MobileMailer.receive(email) - # }.to_not raise_error + }.to_not raise_error expect(email.subject).to be_blank expect(email.body).to be_blank end end - describe "docomo からのメールを受信するとき" do + describe 'docomo からのメールを受信するとき' do before(:each) do - @email = open(Rails.root + "spec/fixtures/mobile_mailer/docomo-emoji.eml").read + @email = open(Rails.root + 'spec/fixtures/mobile_mailer/docomo-emoji.eml').read end - it "漢字コードを適切に変換できること" do + it '漢字コードを適切に変換できること' do email = MobileMailer.receive(@email) expect(email.subject).to match(/題名/) expect(email.body).to match(/本文/) end - it "絵文字が数値参照に変わること" do + it '絵文字が数値参照に変わること' do email = MobileMailer.receive(@email) expect(email.subject).to match(//) expect(email.body).to match(//) end - describe "jis コードの場合に" do + describe 'jis コードの場合に' do before(:each) do - @email = open(Rails.root + "spec/fixtures/mobile_mailer/docomo-jis.eml").read + @email = open(Rails.root + 'spec/fixtures/mobile_mailer/docomo-jis.eml').read end - it "適切に変換できること" do + it '適切に変換できること' do email = MobileMailer.receive(@email) expect(email.subject).to match(/テスト/) expect(email.body).to match(/テスト本文/) end end end - describe "au からのメールを受信するとき" do - describe "jpmobile で送信したメールの場合" do + describe 'au からのメールを受信するとき' do + describe 'jpmobile で送信したメールの場合' do before(:each) do - @email = open(Rails.root + "spec/fixtures/mobile_mailer/au-emoji.eml").read + @email = open(Rails.root + 'spec/fixtures/mobile_mailer/au-emoji.eml').read end - it "漢字コードを適切に変換できること" do + it '漢字コードを適切に変換できること' do email = MobileMailer.receive(@email) expect(email.subject).to match(/題名/) expect(email.body).to match(/本文/) end - it "絵文字が数値参照に変わること" do + it '絵文字が数値参照に変わること' do email = MobileMailer.receive(@email) expect(email.subject).to match(//) expect(email.body).to match(//) end end - describe "実機からのメールの場合" do + describe '実機からのメールの場合' do before(:each) do - @email = open(Rails.root + "spec/fixtures/mobile_mailer/au-emoji2.eml").read + @email = open(Rails.root + 'spec/fixtures/mobile_mailer/au-emoji2.eml').read end - it "漢字コードを適切に変換できること" do + it '漢字コードを適切に変換できること' do email = MobileMailer.receive(@email) expect(email.subject).to match(/題名/) expect(email.body).to match(/本文/) end - it "絵文字が数値参照に変わること" do + it '絵文字が数値参照に変わること' do email = MobileMailer.receive(@email) expect(email.subject).to match(//) expect(email.body).to match(//) end end end - describe "softbank からのメールを受信するとき" do - describe "shift_jis のとき" do + describe 'softbank からのメールを受信するとき' do + describe 'shift_jis のとき' do before(:each) do - @email = open(Rails.root + "spec/fixtures/mobile_mailer/softbank-emoji.eml").read + @email = open(Rails.root + 'spec/fixtures/mobile_mailer/softbank-emoji.eml').read end - it "漢字コードを適切に変換できること" do + it '漢字コードを適切に変換できること' do email = MobileMailer.receive(@email) expect(email.subject).to match(/題名/) expect(email.body).to match(/本文/) end - it "絵文字が数値参照に変わること" do + it '絵文字が数値参照に変わること' do email = MobileMailer.receive(@email) expect(email.subject).to match(//) expect(email.body).to match(//) end end - describe "utf-8 のとき" do + describe 'utf-8 のとき' do before(:each) do - @email = open(Rails.root + "spec/fixtures/mobile_mailer/softbank-emoji-utf8.eml").read + @email = open(Rails.root + 'spec/fixtures/mobile_mailer/softbank-emoji-utf8.eml').read end - it "漢字コードを適切に変換できること" do + it '漢字コードを適切に変換できること' do email = MobileMailer.receive(@email) expect(email.subject).to match(/題名/) expect(email.body).to match(/本文/) end - it "絵文字が数値参照に変わること" do + it '絵文字が数値参照に変わること' do email = MobileMailer.receive(@email) expect(email.subject).to match(//) expect(email.body).to match(//) end end end - describe "multipart メールを受信するとき" do - describe "docomo の場合" do + describe 'multipart メールを受信するとき' do + describe 'docomo の場合' do # NOTE: キャリアメールサーバで絵文字を変換するため検証は困難 before(:each) do - @email = open(Rails.root + "spec/fixtures/mobile_mailer/docomo-gmail-sjis.eml").read + @email = open(Rails.root + 'spec/fixtures/mobile_mailer/docomo-gmail-sjis.eml').read end - it "正常に受信できること" do + it '正常に受信できること' do expect { MobileMailer.receive(@email) }.not_to raise_exception end - it "絵文字が変換されること" do + it '絵文字が変換されること' do email = MobileMailer.receive(@email) expect(email.subject).to match(//) expect(email.parts.size).to eq(1) - email.parts.first.parts.size == 2 + expect(email.parts.first.parts.size).to eq(2) parts = email.parts.first.parts - expect(parts.first.body).to match("テストです") - expect(parts.last.body.raw_source).to match("テストです") + expect(parts.first.body).to match('テストです') + expect(parts.last.body.raw_source).to match('テストです') end end - describe "au の場合" do + describe 'au の場合' do before(:each) do - @email = open(Rails.root + "spec/fixtures/mobile_mailer/au-decomail.eml").read + @email = open(Rails.root + 'spec/fixtures/mobile_mailer/au-decomail.eml').read end - it "正常に受信できること" do + it '正常に受信できること' do expect { MobileMailer.receive(@email) }.not_to raise_exception end - it "絵文字が変換されること" do + it '絵文字が変換されること' do email = MobileMailer.receive(@email) expect(email.subject).to match(//) expect(email.parts.size).to eq(1) @@ -665,30 +680,30 @@ end context 'iPhone' do it 'should parse correctly' do expect { - @mail = MobileMailer.receive(open(File.join(Rails.root, "../../../spec/unit/email-fixtures/iphone-message.eml")).read) + @mail = MobileMailer.receive(open(File.join(Rails.root, '../../../spec/unit/email-fixtures/iphone-message.eml')).read) @mail.encoded }.not_to raise_error end end end - describe "softbank(sjis) の場合" do + describe 'softbank(sjis) の場合' do # NOTE: キャリアメールサーバで絵文字を変換するため検証は困難 before(:each) do - @email = open(Rails.root + "spec/fixtures/mobile_mailer/softbank-gmail-sjis.eml").read + @email = open(Rails.root + 'spec/fixtures/mobile_mailer/softbank-gmail-sjis.eml').read end - it "正常に受信できること" do + it '正常に受信できること' do expect { MobileMailer.receive(@email) }.not_to raise_exception end - it "絵文字が変換されること" do + it '絵文字が変換されること' do email = MobileMailer.receive(@email) expect(email.subject).to match(//) expect(email.parts.size).to eq(2) @@ -696,23 +711,23 @@ expect(email.parts.first.body).to match(/テストです/) expect(email.parts.last.body.raw_source).to match(/テストです/) end end - describe "softbank(utf8) の場合" do + describe 'softbank(utf8) の場合' do # NOTE: キャリアメールサーバで絵文字を変換するため検証は困難 before(:each) do - @email = open(Rails.root + "spec/fixtures/mobile_mailer/softbank-gmail-utf8.eml").read + @email = open(Rails.root + 'spec/fixtures/mobile_mailer/softbank-gmail-utf8.eml').read end - it "正常に受信できること" do + it '正常に受信できること' do expect { MobileMailer.receive(@email) }.not_to raise_exception end - it "絵文字が変換されること" do + it '絵文字が変換されること' do email = MobileMailer.receive(@email) expect(email.subject).to match(/テストです/) expect(email.parts.size).to eq(2) @@ -720,69 +735,69 @@ expect(email.parts.first.body).to match(/テストです/) expect(email.parts.last.body.raw_source).to match(/テストです/) end end - describe "添付ファイルがある場合" do + describe '添付ファイルがある場合' do # NOTE: au のみテスト before(:each) do - @email = open(Rails.root + "spec/fixtures/mobile_mailer/au-attached.eml").read + @email = open(Rails.root + 'spec/fixtures/mobile_mailer/au-attached.eml').read end - it "正常に受信できること" do + it '正常に受信できること' do expect { MobileMailer.receive(@email) }.not_to raise_exception end - it "添付ファイルが壊れないこと" do + it '添付ファイルが壊れないこと' do email = MobileMailer.receive(@email) expect(email.subject).to match(//) expect(email.parts.size).to eq(2) expect(email.parts.first.body).to match(/カレンダーだ/) expect(email.has_attachments?).to be_truthy expect(email.attachments.size).to eq(1) - expect(email.attachments['20098calendar01.jpg'].content_type).to match("image/jpeg") - email.attachments['20098calendar01.jpg'].body.to_s[2..6] == "JFIF" - email.attachments['20098calendar01.jpg'].body.to_s.size == 86412 + expect(email.attachments['20098calendar01.jpg'].content_type).to match('image/jpeg') + expect(email.attachments['20098calendar01.jpg'].body.to_s.size).to eq(86412) + expect(email.attachments['20098calendar01.jpg'].body.to_s[6..9]).to eq('JFIF') end end end - describe "PCからメールを受信するとき" do - describe "日本語ではない場合" do + describe 'PCからメールを受信するとき' do + describe '日本語ではない場合' do before(:each) do - @email = open(Rails.root + "spec/fixtures/mobile_mailer/non-jp.eml").read + @email = open(Rails.root + 'spec/fixtures/mobile_mailer/non-jp.eml').read end - it "正常に受信できること" do + it '正常に受信できること' do expect { MobileMailer.receive(@email) }.not_to raise_exception end - it "mobile が nil であること" do + it 'mobile が nil であること' do mail = MobileMailer.receive(@email) expect(mail.mobile).to be_nil end end - describe "From がない場合" do + describe 'From がない場合' do before(:each) do - @email = open(Rails.root + "spec/fixtures/mobile_mailer/no-from.eml").read + @email = open(Rails.root + 'spec/fixtures/mobile_mailer/no-from.eml').read end - it "正常に受信できること" do + it '正常に受信できること' do expect { MobileMailer.receive(@email) }.not_to raise_exception end - it "mobile が nil であること" do + it 'mobile が nil であること' do mail = MobileMailer.receive(@email) expect(mail.mobile).to be_nil end end end