Skip to content

Commit 5dcf229

Browse files
committed
Use minitest instead of test::unit
1 parent 1729d74 commit 5dcf229

14 files changed

Lines changed: 347 additions & 347 deletions

.travis.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@ language: ruby
22
rvm:
33
- 1.8.7
44
- 1.9.3
5-
- 2.1.1
5+
- 2.0.0
6+
- 2.1.5
67
- ree

Gemfile

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,3 @@
44
source 'http://rubygems.org'
55

66
gemspec
7-
8-
group :test do
9-
if RUBY_VERSION < '1.9'
10-
gem 'nokogiri', '~> 1.5.0'
11-
gem 'ruby-debug', '~> 0.10.4'
12-
elsif RUBY_VERSION < '2.0'
13-
gem 'debugger-linecache', '~> 1.2.0'
14-
gem 'debugger', '~> 1.6.4'
15-
elsif RUBY_VERSION < '2.1'
16-
gem 'byebug', '~> 2.1.1'
17-
else
18-
gem 'pry-byebug'
19-
end
20-
21-
gem 'mocha', '~> 0.14', :require => false
22-
gem 'rake', '~> 10'
23-
gem 'shoulda', '~> 2.11'
24-
gem 'systemu', '~> 2'
25-
gem 'test-unit', '~> 3'
26-
gem 'timecop', '<= 0.6.0'
27-
end

ruby-saml.gemspec

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,32 @@ Gem::Specification.new do |s|
2121
s.rdoc_options = ["--charset=UTF-8"]
2222
s.require_paths = ["lib"]
2323
s.rubygems_version = %q{1.3.7}
24+
s.required_ruby_version = '>= 1.8.7'
2425
s.summary = %q{SAML Ruby Tookit}
2526
s.test_files = `git ls-files test/*`.split("\n")
2627

27-
s.add_runtime_dependency("uuid", ["~> 2.3"])
28-
s.add_runtime_dependency("nokogiri", [">= 1.5.0"])
28+
s.add_runtime_dependency('uuid', ['~> 2.3'])
29+
s.add_runtime_dependency('nokogiri', ['~> 1.5.0'])
30+
31+
s.add_development_dependency 'minitest', ['~> 5.5']
32+
s.add_development_dependency 'mocha', ['~> 0.14']
33+
s.add_development_dependency 'rake', ['~> 10']
34+
s.add_development_dependency 'shoulda', ['~> 2.11']
35+
s.add_development_dependency 'systemu', ['~> 2']
36+
s.add_development_dependency 'timecop', ['<= 0.6.0']
37+
38+
if RUBY_VERSION < '1.9'
39+
# 1.8.7
40+
s.add_development_dependency 'ruby-debug', ['~> 0.10.4']
41+
elsif RUBY_VERSION < '2.0'
42+
# 1.9.x
43+
s.add_development_dependency 'debugger-linecache', ['~> 1.2.0']
44+
s.add_development_dependency 'debugger', ['~> 1.6.4']
45+
elsif RUBY_VERSION < '2.1'
46+
# 2.0.x
47+
s.add_development_dependency 'byebug', ['~> 2.1.1']
48+
else
49+
# 2.1.x, 2.2.x
50+
s.add_development_dependency 'pry-byebug'
51+
end
2952
end

test/idp_metadata_parser_test.rb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
require 'net/http'
33
require 'net/https'
44

5-
class IdpMetadataParserTest < Test::Unit::TestCase
5+
class IdpMetadataParserTest < Minitest::Test
66

77
class MockResponse
88
attr_accessor :body
99
end
1010

11-
context "parsing an IdP descriptor file" do
12-
should "extract settings details from xml" do
11+
describe "parsing an IdP descriptor file" do
12+
it "extract settings details from xml" do
1313
idp_metadata_parser = OneLogin::RubySaml::IdpMetadataParser.new
1414

1515
settings = idp_metadata_parser.parse(idp_metadata)
@@ -20,8 +20,8 @@ class MockResponse
2020
end
2121
end
2222

