rad_core 0.2.6 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. data/Rakefile +2 -2
  2. data/bin/rad +20 -25
  3. data/lib/components/config.rb +1 -1
  4. data/lib/components/configurators.rb +2 -2
  5. data/lib/components/controller.rb +2 -2
  6. data/lib/components/conveyors.rb +2 -2
  7. data/lib/components/environment.rb +1 -1
  8. data/lib/components/environment.yml +28 -28
  9. data/lib/components/flash.rb +1 -1
  10. data/lib/components/html.rb +1 -1
  11. data/lib/components/http.rb +1 -1
  12. data/lib/components/http.yml +1 -1
  13. data/lib/components/logger.rb +2 -2
  14. data/lib/components/mailer.rb +2 -2
  15. data/lib/components/remote.rb +1 -1
  16. data/lib/components/router.rb +3 -3
  17. data/lib/components/template.rb +2 -2
  18. data/lib/components/web.rb +3 -3
  19. data/lib/rad.rb +1 -1
  20. data/lib/rad/_support/active_support.rb +7 -7
  21. data/lib/rad/_support/active_support/locales/ru/actionview.yml +8 -8
  22. data/lib/rad/_support/active_support/locales/ru/activesupport.yml +4 -4
  23. data/lib/rad/_support/active_support/locales/ru/datetime.yml +5 -5
  24. data/lib/rad/_support/active_support/time.rb +2 -2
  25. data/lib/rad/_support/addressable.rb +6 -6
  26. data/lib/rad/_support/class_loader.rb +1 -1
  27. data/lib/rad/_support/extensions.rb +5 -5
  28. data/lib/rad/_support/filters.rb +13 -13
  29. data/lib/rad/_support/hacks_and_fixes.rb +5 -5
  30. data/lib/rad/_support/mime.rb +4 -4
  31. data/lib/rad/_support/module.rb +11 -11
  32. data/lib/rad/_support/require.rb +5 -5
  33. data/lib/rad/_support/rson.rb +4 -4
  34. data/lib/rad/_support/string.rb +9 -9
  35. data/lib/rad/cli/helper.rb +5 -5
  36. data/lib/rad/configurators/_require.rb +2 -2
  37. data/lib/rad/configurators/abstract.rb +5 -5
  38. data/lib/rad/configurators/web.rb +8 -8
  39. data/lib/rad/controller/_abstract.rb +15 -14
  40. data/lib/rad/controller/_abstract/miscellaneous.rb +5 -5
  41. data/lib/rad/controller/_abstract/render.rb +40 -40
  42. data/lib/rad/controller/_abstract/responder.rb +1 -1
  43. data/lib/rad/controller/_context.rb +1 -1
  44. data/lib/rad/controller/_http.rb +11 -11
  45. data/lib/rad/controller/_require.rb +6 -6
  46. data/lib/rad/controller/processors/controller_caller.rb +3 -3
  47. data/lib/rad/controller/processors/controller_error_handling.rb +14 -14
  48. data/lib/rad/controller/processors/controller_logger.rb +1 -1
  49. data/lib/rad/conveyors/_conveyor.rb +9 -9
  50. data/lib/rad/conveyors/_conveyors.rb +4 -4
  51. data/lib/rad/conveyors/_params.rb +5 -5
  52. data/lib/rad/conveyors/_processor.rb +2 -2
  53. data/lib/rad/conveyors/_workspace.rb +5 -5
  54. data/lib/rad/conveyors/processors/conveyor_logger.rb +3 -3
  55. data/lib/rad/environment/_config.rb +4 -4
  56. data/lib/rad/environment/_environment.rb +10 -10
  57. data/lib/rad/environment/_files_helper.rb +5 -5
  58. data/lib/rad/environment/_logger.rb +9 -9
  59. data/lib/rad/environment/_require.rb +4 -4
  60. data/lib/rad/gems.rb +14 -14
  61. data/lib/rad/html/_flash.rb +5 -5
  62. data/lib/rad/html/_helpers/basic_html_helper.rb +12 -12
  63. data/lib/rad/html/_helpers/form_helper.rb +19 -19
  64. data/lib/rad/html/_helpers/javascript_helper.rb +6 -6
  65. data/lib/rad/html/_helpers/model_helper.rb +17 -17
  66. data/lib/rad/html/_require.rb +1 -1
  67. data/lib/rad/html/processors/prepare_flash.rb +3 -3
  68. data/lib/rad/html/processors/scoped_params.rb +4 -4
  69. data/lib/rad/http/_http.rb +4 -4
  70. data/lib/rad/http/_http_adapter.rb +5 -5
  71. data/lib/rad/http/_request.rb +11 -11
  72. data/lib/rad/http/_require.rb +8 -8
  73. data/lib/rad/http/_response.rb +5 -5
  74. data/lib/rad/http/_support/rack/fixes.rb +3 -3
  75. data/lib/rad/http/_support/rack/rack_adapter.rb +5 -5
  76. data/lib/rad/http/processors/evaluate_format.rb +4 -4
  77. data/lib/rad/http/processors/http_logger.rb +3 -3
  78. data/lib/rad/http/processors/http_writer.rb +7 -7
  79. data/lib/rad/http/processors/prepare_params.rb +5 -5
  80. data/lib/rad/mailer/_letter.rb +1 -1
  81. data/lib/rad/mailer/_mailer.rb +1 -1
  82. data/lib/rad/mailer/_mailer_controller.rb +6 -6
  83. data/lib/rad/mailer/_require.rb +1 -1
  84. data/lib/rad/mailer/processors/letter_builder.rb +6 -6
  85. data/lib/rad/profiles/mailer.rb +2 -2
  86. data/lib/rad/profiles/web.rb +13 -13
  87. data/lib/rad/remote/processors/remote_caller.rb +10 -10
  88. data/lib/rad/remote/processors/remote_logger.rb +1 -1
  89. data/lib/rad/router/_abstract_router.rb +9 -9
  90. data/lib/rad/router/_alias_router.rb +34 -34
  91. data/lib/rad/router/_basic_router.rb +12 -12
  92. data/lib/rad/router/_configurator.rb +6 -6
  93. data/lib/rad/router/_core_routing_helper.rb +4 -4
  94. data/lib/rad/router/_object_router.rb +45 -45
  95. data/lib/rad/router/_require.rb +8 -8
  96. data/lib/rad/router/_restful_router.rb +25 -25
  97. data/lib/rad/router/_router.rb +78 -78
  98. data/lib/rad/router/_simple_router.rb +5 -5
  99. data/lib/rad/router/processors/router.rb +6 -6
  100. data/lib/rad/spec/controller.rb +9 -9
  101. data/lib/rad/spec/environment.rb +7 -7
  102. data/lib/rad/spec/http.rb +2 -2
  103. data/lib/rad/spec/http_controller.rb +22 -22
  104. data/lib/rad/spec/mailer.rb +4 -4
  105. data/lib/rad/spec/remote.rb +1 -1
  106. data/lib/rad/spec/router.rb +4 -4
  107. data/lib/rad/spec/template.rb +2 -2
  108. data/lib/rad/tasks.rb +2 -2
  109. data/lib/rad/template/_context.rb +15 -15
  110. data/lib/rad/template/_relative_path_resolver.rb +1 -1
  111. data/lib/rad/template/_support/tilt.rb +17 -17
  112. data/lib/rad/template/_support/tilt_fixes.rb +3 -3
  113. data/lib/rad/template/_template.rb +47 -47
  114. data/lib/rad/web/_ajax_helper.rb +4 -4
  115. data/lib/rad/web/_controller_miscellaneous_helper.rb +5 -5
  116. data/lib/rad/web/_ensure_no_www.rb +5 -5
  117. data/lib/rad/web/_protect_from_forgery.rb +18 -18
  118. data/lib/rad/web/_require.rb +7 -7
  119. data/lib/rad/web/_router/abstract_routing_helper.rb +4 -4
  120. data/lib/rad/web/_router/controller_routing_helper.rb +15 -15
  121. data/lib/rad/web/_router/view_routing_helper.rb +12 -12
  122. data/readme.md +5 -5
  123. data/spec/controller/abstract_spec.rb +29 -29
  124. data/spec/controller/context_spec.rb +32 -32
  125. data/spec/controller/error_handling_spec.rb +31 -31
  126. data/spec/controller/helper_spec.rb +13 -13
  127. data/spec/controller/http_spec.rb +32 -32
  128. data/spec/controller/render_spec.rb +59 -59
  129. data/spec/conveyors/conveyors_spec.rb +32 -32
  130. data/spec/environment/config_spec.rb +6 -6
  131. data/spec/environment/environment_spec.rb +7 -7
  132. data/spec/environment/minimal_app_spec.rb +4 -4
  133. data/spec/environment/standard_app_spec.rb +10 -10
  134. data/spec/html/basic_html_helper_spec.rb +6 -6
  135. data/spec/html/form_helper_spec.rb +5 -5
  136. data/spec/html/javascript_helper_spec.rb +4 -4
  137. data/spec/html/model_helper_spec.rb +12 -12
  138. data/spec/html/scoped_params_spec.rb +2 -2
  139. data/spec/html/spec_helper.rb +3 -3
  140. data/spec/http/http_spec.rb +9 -9
  141. data/spec/http/miscellaneous_spec.rb +2 -2
  142. data/spec/mailer/mail_controller_spec.rb +23 -23
  143. data/spec/remote/remote_spec.rb +26 -26
  144. data/spec/router/alias_router_spec.rb +22 -22
  145. data/spec/router/basic_router_spec.rb +8 -8
  146. data/spec/router/configurator_spec.rb +4 -4
  147. data/spec/router/integration_spec.rb +17 -17
  148. data/spec/router/object_router_spec.rb +47 -47
  149. data/spec/router/persistent_params_spec.rb +18 -18
  150. data/spec/router/restful_router_spec.rb +39 -39
  151. data/spec/router/router_spec.rb +37 -37
  152. data/spec/router/routing_helper_spec.rb +18 -18
  153. data/spec/support/filters_spec.rb +11 -13
  154. data/spec/template/template_spec.rb +43 -45
  155. data/spec/template/template_spec/views/layout/content_for/content.erb +3 -1
  156. data/spec/template/template_spec/views/layout/content_for/layout.erb +1 -1
  157. data/spec/template/tilt_spec.rb +24 -24
  158. data/spec/web/basic_spec.rb +25 -25
  159. data/spec/web/controller_routing_helper_spec.rb +26 -26
  160. data/spec/web/flash_spec.rb +31 -31
  161. data/spec/web/protect_from_forgery_spec.rb +44 -44
  162. data/spec/web/spec_helper_spec.rb +16 -16
  163. data/spec/web/view_routing_helper_spec.rb +31 -31
  164. metadata +46 -49
  165. data/lib/rad/_support/callbacks.rb +0 -166
  166. data/lib/rad/_support/ruby_ext_with_active_support.rb +0 -4
  167. data/spec/support/callbacks_spec.rb +0 -157
