Compare commits
37 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5a9af40058 | |||
| e871ff35b7 | |||
| ecc6c32933 | |||
| 831cf61a08 | |||
| cc1231dece | |||
| bb3d1a165b | |||
| 3da0426c54 | |||
| e01aa25be3 | |||
| ee2f9d8dcb | |||
| 4d8677965c | |||
| 72729d5510 | |||
| 0b57e70c87 | |||
| 033d6489f8 | |||
| 8608007337 | |||
| 665e493570 | |||
| eb1e2f60f3 | |||
| dc637f0a9b | |||
| f81634728d | |||
| 440cd5ebc0 | |||
| 1cd7d0f205 | |||
| a69d62911c | |||
| 395e9bd006 | |||
| 90e20810d5 | |||
| 9c714e7687 | |||
| 6c3523d61c | |||
| 183840b793 | |||
| 4e2856aa64 | |||
| 4627a39165 | |||
| c87cbe83d2 | |||
| f05282badf | |||
| 957879346e | |||
| 87e64f67f3 | |||
| 43840d246d | |||
| 4aeb9af8a7 | |||
| b37acb8bc6 | |||
| 433865e927 | |||
| 5428161e0f |
+2
-4
@@ -1,8 +1,6 @@
|
||||
rvm:
|
||||
- 1.8.7
|
||||
- 1.9.3
|
||||
notifications:
|
||||
email:
|
||||
- code@bootstraponline.com
|
||||
- 2.0.0
|
||||
before_install:
|
||||
- sudo apt-get update
|
||||
- sudo apt-get install libicu-dev
|
||||
+14
-3
@@ -19,7 +19,10 @@ require 'gollum'
|
||||
|
||||
exec = {}
|
||||
options = { 'port' => 4567, 'bind' => '0.0.0.0' }
|
||||
wiki_options = {}
|
||||
wiki_options = {
|
||||
:live_preview => false,
|
||||
:allow_uploads => false,
|
||||
}
|
||||
|
||||
opts = OptionParser.new do |opts|
|
||||
opts.banner = help
|
||||
@@ -73,6 +76,14 @@ opts = OptionParser.new do |opts|
|
||||
wiki_options[:live_preview] = false
|
||||
end
|
||||
|
||||
opts.on("--live-preview", "Enables livepreview.") do
|
||||
wiki_options[:live_preview] = true
|
||||
end
|
||||
|
||||
opts.on("--allow-uploads", "Allows file uploads.") do
|
||||
wiki_options[:allow_uploads] = true
|
||||
end
|
||||
|
||||
opts.on("--mathjax", "Enables mathjax.") do
|
||||
wiki_options[:mathjax] = true
|
||||
end
|
||||
@@ -135,7 +146,7 @@ if options['irb']
|
||||
begin
|
||||
require 'gollum-lib'
|
||||
wiki = Gollum::Wiki.new(gollum_path, wiki_options)
|
||||
if !wiki.exist? then raise Grit::InvalidGitRepositoryError end
|
||||
if !wiki.exist? then raise Gollum::InvalidGitRepositoryError end
|
||||
puts "Loaded Gollum wiki at #{File.expand_path(gollum_path).inspect}."
|
||||
puts
|
||||
puts %( page = wiki.page('page-name'))
|
||||
@@ -149,7 +160,7 @@ if options['irb']
|
||||
puts
|
||||
puts "Check out the Gollum README for more."
|
||||
IRB.start_session(binding)
|
||||
rescue Grit::InvalidGitRepositoryError, Grit::NoSuchPathError
|
||||
rescue Gollum::InvalidGitRepositoryError, Gollum::NoSuchPathError
|
||||
puts "Invalid Gollum wiki at #{File.expand_path(gollum_path).inspect}"
|
||||
exit 0
|
||||
end
|
||||
|
||||
+9
-6
@@ -2,11 +2,11 @@ Gem::Specification.new do |s|
|
||||
s.specification_version = 2 if s.respond_to? :specification_version=
|
||||
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
||||
s.rubygems_version = '1.3.5'
|
||||
s.required_ruby_version = ">= 1.8.7"
|
||||
s.required_ruby_version = ">= 1.9"
|
||||
|
||||
s.name = 'gollum'
|
||||
s.version = '2.4.14'
|
||||
s.date = '2013-06-15'
|
||||
s.version = '2.5.1'
|
||||
s.date = '2013-10-15'
|
||||
s.rubyforge_project = 'gollum'
|
||||
s.license = 'MIT'
|
||||
|
||||
@@ -24,10 +24,11 @@ Gem::Specification.new do |s|
|
||||
s.rdoc_options = ["--charset=UTF-8"]
|
||||
s.extra_rdoc_files = %w[README.md LICENSE]
|
||||
|
||||
s.add_dependency 'gollum-lib', '~> 1.0.2'
|
||||
s.add_dependency 'sinatra', '~> 1.4.2'
|
||||
s.add_dependency 'gollum-lib', '~> 1.0.8'
|
||||
s.add_dependency 'github-markdown', '~> 0.5.5'
|
||||
s.add_dependency 'sinatra', '~> 1.4.3'
|
||||
s.add_dependency 'mustache', ['>= 0.99.4', '< 1.0.0']
|
||||
s.add_dependency 'useragent', '~> 0.6.0'
|
||||
s.add_dependency 'useragent', '~> 0.8.2'
|
||||
|
||||
s.add_development_dependency 'rack-test', '~> 0.6.2'
|
||||
s.add_development_dependency 'shoulda', ['>= 3.4.0', '< 3.5.0']
|
||||
@@ -529,6 +530,8 @@ Gem::Specification.new do |s|
|
||||
licenses/css_tree_menu_thecssninja/license.txt
|
||||
licenses/licenses.txt
|
||||
licenses/unity_asset_pool/COPYRIGHT
|
||||
openrc/conf.d/gollum
|
||||
openrc/init.d/gollum
|
||||
templates/formatting.html
|
||||
templates/helper_wiki.rb
|
||||
]
|
||||
|
||||
+1
-2
@@ -5,7 +5,6 @@ require 'digest/sha1'
|
||||
require 'ostruct'
|
||||
|
||||
# external
|
||||
require 'grit'
|
||||
require 'github/markup'
|
||||
require 'sanitize'
|
||||
|
||||
@@ -17,7 +16,7 @@ require File.expand_path('../gollum/uri_encode_component', __FILE__)
|
||||
$KCODE = 'U' if RUBY_VERSION[0,3] == '1.8'
|
||||
|
||||
module Gollum
|
||||
VERSION = '2.4.14'
|
||||
VERSION = '2.5.1'
|
||||
|
||||
def self.assets_path
|
||||
::File.expand_path('gollum/public', ::File.dirname(__FILE__))
|
||||
|
||||
+62
-6
@@ -13,13 +13,17 @@ require 'gollum/views/has_page'
|
||||
|
||||
require File.expand_path '../helpers', __FILE__
|
||||
|
||||
#required to upload bigger binary files
|
||||
Gollum::set_git_timeout(120)
|
||||
Gollum::set_git_max_filesize(190 * 10**6)
|
||||
|
||||
# Fix to_url
|
||||
class String
|
||||
alias :upstream_to_url :to_url
|
||||
# _Header => header which causes errors
|
||||
def to_url
|
||||
return nil if self.nil?
|
||||
upstream_to_url :exclude => ['_Header', '_Footer', '_Sidebar']
|
||||
upstream_to_url :exclude => ['_Header', '_Footer', '_Sidebar'], :force_downcase => false
|
||||
end
|
||||
end
|
||||
|
||||
@@ -137,8 +141,7 @@ module Precious
|
||||
else
|
||||
@page = page
|
||||
@page.version = wiki.repo.log(wiki.ref, @page.path).first
|
||||
raw_data = page.raw_data
|
||||
@content = raw_data.respond_to?(:force_encoding) ? raw_data.force_encoding('UTF-8') : raw_data
|
||||
@content = page.text_data
|
||||
mustache :edit
|
||||
end
|
||||
else
|
||||
@@ -146,6 +149,53 @@ module Precious
|
||||
end
|
||||
end
|
||||
|
||||
post '/uploadFile' do
|
||||
wiki = wiki_new
|
||||
|
||||
unless wiki.allow_uploads
|
||||
@message = "File uploads are disabled"
|
||||
mustache :error
|
||||
return
|
||||
end
|
||||
|
||||
if params[:file]
|
||||
fullname = params[:file][:filename]
|
||||
tempfile = params[:file][:tempfile]
|
||||
end
|
||||
|
||||
dir = 'uploads'
|
||||
ext = ::File.extname(fullname)
|
||||
format = ext.split('.').last || 'txt'
|
||||
filename = ::File.basename(fullname, ext)
|
||||
contents = ::File.read(tempfile)
|
||||
reponame = filename + '.' + format
|
||||
|
||||
head = wiki.repo.head
|
||||
|
||||
options = {
|
||||
:message => "Uploaded file to uploads/#{reponame}",
|
||||
:parent => wiki.repo.head.commit,
|
||||
}
|
||||
author = session['gollum.author']
|
||||
unless author.nil?
|
||||
options.merge! author
|
||||
end
|
||||
|
||||
begin
|
||||
committer = Gollum::Committer.new(wiki, options)
|
||||
committer.add_to_index(dir, filename, format, contents)
|
||||
committer.after_commit do |committer, sha|
|
||||
wiki.clear_cache
|
||||
committer.update_working_dir(dir, filename, format)
|
||||
end
|
||||
committer.commit
|
||||
redirect to('/')
|
||||
rescue Gollum::DuplicatePageError => e
|
||||
@message = "Duplicate page: #{e.message}"
|
||||
mustache :error
|
||||
end
|
||||
end
|
||||
|
||||
post '/rename/*' do
|
||||
wikip = wiki_page(params[:splat].first)
|
||||
halt 500 if wikip.nil?
|
||||
@@ -283,6 +333,7 @@ module Precious
|
||||
@mathjax = wiki.mathjax
|
||||
@h1_title = wiki.h1_title
|
||||
@editable = false
|
||||
@allow_uploads = wiki.allow_uploads
|
||||
mustache :page
|
||||
end
|
||||
|
||||
@@ -401,11 +452,16 @@ module Precious
|
||||
@mathjax = wiki.mathjax
|
||||
@h1_title = wiki.h1_title
|
||||
@bar_side = wiki.bar_side
|
||||
@allow_uploads = wiki.allow_uploads
|
||||
|
||||
mustache :page
|
||||
elsif file = wiki.file(fullpath)
|
||||
content_type file.mime_type
|
||||
file.raw_data
|
||||
elsif file = wiki.file(fullpath, wiki.ref, true)
|
||||
if file.on_disk?
|
||||
send_file file.on_disk_path, :disposition => 'inline'
|
||||
else
|
||||
content_type file.mime_type
|
||||
file.raw_data
|
||||
end
|
||||
else
|
||||
page_path = [path, name].compact.join('/')
|
||||
redirect to("/create/#{clean_url(encodeURIComponent(page_path))}")
|
||||
|
||||
@@ -37,11 +37,14 @@
|
||||
fieldMarkup += '<div class="field">';
|
||||
switch ( fieldArray[i].type ) {
|
||||
|
||||
// only text is supported for now
|
||||
case 'text':
|
||||
fieldMarkup += Dialog.createFieldText( fieldArray[i] );
|
||||
break;
|
||||
|
||||
case 'file':
|
||||
fieldMarkup += Dialog.createFieldFile( fieldArray[i] );
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -60,7 +63,7 @@
|
||||
if ( fieldAttributes.name ) {
|
||||
html += '<label';
|
||||
if ( fieldAttributes.id ) {
|
||||
html += ' for="' + fieldAttributes.name + '"';
|
||||
html += ' for="gollum-dialog-dialog-generated-field-' + fieldAttributes.id + '"';
|
||||
}
|
||||
html += '>' + fieldAttributes.name + '</label>';
|
||||
}
|
||||
@@ -86,6 +89,26 @@
|
||||
return html;
|
||||
},
|
||||
|
||||
createFieldFile: function( fieldAttributes ) {
|
||||
// Not actually a field, but an embedded form.
|
||||
var html = '';
|
||||
|
||||
var id = fieldAttributes.id || 'upload';
|
||||
var name = fieldAttributes.name || 'file';
|
||||
var action = fieldAttributes.action || '/uploadFile';
|
||||
|
||||
html += '<form method=post enctype="multipart/form-data" ' +
|
||||
'action="' + action + '" ' + 'id="' + id + '">';
|
||||
html += '<input type=file name="' + name + '">';
|
||||
html += '</form>';
|
||||
|
||||
if( fieldAttributes.context ){
|
||||
html += '<span class="context">' + fieldAttributes.context + '</span>';
|
||||
}
|
||||
|
||||
return html;
|
||||
},
|
||||
|
||||
createMarkup: function( title, body ) {
|
||||
Dialog.markupCreated = true;
|
||||
if ($.facebox) {
|
||||
|
||||
@@ -145,6 +145,26 @@ $(document).ready(function() {
|
||||
}
|
||||
}
|
||||
|
||||
if ($('#minibutton-upload-page').length) {
|
||||
$('#minibutton-upload-page').parent().removeClass('jaws');
|
||||
$('#minibutton-upload-page').click(function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
$.GollumDialog.init({
|
||||
title: 'Upload File',
|
||||
fields: [
|
||||
{
|
||||
type: 'file',
|
||||
context: 'Your uploaded file will be accessible at /uploads/[filename]'
|
||||
}
|
||||
],
|
||||
OK: function( res ) {
|
||||
$('#upload').submit();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
if ($('#minibutton-rename-page').length) {
|
||||
$('#minibutton-rename-page').parent().removeClass('jaws');
|
||||
$('#minibutton-rename-page').click(function(e) {
|
||||
@@ -152,7 +172,7 @@ $(document).ready(function() {
|
||||
|
||||
var path = pagePath();
|
||||
var oldName = pageName();
|
||||
var context_blurb =
|
||||
var context_blurb =
|
||||
"Renamed page will be under " +
|
||||
"<span class='path'>" + htmlEscape('/' + path) + "</span>" +
|
||||
" unless an absolute path is given."
|
||||
@@ -206,7 +226,7 @@ $(document).ready(function() {
|
||||
// For consistency remove the trailing /
|
||||
path = path.replace(/\/$/,'')
|
||||
}
|
||||
var context_blurb =
|
||||
var context_blurb =
|
||||
"Page will be created under " +
|
||||
"<span class='path'>" + htmlEscape('/' + path) + "</span>" +
|
||||
" unless an absolute path is given."
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<script>
|
||||
var baseUrl = '{{base_url}}';
|
||||
{{#page}}
|
||||
var pageFullPath = '{{url_path}}';
|
||||
var pageFullPath = '{{url_path_display}}';
|
||||
{{/page}}
|
||||
</script>
|
||||
<script type="text/javascript" src="{{base_url}}/javascript/jquery-1.7.2.min.js"></script>
|
||||
|
||||
@@ -20,6 +20,10 @@ Mousetrap.bind(['e'], function( e ) {
|
||||
class="action-fileview">Files</a></li>
|
||||
<li class="minibutton jaws">
|
||||
<a href="#" id="minibutton-new-page">New</a></li>
|
||||
{{#allow_uploads}}
|
||||
<li class="minibutton jaws">
|
||||
<a href="#" id="minibutton-upload-page">Upload</a></li>
|
||||
{{/allow_uploads}}
|
||||
{{#editable}}
|
||||
<li class="minibutton jaws">
|
||||
<a href="#" id="minibutton-rename-page">Rename</a></li>
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
# component must be String
|
||||
def encodeURIComponent(componentString)
|
||||
URI::URIEncodeComponent(componentString)
|
||||
::URI::URIEncodeComponent(componentString)
|
||||
end
|
||||
|
||||
# define charCodeAt on String
|
||||
|
||||
@@ -22,7 +22,7 @@ module Precious
|
||||
def header
|
||||
if @header.nil?
|
||||
if page = @page.header
|
||||
@header = page.raw_data
|
||||
@header = page.text_data
|
||||
else
|
||||
@header = false
|
||||
end
|
||||
@@ -33,7 +33,7 @@ module Precious
|
||||
def footer
|
||||
if @footer.nil?
|
||||
if page = @page.footer
|
||||
@footer = page.raw_data
|
||||
@footer = page.text_data
|
||||
else
|
||||
@footer = false
|
||||
end
|
||||
@@ -44,7 +44,7 @@ module Precious
|
||||
def sidebar
|
||||
if @sidebar.nil?
|
||||
if page = @page.sidebar
|
||||
@sidebar = page.raw_data
|
||||
@sidebar = page.text_data
|
||||
else
|
||||
@sidebar = false
|
||||
end
|
||||
|
||||
@@ -39,6 +39,10 @@ module Precious
|
||||
@editable
|
||||
end
|
||||
|
||||
def allow_uploads
|
||||
@allow_uploads
|
||||
end
|
||||
|
||||
def has_header
|
||||
@header = (@page.header || false) if @header.nil?
|
||||
!!@header
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
GOLLUM_USER=gollum
|
||||
GOLLUM_BASE=/home/gollum/wiki
|
||||
GOLLUM_OPTS="--config /home/gollum/config.rb"
|
||||
@@ -0,0 +1,36 @@
|
||||
#!/sbin/runscript
|
||||
# Distributed under the terms of the MIT License
|
||||
|
||||
NAME=gollum
|
||||
PID=/var/run/${NAME}.pid
|
||||
EXEC=/usr/local/bin/gollum
|
||||
LOG=/var/log/gollum.log
|
||||
|
||||
depend() {
|
||||
need net
|
||||
}
|
||||
|
||||
start() {
|
||||
# Change log file to be owned by GOLLUM_USER
|
||||
touch "${LOG}"
|
||||
chown "${GOLLUM_USER}" "${LOG}"
|
||||
|
||||
ebegin "Starting Gollum"
|
||||
start-stop-daemon --start \
|
||||
--name "${NAME}" \
|
||||
--user "${GOLLUM_USER}" \
|
||||
--pidfile "${PID}" \
|
||||
--make-pidfile --background \
|
||||
--stderr "${LOG}" \
|
||||
--exec "${EXEC}" -- $GOLLUM_OPTS "$GOLLUM_BASE"
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop() {
|
||||
ebegin "Stopping Gollum"
|
||||
start-stop-daemon --stop \
|
||||
--name "${NAME}" \
|
||||
--user "${GOLLUM_USER}" \
|
||||
--pidfile "${PID}"
|
||||
eend $?
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
class WikiFactory
|
||||
def self.create p
|
||||
path = testpath "examples/test.git"
|
||||
Grit::Repo.init_bare(@path)
|
||||
examples = testpath "examples"
|
||||
path = File.join(examples, "test.git")
|
||||
FileUtils.cp_r File.join(examples, "empty.git"), path, :remove_destination => true
|
||||
Gollum::Wiki.default_options = {:universal_toc => false}
|
||||
cleanup = Proc.new { FileUtils.rm_r File.join(File.dirname(__FILE__), *%w[examples test.git]) }
|
||||
Gollum::Wiki.new(@path), @path, cleanup
|
||||
|
||||
+32
-8
@@ -29,13 +29,13 @@ context "Frontend" do
|
||||
# spaces are converted to dashes in URLs
|
||||
# and in file names saved to disk
|
||||
# urls are not case sensitive
|
||||
assert_equal 'title-space', 'Title Space'.to_url
|
||||
assert_equal 'Title-Space', 'Title Space'.to_url
|
||||
|
||||
# ascii only file names prevent UTF8 issues
|
||||
# when using git repos across operating systems
|
||||
# as this test demonstrates, translation is not
|
||||
# great
|
||||
assert_equal 'm-plus-f', 'μ†ℱ'.to_url
|
||||
assert_equal 'm-plus-F', 'μ†ℱ'.to_url
|
||||
end
|
||||
|
||||
test "utf-8 kcode" do
|
||||
@@ -253,7 +253,7 @@ context "Frontend" do
|
||||
test "creates pages with escaped characters in title" do
|
||||
post "/create", :content => 'abc', :page => 'Title with spaces',
|
||||
:format => 'markdown', :message => 'foo'
|
||||
assert_equal 'http://example.org/title-with-spaces', last_response.headers['Location']
|
||||
assert_equal 'http://example.org/Title-with-spaces', last_response.headers['Location']
|
||||
get "/Title-with-spaces"
|
||||
assert_match /abc/, last_response.body
|
||||
end
|
||||
@@ -278,7 +278,7 @@ context "Frontend" do
|
||||
post "/create", :content => 'abc', :page => 'Home', :path => '/foo/',
|
||||
:format => 'markdown', :message => 'foo'
|
||||
|
||||
assert_equal "http://example.org/foo/home", last_response.headers['Location']
|
||||
assert_equal "http://example.org/foo/Home", last_response.headers['Location']
|
||||
|
||||
follow_redirect!
|
||||
assert last_response.ok?
|
||||
@@ -504,6 +504,24 @@ context "Frontend" do
|
||||
Precious::App.set(:wiki_options, { :js => nil })
|
||||
end
|
||||
|
||||
test "show edit page with header and footer and sidebar of multibyte" do
|
||||
post "/create",
|
||||
:content => 'りんご',
|
||||
:page => 'Multibyte', :format => :markdown, :message => 'mesg'
|
||||
|
||||
post "/edit/Multibyte",
|
||||
:content => 'りんご', :header => 'みかん', :footer => 'バナナ', :sidebar => 'スイカ',
|
||||
:page => 'Multibyte', :format => :markdown, :message => 'mesg'
|
||||
|
||||
get "edit/Multibyte"
|
||||
|
||||
assert last_response.ok?
|
||||
assert_match /りんご/, last_response.body
|
||||
assert_match /みかん/, last_response.body
|
||||
assert_match /バナナ/, last_response.body
|
||||
assert_match /スイカ/, last_response.body
|
||||
end
|
||||
|
||||
def app
|
||||
Precious::App
|
||||
end
|
||||
@@ -578,6 +596,12 @@ context "Frontend with lotr" do
|
||||
assert_match /Bilbo Baggins/, last_response.body
|
||||
end
|
||||
|
||||
test "streaming files to browser" do
|
||||
get "/Data.csv"
|
||||
assert last_response.ok?
|
||||
assert last_response.headers.include? 'Content-Disposition'
|
||||
end
|
||||
|
||||
# base path requires 'map' in a config.ru to work correctly.
|
||||
test "create pages within sub-directories using base path" do
|
||||
Precious::App.set(:wiki_options, { :base_path => 'wiki' })
|
||||
@@ -606,13 +630,13 @@ context "Frontend with lotr" do
|
||||
test "create pages within sub-directories" do
|
||||
post "/create", :content => 'big smelly creatures', :page => 'Orc',
|
||||
:path => 'Mordor', :format => 'markdown', :message => 'oooh, scary'
|
||||
assert_equal 'http://example.org/Mordor/orc', last_response.headers['Location']
|
||||
assert_equal 'http://example.org/Mordor/Orc', last_response.headers['Location']
|
||||
get "/Mordor/Orc"
|
||||
assert_match /big smelly creatures/, last_response.body
|
||||
|
||||
post "/create", :content => 'really big smelly creatures', :page => 'Uruk Hai',
|
||||
:path => 'Mordor', :format => 'markdown', :message => 'oooh, very scary'
|
||||
assert_equal 'http://example.org/Mordor/uruk-hai', last_response.headers['Location']
|
||||
assert_equal 'http://example.org/Mordor/Uruk-Hai', last_response.headers['Location']
|
||||
get "/Mordor/Uruk-Hai"
|
||||
assert_match /really big smelly creatures/, last_response.body
|
||||
end
|
||||
@@ -621,11 +645,11 @@ context "Frontend with lotr" do
|
||||
post "/create", :content => 'big smelly creatures', :page => 'Orc',
|
||||
:path => 'Mordor', :format => 'markdown', :message => 'oooh, scary'
|
||||
|
||||
assert_equal 'http://example.org/Mordor/orc', last_response.headers['Location']
|
||||
assert_equal 'http://example.org/Mordor/Orc', last_response.headers['Location']
|
||||
|
||||
post "/edit/Mordor/Orc", :content => 'not so big smelly creatures',
|
||||
:page => 'Orc', :path => 'Mordor', :message => 'minor edit'
|
||||
assert_equal 'http://example.org/Mordor/orc', last_response.headers['Location']
|
||||
assert_equal 'http://example.org/Mordor/Orc', last_response.headers['Location']
|
||||
|
||||
get "/Mordor/Orc"
|
||||
assert_match /not so big smelly creatures/, last_response.body
|
||||
|
||||
@@ -4,9 +4,9 @@ require File.expand_path '../../lib/gollum/views/page', __FILE__
|
||||
|
||||
context "Precious::Views::Page" do
|
||||
setup do
|
||||
@path = testpath("examples/test.git")
|
||||
FileUtils.rm_rf(@path)
|
||||
@repo = Grit::Repo.init_bare(@path)
|
||||
examples = testpath "examples"
|
||||
@path = File.join(examples, "test.git")
|
||||
FileUtils.cp_r File.join(examples, "empty.git"), @path, :remove_destination => true
|
||||
@wiki = Gollum::Wiki.new(@path)
|
||||
end
|
||||
|
||||
@@ -43,4 +43,4 @@ context "Precious::Views::Page" do
|
||||
actual = @view.title
|
||||
assert_equal 'H1', title
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user