refinerycms 0.9.7.8 → 0.9.7.9

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.
Files changed (101) hide show
  1. data/.gitignore +4 -1
  2. data/Gemfile +1 -1
  3. data/bin/refinery-upgrade-096-to-097 +30 -13
  4. data/bin/refinerycms +32 -20
  5. data/changelog.md +14 -0
  6. data/db/migrate/20100729221735_remove_page_translations_if_present.rb +12 -0
  7. data/db/schema.rb +13 -15
  8. data/features/refinery/create_inquiries.feature +40 -0
  9. data/features/refinery/dashboard.feature +35 -1
  10. data/features/refinery/manage_files.feature +42 -1
  11. data/features/refinery/manage_images.feature +58 -1
  12. data/features/refinery/manage_inquiries.feature +55 -3
  13. data/features/refinery/manage_pages.feature +1 -1
  14. data/features/refinery/manage_refinery_settings.feature +1 -0
  15. data/features/refinery/manage_users.feature +1 -1
  16. data/features/refinery/plugin_generator.feature +27 -0
  17. data/features/refinery/site_bar.feature +4 -3
  18. data/features/refinery/theme_generator.feature +16 -0
  19. data/features/step_definitions/refinery/core_steps.rb +4 -0
  20. data/features/step_definitions/refinery/file_steps.rb +22 -0
  21. data/features/step_definitions/refinery/generator_steps.rb +11 -0
  22. data/features/step_definitions/refinery/image_steps.rb +43 -0
  23. data/features/step_definitions/refinery/inquiry_steps.rb +13 -0
  24. data/features/step_definitions/refinery/page_steps.rb +4 -6
  25. data/features/step_definitions/refinery/plugin_generator_steps.rb +16 -0
  26. data/features/step_definitions/refinery/theme_generator_steps.rb +15 -0
  27. data/features/step_definitions/refinery/user_steps.rb +1 -1
  28. data/features/step_definitions/web_steps.rb +18 -18
  29. data/features/support/env.rb +6 -7
  30. data/features/support/paths.rb +25 -1
  31. data/features/uploads/beach.INVALID +0 -0
  32. data/features/uploads/beach.jpeg +0 -0
  33. data/features/uploads/id-rather-be-here.jpg +0 -0
  34. data/features/uploads/refinery_is_awesome.txt +1 -0
  35. data/public/javascripts/refinery/admin.js +4 -4
  36. data/public/stylesheets/refinery/refinery.css +4 -1
  37. data/readme.md +1 -1
  38. data/todo.md +20 -8
  39. data/vendor/plugins/authentication/app/models/user.rb +1 -1
  40. data/vendor/plugins/dashboard/app/views/admin/dashboard/index.rss.builder +26 -0
  41. data/vendor/plugins/inquiries/app/views/admin/inquiries/_inquiry.html.erb +2 -1
  42. data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/_confirmation_email_form.html.erb +9 -5
  43. data/vendor/plugins/inquiries/config/locales/en.yml +2 -2
  44. data/vendor/plugins/inquiries/config/routes.rb +14 -4
  45. data/vendor/plugins/pages/app/controllers/pages_controller.rb +3 -1
  46. data/vendor/plugins/refinery/app/views/shared/_google_analytics.html.erb +2 -2
  47. data/vendor/plugins/refinery/app/views/shared/_menu.html.erb +18 -13
  48. data/vendor/plugins/refinery/app/views/shared/admin/_form_actions.html.erb +3 -0
  49. data/vendor/plugins/refinery/app/views/shared/admin/_search.html.erb +1 -3
  50. data/vendor/plugins/refinery/config/locales/en.yml +1 -1
  51. data/vendor/plugins/refinery/lib/crud.rb +4 -1
  52. data/vendor/plugins/refinery/lib/generators/refinery/refinery_generator.rb +4 -61
  53. data/vendor/plugins/refinery/lib/generators/refinery_plugin/README +36 -0
  54. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/Rakefile +2 -3
  55. data/vendor/plugins/refinery/lib/generators/refinery_plugin/USAGE +2 -0
  56. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/install.rb +0 -0
  57. data/vendor/plugins/refinery/lib/generators/refinery_plugin/refinery_plugin_generator.rb +76 -0
  58. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/templates/MIGRATE +0 -0
  59. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/templates/config/locales/en.yml +4 -1
  60. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/templates/config/locales/nb.yml +4 -1
  61. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/templates/config/locales/nl.yml +4 -1
  62. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/templates/config/routes.rb +0 -0
  63. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/templates/controller.rb +0 -0
  64. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/templates/migration.rb +0 -0
  65. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/templates/model.rb +0 -0
  66. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/templates/public_controller.rb +0 -0
  67. data/vendor/plugins/refinery/lib/generators/refinery_plugin/templates/rails/init.rb +9 -0
  68. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/templates/seed.rb +0 -0
  69. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/templates/views/admin/_form.html.erb +0 -0
  70. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/templates/views/admin/_singular_name.html.erb +0 -0
  71. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/templates/views/admin/_sortable_list.html.erb +0 -0
  72. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/templates/views/admin/edit.html.erb +0 -0
  73. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/templates/views/admin/index.html.erb +0 -0
  74. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/templates/views/admin/new.html.erb +0 -0
  75. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/templates/views/index.html.erb +0 -0
  76. data/vendor/plugins/refinery/lib/generators/{refinery → refinery_plugin}/templates/views/show.html.erb +0 -0
  77. data/vendor/plugins/refinery/lib/refinery.rb +1 -1
  78. data/vendor/plugins/refinery/lib/refinery/activity.rb +3 -3
  79. data/vendor/plugins/refinery/lib/refinery/application_controller.rb +1 -1
  80. data/vendor/plugins/refinery/lib/tasks/refinery.rake +109 -32
  81. data/vendor/plugins/refinery/plugins.md +3 -3
  82. data/vendor/plugins/refinery_settings/app/models/refinery_setting.rb +26 -10
  83. data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/_form.html.erb +1 -2
  84. data/vendor/plugins/themes/generators/refinery_theme/README +17 -0
  85. data/vendor/plugins/themes/generators/refinery_theme/Rakefile +11 -0
  86. data/vendor/plugins/themes/generators/refinery_theme/USAGE +2 -0
  87. data/vendor/plugins/themes/generators/refinery_theme/install.rb +2 -0
  88. data/vendor/plugins/themes/generators/refinery_theme/refinery_theme_generator.rb +41 -0
  89. data/vendor/plugins/themes/generators/refinery_theme/templates/stylesheets/application.css +5 -0
  90. data/vendor/plugins/themes/generators/refinery_theme/templates/stylesheets/formatting.css +7 -0
  91. data/vendor/plugins/themes/generators/refinery_theme/templates/stylesheets/home.css +5 -0
  92. data/vendor/plugins/themes/generators/refinery_theme/templates/views/layouts/application.html.erb +21 -0
  93. data/vendor/plugins/themes/generators/refinery_theme/templates/views/pages/home.html.erb +4 -0
  94. data/vendor/plugins/themes/generators/refinery_theme/templates/views/pages/show.html.erb +4 -0
  95. data/vendor/plugins/themes/rails/init.rb +0 -1
  96. data/vendor/plugins/themes/readme.md +7 -2
  97. metadata +54 -28
  98. data/db/migrate/20100606173919_create_page_translations.rb +0 -12
  99. data/vendor/plugins/refinery/lib/generators/refinery/README +0 -30
  100. data/vendor/plugins/refinery/lib/generators/refinery/USAGE +0 -2
  101. data/vendor/plugins/refinery/lib/generators/refinery/templates/rails/init.rb +0 -13
