fake_mechanize 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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