riot_rails 0.0.6 → 0.0.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.
data/Rakefile CHANGED
@@ -32,7 +32,7 @@ begin
32
32
  gem.email = "gus@gusg.us"
33
33
  gem.homepage = "http://github.com/thumblemonks/riot_rails"
34
34
  gem.authors = ["Justin 'Gus' Knowlden"]
35
- gem.add_development_dependency("riot", ">= 0.9.7")
35
+ gem.add_dependency("riot", ">= 0.10.2")
36
36
  gem.add_development_dependency("activerecord", ">= 2.3.2")
37
37
  end
38
38
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.6
1
+ 0.0.7
@@ -1,94 +1,85 @@
1
- module Riot #:nodoc:
2
- module ActionController #:nodoc:
1
+ class Riot::Assertion
2
+ # Asserts that the body of the response equals or matches the expected expression. Expects actual to
3
+ # be the controller.
4
+ #
5
+ # controller.renders("a bunch of html")
6
+ # controller.renders(/bunch of/)
7
+ assertion(:renders) do |actual, expected|
8
+ actual_body = actual.response.body
9
+ if (expected.kind_of?(Regexp) ? (actual_body =~ expected) : (expected == actual_body))
10
+ pass
11
+ else
12
+ verb = expected.kind_of?(Regexp) ? "match" : "equal"
13
+ fail("expected response body #{actual_body.inspect} to #{verb} #{expected.inspect}")
14
+ end
15
+ end
3
16
 
