test/functional/account_controller_test.rb in parlement-0.6 vs test/functional/account_controller_test.rb in parlement-0.7
- old
+ new
@@ -8,134 +8,133 @@
# Raise errors beyond the default web-based presentation
class AccountController; def rescue_action(e) raise e end; end
class AccountControllerTest < Test::Unit::TestCase
- fixtures :people, LoginEngine.config(:user_table).to_sym, :subscribers
+ fixtures :people, LoginEngine.config(:user_table).to_sym, :elts, :mails, :attachments, :subscribers
#fixtures :people, :users
def setup
LoginEngine::CONFIG[:salt] = "test-salt"
- @controller = AccountController.new
- @request, @response = ActionController::TestRequest.new, ActionController::TestResponse.new
- @request.host = "localhost"
+ @controller = AccountController.new
+ @request, @response = ActionController::TestRequest.new, ActionController::TestResponse.new
+ @request.host = "localhost"
@elt = Elt.find '1'
- end
+ end
""" _ _
_ __ ___ ___ _ _ __| | ___ ___ _ __ | |_ _
| '_ \/ __|/ _ \ | | |/ _` |/ _ \ / _ \| '_ \| | | | |
| |_) \__ \ __/ |_| | (_| | (_) | | (_) | | | | | |_| |
| .__/|___/\___|\__,_|\__,_|\___/ \___/|_| |_|_|\__, |
|_| |___/
"""
def test_signup
- post :login, :person => { :name => "my_bob", :email => "" },
+ post :login, :person => { :name => "my_bob", :email => "" },
:user => { :password => "" }
assert_not_nil session[:person]
assert_nil session[:user]
- end
-
- def test_login_logoff_no_password
- post :login, :person => { :name => "bob_other", :email => "" },
+ end
+
+ def test_login_logoff_no_password
+ post :login, :person => { :name => "bob_other", :email => "" },
:user => { :password => "" }
assert_equal people(:bob_other), @request.session[:person]
assert_nil session[:user]
- get :logout
+ get :logout
assert_nil session[:person]
- end
+ end
- def test_bad_pseudo
+ def test_bad_pseudo
post :login, :person => { :name => "yo", :email => "" },
:user => { :password => "" }
- assert_invalid_column_on_record "person", :name
- assert_success
+ assert_invalid_column_on_record "person", :name
+ assert_success
assert_nil session[:person]
- end
+ end
""" _
_ __ __ _ ___ _____ _____ _ __ __| |
| '_ \ / _` / __/ __\ \ /\ / / _ \| '__/ _` |
| |_) | (_| \__ \__ \\ V V / (_) | | | (_| |
| .__/ \__,_|___/___/ \_/\_/ \___/|_| \__,_|
|_|
"""
- def test_password_protect
- post :login, :person => { :name => "bob_another", :email => "" },
+ def test_password_protect
+ post :login, :person => { :name => "bob_another", :email => "" },
:user => { :password => "atest" }
assert_not_nil session[:person]
assert_not_nil session[:user]
- end
-
- def test_auth_bob
- post :login, :person => { :name => "bob", :email => "" },
+ end
+
+ def test_auth_bob
+ post :login, :person => { :name => "bob", :email => "" },
:user => { :password => "atest" }
- assert_equal people(:bob), @response.session[:person]
+ assert_equal people(:bob), @response.session[:person]
assert_not_nil session[:person]
assert_not_nil session[:user]
- end
+ end
- def test_bad_password
- post :login, :person => { :name => "newbob", :email => "" },
+ def test_bad_password
+ post :login, :person => { :name => "newbob", :email => "" },
:user => { :password => "newpassword", :password_confirmation => "wrong" }
- #assert_invalid_column_on_record "user", :password
- assert_success
- end
+ #assert_invalid_column_on_record "user", :password
+ assert_success
+ end
- def test_login_logoff_password
- post :login, :person => { :name => "my_bob", :email => "" },
+ def test_login_logoff_password
+ post :login, :person => { :name => "my_bob", :email => "" },
:user => { :password => "my_bob" }
assert_not_nil session[:person]
- get :logout
+ get :logout
assert_nil session[:user]
- end
+ end
- def test_invalid_password
- post :login, :person => { :name => "my_bob", :email => "" },
+ def test_invalid_password
+ post :login, :person => { :name => "my_bob", :email => "" },
:user => { :password => "my_bob" }
assert_not_nil session[:person]
assert_not_nil session[:user]
- get :logout
- post :login, :person => { :name => "my_bob", :email => "" },
+ get :logout
+ post :login, :person => { :name => "my_bob", :email => "" },
:user => { :password => "my_bo" }
assert_nil session[:person]
assert_nil session[:user]
- #assert_template_has "login"
- end
+ #assert_template_has "login"
+ end
""" _ _
___ _ __ ___ __ _(_) |
/ _ \ '_ ` _ \ / _` | | |
| __/ | | | | | (_| | | |
\___|_| |_| |_|\__,_|_|_|
"""
- def test_password_and_email_protect
- post :login, :person => { :name => "my_bob", :email => "manu@noos.fr" },
+ def test_password_and_email_protect
+ post :login, :person => { :name => "my_bob", :email => "manu@noos.fr" },
:user => { :password => "my_bob" }
assert_not_nil session[:person]
assert_not_nil session[:user]
assert_equal "my_bob", @request.session[:person].name
assert_equal "manu@noos.fr", @request.session[:user].email
assert_not_equal @request.session[:person].email, @request.session[:user].email
assert_not_nil @request.session[:user].security_token
- end
-
- def invalid_email
- post :login, :person => { :name => "bob", :email => "" },
+ end
+
+ def invalid_email
+ post :login, :person => { :name => "bob", :email => "" },
:user => { :password => "not_correct" }
assert_nil session[:person]
assert_nil session[:user]
-
- assert_template_has "login"
- end
+ assert_template_has "login"
+ end
def test_email_protect
LoginEngine::CONFIG[:use_email_notification] = true
@@ -182,11 +181,11 @@
# Now the real one.
get :check_key, :user=> { :id => "#{user.id}" }, :key => "#{key}"
user = User.find_by_email("newbob@test.com")
person = Person.find_by_name(user.login)
assert_equal user.email, person.email
-
+
post :login, :person => { :name => "newbob", :email => "" },
:user => { :password => "newpassword" }
assert_not_nil session[:person]
assert_not_nil session[:user]
get :logout
@@ -238,28 +237,81 @@
assert_not_nil session[:person]
assert_not_nil session[:user]
get :logout
end
- def test_update_subscribe
- post :login, :person => { :name => "bob_other", :email => "" },
+ def test_update_subscribe
+ post :login, :person => { :name => "bob_other", :email => "" },
:user => { :password => "" }, :divId => 'author_ROOT'
controller = @controller
@controller = EltController.new
post :create, :id => @elt.id, :commit => "Propose!",
:elt =>{
- :body => "+1", :subject => "test_create", :parent_id => @elt.id }
+ :body => "+1", :subject => "test_create", :parent_id => @elt.id }
@controller = controller
- get :logout
+ get :logout
- post :login, :person => { :name => "bob_other", :email => "" },
+ post :login, :person => { :name => "bob_other", :email => "" },
:user => { :password => "" }, :divId => 'author_1'
- assert_success
+ assert_success
assert_not_nil session[:person]
assert_template 'account/_show'
assert_tag :tag => "div", :attributes => { :class => "choicesToUpdate" }
- end
+ end
+
+ """ _
+ __ ___ ____ _| |_ __ _ _ __
+ / _` \ \ / / _` | __/ _` | '__|
+ | (_| |\ V / (_| | || (_| | |
+ \__,_| \_/ \__,_|\__\__,_|_|
+ """
+ def test_set_avatar
+ ActionMailer::Base.deliveries = []
+ post :login, :person => { :name => "bob_other", :email => "" },
+ :user => { :password => "" }, :divId => 'author_ROOT'
+
+ eltsCount = Elt.count
+ img = uploaded_png("#{File.expand_path(RAILS_ROOT)}/test/fixtures/img.png")
+ post :setAvatar, :person => { :image => img }
+ assert_equal eltsCount + 2, Elt.count
+ assert Person.find('bob_other').image.match(/^\/attachment\/file\/imgpng\/img.png$/)
+
+ #puts ActionMailer::Base.deliveries.last.to_yaml
+ assert_equal 3, ActionMailer::Base.deliveries.last.parts.size
+ assert_equal "image/png", ActionMailer::Base.deliveries.last.parts.last.content_type
+ assert_equal "img.png", ActionMailer::Base.deliveries.last.parts.last.disposition_param('filename')
+ assert_equal 90173, ActionMailer::Base.deliveries.last.parts.last.body.size
+ end
+
+ private
+ # get us an object that represents an uploaded file
+ def uploaded_file(path, content_type="application/octet-stream", filename=nil)
+ filename ||= File.basename(path)
+ t = Tempfile.new(filename)
+ FileUtils.copy_file(path, t.path)
+ (class << t; self; end;).class_eval do
+ alias local_path path
+ define_method(:original_filename) { filename }
+ define_method(:content_type) { content_type }
+ end
+ return t
+ end
+
+ # a PNG helper
+ def uploaded_png(path, filename=nil)
+ uploaded_file(path, 'image/png', filename)
+ end
+
+ # a JPEG helper
+ def uploaded_jpeg(path, filename=nil)
+ uploaded_file(path, 'image/jpeg', filename)
+ end
+
+ # a GIF helper
+ def uploaded_gif(path, filename=nil)
+ uploaded_file(path, 'image/gif', filename)
+ end
end