symbiont 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. data/Gemfile.lock +10 -39
  2. data/HISTORY.md +6 -0
  3. data/lib/symbiont.rb +8 -4
  4. data/lib/symbiont/enclosers.rb +4 -4
  5. data/lib/symbiont/evaluators.rb +22 -29
  6. data/lib/symbiont/generators.rb +82 -317
  7. data/lib/symbiont/platform_selenium.rb +18 -0
  8. data/lib/symbiont/platform_selenium/platform_object.rb +236 -0
  9. data/lib/symbiont/platform_selenium/web_objects/button.rb +13 -0
  10. data/lib/symbiont/platform_selenium/web_objects/checkbox.rb +21 -0
  11. data/lib/symbiont/platform_selenium/web_objects/common.rb +104 -0
  12. data/lib/symbiont/platform_selenium/web_objects/link.rb +13 -0
  13. data/lib/symbiont/platform_selenium/web_objects/radio.rb +21 -0
  14. data/lib/symbiont/platform_selenium/web_objects/select_list.rb +79 -0
  15. data/lib/symbiont/platform_selenium/web_objects/table.rb +40 -0
  16. data/lib/symbiont/platform_selenium/web_objects/table_row.rb +36 -0
  17. data/lib/symbiont/platform_selenium/web_objects/text_field.rb +14 -0
  18. data/lib/symbiont/platform_watir.rb +13 -4
  19. data/lib/symbiont/platform_watir/platform_object.rb +74 -262
  20. data/lib/symbiont/platform_watir/web_objects/checkbox.rb +21 -0
  21. data/lib/symbiont/platform_watir/web_objects/common.rb +82 -0
  22. data/lib/symbiont/platform_watir/web_objects/radio.rb +21 -0
  23. data/lib/symbiont/platform_watir/web_objects/select_list.rb +67 -0
  24. data/lib/symbiont/platform_watir/web_objects/table.rb +31 -0
  25. data/lib/symbiont/platform_watir/web_objects/table_row.rb +31 -0
  26. data/lib/symbiont/platform_watir/web_objects/text_field.rb +13 -0
  27. data/lib/symbiont/platforms.rb +18 -6
  28. data/lib/symbiont/version.rb +1 -1
  29. data/lib/symbiont/web_objects/_common.rb +53 -74
  30. data/lib/symbiont/web_objects/button.rb +23 -4
  31. data/lib/symbiont/web_objects/checkbox.rb +24 -10
  32. data/lib/symbiont/web_objects/div.rb +9 -1
  33. data/lib/symbiont/web_objects/link.rb +25 -4
  34. data/lib/symbiont/web_objects/paragraph.rb +11 -0
  35. data/lib/symbiont/web_objects/radio.rb +27 -1
  36. data/lib/symbiont/web_objects/select_list.rb +20 -56
  37. data/lib/symbiont/web_objects/span.rb +9 -1
  38. data/lib/symbiont/web_objects/table.rb +19 -22
  39. data/lib/symbiont/web_objects/table_cell.rb +17 -1
  40. data/lib/symbiont/web_objects/table_row.rb +18 -25
  41. data/lib/symbiont/web_objects/text_field.rb +27 -11
  42. data/symbiont.gemspec +3 -8
  43. metadata +29 -122
  44. data/app/Gemfile +0 -4
  45. data/app/app.rb +0 -181
  46. data/app/config/database.rb +0 -9
  47. data/app/models/plan.rb +0 -10
  48. data/app/models/product.rb +0 -10
  49. data/app/models/study.rb +0 -11
  50. data/app/models/user.rb +0 -13
  51. data/app/public/css/style.css +0 -138
  52. data/app/views/create_plan.erb +0 -21
  53. data/app/views/create_product.erb +0 -15
  54. data/app/views/create_study.erb +0 -24
  55. data/app/views/create_user.erb +0 -60
  56. data/app/views/db_plans.erb +0 -31
  57. data/app/views/db_products.erb +0 -29
  58. data/app/views/db_studies.erb +0 -33
  59. data/app/views/db_users.erb +0 -23
  60. data/app/views/entity_list.erb +0 -10
  61. data/app/views/index.erb +0 -8
  62. data/app/views/layout.erb +0 -39
  63. data/app/views/login_page.erb +0 -17
  64. data/app/views/success_1.erb +0 -2
  65. data/app/views/success_2.erb +0 -2
  66. data/app/views/test_database.erb +0 -13
  67. data/app/views/test_events.erb +0 -51
  68. data/app/views/test_login.erb +0 -53
  69. data/app/views/test_login_error.erb +0 -22
  70. data/app/views/test_login_success.erb +0 -22
  71. data/app/views/test_page.erb +0 -184
  72. data/specs/button.feature +0 -44
  73. data/specs/checkbox.feature +0 -40
  74. data/specs/data_setter.feature +0 -29
  75. data/specs/definitions/pages.rb +0 -156
  76. data/specs/div.feature +0 -11
  77. data/specs/evaluators.feature +0 -17
  78. data/specs/events.feature +0 -30
  79. data/specs/frame.feature +0 -5
  80. data/specs/link.feature +0 -42
  81. data/specs/locators.feature +0 -17
  82. data/specs/radio.feature +0 -38
  83. data/specs/select_list.feature +0 -50
  84. data/specs/simple_test.feature +0 -13
  85. data/specs/span.feature +0 -11
  86. data/specs/support/env.rb +0 -20
  87. data/specs/support/hooks.rb +0 -11
  88. data/specs/support/test_steps/action_steps_buttons.rb +0 -70
  89. data/specs/support/test_steps/action_steps_checkboxes.rb +0 -75
  90. data/specs/support/test_steps/action_steps_data_setter.rb +0 -56
  91. data/specs/support/test_steps/action_steps_divs.rb +0 -18
  92. data/specs/support/test_steps/action_steps_evaluators.rb +0 -15
  93. data/specs/support/test_steps/action_steps_events.rb +0 -77
  94. data/specs/support/test_steps/action_steps_frames.rb +0 -13
  95. data/specs/support/test_steps/action_steps_links.rb +0 -61
  96. data/specs/support/test_steps/action_steps_locators.rb +0 -44
  97. data/specs/support/test_steps/action_steps_navigate.rb +0 -25
  98. data/specs/support/test_steps/action_steps_radios.rb +0 -75
  99. data/specs/support/test_steps/action_steps_select_lists.rb +0 -106
  100. data/specs/support/test_steps/action_steps_spans.rb +0 -18
  101. data/specs/support/test_steps/action_steps_tables.rb +0 -82
  102. data/specs/support/test_steps/action_steps_text_fields.rb +0 -107
  103. data/specs/support/test_steps/action_steps_webobjects.rb +0 -31
  104. data/specs/support/test_steps/simple_test_steps.rb +0 -8
  105. data/specs/table.feature +0 -39
  106. data/specs/text_field.feature +0 -47
  107. data/specs/web_object.feature +0 -15
