Show More
Commit Description:
added message hiding for admin in msg console...
Commit Description:
added message hiding for admin in msg console
git-svn-id: http://theory.cpe.ku.ac.th/grader/web/trunk@371 6386c4cd-e34a-4fa8-8920-d93eb39b512e
References:
File last commit:
Show/Diff file:
Action:
spec/models/user_spec.rb
| 104 lines
| 2.9 KiB
| text/x-ruby
| RubyLexer
|
|
r155 | |||
require File.dirname(__FILE__) + '/../spec_helper' | ||||
describe User do | ||||
before(:each) do | ||||
@password = "hello" | ||||
@salt = "123" | ||||
@john = stub_model(User, :salt => @salt, | ||||
:hashed_password => User.encrypt(@password,@salt)) | ||||
end | ||||
|
r157 | it "should be authenticated if activated" do | ||
|
r155 | @john.should_receive(:activated).and_return(true) | ||
@john.authenticated?(@password).should == true | ||||
end | ||||
|
r157 | it "should not be authenticated if inactivated" do | ||
|
r155 | @john.should_receive(:activated).and_return(false) | ||
@john.authenticated?(@password).should == false | ||||
end | ||||
|
r157 | it "should not be authenticated if incorrect password is provided" do | ||
|
r155 | @john.should_receive(:activated).and_return(true) | ||
@john.should_receive(:hashed_password).and_return("byebye") | ||||
@john.authenticated?(@password).should == false | ||||
end | ||||
|
r157 | |||
|
r155 | end | ||
describe User, "during registration" do | ||||
|
r157 | |||
|
r155 | class User | ||
public :encrypt_new_password | ||||
end | ||||
before(:each) do | ||||
@john = User.new(:login => 'john', :password => 'hello') | ||||
@john.encrypt_new_password | ||||
end | ||||
|
r157 | |||
|
r155 | it "should produce and accept activation key" do | ||
activation_key = @john.activation_key | ||||
@john.verify_activation_key(activation_key).should == true | ||||
end | ||||
|
r157 | |||
|
r155 | it "should not accept invalid activation key" do | ||
@john.verify_activation_key("12345").should == false | ||||
end | ||||
|
r158 | end | ||
describe User, "when re-register with the same e-mail" do | ||||
before(:each) do | ||||
@mary_email = 'mary@in.th' | ||||
@time_first_register = Time.local(2008,5,10,9,00).gmtime | ||||
@mary_first = mock_model(User, | ||||
:login => 'mary1', | ||||
:password => 'hello', | ||||
:email => @mary_email, | ||||
:created_at => @time_first_register) | ||||
@mary_second = User.new(:login => 'mary2', | ||||
:password => 'hello', | ||||
:email => @mary_email) | ||||
User.stub!(:find_by_email). | ||||
with(@mary_email, {:order => "created_at DESC"}). | ||||
and_return(@mary_first) | ||||
end | ||||
class User | ||||
public :enough_time_interval_between_same_email_registrations | ||||
end | ||||
it "should not be allowed if the time interval is less than 5 mins" do | ||||
time_now = @time_first_register + 4.minutes | ||||
Time.stub!(:now).and_return(time_now) | ||||
@mary_second.enough_time_interval_between_same_email_registrations | ||||
@mary_second.errors.length.should_not be_zero | ||||
end | ||||
it "should be allowed if the time interval is more than 5 mins" do | ||||
time_now = @time_first_register + 6.minutes | ||||
Time.stub!(:now).and_return(time_now) | ||||
@mary_second.enough_time_interval_between_same_email_registrations | ||||
@mary_second.errors.length.should be_zero | ||||
end | ||||
|
r157 | end | ||
|
r155 | |||
|
r157 | describe User, "as a class" do | ||
|
r155 | |||
|
r157 | it "should be able to generate random password" do | ||
password1 = User.random_password | ||||
password2 = User.random_password | ||||
password1.should_not == password2 | ||||
end | ||||
|
r155 | end | ||