Configure dummy app, rake tasks, and travis
This commit is contained in:
7
.gitignore
vendored
7
.gitignore
vendored
@@ -1,8 +1,10 @@
|
||||
*.gem
|
||||
*.log
|
||||
*.rbc
|
||||
/.config
|
||||
/coverage/
|
||||
/InstalledFiles
|
||||
/litmus*/
|
||||
/pkg/
|
||||
/spec/reports/
|
||||
/spec/examples.txt
|
||||
@@ -48,3 +50,8 @@ build-iPhoneSimulator/
|
||||
|
||||
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
||||
.rvmrc
|
||||
|
||||
## Dummy app
|
||||
/spec/dummy/lib/
|
||||
/spec/dummy/log/
|
||||
/spec/dummy/tmp/
|
||||
|
||||
8
.travis.yml
Normal file
8
.travis.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
language: ruby
|
||||
rvm:
|
||||
- 2.2
|
||||
- 2.3
|
||||
- 2.4
|
||||
script:
|
||||
- bundle exec rake spec
|
||||
- bundle exec rake litmus:run
|
||||
1
Gemfile
1
Gemfile
@@ -1,4 +1,3 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
# Specify gem dependencies in calligraphy.gemspec
|
||||
gemspec
|
||||
|
||||
@@ -66,6 +66,7 @@ GEM
|
||||
nio4r (2.1.0)
|
||||
nokogiri (1.8.1)
|
||||
mini_portile2 (~> 2.3.0)
|
||||
puma (3.11.0)
|
||||
rack (2.0.3)
|
||||
rack-test (0.8.2)
|
||||
rack (>= 1.0, < 3)
|
||||
@@ -131,6 +132,8 @@ PLATFORMS
|
||||
|
||||
DEPENDENCIES
|
||||
calligraphy!
|
||||
puma (~> 3.11.0)
|
||||
rake (~> 12.3.0)
|
||||
rspec-rails (~> 3.7.2)
|
||||
sqlite3 (~> 1.3.13)
|
||||
|
||||
|
||||
62
Rakefile
Normal file
62
Rakefile
Normal file
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env rake
|
||||
require "rake/clean"
|
||||
require "rspec/core/rake_task"
|
||||
|
||||
task default: %w(spec litmus:run)
|
||||
|
||||
desc "Run rspec tests"
|
||||
RSpec::Core::RakeTask.new :spec
|
||||
|
||||
desc "Run litmus test suite"
|
||||
task :litmus => %w(litmus:run)
|
||||
|
||||
namespace :litmus do
|
||||
tmp_dir = "#{Dir.pwd}/tmp"
|
||||
litmus_archive = "#{tmp_dir}/litmus-0.13.tar.gz"
|
||||
|
||||
desc "Fetch litmus test suite zip file"
|
||||
task :fetch do
|
||||
sh "mkdir tmp" unless File.directory? "#{tmp_dir}"
|
||||
sh "mkdir tmp/webdav" unless File.directory? "#{tmp_dir}/webdav"
|
||||
|
||||
unless File.exist? litmus_archive
|
||||
sh "wget -O #{tmp_dir}/litmus-0.13.tar.gz https://github.com/eanlain/litmus/releases/download/v0.13/litmus-0.13.tar.gz"
|
||||
end
|
||||
end
|
||||
CLEAN.include("tmp")
|
||||
|
||||
task :unarchive => :fetch do
|
||||
unless File.directory? "#{Dir.pwd}/litmus-0.13"
|
||||
sh "tar -xvzf #{tmp_dir}/litmus-0.13.tar.gz"
|
||||
end
|
||||
end
|
||||
CLEAN.include("litmus-0.13")
|
||||
|
||||
task :configure => :unarchive do
|
||||
unless File.exist? "litmus-0.13/configured"
|
||||
sh "cd litmus-0.13 && ./configure"
|
||||
sh "cd litmus-0.13 && touch configured"
|
||||
end
|
||||
end
|
||||
|
||||
task :make_clean do
|
||||
sh "cd litmus-0.13 && make clean"
|
||||
sh "rm litmus-0.13/configured"
|
||||
end
|
||||
|
||||
task :run => :configure do
|
||||
sh "cd spec/dummy/ && rails server -d"
|
||||
puma_pid = `cat spec/dummy/tmp/pids/server.pid`
|
||||
exit_code = 0
|
||||
|
||||
begin
|
||||
sh "cd litmus-0.13 && make URL=http://localhost:3000/webdav/ CREDS='jon_deaux changeme!' check"
|
||||
rescue
|
||||
exit_code = 1
|
||||
puts "!!!!! Failure encountered during litmus test suite !!!!!"
|
||||
end
|
||||
|
||||
sh "kill #{puma_pid}"
|
||||
exit exit_code
|
||||
end
|
||||
end
|
||||
@@ -20,6 +20,8 @@ Gem::Specification.new do |s|
|
||||
|
||||
s.add_dependency 'rails', '~> 5.0'
|
||||
|
||||
s.add_development_dependency 'puma', '~> 3.11.0'
|
||||
s.add_development_dependency 'rake', '~> 12.3.0'
|
||||
s.add_development_dependency 'rspec-rails', '~> 3.7.2'
|
||||
s.add_development_dependency 'sqlite3', '~> 1.3.13'
|
||||
end
|
||||
|
||||
47
spec/dummy/config/initializers/calligraphy.rb
Normal file
47
spec/dummy/config/initializers/calligraphy.rb
Normal file
@@ -0,0 +1,47 @@
|
||||
Calligraphy.configure do |config|
|
||||
# The HTTP actions Calligraphy uses to create mappings between WebDAV
|
||||
# HTTP verbs and URLs and WebDAV controller actions.
|
||||
# config.web_dav_actions = [
|
||||
# :options, :get, :put, :delete, :copy, :move,
|
||||
# :mkcol, :propfind, :proppatch, :lock, :unlock
|
||||
# ]
|
||||
|
||||
# HTTP methods allowed by the WebDavRequests controller.
|
||||
# Before responding to a WebDav request, the WebDavRequests controller
|
||||
# checks this list to determine if it is allowed to make the request.
|
||||
# If a method is disallowed, the controller will respond by sending an
|
||||
# HTTP 405 (Method Not Allowed) response.
|
||||
# config.allowed_http_methods = %w(
|
||||
# options get put delete copy move
|
||||
# mkcol propfind proppatch lock unlock
|
||||
# )
|
||||
|
||||
# If Digest Authentication is enabled by default. False by default.
|
||||
config.enable_digest_authentication = true
|
||||
|
||||
# Proc responsible for returning the user's password, API key,
|
||||
# or HA1 digest hash so that Rails can check user credentials.
|
||||
# Should be configured to handle your particular application's
|
||||
# user and/or authentication setup.
|
||||
#
|
||||
# For example, in an API setup where an email/API key are sent with the
|
||||
# request, in lieu of a username/password, the digest_password_procedure
|
||||
# would be defined as:
|
||||
#
|
||||
# config.digest_password_procedure = Proc.new do |email|
|
||||
# u = User.find_by(email: email)
|
||||
# u.authentication_token
|
||||
# end
|
||||
#
|
||||
# Digest Authentication would need to be enabled for this proc to
|
||||
# actually be called.
|
||||
config.digest_password_procedure = Proc.new do |username|
|
||||
'changeme!'
|
||||
end
|
||||
|
||||
# The realm used in HTTP Digest Authentication. 'Application' by default.
|
||||
# config.http_authentication_realm = 'Application'
|
||||
|
||||
# Maximum lock lifetime in seconds. 86400 by default.
|
||||
# config.lock_timeout_period = 86400
|
||||
end
|
||||
@@ -1,4 +1,4 @@
|
||||
Rails.application.routes.draw do
|
||||
calligraphy_resource :test
|
||||
calligraphy_resource :webdav, resource_class: Calligraphy::FileResource
|
||||
calligraphy_resource :webdav, resource_class: Calligraphy::FileResource, resource_root_path: File.expand_path('../../../../tmp/webdav', __FILE__)
|
||||
end
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user