meeane-page-object 0.1.8
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 +7 -0
- data/.gitignore +7 -0
- data/.rspec +2 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +10 -0
- data/ChangeLog +790 -0
- data/Gemfile +13 -0
- data/Guardfile +20 -0
- data/LICENSE +20 -0
- data/README.md +141 -0
- data/Rakefile +35 -0
- data/cucumber.yml +10 -0
- data/features/area.feature +35 -0
- data/features/async.feature +30 -0
- data/features/audio.feature +68 -0
- data/features/button.feature +87 -0
- data/features/canvas.feature +37 -0
- data/features/check_box.feature +55 -0
- data/features/div.feature +45 -0
- data/features/element.feature +322 -0
- data/features/file_field.feature +40 -0
- data/features/form.feature +43 -0
- data/features/frames.feature +75 -0
- data/features/generic_elements.feature +29 -0
- data/features/gxt_table_extension.feature +24 -0
- data/features/headings.feature +97 -0
- data/features/hidden_field.feature +45 -0
- data/features/html/04-Death_Becomes_Fur.mp4 +0 -0
- data/features/html/04-Death_Becomes_Fur.oga +0 -0
- data/features/html/async.html +36 -0
- data/features/html/double_click.html +13 -0
- data/features/html/failure.html +8 -0
- data/features/html/frame_1.html +18 -0
- data/features/html/frame_2.html +16 -0
- data/features/html/frame_3.html +14 -0
- data/features/html/frames.html +12 -0
- data/features/html/hover.html +12 -0
- data/features/html/iframes.html +12 -0
- data/features/html/images/circle.png +0 -0
- data/features/html/images/img_pulpit.jpg +0 -0
- data/features/html/images/submit.gif +0 -0
- data/features/html/indexed_property.html +52 -0
- data/features/html/modal.html +17 -0
- data/features/html/modal_1.html +38 -0
- data/features/html/modal_2.html +27 -0
- data/features/html/movie.mp4 +0 -0
- data/features/html/movie.ogg +0 -0
- data/features/html/multi_elements.html +144 -0
- data/features/html/nested_elements.html +77 -0
- data/features/html/nested_frame_1.html +1 -0
- data/features/html/nested_frame_2.html +11 -0
- data/features/html/nested_frame_3.html +14 -0
- data/features/html/nested_frames.html +10 -0
- data/features/html/planets.gif +0 -0
- data/features/html/static_elements.html +206 -0
- data/features/html/success.html +8 -0
- data/features/html/sun.gif +0 -0
- data/features/html/sun.html +7 -0
- data/features/image.feature +50 -0
- data/features/indexed_property.feature +98 -0
- data/features/javascript.feature +28 -0
- data/features/label.feature +46 -0
- data/features/link.feature +52 -0
- data/features/list_item.feature +36 -0
- data/features/modal_dialog.feature +15 -0
- data/features/multi_elements.feature +486 -0
- data/features/nested_elements.feature +117 -0
- data/features/ordered_list.feature +56 -0
- data/features/page_level_actions.feature +90 -0
- data/features/paragraph.feature +35 -0
- data/features/radio_button.feature +58 -0
- data/features/radio_button_group.feature +29 -0
- data/features/sample-app/public/jquery-1.3.2.js +4376 -0
- data/features/sample-app/public/jquery.html +30 -0
- data/features/sample-app/public/prototype-1.6.0.3.js +4320 -0
- data/features/sample-app/public/prototype.html +35 -0
- data/features/sample-app/sample_app.rb +35 -0
- data/features/select_list.feature +86 -0
- data/features/span.feature +37 -0
- data/features/step_definitions/accessor_steps.rb +60 -0
- data/features/step_definitions/area_steps.rb +19 -0
- data/features/step_definitions/async_steps.rb +83 -0
- data/features/step_definitions/audio_steps.rb +27 -0
- data/features/step_definitions/button_steps.rb +43 -0
- data/features/step_definitions/canvas_steps.rb +15 -0
- data/features/step_definitions/check_box_steps.rb +35 -0
- data/features/step_definitions/div_steps.rb +19 -0
- data/features/step_definitions/element_steps.rb +266 -0
- data/features/step_definitions/file_field_steps.rb +19 -0
- data/features/step_definitions/form_steps.rb +19 -0
- data/features/step_definitions/frames_steps.rb +159 -0
- data/features/step_definitions/generic_element_steps.rb +31 -0
- data/features/step_definitions/gxt_table_steps.rb +58 -0
- data/features/step_definitions/headings_steps.rb +12 -0
- data/features/step_definitions/hidden_field_steps.rb +27 -0
- data/features/step_definitions/image_steps.rb +27 -0
- data/features/step_definitions/indexed_property_steps.rb +129 -0
- data/features/step_definitions/javascript_steps.rb +53 -0
- data/features/step_definitions/label_steps.rb +19 -0
- data/features/step_definitions/link_steps.rb +40 -0
- data/features/step_definitions/list_item_steps.rb +19 -0
- data/features/step_definitions/modal_dialog_steps.rb +62 -0
- data/features/step_definitions/multi_elements_steps.rb +528 -0
- data/features/step_definitions/nested_elements_steps.rb +212 -0
- data/features/step_definitions/ordered_list_steps.rb +23 -0
- data/features/step_definitions/page_level_actions_steps.rb +135 -0
- data/features/step_definitions/page_traversal_steps.rb +4 -0
- data/features/step_definitions/paragraph_steps.rb +28 -0
- data/features/step_definitions/radio_button_group_steps.rb +36 -0
- data/features/step_definitions/radio_button_steps.rb +27 -0
- data/features/step_definitions/select_list_steps.rb +65 -0
- data/features/step_definitions/span_steps.rb +19 -0
- data/features/step_definitions/table_cell_steps.rb +15 -0
- data/features/step_definitions/table_steps.rb +66 -0
- data/features/step_definitions/text_area_steps.rb +35 -0
- data/features/step_definitions/text_field_steps.rb +35 -0
- data/features/step_definitions/unordered_list_steps.rb +23 -0
- data/features/step_definitions/video_steps.rb +45 -0
- data/features/support/ajax_text_environment.rb +26 -0
- data/features/support/env.rb +8 -0
- data/features/support/hooks.rb +8 -0
- data/features/support/page.rb +364 -0
- data/features/support/persistent_browser.rb +70 -0
- data/features/support/targets/firefox14_osx.rb +6 -0
- data/features/support/targets/firefox14_windows7.rb +6 -0
- data/features/support/url_helper.rb +57 -0
- data/features/table.feature +114 -0
- data/features/table_cell.feature +45 -0
- data/features/text_area.feature +51 -0
- data/features/text_field.feature +70 -0
- data/features/unordered_list.feature +56 -0
- data/features/video.feature +73 -0
- data/lib/page-object/accessors.rb +1313 -0
- data/lib/page-object/core_ext/string.rb +5 -0
- data/lib/page-object/element_locators.rb +21 -0
- data/lib/page-object/elements/area.rb +31 -0
- data/lib/page-object/elements/audio.rb +9 -0
- data/lib/page-object/elements/button.rb +35 -0
- data/lib/page-object/elements/canvas.rb +23 -0
- data/lib/page-object/elements/check_box.rb +37 -0
- data/lib/page-object/elements/div.rb +19 -0
- data/lib/page-object/elements/element.rb +226 -0
- data/lib/page-object/elements/file_field.rb +38 -0
- data/lib/page-object/elements/form.rb +36 -0
- data/lib/page-object/elements/heading.rb +15 -0
- data/lib/page-object/elements/hidden_field.rb +22 -0
- data/lib/page-object/elements/image.rb +36 -0
- data/lib/page-object/elements/label.rb +36 -0
- data/lib/page-object/elements/link.rb +46 -0
- data/lib/page-object/elements/list_item.rb +19 -0
- data/lib/page-object/elements/media.rb +45 -0
- data/lib/page-object/elements/option.rb +10 -0
- data/lib/page-object/elements/ordered_list.rb +50 -0
- data/lib/page-object/elements/paragraph.rb +9 -0
- data/lib/page-object/elements/radio_button.rb +37 -0
- data/lib/page-object/elements/select_list.rb +42 -0
- data/lib/page-object/elements/span.rb +19 -0
- data/lib/page-object/elements/table.rb +68 -0
- data/lib/page-object/elements/table_cell.rb +28 -0
- data/lib/page-object/elements/table_row.rb +50 -0
- data/lib/page-object/elements/text_area.rb +38 -0
- data/lib/page-object/elements/text_field.rb +42 -0
- data/lib/page-object/elements/unordered_list.rb +51 -0
- data/lib/page-object/elements/video.rb +18 -0
- data/lib/page-object/elements.rb +59 -0
- data/lib/page-object/indexed_properties.rb +36 -0
- data/lib/page-object/javascript/jquery.rb +14 -0
- data/lib/page-object/javascript/prototype.rb +14 -0
- data/lib/page-object/javascript/yui.rb +19 -0
- data/lib/page-object/javascript_framework_facade.rb +78 -0
- data/lib/page-object/loads_platform.rb +26 -0
- data/lib/page-object/locator_generator.rb +129 -0
- data/lib/page-object/nested_elements.rb +17 -0
- data/lib/page-object/page_factory.rb +108 -0
- data/lib/page-object/page_populator.rb +92 -0
- data/lib/page-object/platforms/selenium_webdriver/button.rb +15 -0
- data/lib/page-object/platforms/selenium_webdriver/check_box.rb +29 -0
- data/lib/page-object/platforms/selenium_webdriver/element.rb +291 -0
- data/lib/page-object/platforms/selenium_webdriver/file_field.rb +16 -0
- data/lib/page-object/platforms/selenium_webdriver/form.rb +16 -0
- data/lib/page-object/platforms/selenium_webdriver/image.rb +28 -0
- data/lib/page-object/platforms/selenium_webdriver/label.rb +17 -0
- data/lib/page-object/platforms/selenium_webdriver/link.rb +23 -0
- data/lib/page-object/platforms/selenium_webdriver/ordered_list.rb +39 -0
- data/lib/page-object/platforms/selenium_webdriver/page_object.rb +1136 -0
- data/lib/page-object/platforms/selenium_webdriver/radio_button.rb +22 -0
- data/lib/page-object/platforms/selenium_webdriver/select_list.rb +93 -0
- data/lib/page-object/platforms/selenium_webdriver/surrogate_selenium_element.rb +42 -0
- data/lib/page-object/platforms/selenium_webdriver/table.rb +42 -0
- data/lib/page-object/platforms/selenium_webdriver/table_row.rb +43 -0
- data/lib/page-object/platforms/selenium_webdriver/text_area.rb +17 -0
- data/lib/page-object/platforms/selenium_webdriver/text_field.rb +17 -0
- data/lib/page-object/platforms/selenium_webdriver/unordered_list.rb +39 -0
- data/lib/page-object/platforms/selenium_webdriver.rb +18 -0
- data/lib/page-object/platforms/watir_webdriver/check_box.rb +29 -0
- data/lib/page-object/platforms/watir_webdriver/element.rb +249 -0
- data/lib/page-object/platforms/watir_webdriver/file_field.rb +16 -0
- data/lib/page-object/platforms/watir_webdriver/form.rb +16 -0
- data/lib/page-object/platforms/watir_webdriver/image.rb +22 -0
- data/lib/page-object/platforms/watir_webdriver/label.rb +17 -0
- data/lib/page-object/platforms/watir_webdriver/link.rb +15 -0
- data/lib/page-object/platforms/watir_webdriver/ordered_list.rb +35 -0
- data/lib/page-object/platforms/watir_webdriver/page_object.rb +1029 -0
- data/lib/page-object/platforms/watir_webdriver/radio_button.rb +22 -0
- data/lib/page-object/platforms/watir_webdriver/select_list.rb +74 -0
- data/lib/page-object/platforms/watir_webdriver/table.rb +38 -0
- data/lib/page-object/platforms/watir_webdriver/table_row.rb +37 -0
- data/lib/page-object/platforms/watir_webdriver/text_area.rb +23 -0
- data/lib/page-object/platforms/watir_webdriver/text_field.rb +16 -0
- data/lib/page-object/platforms/watir_webdriver/unordered_list.rb +36 -0
- data/lib/page-object/platforms/watir_webdriver.rb +18 -0
- data/lib/page-object/platforms.rb +18 -0
- data/lib/page-object/version.rb +4 -0
- data/lib/page-object/widgets.rb +133 -0
- data/lib/page-object.rb +408 -0
- data/meeane-page-object.gemspec +32 -0
- data/pageobject.gems +1 -0
- data/spec/page-object/element_locators_spec.rb +1065 -0
- data/spec/page-object/elements/area_spec.rb +45 -0
- data/spec/page-object/elements/button_spec.rb +50 -0
- data/spec/page-object/elements/canvas_spec.rb +40 -0
- data/spec/page-object/elements/check_box_spec.rb +49 -0
- data/spec/page-object/elements/div_spec.rb +28 -0
- data/spec/page-object/elements/element_spec.rb +114 -0
- data/spec/page-object/elements/file_field_spec.rb +39 -0
- data/spec/page-object/elements/form_spec.rb +28 -0
- data/spec/page-object/elements/heading_spec.rb +48 -0
- data/spec/page-object/elements/hidden_field_spec.rb +28 -0
- data/spec/page-object/elements/image_spec.rb +66 -0
- data/spec/page-object/elements/label_spec.rb +29 -0
- data/spec/page-object/elements/link_spec.rb +49 -0
- data/spec/page-object/elements/list_item_spec.rb +28 -0
- data/spec/page-object/elements/nested_element_spec.rb +254 -0
- data/spec/page-object/elements/option_spec.rb +11 -0
- data/spec/page-object/elements/ordered_list_spec.rb +94 -0
- data/spec/page-object/elements/paragraph_spec.rb +28 -0
- data/spec/page-object/elements/select_list_spec.rb +142 -0
- data/spec/page-object/elements/selenium/radio_button_spec.rb +44 -0
- data/spec/page-object/elements/selenium/text_field_spec.rb +49 -0
- data/spec/page-object/elements/selenium_element_spec.rb +172 -0
- data/spec/page-object/elements/span_spec.rb +26 -0
- data/spec/page-object/elements/table_cell_spec.rb +21 -0
- data/spec/page-object/elements/table_row_spec.rb +70 -0
- data/spec/page-object/elements/table_spec.rb +98 -0
- data/spec/page-object/elements/text_area_spec.rb +39 -0
- data/spec/page-object/elements/unordered_list_spec.rb +95 -0
- data/spec/page-object/elements/watir_element_spec.rb +142 -0
- data/spec/page-object/javascript_framework_facade_spec.rb +61 -0
- data/spec/page-object/loads_platform_spec.rb +53 -0
- data/spec/page-object/page-object_spec.rb +405 -0
- data/spec/page-object/page_factory_spec.rb +256 -0
- data/spec/page-object/page_populator_spec.rb +122 -0
- data/spec/page-object/platforms/selenium_webdriver/selenium_page_object_spec.rb +68 -0
- data/spec/page-object/platforms/selenium_webdriver_spec.rb +29 -0
- data/spec/page-object/platforms/watir_webdriver/watir_page_object_spec.rb +29 -0
- data/spec/page-object/platforms/watir_webdriver_spec.rb +9 -0
- data/spec/page-object/selenium_accessors_spec.rb +589 -0
- data/spec/page-object/watir_accessors_spec.rb +1107 -0
- data/spec/page-object/widget_spec.rb +226 -0
- data/spec/spec_helper.rb +44 -0
- metadata +404 -0
@@ -0,0 +1,266 @@
|
|
1
|
+
When /^I retrieve a check box element$/ do
|
2
|
+
@element = @page.cb_id_element
|
3
|
+
end
|
4
|
+
|
5
|
+
When /^I retrieve a link element$/ do
|
6
|
+
@element = @page.google_search_id_element
|
7
|
+
end
|
8
|
+
|
9
|
+
When /^I retrieve a radio button$/ do
|
10
|
+
@element = @page.milk_id_element
|
11
|
+
end
|
12
|
+
|
13
|
+
When /^I retrieve a select list$/ do
|
14
|
+
@element = @page.sel_list_id_element
|
15
|
+
end
|
16
|
+
|
17
|
+
When /^I retrieve a text field$/ do
|
18
|
+
@element = @page.text_field_id_element
|
19
|
+
end
|
20
|
+
|
21
|
+
When /^I retrieve the text area$/ do
|
22
|
+
@element = @page.text_area_id_element
|
23
|
+
end
|
24
|
+
|
25
|
+
When /^I retrieve the div element$/ do
|
26
|
+
@element = @page.div_id_element
|
27
|
+
end
|
28
|
+
|
29
|
+
When /^I retrieve a table element$/ do
|
30
|
+
@element = @page.table_id_element
|
31
|
+
end
|
32
|
+
|
33
|
+
When /^I retrieve a table with thead element$/ do
|
34
|
+
@element = @page.table_with_thead_id_element
|
35
|
+
end
|
36
|
+
|
37
|
+
When /^I retrieve a button element$/ do
|
38
|
+
@element = @page.button_id_element
|
39
|
+
end
|
40
|
+
|
41
|
+
When /^I retrieve table cell$/ do
|
42
|
+
@element = @page.cell_id_element
|
43
|
+
end
|
44
|
+
|
45
|
+
When /^I retrieve a heading element$/ do
|
46
|
+
@element = @page.h1_id_element
|
47
|
+
end
|
48
|
+
|
49
|
+
When /^I retrieve the area element$/ do
|
50
|
+
@element = @page.area_id_element
|
51
|
+
end
|
52
|
+
|
53
|
+
When /^I retrieve the canvas element$/ do
|
54
|
+
@element = @page.canvas_id_element
|
55
|
+
end
|
56
|
+
|
57
|
+
When /^I retrieve the audio element$/ do
|
58
|
+
@element = @page.audio_id_element
|
59
|
+
end
|
60
|
+
|
61
|
+
When /^I locate the form$/ do
|
62
|
+
@element = @page.form_id_element
|
63
|
+
end
|
64
|
+
|
65
|
+
Then /^I should know it exists$/ do
|
66
|
+
@element.should exist
|
67
|
+
end
|
68
|
+
|
69
|
+
Then /^I should know it is visible$/ do
|
70
|
+
@element.should be_visible
|
71
|
+
end
|
72
|
+
|
73
|
+
Then /^I should know it is not visible$/ do
|
74
|
+
@element.should_not be_visible
|
75
|
+
end
|
76
|
+
|
77
|
+
Then /^I should know the text is "(.*)"$/ do |text|
|
78
|
+
@element.text.should == text
|
79
|
+
end
|
80
|
+
|
81
|
+
Then /^I should know the html is "(.*)"$/ do |html|
|
82
|
+
@element.html.should == html
|
83
|
+
end
|
84
|
+
|
85
|
+
Then /^I should know the text includes "(.*)"$/ do |text|
|
86
|
+
@element.text.should include text
|
87
|
+
end
|
88
|
+
|
89
|
+
Then /^I should know the value is "(.*)"$/ do |value|
|
90
|
+
@element.value.should == value
|
91
|
+
end
|
92
|
+
|
93
|
+
Then /^I should know the value is nil$/ do
|
94
|
+
@element.value.should be_nil
|
95
|
+
end
|
96
|
+
|
97
|
+
Then /^I should know it is equal to itself$/ do
|
98
|
+
@element.should == @element
|
99
|
+
end
|
100
|
+
|
101
|
+
Then /^I should know the tag name is "(.+)"$/ do |tagname|
|
102
|
+
@element.tag_name.should == tagname
|
103
|
+
end
|
104
|
+
|
105
|
+
Then /^I should know the attribute "(.+)" is false$/ do |attr_name|
|
106
|
+
@attr = @element.attribute(attr_name)
|
107
|
+
@attr.should be_false if @attr.is_a? FalseClass
|
108
|
+
@attr.should == "false" if @attr.is_a? String
|
109
|
+
end
|
110
|
+
|
111
|
+
Then /^I should be able to click it$/ do
|
112
|
+
@element.click
|
113
|
+
end
|
114
|
+
|
115
|
+
When /^I retrieve a list item element$/ do
|
116
|
+
@element = @page.li_id_element
|
117
|
+
end
|
118
|
+
|
119
|
+
When /^I retrieve an unordered list element$/ do
|
120
|
+
@element = @page.ul_id_element
|
121
|
+
end
|
122
|
+
|
123
|
+
When /^I retrieve an ordered list element$/ do
|
124
|
+
@element = @page.ol_id_element
|
125
|
+
end
|
126
|
+
|
127
|
+
When /^I clear the text field$/ do
|
128
|
+
@page.text_field_id_element.clear
|
129
|
+
end
|
130
|
+
|
131
|
+
When /^I check an enabled button$/ do
|
132
|
+
@element = @page.button_id_element
|
133
|
+
end
|
134
|
+
|
135
|
+
Then /^it should know it is enabled$/ do
|
136
|
+
@element.should be_enabled
|
137
|
+
end
|
138
|
+
|
139
|
+
When /^I check a disabled button$/ do
|
140
|
+
@element = @page.disabled_button_element
|
141
|
+
end
|
142
|
+
|
143
|
+
Then /^it should know it is not enabled$/ do
|
144
|
+
@element.should_not be_enabled
|
145
|
+
end
|
146
|
+
|
147
|
+
Then /^it should know that is it not disabled$/ do
|
148
|
+
@element.should_not be_disabled
|
149
|
+
end
|
150
|
+
|
151
|
+
Then /^it should know that it is disabled$/ do
|
152
|
+
@element.should be_disabled
|
153
|
+
end
|
154
|
+
|
155
|
+
When /^I set the focus to the test text_field using the onfocus event$/ do
|
156
|
+
@page.text_field_element(:id => 'onfocus_text_field').fire_event('onfocus')
|
157
|
+
end
|
158
|
+
|
159
|
+
Then /^I should see the onfocus text "([^\"]*)"$/ do |text|
|
160
|
+
@page.div_element(:id => 'onfocus_test').text.should == text
|
161
|
+
end
|
162
|
+
|
163
|
+
When /^I set the focus on the test text_field$/ do
|
164
|
+
@page.text_field_element(:id => 'onfocus_text_field').focus
|
165
|
+
end
|
166
|
+
|
167
|
+
When /^I find the child link element$/ do
|
168
|
+
@element = @page.child_element
|
169
|
+
end
|
170
|
+
|
171
|
+
When /^ask for the parent element$/ do
|
172
|
+
@parent = @element.parent
|
173
|
+
end
|
174
|
+
|
175
|
+
Then /^I should have a div parent$/ do
|
176
|
+
@parent.should be_instance_of ::PageObject::Elements::Div
|
177
|
+
end
|
178
|
+
|
179
|
+
Then /^I should know that the text_field has the focus$/ do
|
180
|
+
element = @page.element_with_focus
|
181
|
+
element.should_not be_nil
|
182
|
+
element.class.should == PageObject::Elements::TextField
|
183
|
+
end
|
184
|
+
|
185
|
+
When /^I set the focus to the test text_field$/ do
|
186
|
+
@page.text_field_element(:id => 'onfocus_text_field').focus
|
187
|
+
end
|
188
|
+
|
189
|
+
When /^I retrieve the label element$/ do
|
190
|
+
@element = @page.label_id_element
|
191
|
+
end
|
192
|
+
|
193
|
+
Then /^I should be able to flash it$/ do
|
194
|
+
@element.flash
|
195
|
+
end
|
196
|
+
|
197
|
+
class HoverPage
|
198
|
+
include PageObject
|
199
|
+
|
200
|
+
link(:hello)
|
201
|
+
end
|
202
|
+
|
203
|
+
Given /^I am on the hover page$/ do
|
204
|
+
@page = HoverPage.new(@browser)
|
205
|
+
@page.navigate_to UrlHelper.hover
|
206
|
+
end
|
207
|
+
|
208
|
+
When /^I hover over the hello link$/ do
|
209
|
+
@page.hello_element.hover
|
210
|
+
end
|
211
|
+
|
212
|
+
Then /^the font size should be "([^\"]*)"$/ do |font_size|
|
213
|
+
@page.hello_element.style('font-size').should == font_size if ENV['BROWSER'] == 'chrome'
|
214
|
+
end
|
215
|
+
|
216
|
+
Then /^I should know its id is "([^\"]*)"$/ do |id|
|
217
|
+
@element.id.should == id
|
218
|
+
end
|
219
|
+
|
220
|
+
class DoubleClickPage
|
221
|
+
include PageObject
|
222
|
+
button(:click)
|
223
|
+
paragraph(:p_text)
|
224
|
+
end
|
225
|
+
|
226
|
+
Given /^I am on the Double Click page$/ do
|
227
|
+
@page = DoubleClickPage.new(@browser)
|
228
|
+
@page.navigate_to UrlHelper.double_click
|
229
|
+
end
|
230
|
+
|
231
|
+
When /^I double click the button$/ do
|
232
|
+
@page.click_element.double_click
|
233
|
+
end
|
234
|
+
|
235
|
+
Then /^the paragraph should read "([^\"]*)"$/ do |expected_text|
|
236
|
+
@page.p_text.should == expected_text
|
237
|
+
end
|
238
|
+
|
239
|
+
When /^I scroll the heading element into view$/ do
|
240
|
+
@element.scroll_into_view
|
241
|
+
end
|
242
|
+
|
243
|
+
Then /^the heading element should be visible$/ do
|
244
|
+
@element.should be_visible
|
245
|
+
end
|
246
|
+
|
247
|
+
When /^I retrieve a div using data\-entity$/ do
|
248
|
+
@element = @page.div_data_entity_element
|
249
|
+
end
|
250
|
+
|
251
|
+
When(/^I retrieve the figure using the declaration$/) do
|
252
|
+
@element = @page.figure_id_element
|
253
|
+
end
|
254
|
+
|
255
|
+
When(/^I retrieve the figure using the element$/) do
|
256
|
+
@element = @page.figure_element(:id => 'figure_id')
|
257
|
+
end
|
258
|
+
|
259
|
+
Then(/^I should see the figure contains an image$/) do
|
260
|
+
@element.image_element.should_not be_nil
|
261
|
+
end
|
262
|
+
|
263
|
+
Then(/^I should know the attribute "(.*?)" includes "(.+)"$/) do |attribute, included|
|
264
|
+
@attr = @element.attribute(attribute)
|
265
|
+
@attr.should include included
|
266
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
When /^I set the file field to the step definition file$/ do
|
2
|
+
@page.file_field_id = __FILE__
|
3
|
+
end
|
4
|
+
|
5
|
+
Then /^its\' value should equal that file$/ do
|
6
|
+
__FILE__.should include @page.file_field_id_element.value
|
7
|
+
end
|
8
|
+
|
9
|
+
When /^I search for the file field by "([^\"]*)"$/ do |how|
|
10
|
+
@how = how
|
11
|
+
end
|
12
|
+
|
13
|
+
When /^I search for the file field by "([^\"]*)" and "([^\"]*)"$/ do |param1, param2|
|
14
|
+
@how = "#{param1}_#{param2}"
|
15
|
+
end
|
16
|
+
|
17
|
+
Then /^I should be able to set the file field$/ do
|
18
|
+
@page.send "file_field_#{@how}=", __FILE__
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
Then /^I should be able to submit the form$/ do
|
2
|
+
@element.submit
|
3
|
+
end
|
4
|
+
|
5
|
+
When /^I locate the form by "([^\"]*)"$/ do |how|
|
6
|
+
@element = @page.send "form_#{how}_element"
|
7
|
+
end
|
8
|
+
|
9
|
+
When /^I locate the form using "([^"]*)" and "([^"]*)"$/ do |param1, param2|
|
10
|
+
@element = @page.send "form_#{param1}_#{param2}_element"
|
11
|
+
end
|
12
|
+
|
13
|
+
When /^I locate a form while the script is executing$/ do
|
14
|
+
@element = @page.form_element(:id => 'form_id')
|
15
|
+
end
|
16
|
+
|
17
|
+
Then /^I should see that the form exists$/ do
|
18
|
+
@page.form_id?.should == true
|
19
|
+
end
|
@@ -0,0 +1,159 @@
|
|
1
|
+
class FramePage
|
2
|
+
include PageObject
|
3
|
+
|
4
|
+
in_frame(:index => 1) do |frame|
|
5
|
+
text_field(:text_field_2_index, :name => 'recieverElement', :frame => frame)
|
6
|
+
end
|
7
|
+
in_frame(:index => 0) do |frame|
|
8
|
+
text_field(:text_field_1_index, :name => 'senderElement', :frame => frame)
|
9
|
+
end
|
10
|
+
|
11
|
+
in_frame(:id => 'frame_two_2') do |frame|
|
12
|
+
text_field(:text_field_2_id, :name => 'recieverElement', :frame => frame)
|
13
|
+
end
|
14
|
+
in_frame(:id => 'frame_one_1') do |frame|
|
15
|
+
text_field(:text_field_1_id, :name => 'senderElement', :frame => frame)
|
16
|
+
end
|
17
|
+
|
18
|
+
in_frame(:name => 'frame2') do |frame|
|
19
|
+
text_field(:text_field_2_name, :name => 'recieverElement', :frame => frame)
|
20
|
+
end
|
21
|
+
in_frame(:name => 'frame1') do |frame|
|
22
|
+
text_field(:text_field_1_name, :name => 'senderElement', :frame => frame)
|
23
|
+
end
|
24
|
+
|
25
|
+
in_frame(:id => /frame_two_\d+/) do |frame|
|
26
|
+
text_field(:text_field_2_regex, :name => 'recieverElement', :frame => frame)
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
class IFramePage
|
32
|
+
include PageObject
|
33
|
+
|
34
|
+
in_iframe(:id => 'frame_two_2') do |frame|
|
35
|
+
text_field(:text_field_2_id, :name => 'recieverElement', :frame => frame)
|
36
|
+
end
|
37
|
+
in_iframe(:id => 'frame_one_1') do |frame|
|
38
|
+
text_field(:text_field_1_id, :name => 'senderElement', :frame => frame)
|
39
|
+
end
|
40
|
+
|
41
|
+
in_iframe(:name => 'frame2') do |frame|
|
42
|
+
text_field(:text_field_2_name, :name => 'recieverElement', :frame => frame)
|
43
|
+
end
|
44
|
+
in_iframe(:name => 'frame1') do |frame|
|
45
|
+
text_field(:text_field_1_name, :name => 'senderElement', :frame => frame)
|
46
|
+
end
|
47
|
+
|
48
|
+
in_iframe(:index => 1) do |frame|
|
49
|
+
text_field(:text_field_2_index, :name => 'recieverElement', :frame => frame)
|
50
|
+
end
|
51
|
+
in_iframe(:index => 0) do |frame|
|
52
|
+
text_field(:text_field_1_index, :name => 'senderElement', :frame => frame)
|
53
|
+
end
|
54
|
+
|
55
|
+
in_iframe(:class => 'iframe', :name => 'frame2') do |frame|
|
56
|
+
text_field(:text_field_2_multiple_identifiers, :name => 'recieverElement', :frame => frame)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
|
61
|
+
Given /^I am on the frame elements page$/ do
|
62
|
+
@page = FramePage.new(@browser)
|
63
|
+
@page.navigate_to(UrlHelper.frame_elements)
|
64
|
+
end
|
65
|
+
|
66
|
+
Given /^I am on the iframe elements page$/ do
|
67
|
+
@page = IFramePage.new(@browser)
|
68
|
+
@page.navigate_to(UrlHelper.iframe_elements)
|
69
|
+
end
|
70
|
+
|
71
|
+
When /^I type "([^\"]*)" into the text field for frame 2 using "([^\"]*)"$/ do |text, arg_type|
|
72
|
+
@page.send "text_field_2_#{arg_type.gsub(' ', '_')}=".to_sym, text
|
73
|
+
end
|
74
|
+
|
75
|
+
Then /^I should verify "([^\"]*)" is in the text field for frame 2 using "([^\"]*)"$/ do |text, arg_type|
|
76
|
+
result = @page.send "text_field_2_#{arg_type.gsub(' ', '_')}".to_sym
|
77
|
+
result.should == text
|
78
|
+
end
|
79
|
+
|
80
|
+
#Then /^I should be able to get the text fields text from frame 2 using "([^\"]*)"$/ do |arg_type|
|
81
|
+
# @page.send("text_field_2_#{arg_type}_element").text
|
82
|
+
#end
|
83
|
+
|
84
|
+
When /^I type "([^\"]*)" into the text field from frame 1 using "([^\"]*)"$/ do |text, arg_type|
|
85
|
+
@page.send "text_field_1_#{arg_type.gsub(' ', '_')}=".to_sym, text
|
86
|
+
end
|
87
|
+
|
88
|
+
Then /^I should verify "([^\"]*)" is in the text field for frame 1 using "([^\"]*)"$/ do |text, arg_type|
|
89
|
+
result = @page.send "text_field_1_#{arg_type.gsub(' ', '_')}".to_sym
|
90
|
+
result.should == text
|
91
|
+
end
|
92
|
+
|
93
|
+
class NestedFramePage
|
94
|
+
include PageObject
|
95
|
+
|
96
|
+
in_frame(:id => 'two') do |frame|
|
97
|
+
in_iframe({:id => 'three'}, frame) do |nested_frame|
|
98
|
+
link(:nested_link, :id => 'four', :frame => nested_frame)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
Given /^I am on the nested frame elements page$/ do
|
104
|
+
@page = NestedFramePage.new(@browser)
|
105
|
+
@page.navigate_to(UrlHelper.nested_frame_elements)
|
106
|
+
end
|
107
|
+
|
108
|
+
Then /^I should be able to click the link in the frame$/ do
|
109
|
+
@page.nested_link
|
110
|
+
@page.text.should include "Success"
|
111
|
+
end
|
112
|
+
|
113
|
+
When /^I type "([^\"]*)" into the text field from frame 1 identified dynamically$/ do |value|
|
114
|
+
@page.in_frame(:id => 'frame_one_1') do |frame|
|
115
|
+
@page.text_field_element(:name => 'senderElement', :frame => frame).value = value
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
Then /^I should verify "([^\"]*)" in the text field for frame 1 identified dynamically$/ do |value|
|
120
|
+
@page.in_frame(:id => 'frame_one_1') do |frame|
|
121
|
+
@page.text_field_element(:name => 'senderElement', :frame => frame).value.should == value
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
When /^I type "([^\"]*)" into the text field from iframe 1 identified dynamically$/ do |value|
|
126
|
+
@page.in_iframe(:id => 'frame_one_1') do |frame|
|
127
|
+
@page.text_field_element(:name => 'senderElement', :frame => frame).value = value
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
Then /^I should verify "([^\"]*)" in the text field for iframe 1 identified dynamically$/ do |value|
|
132
|
+
@page.in_iframe(:id => 'frame_one_1') do |frame|
|
133
|
+
@page.text_field_element(:name => 'senderElement', :frame => frame).value.should == value
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
When /^I trigger an alert within a frame$/ do
|
138
|
+
@page.in_frame(:id => 'frame_three_3') do |frame|
|
139
|
+
@msg = @page.alert(frame) do
|
140
|
+
@page.button_element(:id => 'alert_button', :frame => frame).click
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
When /^I trigger a confirm within a frame$/ do
|
146
|
+
@page.in_frame(:id => 'frame_three_3') do |frame|
|
147
|
+
@msg = @page.confirm(true, frame) do
|
148
|
+
@page.button_element(:id => 'confirm_button', :frame => frame).click
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
When /^I trigger a prompt within a frame$/ do
|
154
|
+
@page.in_frame(:id => 'frame_three_3') do |frame|
|
155
|
+
@msg = @page.prompt("Cheezy", frame) do
|
156
|
+
@page.button_element(:id => 'prompt_button', :frame => frame).click
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
When /^I get the text from the article$/ do
|
2
|
+
@text = @page.article_id
|
3
|
+
end
|
4
|
+
|
5
|
+
When /^I get the text from the header$/ do
|
6
|
+
@text = @page.header_id
|
7
|
+
end
|
8
|
+
|
9
|
+
When /^I get the text from the footer$/ do
|
10
|
+
@text = @page.footer_id
|
11
|
+
end
|
12
|
+
|
13
|
+
When /^I get the text from the summary$/ do
|
14
|
+
@text = @page.summary_id
|
15
|
+
end
|
16
|
+
|
17
|
+
When /^I get the text from the details$/ do
|
18
|
+
@text = @page.details_id
|
19
|
+
end
|
20
|
+
|
21
|
+
When /^I get the svg element$/ do
|
22
|
+
@svg = @page.svg_id_element
|
23
|
+
end
|
24
|
+
|
25
|
+
Then /^the svg width should be "(.*?)"$/ do |width|
|
26
|
+
@svg.attribute('width').should == width
|
27
|
+
end
|
28
|
+
|
29
|
+
Then /^the svg height should be "(.*?)"$/ do |height|
|
30
|
+
@svg.attribute('height').should == height
|
31
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
|
2
|
+
def class_exists?(class_name)
|
3
|
+
begin
|
4
|
+
klass = Module.const_get(class_name)
|
5
|
+
return klass.is_a?(Class)
|
6
|
+
rescue NameError
|
7
|
+
return false
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
Given /^I am on the Gxt Examples page$/ do
|
12
|
+
visit GxtSamplePageObject
|
13
|
+
end
|
14
|
+
|
15
|
+
When /^I have the Basic Grid opened$/ do
|
16
|
+
on(GxtSamplePageObject).basic_grid_element.click
|
17
|
+
end
|
18
|
+
|
19
|
+
When /^I have defined a GxtTable class extending Table$/ do
|
20
|
+
class GxtTable < PageObject::Elements::Table
|
21
|
+
|
22
|
+
def self.accessor_methods(accessor, name)
|
23
|
+
accessor.send :define_method, "#{name}_rows" do
|
24
|
+
self.send("#{name}_element").rows
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
protected
|
29
|
+
def child_xpath
|
30
|
+
".//descendant::tr"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
When /^I define a page-object using that widget$/ do
|
36
|
+
class GxtSamplePageObject
|
37
|
+
include PageObject
|
38
|
+
|
39
|
+
page_url "http://gxtexamplegallery.appspot.com/"
|
40
|
+
|
41
|
+
div(:basic_grid, :class => "label_basic_grid")
|
42
|
+
gxt_table(:gxt_table, :class => "x-grid3")
|
43
|
+
end unless class_exists? 'GxtSamplePageObject'
|
44
|
+
end
|
45
|
+
|
46
|
+
When /^I have registered the GxtTable with PageObject$/ do
|
47
|
+
PageObject.register_widget :gxt_table, GxtTable, 'div'
|
48
|
+
end
|
49
|
+
|
50
|
+
When /^I retrieve a GxtTable widget$/ do
|
51
|
+
@element = on(GxtSamplePageObject).gxt_table_element
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
When /^the GxtTable should have "(\d+)" rows$/ do |rows|
|
56
|
+
on(GxtSamplePageObject).gxt_table_rows.should == rows.to_i
|
57
|
+
end
|
58
|
+
|
@@ -0,0 +1,12 @@
|
|
1
|
+
When /^I get the text for the "([^\"]*)" element$/ do |el|
|
2
|
+
@heading = @page.send "#{el}_id"
|
3
|
+
end
|
4
|
+
|
5
|
+
Then /^I should see "([^\"]*)"$/ do |text|
|
6
|
+
@heading.should == text
|
7
|
+
end
|
8
|
+
|
9
|
+
When /^I search for the heading(\d+) by "([^"]*)"$/ do |head_type, type|
|
10
|
+
@heading = @page.send "h#{head_type}_#{type}"
|
11
|
+
end
|
12
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
When /^I retrieve the hidden field element$/ do
|
2
|
+
@element = @page.hidden_field_id_element
|
3
|
+
end
|
4
|
+
|
5
|
+
Then /^I should see the hidden field contains "([^\"]*)"$/ do |text|
|
6
|
+
@page.hidden_field_id.should == text
|
7
|
+
end
|
8
|
+
|
9
|
+
When /^I search for the hidden field by "([^\"]*)"$/ do |how|
|
10
|
+
@element = @page.send "hidden_field_#{how}_element"
|
11
|
+
end
|
12
|
+
|
13
|
+
Then /^the hidden field element should contain "([^\"]*)"$/ do |text|
|
14
|
+
@element.value.should == text
|
15
|
+
end
|
16
|
+
|
17
|
+
When /^I search for the hidden field by "([^"]*)" and "([^"]*)"$/ do |param1, param2|
|
18
|
+
@element = @page.send "hidden_field_#{param1}_#{param2}_element"
|
19
|
+
end
|
20
|
+
|
21
|
+
When /^I find a hidden field while the script is executing$/ do
|
22
|
+
@element = @page.hidden_field_element(:id => 'hidden_field_id')
|
23
|
+
end
|
24
|
+
|
25
|
+
Then /^I should see that the hidden field exists$/ do
|
26
|
+
@page.hidden_field_id?.should == true
|
27
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
When /^I get the image element$/ do
|
2
|
+
@element = @page.image_id_element
|
3
|
+
end
|
4
|
+
|
5
|
+
Then /^the image should be "([^\"]*)" pixels wide$/ do |width|
|
6
|
+
@element.width.should == width.to_i
|
7
|
+
end
|
8
|
+
|
9
|
+
Then /^the image should be "([^\"]*)" pixels tall$/ do |height|
|
10
|
+
@element.height.should == height.to_i
|
11
|
+
end
|
12
|
+
|
13
|
+
When /^I get the image element by "([^\"]*)"$/ do |how|
|
14
|
+
@element = @page.send "image_#{how}_element"
|
15
|
+
end
|
16
|
+
|
17
|
+
When /^I get the image element by "([^"]*)" and "([^"]*)"$/ do |param1, param2|
|
18
|
+
@element = @page.send "image_#{param1}_#{param2}_element"
|
19
|
+
end
|
20
|
+
|
21
|
+
When /^I get the image element while the script is executing$/ do
|
22
|
+
@element = @page.image_element(:id => 'image_id')
|
23
|
+
end
|
24
|
+
|
25
|
+
Then /^I should see that the image exists$/ do
|
26
|
+
@page.image_id?.should == true
|
27
|
+
end
|