Commit 13b6e3a3105c1283e653ff074daf935ec4a9ac7c

Authored by Hugo Melo
1 parent e8dcaa70

Add points tests and adjust others

test/functional/application_controller_test.rb
... ... @@ -7,8 +7,8 @@ class ApplicationControllerTest < ActionController::TestCase
7 7  
8 8 def setup
9 9 @environment = Environment.default
10   - create_merit_categorization
11 10 @environment.enable_plugin(GamificationPlugin)
  11 + create_point_rule_definition('article_author')
12 12 @controller = TestController.new
13 13 @controller.stubs(:environment).returns(@environment)
14 14 end
... ...
test/functional/gamification_plugin_admin_controller_test.rb
... ... @@ -4,34 +4,12 @@ class GamificationPluginAdminControllerTest < ActionController::TestCase
4 4  
5 5 def setup
6 6 @environment = Environment.default
7   - create_merit_categorization
8 7 @person = create_user_with_permission('profile', 'edit_environment_features', Environment.default)
9 8 login_as(@person.identifier)
10 9 end
11 10  
12 11 attr_accessor :person, :environment
13 12  
14   - should 'save point rules' do
15   - post :points, :settings => {:point_rules => {'comment_author' => {'weight' => '10'}}}
16   - @settings = Noosfero::Plugin::Settings.new(environment.reload, GamificationPlugin)
17   - assert_equal({:point_rules => {'comment_author' => {'weight' => '10'}}}, @settings.settings)
18   - end
19   -
20   - should 'load default weights for point rules' do
21   - get :points
22   - Merit::PointRules::AVAILABLE_RULES.each do |category, setting|
23   - assert_select 'input[name=?][value=?]', "settings[point_rules][#{category}[weight]]", setting[:default_weight]
24   - end
25   - end
26   -
27   - should 'load saved weights for point rules' do
28   - settings = Noosfero::Plugin::Settings.new(environment, GamificationPlugin, {})
29   - settings.set_setting(:point_rules, {'comment_author' => {'weight' => '500'}})
30   - settings.save!
31   - get :points
32   - assert_select 'input[name=?][value=?]', "settings[point_rules][comment_author[weight]]", 500
33   - end
34   -
35 13 should 'save rank rules' do
36 14 post :levels, :settings => {:rank_rules => [{:level => 1, :points => 10}]}
37 15 @settings = Noosfero::Plugin::Settings.new(environment.reload, GamificationPlugin)
... ...
test/functional/gamification_plugin_points_controller_test.rb 0 → 100644
... ... @@ -0,0 +1,70 @@
  1 +require 'test_helper'
  2 +
  3 +class GamificationPluginPointsControllerTest < ActionController::TestCase
  4 +
  5 + setup do
  6 + @environment = Environment.default
  7 + login_as(create_admin_user(@environment))
  8 + end
  9 +
  10 + should "should get index" do
  11 + get :index
  12 + assert_response :success
  13 + assert_not_nil assigns(:categories)
  14 + end
  15 +
  16 + should "should create gamification_plugin_point_categorizations for existing community" do
  17 + community = fast_create(Community)
  18 + create_all_point_rules
  19 + count = GamificationPlugin::PointsType.count
  20 + assert_difference('GamificationPlugin::PointsCategorization.for_profile(community.identifier).count', count) do
  21 + post :create, identifier: community.identifier
  22 + end
  23 + end
  24 +
  25 + should "should create gamification_plugin_point_categorizations for general rules" do
  26 + create_all_point_rules
  27 + count = GamificationPlugin::PointsType.count
  28 + assert_difference('GamificationPlugin::PointsCategorization.count', count) do
  29 + post :create, identifier: ''
  30 + end
  31 + end
  32 +
  33 + should "should not create gamification_plugin_point_categorizations for not existing community" do
  34 + create_all_point_rules
  35 + assert_no_difference('GamificationPlugin::PointsCategorization.count') do
  36 + post :create, identifier: 'any_not_existent_community_name'
  37 + end
  38 + end
  39 +
  40 + should "should get edit" do
  41 + community = fast_create(Community)
  42 + create_point_rule_definition('article_author', community)
  43 + get :edit, id: community.id
  44 + assert_not_nil assigns(:profile)
  45 + assert_not_nil assigns(:categories)
  46 + end
  47 +
  48 + should "should update gamification_plugin_points" do
  49 + community = fast_create(Community)
  50 + create_point_rule_definition('article_author', community)
  51 + weights = {}
  52 + GamificationPlugin::PointsCategorization.for_profile(community.identifier).each do |c|
  53 + weights[c.id] = {weight: c.weight+10}
  54 + end
  55 + put :edit, id: community.id, gamification_plugin_points_categorizations: weights
  56 + weights.each do |id, w|
  57 + c = GamificationPlugin::PointsCategorization.find id
  58 + assert_equal c.weight, w[:weight]
  59 + end
  60 + end
  61 +
  62 + should "should destroy gamification_plugin_point" do
  63 + community = fast_create(Community)
  64 + create_point_rule_definition('article_author', community)
  65 + count = GamificationPlugin::PointsCategorization.for_profile(community.identifier).count
  66 + assert_difference('GamificationPlugin::PointsCategorization.count',-count) do
  67 + delete :destroy, id: community.id
  68 + end
  69 + end
  70 +end
... ...