Commit ac4008f740e0ed151032ff648af58be94810c116

Authored by AntonioTerceiro
1 parent 44854faa

ActionItem629: renaming controller the right way

git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@2455 3f533792-8f58-4932-b0fe-aaf55b0a4547
test/functional/enterprise_validation_controller_test.rb 0 → 100644
... ... @@ -0,0 +1,149 @@
  1 +require File.dirname(__FILE__) + '/../test_helper'
  2 +require 'enterprise_validation_controller'
  3 +
  4 +# Re-raise errors caught by the controller.
  5 +class EnterpriseValidationController; def rescue_action(e) raise e end; end
  6 +
  7 +class EnterpriseValidationControllerTest < Test::Unit::TestCase
  8 +
  9 + all_fixtures
  10 +
  11 + def setup
  12 + @controller = EnterpriseValidationController.new
  13 + @request = ActionController::TestRequest.new
  14 + @response = ActionController::TestResponse.new
  15 +
  16 + login_as 'ze'
  17 + @org = Organization.create!(:identifier => 'myorg', :name => "My Org")
  18 + give_permission('ze', 'validate_enterprise', @org)
  19 + Profile.expects(:find_by_identifier).with('myorg').returns(@org).at_least_once
  20 + end
  21 +
  22 + def test_local_files_reference
  23 + assert_local_files_reference :get, :index, :profile => 'myorg'
  24 + end
  25 +
  26 + def test_valid_xhtml
  27 +
  28 + # FIXME remove this after enable assert_valid_xhtml
  29 + Profile.find_by_identifier('myorg')
  30 +
  31 + assert_valid_xhtml :get, :index, :profile => 'myorg'
  32 + end
  33 +
  34 + should 'list pending validations on index' do
  35 + empty = []
  36 + @org.expects(:pending_validations).returns(empty)
  37 + get :index, :profile => 'myorg'
  38 + assert_same empty, assigns(:pending_validations)
  39 + assert_template 'index'
  40 + end
  41 +
  42 + should 'display details and prompt for needed data when approving or rejecting enterprise' do
  43 + validating = CreateEnterprise.new
  44 + @org.expects(:find_pending_validation).with('kakakaka').returns(validating)
  45 +
  46 + get :details, :profile => 'myorg', :id => 'kakakaka'
  47 + assert_same validating, assigns(:pending)
  48 + end
  49 +
  50 + should 'refuse to validate unexisting request' do
  51 + @org.expects(:find_pending_validation).with('kakakaka').returns(nil)
  52 + get :details , :profile => 'myorg', :id => 'kakakaka'
  53 + assert_response 404
  54 + end
  55 +
  56 + should 'be able to actually validate enterprise on request' do
  57 + validation = CreateEnterprise.new
  58 + @org.expects(:find_pending_validation).with('kakakaka').returns(validation)
  59 + validation.expects(:approve)
  60 + validation.expects(:code).returns('kakakaka')
  61 + post :approve, :profile => 'myorg', :id => 'kakakaka'
  62 + assert_redirected_to :action => 'view_processed', :id => 'kakakaka'
  63 + end
  64 +
  65 + should 'be able to reject an enterprise' do
  66 + validation = CreateEnterprise.new
  67 + @org.expects(:find_pending_validation).with('kakakaka').returns(validation)
  68 + validation.expects(:reject)
  69 + validation.expects(:code).returns('kakakaka')
  70 + post :reject, :profile => 'myorg', :id => 'kakakaka', :reject_explanation => 'this is not a solidarity economy enterprise'
  71 + assert_redirected_to :action => 'view_processed', :id => 'kakakaka'
  72 + end
  73 +
  74 + should 'require the user to fill in the explanation for an rejection' do
  75 + validation = CreateEnterprise.new
  76 + @org.expects(:find_pending_validation).with('kakakaka').returns(validation)
  77 +
  78 + # FIXME: this is not working, but should. Anyway the assert_response and
  79 + # assert_template below in some test some things we need. But the
  80 + # expectation below must be put to work.
  81 + #
  82 + #validation.expects(:reject).raises(ActiveRecord::RecordInvalid)
  83 +
  84 + post :reject, :profile => 'myorg', :id => 'kakakaka'
  85 + assert_response :success
  86 + assert_template 'details'
  87 + end
  88 +
  89 + should 'list validations already processed' do
  90 + processed_validations = [CreateEnterprise.new]
  91 + @org.expects(:processed_validations).returns(processed_validations)
  92 +
  93 + get :list_processed, :profile => 'myorg'
  94 +
  95 + assert_same processed_validations, assigns(:processed_validations)
  96 +
  97 + assert_response :success
  98 + assert_template 'list_processed'
  99 + end
  100 +
  101 + should 'be able to display a validation that was already processed' do
  102 + validation = CreateEnterprise.new
  103 + @org.expects(:find_processed_validation).with('kakakaka').returns(validation)
  104 + get :view_processed, :profile => 'myorg', :id => 'kakakaka'
  105 + assert_same validation, assigns(:processed)
  106 + end
  107 +
  108 + should 'display a form for editing the validation info' do
  109 + info = ValidationInfo.new(:validation_methodology => 'none')
  110 + @org.expects(:validation_info).returns(info)
  111 + get :edit_validation_info, :profile => 'myorg'
  112 + assert_response :success
  113 + assert_equal info, assigns(:info)
  114 + end
  115 +
  116 + should 'save an alteration of the validation info' do
  117 + info = ValidationInfo.new(:validation_methodology => 'none')
  118 + @org.expects(:validation_info).returns(info)
  119 + post :edit_validation_info, :profile => 'myorg', :info => {:validation_methodology => 'new methodology'}
  120 +
  121 + assert_response :redirect
  122 + assert_redirected_to :action => 'index'
  123 + assert_equal info, assigns(:info)
  124 + end
  125 +
  126 + should 'not save an empaty validation mthodology' do
  127 + info = ValidationInfo.new(:validation_methodology => 'none')
  128 + @org.expects(:validation_info).returns(info)
  129 + post :edit_validation_info, :profile => 'myorg', :info => {:validation_methodology => ''}
  130 +
  131 + assert_response :success
  132 + assert_equal info, assigns(:info)
  133 + end
  134 +
  135 + should 'filter html from methodology of the validation info' do
  136 + info = ValidationInfo.new(:validation_methodology => 'none')
  137 + @org.expects(:validation_info).returns(info)
  138 + post :edit_validation_info, :profile => 'myorg', :info => {:validation_methodology => 'new <b>methodology</b>'}
  139 + assert_sanitized assigns(:info).validation_methodology
  140 + end
  141 +
  142 + should 'filter html from restrictions of the validation info' do
  143 + info = ValidationInfo.new(:validation_methodology => 'none')
  144 + @org.expects(:validation_info).returns(info)
  145 + post :edit_validation_info, :profile => 'myorg', :info => {:restrictions => 'new <b>methodology</b>'}
  146 + assert_sanitized assigns(:info).restrictions
  147 + end
  148 +
  149 +end
