bdd-legacy 0.0.12 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. data/.DS_Store +0 -0
  2. data/._.DS_Store +0 -0
  3. data/._Gemfile.lock +0 -0
  4. data/._bdd-legacy.gemspec +0 -0
  5. data/Gemfile +0 -2
  6. data/README.markdown +208 -0
  7. data/bdd-legacy.gemspec +3 -5
  8. data/bin/.DS_Store +0 -0
  9. data/bin/bdd-legacy +84 -84
  10. data/bin/templates/addition_steps.tt +15 -15
  11. data/bin/templates/additions_feature.tt +9 -9
  12. data/bin/templates/calculator.tt +17 -17
  13. data/bin/templates/env.tt +59 -53
  14. data/bin/templates/generic_browser_steps.tt +82 -65
  15. data/bin/templates/landing_page_feature.tt +22 -22
  16. data/bin/templates/landing_page_steps.tt +30 -30
  17. data/bin/templates/login_feature.tt +12 -12
  18. data/bin/templates/login_steps.tt +33 -33
  19. data/bin/templates/newgem.tt +1 -1
  20. data/bin/templates/rakefile.tt +5 -5
  21. data/bin/templates/sqlhelper.tt +40 -40
  22. data/bin/templates/sqlserver.tt +118 -118
  23. data/lib/.DS_Store +0 -0
  24. data/lib/._.DS_Store +0 -0
  25. data/lib/._bdd-legacy.rb +0 -0
  26. data/lib/bdd-legacy/._version.rb +0 -0
  27. data/lib/bdd-legacy/version.rb +1 -1
  28. metadata +63 -114
  29. data/bin/addition_steps.tt +0 -15
  30. data/bin/additions_feature.tt +0 -10
  31. data/bin/calculator.tt +0 -17
  32. data/bin/env.tt +0 -53
  33. data/bin/generic_browser_steps.tt +0 -66
  34. data/bin/landing_page_feature.tt +0 -23
  35. data/bin/landing_page_steps.tt +0 -30
  36. data/bin/login_feature.tt +0 -13
  37. data/bin/login_steps.tt +0 -33
  38. data/bin/newgem.tt +0 -2
  39. data/bin/rakefile.tt +0 -5
  40. data/bin/sqlhelper.tt +0 -40
  41. data/bin/sqlserver.tt +0 -118
  42. data/lib/templates/addition_steps.tt +0 -15
  43. data/lib/templates/additions_feature.tt +0 -10
  44. data/lib/templates/calculator.tt +0 -17
  45. data/lib/templates/env.tt +0 -53
  46. data/lib/templates/generic_browser_steps.tt +0 -66
  47. data/lib/templates/landing_page_feature.tt +0 -23
  48. data/lib/templates/landing_page_steps.tt +0 -30
  49. data/lib/templates/login_feature.tt +0 -13
  50. data/lib/templates/login_steps.tt +0 -33
  51. data/lib/templates/newgem.tt +0 -2
  52. data/lib/templates/rakefile.tt +0 -5
  53. data/lib/templates/sqlhelper.tt +0 -40
  54. data/lib/templates/sqlserver.tt +0 -118
@@ -1,10 +1,10 @@
1
- Feature: Addition
2
- In order to avoid silly mistakes
3
- As a math idiot
4
- I want to be told the sum of two numbers
5
-
6
- Scenario: Add two numbers
7
- Given I have entered 50 into the calculator
8
- And I have entered 70 into the calculator
9
- When I press add
1
+ Feature: Addition
2
+ In order to avoid silly mistakes
3
+ As a math idiot
4
+ I want to be told the sum of two numbers
5
+
6
+ Scenario: Add two numbers
7
+ Given I have entered 50 into the calculator
8
+ And I have entered 70 into the calculator
9
+ When I press add
10
10
  Then the result should be 120 on the screen
