X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=test%2Funit%2Ffeed_item_test.rb;h=869bf9adf88ded48e7a84aba3a48dd415f6e511c;hb=437aa336c44c74a30aeea16a06743c32747ed661;hp=2078dc349a0c9c695ecf6bdb8037a57afab2ab60;hpb=97a0772b06264134cfe38e7494f9427efe0840a0;p=feedcatcher.git diff --git a/test/unit/feed_item_test.rb b/test/unit/feed_item_test.rb index 2078dc3..869bf9a 100644 --- a/test/unit/feed_item_test.rb +++ b/test/unit/feed_item_test.rb @@ -1,8 +1,59 @@ require 'test_helper' class FeedItemTest < ActiveSupport::TestCase - # Replace this with your real tests. - test "the truth" do - assert true + + fixtures :feed_items + + test "invalid with empty attributes" do + feed_item = FeedItem.new + assert !feed_item.valid? + assert feed_item.errors.invalid?(:feed_name) + assert feed_item.errors.invalid?(:title) + assert feed_item.errors.invalid?(:description) + end + + test "illegal feed names" do + bad_feed_names = ["name with spaces", "name%20with%20spaces", "action", "index", "show", "update"] + + bad_feed_names.each do |feed_name| + feed_item = FeedItem.new(:feed_name => feed_name, + :title => "Sample title", + :description => "Sample description") + assert !feed_item.valid? + assert_equal "is an invalid feed name", feed_item.errors.on(:feed_name) + end + end + + test "legal feed names" do + bad_feed_names = %w{ feed1 afeed a_feed a-feed a_long_feed_name } + + bad_feed_names.each do |feed_name| + feed_item = FeedItem.new(:feed_name => feed_name, + :title => "Sample title", + :description => "Sample description") + assert feed_item.valid? + end + end + + test "duplicate descriptions" do + feed_item = FeedItem.new(:feed_name => 'feed_one', + :title => 'feed one item four', + :description => 'feed one item one') + assert feed_item.valid? + assert feed_item.save + end + + test "duplicate titles in one feed" do + feed_item = FeedItem.new(:feed_name => 'feed_one', + :title => 'feed one item one', + :description => 'new feed item one') + assert !feed_item.valid? + end + + test "duplicate titles in different feeds" do + feed_item = FeedItem.new(:feed_name => 'feed_two', + :title => 'feed one item one', + :description => 'new feed one item one') + assert feed_item.valid? end end