capybara-pageobject 0.1.0 → 0.1.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/capybara-pageobject.gemspec
CHANGED
data/lib/capybara-pageobject.rb
CHANGED
@@ -21,15 +21,21 @@ module Capybara
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def current_website
|
24
|
-
@website ||= Capybara::PageObject::Website
|
24
|
+
@website ||= instantiate_website Capybara::PageObject::Website
|
25
25
|
end
|
26
26
|
|
27
27
|
def website_class= klass
|
28
28
|
raise "website class #{klass} should extend Capybara::PageObject::Website" unless klass.ancestors.include?(Capybara::PageObject::Website)
|
29
|
-
@website = klass
|
29
|
+
@website = instantiate_website klass
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
+
private
|
34
|
+
|
35
|
+
def self.instantiate_website klass
|
36
|
+
klass.new(Capybara.current_session, @page_file)
|
37
|
+
end
|
38
|
+
|
33
39
|
module IncludedMethods
|
34
40
|
def website
|
35
41
|
Capybara::PageObject.current_website
|
@@ -2,6 +2,7 @@ module Capybara
|
|
2
2
|
module PageObject
|
3
3
|
class Page
|
4
4
|
include CapybaraHelper
|
5
|
+
include RSpec::Matchers
|
5
6
|
|
6
7
|
attr_accessor :context
|
7
8
|
|
@@ -36,7 +37,7 @@ module Capybara
|
|
36
37
|
end
|
37
38
|
|
38
39
|
def method_missing method, *args
|
39
|
-
page.respond_to?(method) ? page.send(method, *args) :
|
40
|
+
page.respond_to?(method) ? page.send(method, *args) : super
|
40
41
|
end
|
41
42
|
|
42
43
|
protected
|
@@ -2,9 +2,8 @@ module Capybara
|
|
2
2
|
module PageObject
|
3
3
|
class Website
|
4
4
|
|
5
|
-
def initialize page,
|
5
|
+
def initialize page, page_file
|
6
6
|
@page = page
|
7
|
-
@context = context
|
8
7
|
|
9
8
|
raise "Please specify page file path" unless page_file.present?
|
10
9
|
@pages_data = YAML.load_file(page_file)
|
data/spec/page_spec.rb
CHANGED
data/spec/website_spec.rb
CHANGED
@@ -5,7 +5,7 @@ def with_yaml page_data
|
|
5
5
|
end
|
6
6
|
|
7
7
|
describe "Website" do
|
8
|
-
let(:website) { Capybara::PageObject::Website.new(capybara_page,
|
8
|
+
let(:website) { Capybara::PageObject::Website.new(capybara_page, 'pages/pages.yml') }
|
9
9
|
subject { website }
|
10
10
|
|
11
11
|
describe "create getters" do
|
@@ -22,7 +22,7 @@ describe "Website" do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
it "should raise error if page_file is not specified" do
|
25
|
-
expect { Capybara::PageObject::Website.new(capybara_page,
|
25
|
+
expect { Capybara::PageObject::Website.new(capybara_page, '') }.to raise_error(Exception, "Please specify page file path")
|
26
26
|
end
|
27
27
|
|
28
28
|
describe "custom page class" do
|
@@ -34,16 +34,17 @@ describe "Website" do
|
|
34
34
|
|
35
35
|
it "should fail if custom class does not extend Page class" do
|
36
36
|
with_yaml("home_page" => {"class" => "Object"})
|
37
|
-
expect { Capybara::PageObject::Website.new(capybara_page,
|
37
|
+
expect { Capybara::PageObject::Website.new(capybara_page, 'pages/pages.yml') }.to raise_error(Exception, "Custom page class 'Object' should extend Capybara::PageObject::Page")
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
41
|
describe "page block" do
|
42
|
-
it "should
|
42
|
+
it "should resolve rspec matchers within the block on page" do
|
43
43
|
with_yaml("home_page" => {"url" => "/form", "attributes" => {"attribute" => "#attr1", "field" => "#hidden_field"}})
|
44
44
|
website.home_page.visit
|
45
45
|
website.home_page do
|
46
46
|
attribute.should == "led zeppelin"
|
47
|
+
attribute.should be_present
|
47
48
|
field.should_not be_visible
|
48
49
|
end
|
49
50
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara-pageobject
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-02-12 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &2156144500 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2156144500
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: mocha
|
27
|
-
requirement: &
|
27
|
+
requirement: &2156141140 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2156141140
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: sinatra
|
38
|
-
requirement: &
|
38
|
+
requirement: &2156139320 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 0.9.4
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2156139320
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: capybara
|
49
|
-
requirement: &
|
49
|
+
requirement: &2156062360 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2156062360
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: capybara
|
60
|
-
requirement: &
|
60
|
+
requirement: &2156061060 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,18 @@ dependencies:
|
|
65
65
|
version: 1.0.0
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2156061060
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec-expectations
|
71
|
+
requirement: &2156059420 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *2156059420
|
69
80
|
description: Introduce page objects to your capybara-based functional tests
|
70
81
|
email:
|
71
82
|
- deepak.lewis@gmail.com
|