rutils 1.0.3 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,396 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $KCODE = 'u'
3
- require 'test/unit'
4
- require File.dirname(__FILE__) + '/../lib/rutils'
5
-
6
-
7
- # Cюда идут наши тесты типографа. Мы содержим их отдельно поскольку набор тестов Типографицы нами не контролируется.
8
- # Когда у рутилей появятся собственные баги под каждый баг следует завести тест
9
- class GilensonOwnTest < Test::Unit::TestCase
10
-
11
- def setup
12
- @gilenson = RuTils::Gilenson::Formatter.new
13
- end
14
-
15
- def test_tag_lift
16
- assert_equal "Вот&#160;такие<tag some='foo>' /> <tagmore></tagmore> дела", "Вот такие<tag some='foo>' /> <tagmore></tagmore> дела".gilensize
17
- end
18
-
19
- def test_byte_pass
20
- assert_equal '<p>Теперь добираться до офиса Студии автортранспортом стало удобнее. ' +
21
- 'Для этого мы разместили в разделе <a href="#">«Контакт»</a> окно вебкамеры, ' +
22
- 'которая непрерывно транслирует дорожную обстановку на Садовом кольце по адресу Земляной Вал, 23. <br>' +
23
- 'Удачной дороги! </p>',
24
- '<p>Теперь добираться до офиса Студии автортранспортом стало удобнее. ' +
25
- 'Для этого мы разместили в разделе <a href="#">«Контакт»</a> окно вебкамеры, ' +
26
- 'которая непрерывно транслирует дорожную обстановку на Садовом кольце по адресу Земляной Вал, 23. <br>' +
27
- 'Удачной дороги! </p>'.gilensize
28
- end
29
-
30
- def test_phones
31
- assert_equal '<span class="nobr">3&#8211;12&#8211;30</span>', '3-12-30'.gilensize
32
- assert_equal '<span class="nobr">12&#8211;34&#8211;56</span>', '12-34-56'.gilensize
33
- assert_equal '<span class="nobr">88&#8211;25&#8211;04</span>', '88-25-04'.gilensize
34
- assert_equal '+7 <span class="nobr">(99284)&#160;65&#8211;818</span>', '+7 (99284) 65-818'.gilensize
35
- assert_equal '<span class="nobr">725&#8211;01&#8211;10</span>', '725-01-10'.gilensize
36
- end
37
-
38
- def test_acronyms_with_html_output
39
- assert_equal '<acronym title="Большая советская энциклопедия">БСЭ</acronym>', 'БСЭ(Большая советская энциклопедия)'.gilensize
40
- assert_equal '<acronym title="Advanced Micro Devices">AMD</acronym>',
41
- 'AMD(Advanced Micro Devices)'.gilensize
42
- assert_equal '<acronym title="Расширяемый язык разметки">XML</acronym>',
43
- 'XML(Расширяемый язык разметки)'.gilensize
44
- end
45
-
46
- def test_acronyms_should_escape_entities
47
- @gilenson.configure(:raw_output => false)
48
- assert_equal '<acronym title="Знак &#60;">БВГ</acronym>', 'БВГ(Знак <)'.gilensize
49
- end
50
-
51
- def test_acronyms_with_text_output
52
- @gilenson.configure(:raw_output => true)
53
- thin_space = [8201].pack("U")
54
- assert_equal_cp "так утверждает БСЭ#{thin_space}(Большая советская энциклопедия)",
55
- @gilenson.process('так утверждает БСЭ(Большая советская энциклопедия)')
56
- end
57
-
58
- def test_address
59
- assert_equal 'табл.&#160;2, рис.&#160;2.10', 'табл. 2, рис. 2.10'.gilensize
60
- assert_equal 'офис&#160;415, оф.340, д.5, ул.&#160;Народной Воли, пл. Малышева', 'офис 415, оф.340, д.5, ул. Народной Воли, пл. Малышева'.gilensize
61
- end
62
-
63
- def test_html_entities_replace
64
- assert_equal '&#34; &#38; &#39; &#62; &#60; &#160; &#167; &#169; &#171; &#174; &#176; &#177; &#183; &#187; &#8211; &#8212; &#8216; &#8217; &#8220; &#8221; &#8222; &#8226; &#8230; &#8482; &#8722;', '&quot; &amp; &apos; &gt; &lt; &nbsp; &sect; &copy; &laquo; &reg; &deg; &plusmn; &middot; &raquo; &ndash; &mdash; &lsquo; &rsquo; &ldquo; &rdquo; &bdquo; &bull; &hellip; &trade; &minus;'.gilensize
65
- end
66
-
67
- def test_non_displayable_entities_replace1 # not_correct_number
68
- assert_equal '&#8222; &#8230; &#39; &#8220; &#8221; &#8226; &#8211; &#8212; &#8482;', '&#132; &#133; &#146; &#147; &#148; &#149; &#150; &#151; &#153;'.gilensize
69
- end
70
-
71
- def test_non_displayable_entities_replace2 # copy&paste
72
- @gilenson.configure!(:copypaste => true)
73
- assert_equal '&#171; &#160; &#187; &#167; &#169; &#174; &#176; &#177; &#182; &#183; &#8211; &#8212; &#8216; &#8217; &#8220; &#8221; &#8222; &#8226; &#8230; &#8470; &#8482; &#8722; &#8201; &#8243;', @gilenson.process('«   » § © ® ° ± ¶ · – — ‘ ’ “ ” „ • … № ™ −   ″')
74
- end
75
-
76
- def test_nbsp_removed_on_anchor_start
77
- assert_equal 'abcd', @gilenson.process(' abcd')
78
- end
79
-
80
- def test_nbsp_removed_on_anchor_end
81
- assert_equal 'abcd', @gilenson.process('abcd ')
82
- end
83
-
84
- def test_specials
85
- assert_equal '&#169; 2002, &#169; 2003, &#169; 2004, &#169; 2005 &#8212; тоже без&#160;пробелов: &#169;2002, &#169;Кукуц. однако: варианты (а) и&#160;(с)', '(с) 2002, (С) 2003, (c) 2004, (C) 2005 -- тоже без пробелов: (с)2002, (c)Кукуц. однако: варианты (а) и (с)'.gilensize
86
- assert_equal '+5&#176;С, +7&#176;C, &#8211;5&#176;F', '+5^С, +17^C, -275^F'.gilensize
87
- assert_equal 'об&#160;этом подробнее &#8212; читай &#167;25', 'об этом подробнее -- читай (p)25'.gilensize
88
- assert_equal 'один же&#160;минус &#8211; краткое тире', 'один же минус - краткое тире'.gilensize
89
- assert_equal 'Sharpdesign&#8482;, Microsoft<sup>&#174;</sup>', 'Sharpdesign(tm), Microsoft(r)'.gilensize
90
- end
91
-
92
- def test_breaking
93
- assert_equal 'скажи, мне, ведь не&#160;даром! Москва, клеймённая пожаром. Французу отдана', 'скажи ,мне, ведь не даром !Москва, клеймённая пожаром .Французу отдана'.gilensize
94
- assert_equal 'so&#160;be it, my&#160;liege. Tiny dwellers roam thru midnight! Hell raised, the&#160;Balrog is&#160;hiding in&#160;your backyard!', 'so be it ,my liege .Tiny dwellers roam thru midnight !Hell raised, the Balrog is hiding in your backyard!'.gilensize
95
- assert_equal 'при&#160;установке командой строки в&#160;?page=help <span class="nobr">бла-бла-бла-бла</span>', 'при установке командой строки в ?page=help бла-бла-бла-бла'.gilensize
96
- assert_equal 'как&#160;интересно будет переноситься со&#160;строки на&#160;строку <span class="nobr">что-то</span> разделённое дефисом, ведь дефис тот&#160;тоже ведь из&#160;наших. <span class="nobr">Какие-то</span> браузеры думают, что&#160;следует переносить и&#160;его&#8230;', 'как интересно будет переноситься со строки на строку что-то разделённое дефисом, ведь дефис тот тоже ведь из наших. Какие-то браузеры думают, что следует переносить и его...'.gilensize
97
- end
98
-
99
- def test_forced_quotes
100
- assert_equal 'кавычки &#171;расставлены&#187; &#8220;in a&#160;chaotic order&#8221;',
101
- 'кавычки "расставлены" "in a chaotic order"'.gilensize
102
- assert_equal 'кавычки &#8220;расставлены&#8221; &#8220;in a&#160;chaotic order&#8221;',
103
- 'кавычки "расставлены" "in a chaotic order"'.gilensize(:enforce_en_quotes => true)
104
- assert_equal 'кавычки &#171;расставлены&#187; &#171;in a&#160;chaotic order&#187;',
105
- 'кавычки "расставлены" "in a chaotic order"'.gilensize(:enforce_ru_quotes => true)
106
- end
107
-
108
- #def test_quotes_and_inch
109
- # assert_equal "&#171;This one&#160;is&#160;12&#8342;&#187;", '"This one is 12""'.gilensize
110
- #end
111
-
112
- def test_quotes
113
- assert_equal 'english &#8220;quotes&#8221; should be&#160;quite like this', 'english "quotes" should be quite like this'.gilensize
114
- assert_equal 'русские же&#160;&#171;оформляются&#187; подобным образом', 'русские же "оформляются" подобным образом'.gilensize
115
- assert_equal 'кавычки &#171;расставлены&#187; &#8220;in a&#160;chaotic order&#8221;', 'кавычки "расставлены" "in a chaotic order"'.gilensize
116
- assert_equal 'диагональ моего монитора &#8212; 17&#8243;, а&#160;размер пениса &#8212; 1,5&#8243;', 'диагональ моего монитора -- 17", а размер пениса -- 1,5"'.gilensize
117
- assert_equal 'в&#160;толщину, &#171;вложенные &#8220;quotes&#8221; вот&#160;так&#187;, &#8220;or it&#160;&#171;будет вложено&#187; elsewhere&#8221;', 'в толщину, "вложенные "quotes" вот так", "or it "будет вложено" elsewhere"'.gilensize
118
- assert_equal '&#8220;complicated &#171;кавычки&#187;, &#171;странные &#8220;includements&#8221; кавычек&#187;', '"complicated "кавычки", "странные "includements" кавычек"'.gilensize
119
- assert_equal '&#8220;double &#8220;quotes&#8221;', '"double "quotes"'.gilensize
120
- assert_equal '&#171;дважды вложенные &#171;кавычки&#187;', '"дважды вложенные "кавычки"'.gilensize
121
- assert_equal '&#171;01/02/03&#187;, дискеты в&#160;5.25&#8243;', '"01/02/03", дискеты в 5.25"'.gilensize
122
- assert_equal 'после троеточия правая кавычка &#8212; &#171;Вот&#8230;&#187;', 'после троеточия правая кавычка -- "Вот..."'.gilensize
123
- assert_equal 'setlocale(LC_ALL, &#8220;ru_RU.UTF8&#8221;);', 'setlocale(LC_ALL, "ru_RU.UTF8");'.gilensize
124
- assert_equal '&#8220;read, write, delete&#8221; с&#160;флагом &#8220;only_mine&#8221;', '"read, write, delete" с флагом "only_mine"'.gilensize
125
- assert_equal '&#171;Двоеточие:&#187;, &#171;такую умную тему должен писать чувак умеющий скрипты скриптить.&#187;', '"Двоеточие:", "такую умную тему должен писать чувак умеющий скрипты скриптить."'.gilensize
126
- assert_equal '(&#171;Вики != HTML&#187; &#8212; &#171;Вики != HTML&#187; &#8212; (&#171;всякая чушь&#187;))', '("Вики != HTML" -- "Вики != HTML" -- ("всякая чушь"))'.gilensize
127
- assert_equal '&#171;фигня123&#187;, &#8220;fignya123&#8221;', '"фигня123", "fignya123"'.gilensize
128
- # assert_equal '&#171;сбалансированные &#171;кавычки<!--notypo--><!--/notypo--> (четыре в&#160;конце) &#8212; связано с&#160;синтаксисом ваки', '"сбалансированные "кавычки"""" (четыре в конце) -- связано с синтаксисом ваки'.gilensize
129
- assert_equal '&#171;несбалансированные &#171;кавычки&#34;&#34;" (три в&#160;конце) &#8212; связано с&#160;синтаксисом ваки', '"несбалансированные "кавычки""" (три в конце) -- связано с синтаксисом ваки'.gilensize
130
- assert_equal '&#171;разноязыкие quotes&#187;', '"разноязыкие quotes"'.gilensize
131
- assert_equal '&#171;multilanguage кавычки&#187;', '"multilanguage кавычки"'.gilensize
132
- end
133
-
134
- def test_additional_quote_cases
135
- assert_equal "&#171;И это&#160;называется языком?&#187;, &#8212; таков был&#160;его вопрос",
136
- %q{ "И это называется языком?", -- таков был его вопрос }.gilensize
137
-
138
- assert_equal "&#171;Он &#8212; сволочь!&#187;, сказал&#160;я",
139
- %q{ "Он -- сволочь!", сказал я }.gilensize
140
- end
141
-
142
- def test_initials
143
- assert_equal 'Это&#160;нам сказал П.И.&#8201;Петров', 'Это нам сказал П. И. Петров'.gilensize
144
-
145
- assert_equal "А&#160;Ефимов&#8230;",
146
- @gilenson.process("А Ефимов...")
147
-
148
- assert_equal "Обратился за&#160;ПО. К&#160;негодяям.",
149
- @gilenson.process("Обратился за ПО. К негодяям.")
150
-
151
- assert_equal "ГО&#160;Самарской обл.",
152
- @gilenson.process("ГО Самарской обл.")
153
-
154
- assert_equal "ГОР&#160;Самарской обл.",
155
- @gilenson.process("ГОР Самарской обл.")
156
-
157
- assert_equal "КОШМАР Самарской обл.",
158
- @gilenson.process("КОШМАР Самарской обл.")
159
-
160
- assert_equal "УФПС Самарской обл.",
161
- @gilenson.process("УФПС Самарской обл.")
162
-
163
- end
164
-
165
- def test_nbsp_last_letters
166
- assert_equal "сказал&#160;я", "сказал я".gilensize
167
- assert_equal "сказал&#160;я!", "сказал я!".gilensize
168
- assert_equal "сказал&#160;я?", "сказал я?".gilensize
169
- assert_equal "сказал&#160;я&#8230;", "сказал я...".gilensize
170
- assert_equal "сказал&#160;он&#8230;", "сказал он...".gilensize
171
- assert_equal "сказали&#160;мы?..", "сказали мы?..".gilensize
172
- assert_equal "сказали&#160;мы?!", "сказали мы?!".gilensize
173
- assert_equal "сказали мы?!!!", "сказали мы?!!!".gilensize
174
- assert_equal "сказали нам", "сказали нам".gilensize
175
- assert_equal "(сказали&#160;им)", "(сказали им)".gilensize
176
- assert_equal "Справка&#160;09", 'Справка 09'.gilensize
177
- end
178
-
179
- def test_wordglue_combined_with_glyphs # http://pixel-apes.com/typografica/trako/12
180
- assert_equal "&#171;Справка&#160;09&#187;", '"Справка 09"'.gilensize(:wordglue => true)
181
- end
182
-
183
- def test_marker_bypass
184
- assert_equal "<p><span class=\"nobr\">МИЭЛЬ-Недвижимость</span></p>", "<p>МИЭЛЬ-Недвижимость</p>".gilensize
185
- end
186
-
187
- def test_skip_code
188
- @gilenson.configure!(:all => true, :skip_code => true)
189
-
190
- assert_equal "<code>Скип -- скип!</code>",
191
- @gilenson.process("<code>Скип -- скип!</code>")
192
-
193
- assert_equal '<code attr="test -- attr">Скип -- скип!</code>',
194
- @gilenson.process('<code attr="test -- attr">Скип -- скип!</code>')
195
-
196
- assert_equal "<tt>Скип -- скип!</tt> test &#8212; test <tt attr='test -- attr'>Скип -- скип!</tt>",
197
- @gilenson.process("<tt>Скип -- скип!</tt> test -- test <tt attr='test -- attr'>Скип -- скип!</tt>")
198
-
199
- assert_equal "<tt>Скип -- скип!</tt><tt>Скип -- скип!</tt> &#8212; <code attr='test -- attr'>Скип -- скип!</code>",
200
- @gilenson.process("<tt>Скип -- скип!</tt><tt>Скип -- скип!</tt> -- <code attr='test -- attr'>Скип -- скип!</code>")
201
-
202
- assert_equal "<ttt>Скип &#8212; скип!</tt>",
203
- @gilenson.process("<ttt>Скип -- скип!</tt>")
204
-
205
- assert_equal "<tt>Скип &#8212; скип!</ttt>",
206
- @gilenson.process("<tt>Скип -- скип!</ttt>")
207
-
208
- assert_equal "Ах, &#8212; <code>var x = j // -- тест</code>",
209
- @gilenson.process("Ах, -- <code>var x = j // -- тест</code>")
210
-
211
- assert_equal "<![CDATA[ CDATA -- ]]> &#8212; CDATA",
212
- @gilenson.process("<![CDATA[ CDATA -- ]]> -- CDATA")
213
-
214
- assert_equal "<![CDATA[ CDATA -- >] -- CDATA ]]> &#8212; <![CDATA[ CDATA ]> -- CDATA ]]>",
215
- @gilenson.process("<![CDATA[ CDATA -- >] -- CDATA ]]> -- <![CDATA[ CDATA ]> -- CDATA ]]>")
216
-
217
- assert_equal "<![CDATA[ CDATA -- >] -- CDATA ]]> &#8212; <![CDATA[ CDATA ]> -- CDATA ]]> &#8212; CDATA ]]>",
218
- @gilenson.process("<![CDATA[ CDATA -- >] -- CDATA ]]> -- <![CDATA[ CDATA ]> -- CDATA ]]> -- CDATA ]]>")
219
-
220
- @gilenson.configure!(:skip_code => false)
221
-
222
- assert_equal "Ах, &#8212; <code>var x&#160;= j&#160;// &#8212; тест</code>",
223
- @gilenson.process("Ах, -- <code>var x = j // -- тест</code>")
224
- end
225
-
226
- def test_skip_attr
227
- @gilenson.configure!(:skip_attr => true)
228
-
229
- assert_equal "<a href='#' attr='смотри -- смотри' title='test -- me' alt=\"смотри -- смотри\">just &#8212; test</a>",
230
- @gilenson.process("<a href='#' attr='смотри -- смотри' title='test -- me' alt=\"смотри -- смотри\">just -- test</a>")
231
-
232
- assert_equal 'мы&#160;напишем title="test &#8212; me" и&#160;alt=\'test &#8212; me\', вот',
233
- @gilenson.process('мы напишем title="test -- me" и alt=\'test -- me\', вот')
234
-
235
- @gilenson.configure!(:skip_attr => false)
236
-
237
- assert_equal "<a href='#' attr='смотри -- смотри' title='test &#8212;&#160;me' alt=\"смотри &#8212; смотри\">just &#8212; test</a>",
238
- @gilenson.process("<a href='#' attr='смотри -- смотри' title='test -- me' alt=\"смотри -- смотри\">just -- test</a>")
239
-
240
- assert_equal 'мы&#160;напишем title="test &#8212; me" и&#160;alt=\'test &#8212; me\', вот',
241
- @gilenson.process('мы напишем title="test -- me" и alt=\'test -- me\', вот')
242
- end
243
-
244
- def test_escape_html
245
- assert_equal "Используйте &#38; вместо &#38;amp;",
246
- @gilenson.process("Используйте &#38; вместо &#38;amp;")
247
-
248
- @gilenson.configure!(:html => false)
249
-
250
- assert_equal "&#38;#38; &#8212; &#38;amp; &#60;code/&#62; &#60;some_tag&#62;таги не&#160;пройдут!&#60;/some_tag&#62;. Ну&#160;и?..",
251
- @gilenson.process("&#38; -- &amp; <code/> <some_tag>таги не пройдут!</some_tag>. Ну и?..")
252
-
253
- assert_equal "Используйте &#38;#38; вместо &#38;amp;",
254
- @gilenson.process("Используйте &#38; вместо &amp;")
255
-
256
- end
257
-
258
- def test_ampersand_in_urls
259
-
260
- @gilenson.configure!(:html=>false)
261
-
262
- assert_equal "&#60;a href='test?test5=5&#38;#38;test6=6'&#62;test&#38;#38;&#60;/a&#62;",
263
- @gilenson.process("<a href='test?test5=5&#38;test6=6'>test&#38;</a>")
264
-
265
- @gilenson.configure!(:html=>true)
266
-
267
- assert_equal "<a href='test?test7=7&#38;test8=8'>test&#38;</a>",
268
- @gilenson.process("<a href='test?test7=7&#38;test8=8'>test&#38;</a>")
269
-
270
- assert_equal "<a href='test?test9=9&#038;test10=10'>test&#038;</a>",
271
- @gilenson.process("<a href='test?test9=9&#038;test10=10'>test&#038;</a>")
272
-
273
- assert_equal "<a href='test?test11=11&#38;test12=12'>test&</a>",
274
- @gilenson.process("<a href='test?test11=11&test12=12'>test&</a>")
275
-
276
- assert_equal "<a href='test?test12=12&#38;'>test</a>",
277
- @gilenson.process("<a href='test?test12=12&amp;'>test</a>")
278
-
279
- assert_equal "<a href='test?x=1&#38;y=2' title='&#38;-amp, &#8230;-hellip'>test</a>",
280
- @gilenson.process("<a href='test?x=1&y=2' title='&#38;-amp, &#8230;-hellip'>test</a>")
281
-
282
- assert_equal "<a href='test?x=3&#38;#039;y=4'>test</a>",
283
- @gilenson.process("<a href='test?x=3&#039;y=4'>test</a>")
284
-
285
-
286
- @gilenson.glyph[:amp] = '&amp;'
287
-
288
- assert_equal "<a href='test?test11=11&amp;test12=12'>test&</a>",
289
- @gilenson.process("<a href='test?test11=11&test12=12'>test&</a>")
290
-
291
- assert_equal "<a href='test?test13=13&amp;test14=14'>test&</a>",
292
- @gilenson.process("<a href='test?test13=13&amp;test14=14'>test&</a>")
293
-
294
- assert_equal "<a href='test?test15=15&amp;amppp;test16=16'>test&</a>",
295
- @gilenson.process("<a href='test?test15=15&amppp;test16=16'>test&</a>")
296
-
297
- end
298
-
299
- private
300
- # Проверить равны ли строки, и если нет то обьяснить какой кодпойнт отличается.
301
- # Совершенно необходимо для работы с различными пробелами.
302
- def assert_equal_cp(reference, actual, msg = nil)
303
- (assert(true, msg); return) if (reference == actual)
304
-
305
- reference_cp, actual_cp = [reference, actual].map{|t| t.unpack("U*") }
306
- reference_cp.each_with_index do | ref_codepoint, idx |
307
- next unless actual_cp[idx] != ref_codepoint
308
- beg, fin = idx - 2, idx + 2
309
- beg = 0 if (beg < 0)
310
- conflicting_piece = actual_cp[beg..fin].pack("U*")
311
- msg = []
312
- msg << "Expected #{actual.inspect} to be equal to #{reference.inspect}, but they were not, " +
313
- "in fragment '#{beg > 0 ? '...' : ''}#{conflicting_piece}...'"
314
- msg << "Non-matching codepoint #{actual[idx]} at offset #{idx}, " +
315
- "expected codepoint #{ref_codepoint} instead"
316
- flunk msg.join("\n"); return
317
- end
318
- raise "We should never get here"
319
- end
320
- end
321
-
322
-
323
- class GilensonConfigurationTest < Test::Unit::TestCase
324
- def setup
325
- @gilenson = RuTils::Gilenson::Formatter.new
326
- end
327
-
328
- def test_settings_as_tail_arguments
329
-
330
- assert_equal "Ну&#160;и куда вот&#160;&#8212; да&#160;туда!",
331
- @gilenson.process("Ну и куда вот -- да туда!")
332
-
333
- assert_equal "Ну и куда вот &#8212; да туда!",
334
- @gilenson.process("Ну и куда вот -- да туда!", :dash => false, :dashglue => false, :wordglue => false)
335
-
336
- assert_equal "Ну&#160;и куда вот&#160;&#8212; да&#160;туда!",
337
- @gilenson.process("Ну и куда вот -- да туда!")
338
-
339
- @gilenson.configure!(:dash => false, :dashglue => false, :wordglue => false)
340
-
341
- assert_equal "Ну и куда вот &#8212; да туда!",
342
- @gilenson.process("Ну и куда вот -- да туда!")
343
-
344
- @gilenson.configure!(:all => true)
345
-
346
- assert_equal "Ну&#160;и куда вот&#160;&#8212; да&#160;туда!",
347
- @gilenson.process("Ну и куда вот -- да туда!")
348
-
349
- @gilenson.configure!(:all => false)
350
-
351
- assert_equal "Ну и куда вот -- да туда!",
352
- @gilenson.process("Ну и куда вот -- да туда!")
353
- end
354
-
355
- def test_glyph_override
356
- assert_equal 'скажи, мне, ведь не&#160;даром! Москва, клеймённая пожаром. Французу отдана',
357
- @gilenson.process('скажи ,мне, ведь не даром !Москва, клеймённая пожаром .Французу отдана')
358
-
359
- @gilenson.glyph[:nbsp] = '&nbsp;'
360
- assert_equal 'скажи, мне, ведь не&nbsp;даром! Москва, клеймённая пожаром. Французу отдана',
361
- @gilenson.process('скажи ,мне, ведь не даром !Москва, клеймённая пожаром .Французу отдана')
362
- end
363
-
364
- def test_raise_on_unknown_setting
365
- assert_raise(RuTils::Gilenson::UnknownSetting) { @gilenson.configure!(:bararara => true) }
366
- end
367
-
368
- def test_raise_on_unknown_setting_via_gilensize
369
- assert_raise(RuTils::Gilenson::UnknownSetting) { "s".gilensize(:bararara => true) }
370
- end
371
-
372
- def test_backslash_does_not_suppress_quote # http://pixel-apes.com/typografica/trako/13, но с латинскими кавычками
373
- assert_equal "&#8220;c:\\www\\sites\\&#8221;", '"c:\www\sites\"'.gilensize
374
- end
375
-
376
- def test_cpp
377
- assert_equal "C++-API", "C++-API".gilensize
378
- end
379
-
380
- def test_raw_utf8_output
381
- @gilenson.configure!(:raw_output=>true)
382
- assert_equal '&#38442; Это просто «кавычки»',
383
- @gilenson.process('&#38442; Это просто "кавычки"')
384
- end
385
-
386
- def test_configure_alternate_names
387
- assert @gilenson.configure(:raw_output=>true)
388
- assert @gilenson.configure!(:raw_output=>true)
389
- end
390
-
391
- def test_explicit_nobr
392
- @gilenson.glyph[:nob_open] = '[NOB]'
393
- @gilenson.glyph[:nob_close] = '[NOBC]'
394
- assert_equal '[NOB]3&#8211;12&#8211;30[NOBC]', @gilenson.process('3-12-30')
395
- end
396
- end