mango 0.5.0.beta1 → 0.5.0.beta2
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.
- data/.rspec +1 -0
- data/.yardopts +1 -2
- data/{doc/HISTORY.mdown → CHANGES.mdown} +31 -7
- data/README.mdown +33 -21
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/lib/mango/application.rb +4 -0
- data/lib/mango/dependencies.rb +6 -6
- data/lib/mango/runner.rb +1 -0
- data/lib/mango/templates/.gitignore +3 -0
- data/lib/mango/templates/Gemfile +1 -1
- data/lib/mango/templates/config.ru +0 -1
- data/lib/mango/version.rb +1 -1
- data/mango.gemspec +8 -8
- data/spec/mango/application/routing_content_pages_spec.rb +31 -31
- data/spec/mango/application/routing_public_files_spec.rb +18 -18
- data/spec/mango/application/routing_style_sheets_spec.rb +27 -27
- data/spec/mango/content_page/finding_spec.rb +29 -29
- data/spec/mango/content_page/initializing_spec.rb +45 -46
- data/spec/mango/content_page_spec.rb +4 -4
- data/spec/mango/dependencies_spec.rb +22 -22
- data/spec/mango/flavored_markdown_spec.rb +8 -8
- data/spec/mango/rack/debugger_spec.rb +15 -17
- data/spec/mango/version_spec.rb +3 -3
- data/spec/quality_spec.rb +2 -2
- data/spec/spec_helper.rb +3 -3
- metadata +32 -33
- data/doc/ROAD-MAP.mdown +0 -10
- data/spec/spec.opts +0 -3
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour
|
data/.yardopts
CHANGED
@@ -1,11 +1,35 @@
|
|
1
|
-
Mango release 0.5.0 (
|
2
|
-
|
1
|
+
Mango release 0.5.0.beta2 (October 21, 2010)
|
2
|
+
============================================
|
3
3
|
|
4
|
+
### Features
|
5
|
+
|
6
|
+
* Mango has been split into two pieces!
|
7
|
+
1. A web framework, distributed as a Ruby gem, that is completely abstracted away from application code.
|
8
|
+
2. A `mango` command-line tool that generates a [demo Mango application](http://mango-fireworks.heroku.com/).
|
9
|
+
* Mango now supports theme-switching!
|
10
|
+
* For example, add `class Mango::Application; set :theme, "theme_name"; end` to your application's config.ru.
|
11
|
+
* As a result of the new command-line application generator, all embedded application code has been removed.
|
12
|
+
* Now routes like `GET /images/` return a 200 response if the `themes/default/public/images/index.html` file is exists.
|
13
|
+
|
14
|
+
### Dependencies
|
15
|
+
|
16
|
+
* Updated [Bundler](http://gembundler.com/) to 1.0.3
|
17
|
+
* Updated [Haml](http://haml-lang.com/) to 3.0.22
|
18
|
+
* Updated [Sass](http://sass-lang.com/) to 3.0.22 (bundled with Haml)
|
19
|
+
* Updated [BlueCloth](http://deveiate.org/projects/BlueCloth) to 2.0.9
|
20
|
+
* Updated [Rack::Test](http://github.com/brynary/rack-test) to 0.5.6
|
21
|
+
* Updated [RSpec](http://rspec.info/) to 2.0.1
|
22
|
+
* Updated [YARD](http://yardoc.org/) to 0.5.8
|
23
|
+
* Updated [YARD::Sinatra](http://github.com/rkh/yard-sinatra) to 0.5.1
|
24
|
+
|
25
|
+
### Bugs
|
26
|
+
|
27
|
+
* The NOT_FOUND handler no longer renders the 404 template within a layout template.
|
4
28
|
|
5
29
|
Mango release 0.4.0 (August 30, 2010)
|
6
30
|
=====================================
|
7
31
|
|
8
|
-
###
|
32
|
+
### Features
|
9
33
|
|
10
34
|
* Added the beginnings of a default theme titled "Smashing Mangos".
|
11
35
|
* Added `Mango::Rack::Debugger` to the middleware stack (Only loads in the `:development` rack environment).
|
@@ -13,7 +37,7 @@ Mango release 0.4.0 (August 30, 2010)
|
|
13
37
|
* Refactored `Mango::Application` to utilize `Mango::ContentPage`. Now views have access to a `@content_page` instance variable.
|
14
38
|
* Added `Mango::FlavoredMarkdown`, a subset of [GithubFlavoredMarkdown](http://github.github.com/github-flavored-markdown/), into the Markdown-to-HTML conversion.
|
15
39
|
|
16
|
-
### Dependencies
|
40
|
+
### Dependencies
|
17
41
|
|
18
42
|
* Updated [Haml](http://haml-lang.com/) to 3.0.18
|
19
43
|
* Updated [YARD::Sinatra](http://github.com/rkh/yard-sinatra) to 0.5.0
|
@@ -22,19 +46,19 @@ Mango release 0.4.0 (August 30, 2010)
|
|
22
46
|
Mango release 0.3.0 (June 25, 2010)
|
23
47
|
===================================
|
24
48
|
|
25
|
-
###
|
49
|
+
### Features
|
26
50
|
|
27
51
|
* Added a route handler that renders [Sass](http://sass-lang.com/) templates to CSS!
|
28
52
|
* Refactored tests for better spec coverage of route handling
|
29
53
|
* Massive rewrite of internal documentation thanks to the [YARD::Sinatra (modified)](http://github.com/ryansobol/yard-sinatra)
|
30
54
|
* Uploaded developer documentation to [http://yardoc.org/docs/ryansobol-mango](http://yardoc.org/docs/ryansobol-mango)
|
31
55
|
|
32
|
-
### Dependencies
|
56
|
+
### Dependencies
|
33
57
|
|
34
58
|
* Updated [Haml](http://haml-lang.com/) to 3.0.13
|
35
59
|
* Added [YARD::Sinatra](http://github.com/rkh/yard-sinatra) 0.4.0.1 [(modified)](http://github.com/ryansobol/yard-sinatra)
|
36
60
|
|
37
|
-
###
|
61
|
+
### Bugs
|
38
62
|
|
39
63
|
* Fixed Regex when parsing LoadError messages on missing development dependencies
|
40
64
|
* Fixed rspec gem name detection when requiring spec/rake/spectask in the Rakefile
|
data/README.mdown
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
|
3
3
|
Image courtesy of [B.C. Tree Fruits LTD.](http://www.bctree.com/products/sourced/mango.php)
|
4
4
|
|
5
|
-
Mango release 0.5.0 (
|
6
|
-
|
5
|
+
Mango release 0.5.0.beta2 (October 21, 2010)
|
6
|
+
============================================
|
7
7
|
|
8
8
|
Copyright (c) 2010 Ryan Sobol. Licensed under the MIT license. Please see the {file:LICENSE} for more information.
|
9
9
|
|
10
10
|
* **Source Code**: [http://github.com/ryansobol/mango](http://github.com/ryansobol/mango)
|
11
11
|
* **Documentation**: [http://rubydoc.info/github/ryansobol/mango](http://rubydoc.info/github/ryansobol/mango)
|
12
|
-
* **
|
12
|
+
* **Issue Tracker**: [http://github.com/ryansobol/mango/issues](http://github.com/ryansobol/mango/issues)
|
13
13
|
* **Wiki**: [http://wiki.github.com/ryansobol/mango](http://wiki.github.com/ryansobol/mango)
|
14
14
|
|
15
15
|
**Mango respects [Semantic Versioning](http://semver.org/)!**
|
@@ -17,21 +17,32 @@ Copyright (c) 2010 Ryan Sobol. Licensed under the MIT license. Please see the {
|
|
17
17
|
WHAT'S NEW?
|
18
18
|
-----------
|
19
19
|
|
20
|
-
###
|
20
|
+
### Features
|
21
21
|
|
22
|
-
*
|
23
|
-
|
24
|
-
|
25
|
-
*
|
26
|
-
|
22
|
+
* Mango has been split into two pieces!
|
23
|
+
1. A web framework, distributed as a Ruby gem, that is completely abstracted away from application code.
|
24
|
+
2. A `mango` command-line tool that generates a [demo Mango application](http://mango-fireworks.heroku.com/).
|
25
|
+
* Mango now supports theme-switching!
|
26
|
+
* For example, add `class Mango::Application; set :theme, "theme_name"; end` to your application's config.ru.
|
27
|
+
* As a result of the new command-line application generator, all embedded application code has been removed.
|
28
|
+
* Now routes like `GET /images/` return a 200 response if the `themes/default/public/images/index.html` file is exists.
|
27
29
|
|
28
|
-
### Dependencies
|
30
|
+
### Dependencies
|
29
31
|
|
30
|
-
* Updated [
|
31
|
-
* Updated [
|
32
|
-
*
|
32
|
+
* Updated [Bundler](http://gembundler.com/) to 1.0.3
|
33
|
+
* Updated [Haml](http://haml-lang.com/) to 3.0.22
|
34
|
+
* Updated [Sass](http://sass-lang.com/) to 3.0.22 (bundled with Haml)
|
35
|
+
* Updated [BlueCloth](http://deveiate.org/projects/BlueCloth) to 2.0.9
|
36
|
+
* Updated [Rack::Test](http://github.com/brynary/rack-test) to 0.5.6
|
37
|
+
* Updated [RSpec](http://rspec.info/) to 2.0.1
|
38
|
+
* Updated [YARD](http://yardoc.org/) to 0.5.8
|
39
|
+
* Updated [YARD::Sinatra](http://github.com/rkh/yard-sinatra) to 0.5.1
|
33
40
|
|
34
|
-
|
41
|
+
### Bugs
|
42
|
+
|
43
|
+
* The NOT_FOUND handler no longer renders the 404 template within a layout template.
|
44
|
+
|
45
|
+
Please see {file:CHANGES.mdown} for the historical overview of the project.
|
35
46
|
|
36
47
|
SYNOPSIS
|
37
48
|
--------
|
@@ -61,20 +72,21 @@ REQUIREMENTS
|
|
61
72
|
**Required dependencies**
|
62
73
|
|
63
74
|
* [Ruby](http://www.ruby-lang.org/) 1.9.1
|
75
|
+
* [Bundler](http://gembundler.com/) 1.0.3
|
64
76
|
* [Rack](http://rack.rubyforge.org/) 1.2.1
|
65
77
|
* [Sinatra](http://www.sinatrarb.com/) 1.0
|
66
|
-
* [Haml](http://haml-lang.com/) 3.0.
|
67
|
-
* [Sass](http://sass-lang.com/) 3.0.
|
68
|
-
* [BlueCloth](http://deveiate.org/projects/BlueCloth) 2.0.
|
78
|
+
* [Haml](http://haml-lang.com/) 3.0.22
|
79
|
+
* [Sass](http://sass-lang.com/) 3.0.22 (bundled with Haml)
|
80
|
+
* [BlueCloth](http://deveiate.org/projects/BlueCloth) 2.0.9
|
69
81
|
|
70
82
|
**Optional development dependencies**
|
71
83
|
|
72
84
|
* [Rake](http://rake.rubyforge.org/) 0.8.7 (bundled with Ruby)
|
73
|
-
* [Rack::Test](http://github.com/brynary/rack-test) 0.5.
|
74
|
-
* [RSpec](http://rspec.info/)
|
85
|
+
* [Rack::Test](http://github.com/brynary/rack-test) 0.5.6
|
86
|
+
* [RSpec](http://rspec.info/) 2.0.1
|
75
87
|
* [YARD](http://yardoc.org/) 0.5.8
|
76
|
-
* [YARD::Sinatra](http://github.com/rkh/yard-sinatra) 0.5.
|
77
|
-
* [BlueCloth](http://deveiate.org/projects/BlueCloth) 2.0.
|
88
|
+
* [YARD::Sinatra](http://github.com/rkh/yard-sinatra) 0.5.1
|
89
|
+
* [BlueCloth](http://deveiate.org/projects/BlueCloth) 2.0.9
|
78
90
|
|
79
91
|
INSTALLING
|
80
92
|
----------
|
data/Rakefile
CHANGED
@@ -5,9 +5,9 @@ Mango::Dependencies.warn_at_exit
|
|
5
5
|
###################################################################################################
|
6
6
|
|
7
7
|
begin
|
8
|
-
require "
|
8
|
+
require "rspec/core/rake_task"
|
9
9
|
require "rack/test" # for Rack support
|
10
|
-
|
10
|
+
RSpec::Core::RakeTask.new(:spec)
|
11
11
|
task :default => :spec
|
12
12
|
rescue LoadError => e
|
13
13
|
Mango::Dependencies.create_warning_for(e)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.0.
|
1
|
+
0.5.0.beta2
|
data/lib/mango/application.rb
CHANGED
@@ -114,6 +114,10 @@ module Mango
|
|
114
114
|
set :styles, lambda { File.join(root, "themes", theme, "styles") }
|
115
115
|
set :content, lambda { File.join(root, "content") }
|
116
116
|
|
117
|
+
configure :development do
|
118
|
+
use Mango::Rack::Debugger
|
119
|
+
end
|
120
|
+
|
117
121
|
# Renders the `404.haml` template found within `settings.views` and sends it with 404 HTTP
|
118
122
|
# response.
|
119
123
|
#
|
data/lib/mango/dependencies.rb
CHANGED
@@ -41,11 +41,11 @@ module Mango
|
|
41
41
|
|
42
42
|
# bluecloth is a hidden yard dependency for markdown support
|
43
43
|
DEVELOPMENT_GEMS = {
|
44
|
-
:"rack-test" => "0.5.
|
45
|
-
:rspec => "
|
44
|
+
:"rack-test" => "0.5.6",
|
45
|
+
:rspec => "2.0.1",
|
46
46
|
:yard => "0.5.8",
|
47
|
-
:"yard-sinatra" => "0.5.
|
48
|
-
:bluecloth => "2.0.
|
47
|
+
:"yard-sinatra" => "0.5.1",
|
48
|
+
:bluecloth => "2.0.9"
|
49
49
|
}
|
50
50
|
|
51
51
|
FILE_NAME_TO_GEM_NAME = {
|
@@ -87,9 +87,9 @@ module Mango
|
|
87
87
|
# @example Sample warning message
|
88
88
|
# The following development gem dependencies could not be found. Without them, some available development features are missing:
|
89
89
|
# jeweler --version "1.4.0"
|
90
|
-
# rspec --version "
|
90
|
+
# rspec --version "2.0.1"
|
91
91
|
# yard --version "0.5.3"
|
92
|
-
# bluecloth --version "2.0.
|
92
|
+
# bluecloth --version "2.0.9"
|
93
93
|
def self.render_warnings
|
94
94
|
unless @@warnings_cache.empty?
|
95
95
|
message = []
|
data/lib/mango/runner.rb
CHANGED
@@ -13,6 +13,7 @@ module Mango
|
|
13
13
|
"Creates a new Mango application with a default directory structure and configuration at the path you specify."
|
14
14
|
def create(destination)
|
15
15
|
self.destination_root = destination
|
16
|
+
copy_file(".gitignore", File.join(self.destination_root, ".gitignore"))
|
16
17
|
copy_file("config.ru", File.join(self.destination_root, "config.ru"))
|
17
18
|
copy_file("Gemfile", File.join(self.destination_root, "Gemfile"))
|
18
19
|
copy_file("README.md", File.join(self.destination_root, "README.md"))
|
data/lib/mango/templates/Gemfile
CHANGED
data/lib/mango/version.rb
CHANGED
data/mango.gemspec
CHANGED
@@ -14,18 +14,18 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.required_rubygems_version = ">= 1.3.7"
|
15
15
|
s.rubyforge_project = "mango"
|
16
16
|
|
17
|
-
s.add_runtime_dependency "bundler", "~> 1.0.
|
17
|
+
s.add_runtime_dependency "bundler", "~> 1.0.3"
|
18
18
|
s.add_runtime_dependency "rack", "~> 1.2.1"
|
19
19
|
s.add_runtime_dependency "sinatra", "~> 1.0"
|
20
|
-
s.add_runtime_dependency "haml", "~> 3.0.
|
21
|
-
s.add_runtime_dependency "bluecloth", "~> 2.0.
|
22
|
-
s.add_runtime_dependency "thor", "~> 0.14.
|
20
|
+
s.add_runtime_dependency "haml", "~> 3.0.22"
|
21
|
+
s.add_runtime_dependency "bluecloth", "~> 2.0.9"
|
22
|
+
s.add_runtime_dependency "thor", "~> 0.14.3"
|
23
23
|
|
24
|
-
s.add_development_dependency "rspec", "~>
|
25
|
-
s.add_development_dependency "rack-test", "~> 0.5.
|
24
|
+
s.add_development_dependency "rspec", "~> 2.0.1"
|
25
|
+
s.add_development_dependency "rack-test", "~> 0.5.6"
|
26
26
|
s.add_development_dependency "yard", "~> 0.5.8"
|
27
|
-
s.add_development_dependency "bluecloth", "~> 2.0.
|
28
|
-
s.add_development_dependency "yard-sinatra", "~> 0.5.
|
27
|
+
s.add_development_dependency "bluecloth", "~> 2.0.9"
|
28
|
+
s.add_development_dependency "yard-sinatra", "~> 0.5.1"
|
29
29
|
|
30
30
|
s.files = `git ls-files`.split("\n")
|
31
31
|
s.test_files = `git ls-files -- spec/*`.split("\n")
|
@@ -16,15 +16,15 @@ describe Mango::Application do
|
|
16
16
|
get ""
|
17
17
|
end
|
18
18
|
|
19
|
-
it "
|
19
|
+
it "returns 200 status code" do
|
20
20
|
last_response.should be_ok
|
21
21
|
end
|
22
22
|
|
23
|
-
it "
|
23
|
+
it "sends the correct Content-Type header" do
|
24
24
|
last_response["Content-Type"] == "text/html"
|
25
25
|
end
|
26
26
|
|
27
|
-
it "
|
27
|
+
it "sends the correct body content" do
|
28
28
|
last_response.body.should == <<-EXPECTED
|
29
29
|
<!DOCTYPE html>
|
30
30
|
<html>
|
@@ -50,15 +50,15 @@ describe Mango::Application do
|
|
50
50
|
get "/"
|
51
51
|
end
|
52
52
|
|
53
|
-
it "
|
53
|
+
it "returns 200 status code" do
|
54
54
|
last_response.should be_ok
|
55
55
|
end
|
56
56
|
|
57
|
-
it "
|
57
|
+
it "sends the correct Content-Type header" do
|
58
58
|
last_response["Content-Type"] == "text/html"
|
59
59
|
end
|
60
60
|
|
61
|
-
it "
|
61
|
+
it "sends the correct body content" do
|
62
62
|
last_response.body.should == <<-EXPECTED
|
63
63
|
<!DOCTYPE html>
|
64
64
|
<html>
|
@@ -84,15 +84,15 @@ describe Mango::Application do
|
|
84
84
|
get "/index"
|
85
85
|
end
|
86
86
|
|
87
|
-
it "
|
87
|
+
it "returns 200 status code" do
|
88
88
|
last_response.should be_ok
|
89
89
|
end
|
90
90
|
|
91
|
-
it "
|
91
|
+
it "sends the correct Content-Type header" do
|
92
92
|
last_response["Content-Type"] == "text/html"
|
93
93
|
end
|
94
94
|
|
95
|
-
it "
|
95
|
+
it "sends the correct body content" do
|
96
96
|
last_response.body.should == <<-EXPECTED
|
97
97
|
<!DOCTYPE html>
|
98
98
|
<html>
|
@@ -118,15 +118,15 @@ describe Mango::Application do
|
|
118
118
|
get "/index?foo=bar"
|
119
119
|
end
|
120
120
|
|
121
|
-
it "
|
121
|
+
it "returns 200 status code" do
|
122
122
|
last_response.should be_ok
|
123
123
|
end
|
124
124
|
|
125
|
-
it "
|
125
|
+
it "sends the correct Content-Type header" do
|
126
126
|
last_response["Content-Type"] == "text/html"
|
127
127
|
end
|
128
128
|
|
129
|
-
it "
|
129
|
+
it "sends the correct body content" do
|
130
130
|
last_response.body.should == <<-EXPECTED
|
131
131
|
<!DOCTYPE html>
|
132
132
|
<html>
|
@@ -152,15 +152,15 @@ describe Mango::Application do
|
|
152
152
|
get "/about/"
|
153
153
|
end
|
154
154
|
|
155
|
-
it "
|
155
|
+
it "returns 200 status code" do
|
156
156
|
last_response.should be_ok
|
157
157
|
end
|
158
158
|
|
159
|
-
it "
|
159
|
+
it "sends the correct Content-Type header" do
|
160
160
|
last_response["Content-Type"] == "text/html"
|
161
161
|
end
|
162
162
|
|
163
|
-
it "
|
163
|
+
it "sends the correct body content" do
|
164
164
|
last_response.body.should == <<-EXPECTED
|
165
165
|
<!DOCTYPE html>
|
166
166
|
<html>
|
@@ -186,15 +186,15 @@ describe Mango::Application do
|
|
186
186
|
get "/about/index"
|
187
187
|
end
|
188
188
|
|
189
|
-
it "
|
189
|
+
it "returns 200 status code" do
|
190
190
|
last_response.should be_ok
|
191
191
|
end
|
192
192
|
|
193
|
-
it "
|
193
|
+
it "sends the correct Content-Type header" do
|
194
194
|
last_response["Content-Type"] == "text/html"
|
195
195
|
end
|
196
196
|
|
197
|
-
it "
|
197
|
+
it "sends the correct body content" do
|
198
198
|
last_response.body.should == <<-EXPECTED
|
199
199
|
<!DOCTYPE html>
|
200
200
|
<html>
|
@@ -220,15 +220,15 @@ describe Mango::Application do
|
|
220
220
|
get "/about/us"
|
221
221
|
end
|
222
222
|
|
223
|
-
it "
|
223
|
+
it "returns 200 status code" do
|
224
224
|
last_response.should be_ok
|
225
225
|
end
|
226
226
|
|
227
|
-
it "
|
227
|
+
it "sends the correct Content-Type header" do
|
228
228
|
last_response["Content-Type"] == "text/html"
|
229
229
|
end
|
230
230
|
|
231
|
-
it "
|
231
|
+
it "sends the correct body content" do
|
232
232
|
last_response.body.should == <<-EXPECTED
|
233
233
|
<!DOCTYPE html>
|
234
234
|
<html>
|
@@ -254,15 +254,15 @@ describe Mango::Application do
|
|
254
254
|
get "/turner%2Bhooch"
|
255
255
|
end
|
256
256
|
|
257
|
-
it "
|
257
|
+
it "returns 200 status code" do
|
258
258
|
last_response.should be_ok
|
259
259
|
end
|
260
260
|
|
261
|
-
it "
|
261
|
+
it "sends the correct Content-Type header" do
|
262
262
|
last_response["Content-Type"] == "text/html"
|
263
263
|
end
|
264
264
|
|
265
|
-
it "
|
265
|
+
it "sends the correct body content" do
|
266
266
|
last_response.body.should == <<-EXPECTED
|
267
267
|
<!DOCTYPE html>
|
268
268
|
<html>
|
@@ -288,15 +288,15 @@ describe Mango::Application do
|
|
288
288
|
get "/page_not_found"
|
289
289
|
end
|
290
290
|
|
291
|
-
it "
|
291
|
+
it "returns 404 status code" do
|
292
292
|
last_response.should be_not_found
|
293
293
|
end
|
294
294
|
|
295
|
-
it "
|
295
|
+
it "sends the correct Content-Type header" do
|
296
296
|
last_response["Content-Type"] == "text/html"
|
297
297
|
end
|
298
298
|
|
299
|
-
it "
|
299
|
+
it "sends the correct body content" do
|
300
300
|
last_response.body.should == <<-EXPECTED
|
301
301
|
<!DOCTYPE html>
|
302
302
|
<html>
|
@@ -315,7 +315,7 @@ describe Mango::Application do
|
|
315
315
|
#################################################################################################
|
316
316
|
|
317
317
|
describe "GET /page_with_missing_view" do
|
318
|
-
it "
|
318
|
+
it "raises RuntimeError" do
|
319
319
|
path = File.join(SPEC_APP_ROOT, "themes", "default", "views", "missing_view_template.haml")
|
320
320
|
lambda {
|
321
321
|
get "/page_with_missing_view"
|
@@ -330,15 +330,15 @@ describe Mango::Application do
|
|
330
330
|
get "/../security_hole"
|
331
331
|
end
|
332
332
|
|
333
|
-
it "
|
333
|
+
it "returns 404 status code" do
|
334
334
|
last_response.should be_not_found
|
335
335
|
end
|
336
336
|
|
337
|
-
it "
|
337
|
+
it "sends the correct Content-Type header" do
|
338
338
|
last_response["Content-Type"] == "text/html"
|
339
339
|
end
|
340
340
|
|
341
|
-
it "
|
341
|
+
it "sends the correct body content" do
|
342
342
|
last_response.body.should == <<-EXPECTED
|
343
343
|
<!DOCTYPE html>
|
344
344
|
<html>
|