Sha256: 016ba0a48e7a74c18dc452e50b33aa962cc1ec866e3329c62ed27ac41b40985f

Contents?: true

Size: 1.29 KB

Versions: 8

Compression:

Stored size: 1.29 KB

Contents

require 'spec_helper'

describe Prawn::Svg::UrlLoader do
  let(:loader) { Prawn::Svg::UrlLoader.new(:enable_cache => true, :enable_web => true) }

  describe "#initialize" do
    it "sets options" do
      expect(loader.enable_cache).to be true
      expect(loader.enable_web).to be true
    end
  end

  describe "#valid?" do
    it "knows what a valid URL looks like" do
      expect(loader.valid?("http://valid.example/url")).to be true
      expect(loader.valid?("not/a/valid/url")).to be false
    end

    it "doesn't accept schemes it doesn't like" do
      expect(loader.valid?("mail://valid.example/url")).to be false
    end
  end

  describe "#load" do
    let(:url) { "http://hello/there" }

    it "loads an HTTP URL and saves to the cache" do
      o = double(:read => "hello!")
      loader.should_receive(:open).with(url).and_return(o)
      
      expect(loader.load(url)).to eq "hello!"
      expect(loader.url_cache[url]).to eq "hello!"
    end

    it "loads an HTTP URL from the cache without calling open" do
      loader.url_cache[url] = "hello"
      loader.should_not_receive(:open)
      expect(loader.load(url)).to eq "hello"
    end

    it "loads a data URL" do
      loader.should_not_receive(:open)
      expect(loader.load("data:image/png;base64,aGVsbG8=")).to eq "hello"
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
prawn-svg-0.21.0 spec/prawn/svg/url_loader_spec.rb
prawn-svg-0.20.0 spec/prawn/svg/url_loader_spec.rb
prawn-svg-0.19.0 spec/prawn/svg/url_loader_spec.rb
prawn-svg-0.18.0 spec/prawn/svg/url_loader_spec.rb
prawn-svg-0.17.0 spec/prawn/svg/url_loader_spec.rb
prawn-svg-0.16.2 spec/prawn/svg/url_loader_spec.rb
prawn-svg-0.16.1 spec/prawn/svg/url_loader_spec.rb
prawn-svg-0.16.0 spec/prawn/svg/url_loader_spec.rb