spec/controllers/download_controller_spec.rb in geoblacklight-4.0.0 vs spec/controllers/download_controller_spec.rb in geoblacklight-4.1.0
- old
+ new
@@ -1,121 +1,122 @@
# frozen_string_literal: true
-require 'spec_helper'
+require "spec_helper"
+
describe DownloadController, type: :controller do
- describe '#file' do
- describe 'restricted file' do
- it 'redirects to login for authentication' do
- get :file, params: { id: 'stanford-cg357zz0321-shapefile', format: 'zip' }
+ describe "#file" do
+ describe "restricted file" do
+ it "redirects to login for authentication" do
+ get :file, params: {id: "stanford-cg357zz0321-shapefile", format: "zip"}
expect(response).to have_http_status :unauthorized
end
end
- describe 'public file' do
- it 'initiates download' do
+ describe "public file" do
+ it "initiates download" do
allow(controller).to receive(:render) # Needed for testing with Rails 4
expect(controller).to receive(:send_file)
- get :file, params: { id: 'mit-f6rqs4ucovjk2-shapefile', format: 'zip' }
+ get :file, params: {id: "mit-f6rqs4ucovjk2-shapefile", format: "zip"}
end
end
end
- describe '#show' do
- describe 'restricted file' do
- it 'redirects to login for authentication' do
- get :show, params: { id: 'stanford-cg357zz0321', format: 'json' }
+ describe "#show" do
+ describe "restricted file" do
+ it "redirects to login for authentication" do
+ get :show, params: {id: "stanford-cg357zz0321", format: "json"}
expect(response).to have_http_status :unauthorized
end
end
- describe 'public file' do
+ describe "public file" do
let(:shapefile_download) { instance_double(Geoblacklight::ShapefileDownload) }
before do
allow(Geoblacklight::ShapefileDownload).to receive(:new).and_return(shapefile_download)
end
- it 'initiates download creation' do
- allow(shapefile_download).to receive(:get).and_return('success')
- get :show, params: { id: 'mit-f6rqs4ucovjk2', type: 'shapefile' }
+ it "initiates download creation" do
+ allow(shapefile_download).to receive(:get).and_return("success")
+ get :show, params: {id: "mit-f6rqs4ucovjk2", type: "shapefile"}
expect(response).to have_http_status :ok
end
end
- context 'when requesting GeoJSON files' do
- let(:id) { 'tufts-cambridgegrid100-04' }
- let(:type) { 'geojson' }
+ context "when requesting GeoJSON files" do
+ let(:id) { "tufts-cambridgegrid100-04" }
+ let(:type) { "geojson" }
let(:geojson_download) { instance_double(Geoblacklight::GeojsonDownload) }
before do
- allow(geojson_download).to receive(:get).and_return('file.json')
+ allow(geojson_download).to receive(:get).and_return("file.json")
allow(Geoblacklight::GeojsonDownload).to receive(:new).and_return(geojson_download)
end
- it 'downloads the files and notifies the user' do
+ it "downloads the files and notifies the user" do
expect(Geoblacklight::GeojsonDownload).to receive(:new)
- get :show, params: { id: id, type: type }
+ get :show, params: {id: id, type: type}
- expect(response.body).to include 'success'
- expect(response.body).to include 'Your file file.json is ready for download'
+ expect(response.body).to include "success"
+ expect(response.body).to include "Your file file.json is ready for download"
end
end
- context 'when requesting GeoTIFF files' do
- let(:id) { 'tufts-cambridgegrid100-04' }
- let(:type) { 'geotiff' }
+ context "when requesting GeoTIFF files" do
+ let(:id) { "tufts-cambridgegrid100-04" }
+ let(:type) { "geotiff" }
let(:geotiff_download) { instance_double(Geoblacklight::GeotiffDownload) }
before do
- allow(geotiff_download).to receive(:get).and_return('file.tiff')
+ allow(geotiff_download).to receive(:get).and_return("file.tiff")
allow(Geoblacklight::GeotiffDownload).to receive(:new).and_return(geotiff_download)
end
- it 'downloads the files and notifies the user' do
+ it "downloads the files and notifies the user" do
expect(Geoblacklight::GeotiffDownload).to receive(:new)
- get :show, params: { id: id, type: type }
+ get :show, params: {id: id, type: type}
- expect(response.body).to include 'success'
- expect(response.body).to include 'Your file file.tiff is ready for download'
+ expect(response.body).to include "success"
+ expect(response.body).to include "Your file file.tiff is ready for download"
end
end
end
- describe '#hgl' do
+ describe "#hgl" do
let(:hgl_download) { instance_double(Geoblacklight::HglDownload) }
- it 'requests file' do
- allow(hgl_download).to receive(:get).and_return('success')
+ it "requests file" do
+ allow(hgl_download).to receive(:get).and_return("success")
allow(Geoblacklight::HglDownload).to receive(:new).and_return(hgl_download)
- get :hgl, params: { id: 'harvard-g7064-s2-1834-k3', email: 'foo@example.com' }
+ get :hgl, params: {id: "harvard-g7064-s2-1834-k3", email: "foo@example.com"}
expect(response).to have_http_status :ok
end
- it 'renders form' do
+ it "renders form" do
allow(Geoblacklight::HglDownload).to receive(:new).and_return(hgl_download)
- get :hgl, params: { id: 'harvard-g7064-s2-1834-k3' }
- expect(response).to render_template('hgl')
+ get :hgl, params: {id: "harvard-g7064-s2-1834-k3"}
+ expect(response).to render_template("hgl")
end
- context 'when an error occurs while downloading a file' do
+ context "when an error occurs while downloading a file" do
let(:exception) { Geoblacklight::Exceptions::ExternalDownloadFailed.new(url: nil) }
- it 'uses the default error message when the exception does not have a URL' do
+ it "uses the default error message when the exception does not have a URL" do
allow(Geoblacklight::HglDownload).to receive(:new).and_raise(exception)
- get :hgl, params: { id: 'harvard-g7064-s2-1834-k3', email: 'foo@example.com' }
- expect(response.body).to include('danger')
- expect(response.body).to include('Sorry, the requested file could not be downloaded')
+ get :hgl, params: {id: "harvard-g7064-s2-1834-k3", email: "foo@example.com"}
+ expect(response.body).to include("danger")
+ expect(response.body).to include("Sorry, the requested file could not be downloaded")
end
end
- context 'when downloading the requested file fails' do
- it 'flashes the error message' do
+ context "when downloading the requested file fails" do
+ it "flashes the error message" do
allow(hgl_download).to receive(:get).and_return(nil)
allow(Geoblacklight::HglDownload).to receive(:new).and_return(hgl_download)
- get :hgl, params: { id: 'harvard-g7064-s2-1834-k3', email: 'foo@example.com' }
- expect(response.body).to include('danger')
- expect(response.body).to include('Sorry, the requested file could not be downloaded')
+ get :hgl, params: {id: "harvard-g7064-s2-1834-k3", email: "foo@example.com"}
+ expect(response.body).to include("danger")
+ expect(response.body).to include("Sorry, the requested file could not be downloaded")
end
end
end
end