ae_page_objects 1.1.0 → 1.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/lib/ae_page_objects/concerns/load_ensuring.rb +1 -1
- data/lib/ae_page_objects/concerns/visitable.rb +6 -2
- data/lib/ae_page_objects/core/application_router.rb +11 -12
- data/lib/ae_page_objects/element.rb +2 -0
- data/lib/ae_page_objects/element_proxy.rb +1 -1
- data/lib/ae_page_objects/exceptions.rb +7 -1
- data/lib/ae_page_objects/single_window/same_window_loader_strategy.rb +2 -2
- data/lib/ae_page_objects/version.rb +1 -1
- metadata +63 -41
- checksums.yaml +0 -7
@@ -10,10 +10,14 @@ module AePageObjects
|
|
10
10
|
|
11
11
|
def ensure_loaded!
|
12
12
|
unless Waiter.wait_for { self.class.can_load_from_current_url? }
|
13
|
-
raise
|
13
|
+
raise LoadingPageFailed, "#{self.class.name} cannot be loaded with url '#{current_url_without_params}'"
|
14
14
|
end
|
15
15
|
|
16
|
-
|
16
|
+
begin
|
17
|
+
super
|
18
|
+
rescue LoadingElementFailed
|
19
|
+
raise LoadingPageFailed, e.message
|
20
|
+
end
|
17
21
|
end
|
18
22
|
|
19
23
|
module VisitMethod
|
@@ -55,7 +55,7 @@ module AePageObjects
|
|
55
55
|
private
|
56
56
|
|
57
57
|
def request_for(url, method)
|
58
|
-
Rails.application.routes.request_class.new(env_for(url, method))
|
58
|
+
::Rails.application.routes.request_class.new(env_for(url, method))
|
59
59
|
end
|
60
60
|
|
61
61
|
def env_for(url, method)
|
@@ -68,7 +68,7 @@ module AePageObjects
|
|
68
68
|
|
69
69
|
def url_and_router(url)
|
70
70
|
url = Rack::Mount::Utils.normalize_path(url) unless url =~ %r{://}
|
71
|
-
router = Rails.application.routes.set
|
71
|
+
router = ::Rails.application.routes.set
|
72
72
|
|
73
73
|
[url, router]
|
74
74
|
end
|
@@ -76,7 +76,7 @@ module AePageObjects
|
|
76
76
|
def routes
|
77
77
|
@routes ||= begin
|
78
78
|
routes_class = Class.new do
|
79
|
-
include Rails.application.routes.url_helpers
|
79
|
+
include ::Rails.application.routes.url_helpers
|
80
80
|
end
|
81
81
|
routes_class.new
|
82
82
|
end
|
@@ -88,7 +88,7 @@ module AePageObjects
|
|
88
88
|
private
|
89
89
|
def url_and_router(url)
|
90
90
|
url = Journey::Router::Utils.normalize_path(url) unless url =~ %r{://}
|
91
|
-
router = Rails.application.routes.router
|
91
|
+
router = ::Rails.application.routes.router
|
92
92
|
|
93
93
|
[url, router]
|
94
94
|
end
|
@@ -100,7 +100,7 @@ module AePageObjects
|
|
100
100
|
def url_and_router(url)
|
101
101
|
require 'action_dispatch/journey'
|
102
102
|
url = ActionDispatch::Journey::Router::Utils.normalize_path(url) unless url =~ %r{://}
|
103
|
-
router = Rails.application.routes.router
|
103
|
+
router = ::Rails.application.routes.router
|
104
104
|
|
105
105
|
[url, router]
|
106
106
|
end
|
@@ -128,18 +128,17 @@ module AePageObjects
|
|
128
128
|
|
129
129
|
def recognizer
|
130
130
|
@recognizer ||= begin
|
131
|
-
if Rails.version =~ /\A2\.3/
|
131
|
+
if ::Rails.version =~ /\A2\.3/
|
132
132
|
Recognizer::Rails23.new
|
133
|
-
elsif Rails.version =~ /\A3\.[01]/
|
133
|
+
elsif ::Rails.version =~ /\A3\.[01]/
|
134
134
|
Recognizer::Rails3.new
|
135
|
-
elsif Rails.version =~ /\A3\.2/
|
135
|
+
elsif ::Rails.version =~ /\A3\.2/
|
136
136
|
Recognizer::Rails32.new
|
137
|
-
elsif Rails.version =~ /\A4\.[01]/
|
138
|
-
warn "[WARNING]: AePageObjects works but is not thoroughly tested against Rails 4. Caveat emptor."
|
137
|
+
elsif ::Rails.version =~ /\A4\.[01]/
|
139
138
|
Recognizer::Rails4.new
|
140
139
|
else
|
141
|
-
warn "[WARNING]: AePageObjects is not tested against Rails #{Rails.version} and may behave in an undefined manner."
|
142
|
-
Recognizer::
|
140
|
+
warn "[WARNING]: AePageObjects is not tested against Rails #{::Rails.version} and may behave in an undefined manner."
|
141
|
+
Recognizer::Rails4.new
|
143
142
|
end
|
144
143
|
end
|
145
144
|
end
|
@@ -7,9 +7,15 @@ module AePageObjects
|
|
7
7
|
class LoadingFailed < Error
|
8
8
|
end
|
9
9
|
|
10
|
+
class LoadingPageFailed < LoadingFailed
|
11
|
+
end
|
12
|
+
|
13
|
+
class LoadingElementFailed < LoadingFailed
|
14
|
+
end
|
15
|
+
|
10
16
|
class PathNotResolvable < Error
|
11
17
|
end
|
12
18
|
|
13
19
|
class DocumentLoadError < Error
|
14
20
|
end
|
15
|
-
end
|
21
|
+
end
|
@@ -19,13 +19,13 @@ module AePageObjects
|
|
19
19
|
|
20
20
|
def load_document(document_class)
|
21
21
|
document_class.new
|
22
|
-
rescue AePageObjects::
|
22
|
+
rescue AePageObjects::LoadingPageFailed
|
23
23
|
nil
|
24
24
|
end
|
25
25
|
|
26
26
|
def condition_matches?(document, condition)
|
27
27
|
condition.match?(document)
|
28
|
-
rescue
|
28
|
+
rescue AePageObjects::LoadingElementFailed
|
29
29
|
false
|
30
30
|
end
|
31
31
|
end
|
metadata
CHANGED
@@ -1,42 +1,54 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ae_page_objects
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 17
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 1
|
9
|
+
- 1
|
10
|
+
version: 1.1.1
|
5
11
|
platform: ruby
|
6
|
-
authors:
|
12
|
+
authors:
|
7
13
|
- Donnie Tognazzini
|
8
14
|
autorequire:
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
|
18
|
+
date: 2014-09-10 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
22
|
+
none: false
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
hash: 13
|
27
|
+
segments:
|
28
|
+
- 1
|
29
|
+
- 1
|
30
|
+
version: "1.1"
|
20
31
|
- - <
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
|
23
|
-
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
hash: 5
|
34
|
+
segments:
|
35
|
+
- 2
|
36
|
+
- 3
|
37
|
+
version: "2.3"
|
24
38
|
prerelease: false
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '1.1'
|
30
|
-
- - <
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '2.3'
|
39
|
+
requirement: *id001
|
40
|
+
type: :runtime
|
41
|
+
name: capybara
|
33
42
|
description: Capybara Page Objects pattern
|
34
|
-
email:
|
43
|
+
email:
|
35
44
|
- engineering@appfolio.com
|
36
45
|
executables: []
|
46
|
+
|
37
47
|
extensions: []
|
48
|
+
|
38
49
|
extra_rdoc_files: []
|
39
|
-
|
50
|
+
|
51
|
+
files:
|
40
52
|
- lib/ae_page_objects.rb
|
41
53
|
- lib/ae_page_objects/concerns/load_ensuring.rb
|
42
54
|
- lib/ae_page_objects/concerns/staleable.rb
|
@@ -76,27 +88,37 @@ files:
|
|
76
88
|
- lib/ae_page_objects/version.rb
|
77
89
|
- lib/ae_page_objects/window.rb
|
78
90
|
homepage: http://github.com/appfolio/ae_page_objects
|
79
|
-
licenses:
|
91
|
+
licenses:
|
80
92
|
- MIT
|
81
|
-
metadata: {}
|
82
93
|
post_install_message:
|
83
94
|
rdoc_options: []
|
84
|
-
|
95
|
+
|
96
|
+
require_paths:
|
85
97
|
- lib
|
86
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
98
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
99
|
+
none: false
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
hash: 3
|
104
|
+
segments:
|
105
|
+
- 0
|
106
|
+
version: "0"
|
107
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
|
+
none: false
|
109
|
+
requirements:
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
hash: 3
|
113
|
+
segments:
|
114
|
+
- 0
|
115
|
+
version: "0"
|
96
116
|
requirements: []
|
117
|
+
|
97
118
|
rubyforge_project:
|
98
|
-
rubygems_version:
|
119
|
+
rubygems_version: 1.8.25
|
99
120
|
signing_key:
|
100
|
-
specification_version:
|
121
|
+
specification_version: 3
|
101
122
|
summary: Capybara Page Objects pattern
|
102
123
|
test_files: []
|
124
|
+
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 5334b6a4fd2514a439fa323284a5893cb21005ca
|
4
|
-
data.tar.gz: 64a263fd884d0e933ebf8000ad88ed689dc3f601
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 3af8bd7d6c91c8865641f2673cba8244ccc4d5db142bc95591f70dc57fdc2ecec8f924dfc71fe6fc38627b36fc5e1a1e8007d970b06a65ff17113f5b7f915fe3
|
7
|
-
data.tar.gz: 2b3d973eb84a26923bd6db1dcbec1bcdc18a85a923f98e3f60dfeed2b44e7ffaffa886fb88c6bc9695f565baa12fc5a0ea7a3818e311ff004a299072388b1e6f
|