Merge pull request #1312 from Arcovion/windows-specs
Fix specs on windows
This commit is contained in:
commit
249c649760
46
Gemfile
46
Gemfile
|
@ -1,39 +1,35 @@
|
||||||
source 'https://rubygems.org'
|
source 'https://rubygems.org'
|
||||||
|
|
||||||
# Build and doc tools
|
# Build and doc tools
|
||||||
gem 'rake', '~> 10.3.2', require: false
|
gem 'rake', '~> 10.3', require: false
|
||||||
gem 'yard', '~> 0.8.0', require: false
|
gem 'yard', '~> 0.8', require: false
|
||||||
|
|
||||||
# Test tools
|
# Test tools
|
||||||
gem 'cucumber', '~> 1.3.1'
|
gem 'pry', '~> 0.10', group: :development
|
||||||
gem 'fivemat', '~> 1.2.1'
|
gem 'aruba', '~> 0.6'
|
||||||
gem 'aruba', '~> 0.6.0'
|
gem 'rspec', '~> 3.0'
|
||||||
gem 'rspec', '~> 2.12'
|
gem 'fivemat', '~> 1.3'
|
||||||
gem 'simplecov'
|
gem 'cucumber', '~> 1.3'
|
||||||
|
|
||||||
# Optional middleman dependencies, included for tests
|
# Optional middleman dependencies, included for tests
|
||||||
gem 'sinatra', require: false
|
gem 'less', '2.3.0', require: false
|
||||||
gem 'slim', require: false
|
gem 'slim', '>= 2.0', require: false
|
||||||
gem 'liquid', require: false
|
gem 'liquid', '>= 2.6', require: false
|
||||||
gem 'less', '~> 2.3.0', require: false
|
gem 'stylus', '>= 1.0', require: false
|
||||||
gem 'stylus', require: false
|
gem 'sinatra', '>= 1.4', require: false
|
||||||
gem 'asciidoctor', require: false
|
gem 'redcarpet', '>= 3.1', require: false unless RUBY_ENGINE == 'jruby'
|
||||||
|
gem 'asciidoctor', '>= 0.1', require: false
|
||||||
|
|
||||||
platforms :ruby do
|
# For less, note there is no compatible JS runtime for windows
|
||||||
gem 'therubyracer'
|
gem 'therubyracer', '>= 0.12', platforms: :ruby
|
||||||
gem 'redcarpet', '~> 3.1'
|
gem 'therubyrhino', '>= 2.0', platforms: :jruby
|
||||||
gem 'pry', require: false, group: :development
|
|
||||||
end
|
|
||||||
|
|
||||||
platforms :jruby do
|
|
||||||
gem 'therubyrhino'
|
|
||||||
end
|
|
||||||
|
|
||||||
# Code Quality
|
# Code Quality
|
||||||
gem 'coveralls', require: false
|
gem 'rubocop', '~> 0.24', require: false
|
||||||
gem 'rubocop', require: false
|
gem 'simplecov', '0.7.1', require: false
|
||||||
|
gem 'coveralls', '~> 0.7', require: false
|
||||||
|
|
||||||
# Middleman itself
|
# Middleman itself
|
||||||
|
gem 'middleman', path: 'middleman'
|
||||||
gem 'middleman-core', path: 'middleman-core'
|
gem 'middleman-core', path: 'middleman-core'
|
||||||
gem 'middleman-sprockets', github: 'middleman/middleman-sprockets'
|
gem 'middleman-sprockets', github: 'middleman/middleman-sprockets'
|
||||||
gem 'middleman', path: 'middleman'
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ Cucumber::Rake::Task.new do |t|
|
||||||
exempt_tags = ['--tags ~@wip']
|
exempt_tags = ['--tags ~@wip']
|
||||||
exempt_tags << '--tags ~@nojava' if RUBY_PLATFORM == 'java'
|
exempt_tags << '--tags ~@nojava' if RUBY_PLATFORM == 'java'
|
||||||
exempt_tags << '--tags ~@encoding' unless Object.const_defined?(:Encoding)
|
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'
|
exempt_tags << '--tags ~@travishatesme' if ENV['TRAVIS'] == 'true'
|
||||||
t.cucumber_opts = "--color #{exempt_tags.join(' ')} --strict --format #{ENV['CUCUMBER_FORMAT'] || 'Fivemat'}"
|
t.cucumber_opts = "--color #{exempt_tags.join(' ')} --strict --format #{ENV['CUCUMBER_FORMAT'] || 'Fivemat'}"
|
||||||
end
|
end
|
||||||
|
@ -27,6 +28,7 @@ Cucumber::Rake::Task.new(:cucumber_wip) do |t|
|
||||||
exempt_tags = ['--tags @wip']
|
exempt_tags = ['--tags @wip']
|
||||||
exempt_tags << '--tags ~@nojava' if RUBY_PLATFORM == 'java'
|
exempt_tags << '--tags ~@nojava' if RUBY_PLATFORM == 'java'
|
||||||
exempt_tags << '--tags ~@encoding' unless Object.const_defined?(:Encoding)
|
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'}"
|
t.cucumber_opts = "--color #{exempt_tags.join(' ')} --strict --format #{ENV['CUCUMBER_FORMAT'] || 'Fivemat'}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -34,7 +36,7 @@ require 'rspec/core/rake_task'
|
||||||
desc 'Run RSpec'
|
desc 'Run RSpec'
|
||||||
RSpec::Core::RakeTask.new do |spec|
|
RSpec::Core::RakeTask.new do |spec|
|
||||||
spec.pattern = 'spec/**/*_spec.rb'
|
spec.pattern = 'spec/**/*_spec.rb'
|
||||||
spec.rspec_opts = ['--color', '--format nested']
|
spec.rspec_opts = ['--color', '--format documentation']
|
||||||
end
|
end
|
||||||
|
|
||||||
desc 'Run tests, both RSpec and Cucumber'
|
desc 'Run tests, both RSpec and Cucumber'
|
||||||
|
|
|
@ -9,8 +9,7 @@ Feature: GZIP assets during build
|
||||||
| build/javascripts/test.js.gz |
|
| build/javascripts/test.js.gz |
|
||||||
| build/stylesheets/test.css |
|
| build/stylesheets/test.css |
|
||||||
| build/stylesheets/test.css.gz |
|
| build/stylesheets/test.css.gz |
|
||||||
When I run `file build/javascripts/test.js.gz`
|
And the file "build/javascripts/test.js.gz" should be gzipped
|
||||||
Then the output should contain "gzip"
|
|
||||||
|
|
||||||
Scenario: Preview server doesn't change
|
Scenario: Preview server doesn't change
|
||||||
Given the Server is running at "gzip-app"
|
Given the Server is running at "gzip-app"
|
||||||
|
|
|
@ -19,10 +19,7 @@ Feature: More default extensions
|
||||||
When I go to "/stylesheets/style2.css"
|
When I go to "/stylesheets/style2.css"
|
||||||
Then I should see "section"
|
Then I should see "section"
|
||||||
Then I should not see "I am in the layout"
|
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
|
Scenario: Default extensions build
|
||||||
Given a fixture app "more-implied-extensions-app"
|
Given a fixture app "more-implied-extensions-app"
|
||||||
And a successfully built app at "more-implied-extensions-app"
|
And a successfully built app at "more-implied-extensions-app"
|
||||||
|
@ -35,7 +32,6 @@ Feature: More default extensions
|
||||||
| javascripts/app.js |
|
| javascripts/app.js |
|
||||||
| stylesheets/style.css |
|
| stylesheets/style.css |
|
||||||
| stylesheets/style2.css |
|
| stylesheets/style2.css |
|
||||||
| stylesheets/style3.css |
|
|
||||||
And the file "test.html" should contain "Hello"
|
And the file "test.html" should contain "Hello"
|
||||||
And the file "test2.html" should contain "World"
|
And the file "test2.html" should contain "World"
|
||||||
And the file "test3.html" should contain "Howdy"
|
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/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 contain "section"
|
||||||
And the file "stylesheets/style2.css" should not contain "I am in the layout"
|
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"
|
|
|
@ -1,6 +1,6 @@
|
||||||
@nojava
|
@nojava @nowindows
|
||||||
Feature: Compile a complicated Twitter bootstrap app
|
Feature: Compile a complicated Twitter bootstrap app
|
||||||
|
|
||||||
Scenario: User drops Twitter Bootstrap source into an app
|
Scenario: User drops Twitter Bootstrap source into an app
|
||||||
|
|
||||||
Given a successfully built app at "twitter-bootstrap-app"
|
Given a successfully built app at "twitter-bootstrap-app"
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
@base: #f938ab;
|
|
||||||
.box {
|
|
||||||
color: @base;
|
|
||||||
}
|
|
|
@ -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/cucumber'
|
||||||
require 'aruba/jruby'
|
require 'aruba/jruby'
|
||||||
require 'middleman-core/step_definitions/middleman_steps'
|
require 'middleman-core/step_definitions/middleman_steps'
|
||||||
require 'middleman-core/step_definitions/builder_steps'
|
require 'middleman-core/step_definitions/builder_steps'
|
||||||
require 'middleman-core/step_definitions/server_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
|
Before do
|
||||||
@aruba_timeout_seconds = RUBY_PLATFORM == 'java' ? 120 : 60
|
@aruba_timeout_seconds = RUBY_PLATFORM == 'java' ? 120 : 60
|
||||||
end
|
end
|
||||||
|
|
|
@ -71,3 +71,7 @@ end
|
||||||
Then /^the file "([^"]*)" should contain '([^']*)'$/ do |file, partial_content|
|
Then /^the file "([^"]*)" should contain '([^']*)'$/ do |file, partial_content|
|
||||||
check_file_content(file, partial_content, true)
|
check_file_content(file, partial_content, true)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
And /the file "(.*)" should be gzipped/ do |file|
|
||||||
|
expect(File.binread(File.join(current_dir, file), 2)).to eq(['1F8B'].pack('H*'))
|
||||||
|
end
|
||||||
|
|
|
@ -68,29 +68,29 @@ When /^I go to "([^\"]*)"$/ do |url|
|
||||||
end
|
end
|
||||||
|
|
||||||
Then /^going to "([^\"]*)" should not raise an exception$/ do |url|
|
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
|
end
|
||||||
|
|
||||||
Then /^the content type should be "([^\"]*)"$/ do |expected|
|
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
|
end
|
||||||
|
|
||||||
Then /^I should see "([^\"]*)"$/ do |expected|
|
Then /^I should see "([^\"]*)"$/ do |expected|
|
||||||
@browser.last_response.body.should include(expected)
|
expect(@browser.last_response.body).to include(expected)
|
||||||
end
|
end
|
||||||
|
|
||||||
Then /^I should see '([^\']*)'$/ do |expected|
|
Then /^I should see '([^\']*)'$/ do |expected|
|
||||||
@browser.last_response.body.should include(expected)
|
expect(@browser.last_response.body).to include(expected)
|
||||||
end
|
end
|
||||||
|
|
||||||
Then /^I should see:$/ do |expected|
|
Then /^I should see:$/ do |expected|
|
||||||
@browser.last_response.body.should include(expected)
|
expect(@browser.last_response.body).to include(expected)
|
||||||
end
|
end
|
||||||
|
|
||||||
Then /^I should not see "([^\"]*)"$/ do |expected|
|
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
|
end
|
||||||
|
|
||||||
Then /^I should see "([^\"]*)" lines$/ do |lines|
|
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
|
end
|
||||||
|
|
|
@ -3,13 +3,13 @@ require 'middleman-core/util'
|
||||||
describe "Middleman::Util#binary?" do
|
describe "Middleman::Util#binary?" do
|
||||||
%w(plain.txt unicode.txt unicode).each do |file|
|
%w(plain.txt unicode.txt unicode).each do |file|
|
||||||
it "recognizes #{file} as not binary" do
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
%w(middleman.png middleman stars.svgz).each do |file|
|
%w(middleman.png middleman stars.svgz).each do |file|
|
||||||
it "recognizes #{file} as binary" do
|
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
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue