-# Tests common to all websites.
+#
+# Copyright Michael Orlitzky
+#
+# http://michael.orlitzky.com/
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# http://www.fsf.org/licensing/licenses/gpl.html
+#
+
require 'test/unit'
+# Tests common to all websites.
+
# All of the website classes are located in one
# directory, so we can 'require' them automatically.
Dir.glob('src/websites/*.rb').each do |r|
class WebsiteTest < Test::Unit::TestCase
- def test_doesnt_own_misc_urls
- Website.subclasses.each do |w|
- assert(!w.owns_url?('6807'))
- assert(!w.owns_url?('www'))
- assert(!w.owns_url?('http'))
+ def test_nobody_owns_misc_urls
+ assert_nil(Website.create('6807'))
+ assert_nil(Website.create('www'))
+ assert_nil(Website.create('http'))
+ end
+
+
+ def test_owns_url_must_be_implemented
+ assert_raise NotImplementedError do
+ Website.owns_url?('http://www.example.com/')
+ end
+ end
+
+
+ def test_get_video_url_must_be_implemented
+ w = Website.new(nil)
+ assert_raise NotImplementedError do
+ w.get_video_url()
end
end
+
+ def test_youtube_url_returns_youtube_instance
+ yt = Website.create('http://www.youtube.com/watch?v=83-hlYMH1XE&feature=dir')
+ assert_instance_of(Youtube, yt)
+ end
+
end