@@ -1,13 +0,0 @@
1
- Feature: Simple Test of Symbiont and Cucumber
2
-
3
- Scenario: Browser is started for first scenario.
4
- When the first scenario is executed
5
- Then a browser should be available
6
-
7
- Scenario: Browser is started for second scenario.
8
- When the second scenario is executed
9
- Then a browser should be available
10
-
11
- Scenario: Browser is started for third scenario.
12
- When the third scenario is executed
13
- Then a browser should be available
data/specs/span.feature DELETED
@@ -1,11 +0,0 @@
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 DELETED
@@ -1,20 +0,0 @@
1
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "../../", "lib"))
2
-
3
- require 'symbiont'
4
-
5
- module Symbiont
6
- module Browser
7
-
8
- def self.start
9
- unless @browser
10
- @browser = Watir::Browser.new(ENV['BROWSER'])
11
- end
12
- @browser
13
- end
14
-
15
- def self.stop
16
- @browser.quit if @browser
17
- end
18
-
19
- end # module: Browser
20
- end # module: Symbiont
@@ -1,11 +0,0 @@
1
- AfterConfiguration do |config|
2
- puts("Tests are being executed from: #{config.feature_dirs}")
3
- end
4
-
5
- Before do
6
- @browser = Symbiont::Browser.start
7
- end
8
-
9
- at_exit do
10
- Symbiont::Browser.stop
11
- end
@@ -1,70 +0,0 @@
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
- @page.clickmeValue if locator == "value"
14
- @page.clickmeText if locator == "text"
15
- @page.clickmeCSS if locator == "css"
16
- end
17
-
18
- Then (/^the click me button should exist$/) do
19
- @page.clickmeID_exists?.should == true
20
- @page.clickmeID?.should == true
21
- end
22
-
23
- Then (/^the can't click me button should exist$/) do
24
- @page.cantClickMeID_exists?.should == true
25
- end
26
-
27
- Then (/^the click me button should be visible$/) do
28
- @page.clickmeID_visible?.should == true
29
- @page.clickmeID_?.should == true
30
- end
31
-
32
- Then (/^the can't click me button should be visible$/) do
33
- @page.cantClickMeID_visible?.should == true
34
- end
35
-
36
- Then (/^the click me button should be enabled$/) do
37
- @page.clickmeID_enabled?.should == true
38
- @page.clickmeID!.should == true
39
- end
40
-
41
- Then (/^the can't click me button should not be enabled$/) do
42
- @page.cantClickMeID_enabled?.should == false
43
- end
44
-
45
- Then (/^the click me button should be a button object$/) do
46
- @object = @page.clickmeID_button
47
- @object.should be_instance_of Symbiont::WebObjects::Button
48
- end
49
-
50
- Then (/^the can't click me button should be a button object$/) do
51
- @object = @page.cantClickMeID_button
52
- @object.should be_instance_of Symbiont::WebObjects::Button
53
- end
54
-
55
- Then (/^the text of the click me button should be "([^"]*)"$/) do |text|
56
- @page.clickmeID_text.should == text
57
- end
58
-
59
- Then (/^the text of the can't click me button should be "([^"]*)"$/) do |text|
60
- @page.cantClickMeID_text.should == text
61
- end
62
-
63
- Then (/^the fake button should not exist$/) do
64
- @page.fake_button_exists?.should == false
65
- end
66
-
67
- Then (/^the fake button should be a button object$/) do
68
- @object = @page.fake_button_object
69
- @object.should be_instance_of Symbiont::WebObjects::Button
70
- end
@@ -1,75 +0,0 @@
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
@@ -1,56 +0,0 @@
1
- When (/^an administrator logs in$/) do
2
- @page = LoggingIn.new(@browser, true)
3
- @page.login_as
4
- end
5
-
6
- When (/^a clinical administrator logs in$/) do
7
- @page = LoggingIn.new(@browser, true)
8
- @page.login_as('loginName' => 'clinicaladmin')
9
- end
10
-
11
- When (/^a power user with a nonsecure password logs in to the beta client$/) do
12
- @page = LoggingIn.new(@browser, true)
13
- @page.using(:client => 'beta', :loginName => 'poweruser', :loginPassword => '1234')
14
- end
15
-
16
- When (/^a user logs in with:$/) do |table|
17
- @page = LoggingIn.new(@browser, true)
18
- @page.using(table.hashes.first)
19
- end
20
-
21
- When (/^a totally fictitious concept is used$/) do
22
- @page = SimpleObjectPage.new(@browser, true)
23
- @page.using('physicsConceptsID' => 'Tachyonic Antitravel')
24
- end
25
-
26
- When (/^two futuristic technologies are chosen$/) do
27
- @page = SimpleObjectPage.new(@browser, true)
28
- @page.using('neuralShunt' => true, 'organicCircuitry' => true)
29
- end
30
-
31
- When (/^a way to vaporize is selected$/) do
32
- @page.using('unstablePhaseShiftID' => true)
33
- end
34
-
35
- Then (/^the users option should be available$/) do
36
- @page = EntityList.new(@browser)
37
- @page.users_exists?.should == true
38
- end
39
-
40
- Then (/^the users option should not be available$/) do
41
- @page = EntityList.new(@browser)
42
- @page.users_exists?.should == false
43
- end
44
-
45
- Then (/^that concept should be selected$/) do
46
- @page.physicsConceptsID.should == 'Tachyonic Antitravel'
47
- end
48
-
49
- Then (/^those technologies should be checked$/) do
50
- @page.neuralShunt_checked?.should == true
51
- @page.organicCircuitry_checked?.should == true
52
- end
53
-
54
- Then (/^that vaporization method should be selected$/) do
55
- @page.unstablePhaseShiftID_selected?.should == true
56
- end
@@ -1,18 +0,0 @@
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
@@ -1,15 +0,0 @@
1
- Then (/^the page should contain the text "([^"]*)"$/) do |text|
2
- @page.text.include? text
3
- end
4
-
5
- Then (/^the page should have the title "([^"]*)"$/) do |text|
6
- @page.title.include? text
7
- end
8
-
9
- Then (/^the page should contain the markup "([^"]*)"$/) do |markup|
10
- @page.markup.include? markup
11
- end
12
-
13
- Then (/^the page url should be "([^"]*)"$/) do |url|
14
- @page.url.should == url
15
- end
@@ -1,77 +0,0 @@
1
- When (/^performing a successful action on the object test page$/) do
2
- step %{on the object test page}
3
- @page.clickmeID
4
- end
5
-
6
- When (/^the conditional button is hidden$/) do
7
- @page.hideButton
8
- end
9
-
10
- When (/^the conditional button is revealed$/) do
11
- @page.revealButton
12
- end
13
-
14
- When (/^the conditional button on the events test page is invisible$/) do
15
- step %{on the events test page}
16
- step %{the conditional button is hidden}
17
- end
18
-
19
- When (/^the alert message box appears$/) do
20
- step %{on the events test page}
21
- @message = @page.will_alert do
22
- @page.alert
23
- end
24
- end
25
-
26
- When (/^the confirmation message box appears$/) do
27
- step %{on the events test page}
28
- @message = @page.will_confirm(true) do
29
- @page.confirm
30
- end
31
- end
32
-
33
- When (/^the prompt message box appears$/) do
34
- step %{on the events test page}
35
- @response = @page.will_prompt("Darth Bane") do
36
- @page.prompt
37
- end
38
- end
39
-
40
- Then (/^the test should wait for a success page$/) do
41
- @page.wait_for(10, "success page did not come up in time") do
42
- @page.text.include? 'Success'
43
- end
44
- end
45
-
46
- Then (/^the conditional button can be clicked$/) do
47
- @page.conditional
48
- end
49
-
50
- Then (/^the test will wait until the conditional button is invisible$/) do
51
- @page.conditional_button.when_not_visible
52
- end
53
-
54
- Then (/^after that time the conditional button should not be visible$/) do
55
- @page.conditional_visible?.should == false
56
- end
57
-
58
- Then (/^the test will wait until the conditional button is visible before clicking it$/) do
59
- @page.conditional_button.when_visible
60
- @page.conditional
61
- end
62
-
63
- Then (/^the alert message should be "([^"]*)"$/) do |text|
64
- @message.should == text
65
- end
66
-
67
- Then (/^the confirmation message should be "([^"]*)"$/) do |text|
68
- @message.should == text
69
- end
70
-
71
- Then (/^the prompt message should be "([^"]*)"$/) do |text|
72
- @response[:message].should == text
73
- end
74
-
75
- Then (/^the prompt default value should be "([^"]*)"$/) do |value|
76
- @response[:default_value].should == value
77
- end
@@ -1,13 +0,0 @@
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
@@ -1,61 +0,0 @@
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 oath link on the object test page is clicked$/) do
7
- step %{on the object test page}
8
- @text_field = @page.link_object(id: "oath").click
9
- end
10
-
11
- When (/^the avengers link on the object test page is clicked by "([^"]*)"$/) do |locator|
12
- @page = SimpleObjectPage.new(@browser, true)
13
- @page.avengersCSS if locator == "css"
14
- @page.avengersID if locator == "id"
15
- @page.avengersName if locator == "name"
16
- @page.avengersClass if locator == "class"
17
- @page.avengersXPath if locator == "xpath"
18
- @page.avengersIndex if locator == "index"
19
- @page.avengersTitle if locator == "title"
20
- @page.avengersText if locator == "text"
21
- @page.avengersHref if locator == "href"
22
- @page.avengersLink if locator == "link"
23
- @page.avengersLinkText if locator == "link_text"
24
- end
25
-
26
- Then (/^the database app link should exist$/) do
27
- @page.database_app_exists?.should == true
28
- @page.database_app?.should == true
29
-
30
- @web_object = @page.database_app_object
31
- @web_object.should exist
32
- end
33
-
34
- Then (/^the fake link should not exist$/) do
35
- @page.fake_link_exists?.should == false
36
-
37
- @web_object = @page.fake_link_object
38
- @web_object.should_not exist
39
- end
40
-
41
- Then (/^the database app link should be visible$/) do
42
- @page.database_app_visible?.should == true
43
- @page.database_app_?.should == true
44
-
45
- @web_object = @page.database_app_object
46
- @web_object.should be_visible
47
- end
48
-
49
- Then (/^the database app link should be a link object$/) do
50
- @object = @page.database_app_link
51
- @object.should be_instance_of Symbiont::WebObjects::Link
52
- end
53
-
54
- Then (/^the fake link should be a link object$/) do
55
- @object = @page.fake_link_object
56
- @object.should be_instance_of Symbiont::WebObjects::Link
57
- end
58
-
59
- Then (/^the text of the object test page link should be "([^"]*)"$/) do |text|
60
- @page.simple_object_page_text.should == text
61
- end