pagemodels 0.2.0 → 0.2.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/lib/page_models/base.rb
CHANGED
@@ -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.
|
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.
|
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.
|
14
|
+
$page_model._verify!
|
15
15
|
end
|
16
16
|
|
17
17
|
end
|
data/lib/page_models/version.rb
CHANGED
@@ -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.
|
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-
|
12
|
+
date: 2013-01-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|