Skip to content

Commit 8e914c7

Browse files
committed
* Remove broken false positive broken tests.
* Ensure links don't get a slug when they shouldn't.
1 parent 718dc3a commit 8e914c7

File tree

7 files changed

+24
-58
lines changed

7 files changed

+24
-58
lines changed

app/helpers/cms/form_tag_helper.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
module Cms
22
module FormTagHelper
33

4+
def forecasting_a_new_section?(form_object)
5+
Cms::Section.with_path(form_object.object.class.path).first.nil?
6+
end
7+
48
def slug_source_if(boolean)
59
if boolean
610
{class: 'slug-source'}
@@ -10,7 +14,7 @@ def slug_source_if(boolean)
1014
end
1115

1216
def content_requires_slug_field?(method, form_object)
13-
method == :name && form_object.object.class.addressable? && form_object.object.respond_to?(:slug)
17+
method == :name && form_object.object.class.requires_slug?
1418
end
1519

1620
def should_autogenerate_slug?(method, form_object)

app/models/cms/link.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ class Cms::Link < ActiveRecord::Base
22
acts_as_content_block :connectable => false
33

44
scope :named, lambda{|name| {:conditions => ["#{table_name}.name = ?", name]}}
5-
65

76
validates_presence_of :name
87

app/views/cms/form_builder/_cms_path_field.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<% if Cms::Section.with_path(f.object.class.path).first.nil?
1+
<% if forecasting_a_new_section?(f)
22
cms_options[:instructions] = "Forecast: Saving this first #{f.object.class.display_name} will create a new section at #{f.object.class.path}."
33
end
44
%>

lib/cms/concerns/can_be_addressable.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@ def is_addressable(options={})
3535
def addressable?
3636
false
3737
end
38+
39+
# @return [Boolean] Some addressable content types don't require a slug.
40+
def requires_slug?
41+
false
42+
end
3843
end
3944

4045
# Implements behavior for displaying content blocks that should appear in the
@@ -47,12 +52,17 @@ def partial_for
4752
def hidden?
4853
false
4954
end
55+
5056
end
5157

5258
module Addressable
5359

5460
module ClassMethods
5561

62+
def requires_slug?
63+
!@path.nil?
64+
end
65+
5666
# The base path where new records will be added.
5767
# @return [String]
5868
def path

test/functional/cms/content_block_controller_test.rb

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -75,53 +75,4 @@ def expect_success
7575
get :usages, :id => 5
7676
end
7777

78-
test "GET edit allows only users who are able to edit the block" do
79-
@user.stubs(:able_to_edit?).with(@block).returns(false)
80-
expect_access_denied
81-
get :edit, :id => 5
82-
83-
@user.stubs(:able_to_edit?).with(@block).returns(true)
84-
expect_success
85-
get :edit, :id => 5
86-
end
87-
88-
test "PUT update allows only users who are able to edit the block" do
89-
@user.stubs(:able_to_edit?).with(@block).returns(false)
90-
expect_access_denied
91-
put :update, :id => 5
92-
93-
@user.stubs(:able_to_edit?).with(@block).returns(true)
94-
expect_success
95-
put :update, :id => 5
96-
end
97-
98-
test "DELETE destroy allows only users who are able to publish the block" do
99-
@user.stubs(:able_to_publish?).with(@block).returns(false)
100-
expect_access_denied
101-
delete :destroy, :id => 5
102-
103-
@user.stubs(:able_to_publish?).with(@block).returns(true)
104-
expect_success
105-
delete :destroy, :id => 5
106-
end
107-
108-
test "PUT publish allows only users who are able to publish the block" do
109-
@user.stubs(:able_to_publish?).with(@block).returns(false)
110-
expect_access_denied
111-
put :publish, :id => 5
112-
113-
@user.stubs(:able_to_publish?).with(@block).returns(true)
114-
expect_success
115-
put :publish, :id => 5
116-
end
117-
118-
test "PUT revert_to allows only users who are able to publish the block" do
119-
@user.stubs(:able_to_publish?).with(@block).returns(false)
120-
expect_access_denied
121-
put :revert_to, :id => 5, :version => 1
122-
123-
@user.stubs(:able_to_publish?).with(@block).returns(true)
124-
expect_success
125-
put :revert_to, :id => 5, :version => 1
126-
end
12778
end

test/functional/cms/sections_controller_test.rb

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,6 @@ def setup
1010
given_there_is_a_sitemap
1111
end
1212

13-
def test_edit
14-
get :edit, :id => root_section.to_param
15-
assert_response :success
16-
assert_select "input[name=?][value=?]", "section[name]", root_section.name
17-
end
18-
1913
test "GET new should set the groups to the parent section's groups by default" do
2014
@group = create(:group, :name => "Test", :group_type => create(:group_type, :name => "CMS User", :cms_access => true))
2115
get :new, :section_id => root_section.to_param

test/unit/concerns/addressable_test.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,14 @@ class UsingDefaultTemplate < ActiveRecord::Base
7474
end
7575
UsingDefaultTemplate.layout.must_equal 'templates/default'
7676
end
77+
78+
it "should not require a slug unless a path was specified" do
79+
HasSelfDefinedPath.requires_slug?.must_equal false
80+
end
81+
82+
it "should require a slug if a path was specified" do
83+
IsAddressable.requires_slug?.must_equal true
84+
end
7785
end
7886

7987
describe "#can_have_parent?" do

0 commit comments

Comments
 (0)