Class: HTTPRedirectTest

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.domain=(domain) ⇒ Object



7
8
9
# File 'lib/traffic_cop/http_redirect_test.rb', line 7

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

.name_for(path) ⇒ Object



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

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

.should_not_redirect(path) ⇒ Object



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

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



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

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



5
# File 'lib/traffic_cop/http_redirect_test.rb', line 5

def default_test; end