spec/slide_deck_spec.rb in deckrb-0.4.2 vs spec/slide_deck_spec.rb in deckrb-0.5.0
- old
+ new
@@ -2,58 +2,92 @@
require "#{here}/spec_helper"
require "deck/slide_deck"
module Deck
- describe SlideDeck do
+ describe SlideDeck do
- include Files
+ include Files
- def doc
- @doc ||= begin
- @html = deck_widget.to_html
- noko_doc @html
+ def doc
+ @doc ||= begin
+ @html = deck_widget.to_html
+ noko_doc @html
+ end
end
- end
- def deck_widget options = {}
- @deck_widget ||= SlideDeck.new options
- end
+ def deck_widget options = {}
+ @deck_widget ||= SlideDeck.new options
+ end
- it "renders a basic deck.js HTML page" do
- assert { doc }
- assert { @html.include? '<link href="/deck.js/core/deck.core.css" rel="stylesheet" />' }
- end
+ it "renders a basic deck.js HTML page" do
+ assert { doc }
+ assert { @html.include? '<link href="/deck.js/core/deck.core.css" rel="stylesheet" />' }
+ end
- it "contains a single dummy slide" do
- assert { doc.css('section.slide').size == 1 }
- end
+ it "contains a single dummy slide" do
+ assert { doc.css('section.slide').size == 1 }
+ end
- it "renders a markdown file with one slide" do
- file = file("hello.md", "# hello")
- deck_widget :slides => Slide.split(File.read file)
- slides = doc.css('section.slide')
- assert { slides.size == 1 }
- slide = slides.first
- assert { slide["id"] == "hello" }
- assert { noko_html(slide) == "<section class=\"slide\" id=\"hello\">" +
- "<h1>hello</h1>\n" +
- "</section>"
- }
- end
+ it "renders a markdown file with one slide" do
+ file = file("hello.md", "# hello")
+ deck_widget :slides => Slide.split(File.read file)
+ slides = doc.css('section.slide')
+ assert { slides.size == 1 }
+ slide = slides.first
+ assert { slide["id"] == "hello" }
+ assert { noko_html(slide) == "<section class=\"slide\" id=\"hello\">" +
+ "<h1>hello</h1>\n" +
+ "</section>"
+ }
+ end
- it "includes a table of contents" do
- deck_widget :slides => Slide.split("# Foo\n\n# Bar\n")
- toc = doc.css('.slide_toc')
- assert { toc.size == 1 }
- assert { noko_html(toc.first) == "<div class=\"slide_toc\">" +
- "<div class=\"toggle\">[toc]</div>" +
- "<ul>" +
- "<li><a href=\"#foo\">Foo</a></li>" +
- "<li><a href=\"#bar\">Bar</a></li>" +
- "</ul>" +
- "</div>"
- }
- end
+ it "includes a table of contents" do
+ deck_widget :slides => Slide.split("# Foo\n\n# Bar\n")
+ toc = doc.css('.slide_toc')
+ assert { toc.size == 1 }
+ assert { noko_html(toc.first) == "<div class=\"slide_toc\">" +
+ "<div class=\"toggle\">[contents]</div>" +
+ "<div class=\"table\">" +
+ "<h2>deck.rb presentation</h2>" +
+ "<ul>" +
+ "<li><a href=\"#foo\">Foo</a></li>" +
+ "<li><a href=\"#bar\">Bar</a></li>" +
+ "</ul>" +
+ "</div>"
+ "</div>"
+ }
+ end
- end
+ describe "themes" do
+
+ def style_theme_node
+ doc.css("head link[rel='stylesheet'][id='style-theme-link']").first
+ end
+
+ def transition_theme_node
+ doc.css("head link[rel='stylesheet'][id='transition-theme-link']").first
+ end
+
+ it "defaults to 'swiss' style theme" do
+ deck_widget :slides => Slide.split("# Foo\n")
+ link_node = style_theme_node()
+ assert { link_node['href'] == "/deck.js/themes/style/swiss.css" }
+ end
+
+ it "defaults to 'horizontal-slide' transition theme" do
+ deck_widget :slides => Slide.split("# Foo\n")
+ link_node = transition_theme_node()
+ assert { link_node['href'] == "/deck.js/themes/transition/horizontal-slide.css" }
+ end
+
+ it "accepts theme names params" do
+ deck_widget :slides => Slide.split("# Foo\n"), :style => "foo", :transition => "bar"
+
+ assert { style_theme_node['href'] == "/deck.js/themes/style/foo.css" }
+ assert { transition_theme_node['href'] == "/deck.js/themes/transition/bar.css" }
+ end
+
+ end
+
+ end
end