Class: TestMails

Inherits:
Object
  • Object
show all
Defined in:
lib/generators/voluntary/install/templates/features/step_definitions/email_steps.rb,
lib/generators/voluntary/product_dummy/templates/features/step_definitions/email_steps.rb

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.user_identityObject

Returns the value of attribute user_identity.



51
52
53
# File 'lib/generators/voluntary/install/templates/features/step_definitions/email_steps.rb', line 51

def user_identity
  @user_identity
end

Class Method Details

.find(conditions) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/generators/voluntary/install/templates/features/step_definitions/email_steps.rb', line 53

def find(conditions)
  ActionMailer::Base.deliveries.detect do |mail|
    [ conditions[:to].nil? || mail.to.include?(resolve_email conditions[:to]),
      conditions[:from].nil? || mail.from.include?(resolve_email conditions[:from]),
      conditions[:subject].nil? || mail.subject.include?(conditions[:subject]),
      conditions[:body].nil? || mail.body.include?(conditions[:body]),
      conditions[:attachments].nil? || conditions[:attachments].split(/\s*,\s*/).sort == Array(mail.attachments).collect(&:original_filename).sort
    ].all?
  end.tap do |mail|
    puts "Die Mail: #{mail}" 
    log(mail)
  end
end

.log(mail) ⇒ Object



75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/generators/voluntary/install/templates/features/step_definitions/email_steps.rb', line 75

def log(mail)
  puts "Aufruf: #{mail}" 
  if mail.present?
    File.open("log/test_mails.log", "a") do |file|
      file << "From: #{mail.from}\n"
      file << "To: #{mail.to.join(', ')}\n"
      file << "Subject: #{mail.subject}\n\n"
      file << mail.body
      file << "\n-------------------------\n\n"
    end
  end
end

.resolve_email(identity) ⇒ Object



67
68
69
70
71
72
73
# File 'lib/generators/voluntary/install/templates/features/step_definitions/email_steps.rb', line 67

def resolve_email(identity)
  if identity =~ /^.+\@.+$/
    identity
  else
    User.send("find_by_#{user_identity || 'email'}!", identity).email
  end
end