X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=test%2Fyoutube_test.rb;h=ab92f2d115123e6f5e40576ce8a034436012b9fe;hb=a557fae384ed2c8f8782ed09e5428e2cf701acf6;hp=08e8030e8b8686a5898ce735f5d6d50c6b3e1530;hpb=af614c64b3d5998471af5e54b3d8f36d3e00cc63;p=dead%2Fwhatever-dl.git diff --git a/test/youtube_test.rb b/test/youtube_test.rb index 08e8030..ab92f2d 100644 --- a/test/youtube_test.rb +++ b/test/youtube_test.rb @@ -28,6 +28,14 @@ class YoutubeTest < Test::Unit::TestCase assert(Youtube.owns_url?('http://www.youtube.com/v/SudixyugiX4')) assert(Youtube.owns_url?('http://www.youtube.com/v/SudixyugiX4&hl=en')) assert(Youtube.owns_url?('http://youtube.com/v/SudixyugiX4&hl=en')) + assert(Youtube.owns_url?('http://www.youtube.com/watch?v=K9iDMcmm0tE')) + assert(Youtube.owns_url?('http://www.youtube.com/watch?v=K9iDMcmm0tE#')) + assert(Youtube.owns_url?('http://www.youtube.com/v/K9iDMcmm0tE')) + assert(Youtube.owns_url?('http://www.youtube.com/watch?v=83-hlYMH1XE')) + assert(Youtube.owns_url?('http://www.youtube.com/watch?v=83-hlYMH1XE&feature=dir')) + assert(Youtube.owns_url?('http://in.youtube.com/watch?v=VcydqSpYN00&feature=channel_page')) + assert(Youtube.owns_url?('http://uk.youtube.com/watch?v=LN4Ov6ZLcrI')) + assert(Youtube.owns_url?('http://www.youtube.com/meetlocalbiz#p/u/0/rJVWV4aA6Jk')) end @@ -40,15 +48,23 @@ class YoutubeTest < Test::Unit::TestCase def test_parse_video_id - yt = Youtube.new() + yt = Youtube.new('http://www.youtube.com/watch?v=SudixyugiX4') expected_result = 'SudixyugiX4' - actual_result = yt.send('parse_video_id', 'http://www.youtube.com/watch?v=SudixyugiX4') + actual_result = yt.send('parse_video_id') assert_equal(expected_result, actual_result) end - + + def test_parse_video_id_again + yt = Youtube.new('http://www.youtube.com/watch?v=K9iDMcmm0tE') + expected_result = 'K9iDMcmm0tE' + actual_result = yt.send('parse_video_id') + assert_equal(expected_result, actual_result) + end + + def test_parse_t_parameter - yt = Youtube.new() + yt = Youtube.new(nil) page_data = nil @@ -60,5 +76,96 @@ class YoutubeTest < Test::Unit::TestCase actual_result = yt.send('parse_t_parameter', page_data) assert_equal(expected_result, actual_result) end + + + def test_parse_t_parameter_again + # This was failing once because my regex missed a hyphen. + # I modified the regex to match anything between the pair + # of quotes, so it should now catch the hyphen and underscore. + yt = Youtube.new(nil) + + page_data = nil + File.open('test/fixtures/youtube/K9iDMcmm0tE.html') do |f| + page_data = f.read + end + + expected_result = 'O_EgsToPDskJsXVvAXpAct1zug-lBJBz' + actual_result = yt.send('parse_t_parameter', page_data) + assert_equal(expected_result, actual_result) + end + + + def test_get_available_formats + # Make sure that we can parse the available formats from a page. + yt = Youtube.new(nil) + + page_data = nil + + File.open('test/fixtures/youtube/BUer8Dv2HW8.html') do |f| + page_data = f.read + end + + actual_formats = yt.send('get_available_formats', page_data) + expected_formats = [ 37, 22, 35, 18, 34, 5 ] + + # Make sure that all of the elements of the "expected" set are in + # the "actual" set and vice-versa. + assert_equal([], expected_formats - actual_formats) + assert_equal([], actual_formats - expected_formats) + end + + + def test_get_desired_format + # The get_desired_format() method should choose the best of the + # available formats. + yt = Youtube.new(nil) + + page_data = nil + + File.open('test/fixtures/youtube/BUer8Dv2HW8.html') do |f| + page_data = f.read + end + + available_formats = yt.send('get_available_formats', page_data) + actual_result = yt.send('get_desired_format', available_formats) + expected_result = 37 + + assert_equal(expected_result, actual_result) + end + + + def test_get_video_filename + yt = Youtube.new('http://www.youtube.com/watch?v=SudixyugiX4') + expected_result = 'SudixyugiX4.flv' + actual_result = yt.get_video_filename() + assert_equal(expected_result, actual_result) + end + + + def test_get_video_filename_again + yt = Youtube.new('http://www.youtube.com/watch?v=K9iDMcmm0tE') + expected_result = 'K9iDMcmm0tE.flv' + actual_result = yt.get_video_filename() + assert_equal(expected_result, actual_result) + end + + + def test_get_troublesome_video_filename_first_form + # This non-alphanumeric video id was causing + # get_video_filename to barf. + yt = Youtube.new('http://www.youtube.com/watch?v=83-hlYMH1XE&feature=dir') + expected_result = '83-hlYMH1XE.flv' + actual_result = yt.get_video_filename() + assert_equal(expected_result, actual_result) + end + + + def test_get_troublesome_video_filename_second_form + yt = Youtube.new('http://www.youtube.com/v/83-hlYMH1XE&feature=dir') + expected_result = '83-hlYMH1XE.flv' + actual_result = yt.get_video_filename() + assert_equal(expected_result, actual_result) + end + end