@@ -2,119 +2,119 @@ require "spec_helper"
2
2
 
3
3
  describe "Controller Context" do
4
4
  with_view_path "#{spec_dir}/views"
5
-
5
+
6
6
  before :all do
7
7
  class ItemSpec
8
8
  inherit Rad::Controller::Abstract
9
-
10
- def show; end
9
+
10
+ def show; end
11
11
  def update; end
12
12
  def delete; end
13
13
  def increase; end
14
- def decrease; end
14
+ def decrease; end
15
15
  end
16
-
16
+
17
17
  class PageSpec < ItemSpec
18
18
  def show; end
19
19
  def increase; end
20
- end
21
-
20
+ end
21
+
22
22
  module NamespaceSpec
23
23
  class ClassSpec
24
24
  inherit Rad::Controller::Abstract
25
-
25
+
26
26
  def show; end
27
27
  def update; end
28
28
  end
29
29
  end
30
30
  end
31
-
31
+
32
32
  after :all do
33
33
  remove_constants %w(
34
34
  ItemSpec
35
35
  PageSpec
36
- NamespaceSpec
36
+ NamespaceSpec
37
37
  ItemSpecHelper
38
- PageSpecHelper
39
- )
38
+ PageSpecHelper
39
+ )
40
40
  end
41
-
42
- describe "basic" do
41
+
42
+ describe "basic" do
43
43
  before{@args = [[''], nil, nil, nil]}
