aboutsummaryrefslogtreecommitdiffstats
path: root/spec/models/spam_address_spec.rb
diff options
context:
space:
mode:
authorGareth Rees <gareth@mysociety.org>2014-04-07 12:05:17 +0100
committerGareth Rees <gareth@mysociety.org>2014-04-07 12:05:17 +0100
commit715643868b8c198e0310c596c9cb0972cde9f947 (patch)
treea3cdf3f12cb9b6b9e593d04956c05be97a3c06fc /spec/models/spam_address_spec.rb
parentbb1837146136a4feec12eb191bbde1487fff5234 (diff)
parent6922b3f45ad38a8e52050ca56733b4e950e69cbd (diff)
Merge branch 'issues/1317-holding-pen-spam' into rails-3-develop
Diffstat (limited to 'spec/models/spam_address_spec.rb')
-rw-r--r--spec/models/spam_address_spec.rb49
1 files changed, 49 insertions, 0 deletions
diff --git a/spec/models/spam_address_spec.rb b/spec/models/spam_address_spec.rb
new file mode 100644
index 000000000..79a1afd11
--- /dev/null
+++ b/spec/models/spam_address_spec.rb
@@ -0,0 +1,49 @@
+require 'spec_helper'
+
+describe SpamAddress do
+
+ describe :new do
+
+ it 'requres an email address' do
+ SpamAddress.new().should_not be_valid
+ SpamAddress.new(:email => 'spam@example.org').should be_valid
+ end
+
+ it 'must have a unique email address' do
+ existing = FactoryGirl.create(:spam_address)
+ SpamAddress.new(:email => existing.email).should_not be_valid
+ end
+
+ end
+
+ describe '.spam?' do
+
+ before(:each) do
+ @spam_address = FactoryGirl.create(:spam_address)
+ end
+
+ it 'is a spam address if the address is stored' do
+ SpamAddress.spam?(@spam_address.email).should be_true
+ end
+
+ it 'is not a spam address if the adress is not stored' do
+ SpamAddress.spam?('genuine-email@example.com').should be_false
+ end
+
+ describe 'when accepting an array of emails' do
+
+ it 'is spam if any of the emails are stored' do
+ emails = ['genuine-email@example.com', @spam_address.email]
+ SpamAddress.spam?(emails).should be_true
+ end
+
+ it 'is not spam if none of the emails are stored' do
+ emails = ['genuine-email@example.com', 'genuine-email@example.org']
+ SpamAddress.spam?(emails).should be_false
+ end
+
+ end
+
+ end
+
+end