alchemy_cms 3.2.0.beta → 3.2.0.rc1

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 (146) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +661 -863
  3. data/README.md +5 -63
  4. data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +11 -10
  5. data/app/assets/javascripts/alchemy/alchemy.initializer.js.coffee +6 -0
  6. data/app/assets/stylesheets/alchemy/_extends.scss +0 -6
  7. data/app/assets/stylesheets/alchemy/_mixins.scss +6 -0
  8. data/app/assets/stylesheets/alchemy/buttons.scss +1 -1
  9. data/app/assets/stylesheets/alchemy/elements.scss +1 -1
  10. data/app/assets/stylesheets/alchemy/menubar.scss +1 -1
  11. data/app/assets/stylesheets/alchemy/selects.scss +5 -1
  12. data/app/assets/stylesheets/alchemy/upload.scss +1 -1
  13. data/app/controllers/alchemy/admin/pages_controller.rb +1 -1
  14. data/app/controllers/alchemy/base_controller.rb +4 -57
  15. data/app/controllers/alchemy/messages_controller.rb +2 -2
  16. data/app/controllers/alchemy/pages_controller.rb +22 -31
  17. data/app/controllers/alchemy/pictures_controller.rb +2 -2
  18. data/app/helpers/alchemy/admin/base_helper.rb +7 -0
  19. data/app/helpers/alchemy/admin/elements_helper.rb +31 -15
  20. data/app/helpers/alchemy/admin/pages_helper.rb +17 -0
  21. data/app/helpers/alchemy/base_helper.rb +0 -28
  22. data/app/helpers/alchemy/pages_helper.rb +18 -12
  23. data/app/helpers/alchemy/url_helper.rb +2 -2
  24. data/app/models/alchemy/cell.rb +1 -1
  25. data/app/models/alchemy/content/factory.rb +12 -6
  26. data/app/models/alchemy/element.rb +3 -3
  27. data/app/models/alchemy/element/definitions.rb +1 -1
  28. data/app/models/alchemy/element_to_page.rb +7 -0
  29. data/app/models/alchemy/language.rb +1 -1
  30. data/app/models/alchemy/page.rb +8 -1
  31. data/app/models/alchemy/page/page_cells.rb +2 -2
  32. data/app/models/alchemy/page/page_elements.rb +23 -5
  33. data/app/models/alchemy/page/page_natures.rb +3 -3
  34. data/app/models/alchemy/page/page_scopes.rb +1 -1
  35. data/app/models/alchemy/picture.rb +1 -1
  36. data/app/views/alchemy/admin/pages/_create_language_form.html.erb +1 -1
  37. data/app/views/alchemy/admin/pages/_form.html.erb +1 -1
  38. data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +1 -1
  39. data/app/views/alchemy/breadcrumb/_page.html.erb +3 -2
  40. data/app/views/alchemy/breadcrumb/_separator.html.erb +1 -0
  41. data/app/views/alchemy/breadcrumb/_wrapper.html.erb +13 -0
  42. data/app/views/alchemy/language_links/_language.html.erb +1 -1
  43. data/app/views/alchemy/navigation/_link.html.erb +1 -1
  44. data/app/views/alchemy/pages/show.rss.builder +5 -7
  45. data/app/views/layouts/alchemy/admin.html.erb +5 -0
  46. data/config/routes.rb +13 -10
  47. data/lib/alchemy/configuration_methods.rb +29 -0
  48. data/lib/alchemy/controller_actions.rb +12 -4
  49. data/lib/alchemy/engine.rb +3 -0
  50. data/lib/alchemy/errors.rb +1 -1
  51. data/lib/alchemy/essence.rb +14 -12
  52. data/lib/alchemy/on_page_layout.rb +58 -0
  53. data/lib/alchemy/page_layout.rb +1 -1
  54. data/lib/alchemy/permissions.rb +21 -16
  55. data/lib/alchemy/routing_constraints.rb +49 -0
  56. data/lib/alchemy/seeder.rb +4 -2
  57. data/lib/alchemy/ssl_protection.rb +30 -0
  58. data/lib/alchemy/test_support/essence_shared_examples.rb +118 -25
  59. data/lib/alchemy/test_support/factories.rb +5 -8
  60. data/lib/alchemy/test_support/integration_helpers.rb +16 -10
  61. data/lib/alchemy/upgrader/three_point_two.rb +34 -4
  62. data/lib/alchemy/version.rb +1 -1
  63. data/lib/rails/generators/alchemy/{scaffold → install}/files/_article_editor.html.erb +0 -0
  64. data/lib/rails/generators/alchemy/{scaffold → install}/files/_article_view.html.erb +0 -0
  65. data/lib/rails/generators/alchemy/{scaffold → install}/files/_standard.html.erb +0 -0
  66. data/lib/rails/generators/alchemy/{scaffold → install}/files/alchemy.de.yml +0 -0
  67. data/lib/rails/generators/alchemy/{scaffold → install}/files/alchemy.elements.css.scss +0 -0
  68. data/lib/rails/generators/alchemy/{scaffold → install}/files/alchemy.en.yml +0 -0
  69. data/lib/rails/generators/alchemy/{scaffold → install}/files/alchemy.es.yml +0 -0
  70. data/lib/rails/generators/alchemy/{scaffold → install}/files/application.html.erb +0 -0
  71. data/lib/rails/generators/alchemy/install/install_generator.rb +69 -0
  72. data/lib/rails/generators/alchemy/{scaffold/files/elements.yml → install/templates/elements.yml.tt} +2 -0
  73. data/lib/rails/generators/alchemy/{scaffold → install}/templates/page_layouts.yml.tt +2 -0
  74. data/lib/rails/generators/alchemy/views/views_generator.rb +41 -0
  75. data/lib/rails/templates/alchemy.rb +2 -2
  76. data/lib/tasks/alchemy/db.rake +0 -5
  77. data/lib/tasks/alchemy/install.rake +10 -5
  78. data/lib/tasks/alchemy/tidy.rake +2 -0
  79. data/spec/controllers/admin/attachments_controller_spec.rb +1 -1
  80. data/spec/controllers/admin/clipboard_controller_spec.rb +1 -1
  81. data/spec/controllers/admin/contents_controller_spec.rb +1 -1
  82. data/spec/controllers/admin/dashboard_controller_spec.rb +2 -2
  83. data/spec/controllers/admin/elements_controller_spec.rb +1 -1
  84. data/spec/controllers/admin/essence_files_controller_spec.rb +1 -1
  85. data/spec/controllers/admin/essence_pictures_controller_spec.rb +1 -1
  86. data/spec/controllers/admin/languages_controller_spec.rb +1 -1
  87. data/spec/controllers/admin/layoutpages_controller_spec.rb +1 -1
  88. data/spec/controllers/admin/pages_controller_spec.rb +4 -4
  89. data/spec/controllers/admin/pictures_controller_spec.rb +1 -1
  90. data/spec/controllers/admin/resources_controller_spec.rb +1 -1
  91. data/spec/controllers/admin/trash_controller_spec.rb +1 -1
  92. data/spec/controllers/alchemy/admin/tags_controller_spec.rb +1 -1
  93. data/spec/controllers/attachments_controller_spec.rb +1 -1
  94. data/spec/controllers/base_controller_spec.rb +22 -0
  95. data/spec/controllers/elements_controller_spec.rb +1 -1
  96. data/spec/controllers/pages_controller_spec.rb +15 -16
  97. data/spec/controllers/pictures_controller_spec.rb +212 -162
  98. data/spec/dummy/app/controllers/login_controller.rb +5 -0
  99. data/spec/dummy/app/models/dummy_model.rb +3 -0
  100. data/spec/dummy/config/alchemy/cells.yml +4 -1
  101. data/spec/dummy/config/alchemy/elements.yml +8 -0
  102. data/spec/dummy/config/alchemy/page_layouts.yml +5 -1
  103. data/spec/dummy/config/routes.rb +1 -2
  104. data/spec/dummy/db/migrate/20150412103152_create_dummy_model.rb +7 -0
  105. data/spec/dummy/db/schema.rb +30 -26
  106. data/spec/features/admin/dashboard_spec.rb +11 -9
  107. data/spec/features/admin/language_tree_feature_spec.rb +5 -6
  108. data/spec/features/admin/legacy_page_url_management_spec.rb +1 -1
  109. data/spec/features/admin/link_overlay_spec.rb +1 -1
  110. data/spec/features/admin/locale_select_feature_spec.rb +1 -1
  111. data/spec/features/admin/modules_integration_spec.rb +1 -1
  112. data/spec/features/admin/navigation_feature_spec.rb +1 -1
  113. data/spec/features/admin/page_creation_feature_spec.rb +1 -1
  114. data/spec/features/admin/page_editing_feature_spec.rb +3 -3
  115. data/spec/features/admin/picture_library_integration_spec.rb +1 -1
  116. data/spec/features/admin/resources_integration_spec.rb +1 -1
  117. data/spec/features/admin/site_select_feature_spec.rb +32 -0
  118. data/spec/features/admin/tinymce_feature_spec.rb +1 -3
  119. data/spec/features/page_feature_spec.rb +36 -27
  120. data/spec/features/security_spec.rb +1 -1
  121. data/spec/features/translation_integration_spec.rb +3 -3
  122. data/spec/helpers/admin/elements_helper_spec.rb +103 -26
  123. data/spec/helpers/admin/pages_helper_spec.rb +32 -1
  124. data/spec/helpers/base_helper_spec.rb +0 -45
  125. data/spec/helpers/pages_helper_spec.rb +18 -17
  126. data/spec/helpers/url_helper_spec.rb +8 -5
  127. data/spec/libraries/controller_actions_spec.rb +2 -2
  128. data/spec/libraries/on_page_layout_spec.rb +112 -0
  129. data/spec/libraries/page_layout_spec.rb +5 -1
  130. data/spec/libraries/permissions_spec.rb +13 -15
  131. data/spec/models/cell_spec.rb +4 -0
  132. data/spec/models/content_spec.rb +6 -0
  133. data/spec/models/dummy_model_spec.rb +11 -0
  134. data/spec/models/element_spec.rb +6 -1
  135. data/spec/models/element_to_page_spec.rb +14 -0
  136. data/spec/models/page_spec.rb +111 -19
  137. data/spec/routing/routing_spec.rb +120 -101
  138. data/spec/spec_helper.rb +3 -3
  139. metadata +36 -21
  140. data/app/views/alchemy/breadcrumb/_spacer.html.erb +0 -1
  141. data/lib/alchemy/capistrano.rb +0 -230
  142. data/lib/alchemy/test_support/auth_helpers.rb +0 -35
  143. data/lib/rails/generators/alchemy/deploy_script/deploy_script_generator.rb +0 -90
  144. data/lib/rails/generators/alchemy/deploy_script/templates/deploy.rb.tt +0 -113
  145. data/lib/rails/generators/alchemy/scaffold/scaffold_generator.rb +0 -63
  146. data/spec/dummy/app/controllers/errors_controller.rb +0 -5
