seatbelt 0.1.1 → 0.2.0
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.
- checksums.yaml +7 -0
- data/.travis.yml +21 -3
- data/CHANGELOG.md +8 -0
- data/Gemfile +5 -2
- data/README.md +9 -3
- data/gemfiles/rails_3.2.gemfile +7 -0
- data/gemfiles/rails_4.0.gemfile +7 -0
- data/lib/seatbelt/assert_content_type.rb +48 -0
- data/lib/seatbelt/assert_json.rb +34 -25
- data/lib/seatbelt/assert_mail.rb +33 -13
- data/lib/seatbelt/version.rb +1 -1
- data/lib/seatbelt.rb +16 -3
- data/seatbelt.gemspec +6 -3
- data/test/assert_content_type_test.rb +46 -0
- data/test/assert_json_old_dsl_test.rb +1 -1
- data/test/assert_json_test.rb +1 -1
- data/test/assert_mail_test.rb +1 -1
- data/test/test_helper.rb +7 -3
- metadata +71 -36
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0c08abe7ab48fe8e3fc676eb5133d7ec3740a1f3
|
4
|
+
data.tar.gz: 586848e2efcbc486e9c3b2b0e070e7cf700aa4b9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: cf5fcac2f269e35a493a5c7a8913e8158f790a5bf1ca43185fe86bc2f392cbb427a0af40417b0609bae78bd8e95c8d927611e6dbebeca00a9690e707bc119051
|
7
|
+
data.tar.gz: ad23351169ea72a4324305241327650fbcec44f241dea7460e7e5ccff46867adabcd3d7445f14d983d0d4978d38f15bc2ed35aeb349fdff52de1eaa6723498f0
|
data/.travis.yml
CHANGED
@@ -1,9 +1,27 @@
|
|
1
1
|
language: ruby
|
2
|
+
|
2
3
|
rvm:
|
3
4
|
- 1.8.7
|
4
5
|
- 1.9.2
|
5
6
|
- 1.9.3
|
6
|
-
-
|
7
|
+
- 2.0.0
|
8
|
+
# - jruby-18mode # JRuby in 1.8 mode
|
7
9
|
- jruby-19mode # JRuby in 1.9 mode
|
8
|
-
- rbx-
|
9
|
-
|
10
|
+
- rbx-2.2.1
|
11
|
+
|
12
|
+
gemfile:
|
13
|
+
- gemfiles/rails_3.2.gemfile
|
14
|
+
- gemfiles/rails_4.0.gemfile
|
15
|
+
|
16
|
+
matrix:
|
17
|
+
allow_failures:
|
18
|
+
- rvm: rbx-2.2.1
|
19
|
+
- rvm: jruby-19mode
|
20
|
+
exclude:
|
21
|
+
- { rvm: 1.8.7, gemfile: gemfiles/rails_4.0.gemfile }
|
22
|
+
- { rvm: 1.9.2, gemfile: gemfiles/rails_4.0.gemfile }
|
23
|
+
- { rvm: 1.9.3, gemfile: gemfiles/rails_4.0.gemfile }
|
24
|
+
- { rvm: jruby-19mode, gemfile: gemfiles/rails_3.2.gemfile }
|
25
|
+
- { rvm: jruby-19mode, gemfile: gemfiles/rails_4.0.gemfile }
|
26
|
+
- { rvm: rbx-2.2.1, gemfile: gemfiles/rails_3.2.gemfile }
|
27
|
+
- { rvm: rbx-2.2.1, gemfile: gemfiles/rails_4.0.gemfile }
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,12 @@
|
|
1
|
-
# Seatbelt [](http://travis-ci.org/alto/seatbelt)
|
2
|
-
|
3
|
-
|
1
|
+
# Seatbelt [](http://travis-ci.org/alto/seatbelt) [](https://codeclimate.com/github/alto/seatbelt)
|
2
|
+
|
3
|
+
Seatbelt provides a number of custom, high-level assertions for Ruby and Ruby on Rails. The assertions work well with Ruby
|
4
|
+
[1.8.7](http://ruby-doc.org/core-1.8.7/),
|
5
|
+
[1.9.2](http://ruby-doc.org/core-1.9.2/), and
|
6
|
+
[1.9.3](http://ruby-doc.org/core-1.9.3/).
|
7
|
+
This includes compatibility with
|
8
|
+
[test/unit](http://ruby-doc.org/stdlib-1.8.7/libdoc/test/unit/rdoc/index.html) and
|
9
|
+
[minitest](http://ruby-doc.org/stdlib-1.9.3/libdoc/minitest/unit/rdoc/index.html).
|
4
10
|
|
5
11
|
## Installation
|
6
12
|
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Seatbelt
|
2
|
+
module AssertContentType
|
3
|
+
|
4
|
+
SUPPORTED_MIME_TYPES = {
|
5
|
+
'html' => 'text/html',
|
6
|
+
'xhtml' => 'text/html',
|
7
|
+
'text' => 'text/plain',
|
8
|
+
'txt' => 'text/plain',
|
9
|
+
'js' => 'text/javascript',
|
10
|
+
'css' => 'text/css',
|
11
|
+
'ics' => 'text/calendar',
|
12
|
+
'csv' => 'text/csv',
|
13
|
+
'xml' => 'application/xml',
|
14
|
+
'rss' => 'application/rss+xml',
|
15
|
+
'atom' => 'application/atom+xml',
|
16
|
+
'yaml' => 'application/x-yaml',
|
17
|
+
'multipart_form' => 'multipart/form-data',
|
18
|
+
'url_encoded_form' => 'application/x-www-form-urlencoded',
|
19
|
+
'json' => 'application/json',
|
20
|
+
'pdf' => 'application/pdf',
|
21
|
+
'xls' => 'application/vnd.ms-excel'
|
22
|
+
}
|
23
|
+
|
24
|
+
def assert_content_type(content_type, header=nil)
|
25
|
+
header = @response.headers["Content-Type"] if header.nil? && @response
|
26
|
+
if header
|
27
|
+
# assert_match /application\/vnd.ms-excel/, @response.header["Content-Type"]
|
28
|
+
assert_match matcher_for(content_type), header
|
29
|
+
else
|
30
|
+
assert false, "nothing to match against!"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def matcher_for(content_type)
|
37
|
+
case content_type
|
38
|
+
when Regexp
|
39
|
+
content_type
|
40
|
+
when String
|
41
|
+
Regexp.new((SUPPORTED_MIME_TYPES[content_type] || content_type).gsub('+', '\\\+'))
|
42
|
+
else
|
43
|
+
raise "type unknown: #{content_type}"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
data/lib/seatbelt/assert_json.rb
CHANGED
@@ -27,26 +27,14 @@ module Seatbelt
|
|
27
27
|
def has(*args, &block)
|
28
28
|
arg = args.shift
|
29
29
|
token = @decoded_json.is_a?(Array) ? @decoded_json.shift : @decoded_json
|
30
|
+
|
30
31
|
case token
|
31
32
|
when Hash
|
32
|
-
|
33
|
-
if second_arg = args.shift
|
34
|
-
case second_arg
|
35
|
-
when Regexp
|
36
|
-
raise_error("element #{token[arg].inspect} does not match #{second_arg.inspect}") if second_arg !~ token[arg]
|
37
|
-
else
|
38
|
-
raise_error("element #{token[arg].inspect} does not match #{second_arg.inspect}") if second_arg != token[arg]
|
39
|
-
end
|
40
|
-
end
|
33
|
+
has_hash(token, arg, args)
|
41
34
|
when Array
|
42
|
-
|
35
|
+
has_array(token, arg)
|
43
36
|
when String
|
44
|
-
|
45
|
-
when Regexp
|
46
|
-
raise_error("element #{arg.inspect} not found") if token !~ arg
|
47
|
-
else
|
48
|
-
raise_error("element #{arg.inspect} not found") if token != arg
|
49
|
-
end
|
37
|
+
has_string(token, arg)
|
50
38
|
when NilClass
|
51
39
|
raise_error("no element left")
|
52
40
|
else
|
@@ -77,20 +65,41 @@ module Seatbelt
|
|
77
65
|
end
|
78
66
|
alias not_element has_not
|
79
67
|
|
80
|
-
|
68
|
+
private
|
81
69
|
|
82
|
-
|
83
|
-
|
84
|
-
|
70
|
+
def raise_error(message)
|
71
|
+
if Object.const_defined?(:MiniTest)
|
72
|
+
raise MiniTest::Assertion.new(message)
|
73
|
+
else
|
74
|
+
raise Test::Unit::AssertionFailedError.new(message)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def has_hash(token, arg, args)
|
79
|
+
raise_error("element #{arg} not found") unless token.keys.include?(arg)
|
80
|
+
if second_arg = args.shift
|
81
|
+
case second_arg
|
82
|
+
when Regexp
|
83
|
+
raise_error("element #{token[arg].inspect} does not match #{second_arg.inspect}") if second_arg !~ token[arg]
|
85
84
|
else
|
86
|
-
|
85
|
+
raise_error("element #{token[arg].inspect} does not match #{second_arg.inspect}") if second_arg != token[arg]
|
87
86
|
end
|
88
87
|
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def has_array(token, arg)
|
91
|
+
raise_error("element #{arg} not found") if token != arg
|
92
|
+
end
|
93
|
+
|
94
|
+
def has_string(token, arg)
|
95
|
+
case arg
|
96
|
+
when Regexp
|
97
|
+
raise_error("element #{arg.inspect} not found") if token !~ arg
|
98
|
+
else
|
99
|
+
raise_error("element #{arg.inspect} not found") if token != arg
|
100
|
+
end
|
101
|
+
end
|
89
102
|
|
90
103
|
end
|
91
104
|
end
|
92
105
|
end
|
93
|
-
|
94
|
-
class Test::Unit::TestCase
|
95
|
-
include Seatbelt::AssertJson
|
96
|
-
end
|
data/lib/seatbelt/assert_mail.rb
CHANGED
@@ -22,33 +22,53 @@ module Seatbelt
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def got_mail?(mail, options={})
|
25
|
-
return false if
|
26
|
-
return false if
|
25
|
+
return false if unexpected_recipient?(mail, options)
|
26
|
+
return false if unexpected_sender?(mail, options)
|
27
|
+
return false if unexpected_subject?(mail, options)
|
28
|
+
return false if unexpected_copy?(mail, options)
|
29
|
+
return false if unexpected_blind_copy?(mail, options)
|
30
|
+
return false if unexpected_body?(mail, options)
|
31
|
+
true
|
32
|
+
end
|
33
|
+
|
34
|
+
def unexpected_recipient?(mail, options)
|
35
|
+
options[:to] && !mail.to.include?(options[:to])
|
36
|
+
end
|
27
37
|
|
38
|
+
def unexpected_sender?(mail, options)
|
39
|
+
options[:from] && !mail.from.include?(options[:from])
|
40
|
+
end
|
41
|
+
|
42
|
+
def unexpected_subject?(mail, options)
|
28
43
|
case options[:subject]
|
29
44
|
when String
|
30
|
-
|
45
|
+
mail.subject != options[:subject]
|
31
46
|
when Regexp
|
32
|
-
|
47
|
+
mail.subject !~ /#{options[:subject]}/
|
48
|
+
else
|
49
|
+
false
|
33
50
|
end
|
51
|
+
end
|
34
52
|
|
35
|
-
|
36
|
-
|
53
|
+
def unexpected_copy?(mail, options)
|
54
|
+
options[:cc] && !mail.cc.include?(options[:cc])
|
55
|
+
end
|
56
|
+
|
57
|
+
def unexpected_blind_copy?(mail, options)
|
58
|
+
options[:bcc] && !mail.bcc.include?(options[:bcc])
|
59
|
+
end
|
60
|
+
|
61
|
+
def unexpected_body?(mail, options)
|
37
62
|
if options[:body]
|
38
63
|
Array(options[:body]).each do |element|
|
39
64
|
if !mail.body.encoded.match(element)
|
40
65
|
# puts "#{element} not found in body: #{mail.body.encoded}"
|
41
|
-
return
|
66
|
+
return true
|
42
67
|
end
|
43
68
|
end
|
44
69
|
end
|
45
|
-
|
70
|
+
false
|
46
71
|
end
|
47
72
|
|
48
73
|
end
|
49
74
|
end
|
50
|
-
if Object.const_defined?(:ActionMailer)
|
51
|
-
class Test::Unit::TestCase
|
52
|
-
include Seatbelt::AssertMail
|
53
|
-
end
|
54
|
-
end
|
data/lib/seatbelt/version.rb
CHANGED
data/lib/seatbelt.rb
CHANGED
@@ -1,7 +1,20 @@
|
|
1
1
|
require "seatbelt/version"
|
2
2
|
require 'seatbelt/assert_json'
|
3
3
|
require 'seatbelt/assert_mail'
|
4
|
+
require 'seatbelt/assert_content_type'
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
|
6
|
+
if defined?(Test)
|
7
|
+
class Test::Unit::TestCase
|
8
|
+
include Seatbelt::AssertContentType if defined?(ActionController)
|
9
|
+
include Seatbelt::AssertJson
|
10
|
+
include Seatbelt::AssertMail if defined?(ActionMailer)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
if defined?(Minitest)
|
15
|
+
class Minitest::Unit::TestCase
|
16
|
+
include Seatbelt::AssertContentType if defined?(ActionController)
|
17
|
+
include Seatbelt::AssertJson
|
18
|
+
include Seatbelt::AssertMail if defined?(ActionMailer)
|
19
|
+
end
|
20
|
+
end
|
data/seatbelt.gemspec
CHANGED
@@ -17,10 +17,13 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.version = Seatbelt::VERSION
|
18
18
|
|
19
19
|
gem.add_dependency 'multi_json'
|
20
|
+
|
20
21
|
gem.add_development_dependency 'rake'
|
21
|
-
gem.add_development_dependency '
|
22
|
-
gem.add_development_dependency '
|
22
|
+
gem.add_development_dependency 'minitest', '4.7.5'
|
23
|
+
gem.add_development_dependency 'turn'
|
23
24
|
gem.add_development_dependency 'travis-lint'
|
24
25
|
gem.add_development_dependency 'json'
|
25
|
-
|
26
|
+
gem.add_development_dependency 'mocha'
|
27
|
+
# gem.add_development_dependency 'debugger'
|
28
|
+
|
26
29
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Seatbelt::AssertContentTypeTest < Minitest::Unit::TestCase
|
4
|
+
include Seatbelt::AssertContentType
|
5
|
+
|
6
|
+
def test_assert_content_type_short
|
7
|
+
Seatbelt::AssertContentType::SUPPORTED_MIME_TYPES.each do |short, long|
|
8
|
+
@response = stub('Response', :headers => {'Content-Type' => "#{long}; charset=utf-8"})
|
9
|
+
assert_content_type short
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_assert_content_type_short_crosscheck
|
14
|
+
Seatbelt::AssertContentType::SUPPORTED_MIME_TYPES.keys.each do |short|
|
15
|
+
@response = stub('Response', :headers => {'Content-Type' => "#{wrong_long_for_short(short)}; charset=utf-8"})
|
16
|
+
assert_assertion_fails do
|
17
|
+
assert_content_type short
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_assert_content_type_long
|
23
|
+
Seatbelt::AssertContentType::SUPPORTED_MIME_TYPES.each do |short, long|
|
24
|
+
@response = stub('Response', :headers => {'Content-Type' => "#{long}; charset=utf-8"})
|
25
|
+
assert_content_type long
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_assert_content_type_long_crosscheck
|
30
|
+
Seatbelt::AssertContentType::SUPPORTED_MIME_TYPES.each do |short, long|
|
31
|
+
@response = stub('Response', :headers => {'Content-Type' => "#{wrong_long_for_short(short)}; charset=utf-8"})
|
32
|
+
assert_assertion_fails do
|
33
|
+
assert_content_type long
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def wrong_long_for_short(short)
|
41
|
+
Seatbelt::AssertContentType::SUPPORTED_MIME_TYPES.values.select do |long|
|
42
|
+
long != Seatbelt::AssertContentType::SUPPORTED_MIME_TYPES[short]
|
43
|
+
end.sort_by { rand }.first
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
data/test/assert_json_test.rb
CHANGED
data/test/assert_mail_test.rb
CHANGED
data/test/test_helper.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'turn/autorun'
|
3
3
|
require 'active_support'
|
4
4
|
require 'action_mailer'
|
5
5
|
require 'json'
|
6
|
+
require 'mocha/setup'
|
6
7
|
|
7
8
|
$:.push File.expand_path("../../lib", __FILE__)
|
8
9
|
require File.dirname(__FILE__) + '/../lib/seatbelt.rb'
|
@@ -10,7 +11,10 @@ require File.dirname(__FILE__) + '/../lib/seatbelt.rb'
|
|
10
11
|
# Requiring custom spec helpers
|
11
12
|
Dir[File.dirname(__FILE__) + "/helpers/**/*.rb"].sort.each { |f| require File.expand_path(f) }
|
12
13
|
|
13
|
-
|
14
|
+
|
15
|
+
Turn.config.format = :dot
|
16
|
+
|
17
|
+
class Minitest::Unit::TestCase
|
14
18
|
def assert_assertion_fails(&block)
|
15
19
|
if Object.const_defined?(:MiniTest)
|
16
20
|
assert_raises(MiniTest::Assertion, &block)
|
metadata
CHANGED
@@ -1,82 +1,113 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: seatbelt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Thorsten Böttger
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2013-12-15 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: multi_json
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: rake
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - '>='
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '0'
|
33
34
|
type: :development
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: activesupport
|
38
|
-
requirement: &70193217096460 !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
37
|
requirements:
|
41
|
-
- -
|
38
|
+
- - '>='
|
42
39
|
- !ruby/object:Gem::Version
|
43
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 4.7.5
|
44
48
|
type: :development
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 4.7.5
|
47
55
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
49
|
-
requirement:
|
50
|
-
none: false
|
56
|
+
name: turn
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
51
58
|
requirements:
|
52
|
-
- -
|
59
|
+
- - '>='
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: '0'
|
55
62
|
type: :development
|
56
63
|
prerelease: false
|
57
|
-
version_requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: travis-lint
|
60
|
-
requirement:
|
61
|
-
none: false
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
62
72
|
requirements:
|
63
|
-
- -
|
73
|
+
- - '>='
|
64
74
|
- !ruby/object:Gem::Version
|
65
75
|
version: '0'
|
66
76
|
type: :development
|
67
77
|
prerelease: false
|
68
|
-
version_requirements:
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: json
|
71
|
-
requirement:
|
72
|
-
none: false
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
73
86
|
requirements:
|
74
|
-
- -
|
87
|
+
- - '>='
|
75
88
|
- !ruby/object:Gem::Version
|
76
89
|
version: '0'
|
77
90
|
type: :development
|
78
91
|
prerelease: false
|
79
|
-
version_requirements:
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: mocha
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
80
111
|
description: Goal is to provide custom, high quality and high level assertions for
|
81
112
|
Ruby and Ruby on Rails
|
82
113
|
email:
|
@@ -92,11 +123,15 @@ files:
|
|
92
123
|
- LICENSE
|
93
124
|
- README.md
|
94
125
|
- Rakefile
|
126
|
+
- gemfiles/rails_3.2.gemfile
|
127
|
+
- gemfiles/rails_4.0.gemfile
|
95
128
|
- lib/seatbelt.rb
|
129
|
+
- lib/seatbelt/assert_content_type.rb
|
96
130
|
- lib/seatbelt/assert_json.rb
|
97
131
|
- lib/seatbelt/assert_mail.rb
|
98
132
|
- lib/seatbelt/version.rb
|
99
133
|
- seatbelt.gemspec
|
134
|
+
- test/assert_content_type_test.rb
|
100
135
|
- test/assert_json_old_dsl_test.rb
|
101
136
|
- test/assert_json_test.rb
|
102
137
|
- test/assert_mail_test.rb
|
@@ -105,29 +140,29 @@ files:
|
|
105
140
|
homepage: http://github.com/alto/seatbelt
|
106
141
|
licenses:
|
107
142
|
- MIT
|
143
|
+
metadata: {}
|
108
144
|
post_install_message:
|
109
145
|
rdoc_options: []
|
110
146
|
require_paths:
|
111
147
|
- lib
|
112
148
|
required_ruby_version: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
149
|
requirements:
|
115
|
-
- -
|
150
|
+
- - '>='
|
116
151
|
- !ruby/object:Gem::Version
|
117
152
|
version: '0'
|
118
153
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
|
-
none: false
|
120
154
|
requirements:
|
121
|
-
- -
|
155
|
+
- - '>='
|
122
156
|
- !ruby/object:Gem::Version
|
123
157
|
version: '0'
|
124
158
|
requirements: []
|
125
159
|
rubyforge_project:
|
126
|
-
rubygems_version: 1.
|
160
|
+
rubygems_version: 2.1.11
|
127
161
|
signing_key:
|
128
|
-
specification_version:
|
162
|
+
specification_version: 4
|
129
163
|
summary: Provide custom assertions for Ruby and Ruby on Rails
|
130
164
|
test_files:
|
165
|
+
- test/assert_content_type_test.rb
|
131
166
|
- test/assert_json_old_dsl_test.rb
|
132
167
|
- test/assert_json_test.rb
|
133
168
|
- test/assert_mail_test.rb
|