44
-
44
+
45
45
  it "should return nil for non-existing template" do
46
46
  ItemSpec.find_relative_template(:delete, *@args).should be_nil
47
47
  PageSpec.find_relative_template(:delete, *@args).should be_nil
48
48
  end
49
-
49
+
50
50
  it "should provide template name for existing template" do
51
51
  ItemSpec.find_relative_template(:update, *@args).should == "#{spec_dir}/views/item_spec/update.erb"
52
52
  end
53
-
53
+
54
54
  it "should inherit template name for template existing in parent" do
55
55
  PageSpec.find_relative_template(:update, *@args).should == "#{spec_dir}/views/item_spec/update.erb"
56
56
  end
57
-
57
+
58
58
  it "should override template name for template existing in both self and parent" do
59
59
  ItemSpec.find_relative_template(:show, *@args).should == "#{spec_dir}/views/item_spec/show.erb"
60
60
  PageSpec.find_relative_template(:show, *@args).should == "#{spec_dir}/views/page_spec/show.erb"
61
61
  end
62
-
62
+
63
63
  it "should transfer namespaces into folders" do
64
64
  NamespaceSpec::ClassSpec.find_relative_template(:show, *@args).should == "#{spec_dir}/views/NamespaceSpec/ClassSpec/show.erb"
