page_object 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.
Files changed (272) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +7 -0
  3. data/.rspec +2 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +7 -0
  7. data/ChangeLog +809 -0
  8. data/Gemfile +14 -0
  9. data/Guardfile +20 -0
  10. data/LICENSE +20 -0
  11. data/README.md +111 -0
  12. data/Rakefile +35 -0
  13. data/cucumber.yml +10 -0
  14. data/features/area.feature +35 -0
  15. data/features/async.feature +30 -0
  16. data/features/audio.feature +68 -0
  17. data/features/bold.feature +21 -0
  18. data/features/button.feature +98 -0
  19. data/features/canvas.feature +37 -0
  20. data/features/check_box.feature +55 -0
  21. data/features/div.feature +45 -0
  22. data/features/element.feature +322 -0
  23. data/features/file_field.feature +40 -0
  24. data/features/form.feature +43 -0
  25. data/features/frames.feature +75 -0
  26. data/features/generic_elements.feature +29 -0
  27. data/features/gxt_table_extension.feature +24 -0
  28. data/features/headings.feature +97 -0
  29. data/features/hidden_field.feature +45 -0
  30. data/features/html/04-Death_Becomes_Fur.mp4 +0 -0
  31. data/features/html/04-Death_Becomes_Fur.oga +0 -0
  32. data/features/html/async.html +36 -0
  33. data/features/html/double_click.html +13 -0
  34. data/features/html/failure.html +8 -0
  35. data/features/html/frame_1.html +18 -0
  36. data/features/html/frame_2.html +16 -0
  37. data/features/html/frame_3.html +14 -0
  38. data/features/html/frames.html +12 -0
  39. data/features/html/hover.html +12 -0
  40. data/features/html/iframes.html +12 -0
  41. data/features/html/images/circle.png +0 -0
  42. data/features/html/images/img_pulpit.jpg +0 -0
  43. data/features/html/images/submit.gif +0 -0
  44. data/features/html/indexed_property.html +55 -0
  45. data/features/html/modal.html +17 -0
  46. data/features/html/modal_1.html +38 -0
  47. data/features/html/modal_2.html +27 -0
  48. data/features/html/movie.mp4 +0 -0
  49. data/features/html/movie.ogg +0 -0
  50. data/features/html/multi_elements.html +144 -0
  51. data/features/html/nested_elements.html +77 -0
  52. data/features/html/nested_frame_1.html +1 -0
  53. data/features/html/nested_frame_2.html +11 -0
  54. data/features/html/nested_frame_3.html +14 -0
  55. data/features/html/nested_frames.html +10 -0
  56. data/features/html/planets.gif +0 -0
  57. data/features/html/static_elements.html +207 -0
  58. data/features/html/success.html +8 -0
  59. data/features/html/sun.gif +0 -0
  60. data/features/html/sun.html +7 -0
  61. data/features/image.feature +50 -0
  62. data/features/indexed_property.feature +117 -0
  63. data/features/javascript.feature +28 -0
  64. data/features/label.feature +46 -0
  65. data/features/link.feature +52 -0
  66. data/features/list_item.feature +36 -0
  67. data/features/modal_dialog.feature +15 -0
  68. data/features/multi_elements.feature +492 -0
  69. data/features/nested_elements.feature +117 -0
  70. data/features/ordered_list.feature +56 -0
  71. data/features/page_level_actions.feature +90 -0
  72. data/features/paragraph.feature +35 -0
  73. data/features/radio_button.feature +58 -0
  74. data/features/radio_button_group.feature +29 -0
  75. data/features/sample-app/public/jquery-1.3.2.js +4376 -0
  76. data/features/sample-app/public/jquery.html +30 -0
  77. data/features/sample-app/public/prototype-1.6.0.3.js +4320 -0
  78. data/features/sample-app/public/prototype.html +35 -0
  79. data/features/sample-app/sample_app.rb +35 -0
  80. data/features/section.feature +132 -0
  81. data/features/select_list.feature +86 -0
  82. data/features/span.feature +37 -0
  83. data/features/step_definitions/accessor_steps.rb +64 -0
  84. data/features/step_definitions/area_steps.rb +19 -0
  85. data/features/step_definitions/async_steps.rb +83 -0
  86. data/features/step_definitions/audio_steps.rb +27 -0
  87. data/features/step_definitions/bold_steps.rb +12 -0
  88. data/features/step_definitions/button_steps.rb +48 -0
  89. data/features/step_definitions/canvas_steps.rb +15 -0
  90. data/features/step_definitions/check_box_steps.rb +35 -0
  91. data/features/step_definitions/div_steps.rb +19 -0
  92. data/features/step_definitions/element_steps.rb +266 -0
  93. data/features/step_definitions/file_field_steps.rb +19 -0
  94. data/features/step_definitions/form_steps.rb +19 -0
  95. data/features/step_definitions/frames_steps.rb +159 -0
  96. data/features/step_definitions/generic_element_steps.rb +31 -0
  97. data/features/step_definitions/gxt_table_steps.rb +58 -0
  98. data/features/step_definitions/headings_steps.rb +12 -0
  99. data/features/step_definitions/hidden_field_steps.rb +27 -0
  100. data/features/step_definitions/image_steps.rb +27 -0
  101. data/features/step_definitions/indexed_property_steps.rb +163 -0
  102. data/features/step_definitions/javascript_steps.rb +53 -0
  103. data/features/step_definitions/label_steps.rb +19 -0
  104. data/features/step_definitions/link_steps.rb +40 -0
  105. data/features/step_definitions/list_item_steps.rb +19 -0
  106. data/features/step_definitions/modal_dialog_steps.rb +62 -0
  107. data/features/step_definitions/multi_elements_steps.rb +541 -0
  108. data/features/step_definitions/nested_elements_steps.rb +212 -0
  109. data/features/step_definitions/ordered_list_steps.rb +23 -0
  110. data/features/step_definitions/page_level_actions_steps.rb +135 -0
  111. data/features/step_definitions/page_traversal_steps.rb +4 -0
  112. data/features/step_definitions/paragraph_steps.rb +28 -0
  113. data/features/step_definitions/radio_button_group_steps.rb +36 -0
  114. data/features/step_definitions/radio_button_steps.rb +27 -0
  115. data/features/step_definitions/section_steps.rb +268 -0
  116. data/features/step_definitions/select_list_steps.rb +65 -0
  117. data/features/step_definitions/span_steps.rb +19 -0
  118. data/features/step_definitions/table_cell_steps.rb +15 -0
  119. data/features/step_definitions/table_row_steps.rb +23 -0
  120. data/features/step_definitions/table_steps.rb +70 -0
  121. data/features/step_definitions/text_area_steps.rb +35 -0
  122. data/features/step_definitions/text_field_steps.rb +35 -0
  123. data/features/step_definitions/unordered_list_steps.rb +23 -0
  124. data/features/step_definitions/video_steps.rb +45 -0
  125. data/features/support/ajax_text_environment.rb +26 -0
  126. data/features/support/env.rb +8 -0
  127. data/features/support/hooks.rb +8 -0
  128. data/features/support/page.rb +382 -0
  129. data/features/support/persistent_browser.rb +70 -0
  130. data/features/support/targets/firefox14_osx.rb +6 -0
  131. data/features/support/targets/firefox14_windows7.rb +6 -0
  132. data/features/support/url_helper.rb +57 -0
  133. data/features/table.feature +122 -0
  134. data/features/table_cell.feature +45 -0
  135. data/features/table_row.feature +43 -0
  136. data/features/text_area.feature +51 -0
  137. data/features/text_field.feature +70 -0
  138. data/features/unordered_list.feature +56 -0
  139. data/features/video.feature +73 -0
  140. data/lib/page-object.rb +421 -0
  141. data/lib/page-object/accessors.rb +1412 -0
  142. data/lib/page-object/core_ext/string.rb +5 -0
  143. data/lib/page-object/element_locators.rb +21 -0
  144. data/lib/page-object/elements.rb +60 -0
  145. data/lib/page-object/elements/area.rb +31 -0
  146. data/lib/page-object/elements/audio.rb +9 -0
  147. data/lib/page-object/elements/bold.rb +11 -0
  148. data/lib/page-object/elements/button.rb +35 -0
  149. data/lib/page-object/elements/canvas.rb +23 -0
  150. data/lib/page-object/elements/check_box.rb +37 -0
  151. data/lib/page-object/elements/div.rb +19 -0
  152. data/lib/page-object/elements/element.rb +226 -0
  153. data/lib/page-object/elements/file_field.rb +38 -0
  154. data/lib/page-object/elements/form.rb +36 -0
  155. data/lib/page-object/elements/heading.rb +15 -0
  156. data/lib/page-object/elements/hidden_field.rb +22 -0
  157. data/lib/page-object/elements/image.rb +36 -0
  158. data/lib/page-object/elements/label.rb +19 -0
  159. data/lib/page-object/elements/link.rb +46 -0
  160. data/lib/page-object/elements/list_item.rb +19 -0
  161. data/lib/page-object/elements/media.rb +45 -0
  162. data/lib/page-object/elements/option.rb +10 -0
  163. data/lib/page-object/elements/ordered_list.rb +50 -0
  164. data/lib/page-object/elements/paragraph.rb +9 -0
  165. data/lib/page-object/elements/radio_button.rb +37 -0
  166. data/lib/page-object/elements/select_list.rb +42 -0
  167. data/lib/page-object/elements/span.rb +19 -0
  168. data/lib/page-object/elements/table.rb +79 -0
  169. data/lib/page-object/elements/table_cell.rb +28 -0
  170. data/lib/page-object/elements/table_row.rb +50 -0
  171. data/lib/page-object/elements/text_area.rb +38 -0
  172. data/lib/page-object/elements/text_field.rb +42 -0
  173. data/lib/page-object/elements/unordered_list.rb +51 -0
  174. data/lib/page-object/elements/video.rb +18 -0
  175. data/lib/page-object/indexed_properties.rb +40 -0
  176. data/lib/page-object/javascript/angularjs.rb +14 -0
  177. data/lib/page-object/javascript/jquery.rb +14 -0
  178. data/lib/page-object/javascript/prototype.rb +14 -0
  179. data/lib/page-object/javascript/yui.rb +19 -0
  180. data/lib/page-object/javascript_framework_facade.rb +80 -0
  181. data/lib/page-object/loads_platform.rb +45 -0
  182. data/lib/page-object/locator_generator.rb +131 -0
  183. data/lib/page-object/nested_elements.rb +17 -0
  184. data/lib/page-object/page_factory.rb +108 -0
  185. data/lib/page-object/page_populator.rb +83 -0
  186. data/lib/page-object/platforms.rb +18 -0
  187. data/lib/page-object/platforms/selenium_webdriver.rb +30 -0
  188. data/lib/page-object/platforms/selenium_webdriver/button.rb +15 -0
  189. data/lib/page-object/platforms/selenium_webdriver/check_box.rb +29 -0
  190. data/lib/page-object/platforms/selenium_webdriver/element.rb +291 -0
  191. data/lib/page-object/platforms/selenium_webdriver/file_field.rb +16 -0
  192. data/lib/page-object/platforms/selenium_webdriver/form.rb +16 -0
  193. data/lib/page-object/platforms/selenium_webdriver/image.rb +28 -0
  194. data/lib/page-object/platforms/selenium_webdriver/link.rb +23 -0
  195. data/lib/page-object/platforms/selenium_webdriver/ordered_list.rb +39 -0
  196. data/lib/page-object/platforms/selenium_webdriver/page_object.rb +1237 -0
  197. data/lib/page-object/platforms/selenium_webdriver/radio_button.rb +22 -0
  198. data/lib/page-object/platforms/selenium_webdriver/select_list.rb +93 -0
  199. data/lib/page-object/platforms/selenium_webdriver/surrogate_selenium_element.rb +42 -0
  200. data/lib/page-object/platforms/selenium_webdriver/table.rb +42 -0
  201. data/lib/page-object/platforms/selenium_webdriver/table_row.rb +43 -0
  202. data/lib/page-object/platforms/selenium_webdriver/text_area.rb +17 -0
  203. data/lib/page-object/platforms/selenium_webdriver/text_field.rb +17 -0
  204. data/lib/page-object/platforms/selenium_webdriver/unordered_list.rb +39 -0
  205. data/lib/page-object/platforms/watir_webdriver.rb +30 -0
  206. data/lib/page-object/platforms/watir_webdriver/check_box.rb +29 -0
  207. data/lib/page-object/platforms/watir_webdriver/element.rb +249 -0
  208. data/lib/page-object/platforms/watir_webdriver/file_field.rb +16 -0
  209. data/lib/page-object/platforms/watir_webdriver/form.rb +16 -0
  210. data/lib/page-object/platforms/watir_webdriver/image.rb +22 -0
  211. data/lib/page-object/platforms/watir_webdriver/link.rb +15 -0
  212. data/lib/page-object/platforms/watir_webdriver/ordered_list.rb +35 -0
  213. data/lib/page-object/platforms/watir_webdriver/page_object.rb +1082 -0
  214. data/lib/page-object/platforms/watir_webdriver/radio_button.rb +22 -0
  215. data/lib/page-object/platforms/watir_webdriver/select_list.rb +74 -0
  216. data/lib/page-object/platforms/watir_webdriver/table.rb +38 -0
  217. data/lib/page-object/platforms/watir_webdriver/table_row.rb +37 -0
  218. data/lib/page-object/platforms/watir_webdriver/text_area.rb +23 -0
  219. data/lib/page-object/platforms/watir_webdriver/text_field.rb +16 -0
  220. data/lib/page-object/platforms/watir_webdriver/unordered_list.rb +36 -0
  221. data/lib/page-object/sections.rb +29 -0
  222. data/lib/page-object/version.rb +4 -0
  223. data/lib/page-object/widgets.rb +133 -0
  224. data/page_object.gemspec +31 -0
  225. data/pageobject.gems +1 -0
  226. data/spec/page-object/accessors_spec.rb +40 -0
  227. data/spec/page-object/element_locators_spec.rb +1122 -0
  228. data/spec/page-object/elements/area_spec.rb +45 -0
  229. data/spec/page-object/elements/bold_spec.rb +29 -0
  230. data/spec/page-object/elements/button_spec.rb +64 -0
  231. data/spec/page-object/elements/canvas_spec.rb +40 -0
  232. data/spec/page-object/elements/check_box_spec.rb +49 -0
  233. data/spec/page-object/elements/div_spec.rb +28 -0
  234. data/spec/page-object/elements/element_spec.rb +114 -0
  235. data/spec/page-object/elements/file_field_spec.rb +39 -0
  236. data/spec/page-object/elements/form_spec.rb +28 -0
  237. data/spec/page-object/elements/heading_spec.rb +48 -0
  238. data/spec/page-object/elements/hidden_field_spec.rb +28 -0
  239. data/spec/page-object/elements/image_spec.rb +66 -0
  240. data/spec/page-object/elements/label_spec.rb +29 -0
  241. data/spec/page-object/elements/link_spec.rb +49 -0
  242. data/spec/page-object/elements/list_item_spec.rb +29 -0
  243. data/spec/page-object/elements/nested_element_spec.rb +254 -0
  244. data/spec/page-object/elements/option_spec.rb +11 -0
  245. data/spec/page-object/elements/ordered_list_spec.rb +94 -0
  246. data/spec/page-object/elements/paragraph_spec.rb +27 -0
  247. data/spec/page-object/elements/select_list_spec.rb +142 -0
  248. data/spec/page-object/elements/selenium/radio_button_spec.rb +44 -0
  249. data/spec/page-object/elements/selenium/text_field_spec.rb +49 -0
  250. data/spec/page-object/elements/selenium_element_spec.rb +177 -0
  251. data/spec/page-object/elements/span_spec.rb +26 -0
  252. data/spec/page-object/elements/table_cell_spec.rb +21 -0
  253. data/spec/page-object/elements/table_row_spec.rb +70 -0
  254. data/spec/page-object/elements/table_spec.rb +98 -0
  255. data/spec/page-object/elements/text_area_spec.rb +39 -0
  256. data/spec/page-object/elements/unordered_list_spec.rb +94 -0
  257. data/spec/page-object/elements/watir_element_spec.rb +145 -0
  258. data/spec/page-object/javascript_framework_facade_spec.rb +61 -0
  259. data/spec/page-object/loads_platform_spec.rb +53 -0
  260. data/spec/page-object/page-object_spec.rb +407 -0
  261. data/spec/page-object/page_factory_spec.rb +238 -0
  262. data/spec/page-object/page_populator_spec.rb +122 -0
  263. data/spec/page-object/page_section_spec.rb +73 -0
  264. data/spec/page-object/platforms/selenium_webdriver/selenium_page_object_spec.rb +68 -0
  265. data/spec/page-object/platforms/selenium_webdriver_spec.rb +29 -0
  266. data/spec/page-object/platforms/watir_webdriver/watir_page_object_spec.rb +29 -0
  267. data/spec/page-object/platforms/watir_webdriver_spec.rb +9 -0
  268. data/spec/page-object/selenium_accessors_spec.rb +609 -0
  269. data/spec/page-object/watir_accessors_spec.rb +1134 -0
  270. data/spec/page-object/widget_spec.rb +226 -0
  271. data/spec/spec_helper.rb +47 -0
  272. metadata +601 -0
