fake_mechanize 0.0.0 → 0.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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.0
1
+ 0.0.1
@@ -1,5 +1,9 @@
1
1
  require 'mechanize'
2
2
 
3
+ module FakeMechanize
4
+ HttpVerbs = [:head, :get, :post, :put, :delete]
5
+ end
6
+
3
7
  require 'fake_mechanize/request'
4
8
  require 'fake_mechanize/error_request'
5
9
  require 'fake_mechanize/responder'
@@ -1,4 +1,10 @@
1
+ # = FakeMechanize module
2
+ # FakeMechanize provides methods and classes to write tests for applications which relies on Mechanize.
3
+ # == Examples
4
+ #
1
5
  module FakeMechanize
6
+ # Agent acts like the original Mechanize::Agent but totally offline.
7
+ # It provides a respond_to method to predefine queries and their answers.
2
8
  class Agent
3
9
  attr_accessor :cookie_jar
4
10
 
@@ -15,14 +21,24 @@ module FakeMechanize
15
21
  @errors << ErrorRequest.new(:status => 404, :body => "not found")
16
22
  end
17
23
 
18
- def get(uri)
19
- return_mechanize_response Request.new(:uri => uri)
24
+ def assert_queried(method, uri, params = {})
25
+ request = Request.new(:method => method, :uri => uri, :request_headers => params)
26
+ @history.any? {|history_query| history_query == request}
20
27
  end
21
28
 
22
- def post(uri, args = {})
23
- return_mechanize_response Request.new(:method => :post, :uri => uri, :request_headers => args)
29
+ HttpVerbs.each do |method|
30
+ module_eval <<-EOE, __FILE__, __LINE__
31
+ def was_#{method}?(uri, params = {})
32
+ assert_queried(:#{method}, uri, params)
33
+ end
34
+
35
+ def #{method}(uri, args = {})
36
+ return_mechanize_response Request.new(:method => :#{method}, :uri => uri, :request_headers => args)
37
+ end
38
+ EOE
24
39
  end
25
40
 
41
+ protected
26
42
  def return_mechanize_response(given_request)
27
43
  @history << given_request
28
44
  request = search_for_request(given_request)
@@ -39,20 +55,6 @@ module FakeMechanize
39
55
  @errors.max_by {|request| request.match(given_request)}
40
56
  end
41
57
 
42
- def assert_queried(method, uri, params = {})
43
- request = Request.new(:method => method, :uri => uri, :request_headers => params)
44
- @history.any? {|history_query| history_query == request}
45
- end
46
-
47
- [:head, :get, :post, :put, :delete].each do |method|
48
- module_eval <<-EOE, __FILE__, __LINE__
49
- def was_#{method}?(uri, params = {})
50
- assert_queried(:#{method}, uri, params)
51
- end
52
- EOE
53
- end
54
-
55
- protected
56
58
  def reset_responses!
57
59
  @responses.clear
58
60
  end
@@ -1,4 +1,6 @@
1
1
  module FakeMechanize
2
+ # Request represents a request made to the server with its specific headers and its answer body, headers
3
+ # and status (http code)
2
4
  class Request
3
5
  attr_reader :method, :uri, :request_headers, :body, :status, :response_headers
4
6
 
@@ -14,6 +16,9 @@ module FakeMechanize
14
16
  @response_headers = args[:response_headers] || {}
15
17
  end
16
18
 
19
+ # evaluate if <tt>alt</tt> has the same query parameters as the current object.
20
+ # Returns true if equal, false otherwise.
21
+ # Evaluation is based on method, uri and request_headers.
17
22
  def ==(alt)
18
23
  method == alt.method and uri == alt.uri and request_headers == alt.request_headers
19
24
  end
@@ -8,13 +8,13 @@ module FakeMechanize
8
8
  if args[:method]
9
9
  @errors << ErrorRequest.new(args)
10
10
  else
11
- [:head, :get, :post, :put, :delete].each do |method|
11
+ HttpVerbs.each do |method|
12
12
  @errors << ErrorRequest.new({:method => method}.merge(args))
13
13
  end
14
14
  end
15
15
  end
16
16
 
17
- [:head, :get, :post, :put, :delete].each do |method|
17
+ HttpVerbs.each do |method|
18
18
  module_eval <<-EOE, __FILE__, __LINE__
19
19
  def #{method}(args = {})
20
20
  @responses << Request.new({:method => :#{method}}.merge(args))
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fake_mechanize
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fabien Jakimowicz
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-07-22 00:00:00 +02:00
12
+ date: 2009-07-23 00:00:00 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -47,8 +47,6 @@ files:
47
47
  - test/test_helper.rb
48
48
  has_rdoc: true
49
49
  homepage: http://github.com/jakimowicz/fake_mechanize
50
- licenses: []
51
-
52
50
  post_install_message:
53
51
  rdoc_options:
54
52
  - --charset=UTF-8
@@ -69,9 +67,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
67
  requirements: []
70
68
 
71
69
  rubyforge_project: fake-mechanize
72
- rubygems_version: 1.3.4
70
+ rubygems_version: 1.3.1
73
71
  signing_key:
74
- specification_version: 3
72
+ specification_version: 2
75
73
  summary: toolset for offline unit tests on mechanize, like httpmock
76
74
  test_files:
77
75
  - test/fake_mechanize_test.rb