@@ -0,0 +1,5 @@
1
+ class LoginController < ApplicationController
2
+ def new
3
+ render text: 'Please login'
4
+ end
5
+ end
@@ -0,0 +1,3 @@
1
+ class DummyModel < ActiveRecord::Base
2
+ acts_as_essence ingredient_column: 'data'
3
+ end
@@ -1,2 +1,5 @@
1
1
  - name: right_column
2
- elements: [search]
2
+ elements: [search, text]
3
+
4
+ - name: <%= 'erb_' + 'cell' %>
5
+ elements: [text]
@@ -35,6 +35,9 @@
35
35
  - name: text
36
36
  type: EssenceRichtext
37
37
 
38
+ - name: search
39
+ contents: []
40
+
38
41
  - name: news
39
42
  contents:
40
43
  - name: date
@@ -102,3 +105,8 @@
102
105
  type: EssenceSelect
103
106
  - name: essence_text
104
107
  type: EssenceText
108
+
109
+ - name: <%= 'erb_' + 'element' %>
110
+ contents:
111
+ - name: text
112
+ type: EssenceRichtext
@@ -6,7 +6,8 @@
6
6
  autogenerate: [header, article]
7
7
 
8
8
  - name: everything
9
- elements: [all_you_can_eat]
9
+ cells: [right_column]
10
+ elements: [text, all_you_can_eat]
10
11
  autogenerate: [all_you_can_eat]
