pagemodels 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,15 @@
1
1
  module PageModels
2
- class Base
2
+ class Base
3
+ @@callbacks = {:before_verify => [], :after_verify => []}
4
+
5
+ def self.before_verify(method_name)
6
+ @@callbacks[:before_verify] << method_name
7
+ end
8
+
9
+ def self.after_verify(method_name)
10
+ @@callbacks[:after_verify] << method_name
11
+ end
12
+
3
13
  def open!
4
14
  if config.driver.class.to_s == "Capybara::Session"
5
15
  visit(full_url)
@@ -9,6 +19,12 @@ module PageModels
9
19
  verify!
10
20
  end
11
21
 
22
+ def _verify!
23
+ @@callbacks[:before_verify].each { |callback| send(callback) if respond_to?(callback) }
24
+ verify!
25
+ @@callbacks[:after_verify].each { |callback| send(callback) if respond_to?(callback) }
26
+ end
27
+
12
28
  def method_missing(name, *args, &block)
13
29
  config.driver.send(name, *args, &block)
14
30
  rescue NoMethodError
@@ -1,7 +1,7 @@
1
1
  Given /^I (?:open|visit|go to) the (.+\s?page)(.*)$/ do |page_name, args|
2
2
  $page_model = PageModels.create(page_name, args)
3
3
  $page_model.open!
4
- $page_model.verify!
4
+ $page_model._verify!
5
5
  end
6
6
 
7
7
  Given /^I (?:try to|attempt to|fail to) (?:open|visit|go to) the (.+\s?page)(.*)$/ do |page_name, args|
@@ -12,7 +12,7 @@ end
12
12
  Then /^I should (?:see|be on) the (.+\s?page)(.*)$/ do |page_name, args|
13
13
  $page_model = PageModels.create(page_name, args)
14
14
  $page_model = self.page
15
- $page_model.verify!
15
+ $page_model._verify!
16
16
  end
17
17
 
18
18
  at_exit do
@@ -5,13 +5,13 @@ module PageModels
5
5
  def open_page(page_model)
6
6
  page_model = page_model.new if page_model.is_a? Class
7
7
  $page_model = page_model
8
- page_model.open!
8
+ $page_model.open!
9
9
  end
10
10
 
11
11
  def should_see_page(page_model)
12
12
  page_model = page_model.new if page_model.is_a? Class
13
13
  $page_model = page_model
14
- page_model.verify!
14
+ $page_model._verify!
15
15
  end
16
16
 
17
17
  end
@@ -1,3 +1,3 @@
1
1
  module PageModels
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -100,4 +100,22 @@ describe PageModels::Base do
100
100
  end
101
101
  end
102
102
  end
103
+
104
+ describe "lifecycle hooks" do
105
+ it "calls hooks before and after _verify" do
106
+ TestPageModel.after_verify :do_something
107
+ TestPageModel.after_verify :do_something_else
108
+ @page_model.should_receive :do_something
109
+ @page_model.should_receive :do_something_else
110
+
111
+ @page_model._verify!
112
+
113
+ TestPageModel.before_verify :do_something
114
+ TestPageModel.before_verify :do_something_else
115
+ @page_model.should_receive(:do_something).twice
116
+ @page_model.should_receive(:do_something_else).twice
117
+
118
+ @page_model._verify!
119
+ end
120
+ end
103
121
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pagemodels
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-17 00:00:00.000000000 Z
12
+ date: 2013-01-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake