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