Localisation updates from http://translatewiki.net.
[mediawiki.git] / tests / qunit / suites / resources / jquery / jquery.highlightText.test.js
blob4750d2b879a86382c792bc3eccf553696c26410c
1 module( 'jquery.highlightText', QUnit.newMwEnvironment() );
3 test( '-- Initial check', function() {
4         expect(1);
5         ok( $.fn.highlightText, 'jQuery.fn.highlightText defined' );
6 } );
8 test( 'Check', function() {
9         var cases = [
10                 {
11                         desc: 'Test 001',
12                         text: 'Blue Öyster Cult',
13                         highlight: 'Blue',
14                         expected: '<span class="highlight">Blue</span> Öyster Cult'
15                 },
16                 {
17                         desc: 'Test 002',
18                         text: 'Blue Öyster Cult',
19                         highlight: 'Blue ',
20                         expected: '<span class="highlight">Blue</span> Öyster Cult'
21                 },
22                 {
23                         desc: 'Test 003',
24                         text: 'Blue Öyster Cult',
25                         highlight: 'Blue Ö',
26                         expected: '<span class="highlight">Blue</span> <span class="highlight">Ö</span>yster Cult'
27                 },
28                 {
29                         desc: 'Test 004',
30                         text: 'Blue Öyster Cult',
31                         highlight: 'Blue Öy',
32                         expected: '<span class="highlight">Blue</span> <span class="highlight">Öy</span>ster Cult'
33                 },
34                 {
35                         desc: 'Test 005',
36                         text: 'Blue Öyster Cult',
37                         highlight: ' Blue',
38                         expected: '<span class="highlight">Blue</span> Öyster Cult'
39                 },
40                 {
41                         desc: 'Test 006',
42                         text: 'Blue Öyster Cult',
43                         highlight: ' Blue ',
44                         expected: '<span class="highlight">Blue</span> Öyster Cult'
45                 },
46                 {
47                         desc: 'Test 007',
48                         text: 'Blue Öyster Cult',
49                         highlight: ' Blue Ö',
50                         expected: '<span class="highlight">Blue</span> <span class="highlight">Ö</span>yster Cult'
51                 },
52                 {
53                         desc: 'Test 008',
54                         text: 'Blue Öyster Cult',
55                         highlight: ' Blue Öy',
56                         expected: '<span class="highlight">Blue</span> <span class="highlight">Öy</span>ster Cult'
57                 },
58                 {
59                         desc: 'Test 009: Highlighter broken on starting Umlaut?',
60                         text: 'Österreich',
61                         highlight: 'Österreich',
62                         expected: '<span class="highlight">Österreich</span>'
63                 },
64                 {
65                         desc: 'Test 010: Highlighter broken on starting Umlaut?',
66                         text: 'Österreich',
67                         highlight: 'Ö',
68                         expected: '<span class="highlight">Ö</span>sterreich'
69                 },
70                 {
71                         desc: 'Test 011: Highlighter broken on starting Umlaut?',
72                         text: 'Österreich',
73                         highlight: 'Öst',
74                         expected: '<span class="highlight">Öst</span>erreich'
75                 },
76                 {
77                         desc: 'Test 012: Highlighter broken on starting Umlaut?',
78                         text: 'Österreich',
79                         highlight: 'Oe',
80                         expected: 'Österreich'
81                 },
82                 {
83                         desc: 'Test 013: Highlighter broken on punctuation mark?',
84                         text: 'So good. To be there',
85                         highlight: 'good',
86                         expected: 'So <span class="highlight">good</span>. To be there'
87                 },
88                 {
89                         desc: 'Test 014: Highlighter broken on space?',
90                         text: 'So good. To be there',
91                         highlight: 'be',
92                         expected: 'So good. To <span class="highlight">be</span> there'
93                 },
94                 {
95                         desc: 'Test 015: Highlighter broken on space?',
96                         text: 'So good. To be there',
97                         highlight: ' be',
98                         expected: 'So good. To <span class="highlight">be</span> there'
99                 },
100                 {
101                         desc: 'Test 016: Highlighter broken on space?',
102                         text: 'So good. To be there',
103                         highlight: 'be ',
104                         expected: 'So good. To <span class="highlight">be</span> there'
105                 },
106                 {
107                         desc: 'Test 017: Highlighter broken on space?',
108                         text: 'So good. To be there',
109                         highlight: ' be ',
110                         expected: 'So good. To <span class="highlight">be</span> there'
111                 },
112                 {
113                         desc: 'Test 018: en de Highlighter broken on special character at the end?',
114                         text: 'So good. xbß',
115                         highlight: 'xbß',
116                         expected: 'So good. <span class="highlight">xbß</span>'
117                 },
118                 {
119                         desc: 'Test 019: en de Highlighter broken on special character at the end?',
120                         text: 'So good. xbß.',
121                         highlight: 'xbß.',
122                         expected: 'So good. <span class="highlight">xbß.</span>'
123                 },
124                 {
125                         desc: 'Test 020: RTL he Hebrew',
126                         text: 'חסיד אומות העולם',
127                         highlight: 'חסיד אומות העולם',
128                         expected: '<span class="highlight">חסיד</span> <span class="highlight">אומות</span> <span class="highlight">העולם</span>'
129                 },
130                 {
131                         desc: 'Test 021: RTL he Hebrew',
132                         text: 'חסיד אומות העולם',
133                         highlight: 'חסי',
134                         expected: '<span class="highlight">חסי</span>ד אומות העולם'
135                 },
136                 {
137                         desc: 'Test 022: ja Japanese',
138                         text: '諸国民の中の正義の人',
139                         highlight: '諸国民の中の正義の人',
140                         expected: '<span class="highlight">諸国民の中の正義の人</span>'
141                 },
142                 {
143                         desc: 'Test 023: ja Japanese',
144                         text: '諸国民の中の正義の人',
145                         highlight: '諸国',
146                         expected: '<span class="highlight">諸国</span>民の中の正義の人'
147                 },
148                 {
149                         desc: 'Test 024: fr French text and « french quotes » (guillemets)',
150                         text: "« L'oiseau est sur l’île »",
151                         highlight: "« L'oiseau est sur l’île »",
152                         expected: '<span class="highlight">«</span> <span class="highlight">L\'oiseau</span> <span class="highlight">est</span> <span class="highlight">sur</span> <span class="highlight">l’île</span> <span class="highlight">»</span>'
153                 },
154                 {
155                         desc: 'Test 025: fr French text and « french quotes » (guillemets)',
156                         text: "« L'oiseau est sur l’île »",
157                         highlight: "« L'oise",
158                         expected: '<span class="highlight">«</span> <span class="highlight">L\'oise</span>au est sur l’île »'
159                 },
160                 {
161                         desc: 'Test 025a: fr French text and « french quotes » (guillemets) - does it match the single strings "«" and "L" separately?',
162                         text: "« L'oiseau est sur l’île »",
163                         highlight: "« L",
164                         expected: '<span class="highlight">«</span> <span class="highlight">L</span>\'oiseau est sur <span class="highlight">l</span>’île »'
165                 },
166                 {
167                         desc: 'Test 026: ru Russian',
168                         text: 'Праведники мира',
169                         highlight: 'Праведники мира',
170                         expected: '<span class="highlight">Праведники</span> <span class="highlight">мира</span>'
171                 },
172                 {
173                         desc: 'Test 027: ru Russian',
174                         text: 'Праведники мира',
175                         highlight: 'Праве',
176                         expected: '<span class="highlight">Праве</span>дники мира'
177                 },
178                 {
179                         desc: 'Test 028 ka Georgian',
180                         text: 'მთავარი გვერდი',
181                         highlight: 'მთავარი გვერდი',
182                         expected: '<span class="highlight">მთავარი</span> <span class="highlight">გვერდი</span>'
183                 },
184                 {
185                         desc: 'Test 029 ka Georgian',
186                         text: 'მთავარი გვერდი',
187                         highlight: 'მთა',
188                         expected: '<span class="highlight">მთა</span>ვარი გვერდი'
189                 },
190                 {
191                         desc: 'Test 030 hy Armenian',
192                         text: 'Նոնա Գափրինդաշվիլի',
193                         highlight: 'Նոնա Գափրինդաշվիլի',
194                         expected: '<span class="highlight">Նոնա</span> <span class="highlight">Գափրինդաշվիլի</span>'
195                 },
196                 {
197                         desc: 'Test 031 hy Armenian',
198                         text: 'Նոնա Գափրինդաշվիլի',
199                         highlight: 'Նոն',
200                         expected: '<span class="highlight">Նոն</span>ա Գափրինդաշվիլի'
201                 },
202                 {
203                         desc: 'Test 032: th Thai',
204                         text: 'พอล แอร์ดิช',
205                         highlight: 'พอล แอร์ดิช',
206                         expected: '<span class="highlight">พอล</span> <span class="highlight">แอร์ดิช</span>'
207                 },
208                 {
209                         desc: 'Test 033: th Thai',
210                         text: 'พอล แอร์ดิช',
211                         highlight: 'พอ',
212                         expected: '<span class="highlight">พอ</span>ล แอร์ดิช'
213                 },
214                 {
215                         desc: 'Test 034: RTL ar Arabic',
216                         text: 'بول إيردوس',
217                         highlight: 'بول إيردوس',
218                         expected: '<span class="highlight">بول</span> <span class="highlight">إيردوس</span>'
219                 },
220                 {
221                         desc: 'Test 035: RTL ar Arabic',
222                         text: 'بول إيردوس',
223                         highlight: 'بو',
224                         expected: '<span class="highlight">بو</span>ل إيردوس'
225                 }
226         ];
227         expect(cases.length);
228         var $fixture;
230         $.each(cases, function( i, item ) {
231                 $fixture = $( '<p></p>' ).text( item.text );
232                 $fixture.highlightText( item.highlight );
233                 equals(
234                         $fixture.html(),
235                         $('<p>' + item.expected + '</p>').html(), // re-parse to normalize!
236                         item.desc || undefined
237                         );
238         } );
239 } );