11
12
 
12
13
  - name: news
@@ -26,3 +27,6 @@
26
27
  - name: external
27
28
  unique: false
28
29
  redirects_to_external: true
30
+
31
+ - name: <%= 'erb_' + 'layout' %>
32
+ unique: true
@@ -2,12 +2,11 @@ Rails.application.routes.draw do
2
2
 
3
3
  mount JasmineRails::Engine => "/specs" if defined?(JasmineRails)
4
4
 
5
- get '/404' => 'errors#status_404', :as => :status_404
5
+ get '/login' => 'login#new', as: 'login'
6
6
 
7
7
  namespace :admin do
8
8
  resources :events
9
9
  end
10
10
 
11
11
  mount Alchemy::Engine => "/"
12
-
13
12
  end
@@ -0,0 +1,7 @@
1
+ class CreateDummyModel < ActiveRecord::Migration
2
+ def change
3
+ create_table :dummy_models do |t|
4
+ t.string :data
5
+ end
6
+ end
7
+ end
@@ -11,9 +11,9 @@
11
11
  #
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 20150122213514) do
14
+ ActiveRecord::Schema.define(version: 20150412103152) do
15
15
 
16
- create_table "alchemy_attachments", force: true do |t|
16
+ create_table "alchemy_attachments", force: :cascade do |t|
17
17
  t.string "name"
