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