@@ -0,0 +1,226 @@
1
+ require 'spec_helper'
2
+ require 'page-object'
3
+ require 'page-object/elements'
4
+
5
+ describe "Widget PageObject Extensions" do
6
+ context "When module is loaded and included before PageObject is loaded " do
7
+
8
+ class GxtTable < PageObject::Elements::Table
9
+
10
+ @protected
11
+
12
+ def child_xpath
13
+ ".//descendant::tr"
14
+ end
15
+ end
16
+ PageObject.register_widget :gxt_table, GxtTable, :div
17
+
18
+ class WidgetMatrix < PageObject::Elements::Table
19
+ def self.plural_form
20
+ 'widget_matrices'
21
+ end
22
+ end
23
+ PageObject.register_widget :widget_matrix, WidgetMatrix, :div
24
+ end
25
+
26
+ class WidgetTestPageObject
27
+ include PageObject
28
+
29
+ gxt_table(:a_table, :id => "top_div_id")
30
+ gxt_tables(:some_table, :class => "top_div_class")
31
+ gxt_table :gxt_block_table do |element|
32
+ "block_gxt_table"
33
+ end
34
+ gxt_tables :gxt_multiple_block_table do |element|
35
+ "multiple_block_gxt_table"
36
+ end
37
+
38
+ widget_matrices :matrix, :class => 'matrix'
39
+
40
+ div(:outer_div)
41
+ gxt_table(:a_nested_gxt_table) { |page| page.outer_div_element.gxt_table_element }
42
+ end
43
+
44
+ describe "Widget Element Locators" do
45
+
46
+ context "when using Watir" do
47
+ let(:watir_browser) { mock_watir_browser }
48
+ let(:watir_page_object) { WidgetTestPageObject.new(watir_browser) }
49
+
50
+ it "should find a gxt_table element" do
51
+ expect(watir_browser).to receive(:div).with(:id => 'blah').and_return(watir_browser)
52
+ element = watir_page_object.gxt_table_element(:id => 'blah')
53
+ expect(element).to be_instance_of GxtTable
54
+ end
55
+ end
56
+
57
+ context "when using Selenium" do
58
+ let(:selenium_browser) { mock_selenium_browser }
59
+ let(:selenium_page_object) { WidgetTestPageObject.new(selenium_browser) }
60
+
61
+ it "should find a gxt_table element" do
62
+ expect(selenium_browser).to receive(:find_element).with(:id, 'blah').and_return(selenium_browser)
63
+ element = selenium_page_object.gxt_table_element(:id => 'blah')
64
+ expect(element).to be_instance_of GxtTable
65
+ end
66
+ end
67
+ end
68
+
69
+ describe "Widget Accessors" do
70
+ let(:watir_browser) { mock_watir_browser }
71
+ let(:watir_page_object) { WidgetTestPageObject.new(watir_browser) }
72
+
73
+ context "using default identifiers" do
74
+ class WatirDefaultIdentifier
75
+ include PageObject
76
+
77
+ gxt_table :default_gxt_table
78
+ end
79
+
80
+ let(:default_identifier) { WatirDefaultIdentifier.new(watir_browser) }
81
+
82
+ def mock_driver_for(tag)
83
+ expect(watir_browser).to receive(tag).with(:index => 0).and_return(watir_browser)
84
+ end
85
+
86
+ it "should work for a gxt_table" do
87
+ mock_driver_for :div
88
+ expect(default_identifier.default_gxt_table_element).not_to be_nil
89
+ end
90
+
91
+ end
92
+
93
+ describe "gxt_table accessors" do
94
+ context "when called on a page object" do
95
+ it "should generate accessor methods" do
96
+ expect(watir_page_object).to respond_to(:a_table_element)
97
+ end
98
+
99
+ it "should generate multiple accessor methods" do
100
+ expect(watir_page_object).to respond_to(:some_table_elements)
101
+ end
102
+
103
+ it "should call a block on the element method when present" do
104
+ expect(watir_page_object.gxt_block_table_element).to eql "block_gxt_table"
105
+ end
106
+
107
+ it "should call a block on the elements method when present" do
108
+ expect(watir_page_object.gxt_multiple_block_table_elements).to eql "multiple_block_gxt_table"
109
+ end
110
+ end
111
+
112
+ it "should retrieve the table element from the page" do
113
+ expect(watir_browser).to receive(:div).and_return(watir_browser)
114
+ element = watir_page_object.a_table_element
115
+ expect(element).to be_instance_of GxtTable
116
+ end
117
+
118
+ it "should retrieve all table elements from the page" do
119
+ expect(watir_browser).to receive(:divs).and_return([watir_browser])
120
+ element = watir_page_object.some_table_elements
121
+ expect(element[0]).to be_instance_of GxtTable
122
+ end
123
+
124
+ it "should be able to specify the plural form" do
125
+ expect(watir_browser).to receive(:divs).and_return([watir_browser])
126
+ element = watir_page_object.matrix_elements
127
+ expect(element[0]).to be_instance_of WidgetMatrix
128
+ end
129
+ end
130
+ end
131
+
132
+ describe "Widget Elements-GxtTable" do
133
+ describe "when mapping how to find an element" do
134
+ it "should map watir types to same" do
135
+ [:class, :id, :index, :xpath].each do |t|
136
+ identifier = GxtTable.watir_identifier_for t => 'value'
137
+ expect(identifier.keys.first).to eql t
138
+ end
139
+ end
140
+
141
+ it "should map selenium types to same" do
142
+ [:class, :id, :index, :name, :xpath].each do |t|
143
+ key, value = GxtTable.selenium_identifier_for t => 'value'
144
+ expect(key).to eql t
145
+ end
146
+ end
147
+ end
148
+
149
+ describe "interface" do
150
+ let(:gxt_table_element) { double('gxt_table_element') }
151
+
152
+ before(:each) do
153
+ allow(gxt_table_element).to receive(:[]).and_return(gxt_table_element)
154
+ allow(gxt_table_element).to receive(:find_elements).and_return(gxt_table_element)
155
+ end
156
+
157
+ context "for watir" do
158
+ let(:watir_table) { GxtTable.new(gxt_table_element, :platform => :watir_webdriver) }
159
+
160
+ it "should return a table row when indexed" do
161
+ allow(gxt_table_element).to receive(:[]).with(1).and_return(gxt_table_element)
162
+ expect(watir_table[1]).to be_instance_of PageObject::Elements::TableRow
163
+ end
164
+
165
+ it "should return the number of rows" do
166
+ allow(gxt_table_element).to receive(:wd).and_return(gxt_table_element)
167
+ expect(gxt_table_element).to receive(:find_elements).with(:xpath, ".//descendant::tr").and_return(gxt_table_element)
168
+ expect(gxt_table_element).to receive(:size).and_return(2)
169
+ expect(watir_table.rows).to eql 2
170
+ end
171
+ end
172
+
173
+ context "for selenium" do
174
+ let(:selenium_table) { GxtTable.new(gxt_table_element, :platform => :selenium_webdriver) }
175
+
176
+ it "should return a table row when indexed" do
177
+ expect(gxt_table_element).to receive(:find_elements).with(:xpath, ".//descendant::tr").and_return(gxt_table_element)
178
+ expect(selenium_table[1]).to be_instance_of PageObject::Elements::TableRow
179
+ end
180
+
181
+ it "should return the number of rows" do
182
+ expect(gxt_table_element).to receive(:find_elements).with(:xpath, ".//descendant::tr").and_return(gxt_table_element)
183
+ expect(gxt_table_element).to receive(:size).and_return(2)
184
+ expect(selenium_table.rows).to eql 2
185
+ end
186
+
187
+ it "should iterate over the table rows" do
188
+ expect(selenium_table).to receive(:rows).and_return(2)
189
+ count = 0
190
+ selenium_table.each { |e| count += 1 }
191
+ expect(count).to eql 2
192
+ end
193
+ end
194
+ end
195
+ end
196
+
197
+ describe "Element with nested elements" do
198
+ context "in Watir" do
199
+ before(:each) do
200
+ @watir_driver = Watir::Element.new(nil, {})
201
+ @watir_element = PageObject::Elements::Element.new(@watir_driver, :platform => :watir_webdriver)
202
+ end
203
+
204
+ it "should find a nested gxt_table" do
205
+ expect(@watir_driver).to receive(:div).and_return(@watir_driver)
206
+ @watir_element.gxt_table_element
207
+ end
208
+ end
209
+
210
+ context "in Selenium" do
211
+ before(:each) do
212
+ @selenium_driver = double('selenium')
213
+ @selenium_element = PageObject::Elements::Element.new(@selenium_driver, :platform => :selenium_webdriver)
214
+ end
215
+
216
+ it "should find a nested gxt_table" do
217
+ expect(@selenium_driver).to receive(:find_element).and_return(@selenium_driver)
218
+ @selenium_element.gxt_table_element
219
+ end
220
+ end
221
+ end
222
+ end
223
+
224
+
225
+
226
+
@@ -0,0 +1,47 @@
1
+ # encoding: utf-8
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+
5
+ if ENV['coverage']
6
+ raise 'simplecov only works on Ruby 1.9' unless RUBY_VERSION =~ /^1\.9/
7
+
8
+ require 'simplecov'
9
+ require 'coveralls'
10
+ SimpleCov.start { add_filter 'spec/' }
11
+ end
12
+
13
+ require 'rspec'
14
+ require 'watir-webdriver'
15
+ require 'selenium-webdriver'
16
+
17
+ require 'page-object'
18
+
19
+ def mock_watir_browser
20
+ watir_browser = double('watir')
21
+ allow(watir_browser).to receive(:is_a?).with(anything()).and_return(false)
22
+ allow(watir_browser).to receive(:is_a?).with(Watir::Browser).and_return(true)
23
+ watir_browser
24
+ end
25
+
26
+
27
+ def mock_selenium_browser
28
+ selenium_browser = double('selenium')
29
+ allow(selenium_browser).to receive(:is_a?).with(anything).and_return(false)
30
+ allow(selenium_browser).to receive(:is_a?).with(Selenium::WebDriver::Driver).and_return(true)
31
+ selenium_browser
32
+ end
33
+
34
+
35
+ def mock_adapter(browser, page_object)
36
+ adapter = double('adapter')
37
+ allow(adapter).to receive(:is_for?).with(anything()).and_return false
38
+ allow(adapter).to receive(:is_for?).with(browser).and_return true
39
+ allow(adapter).to receive(:create_page_object).and_return page_object
40
+ allow(adapter).to receive(:root_element_for).and_return browser
41
+ allow(adapter).to receive(:browser_for).and_return browser
42
+ adapter
43
+ end
44
+
45
+ def mock_adapters(adapters)
46
+ allow(PageObject::Platforms).to receive(:get).and_return adapters
47
+ end
metadata ADDED
@@ -0,0 +1,601 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: page_object
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Jeff Morgan
8
+ - Dane Andersen
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-06-17 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: watir-webdriver
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: 0.6.11
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: 0.6.11
28
+ - !ruby/object:Gem::Dependency
29
+ name: selenium-webdriver
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 2.44.0
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: 2.44.0
42
+ - !ruby/object:Gem::Dependency
43
+ name: page_navigation
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0.9'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0.9'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rspec
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: 3.1.0
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: 3.1.0
70
+ - !ruby/object:Gem::Dependency
71
+ name: cucumber
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: 1.3.0
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: 1.3.0
84
+ - !ruby/object:Gem::Dependency
85
+ name: yard
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: 0.7.2
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: 0.7.2
98
+ - !ruby/object:Gem::Dependency
99
+ name: rack
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '1.0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '1.0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: coveralls
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: 0.8.1
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: 0.8.1
126
+ description: Page Object DSL that works with both Watir and Selenium
127
+ email:
128
+ - jeff.morgan@leandog.com
129
+ - dane.andersen@gmail.com
130
+ executables: []
131
+ extensions: []
132
+ extra_rdoc_files: []
133
+ files:
134
+ - ".gitignore"
135
+ - ".rspec"
136
+ - ".ruby-gemset"
137
+ - ".ruby-version"
138
+ - ".travis.yml"
139
+ - ChangeLog
140
+ - Gemfile
141
+ - Guardfile
142
+ - LICENSE
143
+ - README.md
144
+ - Rakefile
145
+ - cucumber.yml
146
+ - features/area.feature
147
+ - features/async.feature
148
+ - features/audio.feature
149
+ - features/bold.feature
150
+ - features/button.feature
151
+ - features/canvas.feature
152
+ - features/check_box.feature
153
+ - features/div.feature
154
+ - features/element.feature
155
+ - features/file_field.feature
156
+ - features/form.feature
157
+ - features/frames.feature
158
+ - features/generic_elements.feature
159
+ - features/gxt_table_extension.feature
160
+ - features/headings.feature
161
+ - features/hidden_field.feature
162
+ - features/html/04-Death_Becomes_Fur.mp4
163
+ - features/html/04-Death_Becomes_Fur.oga
164
+ - features/html/async.html
165
+ - features/html/double_click.html
166
+ - features/html/failure.html
167
+ - features/html/frame_1.html
168
+ - features/html/frame_2.html
169
+ - features/html/frame_3.html
170
+ - features/html/frames.html
171
+ - features/html/hover.html
172
+ - features/html/iframes.html
173
+ - features/html/images/circle.png
174
+ - features/html/images/img_pulpit.jpg
175
+ - features/html/images/submit.gif
176
+ - features/html/indexed_property.html
177
+ - features/html/modal.html
178
+ - features/html/modal_1.html
179
+ - features/html/modal_2.html
180
+ - features/html/movie.mp4
181
+ - features/html/movie.ogg
182
+ - features/html/multi_elements.html
183
+ - features/html/nested_elements.html
184
+ - features/html/nested_frame_1.html
185
+ - features/html/nested_frame_2.html
186
+ - features/html/nested_frame_3.html
187
+ - features/html/nested_frames.html
188
+ - features/html/planets.gif
189
+ - features/html/static_elements.html
190
+ - features/html/success.html
191
+ - features/html/sun.gif
192
+ - features/html/sun.html
193
+ - features/image.feature
194
+ - features/indexed_property.feature
195
+ - features/javascript.feature
196
+ - features/label.feature
197
+ - features/link.feature
198
+ - features/list_item.feature
199
+ - features/modal_dialog.feature
200
+ - features/multi_elements.feature
201
+ - features/nested_elements.feature
202
+ - features/ordered_list.feature
203
+ - features/page_level_actions.feature
204
+ - features/paragraph.feature
205
+ - features/radio_button.feature
206
+ - features/radio_button_group.feature
207
+ - features/sample-app/public/jquery-1.3.2.js
208
+ - features/sample-app/public/jquery.html
209
+ - features/sample-app/public/prototype-1.6.0.3.js
210
+ - features/sample-app/public/prototype.html
211
+ - features/sample-app/sample_app.rb
212
+ - features/section.feature
213
+ - features/select_list.feature
214
+ - features/span.feature
215
+ - features/step_definitions/accessor_steps.rb
216
+ - features/step_definitions/area_steps.rb
217
+ - features/step_definitions/async_steps.rb
218
+ - features/step_definitions/audio_steps.rb
219
+ - features/step_definitions/bold_steps.rb
220
+ - features/step_definitions/button_steps.rb
221
+ - features/step_definitions/canvas_steps.rb
222
+ - features/step_definitions/check_box_steps.rb
223
+ - features/step_definitions/div_steps.rb
224
+ - features/step_definitions/element_steps.rb
225
+ - features/step_definitions/file_field_steps.rb
226
+ - features/step_definitions/form_steps.rb
227
+ - features/step_definitions/frames_steps.rb
228
+ - features/step_definitions/generic_element_steps.rb
229
+ - features/step_definitions/gxt_table_steps.rb
230
+ - features/step_definitions/headings_steps.rb
231
+ - features/step_definitions/hidden_field_steps.rb
232
+ - features/step_definitions/image_steps.rb
233
+ - features/step_definitions/indexed_property_steps.rb
234
+ - features/step_definitions/javascript_steps.rb
235
+ - features/step_definitions/label_steps.rb
236
+ - features/step_definitions/link_steps.rb
237
+ - features/step_definitions/list_item_steps.rb
238
+ - features/step_definitions/modal_dialog_steps.rb
239
+ - features/step_definitions/multi_elements_steps.rb
240
+ - features/step_definitions/nested_elements_steps.rb
241
+ - features/step_definitions/ordered_list_steps.rb
242
+ - features/step_definitions/page_level_actions_steps.rb
243
+ - features/step_definitions/page_traversal_steps.rb
244
+ - features/step_definitions/paragraph_steps.rb
245
+ - features/step_definitions/radio_button_group_steps.rb
246
+ - features/step_definitions/radio_button_steps.rb
247
+ - features/step_definitions/section_steps.rb
248
+ - features/step_definitions/select_list_steps.rb
249
+ - features/step_definitions/span_steps.rb
250
+ - features/step_definitions/table_cell_steps.rb
251
+ - features/step_definitions/table_row_steps.rb
252
+ - features/step_definitions/table_steps.rb
253
+ - features/step_definitions/text_area_steps.rb
254
+ - features/step_definitions/text_field_steps.rb
255
+ - features/step_definitions/unordered_list_steps.rb
256
+ - features/step_definitions/video_steps.rb
257
+ - features/support/ajax_text_environment.rb
258
+ - features/support/env.rb
259
+ - features/support/hooks.rb
260
+ - features/support/page.rb
261
+ - features/support/persistent_browser.rb
262
+ - features/support/targets/firefox14_osx.rb
263
+ - features/support/targets/firefox14_windows7.rb
264
+ - features/support/url_helper.rb
265
+ - features/table.feature
266
+ - features/table_cell.feature
267
+ - features/table_row.feature
268
+ - features/text_area.feature
269
+ - features/text_field.feature
270
+ - features/unordered_list.feature
271
+ - features/video.feature
272
+ - lib/page-object.rb
273
+ - lib/page-object/accessors.rb
274
+ - lib/page-object/core_ext/string.rb
275
+ - lib/page-object/element_locators.rb
276
+ - lib/page-object/elements.rb
277
+ - lib/page-object/elements/area.rb
278
+ - lib/page-object/elements/audio.rb
279
+ - lib/page-object/elements/bold.rb
280
+ - lib/page-object/elements/button.rb
281
+ - lib/page-object/elements/canvas.rb
282
+ - lib/page-object/elements/check_box.rb
283
+ - lib/page-object/elements/div.rb
284
+ - lib/page-object/elements/element.rb
285
+ - lib/page-object/elements/file_field.rb
286
+ - lib/page-object/elements/form.rb
287
+ - lib/page-object/elements/heading.rb
288
+ - lib/page-object/elements/hidden_field.rb
289
+ - lib/page-object/elements/image.rb
290
+ - lib/page-object/elements/label.rb
291
+ - lib/page-object/elements/link.rb
292
+ - lib/page-object/elements/list_item.rb
293
+ - lib/page-object/elements/media.rb
294
+ - lib/page-object/elements/option.rb
295
+ - lib/page-object/elements/ordered_list.rb
296
+ - lib/page-object/elements/paragraph.rb
297
+ - lib/page-object/elements/radio_button.rb
298
+ - lib/page-object/elements/select_list.rb
299
+ - lib/page-object/elements/span.rb
300
+ - lib/page-object/elements/table.rb
301
+ - lib/page-object/elements/table_cell.rb
302
+ - lib/page-object/elements/table_row.rb
303
+ - lib/page-object/elements/text_area.rb
304
+ - lib/page-object/elements/text_field.rb
305
+ - lib/page-object/elements/unordered_list.rb
306
+ - lib/page-object/elements/video.rb
307
+ - lib/page-object/indexed_properties.rb
308
+ - lib/page-object/javascript/angularjs.rb
309
+ - lib/page-object/javascript/jquery.rb
310
+ - lib/page-object/javascript/prototype.rb
311
+ - lib/page-object/javascript/yui.rb
312
+ - lib/page-object/javascript_framework_facade.rb
313
+ - lib/page-object/loads_platform.rb
314
+ - lib/page-object/locator_generator.rb
315
+ - lib/page-object/nested_elements.rb
316
+ - lib/page-object/page_factory.rb
317
+ - lib/page-object/page_populator.rb
318
+ - lib/page-object/platforms.rb
319
+ - lib/page-object/platforms/selenium_webdriver.rb
320
+ - lib/page-object/platforms/selenium_webdriver/button.rb
321
+ - lib/page-object/platforms/selenium_webdriver/check_box.rb
322
+ - lib/page-object/platforms/selenium_webdriver/element.rb
323
+ - lib/page-object/platforms/selenium_webdriver/file_field.rb
324
+ - lib/page-object/platforms/selenium_webdriver/form.rb
325
+ - lib/page-object/platforms/selenium_webdriver/image.rb
326
+ - lib/page-object/platforms/selenium_webdriver/link.rb
327
+ - lib/page-object/platforms/selenium_webdriver/ordered_list.rb
328
+ - lib/page-object/platforms/selenium_webdriver/page_object.rb
329
+ - lib/page-object/platforms/selenium_webdriver/radio_button.rb
330
+ - lib/page-object/platforms/selenium_webdriver/select_list.rb
331
+ - lib/page-object/platforms/selenium_webdriver/surrogate_selenium_element.rb
332
+ - lib/page-object/platforms/selenium_webdriver/table.rb
333
+ - lib/page-object/platforms/selenium_webdriver/table_row.rb
334
+ - lib/page-object/platforms/selenium_webdriver/text_area.rb
335
+ - lib/page-object/platforms/selenium_webdriver/text_field.rb
336
+ - lib/page-object/platforms/selenium_webdriver/unordered_list.rb
337
+ - lib/page-object/platforms/watir_webdriver.rb
338
+ - lib/page-object/platforms/watir_webdriver/check_box.rb
339
+ - lib/page-object/platforms/watir_webdriver/element.rb
340
+ - lib/page-object/platforms/watir_webdriver/file_field.rb
341
+ - lib/page-object/platforms/watir_webdriver/form.rb
342
+ - lib/page-object/platforms/watir_webdriver/image.rb
343
+ - lib/page-object/platforms/watir_webdriver/link.rb
344
+ - lib/page-object/platforms/watir_webdriver/ordered_list.rb
345
+ - lib/page-object/platforms/watir_webdriver/page_object.rb
346
+ - lib/page-object/platforms/watir_webdriver/radio_button.rb
347
+ - lib/page-object/platforms/watir_webdriver/select_list.rb
348
+ - lib/page-object/platforms/watir_webdriver/table.rb
349
+ - lib/page-object/platforms/watir_webdriver/table_row.rb
350
+ - lib/page-object/platforms/watir_webdriver/text_area.rb
351
+ - lib/page-object/platforms/watir_webdriver/text_field.rb
352
+ - lib/page-object/platforms/watir_webdriver/unordered_list.rb
353
+ - lib/page-object/sections.rb
354
+ - lib/page-object/version.rb
355
+ - lib/page-object/widgets.rb
356
+ - page_object.gemspec
357
+ - pageobject.gems
358
+ - spec/page-object/accessors_spec.rb
359
+ - spec/page-object/element_locators_spec.rb
360
+ - spec/page-object/elements/area_spec.rb
361
+ - spec/page-object/elements/bold_spec.rb
362
+ - spec/page-object/elements/button_spec.rb
363
+ - spec/page-object/elements/canvas_spec.rb
364
+ - spec/page-object/elements/check_box_spec.rb
365
+ - spec/page-object/elements/div_spec.rb
366
+ - spec/page-object/elements/element_spec.rb
367
+ - spec/page-object/elements/file_field_spec.rb
368
+ - spec/page-object/elements/form_spec.rb
369
+ - spec/page-object/elements/heading_spec.rb
370
+ - spec/page-object/elements/hidden_field_spec.rb
371
+ - spec/page-object/elements/image_spec.rb
372
+ - spec/page-object/elements/label_spec.rb
373
+ - spec/page-object/elements/link_spec.rb
374
+ - spec/page-object/elements/list_item_spec.rb
375
+ - spec/page-object/elements/nested_element_spec.rb
376
+ - spec/page-object/elements/option_spec.rb
377
+ - spec/page-object/elements/ordered_list_spec.rb
378
+ - spec/page-object/elements/paragraph_spec.rb
379
+ - spec/page-object/elements/select_list_spec.rb
380
+ - spec/page-object/elements/selenium/radio_button_spec.rb
381
+ - spec/page-object/elements/selenium/text_field_spec.rb
382
+ - spec/page-object/elements/selenium_element_spec.rb
383
+ - spec/page-object/elements/span_spec.rb
384
+ - spec/page-object/elements/table_cell_spec.rb
385
+ - spec/page-object/elements/table_row_spec.rb
386
+ - spec/page-object/elements/table_spec.rb
387
+ - spec/page-object/elements/text_area_spec.rb
388
+ - spec/page-object/elements/unordered_list_spec.rb
389
+ - spec/page-object/elements/watir_element_spec.rb
390
+ - spec/page-object/javascript_framework_facade_spec.rb
391
+ - spec/page-object/loads_platform_spec.rb
392
+ - spec/page-object/page-object_spec.rb
393
+ - spec/page-object/page_factory_spec.rb
394
+ - spec/page-object/page_populator_spec.rb
395
+ - spec/page-object/page_section_spec.rb
396
+ - spec/page-object/platforms/selenium_webdriver/selenium_page_object_spec.rb
397
+ - spec/page-object/platforms/selenium_webdriver_spec.rb
398
+ - spec/page-object/platforms/watir_webdriver/watir_page_object_spec.rb
399
+ - spec/page-object/platforms/watir_webdriver_spec.rb
400
+ - spec/page-object/selenium_accessors_spec.rb
401
+ - spec/page-object/watir_accessors_spec.rb
402
+ - spec/page-object/widget_spec.rb
403
+ - spec/spec_helper.rb
404
+ homepage: http://github.com/bootstraponline/page_object
405
+ licenses:
406
+ - MIT
407
+ metadata: {}
408
+ post_install_message:
409
+ rdoc_options: []
410
+ require_paths:
411
+ - lib
412
+ required_ruby_version: !ruby/object:Gem::Requirement
413
+ requirements:
414
+ - - ">="
415
+ - !ruby/object:Gem::Version
416
+ version: '0'
417
+ required_rubygems_version: !ruby/object:Gem::Requirement
418
+ requirements:
419
+ - - ">="
420
+ - !ruby/object:Gem::Version
421
+ version: '0'
422
+ requirements: []
423
+ rubyforge_project:
424
+ rubygems_version: 2.4.6
425
+ signing_key:
426
+ specification_version: 4
427
+ summary: Page Object DSL for browser testing
428
+ test_files:
429
+ - features/area.feature
430
+ - features/async.feature
431
+ - features/audio.feature
432
+ - features/bold.feature
433
+ - features/button.feature
434
+ - features/canvas.feature
435
+ - features/check_box.feature
436
+ - features/div.feature
437
+ - features/element.feature
438
+ - features/file_field.feature
439
+ - features/form.feature
440
+ - features/frames.feature
441
+ - features/generic_elements.feature
442
+ - features/gxt_table_extension.feature
443
+ - features/headings.feature
444
+ - features/hidden_field.feature
445
+ - features/html/04-Death_Becomes_Fur.mp4
446
+ - features/html/04-Death_Becomes_Fur.oga
447
+ - features/html/async.html
448
+ - features/html/double_click.html
449
+ - features/html/failure.html
450
+ - features/html/frame_1.html
451
+ - features/html/frame_2.html
452
+ - features/html/frame_3.html
453
+ - features/html/frames.html
454
+ - features/html/hover.html
455
+ - features/html/iframes.html
456
+ - features/html/images/circle.png
457
+ - features/html/images/img_pulpit.jpg
458
+ - features/html/images/submit.gif
459
+ - features/html/indexed_property.html
460
+ - features/html/modal.html
461
+ - features/html/modal_1.html
462
+ - features/html/modal_2.html
463
+ - features/html/movie.mp4
464
+ - features/html/movie.ogg
465
+ - features/html/multi_elements.html
466
+ - features/html/nested_elements.html
467
+ - features/html/nested_frame_1.html
468
+ - features/html/nested_frame_2.html
469
+ - features/html/nested_frame_3.html
470
+ - features/html/nested_frames.html
471
+ - features/html/planets.gif
472
+ - features/html/static_elements.html
473
+ - features/html/success.html
474
+ - features/html/sun.gif
475
+ - features/html/sun.html
476
+ - features/image.feature
477
+ - features/indexed_property.feature
478
+ - features/javascript.feature
479
+ - features/label.feature
480
+ - features/link.feature
481
+ - features/list_item.feature
482
+ - features/modal_dialog.feature
483
+ - features/multi_elements.feature
484
+ - features/nested_elements.feature
485
+ - features/ordered_list.feature
486
+ - features/page_level_actions.feature
487
+ - features/paragraph.feature
488
+ - features/radio_button.feature
489
+ - features/radio_button_group.feature
490
+ - features/sample-app/public/jquery-1.3.2.js
491
+ - features/sample-app/public/jquery.html
492
+ - features/sample-app/public/prototype-1.6.0.3.js
493
+ - features/sample-app/public/prototype.html
494
+ - features/sample-app/sample_app.rb
495
+ - features/section.feature
496
+ - features/select_list.feature
497
+ - features/span.feature
498
+ - features/step_definitions/accessor_steps.rb
499
+ - features/step_definitions/area_steps.rb
500
+ - features/step_definitions/async_steps.rb
501
+ - features/step_definitions/audio_steps.rb
502
+ - features/step_definitions/bold_steps.rb
503
+ - features/step_definitions/button_steps.rb
504
+ - features/step_definitions/canvas_steps.rb
505
+ - features/step_definitions/check_box_steps.rb
506
+ - features/step_definitions/div_steps.rb
507
+ - features/step_definitions/element_steps.rb
508
+ - features/step_definitions/file_field_steps.rb
509
+ - features/step_definitions/form_steps.rb
510
+ - features/step_definitions/frames_steps.rb
511
+ - features/step_definitions/generic_element_steps.rb
512
+ - features/step_definitions/gxt_table_steps.rb
513
+ - features/step_definitions/headings_steps.rb
514
+ - features/step_definitions/hidden_field_steps.rb
515
+ - features/step_definitions/image_steps.rb
516
+ - features/step_definitions/indexed_property_steps.rb
517
+ - features/step_definitions/javascript_steps.rb
518
+ - features/step_definitions/label_steps.rb
519
+ - features/step_definitions/link_steps.rb
520
+ - features/step_definitions/list_item_steps.rb
521
+ - features/step_definitions/modal_dialog_steps.rb
522
+ - features/step_definitions/multi_elements_steps.rb
523
+ - features/step_definitions/nested_elements_steps.rb
524
+ - features/step_definitions/ordered_list_steps.rb
525
+ - features/step_definitions/page_level_actions_steps.rb
526
+ - features/step_definitions/page_traversal_steps.rb
527
+ - features/step_definitions/paragraph_steps.rb
528
+ - features/step_definitions/radio_button_group_steps.rb
529
+ - features/step_definitions/radio_button_steps.rb
530
+ - features/step_definitions/section_steps.rb
531
+ - features/step_definitions/select_list_steps.rb
532
+ - features/step_definitions/span_steps.rb
533
+ - features/step_definitions/table_cell_steps.rb
534
+ - features/step_definitions/table_row_steps.rb
535
+ - features/step_definitions/table_steps.rb
536
+ - features/step_definitions/text_area_steps.rb
537
+ - features/step_definitions/text_field_steps.rb
538
+ - features/step_definitions/unordered_list_steps.rb
539
+ - features/step_definitions/video_steps.rb
540
+ - features/support/ajax_text_environment.rb
541
+ - features/support/env.rb
542
+ - features/support/hooks.rb
543
+ - features/support/page.rb
544
+ - features/support/persistent_browser.rb
545
+ - features/support/targets/firefox14_osx.rb
546
+ - features/support/targets/firefox14_windows7.rb
547
+ - features/support/url_helper.rb
548
+ - features/table.feature
549
+ - features/table_cell.feature
550
+ - features/table_row.feature
551
+ - features/text_area.feature
552
+ - features/text_field.feature
553
+ - features/unordered_list.feature
554
+ - features/video.feature
555
+ - spec/page-object/accessors_spec.rb
556
+ - spec/page-object/element_locators_spec.rb
557
+ - spec/page-object/elements/area_spec.rb
558
+ - spec/page-object/elements/bold_spec.rb
559
+ - spec/page-object/elements/button_spec.rb
560
+ - spec/page-object/elements/canvas_spec.rb
561
+ - spec/page-object/elements/check_box_spec.rb
562
+ - spec/page-object/elements/div_spec.rb
563
+ - spec/page-object/elements/element_spec.rb
564
+ - spec/page-object/elements/file_field_spec.rb
565
+ - spec/page-object/elements/form_spec.rb
566
+ - spec/page-object/elements/heading_spec.rb
567
+ - spec/page-object/elements/hidden_field_spec.rb
568
+ - spec/page-object/elements/image_spec.rb
569
+ - spec/page-object/elements/label_spec.rb
570
+ - spec/page-object/elements/link_spec.rb
571
+ - spec/page-object/elements/list_item_spec.rb
572
+ - spec/page-object/elements/nested_element_spec.rb
573
+ - spec/page-object/elements/option_spec.rb
574
+ - spec/page-object/elements/ordered_list_spec.rb
575
+ - spec/page-object/elements/paragraph_spec.rb
576
+ - spec/page-object/elements/select_list_spec.rb
577
+ - spec/page-object/elements/selenium/radio_button_spec.rb
578
+ - spec/page-object/elements/selenium/text_field_spec.rb
579
+ - spec/page-object/elements/selenium_element_spec.rb
580
+ - spec/page-object/elements/span_spec.rb
581
+ - spec/page-object/elements/table_cell_spec.rb
582
+ - spec/page-object/elements/table_row_spec.rb
583
+ - spec/page-object/elements/table_spec.rb
584
+ - spec/page-object/elements/text_area_spec.rb
585
+ - spec/page-object/elements/unordered_list_spec.rb
586
+ - spec/page-object/elements/watir_element_spec.rb
587
+ - spec/page-object/javascript_framework_facade_spec.rb
588
+ - spec/page-object/loads_platform_spec.rb
589
+ - spec/page-object/page-object_spec.rb
590
+ - spec/page-object/page_factory_spec.rb
591
+ - spec/page-object/page_populator_spec.rb
592
+ - spec/page-object/page_section_spec.rb
593
+ - spec/page-object/platforms/selenium_webdriver/selenium_page_object_spec.rb
594
+ - spec/page-object/platforms/selenium_webdriver_spec.rb
595
+ - spec/page-object/platforms/watir_webdriver/watir_page_object_spec.rb
596
+ - spec/page-object/platforms/watir_webdriver_spec.rb
597
+ - spec/page-object/selenium_accessors_spec.rb
598
+ - spec/page-object/watir_accessors_spec.rb
599
+ - spec/page-object/widget_spec.rb
600
+ - spec/spec_helper.rb
601
+ has_rdoc: