alchemy_cms 3.2.0.beta → 3.2.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
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