require 'spec_helper' describe VideoPlayer do describe "existing API" do let(:parser) { VideoPlayer::Parser.new('https://www.youtube.com/watch?v=12345678') } it "passes the player method to an instance of VideoPlayer::Parser" do expect(VideoPlayer::Parser).to receive(:new).once.and_return(VideoPlayer::Parser.new('url')) VideoPlayer::player('https://www.youtube.com/watch?v=12345678') end end describe "selecting video embed method" do let(:width) { %|width="#{VideoPlayer::Parser::DefaultWidth}"| } let(:height) { %|height="#{VideoPlayer::Parser::DefaultHeight}"| } let(:attributes) { %|frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen| } context "youtube links" do let(:youtube_urls) { [ 'http://youtube.com/watch?v=abcde12345', 'http://youtu.be/abcde12345', 'http://youtube.com/watch?feature=player_embedded&v=abcde12345', 'https://youtube.com/watch?v=abcde12345', 'https://youtu.be/abcde12345', 'https://youtube.com/watch?feature=player_embedded&v=abcde12345' ]} it "uses the youtube embed method" do youtube_urls.each do |url| parser = VideoPlayer::Parser.new(url) expect(parser).to receive(:youtube_embed).once parser.embed_code end end it "returns a valid embed code" do src = "//www.youtube.com/embed/abcde12345?autoplay=0&rel=0" code = %|| url = 'https://youtube.com/watch?feature=player_embedded&v=abcde12345' expect(VideoPlayer.player(url, VideoPlayer::Parser::DefaultWidth, VideoPlayer::Parser::DefaultHeight, false)).to eq(code) end it "returns a valid autoplay embed code" do src = "//www.youtube.com/embed/abcde12345?autoplay=1&rel=0" code = %|| url = 'http://youtube.com/watch?feature=player_embedded&v=abcde12345' expect(VideoPlayer.player(url)).to eq(code) end end context "vimeo links" do let(:vimeo_urls) { [ 'http://vimeo.com/abcde12345', 'http://www.vimeo.com/abcde12345', 'https://vimeo.com/abcde12345', 'https://www.vimeo.com/abcde12345' ]} it "uses the youtube embed method" do vimeo_urls.each do |url| parser = VideoPlayer::Parser.new(url) expect(parser).to receive(:vimeo_embed).once parser.embed_code end end it "returns a valid embed code" do src = "//player.vimeo.com/video/12345678?autoplay=0" code = %|| url = 'http://www.vimeo.com/12345678?autoplay=0&loop=1&autopause=0' expect(VideoPlayer.player(url, VideoPlayer::Parser::DefaultWidth, VideoPlayer::Parser::DefaultHeight, false)).to eq(code) end it "returns a valid autoplay embed code" do src = "//player.vimeo.com/video/12345678?autoplay=1" code = %|| url = 'http://www.vimeo.com/12345678?autoplay=1&loop=1&autopause=0' expect(VideoPlayer.player(url)).to eq(code) end end context "izlesene links" do let(:izlesene_urls) { [ 'http://izlesene.com/video/abcde-abcde-abcde-abcde-abcde/12345678', 'http://www.izlesene.com/video/abcde-abcde-abcde-abcde-abcde/12345678' ]} it "uses the youtube embed method" do izlesene_urls.each do |url| parser = VideoPlayer::Parser.new(url) expect(parser).to receive(:izlesene_embed).once parser.embed_code end end it "returns a valid embed code" do src = "//www.izlesene.com/embedplayer/12345678/?autoplay=0&showrel=0&showinfo=0" code = %|| url = 'http://izlesene.com/video/abcde-abcde-abcde-abcde-abcde/12345678' expect(VideoPlayer.player(url, VideoPlayer::Parser::DefaultWidth, VideoPlayer::Parser::DefaultHeight, false)).to eq(code) end it "returns a valid autoplay embed code" do src = "//www.izlesene.com/embedplayer/12345678/?autoplay=1&showrel=0&showinfo=0" code = %|| url = 'http://izlesene.com/video/abcde-abcde-abcde-abcde-abcde/12345678' expect(VideoPlayer.player(url)).to eq(code) end end context "wistia links" do let(:wistia_urls) { [ 'https://company.wistia.com/medias/12345678' ]} it "uses the youtube embed method" do wistia_urls.each do |url| parser = VideoPlayer::Parser.new(url) expect(parser).to receive(:wistia_embed).once parser.embed_code end end it "returns a valid embed code" do src = "//fast.wistia.net/embed/iframe/12345678/?autoplay=0&showrel=0&showinfo=0" code = %|| url = 'https://company.wistia.com/medias/12345678' expect(VideoPlayer.player(url, VideoPlayer::Parser::DefaultWidth, VideoPlayer::Parser::DefaultHeight, false)).to eq(code) end it "returns a valid autoplay embed code" do src = "//fast.wistia.net/embed/iframe/12345678/?autoplay=1&showrel=0&showinfo=0" code = %|| url = 'https://company.wistia.com/medias/12345678' expect(VideoPlayer.player(url)).to eq(code) end end end end