@@ -1,4 +1,61 @@
1
+ @images @images-manage
1
2
  Feature: Manage Images
2
3
  In order to control the content on my website
3
4
  As an administrator
4
- I want to create and manage images
5
+ I want to create and manage images
6
+
7
+ Background:
8
+ Given I am a logged in refinery user
9
+
10
+ Scenario: Create Valid Image
11
+ Given I have no images
12
+ When I go to the list of images
13
+ And I follow "Create New Image"
14
+ When I attach the image at "features/uploads/beach.jpeg"
15
+ And I press "Save"
16
+ Then the image "beach.jpeg" should have uploaded successfully
17
+ And I should have the correct default number of images
18
+ And the image should have size "254718"
19
+ And the image should have width "500"
20
+ And the image should have height "375"
21
+ And the image should have content_type "image/jpeg"
22
+ #This line handles properly if you have any plugins installed. Ie: Portfolio will generate two additional thumbs.
23
+ And the image should have all default thumbnail generations
24
+
25
+ Scenario: Create Invalid Image (format)
26
+ Given I have no images
27
+ When I go to the list of images
28
+ And I follow "Create New Image"
29
+ When I attach the image at "features/uploads/beach.INVALID"
30
+ And I press "Save"
31
+ Then I should see "Your image must be either a JPG, PNG or GIF"
32
+ And I should have 0 images
33
+
34
+
35
+ Scenario: Edit Existing Image
36
+ Given I have no images
37
+ When I go to the list of images
38
+ And I follow "Create New Image"
39
+ When I attach the image at "features/uploads/beach.jpeg"
40
+ And I press "Save"
41
+ Then the image "beach.jpeg" should have uploaded successfully
42
+ Then I go to the list of images
43
+ And I follow "Edit this image"
44
+ And I attach the image at "features/uploads/id-rather-be-here.jpg"
45
+ And I press "Save"
46
+ #Note: The following line is a workaround for the flash. It isn't working, so this catches the created image's name='' attribute.
47
+ Then I should see "Id Rather Be Here"
48
+ And I should have the correct default number of images
49
+
50
+ Scenario: Delete Image
51
+ Given I have no images
52
+ When I go to the list of images
53
+ And I follow "Create New Image"
54
+ When I attach the image at "features/uploads/beach.jpeg"
55
+ And I press "Save"
56
+ Then the image "beach.jpeg" should have uploaded successfully
57
+ Then I go to the list of images
58
+ #Delete functionality doesn't test properly, yet.
59
+ #And I follow "Remove this image forever"
60
+ #And I press "Ok"
61
+ #Then I should have 0 images
@@ -1,4 +1,56 @@
1
+ @inquiries @inquiries-manage
1
2
  Feature: Manage Inquiries
