Updated README.rdoc again
[feedcatcher.git] / test / unit / feed_item_test.rb
1 require 'test_helper'
2
3 class FeedItemTest < ActiveSupport::TestCase
4
5 fixtures :feed_items
6
7 test "invalid with empty attributes" do
8 feed_item = FeedItem.new
9 assert !feed_item.valid?
10 assert feed_item.errors.invalid?(:feed_name)
11 assert feed_item.errors.invalid?(:title)
12 assert feed_item.errors.invalid?(:description)
13 end
14
15 test "illegal feed names" do
16 bad_feed_names = ["name with spaces", "name%20with%20spaces", "action", "index", "show", "update"]
17
18 bad_feed_names.each do |feed_name|
19 feed_item = FeedItem.new(:feed_name => feed_name,
20 :title => "Sample title",
21 :description => "Sample description")
22 assert !feed_item.valid?
23 assert_equal "is an invalid feed name", feed_item.errors.on(:feed_name)
24 end
25 end
26
27 test "legal feed names" do
28 bad_feed_names = %w{ feed1 afeed a_feed a-feed a_long_feed_name }
29
30 bad_feed_names.each do |feed_name|
31 feed_item = FeedItem.new(:feed_name => feed_name,
32 :title => "Sample title",
33 :description => "Sample description")
34 assert feed_item.valid?
35 end
36 end
37
38 test "duplicate descriptions" do
39 feed_item = FeedItem.new(:feed_name => 'feed_one',
40 :title => 'feed one item four',
41 :description => 'feed one item one')
42 assert feed_item.valid?
43 assert feed_item.save
44 end
45
46 test "duplicate titles in one feed" do
47 feed_item = FeedItem.new(:feed_name => 'feed_one',
48 :title => 'feed one item one',
49 :description => 'new feed item one')
50 assert !feed_item.valid?
51 end
52
53 test "duplicate titles in different feeds" do
54 feed_item = FeedItem.new(:feed_name => 'feed_two',
55 :title => 'feed one item one',
56 :description => 'new feed one item one')
57 assert feed_item.valid?
58 end
59 end