X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=test%2Fyoutube_test.rb;h=233f31bafadd7e9d71918a94ac70f0547c457589;hb=882367e0a63e54d9f5694db038603bc116f1b721;hp=cbc03755d8ca2bd40849de05b14fd7ee3dbaf119;hpb=83e06f83d8274cb32a406739839d56e759664b09;p=dead%2Fwhatever-dl.git diff --git a/test/youtube_test.rb b/test/youtube_test.rb index cbc0375..233f31b 100644 --- a/test/youtube_test.rb +++ b/test/youtube_test.rb @@ -33,6 +33,9 @@ class YoutubeTest < Test::Unit::TestCase 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 @@ -60,35 +63,61 @@ class YoutubeTest < Test::Unit::TestCase end - def test_parse_t_parameter + 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 ] - File.open('test/fixtures/youtube/SudixyugiX4.html') do |f| + # 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_available_formats_from_url + # Tests a different regex than the other available formats test. + yt = Youtube.new(nil) + + page_data = nil + + File.open('test/fixtures/youtube/cpU27Xp8zdM.html') do |f| page_data = f.read end - expected_result = 'OEgsToPDskLQUAntWWpzhEMhBMlgqHdo' - actual_result = yt.send('parse_t_parameter', page_data) - assert_equal(expected_result, actual_result) + actual_formats = yt.send('get_available_formats', page_data) + expected_formats = [ 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_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. + + 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/K9iDMcmm0tE.html') do |f| + + File.open('test/fixtures/youtube/BUer8Dv2HW8.html') do |f| page_data = f.read end - expected_result = 'O_EgsToPDskJsXVvAXpAct1zug-lBJBz' - actual_result = yt.send('parse_t_parameter', page_data) + 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