18
18
  t.string "file_name"
19
19
  t.string "file_mime_type"
@@ -28,14 +28,14 @@ ActiveRecord::Schema.define(version: 20150122213514) do
28
28
 
29
29
  add_index "alchemy_attachments", ["file_uid"], name: "index_alchemy_attachments_on_file_uid"
30
30
 
31
- create_table "alchemy_cells", force: true do |t|
31
+ create_table "alchemy_cells", force: :cascade do |t|
32
32
  t.integer "page_id"
33
33
  t.string "name"
34
34
  t.datetime "created_at", null: false
35
35
  t.datetime "updated_at", null: false
36
36
  end
37
37
 
38
- create_table "alchemy_contents", force: true do |t|
38
+ create_table "alchemy_contents", force: :cascade do |t|
39
39
  t.string "name"
40
40
  t.string "essence_type"
41
41
  t.integer "essence_id"
@@ -49,7 +49,7 @@ ActiveRecord::Schema.define(version: 20150122213514) do
49
49
 
50
50
  add_index "alchemy_contents", ["element_id", "position"], name: "index_contents_on_element_id_and_position"
51
51
 
52
- create_table "alchemy_elements", force: true do |t|
52
+ create_table "alchemy_elements", force: :cascade do |t|
53
53
  t.string "name"
54
54
  t.integer "position"
55
55
  t.integer "page_id"
@@ -66,12 +66,12 @@ ActiveRecord::Schema.define(version: 20150122213514) do
66
66
 
67
67
  add_index "alchemy_elements", ["page_id", "position"], name: "index_elements_on_page_id_and_position"
68
68
 
69
- create_table "alchemy_elements_alchemy_pages", id: false, force: true do |t|
69
+ create_table "alchemy_elements_alchemy_pages", id: false, force: :cascade do |t|
70
70
  t.integer "element_id"
71
71
  t.integer "page_id"
72
72
  end
73
73
 
74
- create_table "alchemy_essence_booleans", force: true do |t|
74
+ create_table "alchemy_essence_booleans", force: :cascade do |t|
75
75
  t.boolean "value"
76
76
  t.datetime "created_at", null: false
77
77
  t.datetime "updated_at", null: false
@@ -81,7 +81,7 @@ ActiveRecord::Schema.define(version: 20150122213514) do
81
81
 
82
82
  add_index "alchemy_essence_booleans", ["value"], name: "index_alchemy_essence_booleans_on_value"
83
83
 
84
- create_table "alchemy_essence_dates", force: true do |t|
84
+ create_table "alchemy_essence_dates", force: :cascade do |t|
85
85
  t.datetime "date"
86
86
  t.integer "creator_id"
87
87
  t.integer "updater_id"
@@ -89,7 +89,7 @@ ActiveRecord::Schema.define(version: 20150122213514) do
89
89
  t.datetime "updated_at", null: false
90
90
  end
91
91
 
92
- create_table "alchemy_essence_files", force: true do |t|
92
+ create_table "alchemy_essence_files", force: :cascade do |t|
93
93
  t.integer "attachment_id"
94
94
  t.string "title"
95
95
  t.string "css_class"
@@ -99,7 +99,7 @@ ActiveRecord::Schema.define(version: 20150122213514) do
99
99
  t.datetime "updated_at", null: false
100
100
  end
101
101
 
102
- create_table "alchemy_essence_htmls", force: true do |t|
102
+ create_table "alchemy_essence_htmls", force: :cascade do |t|
103
103
  t.text "source"