65
65
  end
66
66
  end
67
-
67
+
68
68
  describe "actions" do
69
69
  before{@args = [[''], nil, nil, nil]}
70
-
70
+
71
71
  it "should be able to check for action inside of actions.xxx files" do
72
72
  ItemSpec.find_relative_template(:increase, *@args).should == "#{spec_dir}/views/item_spec/actions.erb"
73
73
  end
74
-
74
+
75
75
  it "should be able to check for action inside of actions.xxx files" do
76
76
  ItemSpec.find_relative_template(:increase, *@args).should == "#{spec_dir}/views/item_spec/actions.erb"
77
77
  ItemSpec.find_relative_template(:decrease, *@args).should == "#{spec_dir}/views/item_spec/actions.erb"
78
78
  ItemSpec.find_relative_template(:action_not_defined_inside_of_actions_file, *@args).should == nil
79
79
  end
80
-
80
+
81
81
  it "should inherit actions.xxx" do
82
82
  PageSpec.find_relative_template(:increase, *@args).should == "#{spec_dir}/views/item_spec/actions.erb"
83
83
  PageSpec.find_relative_template(:decrease, *@args).should == "#{spec_dir}/views/page_spec/actions.erb"
84
84
  end
85
85
  end
86
-
86
+
87
87
  describe "context_class, helper" do
88
- before do
88
+ before do
89
89
  ItemSpec.instance_variable_set "@context_class", nil
90
90
  ItemSpec.instance_variable_set "@context_class", nil
91
91
  end
92
-
92
+
93
93
  it "context_class" do
94
94
  ItemSpec.context_class.should == ItemSpec::ItemSpecContext
95
95
  PageSpec.context_class.should == PageSpec::PageSpecContext
96
96
  PageSpec::PageSpecContext.is?(PageSpec::ItemSpecContext).should be_true
97
97
  end
98
-
98
+
99
99
  it "helper" do
100
100
  module ::ItemSpecHelper
101
101
  def controller_item; end
102
102
  end
