Sha256: 16a22fc909fe467ddacf97a1015b9a08fc77c92f6eb08c0fcd5ab243a0840f79

Contents?: true

Size: 1.61 KB

Versions: 5

Compression:

Stored size: 1.61 KB

Contents

require 'spec_helper'

describe VideoInfo do

  describe "#initialize" do
    let(:url) { 'url' }
    let(:options) { { foo: :bar } }
    let(:provider) { double('provider', provider: 'Provider') }

    it "uses the first usable provider" do
      VideoInfo::Providers::Vimeo.stub(:usable?) { false }
      VideoInfo::Providers::Vkontakte.stub(:usable?) { false }
      VideoInfo::Providers::Youtube.stub(:usable?) { true }
      VideoInfo::Providers::Youtube.stub(:new) { provider }

      expect(VideoInfo.new(url, options).provider).to eq 'Provider'
    end

    it "raise when no providers are usable" do
      VideoInfo::Providers::Vimeo.stub(:usable?) { false }
      VideoInfo::Providers::Vkontakte.stub(:usable?) { false }
      VideoInfo::Providers::Youtube.stub(:usable?) { false }

      expect { VideoInfo.new(url, options) }.to raise_error(VideoInfo::UrlError)
    end
  end

  describe ".usable?" do
    let(:url) { 'url' }
    let(:provider) { double('provider', new: true) }

    it "returns true when a provider is usable" do
      VideoInfo::Providers::Vimeo.stub(:usable?) { false }
      VideoInfo::Providers::Vkontakte.stub(:usable?) { false }
      VideoInfo::Providers::Youtube.stub(:usable?) { true }
      VideoInfo::Providers::Youtube.stub(:new) { true }

      expect(VideoInfo.usable?(url)).to be_true
    end

    it "returns false when no providers are usable" do
      VideoInfo::Providers::Vimeo.stub(:usable?) { false }
      VideoInfo::Providers::Vkontakte.stub(:usable?) { false }
      VideoInfo::Providers::Youtube.stub(:usable?) { false }

      expect(VideoInfo.usable?(url)).to be_false
    end
  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
video_info-2.1.1 spec/lib/video_info_spec.rb
video_info-2.1.0 spec/lib/video_info_spec.rb
video_info-2.0.2 spec/lib/video_info_spec.rb
video_info-2.0.1 spec/lib/video_info_spec.rb
video_info-2.0.0 spec/lib/video_info_spec.rb