23-
context "download and parse IdP descriptor file" do
24-
setup do
23+
describe "download and parse IdP descriptor file" do
24+
before do
2525
mock_response = MockResponse.new
2626
mock_response.body = idp_metadata
2727
@url = "https://example.com"
@@ -33,7 +33,7 @@ class MockResponse
3333
end
3434

3535

36-
should "extract settings from remote xml" do
36+
it "extract settings from remote xml" do
3737
idp_metadata_parser = OneLogin::RubySaml::IdpMetadataParser.new
3838
settings = idp_metadata_parser.parse_remote(@url)
3939

@@ -43,7 +43,7 @@ class MockResponse
4343
assert_equal OpenSSL::SSL::VERIFY_PEER, @http.verify_mode
4444
end
4545

46-
should "accept self signed certificate if insturcted" do
46+
it "accept self signed certificate if insturcted" do
4747
idp_metadata_parser = OneLogin::RubySaml::IdpMetadataParser.new
4848
settings = idp_metadata_parser.parse_remote(@url, false)
4949

test/logoutrequest_test.rb

Lines changed: 19 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
require File.expand_path(File.join(File.dirname(__FILE__), "test_helper"))
22

3-
class RequestTest < Test::Unit::TestCase
3+
class RequestTest < Minitest::Test
44

5-
context "Logoutrequest" do
6-
settings = OneLogin::RubySaml::Settings.new
5+
describe "Logoutrequest" do
6+
let(:settings) { OneLogin::RubySaml::Settings.new }
77

8-
should "create the deflated SAMLRequest URL parameter" do
8+
it "create the deflated SAMLRequest URL parameter" do
99
settings.idp_slo_target_url = "http://unauth.com/logout"
1010
settings.name_identifier_value = "f00f00"
1111

@@ -17,16 +17,16 @@ class RequestTest < Test::Unit::TestCase
1717
assert_match /^<samlp:LogoutRequest/, inflated
1818
end
1919

20-
should "support additional params" do
21-
20+
it "support additional params" do
21+
settings.idp_slo_target_url = "http://example.com"
2222
unauth_url = OneLogin::RubySaml::Logoutrequest.new.create(settings, { :hello => nil })
2323
assert unauth_url =~ /&hello=$/
2424

2525
unauth_url = OneLogin::RubySaml::Logoutrequest.new.create(settings, { :foo => "bar" })
2626
assert unauth_url =~ /&foo=bar$/
2727
end
2828

