File: create_sites.feature

package info (click to toggle)
jekyll 2.2.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 2,908 kB
  • ctags: 687
  • sloc: ruby: 6,811; sh: 121; xml: 106; makefile: 35
file content (158 lines) | stat: -rw-r--r-- 8,162 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
Feature: Create sites
  As a hacker who likes to blog
  I want to be able to make a static site
  In order to share my awesome ideas with the interwebs

  Scenario: Blank site
    Given I do not have a "test_blank" directory
    When I run jekyll new test_blank --blank
    Then the test_blank/_layouts directory should exist
    And the test_blank/_posts directory should exist
    And the "test_blank/index.html" file should exist

  Scenario: Basic site
    Given I have an "index.html" file that contains "Basic Site"
    When I run jekyll build
    Then the _site directory should exist
    And I should see "Basic Site" in "_site/index.html"

  Scenario: Basic site with a post
    Given I have a _posts directory
    And I have the following post:
      | title   | date       | content          |
      | Hackers | 2009-03-27 | My First Exploit |
    When I run jekyll build
    Then the _site directory should exist
    And I should see "My First Exploit" in "_site/2009/03/27/hackers.html"

  Scenario: Basic site with layout and a page
    Given I have a _layouts directory
    And I have an "index.html" page with layout "default" that contains "Basic Site with Layout"
    And I have a default layout that contains "Page Layout: {{ content }}"
    When I run jekyll build
    Then the _site directory should exist
    And I should see "Page Layout: Basic Site with Layout" in "_site/index.html"

  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 posts:
      | title    | date       | layout  | content                               |
      | Wargames | 2009-03-27 | default | The only winning move is not to play. |
    And I have a default layout that contains "Post Layout: {{ content }}"
    When I run jekyll build
    Then the _site directory should exist
    And I should see "Post Layout: <p>The only winning move is not to play.</p>" in "_site/2009/03/27/wargames.html"

  Scenario: Basic site with layout inside a subfolder and a post
    Given I have a _layouts directory
    And I have a _posts directory
    And I have the following posts:
      | title    | date       | layout      | content                               |
      | Wargames | 2009-03-27 | post/simple | The only winning move is not to play. |
    And I have a post/simple layout that contains "Post Layout: {{ content }}"
    When I run jekyll build
    Then the _site directory should exist
    And I should see "Post Layout: <p>The only winning move is not to play.</p>" 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 {{ page.title }}: {{ content }}"
    And I have a post layout that contains "Post {{ page.title }}: {{ content }}"
    And I have an "index.html" page with layout "page" that contains "Site contains {{ site.pages.size }} pages and {{ site.posts.size }} posts"
    And I have a blog directory
    And I have a "blog/index.html" page with layout "page" that contains "blog 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 | 2009-03-27 | post   | content for entry1. |
      | entry2 | 2009-04-27 | post   | content for entry2. |
    And I have a category/_posts directory
    And I have the following posts in "category":
      | title  | date       | layout | content             |
      | entry3 | 2009-05-27 | post   | content for entry3. |
      | entry4 | 2009-06-27 | post   | content for entry4. |
    When I run jekyll build
    Then the _site directory should exist
    And I should see "Page : Site contains 2 pages and 4 posts" 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 : blog category index page" in "_site/blog/index.html"
    And I should see "Post entry1: <p>content for entry1.</p>" in "_site/2009/03/27/entry1.html"
    And I should see "Post entry2: <p>content for entry2.</p>" in "_site/2009/04/27/entry2.html"
    And I should see "Post entry3: <p>content for entry3.</p>" in "_site/category/2009/05/27/entry3.html"
    And I should see "Post entry4: <p>content for entry4.</p>" 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 %}"
    And I have an "_includes/about.textile" file that contains "Generated by Jekyll"
    When I run jekyll build
    Then the _site directory should exist
    And I should see "Basic Site with include tag: Generated by Jekyll" in "_site/index.html"

  Scenario: Basic site with subdir include tag
    Given I have a _includes directory
    And I have an "_includes/about.textile" file that contains "Generated by Jekyll"
    And I have an info directory
    And I have an "info/index.html" page that contains "Basic Site with subdir include tag: {% include about.textile %}"
    When I run jekyll build
    Then the _site directory should exist
    And I should see "Basic Site with subdir include tag: Generated by Jekyll" in "_site/info/index.html"

  Scenario: Basic site with nested include tag
    Given I have a _includes directory
    And I have an "_includes/about.textile" file that contains "Generated by {% include jekyll.textile %}"
    And I have an "_includes/jekyll.textile" file that contains "Jekyll"
    And I have an "index.html" page that contains "Basic Site with include tag: {% include about.textile %}"
    When I run jekyll build
    Then the _site directory should exist
    And I should see "Basic Site with include tag: Generated by Jekyll" in "_site/index.html"

  Scenario: Basic site with internal post linking
    Given I have an "index.html" page that contains "URL: {% post_url 2020-01-31-entry2 %}"
    And I have a configuration file with "permalink" set to "pretty"
    And I have a _posts directory
    And I have the following posts:
      | title  | date       | layout | content             |
      | entry1 | 2007-12-31 | post   | content for entry1. |
      | entry2 | 2020-01-31 | post   | content for entry2. |
    When I run jekyll build
    Then the _site directory should exist
    And I should see "URL: /2020/01/31/entry2/" in "_site/index.html"

  Scenario: Basic site with whitelisted dotfile
    Given I have an ".htaccess" file that contains "SomeDirective"
    When I run jekyll build
    Then the _site directory should exist
    And I should see "SomeDirective" in "_site/.htaccess"

  Scenario: File was replaced by a directory
    Given I have a "test" file that contains "some stuff"
    When I run jekyll build
    Then the _site directory should exist
    When I delete the file "test"
    Given I have a test directory
    And I have a "test/index.html" file that contains "some other stuff"
    When I run jekyll build
    Then the _site/test directory should exist
    And I should see "some other stuff" in "_site/test/index.html"

  Scenario: Basic site with unpublished page
    Given I have an "index.html" page with title "index" that contains "Published page"
    And I have a "public.html" page with published "true" that contains "Explicitly published page"
    And I have a "secret.html" page with published "false" that contains "Unpublished page"

    When I run jekyll build
    Then the _site directory should exist
    And the "_site/index.html" file should exist
    And the "_site/public.html" file should exist
    But the "_site/secret.html" file should not exist

    When I run jekyll build --unpublished
    Then the _site directory should exist
    And the "_site/index.html" file should exist
    And the "_site/public.html" file should exist
    And the "_site/secret.html" file should exist