// Copyright 2007 The Closure Library Authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS-IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. goog.provide('goog.i18n.bidiTest'); goog.setTestOnly('goog.i18n.bidiTest'); goog.require('goog.i18n.bidi'); goog.require('goog.i18n.bidi.Dir'); goog.require('goog.testing.jsunit'); var LRE = '\u202A'; var RLE = '\u202B'; var PDF = '\u202C'; var LRM = '\u200E'; var RLM = '\u200F'; function testToDir() { assertEquals(null, goog.i18n.bidi.toDir(null)); assertEquals(null, goog.i18n.bidi.toDir(null, true)); assertEquals(goog.i18n.bidi.Dir.NEUTRAL, goog.i18n.bidi.toDir(goog.i18n.bidi.Dir.NEUTRAL)); assertEquals(null, goog.i18n.bidi.toDir(0, true)); assertEquals(goog.i18n.bidi.Dir.LTR, goog.i18n.bidi.toDir(goog.i18n.bidi.Dir.LTR)); assertEquals(goog.i18n.bidi.Dir.LTR, goog.i18n.bidi.toDir(goog.i18n.bidi.Dir.LTR, true)); assertEquals(goog.i18n.bidi.Dir.LTR, goog.i18n.bidi.toDir(100)); assertEquals(goog.i18n.bidi.Dir.LTR, goog.i18n.bidi.toDir(100, true)); assertEquals(goog.i18n.bidi.Dir.LTR, goog.i18n.bidi.toDir(false)); assertEquals(goog.i18n.bidi.Dir.LTR, goog.i18n.bidi.toDir(false, true)); assertEquals(goog.i18n.bidi.Dir.RTL, goog.i18n.bidi.toDir(goog.i18n.bidi.Dir.RTL)); assertEquals(goog.i18n.bidi.Dir.RTL, goog.i18n.bidi.toDir(goog.i18n.bidi.Dir.RTL, true)); assertEquals(goog.i18n.bidi.Dir.RTL, goog.i18n.bidi.toDir(-100)); assertEquals(goog.i18n.bidi.Dir.RTL, goog.i18n.bidi.toDir(-100, true)); assertEquals(goog.i18n.bidi.Dir.RTL, goog.i18n.bidi.toDir(true)); assertEquals(goog.i18n.bidi.Dir.RTL, goog.i18n.bidi.toDir(true, true)); } function testIsRtlLang() { assert(!goog.i18n.bidi.isRtlLanguage('en')); assert(!goog.i18n.bidi.isRtlLanguage('fr')); assert(!goog.i18n.bidi.isRtlLanguage('zh-CN')); assert(!goog.i18n.bidi.isRtlLanguage('fil')); assert(!goog.i18n.bidi.isRtlLanguage('az')); assert(!goog.i18n.bidi.isRtlLanguage('iw-Latn')); assert(!goog.i18n.bidi.isRtlLanguage('iw-LATN')); assert(!goog.i18n.bidi.isRtlLanguage('iw_latn')); assert(goog.i18n.bidi.isRtlLanguage('ar')); assert(goog.i18n.bidi.isRtlLanguage('AR')); assert(goog.i18n.bidi.isRtlLanguage('iw')); assert(goog.i18n.bidi.isRtlLanguage('he')); assert(goog.i18n.bidi.isRtlLanguage('fa')); assert(goog.i18n.bidi.isRtlLanguage('ckb')); assert(goog.i18n.bidi.isRtlLanguage('ar-EG')); assert(goog.i18n.bidi.isRtlLanguage('az-Arab')); assert(goog.i18n.bidi.isRtlLanguage('az-ARAB-IR')); assert(goog.i18n.bidi.isRtlLanguage('az_arab_IR')); } function testIsLtrChar() { assert(goog.i18n.bidi.isLtrChar('a')); assert(!goog.i18n.bidi.isLtrChar('\u05e0')); var str = 'a\u05e0z'; assert(goog.i18n.bidi.isLtrChar(str.charAt(0))); assert(!goog.i18n.bidi.isLtrChar(str.charAt(1))); assert(goog.i18n.bidi.isLtrChar(str.charAt(2))); } function testIsRtlChar() { assert(!goog.i18n.bidi.isRtlChar('a')); assert(goog.i18n.bidi.isRtlChar('\u05e0')); var str = 'a\u05e0z'; assert(!goog.i18n.bidi.isRtlChar(str.charAt(0))); assert(goog.i18n.bidi.isRtlChar(str.charAt(1))); assert(!goog.i18n.bidi.isRtlChar(str.charAt(2))); } function testIsNeutralChar() { assert(goog.i18n.bidi.isNeutralChar('\u0000')); assert(goog.i18n.bidi.isNeutralChar('\u0020')); assert(!goog.i18n.bidi.isNeutralChar('a')); assert(goog.i18n.bidi.isNeutralChar('!')); assert(goog.i18n.bidi.isNeutralChar('@')); assert(goog.i18n.bidi.isNeutralChar('[')); assert(goog.i18n.bidi.isNeutralChar('`')); assert(goog.i18n.bidi.isNeutralChar('0')); assert(!goog.i18n.bidi.isNeutralChar('\u05e0')); } function testIsNeutralText() { assert(goog.i18n.bidi.isNeutralText('123')); assert(!goog.i18n.bidi.isNeutralText('abc')); assert(goog.i18n.bidi.isNeutralText('http://abc')); assert(goog.i18n.bidi.isNeutralText(' 123-()')); assert(!goog.i18n.bidi.isNeutralText('123a456')); assert(!goog.i18n.bidi.isNeutralText('123\u05e0456')); assert(!goog.i18n.bidi.isNeutralText('<input value=\u05e0>123<', false)); assert(goog.i18n.bidi.isNeutralText('<input value=\u05e0>123<', true)); } function testHasAnyLtr() { assert(!goog.i18n.bidi.hasAnyLtr('')); assert(!goog.i18n.bidi.hasAnyLtr('\u05e0\u05e1\u05e2')); assert(goog.i18n.bidi.hasAnyLtr('\u05e0\u05e1z\u05e2')); assert(!goog.i18n.bidi.hasAnyLtr('123\t... \n')); assert(goog.i18n.bidi.hasAnyLtr('<br>123<', false)); assert(!goog.i18n.bidi.hasAnyLtr('<br>123<', true)); } function testHasAnyRtl() { assert(!goog.i18n.bidi.hasAnyRtl('')); assert(!goog.i18n.bidi.hasAnyRtl('abc')); assert(goog.i18n.bidi.hasAnyRtl('ab\u05e0c')); assert(!goog.i18n.bidi.hasAnyRtl('123\t... \n')); assert(goog.i18n.bidi.hasAnyRtl('<input value=\u05e0>123', false)); assert(!goog.i18n.bidi.hasAnyRtl('<input value=\u05e0>123', true)); } function testEndsWithLtr() { assert(goog.i18n.bidi.endsWithLtr('a')); assert(goog.i18n.bidi.endsWithLtr('abc')); assert(goog.i18n.bidi.endsWithLtr('a (!)')); assert(goog.i18n.bidi.endsWithLtr('a.1')); assert(goog.i18n.bidi.endsWithLtr('http://www.google.com ')); assert(goog.i18n.bidi.endsWithLtr('\u05e0a')); assert(goog.i18n.bidi.endsWithLtr(' \u05e0\u05e1a\u05e2\u05e3 a (!)')); assert(goog.i18n.bidi.endsWithLtr('\u202b\u05d0!\u202c\u200e')); assert(!goog.i18n.bidi.endsWithLtr('')); assert(!goog.i18n.bidi.endsWithLtr(' ')); assert(!goog.i18n.bidi.endsWithLtr('1')); assert(!goog.i18n.bidi.endsWithLtr('\u05e0')); assert(!goog.i18n.bidi.endsWithLtr('\u05e0 1(!)')); assert(!goog.i18n.bidi.endsWithLtr('a\u05e0')); assert(!goog.i18n.bidi.endsWithLtr('a abc\u05e0\u05e1def\u05e2. 1')); assert(!goog.i18n.bidi.endsWithLtr('\u200f\u202eArtielish\u202c\u200f')); assert(!goog.i18n.bidi.endsWithLtr(' \u05e0\u05e1a\u05e2 <', true)); assert(goog.i18n.bidi.endsWithLtr(' \u05e0\u05e1a\u05e2 <', false)); } function testEndsWithRtl() { assert(goog.i18n.bidi.endsWithRtl('\u05e0')); assert(goog.i18n.bidi.endsWithRtl('\u05e0\u05e1\u05e2')); assert(goog.i18n.bidi.endsWithRtl('\u05e0 (!)')); assert(goog.i18n.bidi.endsWithRtl('\u05e0.1')); assert(goog.i18n.bidi.endsWithRtl('http://www.google.com/\u05e0 ')); assert(goog.i18n.bidi.endsWithRtl('a\u05e0')); assert(goog.i18n.bidi.endsWithRtl(' a abc\u05e0def\u05e3. 1')); assert(goog.i18n.bidi.endsWithRtl('\u200f\u202eArtielish\u202c\u200f')); assert(!goog.i18n.bidi.endsWithRtl('')); assert(!goog.i18n.bidi.endsWithRtl(' ')); assert(!goog.i18n.bidi.endsWithRtl('1')); assert(!goog.i18n.bidi.endsWithRtl('a')); assert(!goog.i18n.bidi.endsWithRtl('a 1(!)')); assert(!goog.i18n.bidi.endsWithRtl('\u05e0a')); assert(!goog.i18n.bidi.endsWithRtl('\u202b\u05d0!\u202c\u200e')); assert(!goog.i18n.bidi.endsWithRtl('\u05e0 \u05e0\u05e1ab\u05e2 a (!)')); assert(goog.i18n.bidi.endsWithRtl(' \u05e0\u05e1a\u05e2 <', true)); assert(!goog.i18n.bidi.endsWithRtl(' \u05e0\u05e1a\u05e2 <', false)); } function testGuardBracketInHtml() { var strWithRtl = 'asc \u05d0 (\u05d0\u05d0\u05d0)'; assertEquals('asc \u05d0 <span dir=rtl>(\u05d0\u05d0\u05d0)</span>', goog.i18n.bidi.guardBracketInHtml(strWithRtl)); assertEquals('asc \u05d0 <span dir=rtl>(\u05d0\u05d0\u05d0)</span>', goog.i18n.bidi.guardBracketInHtml(strWithRtl, true)); assertEquals('asc \u05d0 <span dir=ltr>(\u05d0\u05d0\u05d0)</span>', goog.i18n.bidi.guardBracketInHtml(strWithRtl, false)); var strWithRtl2 = '\u05d0 a (asc:))'; assertEquals('\u05d0 a <span dir=rtl>(asc:))</span>', goog.i18n.bidi.guardBracketInHtml(strWithRtl2)); assertEquals('\u05d0 a <span dir=rtl>(asc:))</span>', goog.i18n.bidi.guardBracketInHtml(strWithRtl2, true)); assertEquals('\u05d0 a <span dir=ltr>(asc:))</span>', goog.i18n.bidi.guardBracketInHtml(strWithRtl2, false)); var strWithoutRtl = 'a (asc) {{123}}'; assertEquals('a <span dir=ltr>(asc)</span> <span dir=ltr>{{123}}</span>', goog.i18n.bidi.guardBracketInHtml(strWithoutRtl)); assertEquals('a <span dir=rtl>(asc)</span> <span dir=rtl>{{123}}</span>', goog.i18n.bidi.guardBracketInHtml(strWithoutRtl, true)); assertEquals('a <span dir=ltr>(asc)</span> <span dir=ltr>{{123}}</span>', goog.i18n.bidi.guardBracketInHtml(strWithoutRtl, false)); } function testGuardBracketInText() { var strWithRtl = 'asc \u05d0 (\u05d0\u05d0\u05d0)'; assertEquals('asc \u05d0 \u200f(\u05d0\u05d0\u05d0)\u200f', goog.i18n.bidi.guardBracketInText(strWithRtl)); assertEquals('asc \u05d0 \u200f(\u05d0\u05d0\u05d0)\u200f', goog.i18n.bidi.guardBracketInText(strWithRtl, true)); assertEquals('asc \u05d0 \u200e(\u05d0\u05d0\u05d0)\u200e', goog.i18n.bidi.guardBracketInText(strWithRtl, false)); var strWithRtl2 = '\u05d0 a (asc:))'; assertEquals('\u05d0 a \u200f(asc:))\u200f', goog.i18n.bidi.guardBracketInText(strWithRtl2)); assertEquals('\u05d0 a \u200f(asc:))\u200f', goog.i18n.bidi.guardBracketInText(strWithRtl2, true)); assertEquals('\u05d0 a \u200e(asc:))\u200e', goog.i18n.bidi.guardBracketInText(strWithRtl2, false)); var strWithoutRtl = 'a (asc) {{123}}'; assertEquals('a \u200e(asc)\u200e \u200e{{123}}\u200e', goog.i18n.bidi.guardBracketInText(strWithoutRtl)); assertEquals('a \u200f(asc)\u200f \u200f{{123}}\u200f', goog.i18n.bidi.guardBracketInText(strWithoutRtl, true)); assertEquals('a \u200e(asc)\u200e \u200e{{123}}\u200e', goog.i18n.bidi.guardBracketInText(strWithoutRtl, false)); } function testEnforceRtlInHtml() { var str = '<div> first <br> second </div>'; assertEquals('<div dir=rtl> first <br> second </div>', goog.i18n.bidi.enforceRtlInHtml(str)); str = 'first second'; assertEquals('\n<span dir=rtl>first second</span>', goog.i18n.bidi.enforceRtlInHtml(str)); } function testEnforceRtlInText() { var str = 'first second'; assertEquals(RLE + 'first second' + PDF, goog.i18n.bidi.enforceRtlInText(str)); } function testEnforceLtrInHtml() { var str = '<div> first <br> second </div>'; assertEquals('<div dir=ltr> first <br> second </div>', goog.i18n.bidi.enforceLtrInHtml(str)); str = 'first second'; assertEquals('\n<span dir=ltr>first second</span>', goog.i18n.bidi.enforceLtrInHtml(str)); } function testEnforceLtrInText() { var str = 'first second'; assertEquals(LRE + 'first second' + PDF, goog.i18n.bidi.enforceLtrInText(str)); } function testNormalizeHebrewQuote() { assertEquals('\u05d0\u05f4', goog.i18n.bidi.normalizeHebrewQuote('\u05d0"')); assertEquals('\u05d0\u05f3', goog.i18n.bidi.normalizeHebrewQuote('\u05d0\'')); assertEquals('\u05d0\u05f4\u05d0\u05f3', goog.i18n.bidi.normalizeHebrewQuote('\u05d0"\u05d0\'')); } function testMirrorCSS() { var str = 'left:10px;right:20px'; assertEquals('right:10px;left:20px', goog.i18n.bidi.mirrorCSS(str)); str = 'border:10px 20px 30px 40px'; assertEquals('border:10px 40px 30px 20px', goog.i18n.bidi.mirrorCSS(str)); } function testEstimateDirection() { assertEquals(goog.i18n.bidi.Dir.NEUTRAL, goog.i18n.bidi.estimateDirection('', false)); assertEquals(goog.i18n.bidi.Dir.NEUTRAL, goog.i18n.bidi.estimateDirection(' ', false)); assertEquals(goog.i18n.bidi.Dir.NEUTRAL, goog.i18n.bidi.estimateDirection('! (...)', false)); assertEquals(goog.i18n.bidi.Dir.LTR, goog.i18n.bidi.estimateDirection('All-Ascii content', false)); assertEquals(goog.i18n.bidi.Dir.LTR, goog.i18n.bidi.estimateDirection('-17.0%', false)); assertEquals(goog.i18n.bidi.Dir.LTR, goog.i18n.bidi.estimateDirection('http://foo/bar/', false)); assertEquals(goog.i18n.bidi.Dir.LTR, goog.i18n.bidi.estimateDirection( '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', false)); assertEquals(goog.i18n.bidi.Dir.RTL, goog.i18n.bidi.estimateDirection('\u05d0', false)); assertEquals(goog.i18n.bidi.Dir.RTL, goog.i18n.bidi.estimateDirection( '9 \u05d0 -> 17.5, 23, 45, 19', false)); assertEquals(goog.i18n.bidi.Dir.RTL, goog.i18n.bidi.estimateDirection( 'http://foo/bar/ \u05d0 http://foo2/bar2/ ' + 'http://foo3/bar3/', false)); assertEquals(goog.i18n.bidi.Dir.RTL, goog.i18n.bidi.estimateDirection( '\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', false)); assertEquals(goog.i18n.bidi.Dir.RTL, goog.i18n.bidi.estimateDirection( '\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', false)); assertEquals(goog.i18n.bidi.Dir.RTL, goog.i18n.bidi.estimateDirection( 'CAPTCHA \u05de\u05e9\u05d5\u05db\u05dc\u05dc ' + '\u05de\u05d3\u05d9?', false)); assertEquals(goog.i18n.bidi.Dir.RTL, goog.i18n.bidi.estimateDirection( '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', false)); assertEquals(goog.i18n.bidi.Dir.RTL, goog.i18n.bidi.estimateDirection( '17.4.02 \u05e9\u05e2\u05d4:13-20 .15-00 .\u05dc\u05d0 ' + '\u05d4\u05d9\u05d9\u05ea\u05d9 \u05db\u05d0\u05df.', false)); assertEquals(goog.i18n.bidi.Dir.RTL, goog.i18n.bidi.estimateDirection( '5710 5720 5730. \u05d4\u05d3\u05dc\u05ea. ' + '\u05d4\u05e0\u05e9\u05d9\u05e7\u05d4', false)); assertEquals(goog.i18n.bidi.Dir.RTL, goog.i18n.bidi.estimateDirection( '\u05d4\u05d3\u05dc\u05ea http://www.google.com ' + 'http://www.gmail.com', false)); assertEquals(goog.i18n.bidi.Dir.RTL, goog.i18n.bidi.estimateDirection( '\u200f\u202eArtielish\u202c\u200f')); assertEquals(goog.i18n.bidi.Dir.LTR, goog.i18n.bidi.estimateDirection( '\u05d4\u05d3\u05dc <some quite nasty html mark up>', false)); assertEquals(goog.i18n.bidi.Dir.RTL, goog.i18n.bidi.estimateDirection( '\u05d4\u05d3\u05dc <some quite nasty html mark up>', true)); assertEquals(goog.i18n.bidi.Dir.LTR, goog.i18n.bidi.estimateDirection( '\u05d4\u05d3\u05dc\u05ea & < >', false)); assertEquals(goog.i18n.bidi.Dir.RTL, goog.i18n.bidi.estimateDirection( '\u05d4\u05d3\u05dc\u05ea & < >', true)); assertEquals(goog.i18n.bidi.Dir.LTR, goog.i18n.bidi.estimateDirection( 'foo/<b>\u05d0</b>', true)); } var bidi_text = []; function testDetectRtlDirectionality() { InitializeSamples(); for (var i = 0; i < bidi_text.length; i++) { //alert(bidi_text[i].text); var is_rtl = goog.i18n.bidi.detectRtlDirectionality(bidi_text[i].text, bidi_text[i].isHtml); if (is_rtl != bidi_text[i].isRtl) { var str = '"' + bidi_text[i].text + '" should be ' + (bidi_text[i].isRtl ? 'rtl' : 'ltr') + ' but detected as ' + (is_rtl ? 'rtl' : 'ltr'); alert(str); } assertEquals(bidi_text[i].isRtl, is_rtl); } } function SampleItem() { this.text = ''; this.isRtl = false; } function InitializeSamples() { var item = new SampleItem; item.text = 'Pure Ascii content'; item.isRtl = false; bidi_text.push(item); item = new SampleItem; item.text = '\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'; item.isRtl = true; bidi_text.push(item); item = new SampleItem; item.text = '\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\u05d9\u05d9\u05ea\u05d9 \u05de\u05e6\u05dc\u05dd, ' + '\u05d4\u05d9\u05d4 \u05e9\u05dd \u05d1\u05e2\u05d9\u05e7\u05e8 ' + '\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\u05ea ' + '\u05dc\u05d4\u05e1\u05ea\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'; item.isRtl = true; bidi_text.push(item); item = new SampleItem; item.text = 'CAPTCHA \u05de\u05e9\u05d5\u05db\u05dc\u05dc \u05de\u05d3\u05d9?'; item.isRtl = true; bidi_text.push(item); item = new SampleItem; item.text = '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'; item.isRtl = true; bidi_text.push(item); item = new SampleItem; item.text = '17.4.02 \u05e9\u05e2\u05d4:13-20 .15-00 .\u05dc\u05d0 ' + '\u05d4\u05d9\u05d9\u05ea\u05d9 \u05db\u05d0\u05df.'; item.isRtl = true; bidi_text.push(item); item = new SampleItem; item.text = '5710 5720 5730. \u05d4\u05d3\u05dc\u05ea. ' + '\u05d4\u05e0\u05e9\u05d9\u05e7\u05d4'; item.isRtl = true; bidi_text.push(item); item = new SampleItem; item.text = '\u05d4\u05d3\u05dc\u05ea http://www.google.com http://www.gmail.com'; item.isRtl = true; bidi_text.push(item); item = new SampleItem; item.text = '>\u05d4<'; item.isHtml = true; item.isRtl = true; bidi_text.push(item); item = new SampleItem; item.text = '>\u05d4<'; item.isHtml = false; item.isRtl = false; bidi_text.push(item); }