page-object 2.2.2 → 2.3.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.
Files changed (67) hide show
  1. checksums.yaml +5 -5
  2. data/.coveralls.yml +1 -1
  3. data/.gitignore +8 -8
  4. data/.rspec +2 -2
  5. data/.ruby-gemset +1 -1
  6. data/.ruby-version +1 -1
  7. data/.travis.yml +17 -17
  8. data/ChangeLog +923 -888
  9. data/Gemfile +13 -13
  10. data/Guardfile +20 -20
  11. data/LICENSE +20 -20
  12. data/README.md +114 -114
  13. data/Rakefile +29 -29
  14. data/cucumber.yml +8 -8
  15. data/lib/page-object.rb +431 -420
  16. data/lib/page-object/accessors.rb +1201 -1175
  17. data/lib/page-object/element_locators.rb +21 -21
  18. data/lib/page-object/elements.rb +62 -61
  19. data/lib/page-object/elements/area.rb +9 -9
  20. data/lib/page-object/elements/audio.rb +9 -9
  21. data/lib/page-object/elements/bold.rb +9 -9
  22. data/lib/page-object/elements/button.rb +12 -12
  23. data/lib/page-object/elements/canvas.rb +10 -10
  24. data/lib/page-object/elements/check_box.rb +9 -9
  25. data/lib/page-object/elements/date_field.rb +10 -0
  26. data/lib/page-object/elements/div.rb +9 -9
  27. data/lib/page-object/elements/element.rb +212 -159
  28. data/lib/page-object/elements/file_field.rb +9 -9
  29. data/lib/page-object/elements/form.rb +9 -9
  30. data/lib/page-object/elements/heading.rb +14 -14
  31. data/lib/page-object/elements/hidden_field.rb +9 -9
  32. data/lib/page-object/elements/image.rb +10 -10
  33. data/lib/page-object/elements/italic.rb +9 -9
  34. data/lib/page-object/elements/label.rb +9 -9
  35. data/lib/page-object/elements/link.rb +9 -9
  36. data/lib/page-object/elements/list_item.rb +9 -9
  37. data/lib/page-object/elements/media.rb +11 -11
  38. data/lib/page-object/elements/option.rb +9 -9
  39. data/lib/page-object/elements/ordered_list.rb +43 -45
  40. data/lib/page-object/elements/paragraph.rb +9 -9
  41. data/lib/page-object/elements/radio_button.rb +9 -9
  42. data/lib/page-object/elements/select_list.rb +42 -42
  43. data/lib/page-object/elements/span.rb +9 -9
  44. data/lib/page-object/elements/table.rb +85 -68
  45. data/lib/page-object/elements/table_cell.rb +10 -10
  46. data/lib/page-object/elements/table_row.rb +52 -52
  47. data/lib/page-object/elements/text_area.rb +9 -9
  48. data/lib/page-object/elements/text_field.rb +10 -10
  49. data/lib/page-object/elements/unordered_list.rb +42 -44
  50. data/lib/page-object/elements/video.rb +9 -9
  51. data/lib/page-object/indexed_properties.rb +41 -41
  52. data/lib/page-object/javascript/angularjs.rb +14 -14
  53. data/lib/page-object/javascript/jquery.rb +14 -14
  54. data/lib/page-object/javascript/prototype.rb +14 -14
  55. data/lib/page-object/javascript/yui.rb +18 -18
  56. data/lib/page-object/javascript_framework_facade.rb +80 -80
  57. data/lib/page-object/locator_generator.rb +183 -182
  58. data/lib/page-object/nested_elements.rb +17 -17
  59. data/lib/page-object/page_factory.rb +108 -108
  60. data/lib/page-object/page_populator.rb +105 -95
  61. data/lib/page-object/platforms/watir.rb +50 -50
  62. data/lib/page-object/platforms/watir/page_object.rb +1155 -1124
  63. data/lib/page-object/section_collection.rb +16 -16
  64. data/lib/page-object/version.rb +4 -4
  65. data/lib/page-object/widgets.rb +98 -98
  66. data/page-object.gemspec +32 -32
  67. metadata +12 -12
