mirror of
https://github.com/middleman/middleman.git
synced 2022-11-09 12:20:27 -05:00
Merge pull request #1312 from Arcovion/windows-specs
Fix specs on windows
This commit is contained in:
commit
249c649760
10 changed files with 55 additions and 56 deletions
46
Gemfile
46
Gemfile
|
@ -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'
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -19,10 +19,7 @@ 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"
|
||||
And a successfully built app at "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"
|
|
@ -1,6 +1,6 @@
|
|||
@nojava
|
||||
Feature: Compile a complicated Twitter bootstrap app
|
||||
@nojava @nowindows
|
||||
Feature: Compile a complicated Twitter bootstrap 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/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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue