mirror of
https://github.com/moparisthebest/android.moparisthebest.org
synced 2025-02-28 16:31:44 -05:00
cucumber tests
This commit is contained in:
parent
9f40242b1e
commit
8fe52e18bc
7
Gemfile
7
Gemfile
@ -16,3 +16,10 @@ group :development do
|
|||||||
end
|
end
|
||||||
|
|
||||||
gem 'sinatra', '1.2.6'
|
gem 'sinatra', '1.2.6'
|
||||||
|
|
||||||
|
group :test do
|
||||||
|
gem 'aruba'
|
||||||
|
gem 'cucumber'
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
29
Gemfile.lock
29
Gemfile.lock
@ -4,7 +4,15 @@ GEM
|
|||||||
RedCloth (4.2.8)
|
RedCloth (4.2.8)
|
||||||
albino (1.3.3)
|
albino (1.3.3)
|
||||||
posix-spawn (>= 0.3.6)
|
posix-spawn (>= 0.3.6)
|
||||||
|
aruba (0.4.7)
|
||||||
|
childprocess (>= 0.2.2)
|
||||||
|
cucumber (>= 1.1.1)
|
||||||
|
ffi (= 1.0.9)
|
||||||
|
rspec (>= 2.7.0)
|
||||||
blankslate (2.1.2.4)
|
blankslate (2.1.2.4)
|
||||||
|
builder (3.0.0)
|
||||||
|
childprocess (0.3.1)
|
||||||
|
ffi (~> 1.0.6)
|
||||||
chunky_png (1.2.1)
|
chunky_png (1.2.1)
|
||||||
classifier (1.3.3)
|
classifier (1.3.3)
|
||||||
fast-stemmer (>= 1.0.0)
|
fast-stemmer (>= 1.0.0)
|
||||||
@ -12,10 +20,19 @@ GEM
|
|||||||
chunky_png (~> 1.2)
|
chunky_png (~> 1.2)
|
||||||
fssm (>= 0.2.7)
|
fssm (>= 0.2.7)
|
||||||
sass (~> 3.1)
|
sass (~> 3.1)
|
||||||
|
cucumber (1.1.9)
|
||||||
|
builder (>= 2.1.2)
|
||||||
|
diff-lcs (>= 1.1.2)
|
||||||
|
gherkin (~> 2.9.0)
|
||||||
|
json (>= 1.4.6)
|
||||||
|
term-ansicolor (>= 1.0.6)
|
||||||
|
diff-lcs (1.1.3)
|
||||||
directory_watcher (1.4.0)
|
directory_watcher (1.4.0)
|
||||||
fast-stemmer (1.0.0)
|
fast-stemmer (1.0.0)
|
||||||
ffi (1.0.9)
|
ffi (1.0.9)
|
||||||
fssm (0.2.7)
|
fssm (0.2.7)
|
||||||
|
gherkin (2.9.1)
|
||||||
|
json (>= 1.4.6)
|
||||||
haml (3.1.2)
|
haml (3.1.2)
|
||||||
jekyll (0.11.0)
|
jekyll (0.11.0)
|
||||||
albino (>= 1.3.2)
|
albino (>= 1.3.2)
|
||||||
@ -24,6 +41,7 @@ GEM
|
|||||||
kramdown (>= 0.13.2)
|
kramdown (>= 0.13.2)
|
||||||
liquid (>= 1.9.0)
|
liquid (>= 1.9.0)
|
||||||
maruku (>= 0.5.9)
|
maruku (>= 0.5.9)
|
||||||
|
json (1.6.5)
|
||||||
kramdown (0.13.3)
|
kramdown (0.13.3)
|
||||||
liquid (2.2.2)
|
liquid (2.2.2)
|
||||||
maruku (0.6.0)
|
maruku (0.6.0)
|
||||||
@ -35,6 +53,14 @@ GEM
|
|||||||
rake (0.9.2)
|
rake (0.9.2)
|
||||||
rb-fsevent (0.4.3.1)
|
rb-fsevent (0.4.3.1)
|
||||||
rdiscount (1.6.8)
|
rdiscount (1.6.8)
|
||||||
|
rspec (2.9.0)
|
||||||
|
rspec-core (~> 2.9.0)
|
||||||
|
rspec-expectations (~> 2.9.0)
|
||||||
|
rspec-mocks (~> 2.9.0)
|
||||||
|
rspec-core (2.9.0)
|
||||||
|
rspec-expectations (2.9.0)
|
||||||
|
diff-lcs (~> 1.1.3)
|
||||||
|
rspec-mocks (2.9.0)
|
||||||
rubypants (0.2.0)
|
rubypants (0.2.0)
|
||||||
rubypython (0.5.1)
|
rubypython (0.5.1)
|
||||||
blankslate (>= 2.1.2.3)
|
blankslate (>= 2.1.2.3)
|
||||||
@ -45,6 +71,7 @@ GEM
|
|||||||
tilt (>= 1.2.2, < 2.0)
|
tilt (>= 1.2.2, < 2.0)
|
||||||
stringex (1.3.0)
|
stringex (1.3.0)
|
||||||
syntax (1.0.0)
|
syntax (1.0.0)
|
||||||
|
term-ansicolor (1.0.7)
|
||||||
tilt (1.3.2)
|
tilt (1.3.2)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
@ -52,7 +79,9 @@ PLATFORMS
|
|||||||
|
|
||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
RedCloth
|
RedCloth
|
||||||
|
aruba
|
||||||
compass (>= 0.11)
|
compass (>= 0.11)
|
||||||
|
cucumber
|
||||||
haml (>= 3.1)
|
haml (>= 3.1)
|
||||||
jekyll
|
jekyll
|
||||||
liquid (= 2.2.2)
|
liquid (= 2.2.2)
|
||||||
|
38
Rakefile
38
Rakefile
@ -2,6 +2,10 @@ require "rubygems"
|
|||||||
require "bundler/setup"
|
require "bundler/setup"
|
||||||
require "stringex"
|
require "stringex"
|
||||||
|
|
||||||
|
ENV['CURRENT_DIR'] ||= Dir.pwd
|
||||||
|
|
||||||
|
current_dir = ENV['CURRENT_DIR']
|
||||||
|
|
||||||
## -- Rsync Deploy config -- ##
|
## -- Rsync Deploy config -- ##
|
||||||
# Be sure your public key is listed in your server's ~/.ssh/authorized_keys file
|
# Be sure your public key is listed in your server's ~/.ssh/authorized_keys file
|
||||||
ssh_user = "user@domain.com"
|
ssh_user = "user@domain.com"
|
||||||
@ -15,16 +19,17 @@ deploy_branch = "gh-pages"
|
|||||||
|
|
||||||
## -- Misc Configs -- ##
|
## -- Misc Configs -- ##
|
||||||
|
|
||||||
public_dir = "public" # compiled site directory
|
public_dir = File.join(current_dir, 'public') # compiled site directory
|
||||||
source_dir = "source" # source file directory
|
source_dir = File.join(current_dir, 'source') # source file directory
|
||||||
blog_index_dir = 'source' # directory for your blog's index page (if you put your index in source/blog/index.html, set this to 'source/blog')
|
blog_index_dir = File.join(current_dir, 'source') # directory for your blog's index page (if you put your index in source/blog/index.html, set this to 'source/blog')
|
||||||
deploy_dir = "_deploy" # deploy directory (for Github pages deployment)
|
sass_dir = File.join(current_dir, 'sass') # sass directory
|
||||||
stash_dir = "_stash" # directory to stash posts for speedy generation
|
deploy_dir = "_deploy" # deploy directory (for Github pages deployment)
|
||||||
posts_dir = "_posts" # directory for blog files
|
stash_dir = "_stash" # directory to stash posts for speedy generation
|
||||||
themes_dir = ".themes" # directory for blog files
|
posts_dir = "_posts" # directory for blog files
|
||||||
new_post_ext = "markdown" # default new post file extension when using the new_post task
|
themes_dir = ".themes" # directory for blog files
|
||||||
new_page_ext = "markdown" # default new page file extension when using the new_page task
|
new_post_ext = "markdown" # default new post file extension when using the new_post task
|
||||||
server_port = "4000" # port for preview server eg. localhost:4000
|
new_page_ext = "markdown" # default new page file extension when using the new_page task
|
||||||
|
server_port = "4000" # port for preview server eg. localhost:4000
|
||||||
|
|
||||||
|
|
||||||
desc "Initial setup for Octopress: copies the default theme into the path of Jekyll's generator. Rake install defaults to rake install[classic] to install a different theme run rake install[some_theme_name]"
|
desc "Initial setup for Octopress: copies the default theme into the path of Jekyll's generator. Rake install defaults to rake install[classic] to install a different theme run rake install[some_theme_name]"
|
||||||
@ -37,8 +42,8 @@ task :install, :theme do |t, args|
|
|||||||
puts "## Copying "+theme+" theme into ./#{source_dir} and ./sass"
|
puts "## Copying "+theme+" theme into ./#{source_dir} and ./sass"
|
||||||
mkdir_p source_dir
|
mkdir_p source_dir
|
||||||
cp_r "#{themes_dir}/#{theme}/source/.", source_dir
|
cp_r "#{themes_dir}/#{theme}/source/.", source_dir
|
||||||
mkdir_p "sass"
|
mkdir_p sass_dir
|
||||||
cp_r "#{themes_dir}/#{theme}/sass/.", "sass"
|
cp_r "#{themes_dir}/#{theme}/sass/.", sass_dir
|
||||||
mkdir_p "#{source_dir}/#{posts_dir}"
|
mkdir_p "#{source_dir}/#{posts_dir}"
|
||||||
mkdir_p public_dir
|
mkdir_p public_dir
|
||||||
end
|
end
|
||||||
@ -116,7 +121,7 @@ desc "Create a new page in #{source_dir}/(filename)/index.#{new_page_ext}"
|
|||||||
task :new_page, :filename do |t, args|
|
task :new_page, :filename do |t, args|
|
||||||
raise "### You haven't set anything up yet. First run `rake install` to set up an Octopress theme." unless File.directory?(source_dir)
|
raise "### You haven't set anything up yet. First run `rake install` to set up an Octopress theme." unless File.directory?(source_dir)
|
||||||
args.with_defaults(:filename => 'new-page')
|
args.with_defaults(:filename => 'new-page')
|
||||||
page_dir = [source_dir]
|
page_dir = [File.basename(source_dir)]
|
||||||
if args.filename.downcase =~ /(^.+\/)?(.+)/
|
if args.filename.downcase =~ /(^.+\/)?(.+)/
|
||||||
filename, dot, extension = $2.rpartition('.').reject(&:empty?) # Get filename and extension
|
filename, dot, extension = $2.rpartition('.').reject(&:empty?) # Get filename and extension
|
||||||
title = filename
|
title = filename
|
||||||
@ -128,7 +133,7 @@ task :new_page, :filename do |t, args|
|
|||||||
extension ||= new_page_ext
|
extension ||= new_page_ext
|
||||||
page_dir = page_dir.map! { |d| d = d.to_url }.join('/') # Sanitize path
|
page_dir = page_dir.map! { |d| d = d.to_url }.join('/') # Sanitize path
|
||||||
filename = filename.downcase.to_url
|
filename = filename.downcase.to_url
|
||||||
|
page_dir = File.join(current_dir, page_dir)
|
||||||
mkdir_p page_dir
|
mkdir_p page_dir
|
||||||
file = "#{page_dir}/#{filename}.#{extension}"
|
file = "#{page_dir}/#{filename}.#{extension}"
|
||||||
if File.exist?(file)
|
if File.exist?(file)
|
||||||
@ -225,7 +230,10 @@ end
|
|||||||
|
|
||||||
desc "copy dot files for deployment"
|
desc "copy dot files for deployment"
|
||||||
task :copydot, :source, :dest do |t, args|
|
task :copydot, :source, :dest do |t, args|
|
||||||
FileList["#{args.source}/**/.*"].exclude("**/.", "**/..", "**/.DS_Store", "**/._*").each do |file|
|
jekyll_config = YAML.load(IO.read('_config.yml'))
|
||||||
|
whitelist = ['.htaccess', '**/*']
|
||||||
|
whitelist += jekyll_config.include?(:whitelist) if jekyll_config.include?(:whitelist)
|
||||||
|
FileList["#{args.source}/**/.*"].add(*whitelist).exclude("**/.", "**/.*", "**/..", "**/.DS_Store", "**/._*").each do |file|
|
||||||
cp_r file, file.gsub(/#{args.source}/, "#{args.dest}") unless File.directory?(file)
|
cp_r file, file.gsub(/#{args.source}/, "#{args.dest}") unless File.directory?(file)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
14
features/jekyll.feature
Normal file
14
features/jekyll.feature
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
Feature: Jekyll integration
|
||||||
|
Scenario: Install octopress
|
||||||
|
When I install octopress
|
||||||
|
Then I should have created an octopress skeleton
|
||||||
|
|
||||||
|
Scenario: Create a post
|
||||||
|
When I install octopress
|
||||||
|
And I create a new post
|
||||||
|
Then I should see that post
|
||||||
|
|
||||||
|
Scenario: Create a page
|
||||||
|
When I install octopress
|
||||||
|
And I create a new page
|
||||||
|
Then I should see that page
|
16
features/support/env.rb
Normal file
16
features/support/env.rb
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#require 'aruba/cucumber'
|
||||||
|
|
||||||
|
def run_command(cmd)
|
||||||
|
Dir.chdir @dir do
|
||||||
|
puts `CURRENT_DIR="#{@dir}" #{cmd}`
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def posts
|
||||||
|
posts_dir = File.join(@dir, 'source', '_posts')
|
||||||
|
Dir["#{posts_dir}/**/*"].sort
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_page
|
||||||
|
File.join(@dir, 'source', 'new-page', 'index.markdown')
|
||||||
|
end
|
39
features/support/step_definitions.rb
Normal file
39
features/support/step_definitions.rb
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
Before do
|
||||||
|
@dir = File.join(File.expand_path('../../../', __FILE__), 'tmp', 'octopress')
|
||||||
|
FileUtils.rm_rf(@dir) rescue nil
|
||||||
|
::FileUtils.mkdir_p @dir
|
||||||
|
Dir.chdir @dir
|
||||||
|
end
|
||||||
|
|
||||||
|
After do
|
||||||
|
FileUtils.rm_rf @dir
|
||||||
|
end
|
||||||
|
|
||||||
|
When /^I install octopress$/ do
|
||||||
|
run_command('rake install')
|
||||||
|
end
|
||||||
|
|
||||||
|
Then /^I should have created an octopress skeleton$/ do
|
||||||
|
%w(sass source public).each do |folder|
|
||||||
|
file = File.join(@dir, folder)
|
||||||
|
File.directory?(file).should be_true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
When /^I create a new post$/ do
|
||||||
|
posts.should be_empty
|
||||||
|
run_command('rake new_post')
|
||||||
|
end
|
||||||
|
|
||||||
|
Then /^I should see that post$/ do
|
||||||
|
posts.should_not be_empty
|
||||||
|
end
|
||||||
|
|
||||||
|
When /^I create a new page$/ do
|
||||||
|
File.exist?(test_page).should be_false
|
||||||
|
run_command('rake new_page')
|
||||||
|
end
|
||||||
|
|
||||||
|
Then /^I should see that page$/ do
|
||||||
|
File.exist?(test_page).should be_true
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user