test-harness 0.4.5 → 0.4.6

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.5
1
+ 0.4.6
data/lib/configuration.rb CHANGED
@@ -2,5 +2,10 @@ class TestHarness
2
2
  class Configuration
3
3
  attr_accessor :browser, :server_host, :autoload_path
4
4
 
5
+ def setup_cucumber_hooks(scope)
6
+ scope.Before do
7
+ TestHarness.reset
8
+ end
9
+ end
5
10
  end
6
11
  end
data/lib/test_harness.rb CHANGED
@@ -10,6 +10,11 @@ class TestHarness
10
10
  yield configuration
11
11
  end
12
12
 
13
+ def reset
14
+ @mm = nil
15
+ registered_components.each(&:reset)
16
+ end
17
+
13
18
  def given
14
19
  @given ||= TestHarness::Given.new
15
20
  end
@@ -30,7 +35,12 @@ class TestHarness
30
35
  @path ||= configuration.autoload_path || 'test_harness'
31
36
  end
32
37
 
38
+ def registered_components
39
+ @components ||= []
40
+ end
41
+
33
42
  def register_instance_option(scope, option_name, default_value = nil)
43
+ registered_components << default_value
34
44
  scope.send(:define_method, option_name) do |*args, &block|
35
45
  if !args[0].nil? || block
36
46
  instance_variable_set("@#{option_name}_registered", args[0].nil? ? block : args[0])
@@ -4,6 +4,10 @@ class TestHarness
4
4
  self.class.parent.component
5
5
  end
6
6
 
7
+ def reset
8
+ @form = nil
9
+ end
10
+
7
11
  # If the UIComponent is sent a message it does not understand, it will
8
12
  # forward that message on to its {#browser} but wrap the call in a block
9
13
  # provided to the the browser's `#within` method. This provides convenient
@@ -49,7 +53,8 @@ class TestHarness
49
53
  #
50
54
  def submit!
51
55
  form_hash.each do |k,v|
52
- find_field(k.to_s).set v
56
+ field = find_field(k.to_s)
57
+ field[:type] =~ /^select/ ? field.select(v) : field.set(v)
53
58
  end
54
59
 
55
60
  if has_css?(locator = component.submit)
@@ -73,6 +78,7 @@ class TestHarness
73
78
  form.instance_variable_get("@table")
74
79
  end
75
80
 
81
+ private
76
82
  def component_path
77
83
  component.path.gsub(/:\w+/) {|match| mm.subject.send(match.tr(':',''))}
78
84
  end
data/test-harness.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "test-harness"
8
- s.version = "0.4.5"
8
+ s.version = "0.4.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Maher Hawash"]
12
- s.date = "2012-09-10"
12
+ s.date = "2012-09-11"
13
13
  s.description = "A test harness for rspec and cucumber which allows for separating responsibility between setting up the context and interacting with the browser, and cleaning up the step definition files."
14
14
  s.email = "gmhawash@gmail.com"
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test-harness
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 5
10
- version: 0.4.5
9
+ - 6
10
+ version: 0.4.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Maher Hawash
@@ -15,12 +15,10 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-09-10 00:00:00 Z
18
+ date: 2012-09-11 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- prerelease: false
22
- type: :development
23
- requirement: &id001 !ruby/object:Gem::Requirement
21
+ version_requirements: &id001 !ruby/object:Gem::Requirement
24
22
  none: false
25
23
  requirements:
26
24
  - - ">="
@@ -29,12 +27,12 @@ dependencies:
29
27
  segments:
30
28
  - 0
31
29
  version: "0"
32
- version_requirements: *id001
33
- name: rspec
34
- - !ruby/object:Gem::Dependency
35
30
  prerelease: false
31
+ requirement: *id001
36
32
  type: :development
37
- requirement: &id002 !ruby/object:Gem::Requirement
33
+ name: rspec
34
+ - !ruby/object:Gem::Dependency
35
+ version_requirements: &id002 !ruby/object:Gem::Requirement
38
36
  none: false
39
37
  requirements:
40
38
  - - ">="
@@ -43,12 +41,12 @@ dependencies:
43
41
  segments:
44
42
  - 0
45
43
  version: "0"
46
- version_requirements: *id002
47
- name: rdoc
48
- - !ruby/object:Gem::Dependency
49
44
  prerelease: false
45
+ requirement: *id002
50
46
  type: :development
51
- requirement: &id003 !ruby/object:Gem::Requirement
47
+ name: rdoc
48
+ - !ruby/object:Gem::Dependency
49
+ version_requirements: &id003 !ruby/object:Gem::Requirement
52
50
  none: false
53
51
  requirements:
54
52
  - - ">="
@@ -57,12 +55,12 @@ dependencies:
57
55
  segments:
58
56
  - 0
59
57
  version: "0"
60
- version_requirements: *id003
61
- name: bundler
62
- - !ruby/object:Gem::Dependency
63
58
  prerelease: false
59
+ requirement: *id003
64
60
  type: :development
65
- requirement: &id004 !ruby/object:Gem::Requirement
61
+ name: bundler
62
+ - !ruby/object:Gem::Dependency
63
+ version_requirements: &id004 !ruby/object:Gem::Requirement
66
64
  none: false
67
65
  requirements:
68
66
  - - ">="
@@ -71,12 +69,12 @@ dependencies:
71
69
  segments:
72
70
  - 0
73
71
  version: "0"
74
- version_requirements: *id004
75
- name: jeweler
76
- - !ruby/object:Gem::Dependency
77
72
  prerelease: false
73
+ requirement: *id004
78
74
  type: :development
79
- requirement: &id005 !ruby/object:Gem::Requirement
75
+ name: jeweler
76
+ - !ruby/object:Gem::Dependency
77
+ version_requirements: &id005 !ruby/object:Gem::Requirement
80
78
  none: false
81
79
  requirements:
82
80
  - - ">="
@@ -85,7 +83,9 @@ dependencies:
85
83
  segments:
86
84
  - 0
87
85
  version: "0"
88
- version_requirements: *id005
86
+ prerelease: false
87
+ requirement: *id005
88
+ type: :development
89
89
  name: gemcutter
90
90
  description: A test harness for rspec and cucumber which allows for separating responsibility between setting up the context and interacting with the browser, and cleaning up the step definition files.
91
91
  email: gmhawash@gmail.com