symbiont 0.0.4 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/HISTORY.md +6 -0
  2. data/cucumber.yml +1 -1
  3. data/lib/symbiont/generators.rb +279 -3
  4. data/lib/symbiont/platform_watir/platform_object.rb +217 -0
  5. data/lib/symbiont/version.rb +1 -1
  6. data/lib/symbiont/web_objects/_common.rb +22 -1
  7. data/lib/symbiont/web_objects/checkbox.rb +9 -0
  8. data/lib/symbiont/web_objects/div.rb +9 -0
  9. data/lib/symbiont/web_objects/radio.rb +9 -0
  10. data/lib/symbiont/web_objects/select_list.rb +9 -0
  11. data/lib/symbiont/web_objects/span.rb +9 -0
  12. data/lib/symbiont/web_objects/table.rb +38 -0
  13. data/lib/symbiont/web_objects/table_cell.rb +9 -0
  14. data/lib/symbiont/web_objects/table_row.rb +26 -0
  15. data/spec/spec_helper.rb +7 -0
  16. data/spec/symbiont/generators/cell_generators_spec.rb +52 -0
  17. data/spec/symbiont/generators/checkbox_generators_spec.rb +75 -0
  18. data/spec/symbiont/generators/div_generators_spec.rb +52 -0
  19. data/spec/symbiont/generators/radio_generators_spec.rb +78 -0
  20. data/spec/symbiont/generators/select_list_generators_spec.rb +77 -0
  21. data/spec/symbiont/generators/span_generators_spec.rb +52 -0
  22. data/spec/symbiont/generators/table_generators_spec.rb +45 -0
  23. data/spec/symbiont/web_object_spec.rb +20 -0
  24. data/spec/symbiont/web_objects/table_row_spec.rb +24 -0
  25. data/spec/symbiont/web_objects/table_spec.rb +33 -0
  26. data/specs/button.feature +22 -22
  27. data/specs/checkbox.feature +40 -0
  28. data/specs/definitions/pages.rb +88 -41
  29. data/specs/div.feature +11 -0
  30. data/specs/frame.feature +2 -2
  31. data/specs/link.feature +15 -15
  32. data/specs/radio.feature +38 -0
  33. data/specs/select_list.feature +38 -0
  34. data/specs/span.feature +11 -0
  35. data/specs/support/env.rb +2 -0
  36. data/specs/support/test_steps/action_steps_buttons.rb +67 -0
  37. data/specs/support/test_steps/action_steps_checkboxes.rb +75 -0
  38. data/specs/support/test_steps/action_steps_divs.rb +18 -0
  39. data/specs/support/test_steps/action_steps_frames.rb +13 -0
  40. data/specs/support/test_steps/action_steps_links.rb +41 -0
  41. data/specs/support/test_steps/action_steps_navigate.rb +15 -0
  42. data/specs/support/test_steps/action_steps_radios.rb +75 -0
  43. data/specs/support/test_steps/action_steps_select_lists.rb +72 -0
  44. data/specs/support/test_steps/action_steps_spans.rb +18 -0
  45. data/specs/support/test_steps/action_steps_tables.rb +69 -0
  46. data/specs/support/test_steps/action_steps_text_fields.rb +68 -0
  47. data/specs/table.feature +27 -0
  48. data/specs/text_field.feature +18 -18
  49. metadata +42 -9
  50. data/specs/support/test_steps/action_steps.rb +0 -207
@@ -1,58 +1,105 @@
1
- class LoggingIn
2
- include Symbiont
3
- begin_at "http://localhost:4567"
4
-
5
- within_frame(id: "loginSection") do |frame|
6
- text_field :clientCode, id: "clientCode", frame: frame
7
- text_field :loginName, id: "loginName", frame: frame
8
- text_field :loginPassword, id: "password", frame: frame
9
- button :login, id: "btnSubmit", frame: frame
10
- end
11
- end
12
-
13
1
  class LandingPage
14
2
  include Symbiont
15
3
 
16
4
  url_is "http://localhost:4567"
17
- title_is "Login | Test App"
18
- look_for :static_test_page
5
+ title_is "Landing Page | Test Application"
6
+ look_for :simple_object_page
19
7
 