104
104
  t.integer "creator_id"
105
105
  t.integer "updater_id"
@@ -107,7 +107,7 @@ ActiveRecord::Schema.define(version: 20150122213514) do
107
107
  t.datetime "updated_at", null: false
108
108
  end
109
109
 
110
- create_table "alchemy_essence_links", force: true do |t|
110
+ create_table "alchemy_essence_links", force: :cascade do |t|
111
111
  t.string "link"
112
112
  t.string "link_title"
113
113
  t.string "link_target"
@@ -118,7 +118,7 @@ ActiveRecord::Schema.define(version: 20150122213514) do
118
118
  t.integer "updater_id"
119
119
  end
120
120
 
121
- create_table "alchemy_essence_pictures", force: true do |t|
121
+ create_table "alchemy_essence_pictures", force: :cascade do |t|
122
122
  t.integer "picture_id"
123
123
  t.string "caption"
124
124
  t.string "title"
@@ -137,7 +137,7 @@ ActiveRecord::Schema.define(version: 20150122213514) do
137
137
  t.string "render_size"
138
138
  end
139
139
 
140
- create_table "alchemy_essence_richtexts", force: true do |t|
140
+ create_table "alchemy_essence_richtexts", force: :cascade do |t|
141
141
  t.text "body"
142
142
  t.text "stripped_body"
143
143
  t.boolean "public"
@@ -147,7 +147,7 @@ ActiveRecord::Schema.define(version: 20150122213514) do
147
147
  t.datetime "updated_at", null: false
148
148
  end
149
149
 
150
- create_table "alchemy_essence_selects", force: true do |t|
150
+ create_table "alchemy_essence_selects", force: :cascade do |t|
151
151
  t.string "value"
152
152
  t.datetime "created_at", null: false
153
153
  t.datetime "updated_at", null: false
@@ -157,7 +157,7 @@ ActiveRecord::Schema.define(version: 20150122213514) do
157
157
 
158
158
  add_index "alchemy_essence_selects", ["value"], name: "index_alchemy_essence_selects_on_value"
159
159
 
160
- create_table "alchemy_essence_texts", force: true do |t|
160
+ create_table "alchemy_essence_texts", force: :cascade do |t|
161
161
  t.text "body"
162
162
  t.string "link"
163
163
  t.string "link_title"
@@ -170,13 +170,13 @@ ActiveRecord::Schema.define(version: 20150122213514) do
170
170
  t.datetime "updated_at", null: false
171
171
  end
172
172
 
173
- create_table "alchemy_folded_pages", force: true do |t|
173
+ create_table "alchemy_folded_pages", force: :cascade do |t|
174
174
  t.integer "page_id"
175
175
  t.integer "user_id"
176
176
  t.boolean "folded", default: false
177
177
  end
178
178
 
179
- create_table "alchemy_languages", force: true do |t|
179
+ create_table "alchemy_languages", force: :cascade do |t|
180
180
  t.string "name"
181
181
  t.string "language_code"
182
182
  t.string "frontpage_name"
@@ -195,7 +195,7 @@ ActiveRecord::Schema.define(version: 20150122213514) do
195
195
  add_index "alchemy_languages", ["language_code"], name: "index_alchemy_languages_on_language_code"
196
196
  add_index "alchemy_languages", ["site_id"], name: "index_alchemy_languages_on_site_id"
197
197
 
198
- create_table "alchemy_legacy_page_urls", force: true do |t|
198
+ create_table "alchemy_legacy_page_urls", force: :cascade do |t|
199
199
  t.string "urlname", null: false
200
200
  t.integer "page_id", null: false
201
201
  t.datetime "created_at", null: false
@@ -204,7 +204,7 @@ ActiveRecord::Schema.define(version: 20150122213514) do
204
204
 
205
205
  add_index "alchemy_legacy_page_urls", ["urlname"], name: "index_alchemy_legacy_page_urls_on_urlname"
206
206
 
207
- create_table "alchemy_pages", force: true do |t|
207
+ create_table "alchemy_pages", force: :cascade do |t|
208
208
  t.string "name"
209
209
  t.string "urlname"
210
210
  t.string "title"
@@ -239,7 +239,7 @@ ActiveRecord::Schema.define(version: 20150122213514) do
239
239
  add_index "alchemy_pages", ["parent_id", "lft"], name: "index_pages_on_parent_id_and_lft"