@@ -1,17 +1,17 @@
1
- class Calculator
2
- def initialize
3
- @stack = []
4
- end
5
-
6
- def enter( value )
7
- @stack.push value
8
- end
9
-
10
- def screen
11
- @stack[0]
12
- end
13
-
14
- def add
15
- @stack.push( @stack.pop + @stack.pop )
16
- end
17
- end
1
+ class Calculator
2
+ def initialize
3
+ @stack = []
4
+ end
5
+
6
+ def enter( value )
7
+ @stack.push value
8
+ end
9
+
10
+ def screen
11
+ @stack[0]
12
+ end
13
+
14
+ def add
15
+ @stack.push( @stack.pop + @stack.pop )
16
+ end
17
+ end
@@ -1,53 +1,59 @@
1
- $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../../lib')
2
- require 'calculator'
3
- require 'sqlserver'
4
- require 'sqlserver_wrapper'
5
- require 'capybara/cucumber'
6
-
7
- Capybara.run_server = false
8
-
9
- Capybara.register_driver :selenium_firefox do |app|
10
- Capybara::Driver::Selenium.new(app,:browser=>:firefox)
11
- end
12
-
13
- Capybara.register_driver :selenium_ie do |app|
14
- Capybara::Driver::Selenium.new(app,:browser=>:ie)
15
- end
16
-
17
- Capybara.default_driver = :selenium_firefox
18
-
19
- workingDBServerOpt||=
20
- workingDBOpt||={}
21
- workingEnvLinkOpt||={}
22
-
23
- # change to :test or :dev or :local
24
- $currentOpt=:local
25
-
26
- #TODO change strings to import from yaml file
27
- #TODO exclude yaml file from check-in
28
- # the below server name will either be in the format of 'MYSERVERNAME' or 'MYSERVERNAME\DATABASEINSTANCE'
29
- # depending on how your sql servr is set up
30
- workingDBServerOpt={:dev => 'MYDEVDATABASESERVER',
31
- :test => 'MYTESTDATABASESERVER',
32
- :local => 'MYLOCALDATABASE'}
33
- workingDBOpt={:dev => 'devdb',
34
- :test => 'tstdb',
35
- :local => 'devdb'}
36
- # if you have a list of links after logging in with a single sign on account,
37
- # you may also have a page of separate links for local/dev/test/prod etc
38
- workingEnvLinkOpt = {:local => 'Welcome',
39
- :dev => 'Welcome',
40
- :test => 'Welcome'}
41
-
42
- $workingDBServer = workingDBServerOpt[$currentOpt]
43
- $workingDB = workingDBOpt[$currentOpt]
44
- $workingAppUser='myapplicationusername'
45
- $workingAppPW='myapplicationpw'
46
- $workingDBUser='mydatabaseusername'
47
- $workingDBPW='mydatabasepw'
48
- # Change this to the domain of your web server. Don't add the full url
49
- $workingAppHostLink='http://localhost'
50
- # add the url of your login page
51
- $workingAppLoginRoute='/welcome/logon.asp'
52
- $workingEnvLink = workingEnvLinkOpt[$currentOpt]
53
-
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../../lib')
2
+ require 'calculator'
3
+ require 'sqlserver'
4
+ require 'sqlhelper'
5
+ require 'capybara/cucumber'
6
+ require 'rbconfig'
7
+
8
+ $isWindows = !((Config::CONFIG['host_os'] =~ /mswin|mingw/).nil?)
9
+
10
+ Capybara.run_server = false
11
+
12
+ Capybara.register_driver :selenium_firefox do |app|
13
+ Capybara::Driver::Selenium.new(app,:browser=>:firefox)
14
+ end
15
+
16
+ if $isWindows
17
+ Capybara.register_driver :selenium_ie do |app|
18
+ Capybara::Driver::Selenium.new(app,:browser=>:ie)
19
+ end
20
+ end
21
+
22
+
23
+ Capybara.default_driver = :selenium_firefox
24
+
25
+ workingDBServerOpt||=
26
+ workingDBOpt||={}
27
+ workingEnvLinkOpt||={}
28
+
29
+ # change to :test or :dev or :local
30
+ $currentOpt=:local
31
+
32
+ #TODO change strings to import from yaml file
33
+ #TODO exclude yaml file from check-in
34
+ # the below server name will either be in the format of 'MYSERVERNAME' or 'MYSERVERNAME\DATABASEINSTANCE'
35
+ # depending on how your sql servr is set up
36
+ workingDBServerOpt={:dev => 'MYDEVDATABASESERVER',
37
+ :test => 'MYTESTDATABASESERVER',
38
+ :local => 'MYLOCALDATABASE'}
39
+ workingDBOpt={:dev => 'devdb',
40
+ :test => 'tstdb',
41
+ :local => 'devdb'}
42
+ # if you have a list of links after logging in with a single sign on account,
43
+ # you may also have a page of separate links for local/dev/test/prod etc
44
+ workingEnvLinkOpt = {:local => 'Welcome',
45
+ :dev => 'Welcome',
46
+ :test => 'Welcome'}
47
+
48
+ $workingDBServer = workingDBServerOpt[$currentOpt]
49
+ $workingDB = workingDBOpt[$currentOpt]
50
+ $workingAppUser='myapplicationusername'
51
+ $workingAppPW='myapplicationpw'
52
+ $workingDBUser='mydatabaseusername'
53
+ $workingDBPW='mydatabasepw'
54
+ # Change this to the domain of your web server. Don't add the full url
55
+ $workingAppHostLink='http://localhost'
56
+ # add the url of your login page
57
+ $workingAppLoginRoute='/welcome/logon.asp'
58
+ $workingEnvLink = workingEnvLinkOpt[$currentOpt]
59
+
@@ -1,66 +1,83 @@
1
- Before('@firefox') do
2
-
3
- Capybara.app_host = $workingAppHostLink
4
-
5
- Capybara.current_driver = :selenium_firefox
6
- visit $workingAppLoginRoute
7
-
8
- end
9
-
10
- After('@firefox') do
11
- Capybara.use_default_driver
12
- end
13
-
14
- Before('@ie') do
15
- Capybara.app_host = $workingAppHostLink
16
- Capybara.current_driver = :selenium_ie
17
- visit $workingAppLoginRoute
18
- end
19
-
20
- After('@ie') do
21
- Capybara.use_default_driver
22
- end
23
-
24
- When /^I press "([^"]*)"$/ do |arg1|
25
- continue = find_by_id arg1
26
- continue.click
27
- end
28
-
29
- #example of making something ie specific
30
- Given /^I press "([^"]*)" in internet explorer$/ do |arg1|
31
- mybutton = find_button arg1
32
- mybutton.click
33
- end
34
-
35
- Then /^I select the link "([^"]*)"$/ do |arg1|
36
- click_link arg1
37
- end
38
-
39
-
40
- Then /^I should see "([^"]*)"$/ do |arg1|
41
- page.should have_content(arg1)
42
- end
43
-
44
- Then /^I should not see "([^"]*)"$/ do |arg1|
45
- page.should_not have_content(arg1)
46
- end
47
-
48
- Given /^I evaluate the script for "([^"]*)"$/ do |arg1|
49
- page.evaluate_script arg1
50
- end
51
-
52
- # popup example
53
- Then /^within the "([^"]*)" window, I should see "([^"]*)"$/ do |arg1, arg2|
54
- page.within_window(arg1){page.should have_content(arg2)}
55
- end
56
-
57
- Then /^within the "([^"]*)" window, I select "([^"]*)"$/ do |arg1, arg2|
58
- page.within_window(arg1) do
59
- myelem = page.find(:xpath, "//*[@value='#{arg2}']")
60
- myelem.click
61
- end
62
- end
63
-
64
- Then /^I should see "([^"]*)" in a field$/ do |arg1|
65
- page.should have_xpath("//*[@value='#{arg1}']")
1
+ Before('@firefox') do
2
+
3
+ Capybara.app_host = $workingAppHostLink
4
+
5
+ Capybara.current_driver = :selenium_firefox
6
+ visit $workingAppLoginRoute
7
+
8
+ end
9
+
10
+ After('@firefox') do
11
+ Capybara.use_default_driver
12
+ end
13
+
14
+ Before('@ie') do
15
+ Capybara.app_host = $workingAppHostLink
16
+ Capybara.current_driver = :selenium_ie if $isWindows
17
+ visit $workingAppLoginRoute
18
+ end
19
+
20
+ After('@ie') do
21
+ Capybara.use_default_driver
22
+ end
23
+
24
+ When /^I press "([^"]*)"$/ do |arg1|
25
+ continue = find_by_id arg1
26
+ continue.click
27
+ end
28
+
29
+ #example of making something ie specific
30
+ Given /^I press "([^"]*)" in internet explorer$/ do |arg1|
31
+ mybutton = find_button arg1
32
+ mybutton.click
33
+ end
34
+
35
+ Then /^I select the link "([^"]*)"$/ do |arg1|
36
+ click_link arg1
37
+ end
38
+
39
+
40
+ Then /^I should see "([^"]*)"$/ do |arg1|
41
+ page.should have_content(arg1)
42
+ end
43
+
44
+ Then /^I should not see "([^"]*)"$/ do |arg1|
45
+ page.should_not have_content(arg1)
46
+ end
47
+
48
+ Given /^I evaluate the script for "([^"]*)"$/ do |arg1|
49
+ page.evaluate_script arg1
50
+ end
51
+
52
+ # popup example
53
+ Then /^within the "([^"]*)" window, I should see "([^"]*)"$/ do |arg1, arg2|
54
+ page.within_window(arg1){page.should have_content(arg2)}
55
+ end
56
+
57
+ Then /^within the "([^"]*)" window, I select "([^"]*)"$/ do |arg1, arg2|
58
+ page.within_window(arg1) do
59
+ myelem = page.find(:xpath, "//*[@value='#{arg2}']")
60
+ myelem.click
61
+ end
62
+ end
63
+
64
+ Then /^I should see "([^"]*)" in a field$/ do |arg1|
65
+ page.should have_xpath("//*[@value='#{arg1}']")
66
+ end
67
+
68
+ Then /^I should see "([^"]*)" in a dropdown$/ do |arg1|
69
+ page.should have_xpath ("//option[text()='#{arg1}']")
70
+ end
71
+
72
+ Then /^I select "([^"]*)" from a dropdown$/ do |arg1|
73
+ # debugger
74
+ myselect = page.find(:xpath, "//select[option[text()='#{arg1}']]")
75
+ myoption = page.find(:xpath, "//option[text()='#{arg1}']")
76
+ # select(myoption, :from => myselect)
77
+ # select("#{arg1}")
78
+ myoption.select_option
79
+ end
80
+
81
+ Then /^I should not see "([^"]*)" in a dropdown$/ do |arg1|
82
+ page.should_not have_xpath ("//option[text()='#{arg1}']")
66
83
  end