20
- link :static_test_page, id: "testPage"
21
- link :test_app, id: "home_link"
22
- link :fake_link, id: "fakeLink"
8
+ link :simple_object_page, id: "test_page"
9
+ link :database_app, id: "test_database"
10
+ link :fake_link, id: "fake_link"
23
11
  end
24
12
 
25
- class TestPage
13
+ class SimpleObjectPage
26
14
  include Symbiont
27
-
15
+
28
16
  url_is "http://localhost:4567/test_page"
29
- title_is "Test Page | Test App"
17
+ title_is "Simple Object Page | Test Application"
18
+
19
+ link :avengersID, id: "avengersID"
20
+ link :avengersName, name: "avengersName"
21
+ link :avengersClass, class: "avengersClass"
22
+ link :avengersXPath, xpath: "id('avengersID')"
23
+ link :avengersIndex, {id: "avengersID", index: 0}
24
+
25
+ button :clickmeID, id: "clickmeID"
26
+ button :clickmeName, name: "clickmeName"
27
+ button :clickmeClass, class: "clickmeClass"
28
+ button :clickmeXPath, xpath: "//input[@id='clickmeID']"
29
+ button :clickmeIndex, {id: "clickmeID", index: 0}
30
+
31
+ button :cantClickMeID, id: "cantclickmeID"
32
+
33
+ button :fake_button, id: "fake_button"
34
+
35
+ text_field :bookTitleID, id: "bookTitleID"
36
+ text_field :bookTitleName, name: "bookTitleName"
37
+ text_field :bookTitleClass, class: "bookTitleClass"
38
+ text_field :bookTitleXPath, xpath: "//input[@id='bookTitleID']"
39
+ text_field :bookTitleIndex, {id: "bookTitleID", index: 0}
30
40
 
31
- link :avengersID, id: "avengers_assemble_id"
32
- link :avengersName, name: "avengers_assemble_name"
33
- link :avengersClass, class: "avengers_assemble_class"
34
- link :avengersXPath, xpath: "id('avengers_assemble_id')"
35
- link :avengersIndex, {id: "avengers_assemble_id", index: 0}
41
+ text_field :bookPubID, id: "bookPubID"
42
+ text_field :fake_text_field, id: "fake_text_field"
36
43
 
37
- button :clickme, id: "clickme_id"
44
+ select_list :physicsConceptsID, id: "physicsConceptsID"
45
+ select_list :physicsConceptsName, name: "physicsConceptsName"
46
+ select_list :physicsConceptsClass, class: "physicsConceptsClass"
47
+ select_list :physicsConceptsXPath, xpath: "//select[@id='physicsConceptsID']"
48
+ select_list :physicsConceptsIndex, {id: "physicsConceptsID", index: 0}
38
49
 
39
- button :clickmeID, id: "clickme_id"
40
- button :clickmeName, name: "clickme_name"
41
- button :clickmeClass, class: "clickme_class"
42
- button :clickmeXPath, xpath: "//input[@id='clickme_id']"
43
- button :clickmeIndex, {id: "clickme_id", index: 0}
50
+ select_list :sithPowerID, id: "sithPowerID"
51
+ select_list :fake_select_list, id: "fake_select_list"
44
52
 
45
- button :fake_button, id: "fakeButton"
46
- button :disabled_button, id: "cantclickme_id"
53
+ checkbox :organicCircuitry, id: "organicCircuitryID"
47
54
 
48
- text_field :book_title, id: "title"
55
+ checkbox :kineticHarpoonID, id: "kineticHarpoonID"
56
+ checkbox :kineticHarpoonName, name: "kineticHarpoonName"
57
+ checkbox :kineticHarpoonClass, class: "kineticHarpoonClass"
58
+ checkbox :kineticHarpoonXPath, xpath: "//input[@id='kineticHarpoonID']"
59
+ checkbox :kineticHarpoonIndex, {id: "kineticHarpoonID", index: 0}
49
60
 
50
- text_field :bookTitleID, id: "title"
51
- text_field :bookTitleName, name: "bookName"
52
- text_field :bookTitleClass, class: "bookClass"
53
- text_field :bookTitleXPath, xpath: "//input[@id='title']"
54
- text_field :bookTitleIndex, {id: "title", index: 0}
61
+ checkbox :eigenstate, id: "eigenstateID"
62
+ checkbox :fake_checkbox, id: "fake_checkbox"
55
63
 
