echo_base 0.1.3 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. data/.document +2 -2
  2. data/.rspec +1 -0
  3. data/Gemfile +15 -0
  4. data/{LICENSE → LICENSE.txt} +1 -1
  5. data/README.rdoc +32 -32
  6. data/Rakefile +51 -40
  7. data/bin/echo_base +7 -0
  8. data/echo_base.gemspec +150 -134
  9. data/lib/echo_base.rb +122 -0
  10. data/lib/{generators/echo_base/templates → templates}/Capfile +0 -0
  11. data/lib/{generators/echo_base/templates → templates}/Gemfile +8 -6
  12. data/lib/{generators/echo_base/templates → templates}/app/controllers/application_controller.rb +0 -0
  13. data/lib/{generators/echo_base/templates → templates}/app/controllers/sessions_controller.rb +0 -0
  14. data/lib/{generators/echo_base/templates → templates}/app/controllers/users_controller.rb +0 -0
  15. data/lib/{generators/echo_base/templates → templates}/app/models/authorization.rb +0 -0
  16. data/lib/{generators/echo_base/templates → templates}/app/models/user.rb +0 -0
  17. data/lib/{generators/echo_base/templates/application.html.erb → templates/app/views/layouts/application.html.erb.tt} +4 -3
  18. data/lib/{generators/echo_base/templates → templates}/app/views/shared/_js.html.erb +2 -3
  19. data/lib/{generators/echo_base/templates → templates}/app/views/users/_form.html.erb +0 -0
  20. data/lib/{generators/echo_base/templates → templates}/app/views/users/_sidebar.html.erb +0 -0
  21. data/lib/{generators/echo_base/templates → templates}/app/views/users/edit.html.erb +0 -0
  22. data/lib/{generators/echo_base/templates → templates}/app/views/users/index.html.erb +0 -0
  23. data/lib/{generators/echo_base/templates → templates}/app/views/users/new.html.erb +0 -0
  24. data/lib/{generators/echo_base/templates → templates}/app/views/users/show.html.erb +0 -0
  25. data/lib/{generators/echo_base/templates → templates}/config/deploy.rb +0 -0
  26. data/lib/{generators/echo_base/templates → templates}/config/initializers/hoptoad.rb +0 -1
  27. data/lib/{generators/echo_base/templates → templates}/config/initializers/omniauth.rb +0 -0
  28. data/lib/{generators/echo_base/templates/public/favicon.ico → templates/config/newrelic.yml.example} +0 -0
  29. data/lib/{generators/echo_base/templates → templates}/config/omniauth.yml +0 -0
  30. data/lib/templates/config/omniauth.yml.example +62 -0
  31. data/lib/{generators/echo_base/templates → templates}/db/migrate/20101008210657_create_authorizations.rb +0 -0
  32. data/lib/{generators/echo_base/templates → templates}/db/migrate/20101009192412_create_users.rb +0 -0
  33. data/lib/templates/gitignore +17 -0
  34. data/lib/{generators/echo_base/templates → templates}/public/404.html +0 -0
  35. data/lib/{generators/echo_base/templates → templates}/public/422.html +0 -0
  36. data/lib/{generators/echo_base/templates → templates}/public/500.html +0 -0
  37. data/lib/{generators/echo_base/templates/public/stylesheets/.gitkeep → templates/public/favicon.ico} +0 -0
  38. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/arrow.png +0 -0
  39. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/avatar.png +0 -0
  40. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/boxbar-background.png +0 -0
  41. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/breadcrumb.png +0 -0
  42. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/button-background-active.png +0 -0
  43. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/button-background.png +0 -0
  44. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/24/about +0 -0
  45. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/24/anchor-hover.png +0 -0
  46. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/24/anchor.png +0 -0
  47. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/24/cross-hover.png +0 -0
  48. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/24/cross.png +0 -0
  49. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/24/download-hover.png +0 -0
  50. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/24/download.png +0 -0
  51. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/24/edit-hover.png +0 -0
  52. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/24/edit.png +0 -0
  53. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/24/export-hover.png +0 -0
  54. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/24/export.png +0 -0
  55. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/24/show-hover.png +0 -0
  56. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/24/show.png +0 -0
  57. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/add.png +0 -0
  58. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/application_edit.png +0 -0
  59. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/calendar-hover.png +0 -0
  60. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/calendar.png +0 -0
  61. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/cross.png +0 -0
  62. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/delete.png +0 -0
  63. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/download.png +0 -0
  64. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/edit.png +0 -0
  65. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/key.png +0 -0
  66. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/pdf.png +0 -0
  67. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/search.png +0 -0
  68. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/see-less.png +0 -0
  69. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/see-more.png +0 -0
  70. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/send-mail.png +0 -0
  71. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/show.png +0 -0
  72. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/source +0 -0
  73. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/tick.png +0 -0
  74. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/icons/upload.png +0 -0
  75. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/logo.png +0 -0
  76. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/menubar-background.png +0 -0
  77. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/search-button.png +0 -0
  78. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/session/account.png +0 -0
  79. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/session/config.png +0 -0
  80. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/session/home.png +0 -0
  81. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/session/logout.png +0 -0
  82. data/lib/{generators/echo_base/templates → templates}/public/images/web-app-theme/tipsy.gif +0 -0
  83. data/lib/{generators/echo_base/templates → templates}/public/javascripts/application.js +0 -0
  84. data/lib/{generators/echo_base/templates → templates}/public/javascripts/dd_belatedpng.js +0 -0
  85. data/lib/{generators/echo_base/templates → templates}/public/javascripts/jquery-1.4.2.min.js +0 -0
  86. data/lib/{generators/echo_base/templates → templates}/public/javascripts/modernizr-1.5.min.js +0 -0
  87. data/lib/{generators/echo_base/templates → templates}/public/javascripts/rails.js +0 -0
  88. data/lib/{generators/echo_base/templates → templates}/public/robots.txt +0 -0
  89. data/lib/templates/public/stylesheets/.gitkeep +0 -0
  90. data/lib/{generators/echo_base/templates → templates}/public/stylesheets/handheld.css +0 -0
  91. data/lib/{generators/echo_base/templates → templates}/public/stylesheets/style.css +0 -0
  92. data/lib/{generators/echo_base/templates → templates}/public/stylesheets/web-app-theme/base.css +0 -0
  93. data/lib/{generators/echo_base/templates → templates}/public/stylesheets/web-app-theme/override.css +0 -0
  94. data/lib/{generators/echo_base/templates → templates}/public/stylesheets/web-app-theme/themes/default/images/arrow.png +0 -0
  95. data/lib/{generators/echo_base/templates → templates}/public/stylesheets/web-app-theme/themes/default/images/boxbar-background.png +0 -0
  96. data/lib/{generators/echo_base/templates → templates}/public/stylesheets/web-app-theme/themes/default/images/button-background-active.png +0 -0
  97. data/lib/{generators/echo_base/templates → templates}/public/stylesheets/web-app-theme/themes/default/images/button-background.png +0 -0
  98. data/lib/{generators/echo_base/templates → templates}/public/stylesheets/web-app-theme/themes/default/images/menubar-background.png +0 -0
  99. data/lib/{generators/echo_base/templates → templates}/public/stylesheets/web-app-theme/themes/default/style.css +0 -0
  100. data/spec/echo_base_spec.rb +77 -0
  101. data/spec/spec_helper.rb +12 -0
  102. metadata +314 -138
  103. data/.gitignore +0 -21
  104. data/VERSION +0 -1
  105. data/lib/generators/echo_base/USAGE +0 -5
  106. data/lib/generators/echo_base/echo_base_generator.rb +0 -51
  107. data/lib/generators/echo_base/templates/.infinity_test +0 -25
  108. data/lib/generators/echo_base/templates/.rspec +0 -1
  109. data/lib/generators/echo_base/templates/.rvmrc +0 -1
  110. data/lib/generators/echo_base/templates/app/helpers/application_helper.rb +0 -2
  111. data/lib/generators/echo_base/templates/app/helpers/sessions_helper.rb +0 -2
  112. data/lib/generators/echo_base/templates/app/helpers/users_helper.rb +0 -2
  113. data/lib/generators/echo_base/templates/autotest/discover.rb +0 -2
  114. data/lib/generators/echo_base/templates/config/cucumber.yml +0 -8
  115. data/lib/generators/echo_base/templates/config/newrelic.yml +0 -1
  116. data/lib/generators/echo_base/templates/features/manage_authentications.feature +0 -45
  117. data/lib/generators/echo_base/templates/features/manage_users.feature +0 -45
  118. data/lib/generators/echo_base/templates/features/step_definitions/authentication_steps.rb +0 -14
  119. data/lib/generators/echo_base/templates/features/step_definitions/users_steps.rb +0 -14
  120. data/lib/generators/echo_base/templates/features/step_definitions/web_steps.rb +0 -219
  121. data/lib/generators/echo_base/templates/features/support/env.rb +0 -57
  122. data/lib/generators/echo_base/templates/features/support/paths.rb +0 -39
  123. data/lib/generators/echo_base/templates/spec/controllers/sessions_controller_spec.rb +0 -5
  124. data/lib/generators/echo_base/templates/spec/controllers/users_controller_spec.rb +0 -125
  125. data/lib/generators/echo_base/templates/spec/helpers/users_helper_spec.rb +0 -15
  126. data/lib/generators/echo_base/templates/spec/models/authorization_spec.rb +0 -5
  127. data/lib/generators/echo_base/templates/spec/models/user_spec.rb +0 -5
  128. data/lib/generators/echo_base/templates/spec/routing/users_routing_spec.rb +0 -35
  129. data/lib/generators/echo_base/templates/spec/spec_helper.rb +0 -16
  130. data/lib/generators/echo_base/templates/spec/views/users/edit.html.erb_spec.rb +0 -27
  131. data/lib/generators/echo_base/templates/spec/views/users/index.html.erb_spec.rb +0 -36
  132. data/lib/generators/echo_base/templates/spec/views/users/new.html.erb_spec.rb +0 -27
  133. data/lib/generators/echo_base/templates/spec/views/users/show.html.erb_spec.rb +0 -27
  134. data/test/helper.rb +0 -10
  135. data/test/test_echo_base.rb +0 -7
