| OLD | NEW |
| (Empty) | |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. |
| 4 |
| 5 |
| 6 #library('bidi_utils_test'); |
| 7 |
| 8 #import('../../../lib/i18n/bidi_utils.dart'); |
| 9 #import('../../../lib/unittest/unittest.dart'); |
| 10 |
| 11 /** |
| 12 * Tests the bidi utilities library. |
| 13 */ |
| 14 main() { |
| 15 var LRE = '\u202A'; |
| 16 var RLE = '\u202B'; |
| 17 var PDF = '\u202C'; |
| 18 var LRM = '\u200E'; |
| 19 var RLM = '\u200F'; |
| 20 |
| 21 test('isRtlLang', () { |
| 22 expect(BidiUtils.isRtlLanguage('en'), isFalse); |
| 23 expect(BidiUtils.isRtlLanguage('fr'), isFalse); |
| 24 expect(BidiUtils.isRtlLanguage('zh-CN'), isFalse); |
| 25 expect(BidiUtils.isRtlLanguage('fil'), isFalse); |
| 26 expect(BidiUtils.isRtlLanguage('az'), isFalse); |
| 27 expect(BidiUtils.isRtlLanguage('iw-Latn'), isFalse); |
| 28 expect(BidiUtils.isRtlLanguage('iw-LATN'), isFalse); |
| 29 expect(BidiUtils.isRtlLanguage('iw_latn'), isFalse); |
| 30 expect(BidiUtils.isRtlLanguage('ar'), isTrue); |
| 31 expect(BidiUtils.isRtlLanguage('AR'), isTrue); |
| 32 expect(BidiUtils.isRtlLanguage('iw'), isTrue); |
| 33 expect(BidiUtils.isRtlLanguage('he'), isTrue); |
| 34 expect(BidiUtils.isRtlLanguage('fa'), isTrue); |
| 35 expect(BidiUtils.isRtlLanguage('ar-EG'), isTrue); |
| 36 expect(BidiUtils.isRtlLanguage('az-Arab'), isTrue); |
| 37 expect(BidiUtils.isRtlLanguage('az-ARAB-IR'), isTrue); |
| 38 expect(BidiUtils.isRtlLanguage('az_arab_IR'), isTrue); |
| 39 }); |
| 40 |
| 41 test('hasAnyLtr', () { |
| 42 expect(BidiUtils.hasAnyLtr(''), isFalse); |
| 43 expect(BidiUtils.hasAnyLtr('\u05e0\u05e1\u05e2'), isFalse); |
| 44 expect(BidiUtils.hasAnyLtr('\u05e0\u05e1z\u05e2'), isTrue); |
| 45 expect(BidiUtils.hasAnyLtr('123\t... \n'), isFalse); |
| 46 expect(BidiUtils.hasAnyLtr('<br>123<', false), isTrue); |
| 47 expect(BidiUtils.hasAnyLtr('<br>123<', true), isFalse); |
| 48 }); |
| 49 |
| 50 test('hasAnyRtl', () { |
| 51 expect(BidiUtils.hasAnyRtl(''), isFalse); |
| 52 expect(BidiUtils.hasAnyRtl('abc'), isFalse); |
| 53 expect(BidiUtils.hasAnyRtl('ab\u05e0c'), isTrue); |
| 54 expect(BidiUtils.hasAnyRtl('123\t... \n'), isFalse); |
| 55 expect(BidiUtils.hasAnyRtl('<input value=\u05e0>123', false), isTrue); |
| 56 expect(BidiUtils.hasAnyRtl('<input value=\u05e0>123', true), isFalse); |
| 57 }); |
| 58 |
| 59 |
| 60 test('endsWithLtr', () { |
| 61 expect(BidiUtils.endsWithLtr('a'), isTrue); |
| 62 expect(BidiUtils.endsWithLtr('abc'), isTrue); |
| 63 expect(BidiUtils.endsWithLtr('a (!)'), isTrue); |
| 64 expect(BidiUtils.endsWithLtr('a.1'), isTrue); |
| 65 expect(BidiUtils.endsWithLtr('http://www.google.com '), isTrue); |
| 66 expect(BidiUtils.endsWithLtr('\u05e0a'), isTrue); |
| 67 expect(BidiUtils.endsWithLtr(' \u05e0\u05e1a\u05e2\u05e3 a (!)'), isTrue); |
| 68 expect(BidiUtils.endsWithLtr(''), isFalse); |
| 69 expect(BidiUtils.endsWithLtr(' '), isFalse); |
| 70 expect(BidiUtils.endsWithLtr('1'), isFalse); |
| 71 expect(BidiUtils.endsWithLtr('\u05e0'), isFalse); |
| 72 expect(BidiUtils.endsWithLtr('\u05e0 1(!)'), isFalse); |
| 73 expect(BidiUtils.endsWithLtr('a\u05e0'), isFalse); |
| 74 expect(BidiUtils.endsWithLtr('a abc\u05e0\u05e1def\u05e2. 1'), isFalse); |
| 75 expect(BidiUtils.endsWithLtr(' \u05e0\u05e1a\u05e2 <', true), isFalse); |
| 76 expect(BidiUtils.endsWithLtr(' \u05e0\u05e1a\u05e2 <', false), isTrue); |
| 77 }); |
| 78 |
| 79 test('endsWithRtl', () { |
| 80 expect(BidiUtils.endsWithRtl('\u05e0'), isTrue); |
| 81 expect(BidiUtils.endsWithRtl('\u05e0\u05e1\u05e2'), isTrue); |
| 82 expect(BidiUtils.endsWithRtl('\u05e0 (!)'), isTrue); |
| 83 expect(BidiUtils.endsWithRtl('\u05e0.1'), isTrue); |
| 84 expect(BidiUtils.endsWithRtl('http://www.google.com/\u05e0 '), isTrue); |
| 85 expect(BidiUtils.endsWithRtl('a\u05e0'), isTrue); |
| 86 expect(BidiUtils.endsWithRtl(' a abc\u05e0def\u05e3. 1'), isTrue); |
| 87 expect(BidiUtils.endsWithRtl(''), isFalse); |
| 88 expect(BidiUtils.endsWithRtl(' '), isFalse); |
| 89 expect(BidiUtils.endsWithRtl('1'), isFalse); |
| 90 expect(BidiUtils.endsWithRtl('a'), isFalse); |
| 91 expect(BidiUtils.endsWithRtl('a 1(!)'), isFalse); |
| 92 expect(BidiUtils.endsWithRtl('\u05e0a'), isFalse); |
| 93 expect(BidiUtils.endsWithRtl('\u05e0 \u05e0\u05e1ab\u05e2 a (!)'), isFalse); |
| 94 expect(BidiUtils.endsWithRtl(' \u05e0\u05e1a\u05e2 <', true), isTrue); |
| 95 expect(BidiUtils.endsWithRtl(' \u05e0\u05e1a\u05e2 <', false), isFalse); |
| 96 }); |
| 97 |
| 98 test('guardBracketInHtml', () { |
| 99 var strWithRtl = "asc \u05d0 (\u05d0\u05d0\u05d0)"; |
| 100 expect(BidiUtils.guardBracketInHtml(strWithRtl), |
| 101 equals("asc \u05d0 <span dir=rtl>(\u05d0\u05d0\u05d0)</span>")); |
| 102 expect(BidiUtils.guardBracketInHtml(strWithRtl, true), |
| 103 equals("asc \u05d0 <span dir=rtl>(\u05d0\u05d0\u05d0)</span>")); |
| 104 expect(BidiUtils.guardBracketInHtml(strWithRtl, false), |
| 105 equals("asc \u05d0 <span dir=ltr>(\u05d0\u05d0\u05d0)</span>")); |
| 106 |
| 107 var strWithRtl2 = "\u05d0 a (asc:))"; |
| 108 expect(BidiUtils.guardBracketInHtml(strWithRtl2), |
| 109 equals("\u05d0 a <span dir=rtl>(asc:))</span>")); |
| 110 expect(BidiUtils.guardBracketInHtml(strWithRtl2, true), |
| 111 equals("\u05d0 a <span dir=rtl>(asc:))</span>")); |
| 112 expect(BidiUtils.guardBracketInHtml(strWithRtl2, false), |
| 113 equals("\u05d0 a <span dir=ltr>(asc:))</span>")); |
| 114 |
| 115 var strWithoutRtl = "a (asc) {{123}}"; |
| 116 expect(BidiUtils.guardBracketInHtml(strWithoutRtl), |
| 117 equals("a <span dir=ltr>(asc)</span> <span dir=ltr>{{123}}</span>")); |
| 118 expect(BidiUtils.guardBracketInHtml(strWithoutRtl, true), |
| 119 equals("a <span dir=rtl>(asc)</span> <span dir=rtl>{{123}}</span>")); |
| 120 expect(BidiUtils.guardBracketInHtml(strWithoutRtl, false), |
| 121 equals("a <span dir=ltr>(asc)</span> <span dir=ltr>{{123}}</span>")); |
| 122 |
| 123 }); |
| 124 |
| 125 test('guardBracketInText', () { |
| 126 var strWithRtl = "asc \u05d0 (\u05d0\u05d0\u05d0)"; |
| 127 expect(BidiUtils.guardBracketInText(strWithRtl), |
| 128 equals("asc \u05d0 \u200f(\u05d0\u05d0\u05d0)\u200f")); |
| 129 expect(BidiUtils.guardBracketInText(strWithRtl, true), |
| 130 equals("asc \u05d0 \u200f(\u05d0\u05d0\u05d0)\u200f")); |
| 131 expect(BidiUtils.guardBracketInText(strWithRtl, false), |
| 132 equals("asc \u05d0 \u200e(\u05d0\u05d0\u05d0)\u200e")); |
| 133 |
| 134 var strWithRtl2 = "\u05d0 a (asc:))"; |
| 135 expect(BidiUtils.guardBracketInText(strWithRtl2), |
| 136 equals("\u05d0 a \u200f(asc:))\u200f")); |
| 137 expect(BidiUtils.guardBracketInText(strWithRtl2, true), |
| 138 equals("\u05d0 a \u200f(asc:))\u200f")); |
| 139 expect(BidiUtils.guardBracketInText(strWithRtl2, false), |
| 140 equals("\u05d0 a \u200e(asc:))\u200e")); |
| 141 |
| 142 var strWithoutRtl = "a (asc) {{123}}"; |
| 143 expect(BidiUtils.guardBracketInText(strWithoutRtl), |
| 144 equals("a \u200e(asc)\u200e \u200e{{123}}\u200e")); |
| 145 expect(BidiUtils.guardBracketInText(strWithoutRtl, true), |
| 146 equals("a \u200f(asc)\u200f \u200f{{123}}\u200f")); |
| 147 expect(BidiUtils.guardBracketInText(strWithoutRtl, false), |
| 148 equals("a \u200e(asc)\u200e \u200e{{123}}\u200e")); |
| 149 |
| 150 }); |
| 151 |
| 152 test('enforceRtlInHtml', () { |
| 153 var str = '<div> first <br> second </div>'; |
| 154 expect(BidiUtils.enforceRtlInHtml(str), |
| 155 equals('<div dir=rtl> first <br> second </div>')); |
| 156 str = 'first second'; |
| 157 expect(BidiUtils.enforceRtlInHtml(str), |
| 158 equals('\n<span dir=rtl>first second</span>')); |
| 159 }); |
| 160 |
| 161 test('enforceRtlInText', () { |
| 162 var str = 'first second'; |
| 163 expect(BidiUtils.enforceRtlInText(str), equals('${RLE}first second$PDF')); |
| 164 }); |
| 165 |
| 166 test('enforceLtrInHtml', () { |
| 167 var str = '<div> first <br> second </div>'; |
| 168 expect(BidiUtils.enforceLtrInHtml(str), |
| 169 equals('<div dir=ltr> first <br> second </div>')); |
| 170 str = 'first second'; |
| 171 expect(BidiUtils.enforceLtrInHtml(str), |
| 172 equals('\n<span dir=ltr>first second</span>')); |
| 173 }); |
| 174 |
| 175 test('enforceLtrInText', () { |
| 176 var str = 'first second'; |
| 177 expect(BidiUtils.enforceLtrInText(str), equals('${LRE}first second$PDF')); |
| 178 }); |
| 179 |
| 180 test('normalizeHebrewQuote', () { |
| 181 expect(BidiUtils.normalizeHebrewQuote('\u05d0"'), equals('\u05d0\u05f4')); |
| 182 expect(BidiUtils.normalizeHebrewQuote('\u05d0\''), equals('\u05d0\u05f3')); |
| 183 expect(BidiUtils.normalizeHebrewQuote('\u05d0"\u05d0\''), |
| 184 equals('\u05d0\u05f4\u05d0\u05f3')); |
| 185 }); |
| 186 |
| 187 test('mirrorCSS', () { |
| 188 var str = 'left:10px;right:20px'; |
| 189 expect(BidiUtils.mirrorCSS(str), equals('right:10px;left:20px')); |
| 190 str = 'border:10px 20px 30px 40px'; |
| 191 expect(BidiUtils.mirrorCSS(str), equals('border:10px 40px 30px 20px')); |
| 192 }); |
| 193 |
| 194 test('estimateDirection', () { |
| 195 expect(BidiUtils.estimateDirection('', false).value, |
| 196 equals(TextDirection.UNKNOWN.value)); |
| 197 expect(BidiUtils.estimateDirection(' ', false).value, |
| 198 equals(TextDirection.UNKNOWN.value)); |
| 199 expect(BidiUtils.estimateDirection('! (...)', false).value, |
| 200 equals(TextDirection.UNKNOWN.value)); |
| 201 expect(BidiUtils.estimateDirection('All-Ascii content', false).value, |
| 202 equals(TextDirection.LTR.value)); |
| 203 expect(BidiUtils.estimateDirection('-17.0%', false).value, |
| 204 equals(TextDirection.LTR.value)); |
| 205 expect(BidiUtils.estimateDirection('http://foo/bar/', false).value, |
| 206 equals(TextDirection.LTR.value)); |
| 207 expect(BidiUtils.estimateDirection( |
| 208 'http://foo/bar/?s=\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0' |
| 209 '\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0' |
| 210 '\u05d0\u05d0\u05d0\u05d0\u05d0').value, |
| 211 equals(TextDirection.LTR.value)); |
| 212 expect(BidiUtils.estimateDirection('\u05d0', false).value, |
| 213 equals(TextDirection.RTL.value)); |
| 214 expect(BidiUtils.estimateDirection( |
| 215 '9 \u05d0 -> 17.5, 23, 45, 19', false).value, |
| 216 equals(TextDirection.RTL.value)); |
| 217 expect(BidiUtils.estimateDirection( |
| 218 'http://foo/bar/ \u05d0 http://foo2/bar2/ http://foo3/bar3/').value, |
| 219 equals(TextDirection.RTL.value)); |
| 220 expect(BidiUtils.estimateDirection( |
| 221 '\u05d0\u05d9\u05df \u05de\u05de\u05e9 \u05de\u05d4 \u05dc\u05e8\u05d0' |
| 222 '\u05d5\u05ea: \u05dc\u05d0 \u05e6\u05d9\u05dc\u05de\u05ea\u05d9 \u05d4' |
| 223 '\u05e8\u05d1\u05d4 \u05d5\u05d2\u05dd \u05d0\u05dd \u05d4\u05d9\u05d9' |
| 224 '\u05ea\u05d9 \u05de\u05e6\u05dc\u05dd, \u05d4\u05d9\u05d4 \u05e9' |
| 225 '\u05dd').value, |
| 226 equals(TextDirection.RTL.value)); |
| 227 expect(BidiUtils.estimateDirection( |
| 228 '\u05db\u05d0 - http://geek.co.il/gallery/v/2007-06 - \u05d0\u05d9' |
| 229 '\u05df \u05de\u05de\u05e9 \u05de\u05d4 \u05dc\u05e8\u05d0\u05d5\u05ea:' |
| 230 ' \u05dc\u05d0 \u05e6\u05d9\u05dc\u05de\u05ea\u05d9 \u05d4\u05e8\u05d1 ' |
| 231 '\u05d5\u05d2\u05dd \u05d0\u05dd \u05d4\u05d9\u05d9\u05d9 \u05de\u05e6' |
| 232 '\u05dc\u05dd, \u05d4\u05d9\u05d4 \u05e9\u05dd \u05d1\u05e2\u05d9\u05e7' |
| 233 ' \u05d4\u05e8\u05d1\u05d4 \u05d0\u05e0\u05e9\u05d9\u05dd. \u05de\u05d4' |
| 234 ' \u05e9\u05db\u05df - \u05d0\u05e4\u05e9\u05e8 \u05dc\u05e0\u05e6' |
| 235 '\u05dc \u05d0\u05ea \u05d4\u05d4 \u05d3\u05d6\u05de\u05e0\u05d5 ' |
| 236 '\u05dc\u05d4\u05e1\u05ea\u05db\u05dc \u05e2\u05dc \u05db\u05de\u05d4 ' |
| 237 '\u05ea\u05de\u05d5\u05e0\u05d5\u05ea \u05de\u05e9\u05e9\u05e2\u05d5' |
| 238 '\u05ea \u05d9\u05e9\u05e0\u05d5 \u05d9\u05d5\u05ea\u05e8 \u05e9\u05d9' |
| 239 '\u05e9 \u05dc\u05d9 \u05d1\u05d0\u05ea\u05e8', false).value, |
| 240 equals(TextDirection.RTL.value)); |
| 241 expect(BidiUtils.estimateDirection( |
| 242 'CAPTCHA \u05de\u05e9\u05d5\u05db\u05dc\u05dc ' |
| 243 '\u05de\u05d3\u05d9?').value, |
| 244 equals(TextDirection.RTL.value)); |
| 245 expect(BidiUtils.estimateDirection( |
| 246 'Yes Prime Minister \u05e2\u05d3\u05db\u05d5\u05df. \u05e9\u05d0\u05dc' |
| 247 '\u05d5 \u05d0\u05d5\u05ea\u05d9 \u05de\u05d4 \u05d0\u05e0\u05d9 ' |
| 248 '\u05e8\u05d5\u05e6\u05d4 \u05de\u05ea\u05e0\u05d4 \u05dc\u05d7' |
| 249 '\u05d2').value, |
| 250 equals(TextDirection.RTL.value)); |
| 251 expect(BidiUtils.estimateDirection( |
| 252 '17.4.02 \u05e9\u05e2\u05d4:13-20 .15-00 .\u05dc\u05d0 \u05d4\u05d9' |
| 253 '\u05d9\u05ea\u05d9 \u05db\u05d0\u05df.').value, |
| 254 equals(TextDirection.RTL.value)); |
| 255 expect(BidiUtils.estimateDirection( |
| 256 '5710 5720 5730. \u05d4\u05d3\u05dc\u05ea. \u05d4\u05e0\u05e9\u05d9' |
| 257 '\u05e7\u05d4', false).value, |
| 258 equals(TextDirection.RTL.value)); |
| 259 expect(BidiUtils.estimateDirection( |
| 260 '\u05d4\u05d3\u05dc\u05ea http://www.google.com ' |
| 261 'http://www.gmail.com').value, |
| 262 equals(TextDirection.RTL.value)); |
| 263 expect(BidiUtils.estimateDirection( |
| 264 '\u05d4\u05d3\u05dc <some quite nasty html mark up>').value, |
| 265 equals(TextDirection.LTR.value)); |
| 266 expect(BidiUtils.estimateDirection( |
| 267 '\u05d4\u05d3\u05dc <some quite nasty html mark up>').value, |
| 268 equals(TextDirection.LTR.value)); |
| 269 expect(BidiUtils.estimateDirection( |
| 270 '\u05d4\u05d3\u05dc\u05ea & < >').value, |
| 271 equals(TextDirection.LTR.value)); |
| 272 expect(BidiUtils.estimateDirection( |
| 273 '\u05d4\u05d3\u05dc\u05ea & < >', true).value, |
| 274 equals(TextDirection.RTL.value)); |
| 275 }); |
| 276 |
| 277 test('detectRtlDirectionality', () { |
| 278 var bidiText = []; |
| 279 var item = new SampleItem('Pure Ascii content'); |
| 280 bidiText.add(item); |
| 281 |
| 282 item = new SampleItem('\u05d0\u05d9\u05df \u05de\u05de\u05e9 \u05de\u05d4' |
| 283 ' \u05dc\u05e8\u05d0\u05d5\u05ea: \u05dc\u05d0 \u05e6\u05d9\u05dc' |
| 284 '\u05de\u05ea\u05d9 \u05d4\u05e8\u05d1\u05d4 \u05d5\u05d2\u05dd ' |
| 285 '\u05d0\u05dd \u05d4\u05d9\u05d9\u05ea\u05d9 \u05de\u05e6\u05dc\u05dd, ' |
| 286 '\u05d4\u05d9\u05d4 \u05e9\u05dd', true); |
| 287 bidiText.add(item); |
| 288 |
| 289 item = new SampleItem('\u05db\u05d0\u05df - http://geek.co.il/gallery/v/' |
| 290 '2007-06 - \u05d0\u05d9\u05df \u05de\u05de\u05e9 \u05de\u05d4 \u05dc' |
| 291 '\u05e8\u05d0\u05d5\u05ea: \u05dc\u05d0 \u05e6\u05d9\u05dc\u05de\u05ea' |
| 292 '\u05d9 \u05d4\u05e8\u05d1\u05d4 \u05d5\u05d2\u05dd \u05d0\u05dd \u05d4' |
| 293 '\u05d9\u05d9\u05ea\u05d9 \u05de\u05e6\u05dc\u05dd, \u05d4\u05d9\u05d4 ' |
| 294 '\u05e9\u05dd \u05d1\u05e2\u05d9\u05e7\u05e8 \u05d4\u05e8\u05d1\u05d4 ' |
| 295 '\u05d0\u05e0\u05e9\u05d9\u05dd. \u05de\u05d4 \u05e9\u05db\u05df - ' |
| 296 '\u05d0\u05e4\u05e9\u05e8 \u05dc\u05e0\u05e6\u05dc \u05d0\u05ea \u05d4' |
| 297 '\u05d4\u05d3\u05d6\u05de\u05e0\u05d5\u05ea \u05dc\u05d4\u05e1\u05ea' |
| 298 '\u05db\u05dc \u05e2\u05dc \u05db\u05de\u05d4 \u05ea\u05de\u05d5\u05e0' |
| 299 '\u05d5\u05ea \u05de\u05e9\u05e2\u05e9\u05e2\u05d5\u05ea \u05d9\u05e9' |
| 300 '\u05e0\u05d5\u05ea \u05d9\u05d5\u05ea\u05e8 \u05e9\u05d9\u05e9 \u05dc' |
| 301 '\u05d9 \u05d1\u05d0\u05ea\u05e8', true); |
| 302 bidiText.add(item); |
| 303 |
| 304 item = new SampleItem('CAPTCHA \u05de\u05e9\u05d5\u05db\u05dc\u05dc ' |
| 305 '\u05de\u05d3\u05d9?', true); |
| 306 bidiText.add(item); |
| 307 |
| 308 |
| 309 item = new SampleItem('Yes Prime Minister \u05e2\u05d3\u05db\u05d5\u05df. ' |
| 310 '\u05e9\u05d0\u05dc\u05d5 \u05d0\u05d5\u05ea\u05d9 \u05de\u05d4 \u05d0' |
| 311 '\u05e0\u05d9 \u05e8\u05d5\u05e6\u05d4 \u05de\u05ea\u05e0\u05d4 ' |
| 312 '\u05dc\u05d7\u05d2', true); |
| 313 bidiText.add(item); |
| 314 |
| 315 item = new SampleItem('17.4.02 \u05e9\u05e2\u05d4:13-20 .15-00 .\u05dc' |
| 316 '\u05d0 \u05d4\u05d9\u05d9\u05ea\u05d9 \u05db\u05d0\u05df.', true); |
| 317 bidiText.add(item); |
| 318 |
| 319 item = new SampleItem('5710 5720 5730. \u05d4\u05d3\u05dc\u05ea. \u05d4' |
| 320 '\u05e0\u05e9\u05d9\u05e7\u05d4', true); |
| 321 bidiText.add(item); |
| 322 |
| 323 item = new SampleItem('\u05d4\u05d3\u05dc\u05ea http://www.google.com ' |
| 324 'http://www.gmail.com', true); |
| 325 bidiText.add(item); |
| 326 |
| 327 item = new SampleItem('>\u05d4<', true, true); |
| 328 bidiText.add(item); |
| 329 |
| 330 item = new SampleItem('>\u05d4<', false); |
| 331 bidiText.add(item); |
| 332 |
| 333 for (var i = 0; i < bidiText.length; i++) { |
| 334 var isRtlDir = BidiUtils.detectRtlDirectionality(bidiText[i].text, |
| 335 bidiText[i].isHtml); |
| 336 if (isRtlDir != bidiText[i].isRtl) { |
| 337 var str = '"${bidiText[i].text} " should be ' |
| 338 '${bidiText[i].isRtl ? "rtl" : "ltr"} but detected as ' |
| 339 '${isRtlDir ? "rtl" : "ltr"}'; |
| 340 //alert(str); |
| 341 } |
| 342 expect(bidiText[i].isRtl, isRtlDir); |
| 343 } |
| 344 }); |
| 345 } |
| 346 |
| 347 class SampleItem { |
| 348 String text; |
| 349 bool isRtl; |
| 350 bool isHtml; |
| 351 SampleItem([someText='', someIsRtl=false, isHtml=false]) : |
| 352 this.text=someText, this.isRtl=someIsRtl, this.isHtml=isHtml; |
| 353 } |
| OLD | NEW |