56
- text_field :fake_text_field, id: "fakeTextField"
57
- text_field :disabled_text_field, id: "pub_id"
64
+ radio :warpCoreBreach, id: "wcbID"
65
+
66
+ radio :unstablePhaseShiftID, id: "upsID"
67
+ radio :unstablePhaseShiftName, name: "vaporize"
68
+ radio :unstablePhaseShiftClass, class: "upsClass"
69
+ radio :unstablePhaseShiftXPath, xpath: "//input[@id='upsID']"
70
+ radio :unstablePhaseShiftIndex, {id: "unstablePhaseShiftID", index: 3}
71
+
72
+ radio :fake_radio, id: "fake_radio"
73
+ radio :coronalMassEjection, id: "cmeID"
74
+
75
+ table :atomicTable, id: "atomicTableID"
76
+
77
+ table :savingsTableID, id: "savingsTableID"
78
+ table :savingsTableName, name: "savingsTableName"
79
+ table :savingsTableClass, class: "savingsTableClass"
80
+ table :savingsTableXPath, xpath: "id('savingsTableID')"
81
+
82
+ cell :janSavings, id: "jan_save"
83
+ cell :febSavings, id: "feb_save"
84
+
85
+ div :divTextID, id: "divTextID"
86
+ div :divTextName, name: "divTextName"
87
+ div :divTextClass, class: "divTextClass"
88
+
89
+ span :spanTextID, id: "spanTextID"
90
+ span :spanTextName, name: "spanTextName"
91
+ span :spanTextClass, class: "spanTextClass"
92
+ end
93
+
94
+ class LoggingIn
95
+ include Symbiont
96
+ begin_at "http://localhost:4567/test_database"
97
+
98
+ within_frame(id: "loginSection") do |frame|
99
+ text_field :server, id: "serverID", frame: frame
100
+ text_field :client, id: "clientID", frame: frame
101
+ text_field :loginName, id: "loginNameID", frame: frame
102
+ text_field :loginPassword, id: "passwordID", frame: frame
103
+ button :login, id: "btnSubmit", frame: frame
104
+ end
58
105
  end
data/specs/div.feature ADDED
@@ -0,0 +1,11 @@
1
+ Feature: Ability to Support Div Web Objects
2
+
3
+ Scenario: Reference a div
4
+ When on the object test page
5
+ Then the div text should exist
6
+ And the div text should be visible
7
+ And the div text should be a div object
8
+
9
+ Scenario: Get text from a div
10
+ When on the object test page
11
+ Then the div text should be "This text is within a div tag."
data/specs/frame.feature CHANGED
@@ -1,5 +1,5 @@
1
1
  Feature: Ability to Support Frame Web Objects
2
2
 
3
3
  Scenario: Access web objects within a frame
4
- When the login form on the login page is filled in with standard data
5
- Then the entities page appears
4
+ When the login form on the database application is filled in with standard data
5
+ Then the entity list page appears
data/specs/link.feature CHANGED
@@ -1,27 +1,27 @@
1
1
  Feature: Ability to Support Link Web Objects
2
-
2
+
3
3
  Scenario: Reference a link
4
4
  When on the landing page
5
- Then the test page link should exist
6
- And the test page link should be visible
7
- And the test page link object should be usable
8
-
5
+ Then the database app link should exist
6
+ And the database app link should be visible
7
+ And the database app link should be a link object
8
+
9
9
  Scenario: Get text from a link
10
10
  When on the landing page
11
- Then the text of the home page link should be "Test App"
12
-
11
+ Then the text of the object test page link should be "Simple Object Page"
12
+
13
13
  Scenario: Click a link
14
- When the test page link on the landing page is clicked
15
- Then the static test page appears
16
-
17
- Scenario: A non-existent link
14
+ When the object test page link on the landing page is clicked
15
+ Then the simple object page appears
16
+
17
+ Scenario: Handling a non-existent link
18
18
  When on the landing page
19
19
  Then the fake link should not exist
20
- But the fake page link object should be usable
21
-
20
+ But the fake link should be a link object
21
+
22
22
  Scenario Outline: Finding links with locators
