diff --git a/app/controllers/my_profile/cms_controller.rb b/app/controllers/my_profile/cms_controller.rb index 8f66936..39fdabf 100644 --- a/app/controllers/my_profile/cms_controller.rb +++ b/app/controllers/my_profile/cms_controller.rb @@ -15,6 +15,7 @@ class CmsController < MyProfileController TextileArticle, RssFeed, UploadedFile, + Event, ] def view diff --git a/app/models/event.rb b/app/models/event.rb new file mode 100644 index 0000000..896e6b8 --- /dev/null +++ b/app/models/event.rb @@ -0,0 +1,20 @@ +class Event < Article + + def self.description + _('A calendar event') + end + + def self.short_description + _('Event') + end + + acts_as_having_settings :field => :body + + settings_items :description, :type => :string + settings_items :url, :type => :string + + settings_items :start_date, :type => :date + settings_items :end_date, :type => :date + + validates_presence_of :title, :start_date +end diff --git a/app/views/cms/_event.rhtml b/app/views/cms/_event.rhtml new file mode 100644 index 0000000..47109b9 --- /dev/null +++ b/app/views/cms/_event.rhtml @@ -0,0 +1,11 @@ + +<%# TODO add Textile help here %> +<%= render :file => 'shared/tiny_mce' %> + +<%= f.text_field('name', :size => '64') %> + +<%= labelled_form_field(_('Description:'), text_area(:article, :description, :cols => 64)) %> + +<%= labelled_form_field(_('Start date'), date_select(:article, :start_date)) %> + +<%= labelled_form_field(_('End date'), date_select(:article, :end_date)) %> diff --git a/test/functional/favorite_enterprises_controller_test.rb b/test/functional/favorite_enterprises_controller_test.rb index 076af46..be7a76b 100644 --- a/test/functional/favorite_enterprises_controller_test.rb +++ b/test/functional/favorite_enterprises_controller_test.rb @@ -47,6 +47,8 @@ class FavoriteEnterprisesControllerTest < Test::Unit::TestCase assert_difference profile.favorite_enterprises, :count do post :add, :id => favorite_enterprise.id, :confirmation => '1' assert_response :redirect + + profile.favorite_enterprises.reload end end @@ -65,6 +67,8 @@ class FavoriteEnterprisesControllerTest < Test::Unit::TestCase assert_difference profile.favorite_enterprises, :count, -1 do post :remove, :id => favorite_enterprise.id, :confirmation => '1' assert_redirected_to :action => 'index' + + profile.favorite_enterprises.reload end end diff --git a/test/unit/event_test.rb b/test/unit/event_test.rb new file mode 100644 index 0000000..89f4ef2 --- /dev/null +++ b/test/unit/event_test.rb @@ -0,0 +1,59 @@ +require File.dirname(__FILE__) + '/../test_helper' + +class EventTest < ActiveSupport::TestCase + + should 'be an article' do + assert_kind_of Article, Event.new + end + + should 'provide description' do + assert_kind_of String, Event.description + end + + should 'provide short description' do + assert_kind_of String, Event.short_description + end + + should 'have a description' do + e = Event.new(:description => 'some useful description') + assert_equal 'some useful description', e.description + end + + should 'have a url' do + e = Event.new(:url => 'http://some.nice.site/') + assert_equal 'http://some.nice.site/', e.url + end + + should 'have a start date' do + e = Event.new + e.start_date = Date.today + assert_kind_of Date, e.start_date + end + + should 'require start date' do + e = Event.new + e.valid? + assert e.errors.invalid?(:start_date) + e.start_date = Date.today + e.valid? + assert !e.errors.invalid?(:start_date) + end + + should 'have a end date' do + e = Event.new + e.end_date = Date.today + assert_kind_of Date, e.end_date + end + + should 'be indexed by title' do + profile = create_user('testuser').person + e = Event.create!(:name => 'my surprisingly nice event', :start_date => Date.new(2008, 06, 06), :profile => profile) + assert_includes Event.find_by_contents('surprisingly'), e + end + + should 'be indexed by description' do + profile = create_user('testuser').person + e = Event.create!(:name => 'bli', :start_date => Date.new(2008, 06, 06), :profile => profile, :description => 'my surprisingly long description about my freaking nice event') + assert_includes Event.find_by_contents('surprisingly'), e + end +end -- libgit2 0.21.2