page-object 2.2.6 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  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 -916
  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 -209
  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 -43
  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 -85
  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 -42
  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 -105
  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 +8 -7
@@ -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,43 +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')
38
- end
39
- end
40
-
41
- ::PageObject::Elements.tag_to_class[:ol] = ::PageObject::Elements::OrderedList
42
- end
43
- 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