23
- When the avengers link on the test page is clicked by "<locator>"
24
- Then the success page appears
23
+ When the avengers link on the object test page is clicked by "<locator>"
24
+ Then the first success page appears
25
25
 
26
26
  Scenarios:
27
27
  | locator |
@@ -0,0 +1,38 @@
1
+ Feature: Ability to Support Radio Web Objects
2
+
3
+ Scenario: Reference a radio
4
+ When on the object test page
5
+ Then the warp core breach radio should exist
6
+ And the warp core breach radio should be visible
7
+ And the warp core breach radio should be enabled
8
+ And the warp core breach radio should be a radio object
9
+
10
+ Scenario: Modify radio and check state
11
+ When warp core breach is not selected as the least favorite way to vaporize
12
+ Then the warp core breach radio should not be set
13
+ When warp core breach is selected as the least favorite way to vaporize
14
+ Then the warp core breach radio should be set
15
+
16
+ Scenario: Handling a non-existent radio
17
+ When on the object test page
18
+ Then the fake radio should not exist
19
+ But the fake radio should be a radio object
20
+
21
+ Scenario: Handling a disabled radio
22
+ When on the object test page
23
+ Then the coronal mass ejection radio should exist
24
+ And the coronal mass ejection radio should be visible
25
+ And the coronal mass ejection radio should be a radio object
26
+ But the coronal mass ejection radio should not be enabled
27
+
28
+ Scenario Outline: Finding buttons with locators
29
+ When the unstable phase shift radio on the object test page is selected by "<locator>"
30
+ Then the unstable phase shift radio should be set
31
+
32
+ # Unable to run index
33
+ Scenarios:
34
+ | locator |
35
+ | id |
36
+ | name |
37
+ | class |
38
+ | xpath |
@@ -0,0 +1,38 @@
1
+ Feature: Ability to Support Select List Web Objects
2
+
3
+ Scenario: Reference a select list
4
+ When on the object test page
5
+ Then the physics concepts select list should exist
6
+ And the physics concepts select list should be visible
7
+ And the physics concepts select list should be enabled
8
+ And the physics concepts select list should be a select list object
9
+
10
+ Scenario: Select item in select list and get current selection from it
11
+ When "Tachyonic Antitravel" is selected from physics concepts on the object test page
12
+ Then the physics concepts select list should have the second option selected
13
+ And the physics concepts select list should be displaying "Tachyonic Antitravel"
14
+
15
+ Scenario: Handling a non-existent select list
16
+ When on the object test page
17
+ Then the fake select list should not exist
18
+ But the fake select list should be a select list object
19
+
20
+ Scenario: Handling a disabled select list
21
+ When on the object test page
22
+ Then the sith power select list should exist
23
+ And the sith power select list should be visible
24
+ And the sith power select list should be displaying "Force Lightning"
25
+ And the sith power select list object should be a select list object
26
+ But the sith power select list should not be enabled
27
+
28
+ Scenario Outline: Finding select lists with locators
29
+ When the physics concepts on the object test page is selected by "<locator>"
30
+ Then the physics concepts select list should be displaying "Tachyonic Antitravel"
31
+
32
+ Scenarios:
33
+ | locator |
34
+ | id |
35
+ | name |
36
+ | class |
37
+ | xpath |
38
+ | index |
@@ -0,0 +1,11 @@
1
+ Feature: Ability to Support Span Web Objects
2
+
3
+ Scenario: Reference a span
4
+ When on the object test page
5
+ Then the span text should exist
6
+ And the span text should be visible
7
+ And the span text should be a span object
8
+
9
+ Scenario: Get text from a span
10
+ When on the object test page
11
+ Then the span text should be "This text is within a span tag."
data/specs/support/env.rb CHANGED
@@ -1,3 +1,5 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "../../", "lib"))
2
+
1
3
  require 'symbiont'
2
4
 
3
5
  module Symbiont
