Commit 1a02f3c6ab0ca332f77c89c810e7e85e5266ba1f
1 parent
4bf9d214
Exists in
master
Added functional tests
Showing
2 changed files
with
41 additions
and
2 deletions
Show diff stats
controllers/email_article_plugin_myprofile_controller.rb
| ... | ... | @@ -6,9 +6,9 @@ class EmailArticlePluginMyprofileController < MyProfileController |
| 6 | 6 | if user.is_admin?(profile) |
| 7 | 7 | article = Article.find(params[:id]) |
| 8 | 8 | EmailArticlePluginMyprofileController::Sender.deliver_mail(article) |
| 9 | - render :action => 'success' | |
| 9 | + render :text => "Email sent to queue" | |
| 10 | 10 | else |
| 11 | - render :action => 'fail' | |
| 11 | + render :status => :forbidden, :text => "Forbidden user" | |
| 12 | 12 | end |
| 13 | 13 | end |
| 14 | 14 | ... | ... |
test/functional/email_article_plugin_myprofile_controller_test.rb
0 → 100644
| ... | ... | @@ -0,0 +1,39 @@ |
| 1 | +require File.dirname(__FILE__) + '/../../../../test/test_helper' | |
| 2 | + | |
| 3 | +class EmailArticlePluginMyprofileControllerTest < ActionController::TestCase | |
| 4 | + | |
| 5 | + def setup | |
| 6 | + Environment.delete_all | |
| 7 | + @environment = Environment.new(:name => 'testenv', :is_default => true) | |
| 8 | + @environment.enabled_plugins = ['EmailArticlePlugin'] | |
| 9 | + @environment.save! | |
| 10 | + end | |
| 11 | + | |
| 12 | + should 'be able to deliver mail as profile admin' do | |
| 13 | + @profile = Community.create!(:name => 'Sample community', :identifier => 'sample-community') | |
| 14 | + @user = create_user('testinguser') | |
| 15 | + login_as(@user.login) | |
| 16 | + @profile.add_admin(@user.person) | |
| 17 | + @article = @profile.articles.create!(:name => 'a test article', :last_changed_by => @user.person) | |
| 18 | + @article.save | |
| 19 | + get :send_email, :profile => @profile.identifier, :id => @article.id | |
| 20 | + assert_response :success | |
| 21 | + end | |
| 22 | + | |
| 23 | + should 'deny access to email article unless if profile admin' do | |
| 24 | + @profile = Community.create!(:name => 'Another community', :identifier => 'another-community') | |
| 25 | + @user = create_user('user-out-of-the-community') | |
| 26 | + login_as(@user.login) | |
| 27 | + @article = @profile.articles.create!(:name => 'a test article', :last_changed_by => @user.person) | |
| 28 | + @article.save | |
| 29 | + get :send_email, :profile => @profile.identifier, :id => @article.id | |
| 30 | + assert_response 403 | |
| 31 | + end | |
| 32 | + | |
| 33 | +end | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | ... | ... |