240
240
  add_index "alchemy_pages", ["urlname"], name: "index_pages_on_urlname"
241
241
 
242
- create_table "alchemy_pictures", force: true do |t|
242
+ create_table "alchemy_pictures", force: :cascade do |t|
243
243
  t.string "name"
244
244
  t.string "image_file_name"
245
245
  t.integer "image_file_width"
@@ -254,7 +254,7 @@ ActiveRecord::Schema.define(version: 20150122213514) do
254
254
  t.integer "image_file_size"
255
255
  end
256
256
 
257
- create_table "alchemy_sites", force: true do |t|
257
+ create_table "alchemy_sites", force: :cascade do |t|
258
258
  t.string "host"
259
259
  t.string "name"
260
260
  t.datetime "created_at", null: false
@@ -267,14 +267,18 @@ ActiveRecord::Schema.define(version: 20150122213514) do
267
267
  add_index "alchemy_sites", ["host", "public"], name: "alchemy_sites_public_hosts_idx"
268
268
  add_index "alchemy_sites", ["host"], name: "index_alchemy_sites_on_host"
269
269
 
270
- create_table "dummy_users", force: true do |t|
270
+ create_table "dummy_models", force: :cascade do |t|
271
+ t.string "data"
272
+ end
273
+
274
+ create_table "dummy_users", force: :cascade do |t|
271
275
  t.string "email"
272
276
  t.string "password"
273
277
  end
274
278
 
275
279
  add_index "dummy_users", ["email"], name: "index_dummy_users_on_email"
276
280
 
277
- create_table "events", force: true do |t|
281
+ create_table "events", force: :cascade do |t|
278
282
  t.string "name"
279
283
  t.string "hidden_name"
280
284
  t.datetime "starts_at"
@@ -289,13 +293,13 @@ ActiveRecord::Schema.define(version: 20150122213514) do
289
293
  t.datetime "updated_at", null: false
290
294
  end
291
295
 
292
- create_table "locations", force: true do |t|
296
+ create_table "locations", force: :cascade do |t|
293
297
  t.string "name"
294
298
  t.datetime "created_at"
295
299
  t.datetime "updated_at"
296
300
  end
297
301
 
298
- create_table "taggings", force: true do |t|
302
+ create_table "taggings", force: :cascade do |t|
299
303
  t.integer "tag_id"
300
304
  t.integer "taggable_id"
301
305
  t.string "taggable_type"
@@ -308,7 +312,7 @@ ActiveRecord::Schema.define(version: 20150122213514) do
308
312
  add_index "taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], name: "taggings_idx", unique: true
309
313
  add_index "taggings", ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context"
310
314
 
311
- create_table "tags", force: true do |t|
315
+ create_table "tags", force: :cascade do |t|
312
316
  t.string "name"
313
317
  t.integer "taggings_count", default: 0
314
318
  end
@@ -1,11 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'Dashboard feature' do
4
- let(:user) { DummyUser.new }
4
+ let(:user) { create(:alchemy_dummy_user, :as_admin, name: "Joe User") }
5
5
 
6
6
  before do
7
- user.update_attributes(alchemy_roles: %w(admin), name: "Joe User", id: 1)
8
- authorize_as_admin(user)
7
+ authorize_user(user)
9
8
  end
10
9
 
11
10
  describe 'Locked pages summary' do
@@ -30,11 +29,11 @@ describe 'Dashboard feature' do
30
29
  end
31
30
 
32
31
  context 'When locked by another user' do
33
- it "should show locked by user's name" do
34
- user = DummyUser.new
35
- user.update_attributes(alchemy_roles: %w(admin), name: "Sue Smith", id: 2)
36
- a_page.lock_to!(user)
37
- allow(DummyUser).to receive(:find_by).and_return(user)
32
+ let(:other_user) { create(:alchemy_dummy_user, :as_admin, name: "Sue Smith") }
33
+
34
+ it "shows the name of the user who locked the page" do
35
+ a_page.lock_to!(other_user)
36
+ allow(user.class).to receive(:find_by).and_return(other_user)
38
37
  visit admin_dashboard_path
39
38
  locked_pages_widget = all('div[@class="widget"]').first
40
39
  expect(locked_pages_widget).to have_content "Currently locked pages:"
