2010-10-15 10:46:31 -04:00
|
|
|
require 'generators/generators_test_helper'
|
2013-06-30 17:02:19 -04:00
|
|
|
require 'rails/generators/rails/plugin/plugin_generator'
|
2012-09-21 17:57:15 -04:00
|
|
|
require 'generators/shared_generator_tests'
|
2010-10-15 10:46:31 -04:00
|
|
|
|
|
|
|
DEFAULT_PLUGIN_FILES = %w(
|
|
|
|
.gitignore
|
|
|
|
Gemfile
|
|
|
|
Rakefile
|
2011-07-29 13:35:40 -04:00
|
|
|
README.rdoc
|
2010-10-15 10:46:31 -04:00
|
|
|
bukkits.gemspec
|
|
|
|
MIT-LICENSE
|
|
|
|
lib
|
|
|
|
lib/bukkits.rb
|
2010-11-02 10:44:07 -04:00
|
|
|
lib/tasks/bukkits_tasks.rake
|
2011-07-29 13:35:40 -04:00
|
|
|
lib/bukkits/version.rb
|
2010-10-15 10:46:31 -04:00
|
|
|
test/bukkits_test.rb
|
|
|
|
test/test_helper.rb
|
|
|
|
test/dummy
|
|
|
|
)
|
|
|
|
|
2013-06-30 17:02:19 -04:00
|
|
|
class PluginGeneratorTest < Rails::Generators::TestCase
|
2010-10-15 10:46:31 -04:00
|
|
|
include GeneratorsTestHelper
|
|
|
|
destination File.join(Rails.root, "tmp/bukkits")
|
|
|
|
arguments [destination_root]
|
2011-05-06 18:11:13 -04:00
|
|
|
|
|
|
|
# brings setup, teardown, and some tests
|
2010-10-20 18:55:08 -04:00
|
|
|
include SharedGeneratorTests
|
2010-10-15 10:46:31 -04:00
|
|
|
|
|
|
|
def test_invalid_plugin_name_raises_an_error
|
2012-01-30 08:47:05 -05:00
|
|
|
content = capture(:stderr){ run_generator [File.join(destination_root, "things-43")] }
|
|
|
|
assert_equal "Invalid plugin name things-43. Please give a name which use only alphabetic or numeric or \"_\" characters.\n", content
|
|
|
|
|
|
|
|
content = capture(:stderr){ run_generator [File.join(destination_root, "things4.3")] }
|
|
|
|
assert_equal "Invalid plugin name things4.3. Please give a name which use only alphabetic or numeric or \"_\" characters.\n", content
|
2012-05-01 22:29:56 -04:00
|
|
|
|
2012-01-30 08:47:05 -05:00
|
|
|
content = capture(:stderr){ run_generator [File.join(destination_root, "43things")] }
|
|
|
|
assert_equal "Invalid plugin name 43things. Please give a name which does not start with numbers.\n", content
|
2014-01-05 15:48:05 -05:00
|
|
|
|
|
|
|
content = capture(:stderr){ run_generator [File.join(destination_root, "plugin")] }
|
|
|
|
assert_equal "Invalid plugin name plugin. Please give a name which does not match one of the reserved rails words.\n", content
|
|
|
|
|
|
|
|
content = capture(:stderr){ run_generator [File.join(destination_root, "Digest")] }
|
|
|
|
assert_equal "Invalid plugin name Digest, constant Digest is already in use. Please choose another plugin name.\n", content
|
2010-10-15 10:46:31 -04:00
|
|
|
end
|
|
|
|
|
2011-11-19 12:03:44 -05:00
|
|
|
def test_camelcase_plugin_name_underscores_filenames
|
|
|
|
run_generator [File.join(destination_root, "CamelCasedName")]
|
|
|
|
assert_no_file "CamelCasedName/lib/CamelCasedName.rb"
|
|
|
|
assert_file "CamelCasedName/lib/camel_cased_name.rb", /module CamelCasedName/
|
|
|
|
end
|
|
|
|
|
2011-01-14 20:32:40 -05:00
|
|
|
def test_generating_without_options
|
2010-10-15 10:46:31 -04:00
|
|
|
run_generator
|
2011-01-15 01:13:43 -05:00
|
|
|
assert_file "README.rdoc", /Bukkits/
|
2011-01-14 20:32:40 -05:00
|
|
|
assert_no_file "config/routes.rb"
|
2010-10-15 10:46:31 -04:00
|
|
|
assert_file "test/test_helper.rb"
|
|
|
|
assert_file "test/bukkits_test.rb", /assert_kind_of Module, Bukkits/
|
|
|
|
end
|
|
|
|
|
2010-10-26 16:22:15 -04:00
|
|
|
def test_generating_test_files_in_full_mode
|
|
|
|
run_generator [destination_root, "--full"]
|
|
|
|
assert_directory "test/integration/"
|
|
|
|
|
2010-11-02 09:05:11 -04:00
|
|
|
assert_file "test/integration/navigation_test.rb", /ActionDispatch::IntegrationTest/
|
2010-10-26 16:22:15 -04:00
|
|
|
end
|
|
|
|
|
2014-04-08 14:57:12 -04:00
|
|
|
def test_inclusion_of_a_debugger
|
2013-12-06 10:48:28 -05:00
|
|
|
run_generator [destination_root, '--full']
|
|
|
|
if defined?(JRUBY_VERSION)
|
|
|
|
assert_file "Gemfile" do |content|
|
2014-04-08 14:57:12 -04:00
|
|
|
assert_no_match(/byebug/, content)
|
2013-12-06 10:48:28 -05:00
|
|
|
assert_no_match(/debugger/, content)
|
|
|
|
end
|
2014-04-08 14:57:12 -04:00
|
|
|
elsif RUBY_VERSION < '2.0.0'
|
2013-12-06 10:48:28 -05:00
|
|
|
assert_file "Gemfile", /# gem 'debugger'/
|
2014-04-08 14:57:12 -04:00
|
|
|
else
|
|
|
|
assert_file "Gemfile", /# gem 'byebug'/
|
2013-12-06 10:48:28 -05:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2012-06-08 08:59:23 -04:00
|
|
|
def test_generating_test_files_in_full_mode_without_unit_test_files
|
|
|
|
run_generator [destination_root, "-T", "--full"]
|
|
|
|
|
|
|
|
assert_no_directory "test/integration/"
|
|
|
|
assert_no_file "test"
|
2013-02-28 14:09:04 -05:00
|
|
|
assert_file "Rakefile" do |contents|
|
|
|
|
assert_no_match(/APP_RAKEFILE/, contents)
|
|
|
|
end
|
2012-06-08 08:59:23 -04:00
|
|
|
end
|
|
|
|
|
2012-11-07 14:54:49 -05:00
|
|
|
def test_generating_adds_dummy_app_rake_tasks_without_unit_test_files
|
|
|
|
run_generator [destination_root, "-T", "--mountable", '--dummy-path', 'my_dummy_app']
|
2013-02-28 14:09:04 -05:00
|
|
|
assert_file "Rakefile", /APP_RAKEFILE/
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_generating_adds_dummy_app_without_javascript_and_assets_deps
|
|
|
|
run_generator [destination_root]
|
2012-11-07 14:54:49 -05:00
|
|
|
|
2013-02-28 14:09:04 -05:00
|
|
|
assert_file "test/dummy/app/assets/stylesheets/application.css"
|
|
|
|
|
|
|
|
assert_file "test/dummy/app/assets/javascripts/application.js" do |contents|
|
|
|
|
assert_no_match(/jquery/, contents)
|
|
|
|
end
|
2012-11-07 14:54:49 -05:00
|
|
|
end
|
|
|
|
|
2010-10-23 14:56:02 -04:00
|
|
|
def test_ensure_that_plugin_options_are_not_passed_to_app_generator
|
|
|
|
FileUtils.cd(Rails.root)
|
2011-03-12 19:01:12 -05:00
|
|
|
assert_no_match(/It works from file!.*It works_from_file/, run_generator([destination_root, "-m", "lib/template.rb"]))
|
2010-10-19 18:47:13 -04:00
|
|
|
end
|
|
|
|
|
2010-11-02 10:13:10 -04:00
|
|
|
def test_ensure_that_test_dummy_can_be_generated_from_a_template
|
|
|
|
FileUtils.cd(Rails.root)
|
|
|
|
run_generator([destination_root, "-m", "lib/create_test_dummy_template.rb", "--skip-test-unit"])
|
|
|
|
assert_file "spec/dummy"
|
|
|
|
assert_no_file "test"
|
|
|
|
end
|
|
|
|
|
2011-06-13 04:34:09 -04:00
|
|
|
def test_database_entry_is_generated_for_sqlite3_by_default_in_full_mode
|
2010-11-02 09:23:45 -04:00
|
|
|
run_generator([destination_root, "--full"])
|
|
|
|
assert_file "test/dummy/config/database.yml", /sqlite/
|
2011-07-28 11:44:29 -04:00
|
|
|
assert_file "bukkits.gemspec", /sqlite3/
|
2010-11-02 09:23:45 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
def test_config_another_database
|
|
|
|
run_generator([destination_root, "-d", "mysql", "--full"])
|
|
|
|
assert_file "test/dummy/config/database.yml", /mysql/
|
2011-07-28 11:44:29 -04:00
|
|
|
assert_file "bukkits.gemspec", /mysql/
|
2010-11-02 09:23:45 -04:00
|
|
|
end
|
|
|
|
|
2012-06-08 13:09:18 -04:00
|
|
|
def test_dont_generate_development_dependency
|
|
|
|
run_generator [destination_root, "--skip-active-record"]
|
|
|
|
|
|
|
|
assert_file "bukkits.gemspec" do |contents|
|
|
|
|
assert_no_match(/s.add_development_dependency "sqlite3"/, contents)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2010-11-02 09:23:45 -04:00
|
|
|
def test_active_record_is_removed_from_frameworks_if_skip_active_record_is_given
|
|
|
|
run_generator [destination_root, "--skip-active-record"]
|
|
|
|
assert_file "test/dummy/config/application.rb", /#\s+require\s+["']active_record\/railtie["']/
|
|
|
|
end
|
|
|
|
|
2010-10-26 16:22:15 -04:00
|
|
|
def test_ensure_that_skip_active_record_option_is_passed_to_app_generator
|
|
|
|
run_generator [destination_root, "--skip_active_record"]
|
|
|
|
assert_no_file "test/dummy/config/database.yml"
|
2013-02-28 14:09:04 -05:00
|
|
|
assert_file "test/test_helper.rb" do |contents|
|
2013-04-03 13:19:30 -04:00
|
|
|
assert_no_match(/ActiveRecord/, contents)
|
2013-02-28 14:09:04 -05:00
|
|
|
end
|
2010-10-26 16:22:15 -04:00
|
|
|
end
|
|
|
|
|
2010-10-26 18:16:57 -04:00
|
|
|
def test_ensure_that_database_option_is_passed_to_app_generator
|
|
|
|
run_generator [destination_root, "--database", "postgresql"]
|
|
|
|
assert_file "test/dummy/config/database.yml", /postgres/
|
|
|
|
end
|
|
|
|
|
2011-05-17 18:29:20 -04:00
|
|
|
def test_generation_runs_bundle_install_with_full_and_mountable
|
2012-06-25 00:57:11 -04:00
|
|
|
result = run_generator [destination_root, "--mountable", "--full", "--dev"]
|
|
|
|
assert_file "#{destination_root}/Gemfile.lock" do |contents|
|
|
|
|
assert_match(/bukkits/, contents)
|
|
|
|
end
|
|
|
|
assert_match(/run bundle install/, result)
|
2014-03-26 21:19:29 -04:00
|
|
|
assert_match(/Using bukkits \(?0\.0\.1\)?/, result)
|
2012-06-25 00:57:11 -04:00
|
|
|
assert_match(/Your bundle is complete/, result)
|
2011-05-17 18:29:20 -04:00
|
|
|
assert_equal 1, result.scan("Your bundle is complete").size
|
|
|
|
end
|
|
|
|
|
2010-12-15 06:20:20 -05:00
|
|
|
def test_skipping_javascripts_without_mountable_option
|
|
|
|
run_generator
|
2011-06-12 21:29:14 -04:00
|
|
|
assert_no_file "app/assets/javascripts/bukkits/application.js"
|
2010-12-15 06:20:20 -05:00
|
|
|
end
|
|
|
|
|
|
|
|
def test_javascripts_generation
|
|
|
|
run_generator [destination_root, "--mountable"]
|
2011-06-12 21:29:14 -04:00
|
|
|
assert_file "app/assets/javascripts/bukkits/application.js"
|
2010-12-15 06:20:20 -05:00
|
|
|
end
|
|
|
|
|
|
|
|
def test_skip_javascripts
|
|
|
|
run_generator [destination_root, "--skip-javascript", "--mountable"]
|
2011-06-12 21:29:14 -04:00
|
|
|
assert_no_file "app/assets/javascripts/bukkits/application.js"
|
2010-12-15 06:20:20 -05:00
|
|
|
end
|
|
|
|
|
2010-10-19 19:05:34 -04:00
|
|
|
def test_template_from_dir_pwd
|
|
|
|
FileUtils.cd(Rails.root)
|
2011-03-12 19:01:12 -05:00
|
|
|
assert_match(/It works from file!/, run_generator([destination_root, "-m", "lib/template.rb"]))
|
2010-10-19 19:05:34 -04:00
|
|
|
end
|
|
|
|
|
2011-05-12 18:43:43 -04:00
|
|
|
def test_ensure_that_tests_work
|
2010-10-20 15:21:37 -04:00
|
|
|
run_generator
|
|
|
|
FileUtils.cd destination_root
|
2011-05-12 19:41:52 -04:00
|
|
|
quietly { system 'bundle install' }
|
2014-03-14 12:33:42 -04:00
|
|
|
assert_match(/1 runs, 1 assertions, 0 failures, 0 errors/, `bundle exec rake test 2>&1`)
|
2010-10-20 15:21:37 -04:00
|
|
|
end
|
|
|
|
|
2010-10-26 16:22:15 -04:00
|
|
|
def test_ensure_that_tests_works_in_full_mode
|
2010-12-04 11:12:57 -05:00
|
|
|
run_generator [destination_root, "--full", "--skip_active_record"]
|
2010-10-26 16:22:15 -04:00
|
|
|
FileUtils.cd destination_root
|
2011-05-12 19:41:52 -04:00
|
|
|
quietly { system 'bundle install' }
|
2014-03-14 12:33:42 -04:00
|
|
|
assert_match(/1 runs, 1 assertions, 0 failures, 0 errors/, `bundle exec rake test 2>&1`)
|
2010-10-26 16:22:15 -04:00
|
|
|
end
|
|
|
|
|
2011-07-04 16:48:15 -04:00
|
|
|
def test_ensure_that_migration_tasks_work_with_mountable_option
|
|
|
|
run_generator [destination_root, "--mountable"]
|
|
|
|
FileUtils.cd destination_root
|
|
|
|
quietly { system 'bundle install' }
|
2014-03-14 12:33:42 -04:00
|
|
|
output = `bundle exec rake db:migrate 2>&1`
|
|
|
|
assert $?.success?, "Command failed: #{output}"
|
2011-07-04 16:48:15 -04:00
|
|
|
end
|
|
|
|
|
2010-10-26 16:22:15 -04:00
|
|
|
def test_creating_engine_in_full_mode
|
|
|
|
run_generator [destination_root, "--full"]
|
2011-06-12 21:29:14 -04:00
|
|
|
assert_file "app/assets/javascripts/bukkits"
|
|
|
|
assert_file "app/assets/stylesheets/bukkits"
|
|
|
|
assert_file "app/assets/images/bukkits"
|
2011-04-17 04:23:07 -04:00
|
|
|
assert_file "app/models"
|
|
|
|
assert_file "app/controllers"
|
|
|
|
assert_file "app/views"
|
|
|
|
assert_file "app/helpers"
|
2011-07-29 12:36:36 -04:00
|
|
|
assert_file "app/mailers"
|
2013-01-06 18:13:47 -05:00
|
|
|
assert_file "bin/rails"
|
2011-01-14 20:32:40 -05:00
|
|
|
assert_file "config/routes.rb", /Rails.application.routes.draw do/
|
2011-05-26 06:06:17 -04:00
|
|
|
assert_file "lib/bukkits/engine.rb", /module Bukkits\n class Engine < ::Rails::Engine\n end\nend/
|
2010-10-26 16:22:15 -04:00
|
|
|
assert_file "lib/bukkits.rb", /require "bukkits\/engine"/
|
|
|
|
end
|
|
|
|
|
2010-10-27 21:00:42 -04:00
|
|
|
def test_being_quiet_while_creating_dummy_application
|
2011-03-12 19:01:12 -05:00
|
|
|
assert_no_match(/create\s+config\/application.rb/, run_generator)
|
2010-10-27 21:00:42 -04:00
|
|
|
end
|
|
|
|
|
2010-11-02 11:34:07 -04:00
|
|
|
def test_create_mountable_application_with_mountable_option
|
|
|
|
run_generator [destination_root, "--mountable"]
|
2011-06-12 21:29:14 -04:00
|
|
|
assert_file "app/assets/javascripts/bukkits"
|
|
|
|
assert_file "app/assets/stylesheets/bukkits"
|
|
|
|
assert_file "app/assets/images/bukkits"
|
2010-11-02 11:34:07 -04:00
|
|
|
assert_file "config/routes.rb", /Bukkits::Engine.routes.draw do/
|
|
|
|
assert_file "lib/bukkits/engine.rb", /isolate_namespace Bukkits/
|
|
|
|
assert_file "test/dummy/config/routes.rb", /mount Bukkits::Engine => "\/bukkits"/
|
2010-11-16 10:41:37 -05:00
|
|
|
assert_file "app/controllers/bukkits/application_controller.rb", /module Bukkits\n class ApplicationController < ActionController::Base/
|
2010-11-02 11:34:07 -04:00
|
|
|
assert_file "app/helpers/bukkits/application_helper.rb", /module Bukkits\n module ApplicationHelper/
|
2011-06-12 21:29:14 -04:00
|
|
|
assert_file "app/views/layouts/bukkits/application.html.erb" do |contents|
|
|
|
|
assert_match "<title>Bukkits</title>", contents
|
2011-09-03 22:53:13 -04:00
|
|
|
assert_match(/stylesheet_link_tag\s+['"]bukkits\/application['"]/, contents)
|
|
|
|
assert_match(/javascript_include_tag\s+['"]bukkits\/application['"]/, contents)
|
2011-06-12 21:29:14 -04:00
|
|
|
end
|
2010-11-02 11:34:07 -04:00
|
|
|
end
|
|
|
|
|
2011-05-24 03:30:23 -04:00
|
|
|
def test_creating_gemspec
|
2011-05-24 06:37:57 -04:00
|
|
|
run_generator
|
2011-07-28 11:44:29 -04:00
|
|
|
assert_file "bukkits.gemspec", /s.name\s+= "bukkits"/
|
2012-05-01 22:29:56 -04:00
|
|
|
assert_file "bukkits.gemspec", /s.files = Dir\["\{app,config,db,lib\}\/\*\*\/\*", "MIT-LICENSE", "Rakefile", "README\.rdoc"\]/
|
2011-05-25 09:03:07 -04:00
|
|
|
assert_file "bukkits.gemspec", /s.test_files = Dir\["test\/\*\*\/\*"\]/
|
2011-07-28 11:44:29 -04:00
|
|
|
assert_file "bukkits.gemspec", /s.version\s+ = Bukkits::VERSION/
|
2011-05-24 03:30:23 -04:00
|
|
|
end
|
|
|
|
|
2011-05-27 02:25:56 -04:00
|
|
|
def test_usage_of_engine_commands
|
2011-05-27 07:44:10 -04:00
|
|
|
run_generator [destination_root, "--full"]
|
2013-01-06 18:13:47 -05:00
|
|
|
assert_file "bin/rails", /ENGINE_PATH = File.expand_path\('..\/..\/lib\/bukkits\/engine', __FILE__\)/
|
|
|
|
assert_file "bin/rails", /ENGINE_ROOT = File.expand_path\('..\/..', __FILE__\)/
|
|
|
|
assert_file "bin/rails", /require 'rails\/all'/
|
|
|
|
assert_file "bin/rails", /require 'rails\/engine\/commands'/
|
2011-05-27 02:25:56 -04:00
|
|
|
end
|
|
|
|
|
2011-05-24 07:57:36 -04:00
|
|
|
def test_shebang
|
2011-05-27 07:44:10 -04:00
|
|
|
run_generator [destination_root, "--full"]
|
2013-01-06 18:13:47 -05:00
|
|
|
assert_file "bin/rails", /#!\/usr\/bin\/env ruby/
|
2011-05-24 07:57:36 -04:00
|
|
|
end
|
|
|
|
|
2010-11-08 16:43:51 -05:00
|
|
|
def test_passing_dummy_path_as_a_parameter
|
|
|
|
run_generator [destination_root, "--dummy_path", "spec/dummy"]
|
|
|
|
assert_file "spec/dummy"
|
|
|
|
assert_file "spec/dummy/config/application.rb"
|
|
|
|
assert_no_file "test/dummy"
|
|
|
|
end
|
2011-05-25 09:03:42 -04:00
|
|
|
|
2012-05-10 17:11:59 -04:00
|
|
|
def test_creating_dummy_application_with_different_name
|
|
|
|
run_generator [destination_root, "--dummy_path", "spec/fake"]
|
|
|
|
assert_file "spec/fake"
|
|
|
|
assert_file "spec/fake/config/application.rb"
|
|
|
|
assert_no_file "test/dummy"
|
|
|
|
end
|
|
|
|
|
2011-05-24 07:18:27 -04:00
|
|
|
def test_creating_dummy_without_tests_but_with_dummy_path
|
|
|
|
run_generator [destination_root, "--dummy_path", "spec/dummy", "--skip-test-unit"]
|
|
|
|
assert_file "spec/dummy"
|
|
|
|
assert_file "spec/dummy/config/application.rb"
|
|
|
|
assert_no_file "test"
|
2012-07-03 12:58:17 -04:00
|
|
|
assert_file '.gitignore' do |contents|
|
|
|
|
assert_match(/spec\/dummy/, contents)
|
|
|
|
end
|
2011-05-24 07:18:27 -04:00
|
|
|
end
|
2012-01-07 12:53:49 -05:00
|
|
|
|
2011-11-10 02:22:26 -05:00
|
|
|
def test_ensure_that_gitignore_can_be_generated_from_a_template_for_dummy_path
|
|
|
|
FileUtils.cd(Rails.root)
|
2012-07-03 12:58:17 -04:00
|
|
|
run_generator([destination_root, "--dummy_path", "spec/dummy", "--skip-test-unit"])
|
2011-11-10 02:22:26 -05:00
|
|
|
assert_file ".gitignore" do |contents|
|
|
|
|
assert_match(/spec\/dummy/, contents)
|
|
|
|
end
|
|
|
|
end
|
2010-11-08 16:43:51 -05:00
|
|
|
|
2011-05-25 09:03:07 -04:00
|
|
|
def test_skipping_test_unit
|
|
|
|
run_generator [destination_root, "--skip-test-unit"]
|
|
|
|
assert_no_file "test"
|
2011-05-25 09:12:54 -04:00
|
|
|
assert_file "bukkits.gemspec" do |contents|
|
2011-09-03 22:53:13 -04:00
|
|
|
assert_no_match(/s.test_files = Dir\["test\/\*\*\/\*"\]/, contents)
|
2011-05-25 09:12:54 -04:00
|
|
|
end
|
2012-07-03 12:58:17 -04:00
|
|
|
assert_file '.gitignore' do |contents|
|
|
|
|
assert_no_match(/test\dummy/, contents)
|
|
|
|
end
|
2011-05-25 09:03:07 -04:00
|
|
|
end
|
|
|
|
|
2010-11-14 20:04:17 -05:00
|
|
|
def test_skipping_gemspec
|
|
|
|
run_generator [destination_root, "--skip-gemspec"]
|
|
|
|
assert_no_file "bukkits.gemspec"
|
2012-06-05 01:49:40 -04:00
|
|
|
assert_file "Gemfile" do |contents|
|
|
|
|
assert_no_match('gemspec', contents)
|
2013-03-20 05:48:58 -04:00
|
|
|
assert_match(/gem "rails", "~> #{Rails.version}"/, contents)
|
2013-11-23 05:38:54 -05:00
|
|
|
assert_match_sqlite3(contents)
|
2012-06-05 01:49:40 -04:00
|
|
|
assert_no_match(/# gem "jquery-rails"/, contents)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_skipping_gemspec_in_full_mode
|
|
|
|
run_generator [destination_root, "--skip-gemspec", "--full"]
|
|
|
|
assert_no_file "bukkits.gemspec"
|
|
|
|
assert_file "Gemfile" do |contents|
|
|
|
|
assert_no_match('gemspec', contents)
|
2013-03-20 05:48:58 -04:00
|
|
|
assert_match(/gem "rails", "~> #{Rails.version}"/, contents)
|
2013-11-23 05:38:54 -05:00
|
|
|
assert_match_sqlite3(contents)
|
2012-06-05 01:49:40 -04:00
|
|
|
end
|
2010-11-14 20:04:17 -05:00
|
|
|
end
|
|
|
|
|
2012-01-07 12:53:49 -05:00
|
|
|
def test_creating_plugin_in_app_directory_adds_gemfile_entry
|
2013-12-02 09:05:02 -05:00
|
|
|
# simulate application existence
|
2012-01-07 12:53:49 -05:00
|
|
|
gemfile_path = "#{Rails.root}/Gemfile"
|
|
|
|
Object.const_set('APP_PATH', Rails.root)
|
|
|
|
FileUtils.touch gemfile_path
|
|
|
|
|
|
|
|
run_generator [destination_root]
|
|
|
|
|
2012-05-22 05:26:06 -04:00
|
|
|
assert_file gemfile_path, /gem 'bukkits', path: 'tmp\/bukkits'/
|
2012-01-07 12:53:49 -05:00
|
|
|
ensure
|
|
|
|
Object.send(:remove_const, 'APP_PATH')
|
|
|
|
FileUtils.rm gemfile_path
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_skipping_gemfile_entry
|
2013-12-02 09:05:02 -05:00
|
|
|
# simulate application existence
|
2012-01-07 12:53:49 -05:00
|
|
|
gemfile_path = "#{Rails.root}/Gemfile"
|
|
|
|
Object.const_set('APP_PATH', Rails.root)
|
|
|
|
FileUtils.touch gemfile_path
|
|
|
|
|
|
|
|
run_generator [destination_root, "--skip-gemfile-entry"]
|
|
|
|
|
|
|
|
assert_file gemfile_path do |contents|
|
2012-05-22 05:26:06 -04:00
|
|
|
assert_no_match(/gem 'bukkits', path: 'tmp\/bukkits'/, contents)
|
2012-01-07 12:53:49 -05:00
|
|
|
end
|
|
|
|
ensure
|
|
|
|
Object.send(:remove_const, 'APP_PATH')
|
|
|
|
FileUtils.rm gemfile_path
|
|
|
|
end
|
|
|
|
|
2014-02-25 08:57:23 -05:00
|
|
|
def test_generating_controller_inside_mountable_engine
|
|
|
|
run_generator [destination_root, "--mountable"]
|
|
|
|
|
|
|
|
capture(:stdout) do
|
|
|
|
`#{destination_root}/bin/rails g controller admin/dashboard foo`
|
|
|
|
end
|
|
|
|
|
|
|
|
assert_file "config/routes.rb" do |contents|
|
|
|
|
assert_match(/namespace :admin/, contents)
|
|
|
|
assert_no_match(/namespace :bukkit/, contents)
|
|
|
|
end
|
|
|
|
end
|
2012-01-07 12:53:49 -05:00
|
|
|
|
2013-04-12 00:51:52 -04:00
|
|
|
def test_git_name_and_email_in_gemspec_file
|
2014-05-02 05:26:31 -04:00
|
|
|
name = `git config user.name`.chomp rescue "TODO: Write your name"
|
|
|
|
email = `git config user.email`.chomp rescue "TODO: Write your email address"
|
2013-04-12 00:51:52 -04:00
|
|
|
|
|
|
|
run_generator [destination_root]
|
|
|
|
assert_file "bukkits.gemspec" do |contents|
|
|
|
|
assert_match(/#{Regexp.escape(name)}/, contents)
|
|
|
|
assert_match(/#{Regexp.escape(email)}/, contents)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2014-05-02 05:26:31 -04:00
|
|
|
def test_git_name_in_license_file
|
|
|
|
name = `git config user.name`.chomp rescue "TODO: Write your name"
|
2013-04-12 00:51:52 -04:00
|
|
|
|
|
|
|
run_generator [destination_root]
|
|
|
|
assert_file "MIT-LICENSE" do |contents|
|
|
|
|
assert_match(/#{Regexp.escape(name)}/, contents)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2014-05-02 05:26:31 -04:00
|
|
|
def test_no_details_from_git_when_skip_git
|
|
|
|
name = "TODO: Write your name"
|
|
|
|
email = "TODO: Write your email address"
|
|
|
|
|
|
|
|
run_generator [destination_root, '--skip-git']
|
|
|
|
assert_file "MIT-LICENSE" do |contents|
|
|
|
|
assert_match(/#{Regexp.escape(name)}/, contents)
|
|
|
|
end
|
|
|
|
assert_file "bukkits.gemspec" do |contents|
|
|
|
|
assert_match(/#{Regexp.escape(name)}/, contents)
|
|
|
|
assert_match(/#{Regexp.escape(email)}/, contents)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2010-10-15 10:46:31 -04:00
|
|
|
protected
|
|
|
|
def action(*args, &block)
|
|
|
|
silence(:stdout){ generator.send(*args, &block) }
|
|
|
|
end
|
|
|
|
|
2011-07-29 12:36:36 -04:00
|
|
|
def default_files
|
|
|
|
::DEFAULT_PLUGIN_FILES
|
|
|
|
end
|
2013-11-23 05:38:54 -05:00
|
|
|
|
|
|
|
def assert_match_sqlite3(contents)
|
|
|
|
unless defined?(JRUBY_VERSION)
|
|
|
|
assert_match(/group :development do\n gem "sqlite3"\nend/, contents)
|
|
|
|
else
|
|
|
|
assert_match(/group :development do\n gem "activerecord-jdbcsqlite3-adapter"\nend/, contents)
|
|
|
|
end
|
|
|
|
end
|
2010-10-15 10:46:31 -04:00
|
|
|
end
|