4
- module AssertionMacros
5
- # Asserts that the body of the response equals or matches the expected expression. Expects actual to
6
- # be the controller.
7
- #
8
- # controller.renders("a bunch of html")
9
- # controller.renders(/bunch of/)
10
- def renders(expected)
11
- actual_body = actual.response.body
12
- if expected.kind_of?(Regexp)
13
- msg = "expected response body #{actual_body.inspect} to match #{expected.inspect}"
14
- actual_body =~ expected || fail(msg)
15
- else
16
- msg = "expected response body #{actual_body.inspect} to equal #{expected.inspect}"
17
- expected == actual_body || fail(msg)
18
- end
19
- end
17
+ # Asserts that the name you provide is the basename of the rendered template. For instance, if you
18
+ # expect the rendered template is named "foo_bar.html.haml" and you pass "foo_bar" into
19
+ # renders_template, the assertion would pass. If instead you pass "foo" into renders_template, the
20
+ # assertion will fail. Using Rails' assert_template both assertions would pass
21
+ #
22
+ # controlling :things
23
+ # controller.renders_template(:index)
24
+ # controller.renders_template("index")
25
+ # controller.renders_template("index.erb") # fails even if that's the name of the template
26
+ assertion(:renders_template) do |actual, expected_name|
27
+ name = expected_name.to_s
28
+ actual_template_path = actual.response.rendered[:template].to_s
29
+ actual_template_name = File.basename(actual_template_path)
30
+ msg = "expected template #{name.inspect}, not #{actual_template_path.inspect}"
31
+ actual_template_name.to_s.match(/^#{name}(\.\w+)*$/) ? pass : fail(msg)
32
+ end
20
33
 
21
- # Asserts that the name you provide is the basename of the rendered template. For instance, if you
22
- # expect the rendered template is named "foo_bar.html.haml" and you pass "foo_bar" into
23
- # renders_template, the assertion would pass. If instead you pass "foo" into renders_template, the
24
- # assertion will fail. Using Rails' assert_template both assertions would pass
25
- #
26
- # controlling :things
27
- # controller.renders_template(:index)
28
- # controller.renders_template("index")
29
- # controller.renders_template("index.erb") # fails even if that's the name of the template
30
- def renders_template(name)
31
- name = name.to_s
32
- actual_template_path = actual.response.rendered[:template].to_s
33
- actual_template_name = File.basename(actual_template_path)
34
- msg = "expected template #{name.inspect}, not #{actual_template_path.inspect}"
35
- actual_template_name.to_s.match(/^#{name}(\.\w+)*$/) || fail(msg)
36
- end
34
+ # Asserts that the HTTP response code equals your expectation. You can use the symbolized form of the
35
+ # status code or the integer code itself. Not currently supporting status ranges; such as: +:success+,
36
+ # +:redirect+, etc.
37
+ #
38
+ # controller.response_code(:ok)
39
+ # controller.response_code(200)
40
+ #
41
+ # controller.response_code(:not_found)
42
+ # controller.response_code(404)
43
+ #
44
+ # # A redirect
45
+ # controller.response_code(:found)
46
+ # controller.response_code(302)
47
+ #
48
+ # See +ActionController::StatusCodes+ for the list of available codes.
49
+ assertion(:response_code) do |actual, expected_code|
50
+ if expected_code.kind_of?(Symbol)
51
+ expected_code = ::ActionController::StatusCodes::SYMBOL_TO_STATUS_CODE[expected_code]
52
+ end
53
+ actual_code = actual.response.response_code
54
+ expected_code == actual_code ? pass : fail("expected response code #{expected_code}, not #{actual_code}")
55
+ end
37
56
 
38
- # Asserts that the HTTP response code equals your expectation. You can use the symbolized form of the
39
- # status code or the integer code itself. Not currently supporting status ranges; such as: +:success+,
40
- # +:redirect+, etc.
41
- #
42
- # controller.response_code(:ok)
43
- # controller.response_code(200)
44
- #
45
- # controller.response_code(:not_found)
46
- # controller.response_code(404)
47
- #
48
- # # A redirect
49
- # controller.response_code(:found)
50
- # controller.response_code(302)
51
- #
52
- # See +ActionController::StatusCodes+ for the list of available codes.
53
- def response_code(expected_code)
54
- if expected_code.kind_of?(Symbol)
55
- expected_code = ::ActionController::StatusCodes::SYMBOL_TO_STATUS_CODE[expected_code]
56
- end
57
- actual_code = actual.response.response_code
58
- expected_code == actual_code || fail("expected response code #{expected_code}, not #{actual_code}")
59
- end
57
+ # Asserts that the response from an action is a redirect and that the path or URL matches your
58
+ # expectations. If the response code is not in the 300s, the assertion will fail. If the reponse code
59
+ # is fine, but the redirect-to path or URL do not exactly match your expectation, the assertion will
60
+ # fail.
61
+ #
62
+ # +redirected_to+ expects you to provide your expected path in a lambda. This is so you can use named
63
+ # routes, which are - as it turns out - handy. It's also what I would expect to be able to do.
64
+ #
65
+ # controlling :people
66
+ # setup do
67
+ # post :create, :person { ... }
68
+ # end
69
+ #
70
+ # controller.redirected_to { person_path(...) }
71
+ #
72
+ # PS: There is a difference between saying +named_route_path+ and +named_route_url+ and Riot Rails will
73
+ # be very strict (read: annoying) about it :)
74
+ assertion(:redirected_to) do |actual, expected_redirect|
75
+ actual_response_code = actual.response.response_code
76
+ if (300...400).member?(actual_response_code)
77
+ actual_redirect = actual.url_for(actual.response.redirected_to)
78
+ msg = "expected to redirect to <#{expected_redirect}>, not <#{actual_redirect}>"
79
+ expected_redirect == actual_redirect ? pass : fail(msg)
80
+ else
81
+ fail("expected response to be a redirect, but was #{actual_response_code}")
82
+ end
83
+ end
60
84
 
61
- # Asserts that the response from an action is a redirect and that the path or URL matches your
62
- # expectations. If the response code is not in the 300s, the assertion will fail. If the reponse code
63
- # is fine, but the redirect-to path or URL do not exactly match your expectation, the assertion will
64
- # fail.
65
- #
66
- # +redirected_to+ expects you to provide your expected path in a block. This is so you can use named
67
- # routes, which is - as it turns out - handy. It's also what I would expect to be able to do.
68
- #
69
- # controlling :people
70
- # setup do
71
- # post :create, :person { ... }
72
- # end
73
- #
74
- # controller.redirected_to { person_path(...) }
75
- #
76
- # PS: There is a difference between saying +named_route_path+ and +named_route_url+ and Riot Rails will
77
- # be very strict (read: annoying) about it :)
78
- def redirected_to(&expectation_block)
79
- actual_response_code = actual.response.response_code
80
- if (300...400).member?(actual_response_code)
81
- expected_redirect = actual.url_for(situation.instance_eval(&expectation_block))
82
- actual_redirect = actual.url_for(actual.response.redirected_to)
83
- msg = "expected to redirect to <#{expected_redirect}>, not <#{actual_redirect}>"
84
- expected_redirect == actual_redirect || fail(msg)
85
- else
86
- fail("expected response to be a redirect, but was #{actual_response_code}")
87
- end
88
- end
89
- end # AssertionMacros
90
-
91
- end # ActionController
92
- end # Riot
93
-
94
- Riot::Assertion.instance_eval { include Riot::ActionController::AssertionMacros }
85
+ end # Riot::Assertion
@@ -28,16 +28,16 @@ module Riot #:nodoc:
28
28
  # controlling :foos
29
29
  # setup { get :index }
30
30
  #
31
- # controller.response_status(:found)
32
- # controller.redirected_to { new_foo_path }
31
+ # asserts_controller.response_status(:found)
32
+ # asserts_controller.redirected_to { new_foo_path }
33
33
  # end
34
34
  #
35
35
  # Works the same as if you wrote the following assertions:
36
36
  #
37
- # asserts("controller") { @controller }.response_status(:found)
38
- # asserts("controller") { @controller }.redirected_to { new_foo_path }
39
- def controller
40
- asserts("controller") { @controller }
37
+ # asserts("controller") { controller }.response_status(:found)
38
+ # asserts("controller") { controller }.redirected_to { new_foo_path }
39
+ def asserts_controller
40
+ asserts("controller") { controller }
41
41
  end
42
42
  end # ContextMacros
43
43
 
@@ -1,107 +1,102 @@
1
- module Riot
2
- module ActiveRecord
1
+ class Riot::Assertion
3
2
 
4
- module AssertionMacros
3
+ # An ActiveRecord assertion that expects to fail when a given attribute is validated after a nil value
4
+ # is provided to it.
5
+ #
6
+ # context "a User" do
7
+ # setup { User.new }
8
+ # topic.validates_presence_of(:name)
9
+ # end
10
+ assertion(:validates_presence_of) do |actual, attribute|
11
+ msg = "expected to validate presence of #{attribute.inspect}"
12
+ error_from_writing_value(actual, attribute, nil) ? pass : fail(msg)
13
+ end
5
14
 
6
- # An ActiveRecord assertion that expects to fail when a given attribute is validated after a nil value
7
- # is provided to it.
8
- #
9
- # context "a User" do
10
- # setup { User.new }
11
- # topic.validates_presence_of(:name)
12
- # end
13
- def validates_presence_of(attribute)
14
- msg = "expected to validate presence of #{attribute.inspect}"
15
- error_from_writing_value(actual, attribute, nil) || fail(msg)
16
- end
17
-
18
- # An ActiveRecord assertion that expects to pass with a given value or set of values for a given
19
- # attribute.
20
- #
21
- # context "a User" do
22
- # setup { User.new }
23
- # topic.allows_values_for :email, "a@b.cd"
24
- # topic.allows_values_for :email, "a@b.cd", "e@f.gh"
25
- # end
26
- def allows_values_for(attribute, *values)
27
- bad_values = []
28
- values.each do |value|
29
- bad_values << value if error_from_writing_value(actual, attribute, value)
30
- end
31
- msg = "expected #{attribute.inspect} to allow value(s) #{bad_values.inspect}"
32
- fail(msg) unless bad_values.empty?
33
- end
15
+ # An ActiveRecord assertion that expects to pass with a given value or set of values for a given
16
+ # attribute.
17
+ #
18
+ # context "a User" do
19
+ # setup { User.new }
20
+ # topic.allows_values_for :email, "a@b.cd"
21
+ # topic.allows_values_for :email, "a@b.cd", "e@f.gh"
22
+ # end
23
+ assertion(:allows_values_for) do |actual, attribute, *values|
24
+ bad_values = []
25
+ values.each do |value|
26
+ bad_values << value if error_from_writing_value(actual, attribute, value)
27
+ end
28
+ msg = "expected #{attribute.inspect} to allow value(s) #{bad_values.inspect}"
29
+ bad_values.empty? ? pass : fail(msg)
30
+ end
34
31
 
35
- # An ActiveRecord assertion that expects to fail with a given value or set of values for a given
36
- # attribute.
37
- #
38
- # context "a User" do
39
- # setup { User.new }
40
- # topic.does_not_allow_values_for :email, "a"
41
- # topic.does_not_allow_values_for :email, "a@b", "e f@g.h"
42
- # end
43
- def does_not_allow_values_for(attribute, *values)
44
- good_values = []
45
- values.each do |value|
46
- good_values << value unless error_from_writing_value(actual, attribute, value)
47
- end
48
- msg = "expected #{attribute.inspect} not to allow value(s) #{good_values.inspect}"
49
- fail(msg) unless good_values.empty?
50
- end
32
+ # An ActiveRecord assertion that expects to fail with a given value or set of values for a given
33
+ # attribute.
34
+ #
35
+ # context "a User" do
36
+ # setup { User.new }
37
+ # topic.does_not_allow_values_for :email, "a"
38
+ # topic.does_not_allow_values_for :email, "a@b", "e f@g.h"
39
+ # end
40
+ assertion(:does_not_allow_values_for) do |actual, attribute, *values|
41
+ good_values = []
42
+ values.each do |value|
43
+ good_values << value unless error_from_writing_value(actual, attribute, value)
44
+ end
45
+ msg = "expected #{attribute.inspect} not to allow value(s) #{good_values.inspect}"
46
+ good_values.empty? ? pass : fail(msg)
47
+ end
51
48
 
52
- # An ActiveRecord assertion that expects to fail with an attribute is not valid for record because the
53
- # value of the attribute is not unique. Requires the topic of the context to be a created record; one
54
- # that returns false for a call to +new_record?+.
55
- #
56
- # context "a User" do
57
- # setup { User.create(:email => "a@b.cde", ... ) }
58
- # topic.validates_uniqueness_of :email
59
- # end
60
- def validates_uniqueness_of(attribute)
61
- actual_record = actual
62
- if actual_record.new_record?
63
- fail("topic is not a new record when testing uniqueness of #{attribute}")
64
- else
65
- copied_model = actual_record.class.new
66
- actual_record.attributes.each do |dup_attribute, dup_value|
67
- copied_model.write_attribute(dup_attribute, dup_value)
68
- end
69
- copied_value = actual_record.read_attribute(attribute)
70
- msg = "expected to fail because #{attribute.inspect} is not unique"
71
- error_from_writing_value(copied_model, attribute, copied_value) || fail(msg)
72
- end
49
+ # An ActiveRecord assertion that expects to fail with an attribute is not valid for record because the
50
+ # value of the attribute is not unique. Requires the topic of the context to be a created record; one
51
+ # that returns false for a call to +new_record?+.
52
+ #
53
+ # context "a User" do
54
+ # setup { User.create(:email => "a@b.cde", ... ) }
55
+ # topic.validates_uniqueness_of :email
56
+ # end
57
+ assertion(:validates_uniqueness_of) do |actual, attribute|
58
+ actual_record = actual
59
+ if actual_record.new_record?
60
+ fail("topic is not a new record when testing uniqueness of #{attribute}")
61
+ else
62
+ copied_model = actual_record.class.new
63
+ actual_record.attributes.each do |dup_attribute, dup_value|
64
+ copied_model.write_attribute(dup_attribute, dup_value)
73
65
  end
66
+ copied_value = actual_record.read_attribute(attribute)
67
+ msg = "expected to fail because #{attribute.inspect} is not unique"
68
+ error_from_writing_value(copied_model, attribute, copied_value) ? pass : fail(msg)
69
+ end
70
+ end
74
71
 
75
- # An ActiveRecord assertion macro that expects to pass when a given attribute is defined as +has_many+
76
- # association. Will fail if an association is not defined for the attribute and if the association is
77
- # not +has_many.
78
- #
79
- # context "a Room" do
80
- # setup { Room.new }
81
- #
82
- # topic.has_many(:doors)
83
- # topic.has_many(:floors) # should probably fail given our current universe :)
84
- # end
85
- def has_many(attribute)
86
- reflection = actual.class.reflect_on_association(attribute)
87
- static_msg = "expected #{attribute.inspect} to be a has_many association, but was "
88
- if reflection.nil?
89
- fail(static_msg + "not")
90
- elsif "has_many" != reflection.macro.to_s
91
- fail(static_msg + "a #{reflection.macro} instead")
92
- end
93
- end
94
- private
95
-
96
- def error_from_writing_value(model, attribute, value)
97
- model.write_attribute(attribute, value)
98
- model.valid?
99
- model.errors.on(attribute)
100
- end
72
+ # An ActiveRecord assertion macro that expects to pass when a given attribute is defined as +has_many+
73
+ # association. Will fail if an association is not defined for the attribute and if the association is
74
+ # not +has_many.jekyll
75
+ #
76
+ # context "a Room" do
77
+ # setup { Room.new }
78
+ #
79
+ # topic.has_many(:doors)
80
+ # topic.has_many(:floors) # should probably fail given our current universe :)
81
+ # end
82
+ assertion(:has_many) do |actual, attribute|
83
+ reflection = actual.class.reflect_on_association(attribute)
84
+ static_msg = "expected #{attribute.inspect} to be a has_many association, but was "
85
+ if reflection.nil?
86
+ fail(static_msg + "not")
87
+ elsif "has_many" != reflection.macro.to_s
88
+ fail(static_msg + "a #{reflection.macro} instead")
89
+ else
90
+ pass
91
+ end
92
+ end
101
93
 
102
- end # AssertionMacros
94
+ protected
103
95
 
104
- end # ActiveRecord
105
- end # Riot
96
+ def self.error_from_writing_value(model, attribute, value)
97
+ model.write_attribute(attribute, value)
98
+ model.valid?
99
+ model.errors.on(attribute)
100
+ end
106
101
 
107
- Riot::Assertion.instance_eval { include Riot::ActiveRecord::AssertionMacros }
102
+ end # Riot::Assertion
data/riot_rails.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{riot_rails}
8
- s.version = "0.0.6"
8
+ s.version = "0.0.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Justin 'Gus' Knowlden"]
12
- s.date = %q{2009-10-18}
12
+ s.date = %q{2009-11-27}
13
13
  s.description = %q{Riot specific test support for Rails apps. Protest the slow app.}
14
14
  s.email = %q{gus@gusg.us}
15
15
  s.extra_rdoc_files = [
@@ -30,7 +30,6 @@ Gem::Specification.new do |s|
30
30
  "lib/riot/rails.rb",
31
31
  "rails/init.rb",
32
32
  "riot_rails.gemspec",
33
- "test/action_controller/action_assigns_variable_test.rb",
34
33
  "test/action_controller/controller_context_test.rb",
35
34
  "test/action_controller/redirected_to_test.rb",
36
35
  "test/action_controller/renders_template_test.rb",
@@ -51,8 +50,7 @@ Gem::Specification.new do |s|
51
50
  s.rubygems_version = %q{1.3.5}
52
51
  s.summary = %q{Riot specific test support for Rails apps}
53
52
  s.test_files = [
54
- "test/action_controller/action_assigns_variable_test.rb",
55
- "test/action_controller/controller_context_test.rb",
53
+ "test/action_controller/controller_context_test.rb",
56
54
  "test/action_controller/redirected_to_test.rb",
57
55
  "test/action_controller/renders_template_test.rb",
58
56
  "test/action_controller/renders_test.rb",
@@ -71,14 +69,14 @@ Gem::Specification.new do |s|
71
69
  s.specification_version = 3
72
70
 
73
71
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
74
- s.add_development_dependency(%q<riot>, [">= 0.9.7"])
72
+ s.add_runtime_dependency(%q<riot>, [">= 0.10.2"])
75
73
  s.add_development_dependency(%q<activerecord>, [">= 2.3.2"])
76
74
  else
77
- s.add_dependency(%q<riot>, [">= 0.9.7"])
75
+ s.add_dependency(%q<riot>, [">= 0.10.2"])
78
76
  s.add_dependency(%q<activerecord>, [">= 2.3.2"])
79
77
  end
80
78
  else
81
- s.add_dependency(%q<riot>, [">= 0.9.7"])
79
+ s.add_dependency(%q<riot>, [">= 0.10.2"])
82
80
  s.add_dependency(%q<activerecord>, [">= 2.3.2"])
83
81
  end
84
82
  end
@@ -3,65 +3,22 @@ require 'teststrap'
3
3
  class FoosController < ActionController::Base
4
4
  end
5
5
 
6
- context "controlling in a context" do
7
-
8
- setup do
9
- @ctx = Riot::Context.new("foo", Riot::NilReport.new)
10
- @ctx.controlling :foos
11
- @ctx.situation
12
- end
13
-
14
- topic.assigns(:controller)
15
- topic.assigns(:request)
16
- topic.assigns(:response)
17
-
18
- context "the assigned controller" do
19
- setup { topic.controller }
20
-
21
- topic.kind_of(FoosController)
22
-
23
- should("have an empty params hash") do
24
- topic.params
25
- end.equals({})
26
-
27
- should("return a test request when asking for request") do
28
- topic.request
29
- end.kind_of(::ActionController::TestRequest)
30
- end # the assigned controller
31
-
32
- context "the assigned request" do
33
- setup { topic.request }
34
- topic.kind_of(::ActionController::TestRequest)
35
- end # the assigned request
36
-
37
- context "the assigned response" do
38
- setup { topic.response }
39
- topic.kind_of(::ActionController::TestResponse)
40
- end # the assigned response
41
-
42
- context "calling controller" do
43
- setup { @ctx.controller }
44
-
45
- topic.kind_of(Riot::Assertion)
46
-
47
- asserts("assertion name") { topic.description }.equals("foo asserts controller")
48
-
49
- should("return the controller as the actual value") do
50
- topic.actual
51
- end.kind_of(FoosController)
52
- end # calling controller
6
+ context "A controller test" do
7
+ controlling :foos
53
8
 
54
- end # controlling in a context
9
+ asserts_controller.kind_of(FoosController)
55
10
 
56
- context "a controller test" do
57
- controlling :foos
11
+ asserts("request is accessible") { request }.kind_of(::ActionController::TestRequest)
12
+ asserts("response is accessible") { response }.kind_of(::ActionController::TestResponse)
13
+ asserts("params is accessible") { controller.params }.equals({})
58
14
 
59
- asserts("situation") { self }.respond_to(:get)
60
- asserts("situation") { self }.respond_to(:post)
61
- asserts("situation") { self }.respond_to(:put)
62
- asserts("situation") { self }.respond_to(:delete)
15
+ asserts("http method shortcut for get") { self }.respond_to(:get)
16
+ asserts("http method shortcut for post") { self }.respond_to(:post)
17
+ asserts("http method shortcut for put") { self }.respond_to(:put)
18
+ asserts("http method shortcut for delete") { self }.respond_to(:delete)
63
19
 
64
- asserts "an unknown action" do
20
+ asserts("an unknown action call") do
65
21
  get :burberry
66
22
  end.raises(ActionController::UnknownAction, "No action responded to burberry")
67
- end # a controller
23
+
24
+ end # a controller test
@@ -1,60 +1,41 @@
1
1
  require 'teststrap'
2
2
 
3
3
  class RedirectedToController < ActionController::Base
4
- def index; redirect_to new_gremlin_path; end
5
- def show; render :text => ""; end
6
- end
4
+ def index
5
+ redirect_to new_gremlin_path
6
+ end
7
7
 
8
- context "asserting the redirect of an action" do
8
+ def show
9
+ render :text => ""
10
+ end
11
+ end
9
12
 
13
+ context "Asserting the redirect of an action" do
10
14
  setup do
11
- context = Riot::Context.new("redirected to", Riot::NilReport.new)
12
- context.controlling :redirected_to
15
+ @situation = Riot::Situation.new
16
+ context = Riot::Context.new("redirected to") {}
17
+ context.controlling(:redirected_to).last.run(@situation)
13
18
  context
14
19
  end
15
20
 
16
21
  context "when doing an actual redirect" do
22
+ setup_for_assertion_test { get :index }
17
23
 
18
- setup do
19
- topic.setup { get :index }
20
- topic
24
+ assertion_test_passes("when expected url matches actual redirect url") do
25
+ topic.asserts_controller.redirected_to { new_gremlin_path }
21
26
  end
22
27
 
23
- should "pass when expected url matches actual redirect url" do
24
- assertion = topic.controller
25
- assertion.redirected_to { new_gremlin_path }
26
- assertion.passed?
28
+ assertion_test_fails("when expected url does not exactly match actual redirect url",
29
+ "expected to redirect to <http://test.host/gremlins/new>, not </gremlins/new>") do
30
+ topic.asserts_controller.redirected_to { new_gremlin_url }
27
31
  end
28
-
29
- context "and expected url does not match actual redirect url exactly" do
30
- setup do
31
- assertion = topic.controller
32
- assertion.redirected_to { new_gremlin_url }
33
- assertion
34
- end
35
-
36
- asserts("topic failed") { topic.failed? }
37
-
38
- asserts("topic message") do
39
- topic.result.message
40
- end.matches(%r[expected to redirect to <http://test.host/gremlins/new>, not </gremlins/new>])
41
- end # and expected url does not match actual redirect url exactly
42
-
43
32
  end # when doing an actual redirect
44
33
 
45
34
  context "when not actually doing a redirect" do
46
- setup do
47
- topic.setup { get :show }
48
- assertion = topic.controller
49
- assertion.redirected_to { new_gremlin_path }
50
- assertion
35
+ setup_for_assertion_test { get :show }
36
+ assertion_test_fails("with message about expecting a redirect",
37
+ "expected response to be a redirect, but was 200") do
38
+ topic.asserts_controller.redirected_to { new_gremlin_path }
51
39
  end
52
-
53
- asserts("topic failed") { topic.failed? }
54
-
55
- asserts("topic message") do
56
- topic.result.message
57
- end.matches(%r[expected response to be a redirect, but was 200])
58
40
  end # when not actually doing a redirect
59
-
60
- end # asserting the redirect of an action
41
+ end # Asserting the redirect of an action
@@ -5,89 +5,53 @@ class RenderedTemplatesController < ActionController::Base
5
5
  def text_me; render :text => "blah"; end
6
6
  end
7
7
 
8
- context "asserting the rendered template for an action" do
9
-
8
+ context "Asserting the rendered template for an action" do
10
9
  setup do
11
- context = Riot::Context.new("rendered template", Riot::NilReport.new)
12
- context.controlling :rendered_templates
10
+ @situation = Riot::Situation.new
11
+ context = Riot::Context.new("rendered_template") {}
12
+ context.controlling(:rendered_templates).last.run(@situation)
13
13
  context
14
14
  end
15
15
 
16
16
  context "that rendered a template" do
17
- setup do
18
- topic.setup { get :foo_bar }
19
- topic
20
- end
17
+ setup_for_assertion_test { get :foo_bar }
21
18
 
22
- should "pass when rendered template name matches expectation" do
23
- assertion = topic.controller
24
- assertion.renders_template('foo_bar')
25
- assertion.passed?
19
+ assertion_test_passes("when rendered template name matches expectation") do
20
+ topic.asserts_controller.renders_template('foo_bar')
26
21
  end
27
22
 
28
- context "when rendered template does not match expectation" do
29
- setup do
30
- assertion = topic.controller
31
- assertion.renders_template('bar_foo')
32
- assertion
33
- end
34
-
35
- asserts("topic failed") { topic.failed? }
36
-
37
- asserts("topic message") do
38
- topic.result.message
39
- end.matches(/expected template "bar_foo", not "rendered_templates\/foo_bar.html.erb"/)
40
- end # when rendered template does not match expectation
41
-
23
+ assertion_test_fails("when rendered template does not match expectation",
24
+ %Q{expected template "bar_foo", not "rendered_templates/foo_bar.html.erb"}) do
25
+ topic.asserts_controller.renders_template('bar_foo')
26
+ end
42
27
  end # that rendered a template
43
28
 
44
- context "that did not render a template as expected" do
45
- setup do
46
- topic.setup { get :text_me }
47
- topic
48
- end
29
+ context "that did not render a template, as was expected" do
30
+ setup_for_assertion_test { get :text_me }
49
31
 
50
- should "pass when providing nil as expectation" do
51
- assertion = topic.controller
52
- assertion.renders_template(nil)
53
- assertion.passed?
32
+ assertion_test_passes("when providing nil as expectation") do
33
+ topic.asserts_controller.renders_template(nil)
54
34
  end
55
35
 
56
- should "pass when providing empty string as expectation" do
57
- assertion = topic.controller
58
- assertion.renders_template("")
59
- assertion.passed?
36
+ assertion_test_passes("when providing empty string as expectation") do
37
+ topic.asserts_controller.renders_template("")
60
38
  end
61
- end # that did not render a template as expected
39
+ end # that did not render a template, as was expected
62
40
 
63
41
  context "that did not render a template but expected one" do
64
- setup do
65
- topic.setup { get :text_me }
66
- assertion = topic.controller
67
- assertion.renders_template('text_me')
68
- assertion
42
+ setup_for_assertion_test { get :text_me }
43
+ assertion_test_fails("with message", %Q{expected template "text_me", not ""}) do
44
+ topic.asserts_controller.renders_template('text_me')
69
45
  end
70
-
71
- asserts("topic failed") { topic.failed? }
72
-
73
- asserts("topic message") do
74
- topic.result.message
75
- end.matches(/expected template "text_me", not ""/)
76
46
  end # that did not render a template but expected one
77
47
 
78
48
  context "that rendered a template with a partial match on template name" do
79
- setup do
80
- topic.setup { get :foo_bar }
81
- assertion = topic.controller
82
- assertion.renders_template('foo')
83
- assertion
84
- end
85
-
86
- asserts("topic failed") { topic.failed? }
49
+ setup_for_assertion_test { get :foo_bar }
87
50
 
88
- asserts("topic message") do
89
- topic.result.message
90
- end.matches(/expected template "foo", not "rendered_templates\/foo_bar.html.erb"/)
51
+ assertion_test_fails("with message",
52
+ %Q{expected template "foo", not "rendered_templates/foo_bar.html.erb"}) do
53
+ topic.asserts_controller.renders_template('foo')
54
+ end
91
55
  end # that rendered a template with a partial match on template name
92
56
 
93
- end # asserting the rendered template for an action
57
+ end # Asserting the rendered template for an action
@@ -4,53 +4,27 @@ class RendersController < ActionController::Base
4
4
  def index; render :text => "Yo mama"; end
5
5
  end
6
6
 
7
- context "asserting the body of a response" do
8
-
7
+ context "Asserting the body of a response" do
9
8
  setup do
10
- context = Riot::Context.new("renders", Riot::NilReport.new)
11
- context.controlling :renders
12
- context.setup { get :index }
9
+ @situation = Riot::Situation.new
10
+ context = Riot::Context.new("renders") {}
11
+ context.controlling(:renders).last.run(@situation)
12
+ context.setup { get :index }.last.run(@situation)
13
13
  context
14
14
  end
15
15
 
16
- should "assert rendered action body equals expected" do
17
- assertion = topic.controller
18
- assertion.renders("Yo mama")
19
- assertion.passed?
20
- end
21
-
22
- context "when rendered action body does not equal expected" do
23
- setup do
24
- assertion = topic.controller
25
- assertion.renders("Yo")
26
- assertion
27
- end
28
-
29
- asserts("topic failed") { topic.failed? }
16
+ assertion_test_passes("when body equals expected") { topic.asserts_controller.renders("Yo mama") }
30
17
 
31
- asserts("topic message") do
32
- topic.result.message
33
- end.matches(/expected response body "Yo mama" to equal "Yo"/)
34
- end # when rendered action body does not equal expected
35
-
36
- should "assert rendered action body matches expected" do
37
- assertion = topic.controller
38
- assertion.renders(/mama/)
39
- assertion.passed?
18
+ assertion_test_fails("when rendered action body does not equal expected",
19
+ %Q{expected response body "Yo mama" to equal "Yo"}) do
20
+ topic.asserts_controller.renders("Yo")
40
21
  end
41
22
 
42
- context "when rendered action body does not match expected" do
43
- setup do
44
- assertion = topic.controller
45
- assertion.renders(/obama/)
46
- assertion
47
- end
48
-
49
- asserts("topic failed") { topic.failed? }
23
+ assertion_test_passes("when body matches expected") { topic.asserts_controller.renders(/mama/) }
50
24
 
51
- asserts("topic message") do
52
- topic.result.message
53
- end.matches(/expected response body "Yo mama" to match \/obama\//)
54
- end # when rendered action body does not match expected
25
+ assertion_test_fails("when rendered action body does not match expected",
26
+ %Q{expected response body "Yo mama" to match /obama/}) do
27
+ topic.asserts_controller.renders(/obama/)
28
+ end
55
29
 
56
- end # asserting the body of a response
30
+ end # Asserting the body of a response
@@ -6,83 +6,35 @@ class ResponseCodesController < ActionController::Base
6
6
  def make_me; render :text => "", :status => 201; end
7
7
  end
8
8
 
9
- context "asserting the response status for an action" do
10
-
9
+ context "Asserting the response status for an action" do
11
10
  setup do
12
- context = Riot::Context.new("response status", Riot::NilReport.new)
13
- context.controlling :response_codes
11
+ @situation = Riot::Situation.new
12
+ context = Riot::Context.new("response status") {}
13
+ context.controlling(:response_codes).last.run(@situation)
14
14
  context
15
15
  end
16
16
 
17
17
  context "returning OK" do
18
- setup do
19
- topic.setup { get :ok_go }
20
- topic
21
- end
18
+ setup_for_assertion_test { get :ok_go }
22
19
 
23
- should "pass when asked if :ok" do
24
- assertion = topic.controller
25
- assertion.response_code(:ok)
26
- assertion.passed?
27
- end
20
+ assertion_test_passes("when asked if :ok") { topic.asserts_controller.response_code(:ok) }
21
+ assertion_test_passes("when asked if 200") { topic.asserts_controller.response_code(200) }
28
22
 
29
- should "pass when asked if 200" do
30
- assertion = topic.controller
31
- assertion.response_code(200)
32
- assertion.passed?
23
+ assertion_test_fails("when CONTINUE returned instead", %Q{expected response code 100, not 200}) do
24
+ topic.asserts_controller.response_code(100)
33
25
  end
34
-
35
- context "but expected to return CONTINUE" do
36
- setup do
37
- assertion = topic.controller
38
- assertion.response_code(100)
39
- assertion
40
- end
41
-
42
- asserts("topic failed") { topic.failed? }
43
-
44
- asserts("topic message") do
45
- topic.result.message
46
- end.matches(/expected response code 100, not 200/)
47
- end # but expected to return CONTINUE
48
26
  end # returning OK
49
27
 
50
28
  context "that is redirecting" do
51
- setup do
52
- topic.setup { get :fffound }
53
- topic
54
- end
55
-
56
- should "pass when asked if :ok" do
57
- assertion = topic.controller
58
- assertion.response_code(:found)
59
- assertion.passed?
60
- end
61
-
62
- should "pass when asked if 200" do
63
- assertion = topic.controller
64
- assertion.response_code(302)
65
- assertion.passed?
66
- end
29
+ setup_for_assertion_test { get :fffound }
30
+ assertion_test_passes("when asked if :ok") { topic.asserts_controller.response_code(:found) }
31
+ assertion_test_passes("when asked if 200") { topic.asserts_controller.response_code(302) }
67
32
  end # that is redirecting
68
33
 
69
34
  context "that has explicit status" do
70
- setup do
71
- topic.setup { get :make_me }
72
- topic
73
- end
74
-
75
- should "pass when asked if :created" do
76
- assertion = topic.controller
77
- assertion.response_code(:created)
78
- assertion.passed?
79
- end
80
-
81
- should "pass when asked if 202" do
82
- assertion = topic.controller
83
- assertion.response_code(201)
84
- assertion.passed?
85
- end
35
+ setup_for_assertion_test { get :make_me }
36
+ assertion_test_passes("when asked if :created") { topic.asserts_controller.response_code(:created) }
37
+ assertion_test_passes("when asked if 202") {topic.asserts_controller.response_code(201) }
86
38
  end # that has explicit status
87
39
 
88
- end # asserting the status of a response
40
+ end # Asserting the status of a response
@@ -1,36 +1,35 @@
1
1
  require 'teststrap'
2
2
 
3
- context "allows_values_for" do
4
- setup_and_run_context("when attribute allows a value", 1, 0, 0) do |test_ctx|
5
- test_ctx.setup { Room.new }
6
- test_ctx.topic.allows_values_for :email, "a@b.cd"
7
- end
8
-
9
- setup_and_run_context("when attribute allows multiple values", 1, 0, 0) do |test_ctx|
10
- test_ctx.setup { Room.new }
11
- test_ctx.topic.allows_values_for :email, "a@b.cd", "e@f.gh"
12
- end
13
-
14
- setup_and_run_context("when attribute is provided a valid and an invalid value", 0, 1, 0) do |test_ctx|
15
- test_ctx.setup { Room.new }
16
- test_ctx.topic.allows_values_for :email, "a", "e@f.gh"
17
- end
18
- end # allows_values_for
19
-
20
- context "does_not_allow_values_for" do
21
- setup_and_run_context("when attribute does not allow a value", 1, 0, 0) do |test_ctx|
22
- test_ctx.setup { Room.new }
23
- test_ctx.topic.does_not_allow_values_for :email, "a"
24
- test_ctx.assertions.each {|a| STDOUT.puts a.raised if a.errored?}
25
- end
26
-
27
- setup_and_run_context("when attribute does not allow multiple values", 1, 0, 0) do |test_ctx|
28
- test_ctx.setup { Room.new }
29
- test_ctx.topic.does_not_allow_values_for :email, "a", "e"
30
- end
31
-
32
- setup_and_run_context("when attribute is provided a valid and an invalid value", 0, 1, 0) do |test_ctx|
33
- test_ctx.setup { Room.new }
34
- test_ctx.topic.does_not_allow_values_for :email, "a", "e@f.gh"
35
- end
36
- end # does_not_allow_values_for
3
+ context "The allow_values_for assertion macro" do
4
+ setup_test_context
5
+ setup { topic.asserts("room") { Room.new } }
6
+
7
+ should("pass when attribute allows a value") do
8
+ topic.allows_values_for(:email, "a@b.cd").run(Riot::Situation.new)
9
+ end.equals([:pass])
10
+
11
+ should("pass when attribute allows multiple values") do
12
+ topic.allows_values_for(:email, "a@b.cd", "e@f.gh").run(Riot::Situation.new)
13
+ end.equals([:pass])
14
+
15
+ should("fail when attribute is provided a valid and an invalid value") do
16
+ topic.allows_values_for(:email, "a", "e@f.gh").run(Riot::Situation.new)
17
+ end.equals([:fail, %Q{expected :email to allow value(s) ["a"]}])
18
+ end # The allow_values_for assertion macro
19
+
20
+ context "The does_not_allow_values_for assertion macro" do
21
+ setup_test_context
22
+ setup { topic.asserts("room") { Room.new } }
23
+
24
+ should("pass when attribute does not allow a value") do
25
+ topic.does_not_allow_values_for(:email, "a").run(Riot::Situation.new)
26
+ end.equals([:pass])
27
+
28
+ should("pass when attribute does not allow multiple values") do
29
+ topic.does_not_allow_values_for(:email, "a", "e").run(Riot::Situation.new)
30
+ end.equals([:pass])
31
+
32
+ should("fail when attribute is provided a valid and an invalid value") do
33
+ topic.does_not_allow_values_for(:email, "a", "e@f.gh").run(Riot::Situation.new)
34
+ end.equals([:fail, %Q{expected :email not to allow value(s) ["e@f.gh"]}])
35
+ end # The does_not_allow_values_for assertion macro
@@ -1,46 +1,18 @@
1
1
  require 'teststrap'
2
2
 
3
- context "testing has_many" do
4
-
5
- setup do
6
- context = Riot::Context.new("has_many test context", Riot::NilReport.new)
7
- context.setup { Room.new }
8
- context.topic
9
- end
10
-
11
- context "when record has a has_many association defined for attribute" do
12
- setup do
13
- topic.has_many(:doors)
14
- topic
15
- end
16
-
17
- asserts("assertion passed") { topic.passed? }
18
- end # when record has a has_many association defined for attribute
19
-
20
- context "when record does not have a has_many association defined for attribute" do
21
- setup do
22
- topic.has_many(:windows)
23
- topic
24
- end
25
-
26
- asserts("assertion failed") { topic.failed? }
27
-
28
- asserts("failure message") do
29
- topic.result.message
30
- end.matches(/expected :windows to be a has_many association, but was not/)
31
- end # when record does not have a has_many association defined for attribute
32
-
33
- context "when attribute is not a has_many, but is a has_one association" do
34
- setup do
35
- topic.has_many(:floor)
36
- topic
37
- end
38
-
39
- asserts("assertion failed") { topic.failed? }
40
-
41
- asserts("failure message") do
42
- topic.result.message
43
- end.matches(/expected :floor to be a has_many association, but was a has_one instead/)
44
- end # when attribute is not a has_many, but is a has_one association
45
-
46
- end # testing has_many
3
+ context "The has_many assertion macro" do
4
+ setup_test_context
5
+ setup { topic.asserts("room") { Room.new } }
6
+
7
+ should("pass when record has a has_many association defined for attribute") do
8
+ topic.has_many(:doors).run(Riot::Situation.new)
9
+ end.equals([:pass])
10
+
11
+ should("fail when record does not have a has_many association defined for attribute") do
12
+ topic.has_many(:windows).run(Riot::Situation.new)
13
+ end.equals([:fail, "expected :windows to be a has_many association, but was not"])
14
+
15
+ should("fail when attribute is not a has_many, but is a has_one association") do
16
+ topic.has_many(:floor).run(Riot::Situation.new)
17
+ end.equals([:fail, "expected :floor to be a has_many association, but was a has_one instead"])
18
+ end # The has_many assertion macro
@@ -1,13 +1,14 @@
1
1
  require 'teststrap'
2
2
 
3
- context "validates_presence_of" do
4
- setup_and_run_context("when attribute requires presence", 1, 0, 0) do |test_ctx|
5
- test_ctx.setup { Room.new }
6
- test_ctx.topic.validates_presence_of(:location)
7
- end
3
+ context "The validates_presence_of assertion macro" do
4
+ setup_test_context
5
+ setup { topic.asserts("room") { Room.new } }
8
6
 
9
- setup_and_run_context("when attribute does not require presence", 0, 1, 0) do |test_ctx|
10
- test_ctx.setup { Room.new }
11
- test_ctx.topic.validates_presence_of(:contents)
12
- end
13
- end # validates_presence_of
7
+ should("pass when attribute requires presence") do
8
+ topic.validates_presence_of(:location).run(Riot::Situation.new)
9
+ end.equals([:pass])
10
+
11
+ should("fail when attribute does not require presence") do
12
+ topic.validates_presence_of(:contents).run(Riot::Situation.new)
13
+ end.equals([:fail, "expected to validate presence of :contents"])
14
+ end # The validates_presence_of assertion macro
@@ -1,20 +1,23 @@
1
1
  require 'teststrap'
2
2
 
3
- context "validates_uniqueness_of" do
3
+ context "The validates_uniqueness_of assertion macro" do
4
+ setup_test_context
4
5
 
5
- setup_and_run_context("without a persisted record", 0, 1, 0) do |test_ctx|
6
- test_ctx.setup { Room.new(:email => "foo@bar.baz", :foo => "what") }
7
- test_ctx.topic.validates_uniqueness_of :email
8
- end
6
+ should("fail without a persisted record") do
7
+ topic.asserts("room") do
8
+ Room.new(:email => "foo@bar.baz", :foo => "what")
9
+ end.validates_uniqueness_of(:email).run(Riot::Situation.new)
10
+ end.equals([:fail, "topic is not a new record when testing uniqueness of email"])
9
11
 
10
- setup_and_run_context("with a persisted record", 1, 0, 0) do |test_ctx|
11
- test_ctx.setup { Room.create_with_good_data(:email => "foo@bar.baz") }
12
- test_ctx.topic.validates_uniqueness_of :email
13
- end
12
+ should("pass with a persisted record") do
13
+ topic.asserts("room") do
14
+ Room.create_with_good_data(:email => "foo@bar.baz")
15
+ end.validates_uniqueness_of(:email).run(Riot::Situation.new)
16
+ end.equals([:pass])
14
17
 
15
- setup_and_run_context("with a persisted record but not validating uniqueness", 0, 1, 0) do |test_ctx|
16
- test_ctx.setup { Room.create_with_good_data(:email => "goo@car.caz") }
17
- test_ctx.topic.validates_uniqueness_of :foo
18
- end
19
-
20
- end # validates_uniqueness_of
18
+ should("fail with a persisted record but not validating uniqueness") do
19
+ topic.asserts("room") do
20
+ Room.new(:email => "goo@car.caz")
21
+ end.validates_uniqueness_of(:foo).run(Riot::Situation.new)
22
+ end.equals([:fail, "topic is not a new record when testing uniqueness of foo"])
23
+ end # The validates_uniqueness_of assertion macro
data/test/teststrap.rb CHANGED
@@ -1,3 +1,5 @@
1
+ $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
+
1
3
  require 'rubygems'
2
4
  require 'active_record'
3
5
  require 'action_controller'
@@ -59,29 +61,74 @@ require 'riot/rails'
59
61
 
60
62
  module RiotRails
61
63
  module Context
62
- def asserts_passes_failures_errors(passes=0, failures=0, errors=0)
63
- should("pass #{passes} test(s)") { topic.passes }.equals(passes)
64
- should("fail #{failures} test(s)") { topic.failures }.equals(failures)
65
- should("error on #{errors} test(s)") { topic.errors }.equals(errors)
64
+ # def asserts_passes_failures_errors(passes=0, failures=0, errors=0)
65
+ # should("pass #{passes} test(s)") { topic.passes }.equals(passes)
66
+ # should("fail #{failures} test(s)") { topic.failures }.equals(failures)
67
+ # should("error on #{errors} test(s)") { topic.errors }.equals(errors)
68
+ # end
69
+ #
70
+ # def setup_with_test_context(&block)
71
+ # setup do
72
+ # @test_report = Riot::SilentReporter.new
73
+ # @test_context = Riot::Context.new("test context", @test_report)
74
+ # yield(@test_context)
75
+ # @test_context.report
76
+ # @test_report
77
+ # end
78
+ # end
79
+ #
80
+ # def setup_and_run_context(name, *passes_failures_errors, &block)
81
+ # context name do
82
+ # setup_with_test_context(&block)
83
+ # asserts_passes_failures_errors(*passes_failures_errors)
84
+ # end
85
+ # end
86
+
87
+ def setup_test_context
88
+ setup { Riot::Context.new("test context") {} }
66
89
  end
67
90
 
68
- def setup_with_test_context(&block)
91
+ def setup_for_assertion_test(&block)
69
92
  setup do
70
- @test_report = Riot::NilReport.new
71
- @test_context = Riot::Context.new("test context", @test_report)
72
- yield(@test_context)
73
- @test_context.report
74
- @test_report
93
+ topic.setup(&block).last.run(@situation)
94
+ topic
75
95
  end
76
96
  end
97
+
98
+ def assertion_test_passes(description, &block)
99
+ should("pass #{description}") do
100
+ instance_eval(&block).run(@situation)
101
+ end.equals([:pass])
102
+ end
77
103
 
78
- def setup_and_run_context(name, *passes_failures_errors, &block)
79
- context name do
80
- setup_with_test_context(&block)
81
- asserts_passes_failures_errors(*passes_failures_errors)
82
- end
104
+ def assertion_test_fails(description, failure_message, &block)
105
+ should("fail #{description}") do
106
+ instance_eval(&block).run(@situation)
107
+ end.equals([:fail, failure_message])
83
108
  end
84
- end
85
- end
109
+
110
+ end # Context
111
+ end # RiotRails
86
112
 
87
113
  Riot::Context.instance_eval { include RiotRails::Context }
114
+
115
+ #
116
+ ## Let's see if we can get this way working sometime in the future
117
+
118
+ # def get(action, options={})
119
+ # @env = {}
120
+ # @request = ActionController::TestRequest.new(@env)
121
+ # # @request = Rack::MockRequest.new(@app)
122
+ # # @response = @request.request("GET", path, options)
123
+ # # request = ActionController::TestRequest.new(@env)
124
+ # @request.query_parameters["action"] = action
125
+ # @env["action_controller.rescue.request"] = @request
126
+ # @env["action_controller.rescue.response"] = ActionController::TestResponse.new
127
+ # @app.call(@env)
128
+ # end
129
+
130
+ # setup do
131
+ # DashboardsController.instance_eval { include ActionController::TestCase::RaiseActionExceptions }
132
+ # @controller_class = DashboardsController
133
+ # @app = DashboardsController
134
+ # end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riot_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin 'Gus' Knowlden
@@ -9,18 +9,18 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-18 00:00:00 -05:00
12
+ date: 2009-11-27 00:00:00 -06:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: riot
17
- type: :development
17
+ type: :runtime
18
18
  version_requirement:
19
19
  version_requirements: !ruby/object:Gem::Requirement
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 0.9.7
23
+ version: 0.10.2
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activerecord
@@ -55,7 +55,6 @@ files:
55
55
  - lib/riot/rails.rb
56
56
  - rails/init.rb
57
57
  - riot_rails.gemspec
58
- - test/action_controller/action_assigns_variable_test.rb
59
58
  - test/action_controller/controller_context_test.rb
60
59
  - test/action_controller/redirected_to_test.rb
61
60
  - test/action_controller/renders_template_test.rb
@@ -98,7 +97,6 @@ signing_key:
98
97
  specification_version: 3
99
98
  summary: Riot specific test support for Rails apps
100
99
  test_files:
101
- - test/action_controller/action_assigns_variable_test.rb
102
100
  - test/action_controller/controller_context_test.rb
103
101
  - test/action_controller/redirected_to_test.rb
104
102
  - test/action_controller/renders_template_test.rb