Class: HTTPRedirectTest

Inherits:
Test::Unit::TestCase
  • Object
show all
Defined in:
lib/http_redirect_test/http_redirect_test.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.domain=(domain) ⇒ Object



9
10
11
# File 'lib/http_redirect_test/http_redirect_test.rb', line 9

def self.domain=(domain)
  RedirectCheck.domain = domain
end

.name_for(path) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/http_redirect_test/http_redirect_test.rb', line 23

def self.name_for(path)
  name = path.gsub(/\W+/, '_')
  name.gsub!(/^_+/, '')
  name.gsub!(/_+$/, '')

  name = 'root' if name == ''

  name
end

.should_not_redirect(path) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/http_redirect_test/http_redirect_test.rb', line 13

def self.should_not_redirect(path)
  class_eval <<-CODE
    def test_#{name_for(path)}_should_not_redirect
    check = RedirectCheck.new('#{path}')
    assert_equal false, check.redirected?, "#{path} is redirecting"
    assert_equal true, check.success?, "#{path} is not a success response"
    end
  CODE
end

.should_redirect(source, options) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/http_redirect_test/http_redirect_test.rb', line 33

def self.should_redirect(source, options)
  source_path = ResourcePath.new(source, :param => 'subdir').to_s
  destination_path = ResourcePath.new(options[:to], :param => 'subdir').to_s

  permanent = options.fetch(:permanent, true)

  class_eval <<-CODE
    def test_#{name_for(source_path)}_should_redirect_to_#{name_for(destination_path)}
    redirection = RedirectCheck.new('#{source_path}', '#{destination_path}')
    assert_equal true, redirection.redirected?, "'#{source_path}' is not redirecting"
    assert_equal '#{destination_path}', redirection.redirected_path,
    "'#{source_path}' is not redirecting to '#{destination_path}'"
    if #{permanent}
    assert_equal true, redirection.permanent_redirect?,
    "The redirection from '#{source_path}' to '#{destination_path}' doesn't appear to be a permanent redirect"
    end
    end
  CODE
end

Instance Method Details

#default_testObject

placeholder to stop Test::Unit from complaining



7
# File 'lib/http_redirect_test/http_redirect_test.rb', line 7

def default_test; end