wovnrb 2.2.1 → 2.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b1d7702d09e87b697371b1c5609040910fa9383d55a05ebac5d1ae668b04013c
4
- data.tar.gz: c18162741b2cbb82137687cd6b9a0176cc576cae8230c3720d4ebd19df065656
3
+ metadata.gz: 2fae998ad3e5e2d777c98b7f2f71f998767059156e3d0970ad55c93784290d64
4
+ data.tar.gz: 5b3f2401d6b2a85db7aae3c6bfe4d566db2e71598b9b66b1fd394dfde6314c15
5
5
  SHA512:
6
- metadata.gz: 3285cbeb773a4415e82fd8cc06b375d4e3e0adea37c2e026699f401cd2692a67972aef40513a209b1d39686fb52664bc3964d6d8be69088d716b960f9e8e1ef3
7
- data.tar.gz: ea6c7b83a2a2b6c16c5d7d5310ec17e021a4e1b87524cc60de3794230890aeb8742205e7197ba9bbd74d492092523f59bcd48f576440729e6a014919d11f4313
6
+ metadata.gz: 6ebf7e6b5eec39b9782be78556272d88074d2ed59d07e0340f23eb818420a20a8f2db8e652c965206ccfb3f6a5b70289b57ec94dabcb68b17a5ee68c66a88081
7
+ data.tar.gz: aa4777b08b7cc6f0b0e02cd8105a72af742b0f288e2aa3af39aecd2f2347ae43b591d6bdd061c9fdf85bbda145dfdfc2dc7cfead9cc8859ac97649ab6c39159d
@@ -69,7 +69,7 @@ module Wovnrb
69
69
  return if original_text.nil?
70
70
  return if original_text.include?(HtmlReplaceMarker::KEY_PREFIX)
71
71
 
72
- node.set_attribute('value', marker.add_comment_value(original_text))
72
+ node.set_attribute('value', marker.add_value(original_text))
73
73
  end
74
74
  end
75
75
 
@@ -15,6 +15,13 @@ module Wovnrb
15
15
  key
16
16
  end
17
17
 
18
+ def add_value(value)
19
+ key = generate_key
20
+ @mapped_values << [key, value]
21
+
22
+ key
23
+ end
24
+
18
25
  def revert(marked_html)
19
26
  i = @mapped_values.size
20
27
  while i > 0
@@ -22,7 +29,6 @@ module Wovnrb
22
29
  key, value = @mapped_values[i]
23
30
  marked_html = marked_html.sub(key, value)
24
31
  end
25
-
26
32
  marked_html
27
33
  end
28
34
 
@@ -1,3 +1,3 @@
1
1
  module Wovnrb
2
- VERSION = '2.2.1'.freeze
2
+ VERSION = '2.2.2'.freeze
3
3
  end
@@ -69,6 +69,8 @@ module Wovnrb
69
69
  html = [
70
70
  '<html><body>',
71
71
  '<input id="user-id" type="hidden" value="secret-id">',
72
+ '<input id="password" type="hidden" value="secret-password">',
73
+ '<input id="something" type="hidden" value="">',
72
74
  '<input id="name" type="text" value="wovn.io">',
73
75
  '</body></html>'
74
76
  ].join
@@ -76,7 +78,15 @@ module Wovnrb
76
78
  converter = prepare_html_converter(html, ignore_class: [])
77
79
  converted_html, = converter.build_api_compatible_html
78
80
 
79
- expected_convert_html = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"fr\" href=\"http://my-site.com/?wovn=fr\"><link rel=\"alternate\" hreflang=\"ja\" href=\"http://my-site.com/?wovn=ja\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?wovn=vi\"></head><body><input id=\"user-id\" type=\"hidden\" value=\"<!-- __wovn-backend-ignored-key-0 -->\"><input id=\"name\" type=\"text\" value=\"wovn.io\"></body></html>"
81
+ expected_convert_html = [
82
+ '<html><head>',
83
+ "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"fr\" href=\"http://my-site.com/?wovn=fr\"><link rel=\"alternate\" hreflang=\"ja\" href=\"http://my-site.com/?wovn=ja\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?wovn=vi\"></head><body>",
84
+ '<input id="user-id" type="hidden" value="__wovn-backend-ignored-key-0">',
85
+ '<input id="password" type="hidden" value="__wovn-backend-ignored-key-1">',
86
+ '<input id="something" type="hidden" value="__wovn-backend-ignored-key-2">',
87
+ '<input id="name" type="text" value="wovn.io">',
88
+ '</body></html>'
89
+ ].join
80
90
  assert_equal(expected_convert_html, converted_html)