... ...
test/functional/enterprise_validation_test.rb
... ... @@ -1,149 +0,0 @@
1   -require File.dirname(__FILE__) + '/../test_helper'
2   -require 'enterprise_validation_controller'
3   -
4   -# Re-raise errors caught by the controller.
5   -class EnterpriseValidationController; def rescue_action(e) raise e end; end
6   -
7   -class EnterpriseValidationControllerTest < Test::Unit::TestCase
8   -
9   - all_fixtures
10   -
11   - def setup
12   - @controller = EnterpriseValidationController.new
13   - @request = ActionController::TestRequest.new
14   - @response = ActionController::TestResponse.new
15   -
16   - login_as 'ze'
17   - @org = Organization.create!(:identifier => 'myorg', :name => "My Org")
18   - give_permission('ze', 'validate_enterprise', @org)
19   - Profile.expects(:find_by_identifier).with('myorg').returns(@org).at_least_once
20   - end
21   -
22   - def test_local_files_reference
23   - assert_local_files_reference :get, :index, :profile => 'myorg'
24   - end
25   -
26   - def test_valid_xhtml
27   -
28   - # FIXME remove this after enable assert_valid_xhtml
29   - Profile.find_by_identifier('myorg')
30   -
31   - assert_valid_xhtml :get, :index, :profile => 'myorg'
32   - end
33   -
34   - should 'list pending validations on index' do
35   - empty = []
36   - @org.expects(:pending_validations).returns(empty)
37   - get :index, :profile => 'myorg'
38   - assert_same empty, assigns(:pending_validations)
39   - assert_template 'index'
40   - end
41   -
42   - should 'display details and prompt for needed data when approving or rejecting enterprise' do
43   - validating = CreateEnterprise.new
44   - @org.expects(:find_pending_validation).with('kakakaka').returns(validating)
45   -
46   - get :details, :profile => 'myorg', :id => 'kakakaka'
47   - assert_same validating, assigns(:pending)
48   - end
49   -
50   - should 'refuse to validate unexisting request' do
51   - @org.expects(:find_pending_validation).with('kakakaka').returns(nil)
52   - get :details , :profile => 'myorg', :id => 'kakakaka'
53   - assert_response 404
54   - end
55   -
56   - should 'be able to actually validate enterprise on request' do
57   - validation = CreateEnterprise.new
58   - @org.expects(:find_pending_validation).with('kakakaka').returns(validation)
59   - validation.expects(:approve)
60   - validation.expects(:code).returns('kakakaka')
61   - post :approve, :profile => 'myorg', :id => 'kakakaka'
62   - assert_redirected_to :action => 'view_processed', :id => 'kakakaka'
63   - end
64   -
65   - should 'be able to reject an enterprise' do
66   - validation = CreateEnterprise.new
67   - @org.expects(:find_pending_validation).with('kakakaka').returns(validation)
68   - validation.expects(:reject)
69   - validation.expects(:code).returns('kakakaka')
70   - post :reject, :profile => 'myorg', :id => 'kakakaka', :reject_explanation => 'this is not a solidarity economy enterprise'
71   - assert_redirected_to :action => 'view_processed', :id => 'kakakaka'
72   - end
73   -
74   - should 'require the user to fill in the explanation for an rejection' do
75   - validation = CreateEnterprise.new
76   - @org.expects(:find_pending_validation).with('kakakaka').returns(validation)
77   -
78   - # FIXME: this is not working, but should. Anyway the assert_response and
79   - # assert_template below in some test some things we need. But the
80   - # expectation below must be put to work.
81   - #
82   - #validation.expects(:reject).raises(ActiveRecord::RecordInvalid)
83   -
84   - post :reject, :profile => 'myorg', :id => 'kakakaka'
85   - assert_response :success
86   - assert_template 'details'
87   - end
88   -
89   - should 'list validations already processed' do
90   - processed_validations = [CreateEnterprise.new]
91   - @org.expects(:processed_validations).returns(processed_validations)
92   -
93   - get :list_processed, :profile => 'myorg'
94   -
95   - assert_same processed_validations, assigns(:processed_validations)
96   -
97   - assert_response :success
98   - assert_template 'list_processed'
99   - end
100   -
101   - should 'be able to display a validation that was already processed' do
102   - validation = CreateEnterprise.new
103   - @org.expects(:find_processed_validation).with('kakakaka').returns(validation)
104   - get :view_processed, :profile => 'myorg', :id => 'kakakaka'
105   - assert_same validation, assigns(:processed)
106   - end
107   -
108   - should 'display a form for editing the validation info' do
109   - info = ValidationInfo.new(:validation_methodology => 'none')
110   - @org.expects(:validation_info).returns(info)
111   - get :edit_validation_info, :profile => 'myorg'
112   - assert_response :success
113   - assert_equal info, assigns(:info)
114   - end
115   -
116   - should 'save an alteration of the validation info' do
117   - info = ValidationInfo.new(:validation_methodology => 'none')
118   - @org.expects(:validation_info).returns(info)
119   - post :edit_validation_info, :profile => 'myorg', :info => {:validation_methodology => 'new methodology'}
120   -
121   - assert_response :redirect
122   - assert_redirected_to :action => 'index'
123   - assert_equal info, assigns(:info)
124   - end
125   -
126   - should 'not save an empaty validation mthodology' do
127   - info = ValidationInfo.new(:validation_methodology => 'none')
128   - @org.expects(:validation_info).returns(info)
129   - post :edit_validation_info, :profile => 'myorg', :info => {:validation_methodology => ''}
130   -
131   - assert_response :success
132   - assert_equal info, assigns(:info)
133   - end
134   -
135   - should 'filter html from methodology of the validation info' do
136   - info = ValidationInfo.new(:validation_methodology => 'none')
137   - @org.expects(:validation_info).returns(info)
138   - post :edit_validation_info, :profile => 'myorg', :info => {:validation_methodology => 'new <b>methodology</b>'}
139   - assert_sanitized assigns(:info).validation_methodology
140   - end
141   -
142   - should 'filter html from restrictions of the validation info' do
143   - info = ValidationInfo.new(:validation_methodology => 'none')
144   - @org.expects(:validation_info).returns(info)
145   - post :edit_validation_info, :profile => 'myorg', :info => {:restrictions => 'new <b>methodology</b>'}
146   - assert_sanitized assigns(:info).restrictions
147   - end
148   -
149   -end