2
- In order to control the content on my website
3
- As an administrator
4
- I want to create and manage inquiries
3
+ In order to see inquiries left for me on my website
4
+ As an Administrator
5
+ I want to manage inquiries
6
+
7
+ Background:
8
+ Given I am a logged in refinery user
9
+ And I have an inquiry from "David Jones" with email "dave@refinerycms.com" and message "Hello, I really like your website. Was it hard to build and maintain or could anyone do it?"
10
+
11
+ Scenario: Inquiries List
12
+ When I go to the list of inquiries
13
+ Then I should see "David Jones said Hello, I really like your website. Was it hard to build ..."
14
+ And I should have 1 inquiries
15
+ And I should not see "Create"
16
+
17
+ Scenario: Spam List
18
+ When I go to the list of inquiries
19
+ And I follow "Spam"
20
+ Then I should see "Hooray! You don't have any spam."
21
+
22
+ Scenario: Updating who gets notified
23
+ When I go to the list of inquiries
24
+ And I follow "Update who gets notified"
25
+ And I fill in "Send notifications to" with "phil@refinerycms.com"
26
+ And I press "Save"
27
+ Then I should be redirected back to "the list of inquiries"
28
+ And I should see "'Notification Recipients' was successfully updated."
29
+ And I should be on the list of inquiries
30
+
31
+ Scenario: Updating confirmation email copy
32
+ When I go to the list of inquiries
33
+ And I follow "Edit confirmation email"
34
+ And I fill in "Message" with "Thanks %name%! We'll never get back to you!"
35
+ And I press "Save"
36
+ Then I should be redirected back to "the list of inquiries"
37
+ And I should see "'Confirmation Body' was successfully updated."
38
+ And I should be on the list of inquiries
39
+
40
+ Scenario: Inquiries Show
41
+ When I go to the list of inquiries
42
+ And I follow "Read the inquiry"
43
+ Then I should see "From David Jones [dave@refinerycms.com]"
44
+ And I should see "Hello, I really like your website. Was it hard to build and maintain or could anyone do it?"
45
+ And I should see "Age"
46
+ And I should see "Back to all Inquiries"
47
+ And I should see "Remove this inquiry forever"
48
+
49
+ # not worth it unless someone can confirm javascript confirmations??
50
+ #Scenario: Inquiries Delete
51
+ # When I go to the list of inquiries
52
+ # And I follow "Read the inquiry"
53
+ # And I follow "Remove this inquiry forever"
54
+ # And I press "OK"
55
+ # Then I should see "'David Jones' was successfully destroyed."
56
+ # And I should have 0 inquiries
@@ -4,7 +4,7 @@ Feature: Manage Pages
4
4
  I want to create and manage pages
