Merge pull request #1312 from Arcovion/windows-specs

Fix specs on windows
This commit is contained in:
Eliott Appleford 2014-07-06 07:44:20 +01:00
commit 249c649760
10 changed files with 55 additions and 56 deletions

46
Gemfile
View file

@ -1,39 +1,35 @@
source 'https://rubygems.org'
# Build and doc tools
gem 'rake', '~> 10.3.2', require: false
gem 'yard', '~> 0.8.0', require: false
gem 'rake', '~> 10.3', require: false
gem 'yard', '~> 0.8', require: false
# Test tools
gem 'cucumber', '~> 1.3.1'
gem 'fivemat', '~> 1.2.1'
gem 'aruba', '~> 0.6.0'
gem 'rspec', '~> 2.12'
gem 'simplecov'
gem 'pry', '~> 0.10', group: :development
gem 'aruba', '~> 0.6'
gem 'rspec', '~> 3.0'
gem 'fivemat', '~> 1.3'
gem 'cucumber', '~> 1.3'
# Optional middleman dependencies, included for tests
gem 'sinatra', require: false
gem 'slim', require: false
gem 'liquid', require: false
gem 'less', '~> 2.3.0', require: false
gem 'stylus', require: false
gem 'asciidoctor', require: false
gem 'less', '2.3.0', require: false
gem 'slim', '>= 2.0', require: false
gem 'liquid', '>= 2.6', require: false
gem 'stylus', '>= 1.0', require: false
gem 'sinatra', '>= 1.4', require: false
gem 'redcarpet', '>= 3.1', require: false unless RUBY_ENGINE == 'jruby'
gem 'asciidoctor', '>= 0.1', require: false
platforms :ruby do
gem 'therubyracer'
gem 'redcarpet', '~> 3.1'
gem 'pry', require: false, group: :development
end
platforms :jruby do
gem 'therubyrhino'
end
# For less, note there is no compatible JS runtime for windows
gem 'therubyracer', '>= 0.12', platforms: :ruby
gem 'therubyrhino', '>= 2.0', platforms: :jruby
# Code Quality
gem 'coveralls', require: false
gem 'rubocop', require: false
gem 'rubocop', '~> 0.24', require: false
gem 'simplecov', '0.7.1', require: false
gem 'coveralls', '~> 0.7', require: false
# Middleman itself
gem 'middleman', path: 'middleman'
gem 'middleman-core', path: 'middleman-core'
gem 'middleman-sprockets', github: 'middleman/middleman-sprockets'
gem 'middleman', path: 'middleman'

View file

@ -19,6 +19,7 @@ Cucumber::Rake::Task.new do |t|
exempt_tags = ['--tags ~@wip']
exempt_tags << '--tags ~@nojava' if RUBY_PLATFORM == 'java'
exempt_tags << '--tags ~@encoding' unless Object.const_defined?(:Encoding)
exempt_tags << '--tags ~@nowindows' if Gem.win_platform?
exempt_tags << '--tags ~@travishatesme' if ENV['TRAVIS'] == 'true'
t.cucumber_opts = "--color #{exempt_tags.join(' ')} --strict --format #{ENV['CUCUMBER_FORMAT'] || 'Fivemat'}"
end
@ -27,6 +28,7 @@ Cucumber::Rake::Task.new(:cucumber_wip) do |t|
exempt_tags = ['--tags @wip']
exempt_tags << '--tags ~@nojava' if RUBY_PLATFORM == 'java'
exempt_tags << '--tags ~@encoding' unless Object.const_defined?(:Encoding)
exempt_tags << '--tags ~@nowindows' if Gem.win_platform?
t.cucumber_opts = "--color #{exempt_tags.join(' ')} --strict --format #{ENV['CUCUMBER_FORMAT'] || 'Fivemat'}"
end
@ -34,7 +36,7 @@ require 'rspec/core/rake_task'
desc 'Run RSpec'
RSpec::Core::RakeTask.new do |spec|
spec.pattern = 'spec/**/*_spec.rb'
spec.rspec_opts = ['--color', '--format nested']
spec.rspec_opts = ['--color', '--format documentation']
end
desc 'Run tests, both RSpec and Cucumber'

View file

@ -9,8 +9,7 @@ Feature: GZIP assets during build
| build/javascripts/test.js.gz |
| build/stylesheets/test.css |
| build/stylesheets/test.css.gz |
When I run `file build/javascripts/test.js.gz`
Then the output should contain "gzip"
And the file "build/javascripts/test.js.gz" should be gzipped
Scenario: Preview server doesn't change
Given the Server is running at "gzip-app"

View file

