darkhelmet-sinatra 0.9.1.1 → 0.10.1

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 (88) hide show
  1. data/AUTHORS +2 -0
  2. data/CHANGES +180 -0
  3. data/LICENSE +1 -1
  4. data/README.jp.rdoc +552 -0
  5. data/README.rdoc +177 -38
  6. data/Rakefile +18 -25
  7. data/lib/sinatra.rb +1 -2
  8. data/lib/sinatra/base.rb +405 -305
  9. data/lib/sinatra/main.rb +5 -24
  10. data/lib/sinatra/showexceptions.rb +303 -0
  11. data/lib/sinatra/tilt.rb +509 -0
  12. data/sinatra.gemspec +21 -51
  13. data/test/base_test.rb +123 -93
  14. data/test/builder_test.rb +2 -1
  15. data/test/contest.rb +64 -0
  16. data/test/erb_test.rb +1 -1
  17. data/test/erubis_test.rb +82 -0
  18. data/test/extensions_test.rb +24 -8
  19. data/test/filter_test.rb +99 -3
  20. data/test/haml_test.rb +25 -3
  21. data/test/helper.rb +43 -48
  22. data/test/helpers_test.rb +500 -424
  23. data/test/mapped_error_test.rb +163 -137
  24. data/test/middleware_test.rb +3 -3
  25. data/test/request_test.rb +16 -1
  26. data/test/response_test.rb +2 -2
  27. data/test/result_test.rb +1 -1
  28. data/test/route_added_hook_test.rb +59 -0
  29. data/test/routing_test.rb +170 -22
  30. data/test/sass_test.rb +44 -1
  31. data/test/server_test.rb +19 -13
  32. data/test/sinatra_test.rb +1 -1
  33. data/test/static_test.rb +9 -2
  34. data/test/templates_test.rb +78 -11
  35. data/test/views/error.builder +3 -0
  36. data/test/views/error.erb +3 -0
  37. data/test/views/error.erubis +3 -0
  38. data/test/views/error.haml +3 -0
  39. data/test/views/error.sass +2 -0
  40. data/test/views/foo/hello.test +1 -0
  41. data/test/views/hello.erubis +1 -0
  42. data/test/views/layout2.erubis +2 -0
  43. metadata +37 -55
  44. data/compat/app_test.rb +0 -282
  45. data/compat/application_test.rb +0 -262
  46. data/compat/builder_test.rb +0 -101
  47. data/compat/compat_test.rb +0 -12
  48. data/compat/custom_error_test.rb +0 -62
  49. data/compat/erb_test.rb +0 -136
  50. data/compat/events_test.rb +0 -78
  51. data/compat/filter_test.rb +0 -30
  52. data/compat/haml_test.rb +0 -233
  53. data/compat/helper.rb +0 -30
  54. data/compat/mapped_error_test.rb +0 -72
  55. data/compat/pipeline_test.rb +0 -45
  56. data/compat/public/foo.xml +0 -1
  57. data/compat/sass_test.rb +0 -57
  58. data/compat/sessions_test.rb +0 -42
  59. data/compat/streaming_test.rb +0 -133
  60. data/compat/sym_params_test.rb +0 -19
  61. data/compat/template_test.rb +0 -30
  62. data/compat/use_in_file_templates_test.rb +0 -47
  63. data/compat/views/foo.builder +0 -1
  64. data/compat/views/foo.erb +0 -1
  65. data/compat/views/foo.haml +0 -1
  66. data/compat/views/foo.sass +0 -2
  67. data/compat/views/foo_layout.erb +0 -2
  68. data/compat/views/foo_layout.haml +0 -2
  69. data/compat/views/layout_test/foo.builder +0 -1
  70. data/compat/views/layout_test/foo.erb +0 -1
  71. data/compat/views/layout_test/foo.haml +0 -1
  72. data/compat/views/layout_test/foo.sass +0 -2
  73. data/compat/views/layout_test/layout.builder +0 -3
  74. data/compat/views/layout_test/layout.erb +0 -1
  75. data/compat/views/layout_test/layout.haml +0 -1
  76. data/compat/views/layout_test/layout.sass +0 -2
  77. data/compat/views/no_layout/no_layout.builder +0 -1
  78. data/compat/views/no_layout/no_layout.haml +0 -1
  79. data/lib/sinatra/compat.rb +0 -250
  80. data/lib/sinatra/test.rb +0 -126
  81. data/lib/sinatra/test/bacon.rb +0 -19
  82. data/lib/sinatra/test/rspec.rb +0 -13
  83. data/lib/sinatra/test/spec.rb +0 -11
  84. data/lib/sinatra/test/unit.rb +0 -13
  85. data/test/data/reload_app_file.rb +0 -3
  86. data/test/options_test.rb +0 -374
  87. data/test/reload_test.rb +0 -68
  88. data/test/test_test.rb +0 -144
