spec/groupdocs/storage/file_spec.rb in groupdocs-2.2.0 vs spec/groupdocs/storage/file_spec.rb in groupdocs-2.3.0
- old
+ new
@@ -1,303 +1,303 @@
-require 'spec_helper'
-
-describe GroupDocs::Storage::File do
-
- it_behaves_like GroupDocs::Api::Entity
- include_examples GroupDocs::Api::Helpers::AccessMode
-
- describe '.upload!' do
- before(:each) do
- mock_api_server(load_json('file_upload'))
- end
-
- it 'accepts access credentials hash' do
- lambda do
- described_class.upload!(__FILE__, {}, :client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
-
- it 'accepts options hash' do
- lambda do
- described_class.upload!(__FILE__, :path => 'folder1')
- end.should_not raise_error()
- end
-
- it 'uses root folder by default' do
- opts = {}
- described_class.upload!(__FILE__, opts)
- opts[:path].should == ''
- end
-
- it 'uses file name by default' do
- opts = {}
- described_class.upload!(__FILE__, opts)
- opts[:name].should == Object::File.basename(__FILE__)
- end
-
- it 'uses name if passed' do
- opts = { :name => 'file.pdf' }
- described_class.upload!(__FILE__, opts)
- opts[:name].should == opts[:name]
- end
-
- it 'returns GroupDocs::Storage::File object' do
- described_class.upload!(__FILE__).should be_a(GroupDocs::Storage::File)
- end
- end
-
- describe '.upload_web!' do
- before(:each) do
- mock_api_server(load_json('file_upload'))
- end
-
- it 'accepts access credentials hash' do
- lambda do
- described_class.upload_web!('http://www.google.com', :client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
-
- it 'returns GroupDocs::Storage::File object' do
- described_class.upload_web!('http://www.google.com').should be_a(GroupDocs::Storage::File)
- end
- end
-
- it { should have_accessor(:id) }
- it { should have_accessor(:guid) }
- it { should have_accessor(:known) }
- it { should have_accessor(:size) }
- it { should have_accessor(:thumbnail) }
- it { should have_accessor(:created_on) }
- it { should have_accessor(:modified_on) }
- it { should have_accessor(:url) }
- it { should have_accessor(:name) }
- it { should have_accessor(:version) }
- it { should have_accessor(:type) }
- it { should have_accessor(:file_type) }
- it { should have_accessor(:path) }
- it { should have_accessor(:local_path) }
-
- it { should have_alias(:adj_name=, :name=) }
-
- describe '#type=' do
- it 'saves type in machine readable format if symbol is passed' do
- subject.type = :words
- subject.instance_variable_get(:@type).should == 'Words'
- end
-
- it 'does nothing if parameter is not symbol' do
- subject.type = 'Words'
- subject.instance_variable_get(:@type).should == 'Words'
- end
-
- it 'raises error if type is unknown' do
- lambda { subject.type = :unknown }.should raise_error(ArgumentError)
- end
- end
-
- describe '#type' do
- it 'returns type in human-readable format' do
- subject.type = 'Words'
- subject.type.should == :words
- end
- end
-
- describe '#file_type' do
- it 'returns file type in human-readable format' do
- subject.file_type = 'Doc'
- subject.file_type.should == :doc
- end
- end
-
- describe '#created_on' do
- it 'converts timestamp to Time object' do
- subject.created_on = 1330450135000
- subject.created_on.should == Time.at(1330450135)
- end
- end
-
- describe '#modified_on' do
- it 'returns converted to Time object Unix timestamp' do
- subject.modified_on = 1330450135000
- subject.modified_on.should == Time.at(1330450135)
- end
- end
-
- describe '#download!' do
- before(:each) do
- mock_api_server(File.read('spec/support/files/resume.pdf'))
- subject.stub(:name => 'resume.pdf')
- end
-
- let(:path) { Dir.tmpdir }
-
- it 'accepts access credentials hash' do
- lambda do
- subject.download!(path, :client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
-
- it 'downloads file to given path' do
- file = double('file')
- Object::File.should_receive(:open).with("#{path}/resume.pdf", 'wb').and_yield(file)
- file.should_receive(:write).with(File.read('spec/support/files/resume.pdf'))
- subject.download!(path)
- end
-
- it 'returns saved file path' do
- subject.download!(path).should == "#{path}/resume.pdf"
- end
- end
-
- describe '#move!' do
- before(:each) do
- mock_api_server(load_json('file_move'))
- end
-
- it 'accepts access credentials hash' do
- lambda do
- subject.move!('folder1', {}, :client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
-
- it 'accepts options credentials hash' do
- lambda do
- subject.move!('folder1', :name => 'file.pdf')
- end.should_not raise_error()
- end
-
- it 'uses current file name by default' do
- subject.name = 'resume.pdf'
- opts = {}
- subject.move!('folder1', opts)
- opts[:name].should == subject.name
- end
-
- it 'uses name if passed' do
- opts = { :name => 'file.pdf' }
- subject.move!('folder1', opts)
- opts[:name].should == opts[:name]
- end
-
- it 'returns moved to file' do
- subject.move!('folder1').should be_a(GroupDocs::Storage::File)
- end
- end
-
- describe '#rename!' do
- before(:each) do
- subject.path = '/'
- end
-
-
- it 'accepts access credentials hash' do
- lambda do
- subject.rename!('resume.pdf', :client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
- before(:each) do
- mock_api_server(load_json('file_move'))
- end
-
- it 'uses #move! to rename file' do
- subject.should_receive(:move!).with(subject.path, { :name => 'resume2.pdf' }, {})
- subject.rename!('resume2.pdf')
- end
- end
-
- describe '#copy!' do
- before(:each) do
- mock_api_server(load_json('file_copy'))
- end
-
- it 'accepts access credentials hash' do
- lambda do
- subject.copy!('resume.pdf', {}, :client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
-
- it 'accepts options credentials hash' do
- lambda do
- subject.copy!('folder1', :name => 'file.pdf')
- end.should_not raise_error()
- end
-
- it 'uses current file name by default' do
- subject.name = 'resume.pdf'
- opts = {}
- subject.copy!('folder1', opts)
- opts[:name].should == subject.name
- end
-
- it 'uses name if passed' do
- opts = { :name => 'file.pdf' }
- subject.copy!('folder1', opts)
- opts[:name].should == opts[:name]
- end
-
- it 'returns copied to file' do
- subject.copy!('/resume2.pdf').should be_a(GroupDocs::Storage::File)
- end
- end
-
- describe '#compress!' do
- before(:each) do
- mock_api_server(load_json('file_compress'))
- end
-
- it 'accepts access credentials hash' do
- lambda do
- subject.compress!(:client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
-
- it 'returns archived file' do
- subject.stub(:name => 'resume.pdf')
- subject.compress!.should be_a(GroupDocs::Storage::File)
- end
-
- it 'creates archive filename as filename + archive type' do
- subject.stub(:name => 'resume.pdf')
- subject.compress!.name.should == 'resume.pdf.zip'
- end
- end
-
- describe '#delete!' do
- before(:each) do
- mock_api_server(load_json('file_move'))
- end
-
- it 'accepts access credentials hash' do
- lambda do
- subject.delete!(:client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
-
- it 'uses file guid' do
- mock_api_server(load_json('file_delete'))
- subject.should_receive(:guid).and_return('guid')
- subject.delete!
- end
- end
-
- describe '#move_to_trash!' do
- before(:each) do
- mock_api_server(load_json('file_move'))
- end
-
- it 'accepts access credentials hash' do
- lambda do
- subject.move_to_trash!(:client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
- end
-
- describe '#to_document' do
- it 'creates new GroupDocs::Document' do
- subject.to_document.should be_a(GroupDocs::Document)
- end
-
- it 'passes self as file for GroupDocs::Document' do
- subject.to_document.file.should == subject
- end
- end
-end
+require 'spec_helper'
+
+describe GroupDocs::Storage::File do
+
+ it_behaves_like GroupDocs::Api::Entity
+ include_examples GroupDocs::Api::Helpers::AccessMode
+
+ describe '.upload!' do
+ before(:each) do
+ mock_api_server(load_json('file_upload'))
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ described_class.upload!(__FILE__, {}, :client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+
+ it 'accepts options hash' do
+ lambda do
+ described_class.upload!(__FILE__, :path => 'folder1')
+ end.should_not raise_error()
+ end
+
+ it 'uses root folder by default' do
+ opts = {}
+ described_class.upload!(__FILE__, opts)
+ opts[:path].should == ''
+ end
+
+ it 'uses file name by default' do
+ opts = {}
+ described_class.upload!(__FILE__, opts)
+ opts[:name].should == Object::File.basename(__FILE__)
+ end
+
+ it 'uses name if passed' do
+ opts = { :name => 'file.pdf' }
+ described_class.upload!(__FILE__, opts)
+ opts[:name].should == opts[:name]
+ end
+
+ it 'returns GroupDocs::Storage::File object' do
+ described_class.upload!(__FILE__).should be_a(GroupDocs::Storage::File)
+ end
+ end
+
+ describe '.upload_web!' do
+ before(:each) do
+ mock_api_server(load_json('file_upload'))
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ described_class.upload_web!('http://www.google.com', :client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+
+ it 'returns GroupDocs::Storage::File object' do
+ described_class.upload_web!('http://www.google.com').should be_a(GroupDocs::Storage::File)
+ end
+ end
+
+ it { should have_accessor(:id) }
+ it { should have_accessor(:guid) }
+ it { should have_accessor(:known) }
+ it { should have_accessor(:size) }
+ it { should have_accessor(:thumbnail) }
+ it { should have_accessor(:created_on) }
+ it { should have_accessor(:modified_on) }
+ it { should have_accessor(:url) }
+ it { should have_accessor(:name) }
+ it { should have_accessor(:version) }
+ it { should have_accessor(:type) }
+ it { should have_accessor(:file_type) }
+ it { should have_accessor(:path) }
+ it { should have_accessor(:local_path) }
+
+ it { should have_alias(:adj_name=, :name=) }
+
+ describe '#type=' do
+ it 'saves type in machine readable format if symbol is passed' do
+ subject.type = :words
+ subject.instance_variable_get(:@type).should == 'Words'
+ end
+
+ it 'does nothing if parameter is not symbol' do
+ subject.type = 'Words'
+ subject.instance_variable_get(:@type).should == 'Words'
+ end
+
+ it 'raises error if type is unknown' do
+ lambda { subject.type = :unknown }.should raise_error(ArgumentError)
+ end
+ end
+
+ describe '#type' do
+ it 'returns type in human-readable format' do
+ subject.type = 'Words'
+ subject.type.should == :words
+ end
+ end
+
+ describe '#file_type' do
+ it 'returns file type in human-readable format' do
+ subject.file_type = 'Doc'
+ subject.file_type.should == :doc
+ end
+ end
+
+ describe '#created_on' do
+ it 'converts timestamp to Time object' do
+ subject.created_on = 1330450135000
+ subject.created_on.should == Time.at(1330450135)
+ end
+ end
+
+ describe '#modified_on' do
+ it 'returns converted to Time object Unix timestamp' do
+ subject.modified_on = 1330450135000
+ subject.modified_on.should == Time.at(1330450135)
+ end
+ end
+
+ describe '#download!' do
+ before(:each) do
+ mock_api_server(File.read('spec/support/files/resume.pdf'))
+ subject.stub(:name => 'resume.pdf')
+ end
+
+ let(:path) { Dir.tmpdir }
+
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.download!(path, :client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+
+ it 'downloads file to given path' do
+ file = double('file')
+ Object::File.should_receive(:open).with("#{path}/resume.pdf", 'wb').and_yield(file)
+ file.should_receive(:write).with(File.read('spec/support/files/resume.pdf'))
+ subject.download!(path)
+ end
+
+ it 'returns saved file path' do
+ subject.download!(path).should == "#{path}/resume.pdf"
+ end
+ end
+
+ describe '#move!' do
+ before(:each) do
+ mock_api_server(load_json('file_move'))
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.move!('folder1', {}, :client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+
+ it 'accepts options credentials hash' do
+ lambda do
+ subject.move!('folder1', :name => 'file.pdf')
+ end.should_not raise_error()
+ end
+
+ it 'uses current file name by default' do
+ subject.name = 'resume.pdf'
+ opts = {}
+ subject.move!('folder1', opts)
+ opts[:name].should == subject.name
+ end
+
+ it 'uses name if passed' do
+ opts = { :name => 'file.pdf' }
+ subject.move!('folder1', opts)
+ opts[:name].should == opts[:name]
+ end
+
+ it 'returns moved to file' do
+ subject.move!('folder1').should be_a(GroupDocs::Storage::File)
+ end
+ end
+
+ describe '#rename!' do
+ before(:each) do
+ subject.path = '/'
+ end
+
+
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.rename!('resume.pdf', :client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+ before(:each) do
+ mock_api_server(load_json('file_move'))
+ end
+
+ it 'uses #move! to rename file' do
+ subject.should_receive(:move!).with(subject.path, { :name => 'resume2.pdf' }, {})
+ subject.rename!('resume2.pdf')
+ end
+ end
+
+ describe '#copy!' do
+ before(:each) do
+ mock_api_server(load_json('file_copy'))
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.copy!('resume.pdf', {}, :client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+
+ it 'accepts options credentials hash' do
+ lambda do
+ subject.copy!('folder1', :name => 'file.pdf')
+ end.should_not raise_error()
+ end
+
+ it 'uses current file name by default' do
+ subject.name = 'resume.pdf'
+ opts = {}
+ subject.copy!('folder1', opts)
+ opts[:name].should == subject.name
+ end
+
+ it 'uses name if passed' do
+ opts = { :name => 'file.pdf' }
+ subject.copy!('folder1', opts)
+ opts[:name].should == opts[:name]
+ end
+
+ it 'returns copied to file' do
+ subject.copy!('/resume2.pdf').should be_a(GroupDocs::Storage::File)
+ end
+ end
+
+ describe '#compress!' do
+ before(:each) do
+ mock_api_server(load_json('file_compress'))
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.compress!(:client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+
+ it 'returns archived file' do
+ subject.stub(:name => 'resume.pdf')
+ subject.compress!.should be_a(GroupDocs::Storage::File)
+ end
+
+ it 'creates archive filename as filename + archive type' do
+ subject.stub(:name => 'resume.pdf')
+ subject.compress!.name.should == 'resume.pdf.zip'
+ end
+ end
+
+ describe '#delete!' do
+ before(:each) do
+ mock_api_server(load_json('file_move'))
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.delete!(:client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+
+ it 'uses file guid' do
+ mock_api_server(load_json('file_delete'))
+ subject.should_receive(:guid).and_return('guid')
+ subject.delete!
+ end
+ end
+
+ describe '#move_to_trash!' do
+ before(:each) do
+ mock_api_server(load_json('file_move'))
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.move_to_trash!(:client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+ end
+
+ describe '#to_document' do
+ it 'creates new GroupDocs::Document' do
+ subject.to_document.should be_a(GroupDocs::Document)
+ end
+
+ it 'passes self as file for GroupDocs::Document' do
+ subject.to_document.file.should == subject
+ end
+ end
+end