@@ -1,23 +1,23 @@
1
- Feature: Landing Page
2
- In order to work in my app
3
- As my app's personnel
4
- I need to land on the home page
5
-
6
- @firefox
7
- Scenario: Land on the landing page page
8
- Given I am logged in
9
- Then I should see "My App's greeting"
10
- And I should see "Something Else that I want to check"
11
-
12
- @firefox @sql_insert_example
13
- Scenario: Landing page messages
14
- Given I am logged in
15
- And I have a message that says "Heyas" waiting for me
16
- Then I should see "Heyas"
17
-
18
- @ie @sql_insert_example
19
- Scenario: Delete Home page messages
20
- Given I have a message that says "Heyas" waiting for me
21
- And I am logged in
22
- And I press "Remove" in internet explorer
1
+ Feature: Landing Page
2
+ In order to work in my app
3
+ As my app's personnel
4
+ I need to land on the home page
5
+
6
+ @firefox
7
+ Scenario: Land on the landing page
8
+ Given I am logged in
9
+ Then I should see "My App's greeting"
10
+ And I should see "Something else that I want to check"
11
+
12
+ @firefox @sql_insert_example
13
+ Scenario: Landing page messages
14
+ Given I am logged in
15
+ And I have a message that says "Heyas" waiting for me
16
+ Then I should see "Heyas"
17
+
18
+ @ie @sql_insert_example
19
+ Scenario: Delete Home page messages
20
+ Given I have a message that says "Heyas" waiting for me
21
+ And I am logged in
22
+ And I press "Remove" in internet explorer
23
23
  Then I should not see "Heyas"
