Commit 3177eee3f70df13c5011ffefc191e1ef0c10a845
1 parent
b2c228b4
Exists in
community_notifications
adds functional tests
Showing
5 changed files
with
225 additions
and
60 deletions
Show diff stats
plugins/environment_notification/controllers/public/environment_notification_plugin_public_controller.rb
| ... | ... | @@ -16,7 +16,7 @@ class EnvironmentNotificationPluginPublicController < PublicController |
| 16 | 16 | result = false |
| 17 | 17 | |
| 18 | 18 | if logged_in? |
| 19 | - @notification = EnvironmentNotificationPlugin::EnvironmentNotification.find(params[:notification_id]) | |
| 19 | + @notification = EnvironmentNotificationPlugin::EnvironmentNotification.find_by_id(params[:notification_id]) | |
| 20 | 20 | |
| 21 | 21 | if @notification |
| 22 | 22 | @notification.users << current_user |
| ... | ... | @@ -31,7 +31,7 @@ class EnvironmentNotificationPluginPublicController < PublicController |
| 31 | 31 | result = false |
| 32 | 32 | |
| 33 | 33 | if logged_in? |
| 34 | - @notification = EnvironmentNotificationPlugin::EnvironmentNotification.find(params[:notification_id]) | |
| 34 | + @notification = EnvironmentNotificationPlugin::EnvironmentNotification.find_by_id(params[:notification_id]) | |
| 35 | 35 | |
| 36 | 36 | if @notification |
| 37 | 37 | current_notificaions = [] | ... | ... |
plugins/environment_notification/test/functional/environment_notification_plugin_admin_controller_test.rb
| ... | ... | @@ -50,7 +50,7 @@ class EnvironmentNotificationPluginAdminControllerTest < ActionController::TestC |
| 50 | 50 | should 'an admin be able to edit a notification' do |
| 51 | 51 | @environment.add_admin(@person) |
| 52 | 52 | @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( |
| 53 | - :environment_id => @environment.id, | |
| 53 | + :target => @environment, | |
| 54 | 54 | :message => "Message", |
| 55 | 55 | :active => true, |
| 56 | 56 | :type => "EnvironmentNotificationPlugin::DangerNotification" |
| ... | ... | @@ -69,7 +69,7 @@ class EnvironmentNotificationPluginAdminControllerTest < ActionController::TestC |
| 69 | 69 | |
| 70 | 70 | should 'an user not to be able to edit a notification' do |
| 71 | 71 | @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( |
| 72 | - :environment_id => @environment.id, | |
| 72 | + :target => @environment, | |
| 73 | 73 | :message => "Message", |
| 74 | 74 | :active => true, |
| 75 | 75 | :type => "EnvironmentNotificationPlugin::DangerNotification" |
| ... | ... | @@ -88,7 +88,7 @@ class EnvironmentNotificationPluginAdminControllerTest < ActionController::TestC |
| 88 | 88 | should 'an admin be able to destroy a notification' do |
| 89 | 89 | @environment.add_admin(@person) |
| 90 | 90 | @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( |
| 91 | - :environment_id => @environment.id, | |
| 91 | + :target => @environment, | |
| 92 | 92 | :message => "Message", |
| 93 | 93 | :active => true, |
| 94 | 94 | :type => "EnvironmentNotificationPlugin::DangerNotification" |
| ... | ... | @@ -99,7 +99,7 @@ class EnvironmentNotificationPluginAdminControllerTest < ActionController::TestC |
| 99 | 99 | |
| 100 | 100 | should 'an user not to be able to destroy a notification' do |
| 101 | 101 | @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( |
| 102 | - :environment_id => @environment.id, | |
| 102 | + :target => @environment, | |
| 103 | 103 | :message => "Message", |
| 104 | 104 | :active => true, |
| 105 | 105 | :type => "EnvironmentNotificationPlugin::DangerNotification" |
| ... | ... | @@ -113,7 +113,7 @@ class EnvironmentNotificationPluginAdminControllerTest < ActionController::TestC |
| 113 | 113 | should 'an admin be able to change Notification status' do |
| 114 | 114 | @environment.add_admin(@person) |
| 115 | 115 | @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( |
| 116 | - :environment_id => @environment.id, | |
| 116 | + :target => @environment, | |
| 117 | 117 | :message => "Message", |
| 118 | 118 | :active => true, |
| 119 | 119 | :type => "EnvironmentNotificationPlugin::DangerNotification" |
| ... | ... | @@ -127,7 +127,7 @@ class EnvironmentNotificationPluginAdminControllerTest < ActionController::TestC |
| 127 | 127 | |
| 128 | 128 | should 'an user not be able to change Notification status' do |
| 129 | 129 | @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( |
| 130 | - :environment_id => @environment.id, | |
| 130 | + :target => @environment, | |
| 131 | 131 | :message => "Message", |
| 132 | 132 | :active => true, |
| 133 | 133 | :type => "EnvironmentNotificationPlugin::DangerNotification" |
| ... | ... | @@ -139,48 +139,4 @@ class EnvironmentNotificationPluginAdminControllerTest < ActionController::TestC |
| 139 | 139 | assert @notification.active |
| 140 | 140 | end |
| 141 | 141 | |
| 142 | - should 'a logged in user be able to permanently hide notifications' do | |
| 143 | - @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( | |
| 144 | - :environment_id => @environment.id, | |
| 145 | - :message => "Message", | |
| 146 | - :active => true, | |
| 147 | - :type => "EnvironmentNotificationPlugin::DangerNotification" | |
| 148 | - ) | |
| 149 | - post :close_notification, :notification_id => @notification.id | |
| 150 | - assert_equal "true", @response.body | |
| 151 | - assert @notification.users.include?(@person.user) | |
| 152 | - end | |
| 153 | - | |
| 154 | - should 'a logged in user be able to momentarily hide notifications' do | |
| 155 | - @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( | |
| 156 | - :environment_id => @environment.id, | |
| 157 | - :message => "Message", | |
| 158 | - :active => true, | |
| 159 | - :type => "EnvironmentNotificationPlugin::DangerNotification" | |
| 160 | - ) | |
| 161 | - | |
| 162 | - @another_notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( | |
| 163 | - :environment_id => @environment.id, | |
| 164 | - :message => "Another Message", | |
| 165 | - :active => true, | |
| 166 | - :type => "EnvironmentNotificationPlugin::WarningNotification" | |
| 167 | - ) | |
| 168 | - post :hide_notification, :notification_id => @notification.id | |
| 169 | - assert_equal "true", @response.body | |
| 170 | - assert @controller.hide_notifications.include?(@notification.id) | |
| 171 | - assert !@controller.hide_notifications.include?(@another_notification.id) | |
| 172 | - end | |
| 173 | - | |
| 174 | - should 'not momentarily hide any notification if its id is not found' do | |
| 175 | - @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( | |
| 176 | - :environment_id => @environment.id, | |
| 177 | - :message => "Message", | |
| 178 | - :active => true, | |
| 179 | - :type => "EnvironmentNotificationPlugin::DangerNotification" | |
| 180 | - ) | |
| 181 | - | |
| 182 | - post :hide_notification, :notification_id => nil | |
| 183 | - assert_equal "false", @response.body | |
| 184 | - assert !@controller.hide_notifications.include?(@notification.id) | |
| 185 | - end | |
| 186 | 142 | end | ... | ... |
plugins/environment_notification/test/functional/environment_notification_plugin_myprofile_controller_test.rb
0 → 100644
| ... | ... | @@ -0,0 +1,142 @@ |
| 1 | +require File.expand_path(File.dirname(__FILE__)) + '/../../../../test/test_helper' | |
| 2 | +require( | |
| 3 | + File.expand_path(File.dirname(__FILE__)) + | |
| 4 | + '/../../controllers/environment_notification_plugin_myprofile_controller' | |
| 5 | +) | |
| 6 | + | |
| 7 | +class EnvironmentNotificationPluginMyprofileControllerTest < ActionController::TestCase | |
| 8 | + def setup | |
| 9 | + @controller = EnvironmentNotificationPluginMyprofileController.new | |
| 10 | + @request = ActionController::TestRequest.new | |
| 11 | + @response = ActionController::TestResponse.new | |
| 12 | + @person = create_user('person').person | |
| 13 | + @community = fast_create(Community) | |
| 14 | + | |
| 15 | + environment = Environment.default | |
| 16 | + environment.enable_plugin('EnvironmentNotificationPlugin') | |
| 17 | + environment.save! | |
| 18 | + | |
| 19 | + login_as(@person.user.login) | |
| 20 | + EnvironmentNotificationPluginMyprofileController.any_instance.stubs(:profile).returns(@community) | |
| 21 | + end | |
| 22 | + | |
| 23 | + attr_accessor :person | |
| 24 | + | |
| 25 | + should 'profile admin be able to create a notification' do | |
| 26 | + @community.add_admin(@person) | |
| 27 | + post :new, :controller => "environment_notification_plugin_myprofile_controller", | |
| 28 | + :notifications => { | |
| 29 | + :message => "Message", | |
| 30 | + :active => true, | |
| 31 | + :type => "EnvironmentNotificationPlugin::DangerNotification" | |
| 32 | + } | |
| 33 | + assert_redirected_to :action => 'index' | |
| 34 | + notification = EnvironmentNotificationPlugin::EnvironmentNotification.last | |
| 35 | + assert_equal "Message", notification.message | |
| 36 | + assert notification.active | |
| 37 | + assert_equal "EnvironmentNotificationPlugin::DangerNotification", notification.type | |
| 38 | + end | |
| 39 | + | |
| 40 | + should 'a regular user not to be able to create a notification' do | |
| 41 | + post :new, :notifications => { | |
| 42 | + :message => "Message", | |
| 43 | + :active => true, | |
| 44 | + :type => "EnvironmentNotificationPlugin::DangerNotification" | |
| 45 | + } | |
| 46 | + assert_redirected_to :root | |
| 47 | + assert_nil EnvironmentNotificationPlugin::EnvironmentNotification.last | |
| 48 | + end | |
| 49 | + | |
| 50 | + should 'profile admin be able to edit a notification' do | |
| 51 | + @community.add_admin(@person) | |
| 52 | + @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( | |
| 53 | + :target => @community, | |
| 54 | + :message => "Message", | |
| 55 | + :active => true, | |
| 56 | + :type => "EnvironmentNotificationPlugin::DangerNotification" | |
| 57 | + ) | |
| 58 | + post :edit, :id => @notification.id, :notifications => { | |
| 59 | + :message => "Edited Message", | |
| 60 | + :active => false, | |
| 61 | + :type => "EnvironmentNotificationPlugin::WarningNotification" | |
| 62 | + } | |
| 63 | + @notification = EnvironmentNotificationPlugin::EnvironmentNotification.last | |
| 64 | + assert_redirected_to :action => 'index' | |
| 65 | + assert_equal "Edited Message", @notification.message | |
| 66 | + assert !@notification.active | |
| 67 | + assert_equal "EnvironmentNotificationPlugin::WarningNotification", @notification.type | |
| 68 | + end | |
| 69 | + | |
| 70 | + should 'a regular user not be able to edit a notification' do | |
| 71 | + @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( | |
| 72 | + :target => @community, | |
| 73 | + :message => "Message", | |
| 74 | + :active => true, | |
| 75 | + :type => "EnvironmentNotificationPlugin::DangerNotification" | |
| 76 | + ) | |
| 77 | + post :edit, :notifications => { | |
| 78 | + :message => "Edited Message", | |
| 79 | + :active => false, | |
| 80 | + :type => "EnvironmentNotificationPlugin::DangerNotification" | |
| 81 | + } | |
| 82 | + @notification.reload | |
| 83 | + assert_redirected_to :root | |
| 84 | + assert_equal "Message", @notification.message | |
| 85 | + assert @notification.active | |
| 86 | + end | |
| 87 | + | |
| 88 | + should 'a profile admin be able to destroy a notification' do | |
| 89 | + @community.add_admin(@person) | |
| 90 | + @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( | |
| 91 | + :target => @community, | |
| 92 | + :message => "Message", | |
| 93 | + :active => true, | |
| 94 | + :type => "EnvironmentNotificationPlugin::DangerNotification" | |
| 95 | + ) | |
| 96 | + delete :destroy, :id => @notification.id | |
| 97 | + assert_nil EnvironmentNotificationPlugin::EnvironmentNotification.find_by_id(@notification.id) | |
| 98 | + end | |
| 99 | + | |
| 100 | + should 'a regular user not be able to destroy a notification' do | |
| 101 | + @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( | |
| 102 | + :target => @community, | |
| 103 | + :message => "Message", | |
| 104 | + :active => true, | |
| 105 | + :type => "EnvironmentNotificationPlugin::DangerNotification" | |
| 106 | + ) | |
| 107 | + delete :destroy, :id => @notification.id | |
| 108 | + | |
| 109 | + assert_redirected_to :root | |
| 110 | + assert_not_nil EnvironmentNotificationPlugin::EnvironmentNotification.find_by_id(@notification.id) | |
| 111 | + end | |
| 112 | + | |
| 113 | + should 'a profile admin be able to change Notification status' do | |
| 114 | + @community.add_admin(@person) | |
| 115 | + @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( | |
| 116 | + :target => @community, | |
| 117 | + :message => "Message", | |
| 118 | + :active => true, | |
| 119 | + :type => "EnvironmentNotificationPlugin::DangerNotification" | |
| 120 | + ) | |
| 121 | + post :change_status, :id => @notification.id | |
| 122 | + assert_redirected_to :action => 'index' | |
| 123 | + | |
| 124 | + @notification.reload | |
| 125 | + assert !@notification.active | |
| 126 | + end | |
| 127 | + | |
| 128 | + should 'a regular user not be able to change Notification status' do | |
| 129 | + @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( | |
| 130 | + :target => @community, | |
| 131 | + :message => "Message", | |
| 132 | + :active => true, | |
| 133 | + :type => "EnvironmentNotificationPlugin::DangerNotification" | |
| 134 | + ) | |
| 135 | + post :change_status, :id => @notification.id | |
| 136 | + assert_redirected_to :root | |
| 137 | + | |
| 138 | + @notification.reload | |
| 139 | + assert @notification.active | |
| 140 | + end | |
| 141 | + | |
| 142 | +end | ... | ... |
plugins/environment_notification/test/functional/environment_notification_plugin_public_controller_test.rb
0 → 100644
| ... | ... | @@ -0,0 +1,67 @@ |
| 1 | +require File.expand_path(File.dirname(__FILE__)) + '/../../../../test/test_helper' | |
| 2 | +require( | |
| 3 | + File.expand_path(File.dirname(__FILE__)) + | |
| 4 | + '/../../controllers/public/environment_notification_plugin_public_controller' | |
| 5 | +) | |
| 6 | + | |
| 7 | +class EnvironmentNotificationPluginPublicControllerTest < ActionController::TestCase | |
| 8 | + def setup | |
| 9 | + @controller = EnvironmentNotificationPluginPublicController.new | |
| 10 | + @request = ActionController::TestRequest.new | |
| 11 | + @response = ActionController::TestResponse.new | |
| 12 | + @person = create_user('person').person | |
| 13 | + | |
| 14 | + @environment = Environment.default | |
| 15 | + @environment.enable_plugin('EnvironmentNotificationPlugin') | |
| 16 | + @environment.save! | |
| 17 | + | |
| 18 | + login_as(@person.user.login) | |
| 19 | + end | |
| 20 | + | |
| 21 | + # attr_accessor :person | |
| 22 | + | |
| 23 | + should 'a logged in user be able to permanently hide notifications' do | |
| 24 | + @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( | |
| 25 | + :target => @environment, | |
| 26 | + :message => "Message", | |
| 27 | + :active => true, | |
| 28 | + :type => "EnvironmentNotificationPlugin::DangerNotification" | |
| 29 | + ) | |
| 30 | + post :close_notification, :notification_id => @notification.id | |
| 31 | + assert_equal "true", @response.body | |
| 32 | + assert @notification.users.include?(@person.user) | |
| 33 | + end | |
| 34 | + | |
| 35 | + should 'a logged in user be able to momentarily hide notifications' do | |
| 36 | + @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( | |
| 37 | + :target => @environment, | |
| 38 | + :message => "Message", | |
| 39 | + :active => true, | |
| 40 | + :type => "EnvironmentNotificationPlugin::DangerNotification" | |
| 41 | + ) | |
| 42 | + | |
| 43 | + @another_notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( | |
| 44 | + :target => @environment, | |
| 45 | + :message => "Another Message", | |
| 46 | + :active => true, | |
| 47 | + :type => "EnvironmentNotificationPlugin::WarningNotification" | |
| 48 | + ) | |
| 49 | + post :hide_notification, :notification_id => @notification.id | |
| 50 | + assert_equal "true", @response.body | |
| 51 | + assert @controller.hide_notifications.include?(@notification.id) | |
| 52 | + assert !@controller.hide_notifications.include?(@another_notification.id) | |
| 53 | + end | |
| 54 | + | |
| 55 | + should 'not momentarily hide any notification if its id is not found' do | |
| 56 | + @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( | |
| 57 | + :target => @environment, | |
| 58 | + :message => "Message", | |
| 59 | + :active => true, | |
| 60 | + :type => "EnvironmentNotificationPlugin::DangerNotification" | |
| 61 | + ) | |
| 62 | + | |
| 63 | + post :hide_notification, :notification_id => nil | |
| 64 | + assert_equal "false", @response.body | |
| 65 | + assert !@controller.hide_notifications.include?(@notification.id) | |
| 66 | + end | |
| 67 | +end | ... | ... |
plugins/environment_notification/test/functional/home_controller_test.rb
| ... | ... | @@ -21,7 +21,7 @@ class HomeControllerTest < ActionController::TestCase |
| 21 | 21 | should 'an active notification be displayed on home page for a logged in user' do |
| 22 | 22 | login_as(@person.user.login) |
| 23 | 23 | @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( |
| 24 | - :environment_id => @environment.id, | |
| 24 | + :target => @environment, | |
| 25 | 25 | :message => "Hello, this is a Notification Message", |
| 26 | 26 | :active => true, |
| 27 | 27 | :type => "EnvironmentNotificationPlugin::DangerNotification" |
| ... | ... | @@ -33,7 +33,7 @@ class HomeControllerTest < ActionController::TestCase |
| 33 | 33 | |
| 34 | 34 | should 'an active notification not be displayed on home page for unlogged user' do |
| 35 | 35 | @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( |
| 36 | - :environment_id => @environment.id, | |
| 36 | + :target => @environment, | |
| 37 | 37 | :message => "Hello, this is a Notification Message", |
| 38 | 38 | :active => true, |
| 39 | 39 | :type => "EnvironmentNotificationPlugin::DangerNotification" |
| ... | ... | @@ -44,7 +44,7 @@ class HomeControllerTest < ActionController::TestCase |
| 44 | 44 | |
| 45 | 45 | should 'an active notification be displayed on home page for unlogged user' do |
| 46 | 46 | @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( |
| 47 | - :environment_id => @environment.id, | |
| 47 | + :target => @environment, | |
| 48 | 48 | :message => "Hello, this is a Notification Message", |
| 49 | 49 | :display_to_all_users => true, |
| 50 | 50 | :active => true, |
| ... | ... | @@ -56,14 +56,14 @@ class HomeControllerTest < ActionController::TestCase |
| 56 | 56 | |
| 57 | 57 | should 'only display the notification with display_to_all_users option for unlogged user ' do |
| 58 | 58 | @notification1 = EnvironmentNotificationPlugin::EnvironmentNotification.create( |
| 59 | - :environment_id => @environment.id, | |
| 59 | + :target => @environment, | |
| 60 | 60 | :message => "Hello, this is an old Notification Message", |
| 61 | 61 | :active => true, |
| 62 | 62 | :type => "EnvironmentNotificationPlugin::DangerNotification" |
| 63 | 63 | ) |
| 64 | 64 | |
| 65 | 65 | @notification2 = EnvironmentNotificationPlugin::EnvironmentNotification.create( |
| 66 | - :environment_id => @environment.id, | |
| 66 | + :target => @environment, | |
| 67 | 67 | :message => "Hello, this is a new Notification Message", |
| 68 | 68 | :display_to_all_users => true, |
| 69 | 69 | :active => true, |
| ... | ... | @@ -78,7 +78,7 @@ class HomeControllerTest < ActionController::TestCase |
| 78 | 78 | |
| 79 | 79 | should 'an inactive notification not be displayed on home page' do |
| 80 | 80 | @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( |
| 81 | - :environment_id => @environment.id, | |
| 81 | + :target => @environment, | |
| 82 | 82 | :message => "Hello, this is a Notification Message", |
| 83 | 83 | :active => false, |
| 84 | 84 | :type => "EnvironmentNotificationPlugin::DangerNotification" |
| ... | ... | @@ -91,7 +91,7 @@ class HomeControllerTest < ActionController::TestCase |
| 91 | 91 | should 'an active notification not be displayed to a logged in user after been closed by him' do |
| 92 | 92 | login_as(@person.user.login) |
| 93 | 93 | @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( |
| 94 | - :environment_id => @environment.id, | |
| 94 | + :target => @environment, | |
| 95 | 95 | :message => "Hello, this is a Notification Message", |
| 96 | 96 | :active => true, |
| 97 | 97 | :type => "EnvironmentNotificationPlugin::DangerNotification" |
| ... | ... | @@ -106,7 +106,7 @@ class HomeControllerTest < ActionController::TestCase |
| 106 | 106 | should 'a notification be displayed with a Popup' do |
| 107 | 107 | login_as(@person.user.login) |
| 108 | 108 | @notification = EnvironmentNotificationPlugin::EnvironmentNotification.create( |
| 109 | - :environment_id => @environment.id, | |
| 109 | + :target => @environment, | |
| 110 | 110 | :message => "Message", |
| 111 | 111 | :display_popup => true, |
| 112 | 112 | :active => true, | ... | ... |