5
5
 
6
6
  Background:
7
- Given I am a logged in user
7
+ Given I am a logged in refinery user
8
8
 
9
9
  Scenario: Pages List
10
10
  Given I have pages titled Home, About
@@ -1,3 +1,4 @@
1
+ @settings @settings-manage
1
2
  Feature: Manage Refinery Settings
2
3
  In order to control the configuration of my website
3
4
  As an administrator
@@ -24,6 +24,6 @@ Feature: Manage Users
24
24
 
25
25
  Scenario: User List
26
26
  Given I have a user named "resolve"
27
- And I am a logged in user
27
+ And I am a logged in refinery user
28
28
  When I go to the list of users
29
29
  Then I should see "resolve"
@@ -0,0 +1,27 @@
1
+ Feature: Plugin generation
2
+ In order to create my own plugin
3
+ As a refinery user
4
+ I want to generate a basic plugin directory structure
5
+
6
+ Scenario: Generating a plugin with a name
7
+ Given I have a refinery application
8
+ When I generate a plugin with the arguments of "product title:string description:text image:image brochure:resource"
9
+ Then I should have a directory "vendor/plugins/products"
10
+ And I should have a directory "vendor/plugins/products/app"
11
+ And I should have a directory "vendor/plugins/products/config"
12
+ And I should have a directory "vendor/plugins/products/rails"
13
+ And I should have a directory "vendor/plugins/products/rails"
14
+ And I should have a file "vendor/plugins/products/rails/init.rb"
15
+ And I should have a file "vendor/plugins/products/app/controllers/admin/products_controller.rb"
16
+ And I should have a file "vendor/plugins/products/app/controllers/products_controller.rb"
17
+ And I should have a file "vendor/plugins/products/app/models/product.rb"
18
+ And I should have a file "vendor/plugins/products/config/routes.rb"
19
+ And I should have a file "vendor/plugins/products/config/locales/en.yml"
20
+ And I should have a file "vendor/plugins/products/app/views/admin/products/_form.html.erb"
21
+ And I should have a file "vendor/plugins/products/app/views/admin/products/_sortable_list.html.erb"
22
+ And I should have a file "vendor/plugins/products/app/views/admin/products/edit.html.erb"
23
+ And I should have a file "vendor/plugins/products/app/views/admin/products/index.html.erb"
24
+ And I should have a file "vendor/plugins/products/app/views/admin/products/new.html.erb"
25
+ And I should have a file "vendor/plugins/products/app/views/admin/products/_product.html.erb"
26
+ And I should have a file "vendor/plugins/products/app/views/products/index.html.erb"
27
+ And I should have a file "vendor/plugins/products/app/views/products/show.html.erb"
@@ -1,10 +1,11 @@
1
+ @site_bar
1
2
  Feature: Site Bar
2
3
  In order to allow administrators to easily switch between editing and viewing their website
3
4
  I want logged in refinery users to see a site bar
4
5
  And I want logged in customers to not see a site bar
5
6
 
6
7
  Background:
7
- Given I have a home page titled "Home"
8
+ Given I have a page titled "Home" with a custom url "/"
8
9
  And I am not logged in
9
10
 
10
11
  Scenario: Not logged in
@@ -12,7 +13,7 @@ Feature: Site Bar
12
13
  Then I should not see "Log out"
13
14
 
14
15
  Scenario: Logged in as a Refinery user
15
- Given I am a logged in user
16
+ Given I am a logged in refinery user
16
17
  When I go to the home page
17
18
  Then I should see "Log out"
18
19
 
@@ -20,4 +21,4 @@ Feature: Site Bar
20
21
  Given A Refinery user exists
21
22
  And I am a logged in customer