@@ -0,0 +1,67 @@
1
+ When (/^the click me button on the simple object test page is clicked$/) do
2
+ step %{on the object test page}
3
+ @page.clickmeID
4
+ end
5
+
6
+ When (/^the click me button on the object test page is clicked by "([^"]*)"$/) do |locator|
7
+ @page = SimpleObjectPage.new(@browser, true)
8
+ @page.clickmeID if locator == "id"
9
+ @page.clickmeName if locator == "name"
10
+ @page.clickmeClass if locator == "class"
11
+ @page.clickmeXPath if locator == "xpath"
12
+ @page.clickmeIndex if locator == "index"
13
+ end
14
+
15
+ Then (/^the click me button should exist$/) do
16
+ @page.clickmeID_exists?.should == true
17
+ @page.clickmeID?.should == true
18
+ end
19
+
20
+ Then (/^the can't click me button should exist$/) do
21
+ @page.cantClickMeID_exists?.should == true
22
+ end
23
+
24
+ Then (/^the click me button should be visible$/) do
25
+ @page.clickmeID_visible?.should == true
26
+ @page.clickmeID_?.should == true
27
+ end
28
+
29
+ Then (/^the can't click me button should be visible$/) do
30
+ @page.cantClickMeID_visible?.should == true
31
+ end
32
+
33
+ Then (/^the click me button should be enabled$/) do
34
+ @page.clickmeID_enabled?.should == true
35
+ @page.clickmeID!.should == true
36
+ end
37
+
38
+ Then (/^the can't click me button should not be enabled$/) do
39
+ @page.cantClickMeID_enabled?.should == false
40
+ end
41
+
42
+ Then (/^the click me button should be a button object$/) do
43
+ @object = @page.clickmeID_button
44
+ @object.should be_instance_of Symbiont::WebObjects::Button
45
+ end
46
+
47
+ Then (/^the can't click me button should be a button object$/) do
48
+ @object = @page.cantClickMeID_button
49
+ @object.should be_instance_of Symbiont::WebObjects::Button
50
+ end
51
+
52
+ Then (/^the text of the click me button should be "([^"]*)"$/) do |text|
53
+ @page.clickmeID_text.should == text
54
+ end
55
+
56
+ Then (/^the text of the can't click me button should be "([^"]*)"$/) do |text|
57
+ @page.cantClickMeID_text.should == text
58
+ end
59
+
60
+ Then (/^the fake button should not exist$/) do
61
+ @page.fake_button_exists?.should == false
62
+ end
63
+
64
+ Then (/^the fake button should be a button object$/) do
65
+ @object = @page.fake_button_object
66
+ @object.should be_instance_of Symbiont::WebObjects::Button
67
+ end
@@ -0,0 +1,75 @@
1
+ When (/^organic circuitry is not chosen as the futuristic technology$/) do
2
+ step %{on the object test page}
3
+ end
4
+
5
+ When (/^organic circuitry is chosen as the futuristic technology$/) do
6
+ step %{on the object test page}
7
+ @page.check_organicCircuitry
8
+ end
9
+
10
+ When (/^the kinetic harpoon checkbox on the object test page is checked by "([^"]*)"$/) do |locator|
11
+ @page = SimpleObjectPage.new(@browser, true)
12
+ @page.check_kineticHarpoonID if locator == "id"
13
+ @page.check_kineticHarpoonName if locator == "name"
14
+ @page.check_kineticHarpoonClass if locator == "class"
15
+ @page.check_kineticHarpoonXPath if locator == "xpath"
16
+ @page.check_kineticHarpoonIndex if locator == "index"
17
+ end
18
+
19
+ Then (/^the organic circuitry checkbox should exist$/) do
20
+ @page.organicCircuitry_exists?.should == true
21
+ @page.organicCircuitry?.should == true
22
+ end
23
+
24
+ Then (/^the organic circuitry checkbox should be visible$/) do
25
+ @page.organicCircuitry_visible?.should == true
26
+ @page.organicCircuitry_?.should == true
27
+ end
28
+
29
+ Then (/^the organic circuitry checkbox should be enabled$/) do
30
+ @page.organicCircuitry_enabled?.should == true
31
+ @page.organicCircuitry!.should == true
32
+ end
33
+
34
+ Then (/^the organic circuitry checkbox should be a checkbox object$/) do
35
+ @object = @page.organicCircuitry_checkbox
36
+ @object.should be_instance_of Symbiont::WebObjects::CheckBox
37
+ end
38
+
39
+ Then (/^the organic circuitry checkbox should be unchecked$/) do
40
+ @page.organicCircuitry_checked?.should == false
41
+ end
42
+
43
+ Then (/^the organic circuitry checkbox should be checked$/) do
44
+ @page.organicCircuitry_checked?.should == true
45
+ end
46
+
47
+ Then (/^the fake checkbox should not exist$/) do
48
+ @page.fake_checkbox_exists?.should == false
49
+ end
50
+
51
+ Then (/^the fake checkbox should be a checkbox object$/) do
52
+ @object = @page.fake_checkbox_checkbox
53
+ @object.should be_instance_of Symbiont::WebObjects::CheckBox
54
+ end
55
+
56
+ Then (/^the preferential eigenstate selector checkbox should exist$/) do
57
+ @page.eigenstate_exists?.should == true
58
+ end
59
+
60
+ Then (/^the preferential eigenstate selector checkbox should be visible$/) do
61
+ @page.eigenstate_visible?.should == true
62
+ end
63
+
64
+ Then (/^the preferential eigenstate selector checkbox should be a checkbox object$/) do
65
+ @object = @page.eigenstate_checkbox
66
+ @object.should be_instance_of Symbiont::WebObjects::CheckBox
67
+ end
68
+
69
+ Then (/^the preferential eigenstate selector checkbox should not be enabled$/) do
70
+ @page.eigenstate_enabled?.should == false
71
+ end
72
+
73
+ Then (/^the kinetic harpoon checkbox should be checked$/) do
74
+ @page.kineticHarpoonID_checked?.should == true
75
+ end
@@ -0,0 +1,18 @@
1
+ Then (/^the div text should exist$/) do
2
+ @page.divTextID_exists?.should == true
3
+ @page.divTextID?.should == true
4
+ end
5
+
6
+ Then (/^the div text should be visible$/) do
7
+ @page.divTextID_visible?.should == true
8
+ @page.divTextID_?.should == true
9
+ end
10
+
11
+ Then (/^the div text should be a div object$/) do
12
+ @object = @page.divTextID_div
13
+ @object.should be_instance_of Symbiont::WebObjects::Div
14
+ end
15
+
16
+ Then (/^the div text should be "([^"]*)"$/) do |text|
17
+ @page.divTextID.should == text
18
+ end
@@ -0,0 +1,13 @@
1
+ When /^the login form on the database application is filled in with standard data$/ do
2
+ @activity = LoggingIn.new(@browser)
3
+ @activity.start
4
+ @activity.server = "Staging"
5
+ @activity.client = "QA"
6
+ @activity.loginName = "jnyman"
7
+ @activity.loginPassword = "P@ssw0rd!"
8
+ @activity.login
9
+ end
10
+
11
+ Then /^the entity list page appears$/ do
12
+ @browser.title.should == "Entity List | Test Application"
13
+ end
@@ -0,0 +1,41 @@
1
+ When (/^the object test page link on the landing page is clicked$/) do
2
+ step %{on the landing page}
3
+ @page.simple_object_page
4
+ end
5
+
6
+ When (/^the avengers link on the object test page is clicked by "([^"]*)"$/) do |locator|
7
+ @page = SimpleObjectPage.new(@browser, true)
8
+ @page.avengersID if locator == "id"
9
+ @page.avengersName if locator == "name"
10
+ @page.avengersClass if locator == "class"
11
+ @page.avengersXPath if locator == "xpath"
12
+ @page.avengersIndex if locator == "index"
13
+ end
14
+
15
+ Then (/^the database app link should exist$/) do
16
+ @page.database_app_exists?.should == true
17
+ @page.database_app?.should == true
18
+ end
19
+
20
+ Then (/^the fake link should not exist$/) do
21
+ @page.fake_link_exists?.should == false
22
+ end
23
+
24
+ Then (/^the database app link should be visible$/) do
25
+ @page.database_app_visible?.should == true
26
+ @page.database_app_?.should == true
27
+ end
28
+
29
+ Then (/^the database app link should be a link object$/) do
30
+ @object = @page.database_app_link
31
+ @object.should be_instance_of Symbiont::WebObjects::Link
32
+ end
33
+
34
+ Then (/^the fake link should be a link object$/) do
35
+ @object = @page.fake_link_object
36
+ @object.should be_instance_of Symbiont::WebObjects::Link
37
+ end
38
+
39
+ Then (/^the text of the object test page link should be "([^"]*)"$/) do |text|
40
+ @page.simple_object_page_text.should == text
41
+ end
@@ -0,0 +1,15 @@
1
+ When (/^on the landing page$/) do
2
+ @page = LandingPage.new(@browser, true)
3
+ end
4
+
5
+ When (/^on the object test page$/) do
6
+ @page = SimpleObjectPage.new(@browser, true)
7
+ end
8
+
9
+ Then (/^the simple object page appears$/) do
10
+ @browser.title.should == "Simple Object Page | Test Application"
11
+ end
12
+
13
+ Then (/^the first success page appears$/) do
14
+ @browser.title.should == "Success 1 | Test Application"
15
+ end
@@ -0,0 +1,75 @@
1
+ When (/^warp core breach is not selected as the least favorite way to vaporize$/) do
2
+ step %{on the object test page}
3
+ end
4
+
5
+ When (/^warp core breach is selected as the least favorite way to vaporize$/) do
6
+ step %{on the object test page}
7
+ @page.set_warpCoreBreach
8
+ end
9
+
10
+ When (/^the unstable phase shift radio on the object test page is selected by "([^"]*)"$/) do |locator|
11
+ @page = SimpleObjectPage.new(@browser, true)
12
+ @page.set_unstablePhaseShiftID if locator == "id"
13
+ @page.set_unstablePhaseShiftName if locator == "name"
14
+ @page.set_unstablePhaseShiftClass if locator == "class"
15
+ @page.set_unstablePhaseShiftXPath if locator == "xpath"
16
+ @page.set_unstablePhaseShiftIndex if locator == "index"
17
+ end
18
+
19
+ Then (/^the warp core breach radio should exist$/) do
20
+ @page.warpCoreBreach_exists?.should == true
21
+ @page.warpCoreBreach?.should == true
22
+ end
23
+
24
+ Then (/^the warp core breach radio should be visible$/) do
25
+ @page.warpCoreBreach_visible?.should == true
26
+ @page.warpCoreBreach_?.should == true
27
+ end
28
+
29
+ Then (/^the warp core breach radio should be enabled$/) do
30
+ @page.warpCoreBreach_enabled?.should == true
31
+ @page.warpCoreBreach!.should == true
32
+ end
33
+
34
+ Then (/^the warp core breach radio should be a radio object$/) do
35
+ @object = @page.warpCoreBreach_radio
36
+ @object.should be_instance_of Symbiont::WebObjects::Radio
37
+ end
38
+
39
+ Then (/^the warp core breach radio should not be set$/) do
40
+ @page.warpCoreBreach_selected?.should == false
41
+ end
42
+
43
+ Then (/^the warp core breach radio should be set$/) do
44
+ @page.warpCoreBreach_selected?.should == true
45
+ end
46
+
47
+ Then (/^the fake radio should not exist$/) do
48
+ @page.fake_radio_exists?.should == false
49
+ end
50
+
51
+ Then (/^the fake radio should be a radio object$/) do
52
+ @object = @page.fake_radio_object
53
+ @object.should be_instance_of Symbiont::WebObjects::Radio
54
+ end
55
+
56
+ Then (/^the coronal mass ejection radio should exist$/) do
57
+ @page.coronalMassEjection_exists?.should == true
58
+ end
59
+
60
+ Then (/^the coronal mass ejection radio should be visible$/) do
61
+ @page.coronalMassEjection_visible?.should == true
62
+ end
63
+
64
+ Then (/^the coronal mass ejection radio should be a radio object$/) do
65
+ @object = @page.coronalMassEjection_radio
66
+ @object.should be_instance_of Symbiont::WebObjects::Radio
67
+ end
68
+
69
+ Then (/^the coronal mass ejection radio should not be enabled$/) do
70
+ @page.coronalMassEjection_enabled?.should == false
71
+ end
72
+
73
+ Then (/^the unstable phase shift radio should be set$/) do
74
+ @page.set_unstablePhaseShiftID
75
+ end