Sha256: e53f9cac6e88ba37faa6150a24ffacf93ca5d0cd78f93b396cb946c05d05aebc
Contents?: true
Size: 1.33 KB
Versions: 7
Compression:
Stored size: 1.33 KB
Contents
require File.join(File.dirname(__FILE__), '..', 'spec_helper.rb') describe "Password Validation" do STRENGTHS = { :weak => { :valid => 'sixchr', :invalid => 'foo' }, :medium => { :valid => 'chrs123', :invalid => 'sixchr' }, :strong => { :valid => 'HQSij2323#$%', :invalid => 'chrs123' } } subject { TestRecord.new } STRENGTHS.each_pair do |strength, passwords| describe "#{strength} mode" do before(:each) do TestRecord.reset_callbacks(:validate) TestRecord.validates :password, :password => { :strength => strength } end describe "valid passwords" do it "accepts a #{strength} password like #{passwords[:valid]}" do subject.password = passwords[:valid] subject.should be_valid subject.should have(0).errors end end describe "invalid passwords" do before :each do subject.password = passwords[:invalid] end it "rejects invalid passwords like #{passwords[:invalid]}" do subject.should_not be_valid subject.should have(1).error end it "generates an error message of type invalid" do subject.should_not be_valid subject.errors[:password].should include subject.errors.generate_message(:password, :invalid) end end end end end
Version data entries
7 entries across 7 versions & 1 rubygems