22
23
  When I go to the home page
23
- Then I should not see "Log out"
24
+ Then I should not see "Switch to your website editor"
@@ -0,0 +1,16 @@
1
+ Feature: Theme generation
2
+ In order to create my own theme
3
+ As a refinery user
4
+ I want to generate a basic theme directory structure
5
+
6
+ Scenario: Generating a theme with a name
7
+ Given I have a refinery application
8
+ When I generate a theme with the name of "modern"
9
+ Then I should have a directory "themes/modern"
10
+ And I should have a file "themes/modern/stylesheets/application.css"
11
+ And I should have a file "themes/modern/stylesheets/home.css"
12
+ And I should have a file "themes/modern/stylesheets/formatting.css"
13
+ And I should have a file "themes/modern/views/layouts/application.html.erb"
14
+ And I should have a file "themes/modern/views/pages/home.html.erb"
15
+ And I should have a file "themes/modern/views/pages/show.html.erb"
16
+ And I should have a directory "themes/modern/javascripts"
@@ -49,3 +49,7 @@ Then /^"([^\"]*)" can log in$/ do |name|
49
49
  And 'I press the login button'
50
50
  Then 'I should not see a login form'
51
51
  end
52
+
53
+ Then /^I should be redirected back to "([^"]*)"$/ do |page_name|
54
+ visit path_to(page_name)
55
+ end
@@ -0,0 +1,22 @@
1
+ Given /^I have no files$/ do
2
+ Resource.delete_all
3
+ end
4
+
5
+ When /^I attach the file at "([^"]*)"$/ do |file_path|
6
+ attach_file('resource[uploaded_data]', File.join(Rails.root, file_path))
7
+ end
8
+
9
+ Then /^the file "([^"]*)" should have uploaded successfully$/ do |file_name|
10
+ Resource.find_by_filename(file_name).nil?.should == false
11
+ end
12
+
13
+ And /^I should have ([0-9]+) files?$/ do |number|
14
+ Resource.count.should == number.to_i
15
+ end
16
+
17
+ When /^I upload the file at "([^"]*)"$/ do |file_path|
18
+ visit new_admin_resource_path
19
+ attach_file('resource[uploaded_data]', File.join(Rails.root, file_path))
20
+ click_button 'Save'
21
+ end
22
+
@@ -0,0 +1,11 @@
1
+ Given /^I have a refinery application$/ do
2
+ FileUtils.mkdir(File.join(@app_root))
3
+ end
4
+
5
+ Then /^I should have a directory "([^"]*)"$/ do |name|
6
+ File.exist?(File.join(@tmp_refinery_app_root, name)).should be_true
7
+ end
8
+
9
+ Then /^I should have a file "([^"]*)"$/ do |name|
10
+ File.exist?(File.join(@tmp_refinery_app_root, name)).should be_true
11
+ end
@@ -0,0 +1,43 @@
1
+ Given /^I have no images$/ do
2
+ Image.delete_all
3
+ end
4
+
5
+ When /^I attach the image at "([^"]*)"$/ do |file_path|
6
+ attach_file('image[uploaded_data]', File.join(Rails.root, file_path))
7
+ end
8
+
9
+ Then /^the image "([^"]*)" should have uploaded successfully$/ do |file_name|
10
+ Image.find_by_filename(file_name).nil?.should == false
11
+ end
12
+
13
+ Then /^I should have the correct default number of images$/ do
14
+ image_number = RefinerySetting['image_thumbnails'].length
15
+ Image.count.should == image_number + 1
16
+ end
17
+
18
+ Then /^the image should have size "([^"]*)"$/ do |size|
19
+ Image.first.size.should == size.to_i
20
+ end
21
+
22
+ Then /^the image should have width "([^"]*)"$/ do |width|
23
+ Image.first.width.should == width.to_i
24
+ end
25
+
26
+ Then /^the image should have height "([^"]*)"$/ do |height|
27
+ Image.first.height.should == height.to_i
28
+ end
29
+
30
+ Then /^the image should have content_type "([^"]*)"$/ do |content_type|
31
+ Image.first.content_type.should == content_type.to_s
32
+ end
33
+
34
+ Then /^the image should have all default thumbnail generations$/ do
35
+ parent_id = Image.first.id
36
+ Image.find_all_by_parent_id(parent_id).each do |image|
37
+ RefinerySetting['image_thumbnails'].has_key?(image.thumbnail.to_sym).should == true
38
+ end
39
+ end
40
+
41
+ Then /^I should have ([0-9]+) images?$/ do |number|
42
+ Image.count.should == number.to_i
43
+ end
@@ -0,0 +1,13 @@
1
+ Given /^I have no inquiries$/ do
2
+ Inquiry.delete_all
3
+ end
4
+
5
+ Then /^I should have ([0-9]+) inquiries?$/ do |count|
6
+ Inquiry.count.should == count.to_i
7
+ end
8
+
9
+ Given /^I have an inquiry from "([^"]*)" with email "([^\"]*)" and message "([^\"]*)"$/ do |name, email, message|
10
+ Inquiry.create(:name => name,
11
+ :email => email,
12
+ :message => message)
13
+ end
@@ -1,10 +1,8 @@
1
- Given /^I (only )?have a (home )?page titled (.+)$/ do |only, home, title|
1
+ Given /^I (only )?have a page titled (.+) with a custom url (.+)?$/ do |only, title, link_url|
2
2
  Page.delete_all if only
3
- unless home
4
- Page.create(:title => title)
5
- else
6
- Page.create(:title => title, :link_url => '/')
7
- end
3
+
4
+ Page.create(:title => title,
5
+ :link_url => link_url)
8
6
  end
9
7
 
10
8
  Given /^I (only )?have pages titled (.+)$/ do |only, titles|
@@ -0,0 +1,16 @@
1
+ Before do
2
+ @plugin_generator_root = File.join(File.dirname(__FILE__), "/../../")
3
+ @tmp_refinery_app_name = "tmp_refinery_app"
4
+ @tmp_refinery_app_root = File.join(@plugin_generator_root, @tmp_refinery_app_name)
5
+ @app_root = @tmp_refinery_app_root
6
+ Rails::Generator::Base.append_sources(Rails::Generator::PathSource.new(:plugin, "#{@plugin_generator_root}/generators/"))
7
+ end
8
+
9
+ After do
10
+ FileUtils.rm_rf(@tmp_refinery_app_root)
11
+ end
12
+
13
+ When /^I generate a plugin with the arguments of "([^"]*)"$/ do |arguments|
14
+ Rails::Generator::Scripts::Generate.new.run((["refinery_plugin"] | arguments.split(" ")), {:quiet => true, :destination => @app_root})
15
+ end
16
+
@@ -0,0 +1,15 @@
1
+ Before do
2
+ @theme_generator_root = File.join(File.dirname(__FILE__), "/../../")
3
+ @tmp_refinery_app_name = "tmp_refinery_app"
4
+ @tmp_refinery_app_root = File.join(@theme_generator_root, @tmp_refinery_app_name)
5
+ @app_root = @tmp_refinery_app_root
6
+ Rails::Generator::Base.append_sources(Rails::Generator::PathSource.new(:theme, "#{@theme_generator_root}/generators/"))
7
+ end
8
+
9
+ After do
10
+ FileUtils.rm_rf(@tmp_refinery_app_root)
11
+ end
12
+
13
+ When /^I generate a theme with the name of "([^"]*)"$/ do |name|
14
+ Rails::Generator::Scripts::Generate.new.run(['refinery_theme', name], {:quiet => true, :destination => @app_root})
15
+ end
@@ -6,7 +6,7 @@ def login
6
6
  click_button("submit_button")