103
-
103
+
104
104
  module ::PageSpecHelper
105
105
  def controller_page; end
106
106
  end
107
-
107
+
108
108
  ItemSpec.helper ItemSpecHelper
109
109
  PageSpec.helper PageSpecHelper
110
-
110
+
111
111
  ItemSpec::ItemSpecContext.instance_methods.should include(:controller_item)
112
-
112
+
113
113
  PageSpec::PageSpecContext.instance_methods.should include(:controller_item)
114
114
  PageSpec::PageSpecContext.instance_methods.should include(:controller_page)
115
115
  end
116
116
  end
117
-
117
+
118
118
  describe "other" do
119
119
  it "should understand underscored paths" do
120
120
  NamespaceSpec::ClassSpec.find_relative_template(:update, [''], nil, nil, nil).should == "#{spec_dir}/views/namespace_spec/class_spec/update.erb"
@@ -2,12 +2,12 @@ require "spec_helper"
2
2
 
3
3
  describe "Error handling" do
4
4
  with_view_path "#{spec_dir}/views"
5
-
5
+
6
6
  isolate :conveyors
7
-
7
+
8
8
  before do
9
9
  rad.controller.stub!(:test_error_template).and_return(rad.controller.development_error_template)
10
-
10
+
11
11
  rad.conveyors.web do |web|
12
12
  web.use Rad::Controller::Processors::ControllerErrorHandling
13
13
  web.use Rad::Controller::Processors::ControllerCaller
@@ -16,94 +16,94 @@ describe "Error handling" do
16
16
 
17
17
  before :all do
18
18
  rad.controller
19
- end
19
+ end
20
20
  after :all do
21
21
  remove_constants %w(
22
22
  DisplayErrorWithFormat
23
- DiferrentErrorHandlingSpec
23
+ DiferrentErrorHandlingSpec
24
24
  ErrorInRedirectSpec
25
25
  )
26
26
  end
27
-
27
+
28
28
  it "should correctly display error messages in :development (with correct format)" do
29
29
  class ::DisplayErrorWithFormat
30
30
  inherit Rad::Controller::Abstract
31
-
31
+
32
32
  def method
33
- raise params.error
33
+ raise params.error
34
34
  end
35
35
  end
36
-
36
+
37
37
  rad.mode = :development, true
38
-
38
+
39
39
  error = StandardError.new('some error')
40
-
40
+
41
41
  ccall(
42
- DisplayErrorWithFormat, :method,
42
+ DisplayErrorWithFormat, :method,
43
43
  {error: error, format: 'html'}
44
44
  ).should =~ /html.+some error/m
45
-
45
+
46
46
  ccall(
47
47
  DisplayErrorWithFormat, :method,
48
48
  {error: error, format: 'js'}
49
49
  ).should =~ /some error/
50
-
50
+
51
51
  ccall(
52
52
  DisplayErrorWithFormat, :method,
53
53
  {error: error, format: :non_existing_mime}
54
54
  ).should =~ /some error/
55
55
  end
56
-
56
+
57
57
  it "should catch errors with redirect (from error)" do
58
- # error: if response.headers['Location'] has been set before redirect, it'll do redirect
58
+ # error: if response.headers['Location'] has been set before redirect, it'll do redirect
59
59
  # after error will be catched and no error message will be displayed
60
-
60
+
61
61
  class ::ErrorInRedirectSpec
62
62
  inherit Rad::Controller::Abstract
63
63
 
64
64
  def a
65
65
  response.headers['Location'] = '/'
66
66
  raise 'some error'
67
- end
67
+ end
68
68
  end
69
-
69
+
70
70
  rad.mode = :development, true
71
-
71
+
72
72
  ccall(ErrorInRedirectSpec, :a, format: 'html')
73
73
  response.headers['Location'].should be_nil
74
74
  end
75
-
75
+
76
76
  describe "should be different in :test, :development and :production" do
77
77
  before :all do
78
78
  class ::DiferrentErrorHandlingSpec
