test/test_compiler.rb in golf-0.4.14 vs test/test_compiler.rb in golf-0.5.0
- old
+ new
@@ -1,25 +1,105 @@
require 'test_helper'
+require 'ostruct'
+
+
class CompilerTest < Test::Unit::TestCase
+ def parse_file(js)
+ file = File.read(js)
+ arr = file.split(';;')
+ result = OpenStruct.new
+ result.components = JSON.parse arr[0].gsub('jQuery.golf.components=','')
+ result.res = JSON.parse arr[1].gsub('jQuery.golf.res=','')
+ result.res["components.js"] = "components.js"
+ result.plugins = JSON.parse arr[2].gsub('jQuery.golf.plugins=','')
+ result.scripts = JSON.parse arr[3].gsub('jQuery.golf.scripts=','')
+ result.styles = JSON.parse arr[4].gsub('jQuery.golf.styles=','')
+ result
+ end
+
def setup
- @compiler = Golf::Compiler.new(File.expand_path("../twitter_compiled", __FILE__))
- @reference_file = File.read(File.expand_path("../twitter_compiled/golfapp/components.js", __FILE__))
+ @compiler = Golf::Compiler.new(File.expand_path("../reference_app", __FILE__))
+ @reference_file = File.expand_path("../reference_app/golfapp/components.js", __FILE__)
+ @reference = parse_file(@reference_file)
+
end
-
def test_componentsjs_generation
- componentjs = @compiler.generate_componentsjs
- known_good = File.read(File.expand_path("../twitter_compiled/golfapp/components.js", __FILE__))
- assert_equal componentjs.gsub(' ','').gsub('\n','').gsub('\\',''), known_good.gsub(' ','').gsub('\n','').gsub('\\','')
+ a = @reference.components
+ b = JSON.parse @compiler.component_json
+ assert_equal a.keys.sort,b.keys.sort
+ assert_equal a,b
+ puts a["HelloWorld"]["html"]
+ puts b["HelloWorld"]["html"]
+ a.keys.each do |key|
+ puts "#{key} should be #{a[key].hash}, but was #{b[key].hash}"
+ end
end
+ def test_res_generation
+ a = @reference.res
+ b = JSON.parse @compiler.res_json
+ assert_equal a,b
+ end
+ def test_res_generation_components
+ a = @reference.res
+ b = JSON.parse @compiler.res_json
+
+ assert_equal a["components"], b["components"]
+ end
+
+ def test_res_generation_plugins
+ a = @reference.res
+ b = JSON.parse @compiler.res_json
+
+ assert_equal a["plugins"], b["plugins"]
+ end
+
+ def test_res_generation_img
+ a = @reference.res
+ b = JSON.parse @compiler.res_json
+
+ assert_equal a["img"], b["img"]
+ end
+
+ def test_res_generation_styles
+ a = @reference.res
+ b = JSON.parse @compiler.res_json
+
+ assert_equal a["styles"], b["styles"]
+ end
+
+ def test_res_generation_scripts
+ a = @reference.res
+ b = JSON.parse @compiler.res_json
+ assert_equal a["scripts"], b["scripts"]
+ end
+
+ def test_plugin_generation
+ a = @reference.plugins
+ b = JSON.parse @compiler.plugin_json
+ assert_equal a,b
+ end
+
+ def test_scripts_generation
+ a = @reference.scripts
+ b = JSON.parse @compiler.script_json
+ assert_equal a,b
+ end
+
+ def test_styles_generation
+ a = @reference.styles
+ b = JSON.parse @compiler.style_json
+
+ assert_equal a,b
+ end
+
def test_package_name_resolution
result = @compiler.package_name '/asd/asdasd/golfapp/components/golf/twitter/Tweet/Tweet.html'
assert_equal 'golf.twitter.Tweet', result
-
end
end