81
91
  end
82
92
 
@@ -8,11 +8,11 @@ module Wovnrb
8
8
  end
9
9
 
10
10
  def test_add_comment_value_multiple_times
11
- maker = HtmlReplaceMarker.new
12
- assert_equal('<!-- __wovn-backend-ignored-key-0 -->', maker.add_comment_value('hello'))
13
- assert_equal('<!-- __wovn-backend-ignored-key-1 -->', maker.add_comment_value('hello'))
14
- assert_equal('<!-- __wovn-backend-ignored-key-2 -->', maker.add_comment_value('hello'))
15
- assert_equal('<!-- __wovn-backend-ignored-key-3 -->', maker.add_comment_value('hello'))
11
+ marker = HtmlReplaceMarker.new
12
+ assert_equal('<!-- __wovn-backend-ignored-key-0 -->', marker.add_comment_value('hello'))
13
+ assert_equal('<!-- __wovn-backend-ignored-key-1 -->', marker.add_comment_value('hello'))
14
+ assert_equal('<!-- __wovn-backend-ignored-key-2 -->', marker.add_comment_value('hello'))
15
+ assert_equal('<!-- __wovn-backend-ignored-key-3 -->', marker.add_comment_value('hello'))
16
16
  end
17
17
 
18
18
  def test_add_same_comment_value_multiple_times
@@ -23,6 +23,27 @@ module Wovnrb
23
23
  end
24
24
  end
25
25
 
26
+ def test_add_same_value_multiple_times
27
+ marker = HtmlReplaceMarker.new
28
+
29
+ 25.times do |i|
30
+ assert_equal("__wovn-backend-ignored-key-#{i}", marker.add_value('hello'))
31
+ end
32
+ end
33
+
34
+ def test_mixed_add_comment_value_and_add_value
35
+ marker = HtmlReplaceMarker.new
36
+
37
+ assert_equal('<!-- __wovn-backend-ignored-key-0 -->', marker.add_comment_value('hello'))
38
+ assert_equal('__wovn-backend-ignored-key-1', marker.add_value('hello'))
39
+ assert_equal('<!-- __wovn-backend-ignored-key-2 -->', marker.add_comment_value('hello'))
40
+ assert_equal('__wovn-backend-ignored-key-3', marker.add_value('hello'))
41
+ assert_equal('<!-- __wovn-backend-ignored-key-4 -->', marker.add_comment_value('hello'))
42
+ assert_equal('__wovn-backend-ignored-key-5', marker.add_value('hello'))
43
+ assert_equal('<!-- __wovn-backend-ignored-key-6 -->', marker.add_comment_value('hello'))
44
+ assert_equal('__wovn-backend-ignored-key-7', marker.add_value('hello'))
45
+ end
46
+
26
47
  def test_revert
27
48
  marker = HtmlReplaceMarker.new
28
49
  original_html = '<html><body>hello<a> replacement </a>world </body></html>'
@@ -32,6 +53,42 @@ module Wovnrb
32
53
  assert_equal(original_html, marker.revert(new_html))
33
54
  end
34
55
 