29-
should "set sessionindex" do
29+
it "set sessionindex" do
3030
settings.idp_slo_target_url = "http://example.com"
3131
sessionidx = UUID.new.generate
3232
settings.sessionindex = sessionidx
@@ -38,7 +38,7 @@ class RequestTest < Test::Unit::TestCase
3838
assert_match %r(#{sessionidx}</samlp:SessionIndex>), inflated
3939
end
4040

41-
should "set name_identifier_value" do
41+
it "set name_identifier_value" do
4242
settings = OneLogin::RubySaml::Settings.new
4343
settings.idp_slo_target_url = "http://example.com"
4444
settings.name_identifier_format = "transient"
@@ -52,8 +52,8 @@ class RequestTest < Test::Unit::TestCase
5252
assert_match %r(#{name_identifier_value}</saml:NameID>), inflated
5353
end
5454

55-
context "when the target url doesn't contain a query string" do
56-
should "create the SAMLRequest parameter correctly" do
55+
describe "when the target url doesn't contain a query string" do
56+
it "create the SAMLRequest parameter correctly" do
5757
settings = OneLogin::RubySaml::Settings.new
5858
settings.idp_slo_target_url = "http://example.com"
5959
settings.name_identifier_value = "f00f00"
@@ -63,8 +63,8 @@ class RequestTest < Test::Unit::TestCase
6363
end
6464
end
6565

66-
context "when the target url contains a query string" do
67-
should "create the SAMLRequest parameter correctly" do
66+
describe "when the target url contains a query string" do
67+
it "create the SAMLRequest parameter correctly" do
6868
settings = OneLogin::RubySaml::Settings.new
6969
settings.idp_slo_target_url = "http://example.com?field=value"
7070
settings.name_identifier_value = "f00f00"
@@ -74,8 +74,8 @@ class RequestTest < Test::Unit::TestCase
7474
end
7575
end
7676

77-
context "consumation of logout may need to track the transaction" do
78-
should "have access to the request uuid" do
77+
describe "consumation of logout may need to track the transaction" do
78+
it "have access to the request uuid" do
7979
settings = OneLogin::RubySaml::Settings.new
8080
settings.idp_slo_target_url = "http://example.com?field=value"
8181
settings.name_identifier_value = "f00f00"
@@ -88,8 +88,8 @@ class RequestTest < Test::Unit::TestCase
8888
end
8989
end
9090

91-
context "when the settings indicate to sign (embebed) the logout request" do
92-
should "created a signed logout request" do
91+
describe "when the settings indicate to sign (embebed) the logout request" do
92+
it "created a signed logout request" do
9393
settings = OneLogin::RubySaml::Settings.new
9494
settings.idp_slo_target_url = "http://example.com?field=value"
9595
settings.name_identifier_value = "f00f00"
@@ -106,7 +106,7 @@ class RequestTest < Test::Unit::TestCase
106106
assert_match %r[<ds:SignatureValue>([a-zA-Z0-9/+=]+)</ds:SignatureValue>], inflated
107107
end
108108

109-
should "create a signed logout request with 256 digest and signature methods" do
109+
it "create a signed logout request with 256 digest and signature methods" do
110110
settings = OneLogin::RubySaml::Settings.new
111111
settings.compress_request = false
112112
settings.idp_slo_target_url = "http://example.com?field=value"
@@ -128,8 +128,8 @@ class RequestTest < Test::Unit::TestCase
128128
end
129129
end
130130

131-
context "when the settings indicate to sign the logout request" do
132-
should "create a signature parameter" do
131+
describe "when the settings indicate to sign the logout request" do
132+
it "create a signature parameter" do
133133
settings = OneLogin::RubySaml::Settings.new
134134
settings.compress_request = false
135135
settings.idp_slo_target_url = "http://example.com?field=value"
@@ -153,16 +153,4 @@ class RequestTest < Test::Unit::TestCase
153153
end
154154

155155
end
156-
157-
def decode_saml_request_payload(unauth_url)
158-
payload = CGI.unescape(unauth_url.split("SAMLRequest=").last)
159-
decoded = Base64.decode64(payload)
160-
161-
zstream = Zlib::Inflate.new(-Zlib::MAX_WBITS)
162-
inflated = zstream.inflate(decoded)
163-
zstream.finish
164-
zstream.close
165-
inflated
166-
end
167-
168156
end

test/logoutresponse_test.rb

Lines changed: 22 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,36 @@
11
require File.expand_path(File.join(File.dirname(__FILE__), "test_helper"))
22
require 'rexml/document'
33
require 'responses/logoutresponse_fixtures'
4-
class RubySamlTest < Test::Unit::TestCase
54

6-
context "Logoutresponse" do
7-
context "#new" do
8-
should "raise an exception when response is initialized with nil" do
5+
class RubySamlTest < Minitest::Test
6+
7+
describe "Logoutresponse" do
8+
describe "#new" do
9+
it "raise an exception when response is initialized with nil" do
910
assert_raises(ArgumentError) { OneLogin::RubySaml::Logoutresponse.new(nil) }
1011
end
11-
should "default to empty settings" do
12+
it "default to empty settings" do
1213
logoutresponse = OneLogin::RubySaml::Logoutresponse.new( valid_response)
1314
assert_nil logoutresponse.settings
1415
end
15-
should "accept constructor-injected settings" do
16+
it "accept constructor-injected settings" do
1617
logoutresponse = OneLogin::RubySaml::Logoutresponse.new(valid_response, settings)
17-
assert_not_nil logoutresponse.settings
18+
refute_nil logoutresponse.settings
1819
end
19-
should "accept constructor-injected options" do
20+
it "accept constructor-injected options" do
2021
logoutresponse = OneLogin::RubySaml::Logoutresponse.new(valid_response, nil, { :foo => :bar} )
2122
assert !logoutresponse.options.empty?
2223
end
23-
should "support base64 encoded responses" do
24+
it "support base64 encoded responses" do
2425
expected_response = valid_response
2526
logoutresponse = OneLogin::RubySaml::Logoutresponse.new(Base64.encode64(expected_response), settings)
2627

2728
assert_equal expected_response, logoutresponse.response
2829
end
2930
end
3031

31-
context "#validate" do
32-
should "validate the response" do
32+
describe "#validate" do
33+
it "validate the response" do
3334
in_relation_to_request_id = random_id
3435

3536
logoutresponse = OneLogin::RubySaml::Logoutresponse.new(valid_response({:uuid => in_relation_to_request_id}), settings)
@@ -42,35 +43,35 @@ class RubySamlTest < Test::Unit::TestCase
4243
assert logoutresponse.success?
4344
end
4445

45-
should "invalidate responses with wrong id when given option :matches_uuid" do
46+
it "invalidate responses with wrong id when given option :matches_uuid" do
4647

4748
expected_request_id = "_some_other_expected_uuid"
4849
opts = { :matches_request_id => expected_request_id}
4950

5051
logoutresponse = OneLogin::RubySaml::Logoutresponse.new(valid_response, settings, opts)
5152

5253
assert !logoutresponse.validate
53-
assert_not_equal expected_request_id, logoutresponse.in_response_to
54+
refute_equal expected_request_id, logoutresponse.in_response_to
5455
end
5556

56-
should "invalidate responses with wrong request status" do
57+
it "invalidate responses with wrong request status" do
5758
logoutresponse = OneLogin::RubySaml::Logoutresponse.new(unsuccessful_response, settings)
5859

5960
assert !logoutresponse.validate
6061
assert !logoutresponse.success?
6162
end
6263
end
6364

64-
context "#validate!" do
65-
should "validates good responses" do
65+
describe "#validate!" do
66+
it "validates good responses" do
6667
in_relation_to_request_id = random_id
6768

6869
logoutresponse = OneLogin::RubySaml::Logoutresponse.new(valid_response({:uuid => in_relation_to_request_id}), settings)
6970

7071
logoutresponse.validate!
7172
end
7273

73-
should "raises validation error when matching for wrong request id" do
74+
it "raises validation error when matching for wrong request id" do
7475

7576
expected_request_id = "_some_other_expected_id"
7677
opts = { :matches_request_id => expected_request_id}
@@ -80,37 +81,30 @@ class RubySamlTest < Test::Unit::TestCase
8081
assert_raises(OneLogin::RubySaml::ValidationError) { logoutresponse.validate! }
8182
end
8283

83-
should "raise validation error for wrong request status" do
84+
it "raise validation error for wrong request status" do
8485
logoutresponse = OneLogin::RubySaml::Logoutresponse.new(unsuccessful_response, settings)
8586

8687
assert_raises(OneLogin::RubySaml::ValidationError) { logoutresponse.validate! }
8788
end
8889

89-
should "raise validation error when in bad state" do
90+
it "raise validation error when in bad state" do
9091
# no settings
9192
logoutresponse = OneLogin::RubySaml::Logoutresponse.new(unsuccessful_response)
9293
assert_raises(OneLogin::RubySaml::ValidationError) { logoutresponse.validate! }
9394
end
9495

95-
should "raise validation error when in lack of issuer setting" do
96+
it "raise validation error when in lack of issuer setting" do
9697
bad_settings = settings
9798
bad_settings.issuer = nil
9899
logoutresponse = OneLogin::RubySaml::Logoutresponse.new(unsuccessful_response, bad_settings)
99100
assert_raises(OneLogin::RubySaml::ValidationError) { logoutresponse.validate! }
100101
end
101102

102-
should "raise error for invalid xml" do
103+
it "raise error for invalid xml" do
103104
logoutresponse = OneLogin::RubySaml::Logoutresponse.new(invalid_xml_response, settings)
104105

105106
assert_raises(OneLogin::RubySaml::ValidationError) { logoutresponse.validate! }
106107
end
107108
end
108-
109109
end
110-
111-
# logoutresponse fixtures
112-
def random_id
113-
"_#{UUID.new.generate}"
114-
end
115-
116110
end

0 commit comments

Comments
 (0)