79
79
  inherit Rad::Controller::Abstract
80
-
81
- def a; end
80
+
81
+ def a; end
82
82
  def b
83
83
  raise 'some error'
84
- end
84
+ end
85
85
  def c; end
86
86
  end
87
87
  end
88
-
88
+
89
89
  it "in :production errors shouldn't be shown to user"
90
-
90
+
91
91
  it "in development errors should be catched" do
92
92
  rad.mode = :development, true
93
-
93
+
94
94
  # with view
95
95
  ccall(DiferrentErrorHandlingSpec, :a).should == 'a'
96
- %w(html js).each do |format|
97
- ccall(DiferrentErrorHandlingSpec, :b, format: format).should =~ /some error/
96
+ %w(html js).each do |format|
97
+ ccall(DiferrentErrorHandlingSpec, :b, format: format).should =~ /some error/
98
98
  ccall(DiferrentErrorHandlingSpec, :c, format: format).should =~ /error in template/
99
99
  end
100
100
  end
101
-
101
+
102
102
  it "should not catch errors in :test environment" do
103
103
  rad.mode = :test, true
104
104
 
105
105
  # with render
106
- ccall(DiferrentErrorHandlingSpec, :a).should == 'a'
106
+ ccall(DiferrentErrorHandlingSpec, :a).should == 'a'
107
107
  lambda{ccall(DiferrentErrorHandlingSpec, :b)}.should raise_error(/some error/)
108
108
  lambda{ccall(DiferrentErrorHandlingSpec, :c)}.should raise_error(/error in template/)
109
109
  end
@@ -2,46 +2,46 @@ require "spec_helper"
2
2
 
3
3
  describe "Abstract" do
4
4
  with_view_path "#{spec_dir}/views"
5
- with_abstract_controller
6
-
5
+ with_abstract_controller
6
+
7
7
  after :all do
8
8
  remove_constants %w(
9
9
  SomeHelperSpec
10
10
  HelperSpec
11
- HelperMethodSpec
11
+ HelperMethodSpec
12
12
  )
13
13
  end
14
-
14
+
15
15
  it "helper_method" do
16
16
  class ::HelperMethodSpec
17
17
  inherit Rad::Controller::Abstract
18
-
18
+
19
19
  def some_controller_method
20
20
  "some controller value (rendered in cotext of #{self.class})"
21
21
  end
22
22
  helper_method :some_controller_method
23
-
23
+
24
24
  def action; end
25
25
  end
26
-
26
+
27
27
  ccall(HelperMethodSpec, :action).should == "some controller value (rendered in cotext of HelperMethodSpec)"
28
28
  end
29
-
29
+
30
30
  it "helper" do
31
31
  module ::SomeHelperSpec
32
32
  def wiget
33
33
  "some wighet (rendered in context of #{self.class.name})"
34
34
  end
35
35
  end
36
-
36
+
37
37
  class ::HelperSpec
38
38
  inherit Rad::Controller::Abstract
39
-
39
+
40
40
  helper SomeHelperSpec
41
-
41
+
42
42
  def action; end
43
43
  end
44
-
44
+
45
45
  ccall(HelperSpec, :action).should == "some wighet (rendered in context of HelperSpec::HelperSpecContext)"
46
- end
46
+ end
47
47
  end
@@ -2,9 +2,9 @@ require "spec_helper"
2
2
 
3
3
  describe "Http" do
4
4
  with_view_path "#{spec_dir}/views"
5
-
5
+
6
6
  isolate :conveyors
7
-
7
+
8
8
  before do
9
9
  rad.conveyors.web do |web|
10
10
  web.use Rad::Http::Processors::HttpWriter
@@ -13,7 +13,7 @@ describe "Http" do
13
13
  end
14
14
 
15
15
  after :all do
