middleman/middleman-core/features/markdown_redcarpet.feature
Steven Sloan ee7c9e6a6e Add support/tests for Redcarpet 3.0.0 features
- :underline
- :highlight
- :disable_indented_code_blocks

Fix support for
- :link_attributes
- :filter_html

separate Redcarpet extensions from renderer options, add specs for missing renderer options

add specs for the missing/new redcarpet extensions, [ :lax_spacing, :underline, :highlight, :quote, :disable_indented_code_blocks, :footnotes ]

fix link_attributes option for Redcarpet

patch Tilt's reverse option aliases (they were there for RC1)

adjust test data for Redcarpet toc_data to match the current way it renders in 3.0

revert tests that aren't in redcarpet 3.0.0

add a cucumber exempt tag for mri-1.8.x

move redcarpet 3 specific extensions to a separate scenario filtered by the no18 tag
2013-08-27 11:37:37 -04:00

167 lines
5.5 KiB
Gherkin

@nojava
Feature: Markdown support
In order to test included Maruku support
Scenario: Redcarpet 2 extensions
Given a fixture app "markdown-app"
And a file named "config.rb" with:
"""
set :markdown_engine, :redcarpet
set :markdown, :no_intra_emphasis => true,
:tables => true,
:fenced_code_blocks => true,
:autolink => true,
:strikethrough => true,
:space_after_headers => true,
:superscript => true,
:lax_spacing => true
"""
Given the Server is running at "markdown-app"
When I go to "/no_intra_emphasis.html"
Then I should not see "<em>"
When I go to "/tables.html"
Then I should see "<table>"
When I go to "/fenced_code_blocks.html"
Then I should see "<code>"
When I go to "/autolink.html"
Then I should see "<a href"
When I go to "/strikethrough.html"
Then I should see "<del>"
When I go to "/space_after_headers.html"
Then I should not see "<h1>"
When I go to "/superscript.html"
Then I should see "<sup>"
When I go to "/lax_spacing.html"
Then I should see "<p>hello</p>"
@no18
Scenario: Redcarpet 3 extensions
Given a fixture app "markdown-app"
And a file named "config.rb" with:
"""
set :markdown_engine, :redcarpet
set :markdown, :underline => true,
:highlight => true,
:disable_indented_code_blocks => true
"""
Given the Server is running at "markdown-app"
When I go to "/underline.html"
Then I should see "<u>underlined</u>"
When I go to "/highlighted.html"
Then I should see "<mark>highlighted</mark>"
When I go to "/indented_code_blocks.html"
Then I should not see "<code>"
Scenario: Redcarpet smartypants extension
Given a fixture app "markdown-app"
And a file named "config.rb" with:
"""
set :markdown_engine, :redcarpet
set :markdown, :smartypants => true
"""
Given the Server is running at "markdown-app"
When I go to "/smarty_pants.html"
Then I should see "&ldquo;"
Scenario: Redcarpet::Render::HTML options
Given a fixture app "markdown-app"
And a file named "config.rb" with:
"""
set :markdown_engine, :redcarpet
set :markdown, :filter_html => true,
:no_images => true,
:no_links => true,
:with_toc_data => true,
:hard_wrap => true,
:safe_links_only => true,
:prettify => true
"""
Given the Server is running at "markdown-app"
When I go to "/filter_html.html"
Then I should not see "<em>"
When I go to "/img.html"
Then I should see "![dust mite](http://dust.mite/image.png)"
And I should not see "<img"
When I go to "/with_toc_data.html"
Then I should see 'id="toc_0"'
And I should see 'id="toc_1"'
When I go to "/hard_wrap.html"
Then I should see "br"
When I go to "/link.html"
Then I should see "[This link](http://example.net/) links"
And I should not see "<a"
When I go to "/safe_links.html"
Then I should see "[IRC](irc://chat.freenode.org/#freenode)"
When I go to "/prettify.html"
Then I should see '<code class="prettyprint">'
Scenario: Redcarpet link_attributes option
Given a fixture app "markdown-app"
And a file named "config.rb" with:
"""
set :markdown_engine, :redcarpet
set :markdown, :link_attributes => { :target => "_blank" }
"""
And a file named "source/link.html.markdown" with:
"""
[A link](/foo.html)
"""
Given the Server is running at "markdown-app"
When I go to "/link.html"
Then I should see 'target="_blank"'
Scenario: Redcarpet xhtml option
Given a fixture app "markdown-app"
And a file named "config.rb" with:
"""
set :markdown_engine, :redcarpet
set :markdown, :xhtml => true,
:hard_wrap => true
"""
Given the Server is running at "markdown-app"
When I go to "/hard_wrap.html"
Then I should see "<br/>"
Scenario: Redcarpet per-page frontmatter options
Given a fixture app "markdown-frontmatter-options-app"
And a file named "config.rb" with:
"""
set :markdown_engine, :redcarpet
set :markdown, :smartypants => true
"""
Given the Server is running at "markdown-frontmatter-options-app"
When I go to "/smarty_pants-default.html"
Then I should see "&ldquo;"
When I go to "/smarty_pants-on.html"
Then I should see "&ldquo;"
When I go to "/smarty_pants-off.html"
Then I should not see "&ldquo;"
When I go to "/tables-default.html"
Then I should not see "<table>"
When I go to "/tables-on.html"
Then I should see "<table>"
When I go to "/tables-off.html"
Then I should not see "<table>"
Scenario: Redcarpet uses our link_to and image_tag helpers
Given a fixture app "markdown-app"
And a file named "config.rb" with:
"""
set :markdown_engine, :redcarpet
activate :automatic_image_sizes
activate :directory_indexes
"""
And a file named "source/link_and_image.html.markdown" with:
"""
[A link](/smarty_pants.html)
![image](blank.gif)
"""
Given the Server is running at "markdown-app"
When I go to "/link_and_image/"
Then I should see "/smarty_pants/"
Then I should see 'width="1"'
And I should see 'height="1"'
And I should see 'src="/images/blank.gif"'