Commit 3177eee3f70df13c5011ffefc191e1ef0c10a845

Authored by Marcos Pereira
1 parent b2c228b4

adds functional tests

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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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,
... ...