@@ -1,9 +1,9 @@
1
- module PageObject
2
- module Elements
3
- class FileField < Element
4
-
5
- end
6
-
7
- ::PageObject::Elements.type_to_class[:file] = ::PageObject::Elements::FileField
8
- end
9
- end
1
+ module PageObject
2
+ module Elements
3
+ class FileField < Element
4
+
5
+ end
6
+
7
+ ::PageObject::Elements.type_to_class[:file] = ::PageObject::Elements::FileField
8
+ end
9
+ end
@@ -1,9 +1,9 @@
1
- module PageObject
2
- module Elements
3
- class Form < Element
4
-
5
- end
6
-
7
- ::PageObject::Elements.tag_to_class[:form] = ::PageObject::Elements::Form
8
- end
9
- end
1
+ module PageObject
2
+ module Elements
3
+ class Form < Element
4
+
5
+ end
6
+
7
+ ::PageObject::Elements.tag_to_class[:form] = ::PageObject::Elements::Form
8
+ end
9
+ end
@@ -1,14 +1,14 @@
1
- module PageObject
2
- module Elements
3
- class Heading < Element
4
-
5
- end
6
-
7
- ::PageObject::Elements.tag_to_class[:h1] = ::PageObject::Elements::Heading
8
- ::PageObject::Elements.tag_to_class[:h2] = ::PageObject::Elements::Heading
9
- ::PageObject::Elements.tag_to_class[:h3] = ::PageObject::Elements::Heading
10
- ::PageObject::Elements.tag_to_class[:h4] = ::PageObject::Elements::Heading
11
- ::PageObject::Elements.tag_to_class[:h5] = ::PageObject::Elements::Heading
12
- ::PageObject::Elements.tag_to_class[:h6] = ::PageObject::Elements::Heading
13
- end
14
- end
1
+ module PageObject
2
+ module Elements
3
+ class Heading < Element
4
+
5
+ end
6
+
7
+ ::PageObject::Elements.tag_to_class[:h1] = ::PageObject::Elements::Heading
8
+ ::PageObject::Elements.tag_to_class[:h2] = ::PageObject::Elements::Heading
9
+ ::PageObject::Elements.tag_to_class[:h3] = ::PageObject::Elements::Heading
10
+ ::PageObject::Elements.tag_to_class[:h4] = ::PageObject::Elements::Heading
11
+ ::PageObject::Elements.tag_to_class[:h5] = ::PageObject::Elements::Heading
12
+ ::PageObject::Elements.tag_to_class[:h6] = ::PageObject::Elements::Heading
13
+ end
14
+ end
@@ -1,9 +1,9 @@
1
- module PageObject
2
- module Elements
3
- class HiddenField < Element
4
-
5
- end
6
-
7
- ::PageObject::Elements.type_to_class[:hidden] = ::PageObject::Elements::HiddenField
8
- end
9
- end
1
+ module PageObject
2
+ module Elements
3
+ class HiddenField < Element
4
+
5
+ end
6
+
7
+ ::PageObject::Elements.type_to_class[:hidden] = ::PageObject::Elements::HiddenField
8
+ end
9
+ end
@@ -1,10 +1,10 @@
1
- module PageObject
2
- module Elements
3
- class Image < Element
4
-
5
- end
6
-
7
- ::PageObject::Elements.tag_to_class[:img] = ::PageObject::Elements::Image
8
-
9
- end
10
- end
1
+ module PageObject
2
+ module Elements
3
+ class Image < Element
4
+
5
+ end
6
+
7
+ ::PageObject::Elements.tag_to_class[:img] = ::PageObject::Elements::Image
8
+
9
+ end
10
+ end
@@ -1,9 +1,9 @@
1
- module PageObject
2
- module Elements
3
- class Italic < Element
4
-
5
- end
6
-
7
- ::PageObject::Elements.tag_to_class[:i] = ::PageObject::Elements::Italic
8
- end
9
- end
1
+ module PageObject
2
+ module Elements
3
+ class Italic < Element
4
+
5
+ end
6
+
7
+ ::PageObject::Elements.tag_to_class[:i] = ::PageObject::Elements::Italic
8
+ end
9
+ end
@@ -1,9 +1,9 @@
1
- module PageObject
2
- module Elements
3
- class Label < Element
4
-
5
- end
6
-
7
- ::PageObject::Elements.tag_to_class[:label] = ::PageObject::Elements::Label
8
- end
9
- end
1
+ module PageObject
2
+ module Elements
3
+ class Label < Element
4
+
5
+ end
6
+
7
+ ::PageObject::Elements.tag_to_class[:label] = ::PageObject::Elements::Label
8
+ end
9
+ end
@@ -1,9 +1,9 @@
1
- module PageObject
2
- module Elements
3
- class Link < Element
4
-
5
- end
6
-
7
- ::PageObject::Elements.tag_to_class[:a] = ::PageObject::Elements::Link
8
- end
9
- end
1
+ module PageObject
2
+ module Elements
3
+ class Link < Element
4
+
5
+ end
6
+
7
+ ::PageObject::Elements.tag_to_class[:a] = ::PageObject::Elements::Link
8
+ end
9
+ end
@@ -1,9 +1,9 @@
1
- module PageObject
2
- module Elements
3
- class ListItem < Element
4
-
5
- end
6
-
7
- ::PageObject::Elements.tag_to_class[:li] = ::PageObject::Elements::ListItem
8
- end
9
- end
1
+ module PageObject
2
+ module Elements
3
+ class ListItem < Element
4
+
5
+ end
6
+
7
+ ::PageObject::Elements.tag_to_class[:li] = ::PageObject::Elements::ListItem
8
+ end
9
+ end
@@ -1,11 +1,11 @@
1
- module PageObject
2
- module Elements
3
- class Media < Element
4
-
5
- def has_controls?
6
- attribute(:controls)
7
- end
8
-
9
- end
10
- end
11
- end
1
+ module PageObject
2
+ module Elements
3
+ class Media < Element
4
+
5
+ def has_controls?
6
+ attribute(:controls)
7
+ end
8
+
9
+ end
10
+ end
11
+ end
@@ -1,9 +1,9 @@
1
- module PageObject
2
- module Elements
3
- class Option < Element
4
-
5
- end
6
-
7
- ::PageObject::Elements.tag_to_class[:option] = ::PageObject::Elements::Option
8
- end
9
- end
1
+ module PageObject
2
+ module Elements
3
+ class Option < Element
4
+
5
+ end
6
+
7
+ ::PageObject::Elements.tag_to_class[:option] = ::PageObject::Elements::Option
8
+ end
9
+ end
@@ -1,45 +1,43 @@
1
-
2
- module PageObject
3
- module Elements
4
- class OrderedList < Element
5
- include Enumerable
6
-
7
- #
8
- # iterator that yields with a PageObject::Elements::ListItem
9
- #
10
- # @return [PageObject::Elements::ListItem]
11
- #
12
- def each(&block)
13
- list_items.each(&block)
14
- end
15
-
16
- #
17
- # Return the PageObject::Elements::ListItem for the index provided. Index
18
- # is zero based.
19
- #
20
- # @return [PageObject::Elements::ListItem]
21
- #
22
- def [](idx)
23
- list_items[idx]
24
- end
25
-
26
- #
27
- # Return the number of items contained in the ordered list
28
- #
29
- def items
30
- list_items.size
31
- end
32
-
33
- #
34
- # Return Array of ListItem objects that are children of the OrderedList
35
- #
36
- def list_items
37
- @list_items ||= children(tag_name: 'li').map do |obj|
38
- Object::PageObject::Elements::ListItem.new(obj)
39
- end
40
- end
41
- end
42
-
43
- ::PageObject::Elements.tag_to_class[:ol] = ::PageObject::Elements::OrderedList
44
- end
45
- end
1
+
2
+ module PageObject
3
+ module Elements
4
+ class OrderedList < Element
5
+ include Enumerable
6
+
7
+ #
8
+ # iterator that yields with a PageObject::Elements::ListItem
9
+ #
10
+ # @return [PageObject::Elements::ListItem]
11
+ #
12
+ def each(&block)
13
+ list_items.each(&block)
14
+ end
15
+
16
+ #
17
+ # Return the PageObject::Elements::ListItem for the index provided. Index
18
+ # is zero based.
19
+ #
20
+ # @return [PageObject::Elements::ListItem]
21
+ #
22
+ def [](idx)
23
+ list_items[idx]
24
+ end
25
+
26
+ #
27
+ # Return the number of items contained in the ordered list
28
+ #
29
+ def items
30
+ list_items.size
31
+ end
32
+
33
+ #
34
+ # Return Array of ListItem objects that are children of the OrderedList
35
+ #
36
+ def list_items
37
+ @list_items ||= children(tag_name: 'li')
38
+ end
39
+ end
40
+
41
+ ::PageObject::Elements.tag_to_class[:ol] = ::PageObject::Elements::OrderedList
42
+ end
43
+ end
@@ -1,9 +1,9 @@
1
- module PageObject
2
- module Elements
3
- class Paragraph < Element
4
-
5
- end
6
-
7
- ::PageObject::Elements.tag_to_class[:p] = ::PageObject::Elements::Paragraph
8
- end
9
- end
1
+ module PageObject
2
+ module Elements
3
+ class Paragraph < Element
4
+
5
+ end
6
+
7
+ ::PageObject::Elements.tag_to_class[:p] = ::PageObject::Elements::Paragraph
8
+ end
9
+ end
@@ -1,9 +1,9 @@
1
- module PageObject
2
- module Elements
3
- class RadioButton < Element
4
-
5
- end
6
-
7
- ::PageObject::Elements.type_to_class[:radio] = ::PageObject::Elements::RadioButton
8
- end
9
- end
1
+ module PageObject
2
+ module Elements
3
+ class RadioButton < Element
4
+
5
+ end
6
+
7
+ ::PageObject::Elements.type_to_class[:radio] = ::PageObject::Elements::RadioButton
8
+ end
9
+ end
@@ -1,42 +1,42 @@
1
- module PageObject
2
- module Elements
3
- class SelectList < Element
4
-
5
- #
6
- # Return the PageObject::Elements::Option for the index provided. Index
7
- # is zero based.
8
- #
9
- # @return [PageObject::Elements::Option]
10
- #
11
- def [](idx)
12
- options[idx]
13
- end
14
-
15
- #
16
- # Return an array of Options contained in the select list.
17
- #
18
- # @return [array of PageObject::Elements::Option]
19
- #
20
- def options
21
- element.options.map { |e| PageObject::Elements::Option.new(e) }
22
- end
23
-
24
- #
25
- # @return [Array<String>] An array of strings representing the text of the currently selected options.
26
- #
27
- def selected_options
28
- element.selected_options.map(&:text).compact
29
- end
30
-
31
- #
32
- # @return [Array<String>] An array of strings representing the value of the currently selected options.
33
- #
34
- def selected_values
35
- element.selected_options.map(&:value).compact
36
- end
37
-
38
- end
39
-
40
- ::PageObject::Elements.tag_to_class[:select] = ::PageObject::Elements::SelectList
41
- end
42
- end
1
+ module PageObject
2
+ module Elements
3
+ class SelectList < Element
4
+
5
+ #
6
+ # Return the PageObject::Elements::Option for the index provided. Index
7
+ # is zero based.
8
+ #
9
+ # @return [PageObject::Elements::Option]
10
+ #
11
+ def [](idx)
12
+ options[idx]
13
+ end
14
+
15
+ #
16
+ # Return an array of Options contained in the select list.
17
+ #
18
+ # @return [array of PageObject::Elements::Option]
19
+ #
20
+ def options
21
+ element.options.map { |e| PageObject::Elements::Option.new(e) }
22
+ end
23
+
24
+ #
25
+ # @return [Array<String>] An array of strings representing the text of the currently selected options.
26
+ #
27
+ def selected_options
28
+ element.selected_options.map(&:text).compact
29
+ end
30
+
31
+ #
32
+ # @return [Array<String>] An array of strings representing the value of the currently selected options.
33
+ #
34
+ def selected_values
35
+ element.selected_options.map(&:value).compact
36
+ end
37
+
38
+ end
39
+
40
+ ::PageObject::Elements.tag_to_class[:select] = ::PageObject::Elements::SelectList
41
+ end
42
+ end