http_redirect_test 1.0.0 → 1.0.1
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 +4 -4
- metadata +2 -8
- data/test/integration_test.rb +0 -69
- data/test/test_app/test_redirect_server.rb +0 -28
- data/test/test_helper.rb +0 -5
- data/test/unit/http_redirect_test_test.rb +0 -20
- data/test/unit/redirect_check_test.rb +0 -82
- data/test/unit/resource_path_test.rb +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fdd78b6375f2b10f55086e406ac77edc594f0bf4
|
4
|
+
data.tar.gz: 573b470079c18697b89cd17517e3c1eeab5a05c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 18f9c82924efbf58027a1e4007ea87cff5b1a8ec946fdaa172957253a0a50b74ae4ab85951c0110ed847d2cf10e8072b14292324d8fda627c48f51d8d5930449
|
7
|
+
data.tar.gz: 8b8a657179793b9396a62a3035d835071f959e49fbdedd3a5a88016c8e5d6e6e0b7218b4b4be6ff7ab46fe82cd7fbbb9293548ef1da9a9f38740bf2d32ed8a93
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: http_redirect_test
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt House
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -76,12 +76,6 @@ files:
|
|
76
76
|
- lib/http_redirect_test/http_redirect_test.rb
|
77
77
|
- lib/http_redirect_test/redirect_check.rb
|
78
78
|
- lib/http_redirect_test/resource_path.rb
|
79
|
-
- test/integration_test.rb
|
80
|
-
- test/test_app/test_redirect_server.rb
|
81
|
-
- test/test_helper.rb
|
82
|
-
- test/unit/http_redirect_test_test.rb
|
83
|
-
- test/unit/redirect_check_test.rb
|
84
|
-
- test/unit/resource_path_test.rb
|
85
79
|
homepage: http://github.com/eightbitraptor/http_redirect_test
|
86
80
|
licenses: []
|
87
81
|
metadata: {}
|
data/test/integration_test.rb
DELETED
@@ -1,69 +0,0 @@
|
|
1
|
-
require 'http_redirect_test'
|
2
|
-
|
3
|
-
class IntegrationTest < HTTPRedirectTest
|
4
|
-
set_domain "localhost:4567"
|
5
|
-
|
6
|
-
def test_not_redirect
|
7
|
-
should_not_redirect '/ok'
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_should_redirect_non_permanantly
|
11
|
-
should_redirect '/redirect', to: '/ok'
|
12
|
-
end
|
13
|
-
|
14
|
-
def should_redirect_permanently
|
15
|
-
should_redirect '/redirect_permanant', to: '/ok', permanent: true
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_should_not_be_found
|
19
|
-
should_not_be_found '/not_found'
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_should_be_gone
|
23
|
-
should_be_gone '/gone'
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_custom_header
|
27
|
-
should_have_header('/custom_header', 'X-One-Million-Years', with_value: 'Dungeon')
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
class AllRedirectsArePermanent < HTTPRedirectTest
|
32
|
-
set_domain "localhost:4567"
|
33
|
-
treat_all_redirects_as_permanent
|
34
|
-
|
35
|
-
def test_should_redirect
|
36
|
-
should_redirect '/redirect_permanant', to: '/ok'
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_non_permanent_redirect_should_fail
|
40
|
-
assertion_failed = begin
|
41
|
-
should_redirect '/redirect', to: '/ok'
|
42
|
-
false
|
43
|
-
rescue MiniTest::Assertion
|
44
|
-
true
|
45
|
-
end
|
46
|
-
|
47
|
-
assert assertion_failed
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_explicit_non_permanent_check_should_override
|
51
|
-
should_redirect '/redirect', to: '/ok', permanent: false
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
class DomainsWithExplicitSSLSchemes < HTTPRedirectTest
|
56
|
-
set_domain "https://uk.yahoo.com"
|
57
|
-
|
58
|
-
def test_should_not_redirect
|
59
|
-
should_not_redirect '/'
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
class DomainsWithExplicitNonSSLSchemes < HTTPRedirectTest
|
64
|
-
set_domain "http://www.example.com"
|
65
|
-
|
66
|
-
def test_should_not_redirect
|
67
|
-
should_not_redirect '/'
|
68
|
-
end
|
69
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
require 'sinatra'
|
2
|
-
|
3
|
-
get '/ok' do
|
4
|
-
status 200
|
5
|
-
end
|
6
|
-
|
7
|
-
get '/redirect' do
|
8
|
-
redirect '/ok'
|
9
|
-
end
|
10
|
-
|
11
|
-
get '/redirect_permanant' do
|
12
|
-
redirect '/ok', 301
|
13
|
-
end
|
14
|
-
|
15
|
-
get '/not_found' do
|
16
|
-
status 404
|
17
|
-
end
|
18
|
-
|
19
|
-
get '/gone' do
|
20
|
-
status 410
|
21
|
-
end
|
22
|
-
|
23
|
-
get '/custom_header' do
|
24
|
-
headers['X-One-Million-Years'] = 'Dungeon'
|
25
|
-
status 200
|
26
|
-
end
|
27
|
-
|
28
|
-
|
data/test/test_helper.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class HttpRedirectTestTests < MiniTest::Test
|
4
|
-
def test_that_permanent_flag_is_being_set_correctly
|
5
|
-
assert_equal false, HTTPRedirectTest.permanent?
|
6
|
-
|
7
|
-
HTTPRedirectTest.treat_all_redirects_as_permanent
|
8
|
-
|
9
|
-
assert_equal true, HTTPRedirectTest.permanent?
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_each_class_should_have_its_own_domain
|
13
|
-
a = Class.new(HTTPRedirectTest)
|
14
|
-
a.set_domain "a.example.com"
|
15
|
-
b = Class.new(HTTPRedirectTest)
|
16
|
-
b.set_domain "b.example.com"
|
17
|
-
assert_equal "a.example.com", a.__send__(:domain)
|
18
|
-
assert_equal "b.example.com", b.__send__(:domain)
|
19
|
-
end
|
20
|
-
end
|
@@ -1,82 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
require 'net/http'
|
3
|
-
|
4
|
-
class RedirectCheckTest < MiniTest::Test
|
5
|
-
|
6
|
-
def test_redirect_check_supports_https
|
7
|
-
assert_equal 'https', RedirectCheck.new('https://www.example.com', '/dontcare').uri.scheme
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_that_redirect_checker_returns_legitimate_response
|
11
|
-
stub_http_head_request(Net::HTTPOK)
|
12
|
-
assert_equal @http_head, RedirectCheck.new("example.com", "/index.html").response
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_that_http_ok_results_in_success
|
16
|
-
stub_http_head_request(Net::HTTPOK)
|
17
|
-
assert RedirectCheck.new("example.com", "/index.html").success?
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_that_http_redirection_resuts_in_positive_redirection
|
21
|
-
stub_http_head_request(Net::HTTPRedirection)
|
22
|
-
assert RedirectCheck.new("example.com", "/index.html").redirected?
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_that_http_301_resuts_in_permanent_redirection
|
26
|
-
stub_http_head_request(Net::HTTPMovedPermanently)
|
27
|
-
assert RedirectCheck.new("example.com", "/index.html").permanent_redirect?
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_that_gone_page_returns_correctly
|
31
|
-
stub_http_head_request(Net::HTTPGone)
|
32
|
-
assert RedirectCheck.new("example.com", "/index.html").gone?
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_that_not_found_page_returns_correctly
|
36
|
-
stub_http_head_request(Net::HTTPNotFound)
|
37
|
-
assert RedirectCheck.new("example.com", "/index.html").not_found?
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_that_uri_can_be_built_correctly
|
41
|
-
assert_equal RedirectCheck.new("example.com", "/index.html").uri, URI.parse("http://example.com/index.html")
|
42
|
-
end
|
43
|
-
|
44
|
-
def test_redirection_path
|
45
|
-
stub_http_head_request(Net::HTTPMovedPermanently)
|
46
|
-
r = RedirectCheck.new("example.com", "/index.html")
|
47
|
-
r.response['location'] = "http://www.someurl.com"
|
48
|
-
|
49
|
-
assert_equal "http://www.someurl.com", r.redirected_path
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_redirection_path_without_query_params
|
53
|
-
assert_equal "/index.html", RedirectCheck.new("example.com", "/index.html").source_uri
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_redirection_path_with_query_params
|
57
|
-
assert_equal "/index.html?foo=bar", RedirectCheck.new("example.com", "/index.html?foo=bar").source_uri
|
58
|
-
end
|
59
|
-
|
60
|
-
def test_request_for_specific_header
|
61
|
-
stub_http_header('X-Powered-By', 'Pixies and Stardust')
|
62
|
-
assert RedirectCheck.new("example.com", "/index.html").header('X-Powered-By') == "Pixies and Stardust"
|
63
|
-
end
|
64
|
-
|
65
|
-
private
|
66
|
-
def stub_http_head_request(response_type)
|
67
|
-
@http_head = response_type.new(stub, stub, stub)
|
68
|
-
@http_session = stub(:session)
|
69
|
-
@http_session.stubs(:head).with("/index.html").returns(@http_head)
|
70
|
-
Net::HTTP.stubs(:start).with("example.com", 80, use_ssl: false).yields(@http_session)
|
71
|
-
end
|
72
|
-
|
73
|
-
def stub_http_header(header_name, value)
|
74
|
-
http_head = Net::HTTPOK.new(stub, stub, stub)
|
75
|
-
http_head.initialize_http_header({ header_name => value })
|
76
|
-
|
77
|
-
http_session = stub(:session)
|
78
|
-
http_session.stubs(:head).with("/index.html").returns(http_head)
|
79
|
-
|
80
|
-
Net::HTTP.stubs(:start).with("example.com", 80, use_ssl: false).yields(http_session)
|
81
|
-
end
|
82
|
-
end
|