1
0
Fork 0
mirror of https://github.com/rails/execjs synced 2023-03-27 23:21:20 -04:00

Merge branch 'master' into duktape

This commit is contained in:
Joshua Peek 2014-12-10 22:19:19 -08:00
commit 4f760eeca9
3 changed files with 38 additions and 0 deletions

View file

@ -2,3 +2,5 @@ language: ruby
rvm:
- 1.9.3
- 2.0.0
- 2.1
- 2.2

View file

@ -6,4 +6,5 @@ group :test do
gem 'duktape'
gem 'therubyracer', platform: :mri
gem 'therubyrhino', ">=1.73.3", platform: :jruby
gem 'minitest', require: false
end

View file

@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
require "minitest/autorun"
require "execjs/module"
require "json"
begin
require "execjs"
@ -89,6 +90,40 @@ class TestExecJS < Test
assert_equal "\\", ExecJS.eval('"\\\\"')
end
def test_json_values
[
nil,
true,
false,
1,
3.14,
"hello",
"\\",
"café",
"",
["0ff98948"].pack("h*").force_encoding("UTF-8"), # Smiling emoji
[1, 2, 3],
[1, [2, 3]],
[1, [2, [3]]],
["red", "yellow", "blue"],
{ "a" => 1, "b" => 2},
{ "a" => 1, "b" => [2, 3]},
{ "a" => true }
].each do |value|
json_value = JSON.generate(value, quirks_mode: true)
assert_equal value, JSON.parse(json_value, quirks_mode: true)
assert_equal value, ExecJS.exec("return #{json_value}")
assert_equal value, ExecJS.eval("#{json_value}")
context = ExecJS.compile("function json(obj) { return JSON.stringify(obj); }")
assert_equal json_value, context.call("json", value)
context = ExecJS.compile("function id(obj) { return obj; }")
assert_equal value, context.call("id", value)
end
end
def test_encoding
utf8 = Encoding.find('UTF-8')