@@ -1,30 +1,30 @@
1
- After('@sql_insert_example') do |s|
2
- delete_message
3
- end
4
-
5
- # This is an example. If you need to do setup and teardown data in your database
6
- # obviously you'll have your own table replace 'messages' below
7
- def insert_message()
8
- insertsql||=[]
9
- insertsql[0]= <<-eos
10
- INSERT INTO [Messages]
11
- ([Message])
12
- VALUES
13
- ('Heyas')
14
- eos
15
-
16
- insertsql[1]= 'select @@IDENTITY'
17
-
18
- results, field_lists = SqlServer.helperqueries(insertsql)
19
-
20
- @insertID = results[1][0][0] #get *first* result from *second* query
21
- end
22
-
23
- def delete_message
24
- result = SqlServer.helperquery("delete from Messages where Messageid = #{@insertID}")
25
- end
26
-
27
- Given /^I have a message that says "([^"]*)" waiting for me$/ do |arg1|
28
- insert_message
29
- end
30
-
1
+ After('@sql_insert_example') do |s|
2
+ delete_message if $isWindows
3
+ end
4
+
5
+ # This is an example. If you need to do setup and teardown data in your database
6
+ # obviously you'll have your own table replace 'messages' below
7
+ def insert_message()
8
+ insertsql||=[]
9
+ insertsql[0]= <<-eos
10
+ INSERT INTO [Messages]
11
+ ([Message])
12
+ VALUES
13
+ ('Heyas')
14
+ eos
15
+
16
+ insertsql[1]= 'select @@IDENTITY'
17
+
18
+ results, field_lists = SqlServer.helperqueries(insertsql)
19
+
20
+ @insertID = results[1][0][0] #get *first* result from *second* query
21
+ end
22
+
23
+ def delete_message
24
+ result = SqlServer.helperquery("delete from Messages where Messageid = #{@insertID}")
25
+ end
26
+
27
+ Given /^I have a message that says "([^"]*)" waiting for me$/ do |arg1|
28
+ insert_message if $isWindows
29
+ end
30
+
@@ -1,13 +1,13 @@
1
- Feature: Login
2
- In order to log into my app
3
- As my app's personnel
4
- I want to put in my user name and password
5
-
6
- @firefox
7
- Scenario: Log in
8
- Given I enter my username
9
- And I enter my password
10
- When I press Continue
11
- Then I should see the environment link
12
- And I select the environment link
1
+ Feature: Login
2
+ In order to log into my app
3
+ As my app's personnel
4
+ I want to put in my user name and password
5
+
6
+ @firefox
7
+ Scenario: Log in
8
+ Given I enter my username
9
+ And I enter my password
10
+ When I press "Continue"
11
+ Then I should see the environment link
12
+ And I select the environment link
13
13