mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
test some of the rc specification
This commit is contained in:
parent
9696073b2d
commit
3060dfce5a
2 changed files with 48 additions and 4 deletions
|
@ -327,6 +327,10 @@ module Rails
|
|||
argv
|
||||
end
|
||||
|
||||
def self.default_rc_file
|
||||
File.join(File.expand_path('~'), '.railsrc')
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def handle_version_request!(argument)
|
||||
|
@ -353,7 +357,7 @@ module Rails
|
|||
if (customrc = argv.index{ |x| x.include?("--rc=") })
|
||||
File.expand_path(argv.delete_at(customrc).gsub(/--rc=/, ""))
|
||||
else
|
||||
File.join(File.expand_path("~"), '.railsrc')
|
||||
self.class.default_rc_file
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
require 'active_support/test_case'
|
||||
require 'active_support/testing/autorun'
|
||||
require 'rails/generators/rails/app/app_generator'
|
||||
require 'tempfile'
|
||||
|
||||
module Rails
|
||||
module Generators
|
||||
|
@ -14,7 +15,7 @@ module Rails
|
|||
define_method(:puts) { |str| output = str }
|
||||
define_method(:exit) { |code| exit_code = code }
|
||||
})
|
||||
scrubber.prepare
|
||||
scrubber.prepare!
|
||||
assert_equal "Rails #{Rails::VERSION::STRING}", output
|
||||
assert_equal 0, exit_code
|
||||
end
|
||||
|
@ -22,15 +23,54 @@ module Rails
|
|||
|
||||
def test_prepare_returns_args
|
||||
scrubber = ARGVScrubber.new ['hi mom']
|
||||
args = scrubber.prepare
|
||||
args = scrubber.prepare!
|
||||
assert_equal '--help', args.first
|
||||
end
|
||||
|
||||
def test_no_mutations
|
||||
scrubber = ARGVScrubber.new ['hi mom'].freeze
|
||||
args = scrubber.prepare
|
||||
args = scrubber.prepare!
|
||||
assert_equal '--help', args.first
|
||||
end
|
||||
|
||||
def test_new_command_no_rc
|
||||
scrubber = Class.new(ARGVScrubber) {
|
||||
def self.default_rc_file
|
||||
File.join(Dir.tmpdir, 'whatever')
|
||||
end
|
||||
}.new ['new']
|
||||
args = scrubber.prepare!
|
||||
assert_nil args.first
|
||||
assert_equal [], args
|
||||
end
|
||||
|
||||
def test_new_homedir_rc
|
||||
file = Tempfile.new 'myrcfile'
|
||||
file.puts '--hello-world'
|
||||
file.flush
|
||||
|
||||
message = nil
|
||||
scrubber = Class.new(ARGVScrubber) {
|
||||
define_singleton_method(:default_rc_file) do
|
||||
file.path
|
||||
end
|
||||
define_method(:puts) { |msg| message = msg }
|
||||
}.new ['new']
|
||||
args = scrubber.prepare!
|
||||
assert_nil args.first
|
||||
assert_equal [nil, '--hello-world'], args
|
||||
assert_match 'hello-world', message
|
||||
assert_match file.path, message
|
||||
ensure
|
||||
file.close
|
||||
file.unlink
|
||||
end
|
||||
|
||||
def test_no_rc
|
||||
scrubber = ARGVScrubber.new ['new', '--no-rc']
|
||||
args = scrubber.prepare!
|
||||
assert_equal [], args
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue