Class: Relevance::Tarantula::RailsIntegrationProxy
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
log, rails_root, tarantula_home, verbose
Constructor Details
Returns a new instance of RailsIntegrationProxy.
26
27
28
29
|
# File 'lib/relevance/tarantula/rails_integration_proxy.rb', line 26
def initialize(integration_test)
@integration_test = integration_test
@integration_test.meta.attr_accessor :response
end
|
Instance Attribute Details
#integration_test ⇒ Object
Returns the value of attribute integration_test.
7
8
9
|
# File 'lib/relevance/tarantula/rails_integration_proxy.rb', line 7
def integration_test
@integration_test
end
|
Class Method Details
.rails_integration_test(integration_test, options = {}) ⇒ Object
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/relevance/tarantula/rails_integration_proxy.rb', line 9
def self.rails_integration_test(integration_test, options = {})
t = Crawler.new
t.max_url_length = options[:max_url_length] if options[:max_url_length]
t.proxy = RailsIntegrationProxy.new(integration_test)
t.handlers << HtmlDocumentHandler.new(t)
t.handlers << InvalidHtmlHandler.new
t.log_grabber = Relevance::Tarantula::LogGrabber.new(File.join(rails_root, "log/test.log"))
t.skip_uri_patterns << /logout$/
t.transform_url_patterns += [
[/\?\d+$/, ''],
[/^http:\/\/#{integration_test.host}/, '']
]
t.test_name = t.proxy.integration_test.method_name
t.reporters << Relevance::Tarantula::HtmlReporter.new(t.report_dir)
t
end
|
Instance Method Details
#patch_response(url, response) ⇒ Object
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# File 'lib/relevance/tarantula/rails_integration_proxy.rb', line 40
def patch_response(url, response)
if response.code == '404'
if File.exist?(static_content_path(url))
case ext = File.extension(url)
when /html|te?xt|css|js|jpe?g|gif|psd|png|eps|pdf|ico/
response.body = static_content_file(url)
response.["type"] = "text/#{ext}"
response.meta.attr_accessor :code
response.code = "200"
else
log "Skipping unknown type #{url}"
end
end
end
response.metaclass.class_eval do
include Relevance::CoreExtensions::Response
end
end
|
#static_content_file(url) ⇒ Object
61
62
63
|
# File 'lib/relevance/tarantula/rails_integration_proxy.rb', line 61
def static_content_file(url)
File.read(static_content_path(url))
end
|
#static_content_path(url) ⇒ Object
65
66
67
|
# File 'lib/relevance/tarantula/rails_integration_proxy.rb', line 65
def static_content_path(url)
File.expand_path(File.join(rails_root, "public", url))
end
|