Index: packages/intl/test/bidi_utils_test.dart |
diff --git a/packages/intl/test/bidi_utils_test.dart b/packages/intl/test/bidi_utils_test.dart |
index b5b4fe59cf20626d76da5211d3d87901a018ee91..a6f0832a1f3dc7235947eabc359e5ea0a5e9f11f 100644 |
--- a/packages/intl/test/bidi_utils_test.dart |
+++ b/packages/intl/test/bidi_utils_test.dart |
@@ -5,11 +5,9 @@ |
library bidi_utils_test; |
import 'package:intl/intl.dart'; |
-import 'package:unittest/unittest.dart'; |
+import 'package:test/test.dart'; |
-/** |
- * Tests the bidi utilities library. |
- */ |
+/// Tests the bidi utilities library. |
main() { |
var LRE = '\u202A'; |
var RLE = '\u202B'; |
@@ -33,6 +31,15 @@ main() { |
expect(Bidi.isRtlLanguage('az-Arab'), isTrue); |
expect(Bidi.isRtlLanguage('az-ARAB-IR'), isTrue); |
expect(Bidi.isRtlLanguage('az_arab_IR'), isTrue); |
+ Intl.withLocale('en_US', () { |
+ expect(Bidi.isRtlLanguage(), isFalse); |
+ }); |
+ Intl.withLocale('ar', () { |
+ expect(Bidi.isRtlLanguage(), isTrue); |
+ }); |
+ Intl.withLocale(null, () { |
+ expect(Bidi.isRtlLanguage(), Bidi.isRtlLanguage(Intl.systemLocale)); |
+ }); |
}); |
test('hasAnyLtr', () { |
@@ -192,67 +199,116 @@ main() { |
equals(TextDirection.LTR.value)); |
expect(Bidi.estimateDirectionOfText('http://foo/bar/', isHtml: false).value, |
equals(TextDirection.LTR.value)); |
- expect(Bidi.estimateDirectionOfText( |
- 'http://foo/bar/?s=\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0' |
- '\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0' |
- '\u05d0\u05d0\u05d0\u05d0\u05d0').value, |
+ expect( |
+ Bidi |
+ .estimateDirectionOfText( |
+ 'http://foo/bar/?s=\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0' |
+ '\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0\u05d0' |
+ '\u05d0\u05d0\u05d0\u05d0\u05d0') |
+ .value, |
equals(TextDirection.LTR.value)); |
expect(Bidi.estimateDirectionOfText('\u05d0', isHtml: false).value, |
equals(TextDirection.RTL.value)); |
- expect(Bidi.estimateDirectionOfText('9 \u05d0 -> 17.5, 23, 45, 19', |
- isHtml: false).value, equals(TextDirection.RTL.value)); |
- expect(Bidi.estimateDirectionOfText( |
- 'http://foo/bar/ \u05d0 http://foo2/bar2/ http://foo3/bar3/').value, |
+ expect( |
+ Bidi |
+ .estimateDirectionOfText('9 \u05d0 -> 17.5, 23, 45, 19', |
+ isHtml: false) |
+ .value, |
equals(TextDirection.RTL.value)); |
- expect(Bidi.estimateDirectionOfText( |
- '\u05d0\u05d9\u05df \u05de\u05de\u05e9 \u05de\u05d4 \u05dc\u05e8\u05d0' |
- '\u05d5\u05ea: \u05dc\u05d0 \u05e6\u05d9\u05dc\u05de\u05ea\u05d9 \u05d4' |
- '\u05e8\u05d1\u05d4 \u05d5\u05d2\u05dd \u05d0\u05dd \u05d4\u05d9\u05d9' |
- '\u05ea\u05d9 \u05de\u05e6\u05dc\u05dd, \u05d4\u05d9\u05d4 \u05e9' |
- '\u05dd').value, equals(TextDirection.RTL.value)); |
- expect(Bidi.estimateDirectionOfText( |
- '\u05db\u05d0 - http://geek.co.il/gallery/v/2007-06 - \u05d0\u05d9' |
- '\u05df \u05de\u05de\u05e9 \u05de\u05d4 \u05dc\u05e8\u05d0\u05d5\u05ea:' |
- ' \u05dc\u05d0 \u05e6\u05d9\u05dc\u05de\u05ea\u05d9 \u05d4\u05e8\u05d1 ' |
- '\u05d5\u05d2\u05dd \u05d0\u05dd \u05d4\u05d9\u05d9\u05d9 \u05de\u05e6' |
- '\u05dc\u05dd, \u05d4\u05d9\u05d4 \u05e9\u05dd \u05d1\u05e2\u05d9\u05e7' |
- ' \u05d4\u05e8\u05d1\u05d4 \u05d0\u05e0\u05e9\u05d9\u05dd. \u05de\u05d4' |
- ' \u05e9\u05db\u05df - \u05d0\u05e4\u05e9\u05e8 \u05dc\u05e0\u05e6' |
- '\u05dc \u05d0\u05ea \u05d4\u05d4 \u05d3\u05d6\u05de\u05e0\u05d5 ' |
- '\u05dc\u05d4\u05e1\u05ea\u05db\u05dc \u05e2\u05dc \u05db\u05de\u05d4 ' |
- '\u05ea\u05de\u05d5\u05e0\u05d5\u05ea \u05de\u05e9\u05e9\u05e2\u05d5' |
- '\u05ea \u05d9\u05e9\u05e0\u05d5 \u05d9\u05d5\u05ea\u05e8 \u05e9\u05d9' |
- '\u05e9 \u05dc\u05d9 \u05d1\u05d0\u05ea\u05e8', |
- isHtml: false).value, equals(TextDirection.RTL.value)); |
- expect(Bidi.estimateDirectionOfText( |
- 'CAPTCHA \u05de\u05e9\u05d5\u05db\u05dc\u05dc ' |
- '\u05de\u05d3\u05d9?').value, equals(TextDirection.RTL.value)); |
- expect(Bidi.estimateDirectionOfText( |
- 'Yes Prime Minister \u05e2\u05d3\u05db\u05d5\u05df. \u05e9\u05d0\u05dc' |
- '\u05d5 \u05d0\u05d5\u05ea\u05d9 \u05de\u05d4 \u05d0\u05e0\u05d9 ' |
- '\u05e8\u05d5\u05e6\u05d4 \u05de\u05ea\u05e0\u05d4 \u05dc\u05d7' |
- '\u05d2').value, equals(TextDirection.RTL.value)); |
- expect(Bidi.estimateDirectionOfText( |
- '17.4.02 \u05e9\u05e2\u05d4:13-20 .15-00 .\u05dc\u05d0 \u05d4\u05d9' |
- '\u05d9\u05ea\u05d9 \u05db\u05d0\u05df.').value, |
+ expect( |
+ Bidi |
+ .estimateDirectionOfText( |
+ 'http://foo/bar/ \u05d0 http://foo2/bar2/ http://foo3/bar3/') |
+ .value, |
equals(TextDirection.RTL.value)); |
- expect(Bidi.estimateDirectionOfText( |
- '5710 5720 5730. \u05d4\u05d3\u05dc\u05ea. \u05d4\u05e0\u05e9\u05d9' |
- '\u05e7\u05d4', isHtml: false).value, equals(TextDirection.RTL.value)); |
- expect(Bidi.estimateDirectionOfText( |
- '\u05d4\u05d3\u05dc\u05ea http://www.google.com ' |
- 'http://www.gmail.com').value, equals(TextDirection.RTL.value)); |
- expect(Bidi.estimateDirectionOfText( |
- '\u05d4\u05d3\u05dc <some quite nasty html mark up>').value, |
+ expect( |
+ Bidi |
+ .estimateDirectionOfText( |
+ '\u05d0\u05d9\u05df \u05de\u05de\u05e9 \u05de\u05d4 \u05dc\u05e8\u05d0' |
+ '\u05d5\u05ea: \u05dc\u05d0 \u05e6\u05d9\u05dc\u05de\u05ea\u05d9 \u05d4' |
+ '\u05e8\u05d1\u05d4 \u05d5\u05d2\u05dd \u05d0\u05dd \u05d4\u05d9\u05d9' |
+ '\u05ea\u05d9 \u05de\u05e6\u05dc\u05dd, \u05d4\u05d9\u05d4 \u05e9' |
+ '\u05dd') |
+ .value, |
+ equals(TextDirection.RTL.value)); |
+ expect( |
+ Bidi |
+ .estimateDirectionOfText( |
+ '\u05db\u05d0 - http://geek.co.il/gallery/v/2007-06 - \u05d0\u05d9' |
+ '\u05df \u05de\u05de\u05e9 \u05de\u05d4 \u05dc\u05e8\u05d0\u05d5\u05ea:' |
+ ' \u05dc\u05d0 \u05e6\u05d9\u05dc\u05de\u05ea\u05d9 \u05d4\u05e8\u05d1 ' |
+ '\u05d5\u05d2\u05dd \u05d0\u05dd \u05d4\u05d9\u05d9\u05d9 \u05de\u05e6' |
+ '\u05dc\u05dd, \u05d4\u05d9\u05d4 \u05e9\u05dd \u05d1\u05e2\u05d9\u05e7' |
+ ' \u05d4\u05e8\u05d1\u05d4 \u05d0\u05e0\u05e9\u05d9\u05dd. \u05de\u05d4' |
+ ' \u05e9\u05db\u05df - \u05d0\u05e4\u05e9\u05e8 \u05dc\u05e0\u05e6' |
+ '\u05dc \u05d0\u05ea \u05d4\u05d4 \u05d3\u05d6\u05de\u05e0\u05d5 ' |
+ '\u05dc\u05d4\u05e1\u05ea\u05db\u05dc \u05e2\u05dc \u05db\u05de\u05d4 ' |
+ '\u05ea\u05de\u05d5\u05e0\u05d5\u05ea \u05de\u05e9\u05e9\u05e2\u05d5' |
+ '\u05ea \u05d9\u05e9\u05e0\u05d5 \u05d9\u05d5\u05ea\u05e8 \u05e9\u05d9' |
+ '\u05e9 \u05dc\u05d9 \u05d1\u05d0\u05ea\u05e8', |
+ isHtml: false) |
+ .value, |
+ equals(TextDirection.RTL.value)); |
+ expect( |
+ Bidi |
+ .estimateDirectionOfText( |
+ 'CAPTCHA \u05de\u05e9\u05d5\u05db\u05dc\u05dc ' |
+ '\u05de\u05d3\u05d9?') |
+ .value, |
+ equals(TextDirection.RTL.value)); |
+ expect( |
+ Bidi |
+ .estimateDirectionOfText( |
+ 'Yes Prime Minister \u05e2\u05d3\u05db\u05d5\u05df. \u05e9\u05d0\u05dc' |
+ '\u05d5 \u05d0\u05d5\u05ea\u05d9 \u05de\u05d4 \u05d0\u05e0\u05d9 ' |
+ '\u05e8\u05d5\u05e6\u05d4 \u05de\u05ea\u05e0\u05d4 \u05dc\u05d7' |
+ '\u05d2') |
+ .value, |
+ equals(TextDirection.RTL.value)); |
+ expect( |
+ Bidi |
+ .estimateDirectionOfText( |
+ '17.4.02 \u05e9\u05e2\u05d4:13-20 .15-00 .\u05dc\u05d0 \u05d4\u05d9' |
+ '\u05d9\u05ea\u05d9 \u05db\u05d0\u05df.') |
+ .value, |
+ equals(TextDirection.RTL.value)); |
+ expect( |
+ Bidi |
+ .estimateDirectionOfText( |
+ '5710 5720 5730. \u05d4\u05d3\u05dc\u05ea. \u05d4\u05e0\u05e9\u05d9' |
+ '\u05e7\u05d4', |
+ isHtml: false) |
+ .value, |
+ equals(TextDirection.RTL.value)); |
+ expect( |
+ Bidi |
+ .estimateDirectionOfText( |
+ '\u05d4\u05d3\u05dc\u05ea http://www.google.com ' |
+ 'http://www.gmail.com') |
+ .value, |
+ equals(TextDirection.RTL.value)); |
+ expect( |
+ Bidi |
+ .estimateDirectionOfText( |
+ '\u05d4\u05d3\u05dc <some quite nasty html mark up>') |
+ .value, |
equals(TextDirection.LTR.value)); |
- expect(Bidi.estimateDirectionOfText( |
- '\u05d4\u05d3\u05dc <some quite nasty html mark up>').value, |
+ expect( |
+ Bidi |
+ .estimateDirectionOfText( |
+ '\u05d4\u05d3\u05dc <some quite nasty html mark up>') |
+ .value, |
equals(TextDirection.LTR.value)); |
- expect(Bidi.estimateDirectionOfText( |
- '\u05d4\u05d3\u05dc\u05ea & < >').value, |
+ expect( |
+ Bidi |
+ .estimateDirectionOfText('\u05d4\u05d3\u05dc\u05ea & < >') |
+ .value, |
equals(TextDirection.LTR.value)); |
- expect(Bidi.estimateDirectionOfText( |
- '\u05d4\u05d3\u05dc\u05ea & < >', isHtml: true).value, |
+ expect( |
+ Bidi |
+ .estimateDirectionOfText('\u05d4\u05d3\u05dc\u05ea & < >', |
+ isHtml: true) |
+ .value, |
equals(TextDirection.RTL.value)); |
}); |
@@ -261,14 +317,17 @@ main() { |
var item = new SampleItem('Pure Ascii content'); |
bidiText.add(item); |
- item = new SampleItem('\u05d0\u05d9\u05df \u05de\u05de\u05e9 \u05de\u05d4' |
+ item = new SampleItem( |
+ '\u05d0\u05d9\u05df \u05de\u05de\u05e9 \u05de\u05d4' |
' \u05dc\u05e8\u05d0\u05d5\u05ea: \u05dc\u05d0 \u05e6\u05d9\u05dc' |
'\u05de\u05ea\u05d9 \u05d4\u05e8\u05d1\u05d4 \u05d5\u05d2\u05dd ' |
'\u05d0\u05dd \u05d4\u05d9\u05d9\u05ea\u05d9 \u05de\u05e6\u05dc\u05dd, ' |
- '\u05d4\u05d9\u05d4 \u05e9\u05dd', true); |
+ '\u05d4\u05d9\u05d4 \u05e9\u05dd', |
+ true); |
bidiText.add(item); |
- item = new SampleItem('\u05db\u05d0\u05df - http://geek.co.il/gallery/v/' |
+ item = new SampleItem( |
+ '\u05db\u05d0\u05df - http://geek.co.il/gallery/v/' |
'2007-06 - \u05d0\u05d9\u05df \u05de\u05de\u05e9 \u05de\u05d4 \u05dc' |
'\u05e8\u05d0\u05d5\u05ea: \u05dc\u05d0 \u05e6\u05d9\u05dc\u05de\u05ea' |
'\u05d9 \u05d4\u05e8\u05d1\u05d4 \u05d5\u05d2\u05dd \u05d0\u05dd \u05d4' |
@@ -280,29 +339,40 @@ main() { |
'\u05db\u05dc \u05e2\u05dc \u05db\u05de\u05d4 \u05ea\u05de\u05d5\u05e0' |
'\u05d5\u05ea \u05de\u05e9\u05e2\u05e9\u05e2\u05d5\u05ea \u05d9\u05e9' |
'\u05e0\u05d5\u05ea \u05d9\u05d5\u05ea\u05e8 \u05e9\u05d9\u05e9 \u05dc' |
- '\u05d9 \u05d1\u05d0\u05ea\u05e8', true); |
+ '\u05d9 \u05d1\u05d0\u05ea\u05e8', |
+ true); |
bidiText.add(item); |
- item = new SampleItem('CAPTCHA \u05de\u05e9\u05d5\u05db\u05dc\u05dc ' |
- '\u05de\u05d3\u05d9?', true); |
+ item = new SampleItem( |
+ 'CAPTCHA \u05de\u05e9\u05d5\u05db\u05dc\u05dc ' |
+ '\u05de\u05d3\u05d9?', |
+ true); |
bidiText.add(item); |
- item = new SampleItem('Yes Prime Minister \u05e2\u05d3\u05db\u05d5\u05df. ' |
+ item = new SampleItem( |
+ 'Yes Prime Minister \u05e2\u05d3\u05db\u05d5\u05df. ' |
'\u05e9\u05d0\u05dc\u05d5 \u05d0\u05d5\u05ea\u05d9 \u05de\u05d4 \u05d0' |
'\u05e0\u05d9 \u05e8\u05d5\u05e6\u05d4 \u05de\u05ea\u05e0\u05d4 ' |
- '\u05dc\u05d7\u05d2', true); |
+ '\u05dc\u05d7\u05d2', |
+ true); |
bidiText.add(item); |
- item = new SampleItem('17.4.02 \u05e9\u05e2\u05d4:13-20 .15-00 .\u05dc' |
- '\u05d0 \u05d4\u05d9\u05d9\u05ea\u05d9 \u05db\u05d0\u05df.', true); |
+ item = new SampleItem( |
+ '17.4.02 \u05e9\u05e2\u05d4:13-20 .15-00 .\u05dc' |
+ '\u05d0 \u05d4\u05d9\u05d9\u05ea\u05d9 \u05db\u05d0\u05df.', |
+ true); |
bidiText.add(item); |
- item = new SampleItem('5710 5720 5730. \u05d4\u05d3\u05dc\u05ea. \u05d4' |
- '\u05e0\u05e9\u05d9\u05e7\u05d4', true); |
+ item = new SampleItem( |
+ '5710 5720 5730. \u05d4\u05d3\u05dc\u05ea. \u05d4' |
+ '\u05e0\u05e9\u05d9\u05e7\u05d4', |
+ true); |
bidiText.add(item); |
- item = new SampleItem('\u05d4\u05d3\u05dc\u05ea http://www.google.com ' |
- 'http://www.gmail.com', true); |
+ item = new SampleItem( |
+ '\u05d4\u05d3\u05dc\u05ea http://www.google.com ' |
+ 'http://www.gmail.com', |
+ true); |
bidiText.add(item); |
item = new SampleItem('>\u05d4<', true, true); |
@@ -314,13 +384,13 @@ main() { |
for (var i = 0; i < bidiText.length; i++) { |
var isRtlDir = Bidi.detectRtlDirectionality(bidiText[i].text, |
isHtml: bidiText[i].isHtml); |
+ |
if (isRtlDir != bidiText[i].isRtl) { |
var str = '"${bidiText[i].text} " should be ' |
'${bidiText[i].isRtl ? "rtl" : "ltr"} but detected as ' |
'${isRtlDir ? "rtl" : "ltr"}'; |
- //alert(str); |
+ fail(str); |
} |
- expect(bidiText[i].isRtl, isRtlDir); |
} |
}); |
} |