@@ -46,7 +45,10 @@ describe 'Dashboard feature' do
46
45
 
47
46
  describe 'Sites widget' do
48
47
  context 'with multiple sites' do
49
- let!(:site) { Alchemy::Site.create!(name: 'Site', host: 'site.com') }
48
+
49
+ before do
50
+ Alchemy::Site.create!(name: 'Site', host: 'site.com')
51
+ end
50
52
 
51
53
  it "lists all sites" do
52
54
  visit admin_dashboard_path
@@ -1,18 +1,17 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'Language tree feature', type: :feature, js: true do
4
-
5
4
  let(:klingonian) { FactoryGirl.create(:klingonian) }
6
- let(:german_root) { FactoryGirl.create(:language_root_page) }
7
- let(:klingonian_root) { FactoryGirl.create(:language_root_page, :name => 'Klingonian', :language => klingonian) }
8
5
 
9
6
  before do
10
- german_root
11
- authorize_as_admin
7
+ FactoryGirl.create(:language_root_page)
8
+ authorize_user(:as_admin)
12
9
  end
13
10
 
14
11
  context "in a multilangual environment" do
15
- before { klingonian_root }
12
+ before do
13
+ FactoryGirl.create(:language_root_page, :name => 'Klingonian', :language => klingonian)
14
+ end
16
15
 
17
16
  it "one should be able to switch the language tree" do
18
17
  visit('/admin/pages')
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
 
4
4
  describe 'Legacy page url management', type: :feature, js: true do
5
5
  before do
6
- authorize_as_admin
6
+ authorize_user(:as_admin)
7
7
  end
8
8
 
9
9
  let!(:a_page) { create(:page) }
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe "Link overlay" do
4
4
 
5
5
  before do
6
- authorize_as_admin
6
+ authorize_user(:as_admin)
7
7
  end
8
8
 
9
9
  context "GUI" do
@@ -4,7 +4,7 @@ describe 'Locale select' do
4
4
  let(:a_page) { FactoryGirl.create(:public_page) }
5
5
  before do
6
6
  allow(Alchemy::I18n).to receive(:translation_files).and_return ['alchemy.kl.yml', 'alchemy.jp.yml', 'alchemy.cz.yml']
7
- authorize_as_admin
7
+ authorize_user(:as_admin)
8
8
  end
9
9
 
10
10
  it "contains all locales in a selectbox" do
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe "Modules" do
4
4
  context "A custom module with a main-apps controller" do
5
- before { authorize_as_admin }
5
+ before { authorize_user(:as_admin) }
6
6
 
7
7
  it "should have a button in main_navigation, pointing to the configured controller" do
8
8
  Alchemy::Modules.register_module(
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe 'Admin navigation feature' do
4
4
 
5
5
  context 'admin users' do
6
- before { authorize_as_admin }
6
+ before { authorize_user(:as_admin) }
7
7
 
8
8
  it "can leave the admin area" do
9
9
  visit ('/admin/leave')
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  module Alchemy
4
4
  describe "Page creation" do
5
- before { authorize_as_admin }
5
+ before { authorize_user(:as_admin) }
6
6
 
7
7
  describe "overlay GUI" do
8
8
  context "without having a Page in the clipboard" do
@@ -4,7 +4,7 @@ describe 'Page editing feature' do
4
4
  let(:a_page) { create(:page) }
5
5
 
6
6
  context 'as author' do
7
- before { authorize_as_admin(build(:author_user)) }
7
+ before { authorize_user(:as_author) }
8
8
 
9
9
  it 'cannot publish page.' do
10
10
  visit alchemy.edit_admin_page_path(a_page)
@@ -13,7 +13,7 @@ describe 'Page editing feature' do
13
13
  end
14
14
 
15
15
  context 'as editor' do
16
- before { authorize_as_admin(build(:editor_user)) }
16
+ before { authorize_user(:as_editor) }
17
17
 
18
18
  it 'can publish page.' do
19
19
  visit alchemy.edit_admin_page_path(a_page)
@@ -34,7 +34,7 @@ describe 'Page editing feature' do
34
34
  context 'as admin' do
35
35
  let(:a_page) { create(:public_page, visible: true) }
36
36
 
37
- before { authorize_as_admin }
37
+ before { authorize_user(:as_admin) }
38
38
 
39
39
  context "in configure overlay" do
40
40
  context "when editing a normal page" do