ref: master
test/functional/mailconf_controller_test.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
require_relative "../test_helper" class MailconfControllerTest < ActionController::TestCase def setup @controller = MailconfController.new User.destroy_all @user = create_user('ze') MailConf.stubs(:enabled?).returns(true) MailConf.stubs(:webmail_url).returns('http://web.mail.net/') end attr_accessor :user should 'check if mail is enabled' do MailConf.expects(:enabled?).returns(false) login_as('ze') get :index, :profile => 'ze' assert_response 500 end should 'not be used by organizations' do org = Organization.create!(:name => 'testorg', :identifier => 'testorg') login_as('ze') get :index, :profile => 'testorg' assert_response 403 end should 'not be edited by others' do another = create_user('johndoe') login_as(another.login) get :index, :profile => 'ze' assert_response 403 end should 'be edited by owner' do login_as('ze') get :index, :profile => 'ze' assert_response :success end should 'expose user to templates' do login_as('ze') get :index, :profile => 'ze' assert_equal user, assigns(:user) end should 'present enable/disable for e-mail use' do login_as('ze') get :index, :profile => 'ze' assert_tag( :tag => 'a', :content => 'Enable e-Mail', :attributes => {:href => '/myprofile/ze/mailconf/enable'} ) end should 'display correctly the state false of e-mail enable/disable' do login_as('ze') user.update!(:enable_email => false) get :index, :profile => 'ze' assert_tag :tag => 'a', :content => 'Enable e-Mail' assert_no_tag :tag => 'a', :content => 'Disable e-Mail', :attributes => { :href => '/myprofile/ze/mailconf/disable' } end should 'not display www in email address when force_www=true' do login_as('ze') env = Environment.default env.force_www = true env.save! env.domains.delete_all env.domains.create! name: 'example.com' get :index, :profile => 'ze' assert_tag :tag => 'li', :content => /ze@example.com/ end should 'not display www in email address when force_www=false' do login_as('ze') env = Environment.default env.force_www = false env.save! env.domains.delete_all env.domains.create! name: 'example.com' get :index, :profile => 'ze' assert_tag :tag => 'li', :content => /ze@example.com/ end should 'create task to environment admin when enable email' do login_as('ze') assert_difference 'EmailActivation.count' do post :enable, :profile => 'ze' end end should 'save mail enable/disable as false' do login_as('ze') assert user.enable_email! post :disable, :profile => 'ze' refute Profile['ze'].user.enable_email end should 'go back on save' do login_as('ze') post :enable, :profile => 'ze' assert_redirected_to :controller => 'profile_editor', :action => 'edit' end should 'go to profile editor after enable email' do login_as('ze') post :enable, :profile => 'ze' assert_redirected_to :controller => 'profile_editor', :action => 'edit' end should 'display notice after saving' do login_as('ze') post :enable, :profile => 'ze' assert_kind_of String, session[:notice] end should 'link back to control panel' do login_as('ze') get :index, :profile => 'ze' assert_tag :tag => 'div', :attributes => { :id => 'content'}, :descendant => { :tag => 'a', :attributes => { :href => '/myprofile/ze' } } end should 'not display input for enable/disable e-mail when has pending_enable_email' do login_as('ze') user.update_attribute(:environment_id, Environment.default.id) EmailActivation.create!(:requestor => user.person, :target => Environment.default) get :index, :profile => 'ze' assert_no_tag :tag => 'input', :attributes => {:name => 'user[enable_email]', :type => 'checkbox'} end end |