alchemy_cms 2.2.rc8 → 2.2.rc11
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +1 -1
- data/app/assets/javascripts/alchemy/alchemy.page_sorter.js +1 -1
- data/app/assets/stylesheets/alchemy/sitemap.css.scss +14 -13
- data/app/assets/stylesheets/alchemy/standard_set.css +9 -10
- data/app/controllers/alchemy/admin/pages_controller.rb +1 -0
- data/app/controllers/alchemy/base_controller.rb +2 -1
- data/app/helpers/alchemy/admin/essences_helper.rb +1 -0
- data/app/helpers/alchemy/elements_helper.rb +2 -10
- data/app/helpers/alchemy/essences_helper.rb +1 -0
- data/app/helpers/alchemy/pages_helper.rb +31 -13
- data/app/models/alchemy/attachment.rb +1 -1
- data/app/models/alchemy/content.rb +8 -8
- data/app/models/alchemy/element.rb +14 -10
- data/app/models/alchemy/essence_file.rb +1 -1
- data/app/models/alchemy/message.rb +9 -9
- data/app/models/alchemy/page.rb +4 -3
- data/app/models/alchemy/picture.rb +1 -1
- data/app/models/alchemy/user.rb +1 -1
- data/app/sweepers/alchemy/content_sweeper.rb +29 -6
- data/app/views/alchemy/admin/attachments/new.html.erb +1 -1
- data/app/views/alchemy/admin/pages/index.html.erb +7 -7
- data/app/views/alchemy/admin/pages/sort.js.erb +2 -1
- data/app/views/alchemy/admin/partials/_upload_form.html.erb +2 -2
- data/app/views/alchemy/admin/pictures/new.html.erb +1 -1
- data/app/views/alchemy/essences/_essence_picture_tools.html.erb +2 -2
- data/app/views/alchemy/essences/_essence_text_editor.html.erb +11 -11
- data/app/views/alchemy/navigation/_link.html.erb +20 -20
- data/app/views/alchemy/navigation/_renderer.html.erb +37 -23
- data/config/alchemy/config.yml +107 -65
- data/config/alchemy/elements.yml +12 -1
- data/config/locales/alchemy.de.yml +1 -0
- data/config/locales/alchemy.en.yml +1 -0
- data/lib/alchemy/essence.rb +1 -1
- data/lib/alchemy/page_layout.rb +3 -9
- data/lib/alchemy/resource.rb +5 -5
- data/lib/alchemy/version.rb +1 -1
- data/lib/rails/generators/alchemy/scaffold/scaffold_generator.rb +2 -2
- data/lib/rails/generators/alchemy/scaffold/{files/page_layouts.yml → templates/page_layouts.yml.tt} +4 -0
- data/spec/config_spec.rb +1 -1
- data/spec/dummy/db/schema.rb +1 -1
- data/spec/helpers/admin/contents_helper_spec.rb +4 -3
- data/spec/helpers/admin/essences_helper_spec.rb +4 -8
- data/spec/helpers/essences_helper_spec.rb +0 -4
- data/spec/helpers/pages_helper_spec.rb +10 -1
- data/spec/integration/admin/modules_integration_spec.rb +25 -21
- data/spec/integration/admin/pages_controller_spec.rb +16 -19
- data/spec/integration/admin/resources_integration_spec.rb +58 -64
- data/spec/integration/pages_controller_spec.rb +24 -3
- data/spec/integration/security_spec.rb +12 -12
- data/spec/libraries/resource_spec.rb +16 -18
- data/spec/models/page_spec.rb +352 -326
- data/spec/page_layout_spec.rb +2 -2
- data/spec/support/alchemy/specs_helpers.rb +16 -1
- metadata +116 -38
- data/spec/support/integration_spec_helper.rb +0 -24
data/config/alchemy/elements.yml
CHANGED
@@ -39,9 +39,20 @@
|
|
39
39
|
#
|
40
40
|
# After finishing the setup of your element layouts, you need to generate the files for the elements before using them in Alchemy.
|
41
41
|
# For creating these files, use the following command in your terminal:
|
42
|
+
#
|
43
|
+
#
|
42
44
|
#
|
43
|
-
# rails generate elements
|
45
|
+
# rails generate alchemy:elements
|
46
|
+
#
|
47
|
+
#
|
48
|
+
# or:
|
49
|
+
#
|
50
|
+
# rails g alchemy:elements --skip
|
51
|
+
#
|
52
|
+
#
|
53
|
+
# to skip existing elements
|
44
54
|
#
|
55
|
+
#
|
45
56
|
# All new elements will be created as two different partials in Rails.root/app/views/elements.
|
46
57
|
# For each element there is an editor-view wich will be rendered when editing them in Alchemy and another view for the website´s frontend.
|
47
58
|
#
|
@@ -497,6 +497,7 @@ de:
|
|
497
497
|
successfully_added_element: "Element wurde hinzugefügt."
|
498
498
|
successfully_saved_element_position: "Die Elementposition wurde gespeichert."
|
499
499
|
swap_image: "Bild tauschen"
|
500
|
+
insert_image: "Bild einfügen"
|
500
501
|
swfupload:
|
501
502
|
cancel_uploads: "Hochladen abbrechen"
|
502
503
|
title: "Titel"
|
@@ -339,6 +339,7 @@ en:
|
|
339
339
|
successfully_added_element: "Succesfully added new element."
|
340
340
|
successfully_saved_element_position: "Element position updated succesfully."
|
341
341
|
swap_image: "Change image"
|
342
|
+
insert_image: "Insert image"
|
342
343
|
swfupload:
|
343
344
|
cancel_uploads: "Cancel uploads"
|
344
345
|
title: "Title"
|
data/lib/alchemy/essence.rb
CHANGED
@@ -28,7 +28,7 @@ module Alchemy #:nodoc:
|
|
28
28
|
class_eval <<-EOV
|
29
29
|
attr_accessor :validation_errors
|
30
30
|
include Alchemy::Essence::InstanceMethods
|
31
|
-
stampable
|
31
|
+
stampable(:stamper_class_name => 'Alchemy::User')
|
32
32
|
validate :essence_validations, :on => :update
|
33
33
|
has_many :contents, :as => :essence
|
34
34
|
|
data/lib/alchemy/page_layout.rb
CHANGED
@@ -88,20 +88,14 @@ module Alchemy
|
|
88
88
|
end
|
89
89
|
|
90
90
|
# Reads the layout definitions from +config/alchemy/page_layouts.yml+.
|
91
|
-
# If this can not be found, it takes the default one from Alchemys standard set.
|
92
91
|
def self.read_layouts_file
|
93
92
|
if File.exists? "#{Rails.root}/config/alchemy/page_layouts.yml"
|
94
93
|
layouts = YAML.load_file "#{Rails.root}/config/alchemy/page_layouts.yml"
|
95
|
-
|
96
|
-
if !layouts
|
97
|
-
if File.exists? File.join(File.dirname(__FILE__), "../../config/alchemy/page_layouts.yml")
|
98
|
-
layouts = YAML.load_file File.join(File.dirname(__FILE__), "../../config/alchemy/page_layouts.yml")
|
99
|
-
end
|
100
|
-
end
|
101
|
-
if !layouts
|
94
|
+
else
|
102
95
|
raise LoadError, "Could not find page_layouts.yml file! Please run: rails generate alchemy:scaffold"
|
103
96
|
end
|
104
|
-
|
97
|
+
# Since YAML returns false for an empty file, we have to normalize it here.
|
98
|
+
layouts || []
|
105
99
|
end
|
106
100
|
|
107
101
|
end
|
data/lib/alchemy/resource.rb
CHANGED
@@ -3,11 +3,14 @@ require 'active_support/inflector'
|
|
3
3
|
module Alchemy
|
4
4
|
class Resource
|
5
5
|
|
6
|
-
|
6
|
+
attr_accessor :skip_attributes
|
7
|
+
|
8
|
+
DEFAULT_SKIPPED_ATTRIBUTES = %W[id updated_at created_at creator_id updater_id]
|
7
9
|
|
8
10
|
def initialize(controller_path, module_definition=nil)
|
9
11
|
@controller_path = controller_path
|
10
12
|
@module_definition = module_definition
|
13
|
+
self.skip_attributes = DEFAULT_SKIPPED_ATTRIBUTES
|
11
14
|
end
|
12
15
|
|
13
16
|
def model_array
|
@@ -42,10 +45,7 @@ module Alchemy
|
|
42
45
|
def attributes
|
43
46
|
#@_attributes ||=
|
44
47
|
self.model.columns.collect do |col|
|
45
|
-
|
46
|
-
unless skip_attributes.include?(col.name)
|
47
|
-
{:name => col.name, :type => col.type}
|
48
|
-
end
|
48
|
+
{:name => col.name, :type => col.type} unless self.skip_attributes.include?(col.name)
|
49
49
|
end.compact
|
50
50
|
end
|
51
51
|
|
data/lib/alchemy/version.rb
CHANGED
@@ -35,8 +35,8 @@ module Alchemy
|
|
35
35
|
directory "#{page_layouts_path}/", "#{Rails.root}/app/views/alchemy/page_layouts/"
|
36
36
|
else
|
37
37
|
copy_file "#{File.dirname(__FILE__)}/files/elements.yml", "#{Rails.root}/config/alchemy/elements.yml"
|
38
|
-
|
39
|
-
copy_file "#{File.dirname(__FILE__)}/files/pages.html.erb", "#{Rails.root}/app/views/layouts/
|
38
|
+
template "page_layouts.yml.tt", "#{Rails.root}/config/alchemy/page_layouts.yml"
|
39
|
+
copy_file "#{File.dirname(__FILE__)}/files/pages.html.erb", "#{Rails.root}/app/views/layouts/application.html.erb"
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
data/spec/config_spec.rb
CHANGED
data/spec/dummy/db/schema.rb
CHANGED
@@ -273,7 +273,7 @@ ActiveRecord::Schema.define(:version => 20120302040145) do
|
|
273
273
|
t.datetime "starts_at"
|
274
274
|
t.datetime "ends_at"
|
275
275
|
t.text "description"
|
276
|
-
t.decimal "entrance_fee"
|
276
|
+
t.decimal "entrance_fee", :precision => 6, :scale => 2
|
277
277
|
t.boolean "published"
|
278
278
|
t.datetime "created_at", :null => false
|
279
279
|
t.datetime "updated_at", :null => false
|
@@ -3,18 +3,19 @@ require 'spec_helper'
|
|
3
3
|
describe Alchemy::Admin::ContentsHelper do
|
4
4
|
|
5
5
|
before(:each) do
|
6
|
-
@element = FactoryGirl.create(:element)
|
6
|
+
@element = FactoryGirl.create(:element, :name => 'article')
|
7
7
|
end
|
8
8
|
|
9
9
|
it "should render a dom id" do
|
10
|
-
helper.content_dom_id(@element.
|
10
|
+
helper.content_dom_id(@element.content_by_type('EssenceText')).should match(/essence_text_\d{1,}/)
|
11
11
|
end
|
12
12
|
|
13
13
|
it "should render the content name" do
|
14
|
-
helper.render_content_name(@element.
|
14
|
+
helper.render_content_name(@element.content_by_type('EssenceText')).should == "Intro"
|
15
15
|
end
|
16
16
|
|
17
17
|
it "should render a link to add new content to element" do
|
18
|
+
helper.stub!(:render_icon).and_return('')
|
18
19
|
helper.render_new_content_link(@element).should match(/Alchemy.openWindow.+\/admin\/elements\/#{@element.id}\/contents\/new/m)
|
19
20
|
end
|
20
21
|
|
@@ -3,25 +3,21 @@ require 'spec_helper'
|
|
3
3
|
describe Alchemy::Admin::EssencesHelper do
|
4
4
|
|
5
5
|
before(:each) do
|
6
|
-
@element = FactoryGirl.create(:element)
|
6
|
+
@element = FactoryGirl.create(:element, :name => 'article')
|
7
7
|
@element.content_by_name('intro').essence.update_attributes(:body => 'hello!')
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should render an essence editor" do
|
11
11
|
content = @element.content_by_name('intro')
|
12
|
-
render_essence_editor(content).should match(/input.+type="text".+value="hello!/)
|
12
|
+
helper.render_essence_editor(content).should match(/input.+type="text".+value="hello!/)
|
13
13
|
end
|
14
14
|
|
15
15
|
it "should render an essence editor by name" do
|
16
|
-
render_essence_editor_by_name(@element, 'intro').should match(/input.+type="text".+value="hello!/)
|
16
|
+
helper.render_essence_editor_by_name(@element, 'intro').should match(/input.+type="text".+value="hello!/)
|
17
17
|
end
|
18
18
|
|
19
19
|
it "should render an essence editor by type" do
|
20
|
-
render_essence_editor_by_type(@element, 'EssenceText').should match(/input.+type="text".+value="hello!/)
|
21
|
-
end
|
22
|
-
|
23
|
-
it "should render an essence editor by position" do
|
24
|
-
render_essence_editor_by_position(@element, 1).should match(/input.+type="text".+value="hello!/)
|
20
|
+
helper.render_essence_editor_by_type(@element, 'EssenceText').should match(/input.+type="text".+value="hello!/)
|
25
21
|
end
|
26
22
|
|
27
23
|
end
|
@@ -25,8 +25,4 @@ describe Alchemy::EssencesHelper do
|
|
25
25
|
render_essence_view_by_type(@element, 'EssenceText').should match(/hello!/)
|
26
26
|
end
|
27
27
|
|
28
|
-
it "should render an essence view by position" do
|
29
|
-
render_essence_view_by_position(@element, 1).should match(/hello!/)
|
30
|
-
end
|
31
|
-
|
32
28
|
end
|
@@ -28,7 +28,7 @@ describe Alchemy::PagesHelper do
|
|
28
28
|
end
|
29
29
|
|
30
30
|
it "should render the page navigation" do
|
31
|
-
helper.render_navigation.should have_selector("ul.
|
31
|
+
helper.render_navigation.should have_selector("ul.navigation.level_1 li.#{@page.urlname}.active.last a.active[href=\"/alchemy/#{@page.urlname}\"]")
|
32
32
|
end
|
33
33
|
|
34
34
|
context "with enabled url nesting" do
|
@@ -47,6 +47,15 @@ describe Alchemy::PagesHelper do
|
|
47
47
|
|
48
48
|
end
|
49
49
|
|
50
|
+
context "with id and class in the html options" do
|
51
|
+
it "should append id to the generated ul tag" do
|
52
|
+
helper.render_navigation({}, {:id => 'foobar_id'}).should have_selector("ul[id='foobar_id']")
|
53
|
+
end
|
54
|
+
it "should replace the default css class from the generated ul tag" do
|
55
|
+
helper.render_navigation({}, {:class => 'foobar_class'}).should have_selector("ul[class='foobar_class']")
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
50
59
|
end
|
51
60
|
|
52
61
|
describe '#render_subnavigation' do
|
@@ -1,30 +1,34 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# Skipping on Travis-CI, because capybara-webkit does not install on travis.
|
2
|
+
unless ENV["CI"]
|
3
|
+
require 'spec_helper'
|
3
4
|
|
4
|
-
describe "Modules" do
|
5
|
+
describe "Modules" do
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
:
|
18
|
-
:
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
7
|
+
context "A custom module with a main-apps controller" do
|
8
|
+
|
9
|
+
before(:each) do
|
10
|
+
load_authorization_rules
|
11
|
+
create_admin_user
|
12
|
+
login_into_alchemy
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should have a button in main_navigation, pointing to the configured controller" do
|
16
|
+
Alchemy::Modules.register_module(
|
17
|
+
{
|
18
|
+
:name => 'events',
|
19
|
+
:navigation => {
|
20
|
+
:icon => 'icon events',
|
21
|
+
:name => 'Events',
|
22
|
+
:controller => '/admin/events',
|
23
|
+
:action => 'index'
|
24
|
+
}
|
25
|
+
})
|
23
26
|
visit '/alchemy/admin'
|
24
27
|
click_on 'Events'
|
25
28
|
page.should_not have_content('Upps!')
|
26
29
|
end
|
30
|
+
|
27
31
|
end
|
28
|
-
end
|
29
32
|
|
33
|
+
end
|
30
34
|
end
|
@@ -5,26 +5,34 @@ unless ENV["CI"]
|
|
5
5
|
|
6
6
|
describe Alchemy::Admin::PagesController, :js => true do
|
7
7
|
|
8
|
+
before(:all) do
|
9
|
+
create_admin_user
|
10
|
+
end
|
11
|
+
|
12
|
+
before(:each) do
|
13
|
+
login_into_alchemy
|
14
|
+
end
|
15
|
+
|
8
16
|
describe "language tree switching" do
|
9
17
|
|
18
|
+
before(:all) do
|
19
|
+
@language = FactoryGirl.create(:language)
|
20
|
+
end
|
21
|
+
|
10
22
|
context "in a multilangual environment" do
|
11
23
|
|
12
24
|
before(:all) do
|
13
|
-
FactoryGirl.build(:admin_user).save_without_session_maintenance
|
14
|
-
@language = FactoryGirl.create(:language)
|
15
25
|
@german_root = FactoryGirl.create(:language_root_page, :language => Alchemy::Language.get_default, :name => 'Deutsch')
|
16
26
|
@klingonian_root = FactoryGirl.create(:language_root_page, :name => 'Klingonian')
|
17
27
|
end
|
18
28
|
|
19
29
|
it "one should be able to switch the language tree" do
|
20
|
-
login_into_alchemy
|
21
30
|
visit('/alchemy/admin/pages')
|
22
31
|
page.select 'Klingonian', :from => 'language'
|
23
32
|
page.should have_selector('#sitemap .sitemap_pagename_link', :text => 'Klingonian')
|
24
33
|
end
|
25
34
|
|
26
35
|
after(:all) {
|
27
|
-
@language.destroy
|
28
36
|
@klingonian_root.delete
|
29
37
|
@german_root.delete
|
30
38
|
}
|
@@ -33,34 +41,23 @@ unless ENV["CI"]
|
|
33
41
|
|
34
42
|
context "with no language root page" do
|
35
43
|
|
36
|
-
before(:all) do
|
37
|
-
FactoryGirl.build(:admin_user).save_without_session_maintenance
|
38
|
-
@language = FactoryGirl.create(:language)
|
39
|
-
end
|
40
|
-
|
41
44
|
it "it should display the form for creating language root" do
|
42
|
-
login_into_alchemy
|
43
45
|
visit('/alchemy/admin/pages')
|
44
46
|
page.select 'Klingonian', :from => 'language'
|
45
47
|
page.should have_content('This language tree does not exist')
|
46
48
|
end
|
47
49
|
|
48
|
-
after(:all) {
|
49
|
-
@language.destroy
|
50
|
-
}
|
51
|
-
|
52
50
|
end
|
53
51
|
|
52
|
+
after(:all) {
|
53
|
+
@language.destroy
|
54
|
+
}
|
55
|
+
|
54
56
|
end
|
55
57
|
|
56
58
|
describe "flush complete page cache" do
|
57
59
|
|
58
|
-
before(:all) do
|
59
|
-
FactoryGirl.build(:admin_user).save_without_session_maintenance
|
60
|
-
end
|
61
|
-
|
62
60
|
it "should remove the cache of all pages" do
|
63
|
-
login_into_alchemy
|
64
61
|
visit '/alchemy/admin/pages'
|
65
62
|
click_link 'Flush page cache'
|
66
63
|
page.should have_content('Page cache flushed')
|
@@ -1,100 +1,94 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
describe "Resources" do
|
5
|
-
|
6
|
-
before(:all) do
|
7
|
-
Event.create!(:name => 'My Event',
|
8
|
-
:hidden_name => 'not shown',
|
9
|
-
:starts_at => DateTime.new(2012, 03, 02, 8, 15),
|
10
|
-
:ends_at => DateTime.new(2012, 03, 02, 19, 30),
|
11
|
-
:description => "something\nfancy",
|
12
|
-
:published => false,
|
13
|
-
:entrance_fee => 12.32)
|
14
|
-
end
|
1
|
+
# Skipping on Travis-CI, because capybara-webkit does not install on travis.
|
2
|
+
unless ENV["CI"]
|
3
|
+
require 'spec_helper'
|
15
4
|
|
16
|
-
describe "
|
5
|
+
describe "Resources" do
|
17
6
|
|
18
|
-
|
19
|
-
|
20
|
-
|
7
|
+
before(:all) do
|
8
|
+
create_admin_user
|
9
|
+
load_authorization_rules
|
10
|
+
Event.create!(:name => 'My Event',
|
11
|
+
:hidden_name => 'not shown',
|
12
|
+
:starts_at => DateTime.new(2012, 03, 02, 8, 15),
|
13
|
+
:ends_at => DateTime.new(2012, 03, 02, 19, 30),
|
14
|
+
:description => "something\nfancy",
|
15
|
+
:published => false,
|
16
|
+
:entrance_fee => 12.32)
|
17
|
+
Event.create!(:name => 'My second Event',
|
18
|
+
:starts_at => DateTime.new(2012, 03, 02, 8, 15),
|
19
|
+
:ends_at => DateTime.new(2012, 03, 02, 19, 30),
|
20
|
+
:description => "something\nfancy",
|
21
|
+
:published => false,
|
22
|
+
:entrance_fee => 12.32)
|
21
23
|
end
|
22
24
|
|
23
|
-
|
24
|
-
|
25
|
+
before(:each) {
|
26
|
+
login_into_alchemy
|
27
|
+
}
|
28
|
+
|
29
|
+
describe "index view" do
|
30
|
+
|
31
|
+
it "should have a button for creating a new resource items" do
|
32
|
+
visit '/admin/events'
|
33
|
+
page.should have_selector('#toolbar div.button_with_label a.icon_button span.icon.create')
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should list existing items" do
|
25
37
|
visit '/admin/events'
|
26
38
|
page.should have_content("My Event")
|
27
39
|
page.should have_content("something fancy")
|
28
40
|
page.should have_content("12.32")
|
29
|
-
|
30
|
-
end
|
41
|
+
end
|
31
42
|
|
32
|
-
|
43
|
+
it "should list existing resource-items nicely formatted"
|
33
44
|
|
34
|
-
|
45
|
+
end
|
35
46
|
|
36
|
-
|
37
|
-
|
38
|
-
|
47
|
+
describe "form for creating and updating items" do
|
48
|
+
it "renders an input field according to the attribute's type"
|
49
|
+
end
|
39
50
|
|
40
|
-
|
51
|
+
describe "create resource item" do
|
41
52
|
|
42
|
-
|
43
|
-
|
44
|
-
without_access_control {
|
45
|
-
create_admin_user
|
46
|
-
login_with_admin_user
|
53
|
+
context "when form filled with valid data" do
|
54
|
+
it "lists the new item" do
|
47
55
|
visit '/admin/events/new'
|
48
56
|
fill_in 'event_name', :with => 'My second event'
|
49
57
|
fill_in 'event_starts_at', :with => DateTime.new(2012, 03, 03, 20, 00)
|
50
58
|
click_on 'Save'
|
51
59
|
page.should have_content "My second event"
|
52
60
|
page.should have_content "2012-03-03"
|
53
|
-
|
61
|
+
end
|
54
62
|
end
|
55
|
-
end
|
56
63
|
|
57
|
-
|
58
|
-
|
59
|
-
without_access_control {
|
60
|
-
create_admin_user
|
61
|
-
login_with_admin_user
|
64
|
+
context "when form filled with invalid data" do
|
65
|
+
it "shows the form again" do
|
62
66
|
visit '/admin/events/new'
|
63
67
|
fill_in 'event_name', :with => '' #invalid!
|
64
68
|
click_on 'Save'
|
65
69
|
page.should have_selector "input#event_name"
|
66
|
-
|
70
|
+
end
|
71
|
+
it "lists invalid fields"
|
67
72
|
end
|
68
|
-
it "lists invalid fields"
|
69
|
-
end
|
70
73
|
|
71
|
-
|
74
|
+
end
|
72
75
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
+
describe "updating an item" do
|
77
|
+
it "shows the updated value"
|
78
|
+
end
|
76
79
|
|
77
|
-
|
78
|
-
it "should'n be on the list anymore", :js => true do
|
79
|
-
pending "Needs js, but doesn't work, neither with selenium nor webkit.
|
80
|
-
When trying to create an user inside the 'without-access-control'-block
|
81
|
-
it's saved but not found anymore when trying to login"
|
80
|
+
describe "destroying an item" do
|
82
81
|
|
83
|
-
|
84
|
-
:starts_at => DateTime.new(2012, 03, 02, 8, 15),
|
85
|
-
:ends_at => DateTime.new(2012, 03, 02, 19, 30),
|
86
|
-
:description => "something\nfancy",
|
87
|
-
:published => false,
|
88
|
-
:entrance_fee => 12.32)
|
89
|
-
|
90
|
-
without_access_control {
|
91
|
-
create_admin_user
|
82
|
+
it "should'n be on the list anymore", :js => true do
|
92
83
|
visit '/admin/events'
|
93
|
-
|
84
|
+
within('tr', :text => 'My second Event') do
|
85
|
+
click_on 'Delete'
|
86
|
+
end
|
87
|
+
click_on 'Yes'
|
94
88
|
page.should have_content "My Event"
|
95
89
|
page.should_not have_content "My second Event"
|
96
|
-
|
90
|
+
end
|
97
91
|
end
|
98
|
-
end
|
99
92
|
|
93
|
+
end
|
100
94
|
end
|