7
7
  end
8
8
 
9
- Given /^I am a logged in user$/ do
9
+ Given /^I am a logged in refinery user$/ do
10
10
  @user ||= Factory(:refinery_user)
11
11
  login
12
12
  end
@@ -24,25 +24,25 @@ When /^(?:|I )go to (.+)$/ do |page_name|
24
24
  visit path_to(page_name)
25
25
  end
26
26
 
27
- When /^(?:|I )press "([^"]*)"(?: within "([^"]*)")?$/ do |button, selector|
27
+ When /^(?:|I )press "([^\"]*)"(?: within "([^\"]*)")?$/ do |button, selector|
28
28
  with_scope(selector) do
29
29
  click_button(button)
30
30
  end
31
31
  end
32
32
 
33
- When /^(?:|I )follow "([^"]*)"(?: within "([^"]*)")?$/ do |link, selector|
33
+ When /^(?:|I )follow "([^\"]*)"(?: within "([^\"]*)")?$/ do |link, selector|
34
34
  with_scope(selector) do
35
35
  click_link(link)
36
36
  end
37
37
  end
38
38
 
39
- When /^(?:|I )fill in "([^"]*)" with "([^"]*)"(?: within "([^"]*)")?$/ do |field, value, selector|
39
+ When /^(?:|I )fill in "([^\"]*)" with "([^\"]*)"(?: within "([^\"]*)")?$/ do |field, value, selector|
40
40
  with_scope(selector) do
41
41
  fill_in(field, :with => value)
42
42
  end
43
43
  end
44
44
 
45
- When /^(?:|I )fill in "([^"]*)" for "([^"]*)"(?: within "([^"]*)")?$/ do |value, field, selector|
45
+ When /^(?:|I )fill in "([^\"]*)" for "([^\"]*)"(?: within "([^\"]*)")?$/ do |value, field, selector|
46
46
  with_scope(selector) do
47
47
  fill_in(field, :with => value)
48
48
  end
@@ -59,7 +59,7 @@ end
59
59
  # TODO: Add support for checkbox, select or option
60
60
  # based on naming conventions.
61
61
  #
62
- When /^(?:|I )fill in the following(?: within "([^"]*)")?:$/ do |selector, fields|
62
+ When /^(?:|I )fill in the following(?: within "([^\"]*)")?:$/ do |selector, fields|
63
63
  with_scope(selector) do
