class Tuev::TestSuite
Public Class Methods
new(test_suite_config)
click to toggle source
# File lib/tuev/tuev.rb, line 42 def initialize(test_suite_config) begin @test_file_template = File.join(Tuev.cwd, test_suite_config["test_file_template"]) rescue raise "could not find 'test_file_template' setting for current suite" end @jquery_js = file_url(Tuev.contrib_dir, "jquery-1.5.1.js") @mockjax_js = file_url(Tuev.contrib_dir, "jquery.mockjax.js") @qunit_js = file_url(Tuev.contrib_dir, "qunit.js") @tuev_qunit_js = file_url(Tuev.contrib_dir, "tuev_qunit.js") @qunit_css = file_url(Tuev.contrib_dir, "qunit.css") @test_suite_name = test_suite_config["name"] @combine_tests = test_suite_config["combine_tests"] @test_set = @tests = build_file_list(test_suite_config["test_files"]) @dependencies = build_file_list(test_suite_config["dependencies"]) end
Public Instance Methods
create_test_files()
click to toggle source
# File lib/tuev/tuev.rb, line 63 def create_test_files files = [] if ENV['COMBINE_TESTS'] == 'true' || (ENV['COMBINE_TESTS'] != 'false' && @combine_tests) files << File.join(out_path, "#{@test_suite_name}.html") @test_set_name = title_from_filename(files.last) @test_set = @tests save(render_template(@tests), files.last) else @tests.each do |test| files << File.join(out_path, "#{@test_suite_name}_#{test.gsub('file://','').gsub(Tuev.cwd, '').tr('/.','_')}.html") @test_set_name = title_from_filename(files.last) @test_set = [test] save(render_template(test), files.last) end end files end
Private Instance Methods
build_file_list(includes_and_excludes)
click to toggle source
# File lib/tuev/tuev.rb, line 105 def build_file_list(includes_and_excludes) file_list = [*includes_and_excludes["include"]].map do |pattern| files = Dir.glob(pattern) if files.empty? raise "could not find file matching '#{pattern}'" end files end file_list.flatten! if excludes = includes_and_excludes["exclude"] [*excludes].each do |exclude_regexp| file_list.delete_if{|x| x =~ /#{exclude_regexp}/ } end end file_list.map{|x| file_url(x)}.uniq end
file_url(*relativ_path_parts)
click to toggle source
# File lib/tuev/tuev.rb, line 127 def file_url(*relativ_path_parts) "file://#{File.expand_path(File.join(Tuev.cwd, *relativ_path_parts))}" end
out_path()
click to toggle source
# File lib/tuev/tuev.rb, line 89 def out_path Tuev.test_out end
render_template(tests)
click to toggle source
# File lib/tuev/tuev.rb, line 99 def render_template(tests) template = ERB.new(File.read(@test_file_template)) template.result(binding) end
save(source_code, filename)
click to toggle source
# File lib/tuev/tuev.rb, line 93 def save(source_code, filename) File.open(filename, "w") do |f| f << source_code end end
title_from_filename(filename)
click to toggle source
# File lib/tuev/tuev.rb, line 85 def title_from_filename(filename) filename.gsub(/#{out_path}[\/]*/, '').gsub('.html','').gsub('_js','').gsub('_',' ') end