druid-s 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +7 -0
- data/.rspec +1 -0
- data/.rvmrc +1 -0
- data/.travis.yml +27 -0
- data/ChangeLog +541 -0
- data/Gemfile +8 -0
- data/README.md +78 -0
- data/Rakefile +33 -0
- data/cucumber.yml +6 -0
- data/druid.gemspec +30 -0
- data/features/area.feature +33 -0
- data/features/async.feature +16 -0
- data/features/audio.feature +61 -0
- data/features/bold.feature +20 -0
- data/features/button.feature +81 -0
- data/features/canvas.feature +34 -0
- data/features/checkbox.feature +48 -0
- data/features/div.feature +45 -0
- data/features/element.feature +281 -0
- data/features/file_field.feature +38 -0
- data/features/form.feature +37 -0
- data/features/frames.feature +76 -0
- data/features/generic_elements.feature +29 -0
- data/features/heading.feature +160 -0
- data/features/hidden_field.feature +39 -0
- data/features/html/async.html +31 -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 +11 -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/modal.html +17 -0
- data/features/html/modal_1.html +38 -0
- data/features/html/modal_2.html +27 -0
- data/features/html/multi_elements.html +145 -0
- data/features/html/nested_elements.html +75 -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 +203 -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 +47 -0
- data/features/italic.feature +20 -0
- data/features/javascript.feature +28 -0
- data/features/label.feature +43 -0
- data/features/link.feature +56 -0
- data/features/list_item.feature +37 -0
- data/features/modal_dialog.feature +9 -0
- data/features/multi_elements.feature +498 -0
- data/features/nested_elements.feature +121 -0
- data/features/ordered_list.feature +46 -0
- data/features/page_level_actions.feature +116 -0
- data/features/paragraph.feature +33 -0
- data/features/populate_page_with.feature +25 -0
- data/features/radio_button.feature +51 -0
- data/features/radio_button_group.feature +28 -0
- data/features/sample-app/public/04-Death_Becomes_Fur.mp4 +0 -0
- data/features/sample-app/public/04-Death_Becomes_Fur.oga +0 -0
- data/features/sample-app/public/audio_video.html +19 -0
- data/features/sample-app/public/jquery-1.3.2.js +4376 -0
- data/features/sample-app/public/jquery.html +28 -0
- data/features/sample-app/public/movie.mp4 +0 -0
- data/features/sample-app/public/movie.ogg +0 -0
- data/features/sample-app/public/prototype-1.6.0.3.js +4320 -0
- data/features/sample-app/public/prototype.html +32 -0
- data/features/sample-app/sample_app.rb +35 -0
- data/features/section.feature +132 -0
- data/features/select_list.feature +84 -0
- data/features/span.feature +43 -0
- data/features/step_definations/area_steps.rb +23 -0
- data/features/step_definations/async_steps.rb +80 -0
- data/features/step_definations/audio_steps.rb +47 -0
- data/features/step_definations/bold_steps.rb +11 -0
- data/features/step_definations/button_steps.rb +52 -0
- data/features/step_definations/canvas_steps.rb +19 -0
- data/features/step_definations/checkbox_steps.rb +39 -0
- data/features/step_definations/div_steps.rb +28 -0
- data/features/step_definations/element_steps.rb +217 -0
- data/features/step_definations/file_field_steps.rb +31 -0
- data/features/step_definations/form_steps.rb +23 -0
- data/features/step_definations/frame_steps.rb +189 -0
- data/features/step_definations/generic_element_steps.rb +31 -0
- data/features/step_definations/heading_steps.rb +39 -0
- data/features/step_definations/hidden_field_steps.rb +27 -0
- data/features/step_definations/image_steps.rb +35 -0
- data/features/step_definations/italic_steps.rb +11 -0
- data/features/step_definations/javasript_steps.rb +52 -0
- data/features/step_definations/label_steps.rb +19 -0
- data/features/step_definations/link_steps.rb +42 -0
- data/features/step_definations/list_item_steps.rb +24 -0
- data/features/step_definations/modal_dialog_steps.rb +38 -0
- data/features/step_definations/multi_elements_steps.rb +557 -0
- data/features/step_definations/nested_elements_steps.rb +219 -0
- data/features/step_definations/ordered_list_steps.rb +49 -0
- data/features/step_definations/page_level_actions_steps.rb +172 -0
- data/features/step_definations/page_traversal_steps.rb +4 -0
- data/features/step_definations/paragraph_steps.rb +19 -0
- data/features/step_definations/populate_page_with_steps.rb +3 -0
- data/features/step_definations/radio_button_group_steps.rb +32 -0
- data/features/step_definations/radio_button_steps.rb +31 -0
- data/features/step_definations/section_steps.rb +271 -0
- data/features/step_definations/select_list_steps.rb +91 -0
- data/features/step_definations/span_steps.rb +23 -0
- data/features/step_definations/table_cell_steps.rb +27 -0
- data/features/step_definations/table_row_steps.rb +23 -0
- data/features/step_definations/table_steps.rb +109 -0
- data/features/step_definations/text_area_steps.rb +39 -0
- data/features/step_definations/text_field_steps.rb +39 -0
- data/features/step_definations/unordered_list_steps.rb +27 -0
- data/features/step_definations/video_steps.rb +27 -0
- data/features/support/ajax_test_environment.rb +26 -0
- data/features/support/audio_video_page.rb +23 -0
- data/features/support/env.rb +5 -0
- data/features/support/hooks.rb +3 -0
- data/features/support/page.rb +372 -0
- data/features/support/persistent_browser.rb +58 -0
- data/features/support/targets/firefox14_osx.rb +5 -0
- data/features/support/targets/firefox14_windows7.rb +5 -0
- data/features/support/url_helper.rb +50 -0
- data/features/table.feature +127 -0
- data/features/table_cell.feature +42 -0
- data/features/table_row.feature +30 -0
- data/features/text_area.feature +44 -0
- data/features/text_field.feature +53 -0
- data/features/unordered_list.feature +46 -0
- data/features/video.feature +66 -0
- data/lib/druid/accessors.rb +1082 -0
- data/lib/druid/assist.rb +653 -0
- data/lib/druid/element_locators.rb +21 -0
- data/lib/druid/elements/area.rb +9 -0
- data/lib/druid/elements/audio.rb +9 -0
- data/lib/druid/elements/bold.rb +8 -0
- data/lib/druid/elements/button.rb +12 -0
- data/lib/druid/elements/canvas.rb +9 -0
- data/lib/druid/elements/check_box.rb +9 -0
- data/lib/druid/elements/div.rb +9 -0
- data/lib/druid/elements/element.rb +187 -0
- data/lib/druid/elements/file_field.rb +9 -0
- data/lib/druid/elements/form.rb +9 -0
- data/lib/druid/elements/heading.rb +14 -0
- data/lib/druid/elements/hidden_field.rb +9 -0
- data/lib/druid/elements/image.rb +9 -0
- data/lib/druid/elements/italic.rb +9 -0
- data/lib/druid/elements/label.rb +8 -0
- data/lib/druid/elements/link.rb +9 -0
- data/lib/druid/elements/list_item.rb +9 -0
- data/lib/druid/elements/media.rb +11 -0
- data/lib/druid/elements/option.rb +9 -0
- data/lib/druid/elements/ordered_list.rb +29 -0
- data/lib/druid/elements/paragraph.rb +9 -0
- data/lib/druid/elements/radio_button.rb +9 -0
- data/lib/druid/elements/select_list.rb +30 -0
- data/lib/druid/elements/span.rb +9 -0
- data/lib/druid/elements/table.rb +92 -0
- data/lib/druid/elements/table_cell.rb +11 -0
- data/lib/druid/elements/table_row.rb +50 -0
- data/lib/druid/elements/text_area.rb +10 -0
- data/lib/druid/elements/text_field.rb +11 -0
- data/lib/druid/elements/unordered_list.rb +32 -0
- data/lib/druid/elements/video.rb +8 -0
- data/lib/druid/elements.rb +55 -0
- data/lib/druid/javascript/angularjs.rb +12 -0
- data/lib/druid/javascript/jquery.rb +12 -0
- data/lib/druid/javascript/prototype.rb +12 -0
- data/lib/druid/javascript/yui.rb +19 -0
- data/lib/druid/javascript_framework_facade.rb +76 -0
- data/lib/druid/locator_generator.rb +181 -0
- data/lib/druid/nested_elements.rb +56 -0
- data/lib/druid/page_factory.rb +115 -0
- data/lib/druid/page_populator.rb +104 -0
- data/lib/druid/section_collection.rb +17 -0
- data/lib/druid/version.rb +3 -0
- data/lib/druid.rb +452 -0
- data/spec/druid/accessors_spec.rb +1209 -0
- data/spec/druid/druid_spec.rb +295 -0
- data/spec/druid/element_locators_spec.rb +750 -0
- data/spec/druid/elements/bold_spec.rb +12 -0
- data/spec/druid/elements/button_spec.rb +23 -0
- data/spec/druid/elements/check_box_spec.rb +14 -0
- data/spec/druid/elements/div_spec.rb +10 -0
- data/spec/druid/elements/element_spec.rb +250 -0
- data/spec/druid/elements/file_field_spec.rb +13 -0
- data/spec/druid/elements/form_spec.rb +18 -0
- data/spec/druid/elements/heading_spec.rb +30 -0
- data/spec/druid/elements/hidden_field_spec.rb +10 -0
- data/spec/druid/elements/image_spec.rb +23 -0
- data/spec/druid/elements/itatic_spec.rb +11 -0
- data/spec/druid/elements/label_spec.rb +10 -0
- data/spec/druid/elements/link_spec.rb +10 -0
- data/spec/druid/elements/list_item_spec.rb +10 -0
- data/spec/druid/elements/media_spec.rb +12 -0
- data/spec/druid/elements/option_spec.rb +21 -0
- data/spec/druid/elements/ordered_list_spec.rb +38 -0
- data/spec/druid/elements/page_factory_spec.rb +40 -0
- data/spec/druid/elements/paragraph_spec.rb +12 -0
- data/spec/druid/elements/radio_button_spec.rb +14 -0
- data/spec/druid/elements/select_list_spec.rb +51 -0
- data/spec/druid/elements/span_spec.rb +10 -0
- data/spec/druid/elements/table_cell_spec.rb +14 -0
- data/spec/druid/elements/table_row_spec.rb +34 -0
- data/spec/druid/elements/table_spec.rb +47 -0
- data/spec/druid/elements/text_area_spec.rb +13 -0
- data/spec/druid/elements/text_field_spec.rb +22 -0
- data/spec/druid/elements/unordered_list_spec.rb +39 -0
- data/spec/druid/javascript_framework_facade_spec.rb +59 -0
- data/spec/druid/nested_element_spec.rb +128 -0
- data/spec/druid/page_factory_spec.rb +235 -0
- data/spec/druid/page_populator_spec.rb +173 -0
- data/spec/druid/page_section_spec.rb +70 -0
- data/spec/spec_helper.rb +9 -0
- metadata +517 -0
|
Binary file
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
Feature: Image
|
|
2
|
+
|
|
3
|
+
Background:
|
|
4
|
+
Given I am on the static elements page
|
|
5
|
+
|
|
6
|
+
Scenario: Getting the image element
|
|
7
|
+
When I get the image element
|
|
8
|
+
Then the image should be "106" pixels wide
|
|
9
|
+
And the image should be "106" pixels tall
|
|
10
|
+
|
|
11
|
+
Scenario Outline: Locating an image on the page
|
|
12
|
+
When I get the image element by "<locate_by>"
|
|
13
|
+
Then the image should be "106" pixels wide
|
|
14
|
+
And the image should be "106" pixels tall
|
|
15
|
+
|
|
16
|
+
Examples:
|
|
17
|
+
| locate_by |
|
|
18
|
+
| id |
|
|
19
|
+
| class |
|
|
20
|
+
| name |
|
|
21
|
+
| xpath |
|
|
22
|
+
| index |
|
|
23
|
+
| alt |
|
|
24
|
+
| src |
|
|
25
|
+
| css |
|
|
26
|
+
|
|
27
|
+
@multi
|
|
28
|
+
Scenario Outline: Locating an image using multiple parameters
|
|
29
|
+
When I get the image element bys "<param1>" and "<param2>"
|
|
30
|
+
Then the image should be "106" pixels wide
|
|
31
|
+
And the image should be "106" pixels tall
|
|
32
|
+
|
|
33
|
+
Examples:
|
|
34
|
+
| param1 | param2 |
|
|
35
|
+
| class | index |
|
|
36
|
+
| name | index |
|
|
37
|
+
|
|
38
|
+
@locator
|
|
39
|
+
Scenario: Finding an image dynamically
|
|
40
|
+
When I get the image element while the script is executing
|
|
41
|
+
Then I should see that the image exists
|
|
42
|
+
And the image should be "106" pixels wide
|
|
43
|
+
And the image should be "106" pixels tall
|
|
44
|
+
|
|
45
|
+
Scenario: Check an image loaded
|
|
46
|
+
When I get the image element load status
|
|
47
|
+
Then I should see that the image loaded
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Feature: Italic
|
|
2
|
+
|
|
3
|
+
Background:
|
|
4
|
+
Given I am on the static elements page
|
|
5
|
+
|
|
6
|
+
Scenario: Getting the text of headings
|
|
7
|
+
When I get the italic text for the "i" element
|
|
8
|
+
Then I should see "some text in italic" in italic
|
|
9
|
+
|
|
10
|
+
Scenario Outline: Locating i on the page
|
|
11
|
+
When I search italic text for the i by "<search_by>"
|
|
12
|
+
Then I should see "some text in italic" in italic
|
|
13
|
+
|
|
14
|
+
Examples:
|
|
15
|
+
| search_by |
|
|
16
|
+
| id |
|
|
17
|
+
| class |
|
|
18
|
+
| xpath |
|
|
19
|
+
| index |
|
|
20
|
+
| css |
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Feature: Handling javascript events
|
|
2
|
+
|
|
3
|
+
Background:
|
|
4
|
+
|
|
5
|
+
Scenario: Waiting for ajax to complete with jQuery
|
|
6
|
+
Given I am on jQuery example page
|
|
7
|
+
When I ask to compute "2+2"
|
|
8
|
+
Then I should be able to wait for the answer "4"
|
|
9
|
+
|
|
10
|
+
Scenario: Waiting for ajax to complete with Prototype
|
|
11
|
+
Given I am on the Prototype example page
|
|
12
|
+
When I ask to compute "2+2"
|
|
13
|
+
Then I should be able to wait for the answer "4"
|
|
14
|
+
|
|
15
|
+
Scenario: Executing javascript in the browser
|
|
16
|
+
Given I am on the static elements page
|
|
17
|
+
Given I execute the javascript "return 2 + 2;"
|
|
18
|
+
Then I should get the answer "4"
|
|
19
|
+
|
|
20
|
+
Scenario: Executing javascript in the browser with value arugment
|
|
21
|
+
Given I am on the static elements page
|
|
22
|
+
When I execute the javascript "return 2 + Number(arguments[0]);" with an argument of "2"
|
|
23
|
+
Then I should get the answer "4"
|
|
24
|
+
|
|
25
|
+
Scenario: Executing javascript in the browser with element argument
|
|
26
|
+
Given I am on the static elements page
|
|
27
|
+
When I execute the javascript "arguments[0].value = 'abcDEF';" with a text field argument
|
|
28
|
+
Then the text field should contain "abcDEF"
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
Feature: Handling labels with page object
|
|
2
|
+
|
|
3
|
+
In order to interact with labels,
|
|
4
|
+
Testers will need to access the element
|
|
5
|
+
and the ability to interrogate
|
|
6
|
+
|
|
7
|
+
Background:
|
|
8
|
+
Given I am on the static elements page
|
|
9
|
+
|
|
10
|
+
Scenario: Getting the text from a label
|
|
11
|
+
When I get the text from the label
|
|
12
|
+
Then the text should be "page-object is the best!"
|
|
13
|
+
|
|
14
|
+
Scenario: Getting the label element
|
|
15
|
+
When I retrieve the label element
|
|
16
|
+
Then I should know it exists
|
|
17
|
+
And I should know it is visible
|
|
18
|
+
|
|
19
|
+
Scenario Outline: Locating labels on the page
|
|
20
|
+
When I search for the label by "<search_by>"
|
|
21
|
+
Then the text should be "page-object is the best!"
|
|
22
|
+
|
|
23
|
+
Examples:
|
|
24
|
+
| search_by |
|
|
25
|
+
| id |
|
|
26
|
+
| class |
|
|
27
|
+
| xpath |
|
|
28
|
+
| index |
|
|
29
|
+
| text |
|
|
30
|
+
| css |
|
|
31
|
+
|
|
32
|
+
Scenario Outline: Locating lables using multiple parameters
|
|
33
|
+
When I search for the label by "<param1>" and "<param2>"
|
|
34
|
+
Then the text should be "page-object is the best!"
|
|
35
|
+
|
|
36
|
+
Examples:
|
|
37
|
+
| param1 | param2 |
|
|
38
|
+
| class | index |
|
|
39
|
+
|
|
40
|
+
Scenario: Finding a label dynamically
|
|
41
|
+
When I get the text from a label while the script is executing
|
|
42
|
+
Then I should see that the label exists
|
|
43
|
+
And the text should be "page-object is the best!"
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
Feature: Links
|
|
2
|
+
In order to interact with Links
|
|
3
|
+
Testers will need access and interrogation ability
|
|
4
|
+
|
|
5
|
+
Background:
|
|
6
|
+
Given I am on the static elements page
|
|
7
|
+
|
|
8
|
+
Scenario: Selecting a link
|
|
9
|
+
When I select the link labeled "Google Search"
|
|
10
|
+
Then the page should contain the text "Success"
|
|
11
|
+
|
|
12
|
+
Scenario Outline: Locating links on the Page
|
|
13
|
+
When I locate the link by "<locate_by>"
|
|
14
|
+
Then I should be able to select the link
|
|
15
|
+
|
|
16
|
+
Examples:
|
|
17
|
+
| locate_by |
|
|
18
|
+
| class |
|
|
19
|
+
| href |
|
|
20
|
+
| id |
|
|
21
|
+
| index |
|
|
22
|
+
| name |
|
|
23
|
+
| text |
|
|
24
|
+
| xpath |
|
|
25
|
+
| css |
|
|
26
|
+
| title |
|
|
27
|
+
|
|
28
|
+
Scenario: Retrieve a Link
|
|
29
|
+
When I retrieve a link element
|
|
30
|
+
Then I should know it exists
|
|
31
|
+
And I should know it is visible
|
|
32
|
+
|
|
33
|
+
@multi
|
|
34
|
+
Scenario: Support for multiple parameters
|
|
35
|
+
When I select a link labeled "Hello" and index "0"
|
|
36
|
+
Then the page should contain the text "Success"
|
|
37
|
+
Given I am on the static elements page
|
|
38
|
+
When I select a link labeled "Hello" and index "1"
|
|
39
|
+
Then the page should contain the text "Success"
|
|
40
|
+
|
|
41
|
+
@locator
|
|
42
|
+
Scenario: Finding a link dynamically
|
|
43
|
+
When I select a link while the script is executing
|
|
44
|
+
And the page should contain the text "Success"
|
|
45
|
+
|
|
46
|
+
Scenario: Getting the href for a link
|
|
47
|
+
When I get the href for the link
|
|
48
|
+
Then I should know it was "success.html"
|
|
49
|
+
|
|
50
|
+
Scenario: Link element methods
|
|
51
|
+
Given I am on the static elements page
|
|
52
|
+
When I retrieve a link element
|
|
53
|
+
Then I should be able to wait until it is present
|
|
54
|
+
And I should be able to wait until it is visible
|
|
55
|
+
And I should be able to wait until it is not visible
|
|
56
|
+
And I should be able to wait until a block returns true
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
Feature: List item
|
|
2
|
+
|
|
3
|
+
Background:
|
|
4
|
+
Given I am on the static elements page
|
|
5
|
+
|
|
6
|
+
Scenario: Getting the text from a list item
|
|
7
|
+
When I get the text from the list item
|
|
8
|
+
Then the text should be "Item One"
|
|
9
|
+
|
|
10
|
+
@name
|
|
11
|
+
Scenario Outline: Locating list items on the page
|
|
12
|
+
When I locate the list item by "<locate_by>"
|
|
13
|
+
Then the text should be "Item One"
|
|
14
|
+
|
|
15
|
+
Examples:
|
|
16
|
+
| locate_by |
|
|
17
|
+
| id |
|
|
18
|
+
| class |
|
|
19
|
+
| xpath |
|
|
20
|
+
| index |
|
|
21
|
+
| text |
|
|
22
|
+
| css |
|
|
23
|
+
|
|
24
|
+
@multi
|
|
25
|
+
Scenario Outline: Locating list items using multiple parameters
|
|
26
|
+
When I search for the list item by "<param1>" and "<param2>"
|
|
27
|
+
Then the text should be "Item One"
|
|
28
|
+
|
|
29
|
+
Examples:
|
|
30
|
+
| param1 | param2 |
|
|
31
|
+
| class | index |
|
|
32
|
+
|
|
33
|
+
@locator
|
|
34
|
+
Scenario: Finding a list item dynamically
|
|
35
|
+
When I search for the list item while the script is executing
|
|
36
|
+
Then I should see that the list item exists
|
|
37
|
+
And the text should be "Item One"
|