64
64
  fields.rows_hash.each do |name, value|
65
65
  When %{I fill in "#{name}" with "#{value}"}
@@ -67,31 +67,31 @@ When /^(?:|I )fill in the following(?: within "([^"]*)")?:$/ do |selector, field
67
67
  end
68
68
  end
69
69
 
70
- When /^(?:|I )select "([^"]*)" from "([^"]*)"(?: within "([^"]*)")?$/ do |value, field, selector|
70
+ When /^(?:|I )select "([^\"]*)" from "([^\"]*)"(?: within "([^\"]*)")?$/ do |value, field, selector|
71
71
  with_scope(selector) do
72
72
  select(value, :from => field)
73
73
  end
74
74
  end
75
75
 
76
- When /^(?:|I )check "([^"]*)"(?: within "([^"]*)")?$/ do |field, selector|
76
+ When /^(?:|I )check "([^\"]*)"(?: within "([^\"]*)")?$/ do |field, selector|
77
77
  with_scope(selector) do
78
78
  check(field)
79
79
  end
80
80
  end
81
81
 
82
- When /^(?:|I )uncheck "([^"]*)"(?: within "([^"]*)")?$/ do |field, selector|
82
+ When /^(?:|I )uncheck "([^\"]*)"(?: within "([^\"]*)")?$/ do |field, selector|
83
83
  with_scope(selector) do
84
84
  uncheck(field)
85
85
  end
86
86
  end
87
87
 
88
- When /^(?:|I )choose "([^"]*)"(?: within "([^"]*)")?$/ do |field, selector|
88
+ When /^(?:|I )choose "([^\"]*)"(?: within "([^\"]*)")?$/ do |field, selector|
89
89
  with_scope(selector) do
90
90
  choose(field)
91
91
  end
92
92
  end
93
93
 
94
- When /^(?:|I )attach the file "([^"]*)" to "([^"]*)"(?: within "([^"]*)")?$/ do |path, field, selector|
94
+ When /^(?:|I )attach the file "([^\"]*)" to "([^\"]*)"(?: within "([^\"]*)")?$/ do |path, field, selector|
95
95
  with_scope(selector) do
96
96
  attach_file(field, path)
97
97
  end
@@ -104,7 +104,7 @@ Then /^(?:|I )should see JSON:$/ do |expected_json|
104
104
  expected.should == actual
105
105
  end
106
106
 
107
- Then /^(?:|I )should see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selector|
107
+ Then /^(?:|I )should see "([^\"]*)"(?: within "([^\"]*)")?$/ do |text, selector|
108
108
  with_scope(selector) do
109
109
  if page.respond_to? :should
110
110
  page.should have_content(text)
@@ -114,7 +114,7 @@ Then /^(?:|I )should see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selector|
114
114
  end
115
115
  end
116
116
 
117
- Then /^(?:|I )should see \/([^\/]*)\/(?: within "([^"]*)")?$/ do |regexp, selector|
117
+ Then /^(?:|I )should see \/([^\/]*)\/(?: within "([^\"]*)")?$/ do |regexp, selector|
118
118
  regexp = Regexp.new(regexp)
