blob: 9b24fe592e541d44305510aa0c2e838152e0cd19 [file] [log] [blame]
require File.expand_path('../../../spec_helper', __FILE__)
module Pod
describe Sandbox::HeadersStore do
before do
@sandbox = Pod::Sandbox.new(temporary_directory + 'Sandbox')
@header_dir = Sandbox::HeadersStore.new(@sandbox, 'Public')
end
it "returns it's headers root" do
@header_dir.root.should == temporary_directory + 'Sandbox/Headers/Public'
end
it 'can add namespaced headers to its header path using symlinks and return the relative path' do
FileUtils.mkdir_p(@sandbox.root + 'ExampleLib/')
namespace_path = Pathname.new('ExampleLib')
relative_header_paths = [
Pathname.new('ExampleLib/MyHeader.h'),
Pathname.new('ExampleLib/MyOtherHeader.h'),
]
relative_header_paths.each do |path|
File.open(@sandbox.root + path, 'w') { |file| file.write('hello') }
end
symlink_paths = @header_dir.add_files(namespace_path, relative_header_paths)
symlink_paths.each do |path|
path.should.be.symlink
File.read(path).should == 'hello'
end
end
it 'does not add recursive search paths' do
FileUtils.mkdir_p(@sandbox.root + 'ExampleLib/Dir')
namespace_path = Pathname.new('ExampleLib')
relative_header_paths = [
Pathname.new('ExampleLib/Dir/MyHeader.h'),
Pathname.new('ExampleLib/Dir/MyOtherHeader.h'),
]
relative_header_paths.each do |path|
File.open(@sandbox.root + path, 'w') { |file| file.write('hello') }
end
@header_dir.add_files(namespace_path, relative_header_paths)
@header_dir.search_paths(:fake_platform).should.not.include('${PODS_ROOT}/Headers/Public/ExampleLib')
end
it 'always adds the Headers root to the header search paths' do
@header_dir.search_paths(:fake_platform).should.include('${PODS_ROOT}/Headers/Public')
end
it 'only exposes header search paths for the given platform' do
@header_dir.add_search_path('iOS Search Path', Platform.ios)
@header_dir.add_search_path('OS X Search Path', Platform.osx)
@header_dir.search_paths(Platform.ios).sort.should == [
'${PODS_ROOT}/Headers/Public',
'${PODS_ROOT}/Headers/Public/iOS Search Path',
]
end
end
end