diff --git a/features/create_sites.feature b/features/create_sites.feature index d10f1625..4f5385b0 100644 --- a/features/create_sites.feature +++ b/features/create_sites.feature @@ -29,7 +29,7 @@ Feature: Create sites Scenario: Basic site with layout and a post Given I have a _layouts directory And I have a _posts directory - And I have the following post: + And I have the following posts: | title | date | layout | content | | Wargames | 3/27/2009 | default | The only winning move is not to play. | And I have a default layout that contains "Post Layout: {{ content }}" @@ -37,6 +37,36 @@ Feature: Create sites Then the _site directory should exist And I should see "Post Layout:
The only winning move is not to play.
" in "_site/2009/03/27/wargames.html" + Scenario: Basic site with layouts, pages, posts and files + Given I have a _layouts directory + And I have a page layout that contains "Page Layout: {{ site.posts.size }}" + And I have a post layout that contains "Post Layout: {{ content }}" + And I have an "index.html" page with layout "page" that contains "site index page" + And I have a blog directory + And I have a "blog/index.html" page with layout "page" that contains "category index page" + And I have an "about.html" file that contains "No replacement {{ site.posts.size }}" + And I have an "another_file" file that contains "" + And I have a _posts directory + And I have the following posts: + | title | date | layout | content | + | entry1 | 3/27/2009 | post | content for entry1. | + | entry2 | 4/27/2009 | post | content for entry2. | + And I have a category/_posts directory + And I have the following posts in "category": + | title | date | layout | content | + | entry3 | 5/27/2009 | post | content for entry3. | + | entry4 | 6/27/2009 | post | content for entry4. | + When I run jekyll + Then the _site directory should exist + And I should see "Page Layout: 4" in "_site/index.html" + And I should see "No replacement \{\{ site.posts.size \}\}" in "_site/about.html" + And I should see "" in "_site/another_file" + And I should see "Page Layout: 4" in "_site/blog/index.html" + And I should see "Post Layout:content for entry1.
" in "_site/2009/03/27/entry1.html" + And I should see "Post Layout:content for entry2.
" in "_site/2009/04/27/entry2.html" + And I should see "Post Layout:content for entry3.
" in "_site/category/2009/05/27/entry3.html" + And I should see "Post Layout:content for entry4.
" in "_site/category/2009/06/27/entry4.html" + Scenario: Basic site with include tag Given I have a _includes directory And I have an "index.html" page that contains "Basic Site with include tag: {% include about.textile %}" diff --git a/features/step_definitions/jekyll_steps.rb b/features/step_definitions/jekyll_steps.rb index 0c173988..9fc91013 100644 --- a/features/step_definitions/jekyll_steps.rb +++ b/features/step_definitions/jekyll_steps.rb @@ -13,7 +13,7 @@ Given /^I have a blank site in "(.*)"$/ do |path| end # Like "I have a foo file" but gives a yaml front matter so jekyll actually processes it -Given /^I have an "(.*)" page(?: with (.*) "(.*)")? that contains "(.*)"$/ do |file, key, value, text| +Given /^I have an? "(.*)" page(?: with (.*) "(.*)")? that contains "(.*)"$/ do |file, key, value, text| File.open(file, 'w') do |f| f.write <