56
+ def test_revert_input_value
57
+ marker = HtmlReplaceMarker.new
58
+ original_html = '<html><body><input type="hidden" value="please-revert"></body></html>'
59
+ key = marker.add_value('please-revert')
60
+ new_html = original_html.sub('please-revert', key)
61
+ assert_equal("<html><body><input type=\"hidden\" value=\"#{key}\"></body></html>", new_html)
62
+ assert_equal(original_html, marker.revert(new_html))
63
+ end
64
+
65
+ def test_revert_input_empty_value
66
+ marker = HtmlReplaceMarker.new
67
+ original_html = '<html><body><input type="hidden" value=""></body></html>'
68
+ key = marker.add_value('')
69
+ new_html = original_html.sub('value=""', "value=\"#{key}\"")
70
+ assert_equal("<html><body><input type=\"hidden\" value=\"#{key}\"></body></html>", new_html)
71
+ assert_equal(original_html, marker.revert(new_html))
72
+ end
73
+
74
+ def test_revert_multiple_input
75
+ marker = HtmlReplaceMarker.new
76
+ original_html = [
77
+ '<html><body>',
78
+ '<input type="hidden" value="please_revert1"></body></html>',
79
+ '<input type="hidden" value="please_revert2"></body></html>',
80
+ '<input type="hidden" value=""></body></html>'
81
+ ].join
82
+ new_html = [
83
+ '<html><body>',
84
+ "<input type=\"hidden\" value=\"#{marker.add_value('please_revert1')}\"></body></html>",
85
+ "<input type=\"hidden\" value=\"#{marker.add_value('please_revert2')}\"></body></html>",
86
+ "<input type=\"hidden\" value=\"#{marker.add_value('')}\">",
87
+ '</body></html>'
88
+ ].join
89
+ assert_equal(original_html, marker.revert(new_html))
90
+ end
91
+
35
92
  def test_revert_multiple_values
36
93
  marker = HtmlReplaceMarker.new
37
94
  original_html = '<html><body>hello<a> replacement </a>world </body></html>'
@@ -71,5 +128,24 @@ module Wovnrb
71
128
  new_html = "<html><body>#{key1}<a>#{key2}</a>#{key3}</body></html>"
72
129
  assert_equal(original_html, marker.revert(new_html))
73
130
  end
131
+
132
+ def test_revert_mixed_values
133
+ marker = HtmlReplaceMarker.new
134
+ original_html = [
135
+ '<html><body>',
136
+ '<span>hello</span>',
137
+ '<input type="hidden" value="please_revert">',
138
+ '</body></html>'
139
+ ].join
140
+ key1 = marker.add_comment_value('hello')
141
+ key2 = marker.add_value('please_revert')
142
+ new_html = [
143
+ '<html><body>',
144
+ "<span>#{key1}</span>",
145
+ "<input type=\"hidden\" value=\"#{key2}\">",
146
+ '</body></html>'
147
+ ].join
148
+ assert_equal(original_html, marker.revert(new_html))
149
+ end
74
150
  end
75
151
  end
@@ -27,6 +27,34 @@ class WovnrbTest < Minitest::Test
27
27
  assert_switch_lang('en', 'ja', body, expected_body, true)
28
28
  end
29
29
 
30
+ def test_switch_lang_with_input_tags
31
+ body = [
32
+ '<html lang="ja">',
33
+ '<body>',
34
+ '<input type="hidden" value="test1">',
35
+ '<input type="hidden" value="test2">',
36
+ '<input type="hidden" value="">',
37
+ '<input value="test3">',
38
+ '</body></html>'
39
+ ].join
40
+
41
+ expected_body = [
42
+ '<html lang="ja"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">',
43
+ "<script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=&backend=true&currentLang=ja&defaultLang=en&urlPattern=path&langCodeAliases={}&version=#{Wovnrb::VERSION}\"> </script>",
44
+ '<link rel="alternate" hreflang="ja" href="http://ja.page.com/">',
45
+ '<link rel="alternate" hreflang="en" href="http://page.com/"></head>',
46
+ '<body>',
47
+ '<input type="hidden" value="test1">',
48
+ '<input type="hidden" value="test2">',
49
+ '<input type="hidden" value="">',
50
+ '<input value="test3">',
51
+ '<p><!--wovn-src:Hello-->こんにちは</p>',
52
+ '</body></html>'
53
+ ].join
54
+
55
+ assert_switch_lang('en', 'ja', body, expected_body, true)
56
+ end
57
+
30
58
  def test_switch_lang_of_html_fragment_with_japanese_translations
31
59
  bodies = ['<span>Hello</span>'].join
32
60
  expected_bodies = ['<span><!--wovn-src:Hello-->こんにちは</span>'].join
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wovnrb
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Sandford
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-10-31 00:00:00.000000000 Z
12
+ date: 2019-11-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -461,7 +461,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
461
461
  - !ruby/object:Gem::Version
462
462
  version: '0'
463
463
  requirements: []
464
- rubygems_version: 3.0.3
464
+ rubygems_version: 3.0.6
465
465
  signing_key:
466
466
  specification_version: 4
467
467
  summary: Gem for WOVN.io