@ -19,9 +19,6 @@ Feature: More default extensions
When I go to "/stylesheets/style2.css"
Then I should see "section"
Then I should not see "I am in the layout"
When I go to "/stylesheets/style3.css"
Then I should see "color"
Then I should not see "I am in the layout"
Scenario: Default extensions build
Given a fixture app "more-implied-extensions-app"
@ -35,7 +32,6 @@ Feature: More default extensions
| javascripts/app.js |
| stylesheets/style.css |
| stylesheets/style2.css |
| stylesheets/style3.css |
And the file "test.html" should contain "Hello"
And the file "test2.html" should contain "World"
And the file "test3.html" should contain "Howdy"
@ -46,5 +42,3 @@ Feature: More default extensions
And the file "stylesheets/style.css" should not contain "I am in the layout"
And the file "stylesheets/style2.css" should contain "section"
And the file "stylesheets/style2.css" should not contain "I am in the layout"
And the file "stylesheets/style3.css" should contain "color"
And the file "stylesheets/style3.css" should not contain "I am in the layout"

View file

@ -1,4 +1,4 @@
@nojava
@nojava @nowindows
Feature: Compile a complicated Twitter bootstrap app
Scenario: User drops Twitter Bootstrap source into an app

View file

@ -1,4 +0,0 @@
@base: #f938ab;
.box {
color: @base;
}

View file

@ -1,13 +1,21 @@
MIDDLEMAN_ROOT_PATH = File.dirname(File.dirname(File.dirname(__FILE__)))
MIDDLEMAN_BIN_PATH = File.join(MIDDLEMAN_ROOT_PATH, 'bin')
ENV['PATH'] = "#{MIDDLEMAN_BIN_PATH}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
require 'aruba/cucumber'
require 'aruba/jruby'
require 'middleman-core/step_definitions/middleman_steps'
require 'middleman-core/step_definitions/builder_steps'
require 'middleman-core/step_definitions/server_steps'
# Monkeypatch for windows support
module ArubaMonkeypatch
def detect_ruby(cmd)
if cmd.start_with?('middleman ') && Gem.win_platform?
"#{current_ruby} #{Dir.pwd}/bin/#{cmd}"
else
cmd.sub(/^ruby(?= )/, current_ruby)
end
end
end
World(ArubaMonkeypatch)
Before do
@aruba_timeout_seconds = RUBY_PLATFORM == 'java' ? 120 : 60
end

View file

@ -71,3 +71,7 @@ end
Then /^the file "([^"]*)" should contain '([^']*)'$/ do |file, partial_content|
check_file_content(file, partial_content, true)
end
And /the file "(.*)" should be gzipped/ do |file|
expect(File.binread(File.join(current_dir, file), 2)).to eq(['1F8B'].pack('H*'))
end

View file

@ -68,29 +68,29 @@ When /^I go to "([^\"]*)"$/ do |url|
end
Then /^going to "([^\"]*)" should not raise an exception$/ do |url|
lambda { @browser.get(URI.escape(url)) }.should_not raise_exception
expect{ @browser.get(URI.escape(url)) }.to_not raise_exception
end
Then /^the content type should be "([^\"]*)"$/ do |expected|
@browser.last_response.content_type.should start_with(expected)
expect(@browser.last_response.content_type).to start_with(expected)
end
Then /^I should see "([^\"]*)"$/ do |expected|
@browser.last_response.body.should include(expected)
expect(@browser.last_response.body).to include(expected)
end
Then /^I should see '([^\']*)'$/ do |expected|
@browser.last_response.body.should include(expected)
expect(@browser.last_response.body).to include(expected)
end
Then /^I should see:$/ do |expected|
@browser.last_response.body.should include(expected)
expect(@browser.last_response.body).to include(expected)
end
Then /^I should not see "([^\"]*)"$/ do |expected|
@browser.last_response.body.should_not include(expected)
expect(@browser.last_response.body).to_not include(expected)
end
Then /^I should see "([^\"]*)" lines$/ do |lines|
@browser.last_response.body.chomp.split($/).length.should == lines.to_i
expect(@browser.last_response.body.chomp.split($/).length).to eq(lines.to_i)
end

View file

@ -3,13 +3,13 @@ require 'middleman-core/util'
describe "Middleman::Util#binary?" do
%w(plain.txt unicode.txt unicode).each do |file|
it "recognizes #{file} as not binary" do
expect(Middleman::Util.binary?(File.join(File.dirname(__FILE__), "binary_spec/#{file}"))).to be_false
expect(Middleman::Util.binary?(File.join(File.dirname(__FILE__), "binary_spec/#{file}"))).to be false
end
end
%w(middleman.png middleman stars.svgz).each do |file|
it "recognizes #{file} as binary" do
expect(Middleman::Util.binary?(File.join(File.dirname(__FILE__), "binary_spec/#{file}"))).to be_true
expect(Middleman::Util.binary?(File.join(File.dirname(__FILE__), "binary_spec/#{file}"))).to be true
end
end
end