@@ -1,144 +0,0 @@
1
- require 'yaml'
2
- require File.dirname(__FILE__) + '/helper'
3
-
4
- describe 'Sinatra::Test' do
5
- def request
6
- YAML.load(body)
7
- end
8
-
9
- def request_body
10
- request['test.body']
11
- end
12
-
13
- def request_params
14
- YAML.load(request['test.params'])
15
- end
16
-
17
- before do
18
- mock_app {
19
- %w[get head post put delete].each { |verb|
20
- send(verb, '/') do
21
- redirect '/redirected' if params[:redirect]
22
- env.update('test.body' => request.body.read)
23
- env.update('test.params' => params.to_yaml)
24
- env.to_yaml
25
- end
26
- }
27
-
28
- get '/redirected' do
29
- "you've been redirected"
30
- end
31
- }
32
- end
33
-
34
- it 'allows GET/HEAD/POST/PUT/DELETE' do
35
- get '/'
36
- assert_equal('GET', request['REQUEST_METHOD'])
37
-
38
- post '/'
39
- assert_equal('POST', request['REQUEST_METHOD'])
40
-
41
- put '/'
42
- assert_equal('PUT', request['REQUEST_METHOD'])
43
-
44
- delete '/'
45
- assert_equal('DELETE', request['REQUEST_METHOD'])
46
-
47
- head '/'
48
- assert_equal('596', response.headers['Content-Length'])
49
- assert_equal('', response.body)
50
- end
51
-
52
- it 'allows to specify a body' do
53
- post '/', '42'
54
- assert_equal '42', request_body
55
- end
56
-
57
- it 'allows to specify params' do
58
- get '/', :foo => 'bar'
59
- assert_equal 'bar', request_params['foo']
60
- end
61
-
62
- it 'supports nested params' do
63
- get '/', :foo => { :x => 'y', :chunky => 'bacon' }
64
- assert_equal "y", request_params['foo']['x']
65
- assert_equal "bacon", request_params['foo']['chunky']
66
- end
67
-
68
- it 'provides easy access to response status and body' do
69
- get '/'
70
- assert_equal 200, status
71
- assert body =~ /^---/
72
- end
73
-
74
- it 'delegates methods to @response' do
75
- get '/'
76
- assert ok?
77
- end
78
-
79
- it 'follows redirect' do
80
- get '/', :redirect => true
81
- follow!
82
- assert_equal "you've been redirected", body
83
- end
84
-
85
- it 'provides sugar for common HTTP headers' do
86
- get '/', :env => { :accept => 'text/plain' }
87
- assert_equal 'text/plain', request['HTTP_ACCEPT']
88
-
89
- get '/', :env => { :agent => 'TATFT' }
90
- assert_equal 'TATFT', request['HTTP_USER_AGENT']
91
-
92
- get '/', :env => { :host => '1.2.3.4' }
93
- assert_equal '1.2.3.4', request['HTTP_HOST']
94
-
95
- get '/', :env => { :session => 'foo' }
96
- assert_equal 'foo', request['rack.session']
97
-
98
- get '/', :env => { :cookies => 'foo' }
99
- assert_equal 'foo', request['HTTP_COOKIE']
100
-
101
- get '/', :env => { :content_type => 'text/plain' }
102
- assert_equal 'text/plain', request['CONTENT_TYPE']
103
- end
104
-
105
- it 'allow to test session easily' do
106
- app = mock_app(Sinatra::Default) {
107
- get '/' do
108
- session['foo'] = 'bar'
109
- 200
110
- end
111
-
112
- post '/' do
113
- assert_equal 'bar', session['foo']
114
- session['foo'] || "blah"
115
- end
116
- }
117
-
118
- browser = Sinatra::TestHarness.new(app)
119
- browser.get '/'
120
- browser.post '/', {}, :session => { 'foo' => 'bar' }
121
- assert_equal 'bar', browser.response.body
122
- end
123
-
124
- it 'yields the request object to the block before invoking the application' do
125
- called = false
126
- get '/' do |req|
127
- called = true
128
- assert req.kind_of?(Rack::MockRequest)
129
- end
130
- assert called
131
- end
132
-
133
- it 'sets the environment to :test on include' do
134
- Sinatra::Default.set(:environment, :production)
135
- Class.new { include Sinatra::Test }
136
- assert_equal :test, Sinatra::Default.environment
137
- end
138
-
139
- def test_TestHarness
140
- session = Sinatra::TestHarness.new(@app)
141
- response = session.get('/')
142
- assert_equal 200, response.status
143
- end
144
- end