browsery 0.4.1 → 0.5.0
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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c490410ea3724362cb077735140c55c5e2c8ca7d
|
4
|
+
data.tar.gz: 86a6871d43bdf0ce986bb4f487debb9aac4a3b3c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8203050abd7d2b1f6c3359fc6fe25bfb70337d73b00bad91b9fda6e3057fb2d886bc5a5d432ebbbdf5fab4ba2e5deb6d02615e8afb607f291d063bc4eafce317
|
7
|
+
data.tar.gz: 446f91dbe5b5d064836343afcbf650d3514c581914a5624084be21c4f7cf5c92c99c0f4bb408a6a8c67d329fda44187709b116deded67227b3d014dcfe0e564d
|
@@ -19,5 +19,6 @@ end
|
|
19
19
|
# Major classes and modules
|
20
20
|
require_relative 'page_objects/element_container'
|
21
21
|
require_relative 'page_objects/base'
|
22
|
+
require_relative 'page_objects/section'
|
22
23
|
require_relative 'page_objects/overlay/base'
|
23
24
|
require_relative 'page_objects/widgets/base'
|
@@ -19,6 +19,27 @@ module Browsery
|
|
19
19
|
end
|
20
20
|
alias_method :collection, :elements
|
21
21
|
|
22
|
+
def section(section_name, *args)
|
23
|
+
section_class, find_args = extract_section_options args
|
24
|
+
build section_name, *find_args do |how, what|
|
25
|
+
define_method section_name do
|
26
|
+
section_class.new self, find_first(how, what)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def sections(section_collection_name, *args)
|
32
|
+
section_class, find_args = extract_section_options args
|
33
|
+
build section_collection_name, *find_args do
|
34
|
+
define_method section_collection_name do
|
35
|
+
self.class.raise_if_block(self, section_collection_name.to_s, !element_block.nil?)
|
36
|
+
find_all(how, what).map do |element|
|
37
|
+
section_class.new self, element
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
22
43
|
def add_to_mapped_items(item)
|
23
44
|
@mapped_items ||= []
|
24
45
|
@mapped_items << item.to_s
|
@@ -45,6 +66,18 @@ module Browsery
|
|
45
66
|
end
|
46
67
|
end
|
47
68
|
|
69
|
+
def extract_section_options(args, &block)
|
70
|
+
case
|
71
|
+
when args.first.is_a?(Class)
|
72
|
+
section_class = args.shift
|
73
|
+
when block_given?
|
74
|
+
section_class = Class.new Browsery::PageObjects::Section, &block
|
75
|
+
else
|
76
|
+
raise ArgumentError, 'You should provide section class either as a block, or as the second argument'
|
77
|
+
end
|
78
|
+
return section_class, args
|
79
|
+
end
|
80
|
+
|
48
81
|
end
|
49
82
|
end
|
50
|
-
end
|
83
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Browsery
|
2
|
+
module PageObjects
|
3
|
+
class Section
|
4
|
+
extend ElementContainer
|
5
|
+
|
6
|
+
attr_reader :root_element, :parent
|
7
|
+
|
8
|
+
def initialize(parent, root_element)
|
9
|
+
@parent = parent
|
10
|
+
@root_element = root_element
|
11
|
+
# Browsery.within(@root_element) { yield(self) } if block_given?
|
12
|
+
end
|
13
|
+
|
14
|
+
def parent_page
|
15
|
+
candidate_page = parent
|
16
|
+
until candidate_page.is_a?(Browsery::PageObjects::Base)
|
17
|
+
candidate_page = candidate_page.parent
|
18
|
+
end
|
19
|
+
candidate_page
|
20
|
+
end
|
21
|
+
|
22
|
+
def find_first(how, what)
|
23
|
+
root_element.find_element(how, what)
|
24
|
+
end
|
25
|
+
|
26
|
+
def find_all(how, what)
|
27
|
+
root_element.all(how, what)
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/lib/browsery/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: browsery
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peijie Hu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-04-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -174,6 +174,7 @@ files:
|
|
174
174
|
- lib/browsery/page_objects/base.rb
|
175
175
|
- lib/browsery/page_objects/element_container.rb
|
176
176
|
- lib/browsery/page_objects/overlay/base.rb
|
177
|
+
- lib/browsery/page_objects/section.rb
|
177
178
|
- lib/browsery/page_objects/widgets/base.rb
|
178
179
|
- lib/browsery/parallel.rb
|
179
180
|
- lib/browsery/runner.rb
|