Minitest::Test
A generic test case for testing mechanize. Using a subclass of Mechanize::TestCase for your tests will create an isolated mechanize instance that won’t pollute your filesystem or other tests.
Once Mechanize::TestCase is loaded no HTTP requests will be made outside mechanize itself. All requests are handled via WEBrick servlets.
Mechanize uses WEBrick servlets to test some functionality. You can run other HTTP clients against the servlets using:
ruby -rmechanize/test_case/server -e0
Which will launch a test server at localhost:8000
Creates a fake page with URI fake.example and an empty, submittable form.
# File lib/mechanize/test_case.rb, line 53 def fake_page agent = @mech uri = URI 'http://fake.example/' html = <html><body><form><input type="submit" value="submit" /></form></body></html> Mechanize::Page.new uri, nil, html, 200, agent end
Is the Encoding constant defined?
# File lib/mechanize/test_case.rb, line 69 def have_encoding? Object.const_defined? :Encoding end
Creates a Mechanize::Page with the given body
# File lib/mechanize/test_case.rb, line 76 def html_page body uri = URI 'http://example/' Mechanize::Page.new uri, nil, body, 200, @mech end
Runs the block inside a temporary directory
# File lib/mechanize/test_case.rb, line 95 def in_tmpdir Dir.mktmpdir do |dir| Dir.chdir dir do yield end end end
Creates a Nokogiri Node element with the given attributes
# File lib/mechanize/test_case.rb, line 106 def node element, attributes = {} doc = Nokogiri::HTML::Document.new node = Nokogiri::XML::Node.new element, doc attributes.each do |name, value| node[name] = value end node end
Creates a Mechanize::Page for the given uri with the given content_type, response body and HTTP status code
# File lib/mechanize/test_case.rb, line 122 def page uri, content_type = 'text/html', body = '', code = 200 uri = URI uri unless URI::Generic === uri Mechanize::Page.new(uri, { 'content-type' => content_type }, body, code, @mech) end
Requests made during this tests
# File lib/mechanize/test_case.rb, line 132 def requests REQUESTS end
Creates a clean mechanize instance +@mech+ for use in tests.
# File lib/mechanize/test_case.rb, line 40 def setup super REQUESTS.clear @mech = Mechanize.new @ssl_private_key = nil @ssl_certificate = nil end
An X509 certificate. This certificate is the same across all test runs
# File lib/mechanize/test_case.rb, line 153 def ssl_certificate @ssl_certificate ||= OpenSSL::X509::Certificate.new -----BEGIN CERTIFICATE-----MIIBQjCB7aADAgECAgEAMA0GCSqGSIb3DQEBBQUAMCoxDzANBgNVBAMMBm5vYm9keTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwIBcNMTExMTAzMjEwODU5WhgPOTk5OTEyMzExMjU5NTlaMCoxDzANBgNVBAMMBm5vYm9keTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUwWjANBgkqhkiG9w0BAQEFAANJADBGAkEA8pmEfmP0Ibir91x6pbts4JmmsVZd3xvD5p347EFvBCbhBW1nv1GsbCBEFlSiT1q2qvxGb5IlbrfdhdgyqdTXUQIBATANBgkqhkiG9w0BAQUFAANBAAAB//////////////////////////////////8AMCEwCQYFKw4DAhoFAAQUePiv+QrJxyjtEJNnH5pB9OTWIqA=-----END CERTIFICATE----- end
An SSL private key. This key is the same across all test runs
# File lib/mechanize/test_case.rb, line 139 def ssl_private_key @ssl_private_key ||= OpenSSL::PKey::RSA.new -----BEGIN RSA PRIVATE KEY-----MIG7AgEAAkEA8pmEfmP0Ibir91x6pbts4JmmsVZd3xvD5p347EFvBCbhBW1nv1GsbCBEFlSiT1q2qvxGb5IlbrfdhdgyqdTXUQIBAQIBAQIhAPumXslvf6YasXa1hni3p80joKOug2UUgqOLD2GUSO//AiEA9ssY6AFxjHWuwo/+/rkLmkfO2s1Lz3OeUEWq6DiHOK8CAQECAQECIQDt8bc4vS6wh9VXApNSKIpVygtxSFe/IwLeX26n77j6Qg==-----END RSA PRIVATE KEY----- end
Generated with the Darkfish Rdoc Generator 2.