# # 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' require 'src/websites/bliptv' class BliptvTest < Test::Unit::TestCase def test_owns_bliptv_urls assert(Bliptv.owns_url?('http://www.blip.tv/file/2664572?utm_source=featured_ep&utm_medium=featured_ep')) assert(Bliptv.owns_url?('www.blip.tv/file/2664572?utm_source=featured_ep&utm_medium=featured_ep')) assert(Bliptv.owns_url?('http://www.blip.tv/file/2664626')) assert(Bliptv.owns_url?('http://www.blip.tv/file/2664626?utm_source=featured_ep&utm_medium=featured_ep')) assert(Bliptv.owns_url?('http://urbansustainableliv.blip.tv/file/1189454/')) assert(Bliptv.owns_url?('http://rosa-menkman.blip.tv/file/1947851/')) assert(Bliptv.owns_url?('rosa-menkman.blip.tv/file/1947851/')) assert(Bliptv.owns_url?('rosa-menkman.blip.tv/file/1947851/?utm_source=featured_ep&utm_medium=featured_ep')) assert(Bliptv.owns_url?('rosa-menkman.blip.tv/file/1947851?utm_source=featured_ep&utm_medium=featured_ep')) assert(Bliptv.owns_url?('http://www.blip.tv/file/2664626')) end def test_doesnt_own_redtube_urls assert(!Bliptv.owns_url?('http://www.redtube.com/6807')) assert(!Bliptv.owns_url?('www.redtube.com/6807')) assert(!Bliptv.owns_url?('http://redtube.com/6807')) assert(!Bliptv.owns_url?('redtube.com/6807')) end def test_doesnt_own_howcast_urls assert(!Bliptv.owns_url?('http://www.howcast.com/videos/6807-2twr')) assert(!Bliptv.owns_url?('www.howcast.com/videos/6807-2dgfdg')) assert(!Bliptv.owns_url?('http://howcast.com/videos/6807-cse')) assert(!Bliptv.owns_url?('howcast.com/videos/6807-asdgasd')) end def test_doesnt_own_misc_urls assert(!Bliptv.owns_url?('http://www.bliptv.com/123456')) end def test_parse_flv_video_url # Here we're trying to parse the video URL out of some standard # blip.tv pages, where the video playing is in FLV format. In both # of these cases, though, we want to parse the source (MOV/WMV) # video URL. btv = Bliptv.new(nil) page_data = nil File.open('test/fixtures/bliptv/1752651.htm') do |f| page_data = f.read end test_result = btv.send('parse_video_url', page_data) assert_equal('http://blip.tv/file/get/Esequeira82-AdventuresInEgypt567.wmv', test_result) # Second Fixture File.open('test/fixtures/bliptv/923819.htm') do |f| page_data = f.read end test_result = btv.send('parse_video_url', page_data) assert_equal('http://blip.tv/file/get/Kantel-SadSong186.mov', test_result) end def test_parse_mov_video_url # These fixtures are saved from pages where the high-quality MOV # format was already selected. btv = Bliptv.new(nil) page_data = nil File.open('test/fixtures/bliptv/923682-mov.htm') do |f| page_data = f.read end test_result = btv.send('parse_video_url', page_data) assert_equal('http://blip.tv/file/get/Kantel-UbiUndPythonDemo816.mov', test_result) # Second Fixture File.open('test/fixtures/bliptv/923819-mov.htm') do |f| page_data = f.read end test_result = btv.send('parse_video_url', page_data) assert_equal('http://blip.tv/file/get/Kantel-SadSong186.mov', test_result) end def test_parse_mp4_video_url # And why not check one of the MP4 pages, too? btv = Bliptv.new(nil) page_data = nil File.open('test/fixtures/bliptv/923682-mp4.htm') do |f| page_data = f.read end test_result = btv.send('parse_video_url', page_data) assert_equal('http://blip.tv/file/get/Kantel-UbiUndPythonDemo816.mov', test_result) end def test_parse_default_video_url # Check one of the pages without alternatives. btv = Bliptv.new(nil) page_data = nil File.open('test/fixtures/bliptv/923682-no_alternatives.htm') do |f| page_data = f.read end test_result = btv.send('parse_video_url', page_data) assert_equal('http://blip.tv/file/get/Kantel-UbiUndPythonDemo816.flv', test_result) end def test_parse_ogg_video_url # Make sure the OGG/Vorbis parsing works. btv = Bliptv.new(nil) page_data = nil File.open('test/fixtures/bliptv/2788616.htm') do |f| page_data = f.read end test_result = btv.send('parse_video_url', page_data) assert_equal('http://blip.tv/file/get/Fosslc-StateOfPostGIS596.ogg', test_result) end end