diff --git a/features/collections.feature b/features/collections.feature index ac67611e..60bba8a1 100644 --- a/features/collections.feature +++ b/features/collections.feature @@ -77,7 +77,8 @@ Feature: Collections When I run jekyll build Then I should get a zero exit status Then the _site directory should exist - And I should see "Collections: _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/um_hi.md" in "_site/index.html" + And I should see "Collections: _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/um_hi.md" in "_site/index.html" unless Windows + And I should see "Collections: _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/yaml_with_dots.md" in "_site/index.html" if on Windows Scenario: Collections specified as an hash Given I have an "index.html" page that contains "Collections: {% for method in site.methods %}{{ method.relative_path }} {% endfor %}" @@ -90,7 +91,8 @@ Feature: Collections When I run jekyll build Then I should get a zero exit status Then the _site directory should exist - And I should see "Collections: _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/um_hi.md" in "_site/index.html" + And I should see "Collections: _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/um_hi.md" in "_site/index.html" unless Windows + And I should see "Collections: _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/yaml_with_dots.md" in "_site/index.html" if on Windows Scenario: All the documents Given I have an "index.html" page that contains "All documents: {% for doc in site.documents %}{{ doc.relative_path }} {% endfor %}" @@ -103,7 +105,8 @@ Feature: Collections When I run jekyll build Then I should get a zero exit status Then the _site directory should exist - And I should see "All documents: _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/um_hi.md" in "_site/index.html" + And I should see "All documents: _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/um_hi.md" in "_site/index.html" unless Windows + And I should see "All documents: _methods/collection/entries _methods/configuration.md _methods/escape-\+ #%20\[\].md _methods/sanitized_path.md _methods/site/generate.md _methods/site/initialize.md _methods/yaml_with_dots.md" in "_site/index.html" if on Windows Scenario: Documents have an output attribute, which is the converted HTML Given I have an "index.html" page that contains "Second document's output: {{ site.documents[1].output }}" @@ -142,7 +145,8 @@ Feature: Collections When I run jekyll build Then I should get a zero exit status And the _site directory should exist - And I should see "2. of 8:
Page without title.
" in "_site/index.html" + And I should see "2. of 8:Page without title.
" in "_site/index.html" unless Windows + And I should see "2. of 7:Page without title.
" in "_site/index.html" if on Windows Scenario: Sort by relative_path Given I have an "index.html" page that contains "Collections: {% assign methods = site.methods | sort: 'relative_path' %}{{ methods | map:"title" | join: ", " }}" @@ -155,7 +159,8 @@ Feature: Collections When I run jekyll build Then I should get a zero exit status Then the _site directory should exist - And I should see "Collections: Collection#entries, Jekyll.configuration, Jekyll.escape, Jekyll.sanitized_path, Site#generate, Initialize, Site#generate," in "_site/index.html" + And I should see "Collections: Collection#entries, Jekyll.configuration, Jekyll.escape, Jekyll.sanitized_path, Site#generate, Initialize, Site#generate," in "_site/index.html" unless Windows + And I should see "Collections: Collection#entries, Jekyll.configuration, Jekyll.escape, Jekyll.sanitized_path, Site#generate, Initialize, YAML with Dots" in "_site/index.html" if on Windows Scenario: Rendered collection with date/dateless filename Given I have an "index.html" page that contains "Collections: {% for method in site.thanksgiving %}{{ method.title }} {% endfor %}" diff --git a/features/step_definitions.rb b/features/step_definitions.rb index ffe3fff5..c6850089 100644 --- a/features/step_definitions.rb +++ b/features/step_definitions.rb @@ -179,6 +179,7 @@ Then(%r!^the (.*) directory should +(not )?exist$!) do |dir, negative| end # + Then(%r!^I should (not )?see "(.*)" in "(.*)"$!) do |negative, text, file| step %(the "#{file}" file should exist) regexp = Regexp.new(text, Regexp::MULTILINE) @@ -191,6 +192,34 @@ end # +Then(%r!^I should (not )?see "(.*)" in "(.*)" if on Windows$!) do |negative, text, file| + step %(the "#{file}" file should exist) + regexp = Regexp.new(text, Regexp::MULTILINE) + if negative.nil? || negative.empty? + if Jekyll::Utils::Platforms.really_windows? + expect(file_contents(file)).to match regexp + else + expect(file_contents(file)).not_to match regexp + end + end +end + +# + +Then(%r!^I should (not )?see "(.*)" in "(.*)" unless Windows$!) do |negative, text, file| + step %(the "#{file}" file should exist) + regexp = Regexp.new(text, Regexp::MULTILINE) + if negative.nil? || negative.empty? + if Jekyll::Utils::Platforms.really_windows? + expect(file_contents(file)).not_to match regexp + else + expect(file_contents(file)).to match regexp + end + end +end + +# + Then(%r!^I should see exactly "(.*)" in "(.*)"$!) do |text, file| step %(the "#{file}" file should exist) expect(file_contents(file).strip).to eq text diff --git a/features/support/helpers.rb b/features/support/helpers.rb index 0d809bca..11ae777b 100644 --- a/features/support/helpers.rb +++ b/features/support/helpers.rb @@ -1,5 +1,5 @@ require "fileutils" -require "jekyll/utils" +require "jekyll" require "open3" require "time" require "safe_yaml/load"