seatbelt 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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
- - jruby-18mode # JRuby in 1.8 mode
7
+ - 2.0.0
8
+ # - jruby-18mode # JRuby in 1.8 mode
7
9
  - jruby-19mode # JRuby in 1.9 mode
8
- - rbx-18mode
9
- - rbx-19mode
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
@@ -1,5 +1,13 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.2.0
4
+
5
+ * added support for Rails 4 (thanks to [@clod81](https://github.com/clod81))
6
+
7
+ ## 0.1.2
8
+
9
+ * added assert_content_type
10
+
3
11
  ## 0.1.1
4
12
 
5
13
  * assert_mail subject now support regular explicitly (not implicitly anymore)
data/Gemfile CHANGED
@@ -1,4 +1,7 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
+
3
+ gem 'rubysl', :platforms => :rbx
4
+ gem "jruby-openssl", :platforms => :jruby
5
+ gem "rails", "4.0.2"
2
6
 
3
- # Specify your gem's dependencies in seatbelt.gemspec
4
7
  gemspec
data/README.md CHANGED
@@ -1,6 +1,12 @@
1
- # Seatbelt [![Build Status](https://secure.travis-ci.org/alto/seatbelt.png)](http://travis-ci.org/alto/seatbelt)
2
-
3
- Provide a number of custom assertions for Ruby and Ruby on Rails
1
+ # Seatbelt [![Build Status](https://secure.travis-ci.org/alto/seatbelt.png)](http://travis-ci.org/alto/seatbelt) [![Code Climate](https://codeclimate.com/badge.png)](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,7 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem 'rubysl', :platforms => :rbx
4
+ gem "jruby-openssl", :platforms => :jruby
5
+ gem "rails", "3.2.16"
6
+
7
+ gemspec :path => "../"
@@ -0,0 +1,7 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem 'rubysl', :platforms => :rbx
4
+ gem "jruby-openssl", :platforms => :jruby
5
+ gem "rails", "4.0.2"
6
+
7
+ gemspec :path => "../"
@@ -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
@@ -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
- raise_error("element #{arg} not found") unless token.keys.include?(arg)
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
- raise_error("element #{arg} not found") if token != arg
35
+ has_array(token, arg)
43
36
  when String
44
- case arg
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
- private
68
+ private
81
69
 
82
- def raise_error(message)
83
- if Object.const_defined?(:MiniTest)
84
- raise MiniTest::Assertion.new(message)
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
- raise Test::Unit::AssertionFailedError.new(message)
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
@@ -22,33 +22,53 @@ module Seatbelt
22
22
  end
23
23
 
24
24
  def got_mail?(mail, options={})
25
- return false if options[:to] && !mail.to.include?(options[:to])
26
- return false if options[:from] && !mail.from.include?(options[:from])
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
- return false if mail.subject != options[:subject]
45
+ mail.subject != options[:subject]
31
46
  when Regexp
32
- return false if mail.subject !~ /#{options[:subject]}/
47
+ mail.subject !~ /#{options[:subject]}/
48
+ else
49
+ false
33
50
  end
51
+ end
34
52
 
35
- return false if options[:cc] && !mail.cc.include?(options[:cc])
36
- return false if options[:bcc] && !mail.bcc.include?(options[:bcc])
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 false
66
+ return true
42
67
  end
43
68
  end
44
69
  end
45
- true
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
@@ -1,3 +1,3 @@
1
1
  module Seatbelt
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
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
- # module Seatbelt
6
- # # Your code goes here...
7
- # end
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 'activesupport'
22
- gem.add_development_dependency 'actionmailer'
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
- # gem.add_development_dependency 'ruby-debug'
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
@@ -1,6 +1,6 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/test_helper')
2
2
 
3
- class Seatbelt::AssertJsonTest < Test::Unit::TestCase
3
+ class Seatbelt::AssertJsonTest < Minitest::Unit::TestCase
4
4
  include Seatbelt::AssertJson
5
5
 
6
6
  # def test_string
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class Seatbelt::AssertJsonNewDslTest < Test::Unit::TestCase
3
+ class Seatbelt::AssertJsonNewDslTest < Minitest::Unit::TestCase
4
4
  include Seatbelt::AssertJson
5
5
 
6
6
  # def test_string
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class Seatbelt::AssertMailTest < Test::Unit::TestCase
3
+ class Seatbelt::AssertMailTest < Minitest::Unit::TestCase
4
4
 
5
5
  def test_assert_mail
6
6
  Mailer.test.deliver
data/test/test_helper.rb CHANGED
@@ -1,8 +1,9 @@
1
- require 'rubygems'
2
- require 'test/unit'
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
- class Test::Unit::TestCase
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.1.1
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: 2012-06-22 00:00:00.000000000 Z
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: &70193217097980 !ruby/object:Gem::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: *70193217097980
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: &70193217096920 !ruby/object:Gem::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: *70193217096920
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: *70193217096460
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: actionmailer
49
- requirement: &70193217096000 !ruby/object:Gem::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: *70193217096000
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: &70193217095560 !ruby/object:Gem::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: *70193217095560
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: &70193217095120 !ruby/object:Gem::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: *70193217095120
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.8.15
160
+ rubygems_version: 2.1.11
127
161
  signing_key:
128
- specification_version: 3
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