16
- remove_constants %w(
16
+ remove_constants %w(
17
17
  ContentTypeSpec
18
18
  StatusSpec
19
19
  StatusShortcutsSpec
@@ -23,50 +23,50 @@ describe "Http" do
23
23
  ViewVariablesSpec
24
24
  )
25
25
  end
26
-
26
+
27
27
  describe 'render' do
28
28
  it "should take :content_type option" do
29
29
  class ::ContentTypeSpec
30
30
  inherit Rad::Controller::Http
31
-
31
+
32
32
  def action
33
33
  render inline: "some content", content_type: Mime.js
34
34
  end
35
35
  end
36
-
36
+
37
37
  wcall(ContentTypeSpec, :action)
38
38
  response.content_type.should == "application/javascript"
39
39
  end
40
-
40
+
41
41
  it "should take :status option" do
42
42
  class ::StatusSpec
43
43
  inherit Rad::Controller::Http
44
-
44
+
45
45
  def action
46
46
  render inline: "some content", status: 220
47
47
  end
48
48
  end
49
-
49
+
50
50
  wcall(StatusSpec, :action)
51
51
  response.status.should == 220
52
52
  end
53
-
53
+
54
54
  it "should take shortcuts to status codes" do
55
55
  class ::StatusShortcutsSpec
56
56
  inherit Rad::Controller::Http
57
-
57
+
58
58
  def ok
59
59
  render :ok
60
60
  end
61
-
61
+
62
62
  def failed
63
63
  render :failed
64
64
  end
65
65
  end
66
-
66
+
67
67
  wcall(StatusShortcutsSpec, :ok)
68
68
  response.status.should == 200
69
-
69
+
70
70
  wcall(StatusShortcutsSpec, :failed)
71
71
  response.status.should == 500
72
72
  end
@@ -74,66 +74,66 @@ describe "Http" do
74
74
  it "should take :location option" do
75
75
  class ::LocationSpec
76
76
  inherit Rad::Controller::Http
77
-
77
+
78
78
  def action
79
79
  render location: "/"
80
- end
80
+ end
81
81
  end
82
-
82
+
83
83
  # mock
84
84
  class ::LocationSpec
85
85
  def redirect_to location
86
86
  self.class.location = location
87
87
  end
88
-
88
+
89
89
  class << self
90
90
  attr_accessor :location
91
- end
91
+ end
92
92
  end
93
-
93
+
94
94
  wcall(LocationSpec, :action, format: 'html')
95
95
  LocationSpec.location.should == '/'
96
96
  end
97
- end
98
-
97
+ end
98
+
99
99
  it "should specify request method" do
100
100
  class ::RequestMethod
101
101
  inherit Rad::Controller::Http
102
- def action
102
+ def action
103
103
  request.post?.should == true
104
104
  end
105
105
  end
106
-
107
- workspace, params = {env: {'REQUEST_METHOD' => 'POST'}}, {}
106
+
107
+ workspace, params = {env: {'REQUEST_METHOD' => 'POST'}}, {}
108
108
  wcall(RequestMethod, :action, workspace, params)
109
109
  end
110
-
110
+
111
111
  it "should protect methods from GET request" do
112
112
  class ::ForbidGetSpec
113
113
  inherit Rad::Controller::Http
114
114
  allow_get_for :get_action
115
-
115
+
116
116
  def get_action; end
117
117
  def post_action; end
118
118
  end
119
-
119
+
120
120
  workspace = {env: {'REQUEST_METHOD' => 'GET'}}
121
-
121
+
122
122
  wcall(ForbidGetSpec, :get_action, workspace, {})
123
123
  lambda{
124
124
  wcall(ForbidGetSpec, :post_action, workspace, {})
125
125
  }.should raise_error(/not allowed/)
126
126
  end
127
-
127
+
128
128
  it "request and response must be availiable in view" do
129
129
  class ::ViewVariablesSpec
130
130
  inherit Rad::Controller::Http
131
-
131
+
132
132
  def action
133
133
  @instance_variable = "iv value"
134
134
  end
135
135
  end
136
-
136
+
137
137
  wcall(ViewVariablesSpec, :action).should == %(\
138
138
  request: true
139
139
  response: true)