Sha256: 1322ec9b5ea64ed1f5db64fb50c39e105073f970eff50a80ca0ef3849dc62239

Contents?: true

Size: 1.19 KB

Versions: 1

Compression:

Stored size: 1.19 KB

Contents

require File.expand_path(File.join(File.dirname(__FILE__), "/../../helper"))

module Johnson
  module Conversions
    class StringTest < Johnson::TestCase
      def test_ruby_string_in_js
        @runtime[:v] = "foo"
        assert_js("'foo' == v")
      end

      def test_js_string_in_ruby
        assert_equal("foo", @runtime.evaluate("'foo'"))
      end

      def test_roundtrip
        @runtime[:v] = v = "hola"
        assert_equal(v, @runtime.evaluate("v"))
      end
      
      def test_strings_are_copies
        @runtime[:v] = v = "hola"
        assert_not_same(v, @runtime.evaluate("v"))
      end

      def test_multibyte_character_roundtrip_js
        assert_equal(1, @runtime.evaluate("'\\u20AC'.length"))
        assert_equal(0x20ac, @runtime.evaluate("'\\u20AC'.charCodeAt(0)"))
        assert_equal(0x0000, @runtime.evaluate("'\\u0000'.charCodeAt(0)"))
        @runtime[:s] = "\xe2\x82\xac"
        assert_equal(0x20ac, @runtime.evaluate("s.charCodeAt(0)"))
        assert_equal('', @runtime.evaluate("s.substr(1)"))
        assert_equal(1, @runtime.evaluate("s.length"))
        assert_equal("\xe2\x82\xac", @runtime.evaluate("s"))
        assert_js("'\\u20ac' == s")
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
johnson-1.2.0 test/johnson/conversions/string_test.rb