### Snippets

# helps create a simple snippet with a slug and template
def new_snippet(name, template = nil)
  @site.snippets.new(:name => name, :template => template)
end

def create_snippet(name, template = nil)
  snippet = new_snippet(name, template)
  snippet.save!
  snippet
end

# creates a snippet

Given /^a snippet named "([^"]*)" with the template:$/ do |name, template|
  @snippet = create_snippet(name, template)
end

Given /^a snippet named "([^"]*)" with id "([^"]*)" and template:$/ do |name, id, template|
  @snippet = new_snippet(name, template)
  @snippet.id = BSON::ObjectId(id)
  @snippet.save!
end

When /^I change the snippet template to "([^"]*)"$/ do |code|
  page.evaluate_script "window.application_view.view.editor.setValue('#{code}')"
end

# checks to see if a string is in the slug
Then /^I should have "(.*)" in the (.*) snippet/ do |content, snippet_slug|
  snippet = @site.snippets.where(:slug => snippet_slug).first
  raise "Could not find snippet: #{snippet_slug}" unless snippet

  snippet.template.should == content
end

