Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap-rubygem.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorGleb Mazovetskiy <glex.spb@gmail.com>2014-08-25 00:46:13 +0400
committerGleb Mazovetskiy <glex.spb@gmail.com>2014-08-25 00:46:13 +0400
commit0ca86d31fcaa22d4ecb1c9052e5669f3f161e6a0 (patch)
treec020cda2d46acc8b2e74bb23120fc88804e72c4d /test
parent88be09541f342c44aa0d0e6b1cd24b92633af06b (diff)
streamline tests, switch to minitest
Diffstat (limited to 'test')
-rw-r--r--test/compass_test.rb8
-rw-r--r--test/compilation_test.rb14
-rw-r--r--test/dummy_rails/README.rdoc2
-rwxr-xr-xtest/dummy_rails/bin/bundle3
-rwxr-xr-xtest/dummy_rails/bin/rails4
-rwxr-xr-xtest/dummy_rails/bin/rake4
-rw-r--r--test/dummy_rails/config/application.rb17
-rw-r--r--test/dummy_rails/db/test.sqlite30
-rw-r--r--test/dummy_rails/lib/assets/.keep0
-rw-r--r--test/dummy_rails/log/production.log0
-rw-r--r--test/dummy_rails/public/404.html58
-rw-r--r--test/dummy_rails/public/422.html58
-rw-r--r--test/dummy_rails/public/500.html57
-rw-r--r--test/dummy_rails/public/favicon.ico0
-rw-r--r--test/node_mincer_test.rb11
-rw-r--r--test/node_sass_test.rb11
-rw-r--r--test/pages_test.rb2
-rw-r--r--test/sass_test.rb14
-rw-r--r--test/sprockets_rails_test.rb16
-rw-r--r--test/support/dummy_rails_integration.rb22
-rw-r--r--test/support/integration_test.rb22
-rw-r--r--test/support/reporting.rb17
-rw-r--r--test/test_helper.rb17
-rw-r--r--test/test_helper_rails.rb2
24 files changed, 109 insertions, 250 deletions
diff --git a/test/compass_test.rb b/test/compass_test.rb
index b700fed..1811ca2 100644
--- a/test/compass_test.rb
+++ b/test/compass_test.rb
@@ -1,13 +1,9 @@
require 'test_helper'
-class CompassTest < Test::Unit::TestCase
+class CompassTest < Minitest::Test
def test_create_project
command = 'rm -rf tmp/new-compass-project; bundle exec compass create tmp/new-compass-project -r bootstrap-sass --using bootstrap --trace --force'
- success = if ENV['VERBOSE']
- system command
- else
- silence_stream(STDOUT) { system(command) }
- end
+ success = silence_stdout_if(!ENV['VERBOSE']) { system(command) }
assert success, 'Compass project creation failed!'
end
end
diff --git a/test/compilation_test.rb b/test/compilation_test.rb
index 2cf4e72..4453935 100644
--- a/test/compilation_test.rb
+++ b/test/compilation_test.rb
@@ -1,17 +1,17 @@
require 'test_helper'
require 'fileutils'
+require 'sass'
-class CompilationTest < Test::Unit::TestCase
+class CompilationTest < Minitest::Test
def test_compilation
path = 'assets/stylesheets'
%w(_bootstrap bootstrap/_theme).each do |file|
engine = Sass::Engine.for_file("#{path}/#{file}.scss", syntax: :scss, load_paths: [path])
- assert_nothing_raised do
- FileUtils.mkdir_p("tmp/#{File.dirname(file)}")
- File.open("tmp/#{file}.css", 'w') { |f|
- f.write engine.render
- }
- end
+ FileUtils.mkdir_p("tmp/#{File.dirname(file)}")
+ File.open("tmp/#{file}.css", 'w') { |f|
+ f.write engine.render
+ }
+ assert true # nothing was raised
end
end
end
diff --git a/test/dummy_rails/README.rdoc b/test/dummy_rails/README.rdoc
index 20e9b57..5604f2d 100644
--- a/test/dummy_rails/README.rdoc
+++ b/test/dummy_rails/README.rdoc
@@ -1,3 +1,3 @@
== README
-This is a dummy app for testing REP \ No newline at end of file
+This is a minimal Rails app for testing
diff --git a/test/dummy_rails/bin/bundle b/test/dummy_rails/bin/bundle
deleted file mode 100755
index 66e9889..0000000
--- a/test/dummy_rails/bin/bundle
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env ruby
-ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
-load Gem.bin_path('bundler', 'bundle')
diff --git a/test/dummy_rails/bin/rails b/test/dummy_rails/bin/rails
deleted file mode 100755
index 728cd85..0000000
--- a/test/dummy_rails/bin/rails
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/env ruby
-APP_PATH = File.expand_path('../../config/application', __FILE__)
-require_relative '../config/boot'
-require 'rails/commands'
diff --git a/test/dummy_rails/bin/rake b/test/dummy_rails/bin/rake
deleted file mode 100755
index 1724048..0000000
--- a/test/dummy_rails/bin/rake
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/env ruby
-require_relative '../config/boot'
-require 'rake'
-Rake.application.run
diff --git a/test/dummy_rails/config/application.rb b/test/dummy_rails/config/application.rb
index 9695b6c..e990bdd 100644
--- a/test/dummy_rails/config/application.rb
+++ b/test/dummy_rails/config/application.rb
@@ -1,6 +1,15 @@
require File.expand_path('../boot', __FILE__)
-require 'rails/all'
+require 'rails'
+
+%w(
+ action_controller
+ action_view
+ sprockets
+).each do |framework|
+ require "#{framework}/railtie"
+end
+
require 'slim-rails'
require 'jquery-rails'
require 'compass'
@@ -10,6 +19,12 @@ require 'uglifier'
module Dummy
class Application < Rails::Application
config.assets.enabled = true if config.assets.respond_to?(:enabled)
+ config.to_prepare do
+ if ENV['VERBOSE']
+ STDERR.puts "Loaded Rails #{Rails::VERSION::STRING}, Sprockets #{Sprockets::VERSION}",
+ "Asset paths: #{Rails.application.config.assets.paths}"
+ end
+ end
end
end
diff --git a/test/dummy_rails/db/test.sqlite3 b/test/dummy_rails/db/test.sqlite3
deleted file mode 100644
index e69de29..0000000
--- a/test/dummy_rails/db/test.sqlite3
+++ /dev/null
diff --git a/test/dummy_rails/lib/assets/.keep b/test/dummy_rails/lib/assets/.keep
deleted file mode 100644
index e69de29..0000000
--- a/test/dummy_rails/lib/assets/.keep
+++ /dev/null
diff --git a/test/dummy_rails/log/production.log b/test/dummy_rails/log/production.log
deleted file mode 100644
index e69de29..0000000
--- a/test/dummy_rails/log/production.log
+++ /dev/null
diff --git a/test/dummy_rails/public/404.html b/test/dummy_rails/public/404.html
deleted file mode 100644
index a0daa0c..0000000
--- a/test/dummy_rails/public/404.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>The page you were looking for doesn't exist (404)</title>
- <style>
- body {
- background-color: #EFEFEF;
- color: #2E2F30;
- text-align: center;
- font-family: arial, sans-serif;
- }
-
- div.dialog {
- width: 25em;
- margin: 4em auto 0 auto;
- border: 1px solid #CCC;
- border-right-color: #999;
- border-left-color: #999;
- border-bottom-color: #BBB;
- border-top: #B00100 solid 4px;
- border-top-left-radius: 9px;
- border-top-right-radius: 9px;
- background-color: white;
- padding: 7px 4em 0 4em;
- }
-
- h1 {
- font-size: 100%;
- color: #730E15;
- line-height: 1.5em;
- }
-
- body > p {
- width: 33em;
- margin: 0 auto 1em;
- padding: 1em 0;
- background-color: #F7F7F7;
- border: 1px solid #CCC;
- border-right-color: #999;
- border-bottom-color: #999;
- border-bottom-left-radius: 4px;
- border-bottom-right-radius: 4px;
- border-top-color: #DADADA;
- color: #666;
- box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
- }
- </style>
-</head>
-
-<body>
- <!-- This file lives in public/404.html -->
- <div class="dialog">
- <h1>The page you were looking for doesn't exist.</h1>
- <p>You may have mistyped the address or the page may have moved.</p>
- </div>
- <p>If you are the application owner check the logs for more information.</p>
-</body>
-</html>
diff --git a/test/dummy_rails/public/422.html b/test/dummy_rails/public/422.html
deleted file mode 100644
index fbb4b84..0000000
--- a/test/dummy_rails/public/422.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>The change you wanted was rejected (422)</title>
- <style>
- body {
- background-color: #EFEFEF;
- color: #2E2F30;
- text-align: center;
- font-family: arial, sans-serif;
- }
-
- div.dialog {
- width: 25em;
- margin: 4em auto 0 auto;
- border: 1px solid #CCC;
- border-right-color: #999;
- border-left-color: #999;
- border-bottom-color: #BBB;
- border-top: #B00100 solid 4px;
- border-top-left-radius: 9px;
- border-top-right-radius: 9px;
- background-color: white;
- padding: 7px 4em 0 4em;
- }
-
- h1 {
- font-size: 100%;
- color: #730E15;
- line-height: 1.5em;
- }
-
- body > p {
- width: 33em;
- margin: 0 auto 1em;
- padding: 1em 0;
- background-color: #F7F7F7;
- border: 1px solid #CCC;
- border-right-color: #999;
- border-bottom-color: #999;
- border-bottom-left-radius: 4px;
- border-bottom-right-radius: 4px;
- border-top-color: #DADADA;
- color: #666;
- box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
- }
- </style>
-</head>
-
-<body>
- <!-- This file lives in public/422.html -->
- <div class="dialog">
- <h1>The change you wanted was rejected.</h1>
- <p>Maybe you tried to change something you didn't have access to.</p>
- </div>
- <p>If you are the application owner check the logs for more information.</p>
-</body>
-</html>
diff --git a/test/dummy_rails/public/500.html b/test/dummy_rails/public/500.html
deleted file mode 100644
index e9052d3..0000000
--- a/test/dummy_rails/public/500.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>We're sorry, but something went wrong (500)</title>
- <style>
- body {
- background-color: #EFEFEF;
- color: #2E2F30;
- text-align: center;
- font-family: arial, sans-serif;
- }
-
- div.dialog {
- width: 25em;
- margin: 4em auto 0 auto;
- border: 1px solid #CCC;
- border-right-color: #999;
- border-left-color: #999;
- border-bottom-color: #BBB;
- border-top: #B00100 solid 4px;
- border-top-left-radius: 9px;
- border-top-right-radius: 9px;
- background-color: white;
- padding: 7px 4em 0 4em;
- }
-
- h1 {
- font-size: 100%;
- color: #730E15;
- line-height: 1.5em;
- }
-
- body > p {
- width: 33em;
- margin: 0 auto 1em;
- padding: 1em 0;
- background-color: #F7F7F7;
- border: 1px solid #CCC;
- border-right-color: #999;
- border-bottom-color: #999;
- border-bottom-left-radius: 4px;
- border-bottom-right-radius: 4px;
- border-top-color: #DADADA;
- color: #666;
- box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
- }
- </style>
-</head>
-
-<body>
- <!-- This file lives in public/500.html -->
- <div class="dialog">
- <h1>We're sorry, but something went wrong.</h1>
- </div>
- <p>If you are the application owner check the logs for more information.</p>
-</body>
-</html>
diff --git a/test/dummy_rails/public/favicon.ico b/test/dummy_rails/public/favicon.ico
deleted file mode 100644
index e69de29..0000000
--- a/test/dummy_rails/public/favicon.ico
+++ /dev/null
diff --git a/test/node_mincer_test.rb b/test/node_mincer_test.rb
index ad9697a..c18a086 100644
--- a/test/node_mincer_test.rb
+++ b/test/node_mincer_test.rb
@@ -1,7 +1,7 @@
require 'test_helper'
require 'json'
-class NodeMincerTest < Test::Unit::TestCase
+class NodeMincerTest < Minitest::Test
DUMMY_PATH = 'test/dummy_node_mincer'
def test_font_helper_without_suffix
@@ -21,13 +21,14 @@ class NodeMincerTest < Test::Unit::TestCase
end
def setup
- tmp_dir = File.join Bootstrap.gem_path, 'tmp/node-mincer'
+ tmp_dir = File.join GEM_PATH, 'tmp/node-mincer'
command = "node manifest.js #{tmp_dir}"
- Dir.chdir DUMMY_PATH do
- assert silence_stream(STDOUT) {
+ success = Dir.chdir DUMMY_PATH do
+ silence_stdout_if !ENV['VERBOSE'] do
system(command)
- }, 'Node.js Mincer compilation failed'
+ end
end
+ assert success, 'Node.js Mincer compilation failed'
manifest = JSON.parse(File.read("#{tmp_dir}/manifest.json"))
css_name = manifest["assets"]["application.css"]
@css = File.read("#{tmp_dir}/#{css_name}")
diff --git a/test/node_sass_test.rb b/test/node_sass_test.rb
index 0010009..d1c68ec 100644
--- a/test/node_sass_test.rb
+++ b/test/node_sass_test.rb
@@ -1,15 +1,16 @@
require 'test_helper'
require 'fileutils'
-class NodeSassTest < Test::Unit::TestCase
+class NodeSassTest < Minitest::Test
def test_node_sass_compilation
path = 'assets/stylesheets'
%w(bootstrap bootstrap/_theme).each do |file|
- FileUtils.mkdir_p "tmp/node-sass"
+ FileUtils.mkdir_p 'tmp/node-sass'
command = "node-sass #{path}/#{file} -o tmp/node-sass/#{File.basename file}.css"
- assert silence_stream(STDOUT) {
- system(command)
- }, 'node-sass compilation failed'
+ success = silence_stderr_if !ENV['VERBOSE'] do
+ system command
+ end
+ assert success, 'node-sass compilation failed'
end
end
end
diff --git a/test/pages_test.rb b/test/pages_test.rb
index befd1c7..b86c7ed 100644
--- a/test/pages_test.rb
+++ b/test/pages_test.rb
@@ -1,7 +1,7 @@
require 'test_helper_rails'
class PagesTest < ActionDispatch::IntegrationTest
- include ::IntegrationTest
+ include ::DummyRailsIntegration
def test_visit_root
visit root_path
diff --git a/test/sass_test.rb b/test/sass_test.rb
index 7f4acac..fc54c77 100644
--- a/test/sass_test.rb
+++ b/test/sass_test.rb
@@ -1,6 +1,7 @@
require 'test_helper'
+require 'shellwords'
-class SassTest < Test::Unit::TestCase
+class SassTest < Minitest::Test
DUMMY_PATH = 'test/dummy_sass_only'
def test_font_helper
@@ -12,13 +13,14 @@ class SassTest < Test::Unit::TestCase
%x[rm -rf .sass-cache/]
%x[bundle]
end
- css_path = File.join Bootstrap.gem_path, 'tmp/bootstrap-sass-only.css'
- command = "bundle exec ruby compile.rb #{css_path}"
- Dir.chdir DUMMY_PATH do
- assert silence_stream(STDOUT) {
+ css_path = File.join GEM_PATH, 'tmp/bootstrap-sass-only.css'
+ command = "bundle exec ruby compile.rb #{Shellwords.escape css_path}"
+ success = Dir.chdir DUMMY_PATH do
+ silence_stdout_if !ENV['VERBOSE'] do
system(command)
- }, 'Sass-only compilation failed'
+ end
end
+ assert success, 'Sass-only compilation failed'
@css = File.read(css_path)
end
end
diff --git a/test/sprockets_rails_test.rb b/test/sprockets_rails_test.rb
index cdc502c..686cfa0 100644
--- a/test/sprockets_rails_test.rb
+++ b/test/sprockets_rails_test.rb
@@ -3,12 +3,18 @@ require 'fileutils'
require 'find'
require 'shellwords'
-class SprocketsRailsTest < ActiveSupport::TestCase
+class SprocketsRailsTest < Minitest::Test
def test_sprockets_digest_asset_refs
- system "cd #{Shellwords.escape Rails.root.to_s} && bundle exec rake assets:precompile GEMFILE=#{Bootstrap.gem_path}/Gemfile RAILS_ENV=production"
- Dir.glob(Rails.root.join('public', 'assets', 'app*.*')) do |path|
- next unless path =~ /\.(css|js)$/
+ root = 'test/dummy_rails'
+ command = "bundle exec rake assets:precompile GEMFILE=#{GEM_PATH}/Gemfile RAILS_ENV=production"
+ compiled = Dir.chdir root do
+ silence_stderr_if !ENV['VERBOSE'] do
+ system(command)
+ end
+ end
+ assert compiled, 'Could not precompile assets'
+ Dir.glob(File.join(root, 'public', 'assets', 'app*.{css,js}')) do |path|
File.open(path, 'r') do |f|
f.read.scan /url\("?[^"]+\.(?:jpg|png|eot|woff|ttf|svg)[^"]*"?\)/ do |m|
assert_match /-[0-9a-f]{12,}\./, m
@@ -16,6 +22,6 @@ class SprocketsRailsTest < ActiveSupport::TestCase
end
end
ensure
- system "rm -rf #{Rails.root}/public/assets/ #{Rails.root}/tmp/cache/"
+ FileUtils.rm_rf %W(#{root}/public/assets/ #{root}/tmp/cache/), secure: true
end
end
diff --git a/test/support/dummy_rails_integration.rb b/test/support/dummy_rails_integration.rb
new file mode 100644
index 0000000..8ea0bd2
--- /dev/null
+++ b/test/support/dummy_rails_integration.rb
@@ -0,0 +1,22 @@
+require 'capybara'
+require 'fileutils'
+module DummyRailsIntegration
+ include Capybara::DSL
+
+ def setup
+ super
+ FileUtils.rm_rf('test/dummy_rails/tmp/cache', secure: true)
+ end
+
+ def teardown
+ super
+ Capybara.reset_sessions!
+ Capybara.use_default_driver
+ end
+
+ def screenshot!
+ path = "tmp/#{name}.png"
+ page.driver.render(File.join(GEM_PATH, path), full: true)
+ STDERR.puts "Screenshot saved to #{path}"
+ end
+end
diff --git a/test/support/integration_test.rb b/test/support/integration_test.rb
deleted file mode 100644
index b49bb3a..0000000
--- a/test/support/integration_test.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-require 'capybara'
-module IntegrationTest
- include Capybara::DSL
-
- def setup
- super
- %x[rm -rf test/dummy_rails/tmp/cache]
- end
-
- def teardown
- super
- Capybara.reset_sessions!
- Capybara.use_default_driver
- end
-
- def screenshot!
- screenshot_dir = File.expand_path('../../tmp/', File.dirname(__FILE__))
- page.driver.render(File.join(screenshot_dir, "#{name}.png"), :full => true)
- source = page.evaluate_script("document.getElementsByTagName('html')[0].outerHTML") rescue nil
- File.open(File.join(screenshot_dir, "#{name}.html"), 'w') { |f| f.write(source) } if source
- end
-end
diff --git a/test/support/reporting.rb b/test/support/reporting.rb
new file mode 100644
index 0000000..1d47363
--- /dev/null
+++ b/test/support/reporting.rb
@@ -0,0 +1,17 @@
+module Kernel
+ def silence_stdout_if(cond, &run)
+ silence_stream_if(cond, STDOUT, &run)
+ end
+
+ def silence_stderr_if(cond, &run)
+ silence_stream_if(cond, STDERR, &run)
+ end
+
+ def silence_stream_if(cond, stream, &run)
+ if cond
+ silence_stream(stream, &run)
+ else
+ run.call
+ end
+ end
+end
diff --git a/test/test_helper.rb b/test/test_helper.rb
index fab4d95..21e946c 100644
--- a/test/test_helper.rb
+++ b/test/test_helper.rb
@@ -1,12 +1,17 @@
-$:.unshift("#{File.dirname(__FILE__)}/..")
+require 'minitest/autorun'
+require 'minitest/reporters'
+Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new
-require 'test-unit'
-require 'sass'
+require 'active_support/core_ext/kernel/reporting'
-Dir[File.expand_path('./support/**/*.rb', File.dirname(__FILE__))].each do |file|
- require file
+Dir.chdir 'test' do
+ Dir['support/**/*.rb'].each do |file|
+ require file
+ end
end
+GEM_PATH = File.expand_path('../', File.dirname(__FILE__))
+
#= Capybara + Poltergeist
require 'capybara/poltergeist'
@@ -16,7 +21,7 @@ Capybara.register_driver :poltergeist do |app|
# inspector: '/Applications/Chromium.app/Contents/MacOS/Chromium', # open in inspector: page.driver.debug
window_size: [1280, 1024],
timeout: 90,
- js_errors: true, debug: true
+ js_errors: true
)
end
diff --git a/test/test_helper_rails.rb b/test/test_helper_rails.rb
index 1360a81..2dd877a 100644
--- a/test/test_helper_rails.rb
+++ b/test/test_helper_rails.rb
@@ -1,6 +1,6 @@
ENV['RAILS_ENV'] = ENV['RACK_ENV'] = 'test'
require 'test_helper'
-require 'test/dummy_rails/config/environment'
+require 'dummy_rails/config/environment'
require 'rails/test_help'
require 'capybara/rails'