119
119
  with_scope(selector) do
120
120
  if page.respond_to? :should
@@ -125,7 +125,7 @@ Then /^(?:|I )should see \/([^\/]*)\/(?: within "([^"]*)")?$/ do |regexp, select
125
125
  end
126
126
  end
127
127
 
128
- Then /^(?:|I )should not see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selector|
128
+ Then /^(?:|I )should not see "([^\"]*)"(?: within "([^\"]*)")?$/ do |text, selector|
129
129
  with_scope(selector) do
130
130
  if page.respond_to? :should
131
131
  page.should have_no_content(text)
@@ -135,7 +135,7 @@ Then /^(?:|I )should not see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selecto
135
135
  end
136
136
  end
137
137
 
138
- Then /^(?:|I )should not see \/([^\/]*)\/(?: within "([^"]*)")?$/ do |regexp, selector|
138
+ Then /^(?:|I )should not see \/([^\/]*)\/(?: within "([^\"]*)")?$/ do |regexp, selector|
139
139
  regexp = Regexp.new(regexp)
140
140
  with_scope(selector) do
141
141
  if page.respond_to? :should
@@ -146,7 +146,7 @@ Then /^(?:|I )should not see \/([^\/]*)\/(?: within "([^"]*)")?$/ do |regexp, se
146
146
  end
147
147
  end
148
148
 
149
- Then /^the "([^"]*)" field(?: within "([^"]*)")? should contain "([^"]*)"$/ do |field, selector, value|
149
+ Then /^the "([^\"]*)" field(?: within "([^\"]*)")? should contain "([^\"]*)"$/ do |field, selector, value|
150
150
  with_scope(selector) do
151
151
  field = find_field(field)
152
152
  field_value = (field.tag_name == 'textarea') ? field.text : field.value
@@ -158,7 +158,7 @@ Then /^the "([^"]*)" field(?: within "([^"]*)")? should contain "([^"]*)"$/ do |
158
158
  end
159
159
  end
160
160
 
161
- Then /^the "([^"]*)" field(?: within "([^"]*)")? should not contain "([^"]*)"$/ do |field, selector, value|
161
+ Then /^the "([^\"]*)" field(?: within "([^\"]*)")? should not contain "([^\"]*)"$/ do |field, selector, value|
162
162
  with_scope(selector) do
163
163
  field = find_field(field)
164
164
  field_value = (field.tag_name == 'textarea') ? field.text : field.value
@@ -170,7 +170,7 @@ Then /^the "([^"]*)" field(?: within "([^"]*)")? should not contain "([^"]*)"$/
170
170
  end
171
171
  end
172
172
 
173
- Then /^the "([^"]*)" checkbox(?: within "([^"]*)")? should be checked$/ do |label, selector|
173
+ Then /^the "([^\"]*)" checkbox(?: within "([^\"]*)")? should be checked$/ do |label, selector|
174
174
  with_scope(selector) do
175
175
  field_checked = find_field(label)['checked']
176
176
  if field_checked.respond_to? :should
@@ -181,7 +181,7 @@ Then /^the "([^"]*)" checkbox(?: within "([^"]*)")? should be checked$/ do |labe
181
181
  end
182
182
  end
183
183
 
184
- Then /^the "([^"]*)" checkbox(?: within "([^"]*)")? should not be checked$/ do |label, selector|
184
+ Then /^the "([^\"]*)" checkbox(?: within "([^\"]*)")? should not be checked$/ do |label, selector|
185
185
  with_scope(selector) do
186
186
  field_checked = find_field(label)['checked']
187
187
  if field_checked.respond_to? :should