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
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