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