data/.gitignore DELETED
@@ -1,21 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.1.3
@@ -1,5 +0,0 @@
1
- Description:
2
- Echo Base will give you a base app for rapid prototyping - it presumes (for now) that you like rspec, jquery, cucumber, and omniauth. For more info checkout http://github.com/seenmyfate/echo_base
3
-
4
- Example:
5
- rails generate echo_base "My Awesome App"
@@ -1,51 +0,0 @@
1
- class EchoBaseGenerator < Rails::Generators::NamedBase
2
- source_root File.expand_path('../templates', __FILE__)
3
- argument :app_name, :type => :string, :default => "Echo Base"
4
- def config
5
- directory "config"
6
- end
7
-
8
- def routes
9
- route("resources :users")
10
- route("match '/auth/:provider/callback', :to => 'sessions#create'")
11
- route("root :to => 'users#index'")
12
- end
13
-
14
- def migrations
15
- directory "db"
16
- end
17
-
18
- def gems
19
- copy_file "Gemfile"
20
- end
21
-
22
- def capistrano
23
- copy_file "Capfile"
24
- end
25
-
26
- def public_folder
27
- directory "public"
28
- remove_file "public/index.html"
29
- remove_file "public/images/rails.png"
30
- end
31
-
32
- def rspec
33
- directory "spec"
34
- directory "autotest"
35
- copy_file ".infinity_test"
36
- copy_file ".rspec"
37
- end
38
-
39
- def cucumber
40
- directory "features"
41
- end
42
-
43
- def rvmrc
44
- copy_file ".rvmrc"
45
- end
46
-
47
- def users
48
- directory "app"
49
- template "application.html.erb", "app/views/layouts/application.html.erb"
50
- end
51
- end
@@ -1,25 +0,0 @@
1
- infinity_test do
2
-
3
- notifications :growl do
4
- show_images :mode => :rails
5
- end
6
-
7
- use :rubies => %w(1.8.7 1.9.2 ree), :gemset => 'echo_base', :test_framework => :rspec
8
-
9
- before(:each_ruby) do |environment|
10
- #...
11
- end
12
-
13
- after(:each_ruby) do |environment|
14
- #...
15
- end
16
-
17
- before_run do
18
- clear :terminal
19
- end
20
-
21
- after_run do
22
- #... some code
23
- end
24
-
25
- end
@@ -1 +0,0 @@
1
- --colour
@@ -1 +0,0 @@
1
- rvm use 1.9.2@echo_base
@@ -1,2 +0,0 @@
1
- module ApplicationHelper
2
- end
@@ -1,2 +0,0 @@
1
- module SessionsHelper
2
- end
@@ -1,2 +0,0 @@
1
- module UsersHelper
2
- end
@@ -1,2 +0,0 @@
1
- Autotest.add_discovery { "rails" }
2
- Autotest.add_discovery { "rspec2" }
@@ -1,8 +0,0 @@
1
- <%
2
- rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
3
- rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
4
- std_opts = "--format pretty --strict --tags ~@wip"
5
- %>
6
- default: <%= std_opts %> features
7
- wip: --tags @wip:3 --wip features
8
- rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip
@@ -1,45 +0,0 @@
1
- Feature: Manage authentications
2
- In order to [goal]
3
- [stakeholder]
4
- wants [behaviour]
5
-
6
- Scenario: Register new authentication
7
- Given I am on the new authentication page
8
- And I press "Create"
9
-
10
- # Rails generates Delete links that use Javascript to pop up a confirmation
11
- # dialog and then do a HTTP POST request (emulated DELETE request).
12
- #
13
- # Capybara must use Culerity/Celerity or Selenium2 (webdriver) when pages rely
14
- # on Javascript events. Only Culerity/Celerity supports clicking on confirmation
15
- # dialogs.
16
- #
17
- # Since Culerity/Celerity and Selenium2 has some overhead, Cucumber-Rails will
18
- # detect the presence of Javascript behind Delete links and issue a DELETE request
19
- # instead of a GET request.
20
- #
21
- # You can turn this emulation off by tagging your scenario with @no-js-emulation.
22
- # Turning on browser testing with @selenium, @culerity, @celerity or @javascript
23
- # will also turn off the emulation. (See the Capybara documentation for
24
- # details about those tags). If any of the browser tags are present, Cucumber-Rails
25
- # will also turn off transactions and clean the database with DatabaseCleaner
26
- # after the scenario has finished. This is to prevent data from leaking into
27
- # the next scenario.
28
- #
29
- # Another way to avoid Cucumber-Rails' javascript emulation without using any
30
- # of the tags above is to modify your views to use <button> instead. You can
31
- # see how in http://github.com/jnicklas/capybara/issues#issue/12
32
- #
33
- Scenario: Delete authentication
34
- Given the following authentications:
35
- ||
36
- ||
37
- ||
38
- ||
39
- ||
40
- When I delete the 3rd authentication
41
- Then I should see the following authentications:
42
- ||
43
- ||
44
- ||
45
- ||
@@ -1,45 +0,0 @@
1
- Feature: Manage users
2
- In order to [goal]
3
- [stakeholder]
4
- wants [behaviour]
5
-
6
- Scenario: Register new users
7
- Given I am on the new user page
8
- And I press "Create"
9
-
10
- # Rails generates Delete links that use Javascript to pop up a confirmation
11
- # dialog and then do a HTTP POST request (emulated DELETE request).
12
- #
13
- # Capybara must use Culerity/Celerity or Selenium2 (webdriver) when pages rely
14
- # on Javascript events. Only Culerity/Celerity supports clicking on confirmation
15
- # dialogs.
16
- #
17
- # Since Culerity/Celerity and Selenium2 has some overhead, Cucumber-Rails will
18
- # detect the presence of Javascript behind Delete links and issue a DELETE request
19
- # instead of a GET request.
20
- #
21
- # You can turn this emulation off by tagging your scenario with @no-js-emulation.
22
- # Turning on browser testing with @selenium, @culerity, @celerity or @javascript
23
- # will also turn off the emulation. (See the Capybara documentation for
24
- # details about those tags). If any of the browser tags are present, Cucumber-Rails
25
- # will also turn off transactions and clean the database with DatabaseCleaner
26
- # after the scenario has finished. This is to prevent data from leaking into
27
- # the next scenario.
28
- #
29
- # Another way to avoid Cucumber-Rails' javascript emulation without using any
30
- # of the tags above is to modify your views to use <button> instead. You can
31
- # see how in http://github.com/jnicklas/capybara/issues#issue/12
32
- #
33
- Scenario: Delete users
34
- Given the following users:
35
- ||
36
- ||
37
- ||
38
- ||
39
- ||
40
- When I delete the 3rd users
41
- Then I should see the following users:
42
- ||
43
- ||
44
- ||
45
- ||
@@ -1,14 +0,0 @@
1
- Given /^the following authentications:$/ do |authentications|
2
- Authentication.create!(authentications.hashes)
3
- end
4
-
5
- When /^I delete the (\d+)(?:st|nd|rd|th) authentication$/ do |pos|
6
- visit authentications_path
7
- within("table tr:nth-child(#{pos.to_i+1})") do
8
- click_link "Destroy"
9
- end
10
- end
11
-
12
- Then /^I should see the following authentications:$/ do |expected_authentications_table|
13
- expected_authentications_table.diff!(tableish('table tr', 'td,th'))
14
- end
@@ -1,14 +0,0 @@
1
- Given /^the following users:$/ do |users|
2
- Users.create!(users.hashes)
3
- end
4
-
5
- When /^I delete the (\d+)(?:st|nd|rd|th) users$/ do |pos|
6
- visit users_path
7
- within("table tr:nth-child(#{pos.to_i+1})") do
8
- click_link "Destroy"
9
- end
10
- end
11
-
12
- Then /^I should see the following users:$/ do |expected_users_table|
13
- expected_users_table.diff!(tableish('table tr', 'td,th'))
14
- end
@@ -1,219 +0,0 @@
1
- # IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
2
- # It is recommended to regenerate this file in the future when you upgrade to a
3
- # newer version of cucumber-rails. Consider adding your own code to a new file
4
- # instead of editing this one. Cucumber will automatically load all features/**/*.rb
5
- # files.
6
-
7
-
8
- require 'uri'
9
- require 'cgi'
10
- require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
11
-
12
- module WithinHelpers
13
- def with_scope(locator)
14
- locator ? within(locator) { yield } : yield
15
- end
16
- end
17
- World(WithinHelpers)
18
-
19
- Given /^(?:|I )am on (.+)$/ do |page_name|
20
- visit path_to(page_name)
21
- end
22
-
23
- When /^(?:|I )go to (.+)$/ do |page_name|
24
- visit path_to(page_name)
25
- end
26
-
27
- When /^(?:|I )press "([^"]*)"(?: within "([^"]*)")?$/ do |button, selector|
28
- with_scope(selector) do
29
- click_button(button)
30
- end
31
- end
32
-
33
- When /^(?:|I )follow "([^"]*)"(?: within "([^"]*)")?$/ do |link, selector|
34
- with_scope(selector) do
35
- click_link(link)
36
- end
37
- end
38
-
39
- When /^(?:|I )fill in "([^"]*)" with "([^"]*)"(?: within "([^"]*)")?$/ do |field, value, selector|
40
- with_scope(selector) do
41
- fill_in(field, :with => value)
42
- end
43
- end
44
-
45
- When /^(?:|I )fill in "([^"]*)" for "([^"]*)"(?: within "([^"]*)")?$/ do |value, field, selector|
46
- with_scope(selector) do
47
- fill_in(field, :with => value)
48
- end
49
- end
50
-
51
- # Use this to fill in an entire form with data from a table. Example:
52
- #
53
- # When I fill in the following:
54
- # | Account Number | 5002 |
55
- # | Expiry date | 2009-11-01 |
56
- # | Note | Nice guy |
57
- # | Wants Email? | |
58
- #
59
- # TODO: Add support for checkbox, select og option
60
- # based on naming conventions.
61
- #
62
- When /^(?:|I )fill in the following(?: within "([^"]*)")?:$/ do |selector, fields|
63
- with_scope(selector) do
64
- fields.rows_hash.each do |name, value|
65
- When %{I fill in "#{name}" with "#{value}"}
66
- end
67
- end
68
- end
69
-
70
- When /^(?:|I )select "([^"]*)" from "([^"]*)"(?: within "([^"]*)")?$/ do |value, field, selector|
71
- with_scope(selector) do
72
- select(value, :from => field)
73
- end
74
- end
75
-
76
- When /^(?:|I )check "([^"]*)"(?: within "([^"]*)")?$/ do |field, selector|
77
- with_scope(selector) do
78
- check(field)
79
- end
80
- end
81
-
82
- When /^(?:|I )uncheck "([^"]*)"(?: within "([^"]*)")?$/ do |field, selector|
83
- with_scope(selector) do
84
- uncheck(field)
85
- end
86
- end
87
-
88
- When /^(?:|I )choose "([^"]*)"(?: within "([^"]*)")?$/ do |field, selector|
89
- with_scope(selector) do
90
- choose(field)
91
- end
92
- end
93
-
94
- When /^(?:|I )attach the file "([^"]*)" to "([^"]*)"(?: within "([^"]*)")?$/ do |path, field, selector|
95
- with_scope(selector) do
96
- attach_file(field, path)
97
- end
98
- end
99
-
100
- Then /^(?:|I )should see JSON:$/ do |expected_json|
101
- require 'json'
102
- expected = JSON.pretty_generate(JSON.parse(expected_json))
103
- actual = JSON.pretty_generate(JSON.parse(response.body))
104
- expected.should == actual
105
- end
106
-
107
- Then /^(?:|I )should see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selector|
108
- with_scope(selector) do
109
- if page.respond_to? :should
110
- page.should have_content(text)
111
- else
112
- assert page.has_content?(text)
113
- end
114
- end
115
- end
116
-
117
- Then /^(?:|I )should see \/([^\/]*)\/(?: within "([^"]*)")?$/ do |regexp, selector|
118
- regexp = Regexp.new(regexp)
119
- with_scope(selector) do
120
- if page.respond_to? :should
121
- page.should have_xpath('//*', :text => regexp)
122
- else
123
- assert page.has_xpath?('//*', :text => regexp)
124
- end
125
- end
126
- end
127
-
128
- Then /^(?:|I )should not see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selector|
129
- with_scope(selector) do
130
- if page.respond_to? :should
131
- page.should have_no_content(text)
132
- else
133
- assert page.has_no_content?(text)
134
- end
135
- end
136
- end
137
-
138
- Then /^(?:|I )should not see \/([^\/]*)\/(?: within "([^"]*)")?$/ do |regexp, selector|
139
- regexp = Regexp.new(regexp)
140
- with_scope(selector) do
141
- if page.respond_to? :should
142
- page.should have_no_xpath('//*', :text => regexp)
143
- else
144
- assert page.has_no_xpath?('//*', :text => regexp)
145
- end
146
- end
147
- end
148
-
149
- Then /^the "([^"]*)" field(?: within "([^"]*)")? should contain "([^"]*)"$/ do |field, selector, value|
150
- with_scope(selector) do
151
- field = find_field(field)
152
- field_value = (field.tag_name == 'textarea') ? field.text : field.value
153
- if field_value.respond_to? :should
154
- field_value.should =~ /#{value}/
155
- else
156
- assert_match(/#{value}/, field_value)
157
- end
158
- end
159
- end
160
-
161
- Then /^the "([^"]*)" field(?: within "([^"]*)")? should not contain "([^"]*)"$/ do |field, selector, value|
162
- with_scope(selector) do
163
- field = find_field(field)
164
- field_value = (field.tag_name == 'textarea') ? field.text : field.value
165
- if field_value.respond_to? :should_not
166
- field_value.should_not =~ /#{value}/
167
- else
168
- assert_no_match(/#{value}/, field_value)
169
- end
170
- end
171
- end
172
-
173
- Then /^the "([^"]*)" checkbox(?: within "([^"]*)")? should be checked$/ do |label, selector|
174
- with_scope(selector) do
175
- field_checked = find_field(label)['checked']
176
- if field_checked.respond_to? :should
177
- field_checked.should be_true
178
- else
179
- assert field_checked
180
- end
181
- end
182
- end
183
-
184
- Then /^the "([^"]*)" checkbox(?: within "([^"]*)")? should not be checked$/ do |label, selector|
185
- with_scope(selector) do
186
- field_checked = find_field(label)['checked']
187
- if field_checked.respond_to? :should
188
- field_checked.should be_false
189
- else
190
- assert !field_checked
191
- end
192
- end
193
- end
194
-
195
- Then /^(?:|I )should be on (.+)$/ do |page_name|
196
- current_path = URI.parse(current_url).path
197
- if current_path.respond_to? :should
198
- current_path.should == path_to(page_name)
199
- else
200
- assert_equal path_to(page_name), current_path
201
- end
202
- end
203
-
204
- Then /^(?:|I )should have the following query string:$/ do |expected_pairs|
205
- query = URI.parse(current_url).query
206
- actual_params = query ? CGI.parse(query) : {}
207
- expected_params = {}
208
- expected_pairs.rows_hash.each_pair{|k,v| expected_params[k] = v.split(',')}
209
-
210
- if actual_params.respond_to? :should
211
- actual_params.should == expected_params
212
- else
213
- assert_equal expected_params, actual_params
214
- end
215
- end
216
-
217
- Then /^show me the page$/ do
218
- save_and_open_page
219
- end