darkhelmet-sinatra 0.9.1.1 → 0.10.1

Sign up to get free protection for your applications and to get access to all the features.
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