jasmine-headless-webkit/spec/lib/qt/qmake_spec.rb
2011-07-29 21:33:19 -04:00

141 lines
2.8 KiB
Ruby

require 'spec_helper'
require 'qt/qmake'
require 'rbconfig'
require 'rubygems/version'
describe Qt::Qmake do
describe '.make_installed?' do
subject { described_class }
before do
Qt::Qmake.stubs(:make_path).returns(path)
end
context 'not installed' do
let(:path) { nil }
it { should_not be_make_installed }
end
context 'installed' do
let(:path) { '/here/there/make' }
it { should be_make_installed }
end
end
describe '.installed?' do
subject { described_class }
before do
Qt::Qmake.stubs(:path).returns(path)
end
context 'not installed' do
let(:path) { nil }
it { should_not be_installed }
end
context 'installed' do
let(:path) { '/here/there/qmake' }
it { should be_installed }
end
end
describe '.command' do
subject { described_class.command }
before do
Qt::Qmake.stubs(:platform).returns(platform)
Qt::Qmake.stubs(:path).returns("qmake")
end
context 'linux' do
let(:platform) { :linux }
it { should == "qmake -spec linux-g++" }
end
context 'mac os x' do
let(:platform) { :mac_os_x }
it { should == "qmake -spec macx-g++" }
end
end
describe '.best_qmake' do
before do
Qt::Qmake.stubs(:get_exe_path).with('qmake-qt4').returns(path_one)
Qt::Qmake.stubs(:get_exe_path).with('qmake').returns(path_two)
Qt::Qmake.stubs(:qt_version_of).with(path_one).returns(Gem::Version.create(version_one))
Qt::Qmake.stubs(:qt_version_of).with(path_two).returns(Gem::Version.create(version_two))
end
subject { described_class.best_qmake }
let(:path_one) { nil }
let(:path_two) { nil }
let(:version_one) { nil }
let(:version_two) { nil }
context 'nothing found' do
it { should be_nil }
end
context 'one found' do
let(:path_one) { 'one' }
context 'not good' do
let(:version_one) { '4.5' }
it { should be_nil }
end
context 'good' do
let(:version_one) { '4.7' }
it { should == path_one }
end
end
context 'two found' do
let(:path_one) { 'one' }
let(:path_two) { 'two' }
context 'neither good' do
let(:version_one) { '4.5' }
let(:version_two) { '4.5' }
it { should be_nil }
end
context 'one good' do
let(:version_one) { '4.7' }
let(:version_two) { '4.5' }
it { should == path_one }
end
context 'both good' do
context 'one better' do
let(:version_one) { '4.7' }
let(:version_two) { '4.8' }
it { should == path_two }
end
context 'both same' do
let(:version_one) { '4.7' }
let(:version_two) { '4.7' }
it { should == path_one }
end
end
end
end
end