spec/groupdocs/storage/file_spec.rb in groupdocs-0.3.11 vs spec/groupdocs/storage/file_spec.rb in groupdocs-1.0.0

- old
+ new

@@ -1,39 +1,68 @@ require 'spec_helper' describe GroupDocs::Storage::File do it_behaves_like GroupDocs::Api::Entity - include_examples GroupDocs::Extensions::Lookup 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__, '/upload_path', client_id: 'client_id', private_key: 'private_key') + described_class.upload!(__FILE__, {}, client_id: 'client_id', private_key: 'private_key') end.should_not raise_error(ArgumentError) end - it 'checks that upload path starts with /' do - GroupDocs::Api::Helpers::Path.should_receive(:verify_starts_with_root).with('/upload_path') - described_class.upload!(__FILE__, '/upload_path') + it 'accepts options hash' do + lambda do + described_class.upload!(__FILE__, path: 'folder1') + end.should_not raise_error(ArgumentError) end - it 'appends filename to upload path if it is not passed' do - GroupDocs::Api::Helpers::Path.should_receive(:append_file_name).with('/upload_path', __FILE__) - described_class.upload!(__FILE__, '/upload_path') + 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(ArgumentError) + 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 respond_to(:id) } it { should respond_to(:id=) } it { should respond_to(:guid) } it { should respond_to(:guid=) } it { should respond_to(:known) } @@ -57,14 +86,11 @@ it { should respond_to(:file_type) } it { should respond_to(:file_type=) } it { should respond_to(:path) } it { should respond_to(:path=) } - it 'is compatible with response JSON' do - subject.should respond_to(:adj_name=) - subject.method(:adj_name=).should == subject.method(:name=) - end + 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' @@ -106,35 +132,10 @@ subject.modified_on = 1330450135000 subject.modified_on.should == Time.at(1330450135) end end - describe '#upload!' do - before(:each) do - mock_api_server(load_json('file_upload')) - end - - it 'accepts access credentials hash' do - lambda do - subject.upload!('/', client_id: 'client_id', private_key: 'private_key') - end.should_not raise_error(ArgumentError) - end - - it 'calls upload! class method and pass parameters to it' do - subject = described_class.new(name: File.basename(__FILE__), path: File.dirname(__FILE__)) - described_class.should_receive(:upload!).with(__FILE__, '/Folder', {}) - subject.upload!('/Folder') - end - - it 'returns new GroupDocs::Storage::File object' do - subject = described_class.new(name: File.basename(__FILE__), path: File.dirname(__FILE__)) - new_file = subject.upload! - new_file.should be_a(GroupDocs::Storage::File) - new_file.should_not == subject - end - end - describe '#download!' do before(:each) do mock_api_server(File.read('spec/support/files/resume.pdf')) subject.stub(name: 'resume.pdf') end @@ -164,32 +165,35 @@ mock_api_server(load_json('file_move')) end it 'accepts access credentials hash' do lambda do - subject.move!('/resume.pdf', client_id: 'client_id', private_key: 'private_key') + subject.move!('folder1', {}, client_id: 'client_id', private_key: 'private_key') end.should_not raise_error(ArgumentError) end - it 'checks that path starts with /' do - GroupDocs::Api::Helpers::Path.should_receive(:verify_starts_with_root).with('/resume.pdf') - subject.move!('/resume.pdf') + it 'accepts options credentials hash' do + lambda do + subject.move!('folder1', name: 'file.pdf') + end.should_not raise_error(ArgumentError) end - it 'appends filename to move to path if it is not passed' do - GroupDocs::Api::Helpers::Path.should_receive(:append_file_name).with('/Folder', subject.name) - subject.move!('/Folder') + it 'uses current file name by default' do + subject.name = 'resume.pdf' + opts = {} + subject.move!('folder1', opts) + opts[:name].should == subject.name end - it 'sends "Groupdocs-Move" header' do - mock_api_server(load_json('file_move'), :'Groupdocs-Move' => '123') - subject.stub(id: 123) - subject.move!('/resume2.pdf') + 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!('/resume2.pdf').should be_a(GroupDocs::Storage::File) + subject.move!('folder1').should be_a(GroupDocs::Storage::File) end end describe '#rename!' do before(:each) do @@ -201,11 +205,11 @@ subject.rename!('resume.pdf', client_id: 'client_id', private_key: 'private_key') end.should_not raise_error(ArgumentError) end it 'uses #move! to rename file' do - subject.should_receive(:move!).with('/resume2.pdf', {}) + subject.should_receive(:move!).with(subject.path, { name: 'resume2.pdf' }, {}) subject.rename!('resume2.pdf') end end describe '#copy!' do @@ -213,28 +217,31 @@ 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') + subject.copy!('resume.pdf', {}, client_id: 'client_id', private_key: 'private_key') end.should_not raise_error(ArgumentError) end - it 'checks that path starts with /' do - GroupDocs::Api::Helpers::Path.should_receive(:verify_starts_with_root).with('resume.pdf') - subject.copy!('resume.pdf') + it 'accepts options credentials hash' do + lambda do + subject.copy!('folder1', name: 'file.pdf') + end.should_not raise_error(ArgumentError) end - it 'appends filename to move to path if it is not passed' do - GroupDocs::Api::Helpers::Path.should_receive(:append_file_name).with('/Folder', subject.name) - subject.copy!('/Folder') + it 'uses current file name by default' do + subject.name = 'resume.pdf' + opts = {} + subject.copy!('folder1', opts) + opts[:name].should == subject.name end - it 'sends "Groupdocs-Copy" header' do - mock_api_server(load_json('file_copy'), :'Groupdocs-Copy' => '123') - subject.stub(id: 123) - subject.copy!('/resume2.pdf') + 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 @@ -271,9 +278,17 @@ 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 + 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(ArgumentError) end end describe '#to_document' do it 'creates new GroupDocs::Document' do