Sha256: 93fd6fde1f0766ffbc441b6e0c67e9ef6441326403d84e0bd70332610745c9a1

Contents?: true

Size: 1.13 KB

Versions: 8

Compression:

Stored size: 1.13 KB

Contents

describe TinymceAssetsController, type: :controller do
  let(:file) { fixture_file_upload('/world.png', 'image/png') }

  context "when logged in" do
    let(:user) { FactoryGirl.create(:user) }
    before { sign_in user }

    context "as a user who can upload" do
      before { expect(controller).to receive(:authorize!).with(:create, TinymceAsset).and_return(true) }

      it "uploads the file" do
        expect do
          post :create, params: { file: file }
          expect(response).to be_successful
        end.to change { TinymceAsset.count }.by(1)

        json = JSON.parse(response.body)
        expect(json).to eq("image" => { "url" => "/uploads/tinymce_asset/file/1/world.png" })
      end
    end

    context "as a user who can't upload" do
      it "is unauthorized" do
        post :create, params: { file: file }
        expect(response.code).to eq '401'
        expect(response).to render_template 'unauthorized'
      end
    end
  end

  context "when not logged in" do
    it "redirects to root path" do
      post :create, params: { file: file }
      expect(response).to redirect_to main_app.new_user_session_path
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
sufia-7.4.1 spec/controllers/tinymce_assets_controller_spec.rb
sufia-7.4.0 spec/controllers/tinymce_assets_controller_spec.rb
sufia-7.3.1 spec/controllers/tinymce_assets_controller_spec.rb
sufia-7.3.0 spec/controllers/tinymce_assets_controller_spec.rb
sufia-7.3.0.rc3 spec/controllers/tinymce_assets_controller_spec.rb
sufia-7.3.0.rc2 spec/controllers/tinymce_assets_controller_spec.rb
sufia-7.3.0.rc1 spec/controllers/tinymce_assets_controller_spec.rb
sufia-7.2.0 spec/controllers/tinymce_assets_controller_spec.rb