میڈیاویکی:Gadget-Extra-Editbuttons-tests.js

متناسقات: 39°32′52″N 87°22′38″W / 39.54778°N 87.37722°W / 39.54778; -87.37722
آزاد دائرۃ المعارف، ویکیپیڈیا سے

تفصیل کے لیے کھولیں کے بٹن پر کلک کریں یاددہانی: محفوظ کرنے کے بعد تازہ ترین تبدیلیوں کو دیکھنے کے لیے آپ کو اپنے براؤزر کا کیش صاف کرنا ہوگا۔

  • فائرفاکس/ سفاری: جب Reload پر کلک کریں تو Shift دبا کر رکھیں، یا Ctrl-F5 یا Ctrl-R دبائیں (Mac پر R- )
  • گوگل کروم: Ctrl-Shift-R دبائیں (Mac پر Shift-R-⌘)
  • انٹرنیٹ ایکسپلورر: جب Refresh پر کلک کریں تو Ctrl یا Ctrl-F5 دبائیں
  • اوپیرا: Tools → Preferences میں جائیں اور کیش صاف کریں

// <nowiki> // DO NOT REMOVE THIS LINE EVER
/*jslint white: true*/
/*global $, mw, QUnit, persianWikiTools*/
/**
 * [[وپ:تست]]
 * Tests for:
 * * [[مدیاویکی:Gadget-Extra-Editbuttons-persiantools.js]]
 * * [[مدیاویکی:Gadget-Extra-Editbuttons-persianwikitools.js]]
 */
mw.loader.load('/w/resources/lib/qunitjs/qunit.css', 'text/css');
$.when(
	$.ready,
	$.getScript('/w/index.php?title=MediaWiki:Gadget-Extra-Editbuttons-persiantools.js&action=raw&ctype=text/javascript&' + Math.random()),
	$.getScript('/w/index.php?title=MediaWiki:Gadget-Extra-Editbuttons-persianwikitools.js&action=raw&ctype=text/javascript&' + Math.random()),
	$.getScript('/w/index.php?title=MediaWiki:Gadget-Extra-Editbuttons-dictionary.js&&action=raw&ctype=text/javascript&' + Math.random()),
	$.getScript('/w/resources/lib/qunitjs/qunit.js')
).then(function () {
	'use strict';
	mw.util.addCSS('#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar { font-family: inherit; } ' +
		'#qunit-testresult, .counts { font-family: inherit; direction: ltr; } #qunit-userAgent { display: none; } ' +
		'.test-name, .counts { unicode-bidi: -webkit-isolate; unicode-bidi: -moz-isolate; unicode-bidi: isolate; }');
 
	QUnit.stop();
	var equal = QUnit.equal, test = QUnit.test;
	test('persianWikiTools.wikiUrlMinifier', function () {
		var f = persianWikiTools.wikiUrlMinifier;
		equal(
			f('Wikipedia contributors, \"Tunnel diode,\" Wikipedia, The Free Encyclopedia, http://en.wikipedia.org/w/index.php?title=Tunnel_diode&oldid=611771583 (accessed September 7, 2014).'),
			'Wikipedia contributors, \"Tunnel diode,\" Wikipedia, The Free Encyclopedia, http://en.wikipedia.org/w/index.php?title=Tunnel_diode&oldid=611771583 (accessed September 7, 2014).',
			'یادکرد ویکی کپی‌شده از ویکی انگلیسی را تغییری ندهد.'
		);
		equal(
			f('<ref>Travis Fahs (۱۱ March 2009)	http://cube.ign.com/articles/582/582869p1.html</ref>.{{سخ}}'),
			'<ref>Travis Fahs (۱۱ March 2009)	http://cube.ign.com/articles/582/582869p1.html</ref>.{{سخ}}',
			'عدم تغییر آکولاد بعد از نشانی'
		);
		equal(
			f('//fa.wikipedia.org/wiki/%D9%85%DB%8C%D8%B2%20%DA%A9%D9%85%DA%A9'),
			'//fa.wikipedia.org/wiki/میز%20کمک',
			'از کد درآوردن بدون به وجود آوردن فاصله'
		);
	});
 
	test('persianWikiTools.wikiApplyOrthography', function () {
		var f = persianWikiTools.wikiApplyOrthography;
		equal(
			f('[[١٣٩١]] خورشیدی'),
			'[[١٣٩١]] خورشیدی',
			'اعداد را پاک نکند!'
		);
		equal(
			f('<gallery>\nپرونده:2از مجموعه ی حیرانی.jpg|از مجموعه ی حیرانی. رنگ و روغن روی بوم\n</gallery>'),
			'<gallery>\nپرونده:2از مجموعه ی حیرانی.jpg|از مجموعهٔ حیرانی. رنگ و روغن روی بوم\n</gallery>',
			'نام پرونده در داخل برچسب گالری نباید تغییر کند'
		);
		equal(
			f('خانهء خانه ٔ خانه ء خانۀ من'),
			'خانهٔ خانهٔ خانهٔ خانهٔ من',
			'اصلاح نویسهٔ غیر استاندارد: ه و همزه بدون فاصله'
		);
		equal(
			f('خانه\u200cی خانه ی من'),
			'خانهٔ خانهٔ من',
			'اصلاح نویسهٔ غیر استاندارد: ه و ی'
		);
		equal(
			f(':خانه ی\n:خانهء\n:خانه\u200cی '),
			':خانهٔ\n:خانهٔ\n:خانهٔ ',
			'تغییر همزه و خط بعد'
		);
		equal(
			f('حذف واکهٔٔ کوتاه اَِضافی از عیناًً و خانهٔٔ من'),
			'حذف واکهٔ کوتاه اِضافی از عیناً و خانهٔ من',
			'دو واکهٔ کوتاه هیچگاه پشت سرهم نمی‌آیند'
		);
		equal(
			f('عمراً ً به من عمرا ً به تو'),
			'عمراً  به من عمراً  به تو',
			'نباید پیش از واکهٔ کوتاه فاصله بیاید+ حذف واکه‌های تکراری پشت سر هم'
		);
		equal(
			f('منوچهر متَّکی'),
			'منوچهر متَّکی',
			'تشدید واکهٔ کوتاه نیست و آمدنش کنار واکهٔ کوتاه نباید موجب حذفش شود'
		);
	});
 
	test('persianWikiTools.wikiConvertToPersianCharacters', function () {
		var f =	persianWikiTools.wikiConvertToPersianCharacters;
		equal(
			f('دردﻫﻪ ۱۹۵۰، اﻧﻘﻼب ﺗﻜﻨﻮﻟﻮژی ﺑﺎ ﺳﺮﻋﺖ ﺑﺎﻻﻳﻲ رو ﺑﻪ ﺟﻠﻮ ﺣﺮﻛﺖ ﻣﻲﻛﺮد'),
			'دردهه ۱۹۵۰، انقلاب تکنولوژی با سرعت باﻻیی رو به جلو حرکت می\u200cکرد',
			'تبدیل کاراکترهای فرعی (منقطع) به کاراکتر اصلی'
		);
		equal(
			f('{{شروع عربی}}مك عربي مك عربي{{پایان عربی}}'),
			'{{شروع عربی}}مك عربي مك عربي{{پایان عربی}}',
			'تغییر ندادن متن عربی'
		);
		equal(
			f('{{به عربی|ي ك ى}} {{عربی|ي ك ى}}'),
			'{{به عربی|ي ك ى}} {{عربی|ي ك ى}}',
			'عدم تغییر محتویات {{به عربی}}'
		);
		equal(
			f('{{شروع عربی}}\nمك عربي مك عربي\n{{پایان عربی}}'),
			'{{شروع عربی}}\nمك عربي مك عربي\n{{پایان عربی}}',
			'تغییر ندادن متن عربی چند سطری'
		);
		equal(
			f('يييي\nتصویر:ككك.jpg\n[[Image:ككك.png|ي]]'),
			'یییی\nتصویر:ككك.jpg\n[[Image:ككك.png|ی]]',
			'تغییردادن توضیح پرونده و تغییر ندادن نام پرونده'
		);
		equal(
			f('ك ڪ ﻙ ﻚ ي ى ۍ ې ہ ە ھ'),
			'ک ک ک ک ی ی ی ی ه ه\u200c ه',
			'اصلاح کاراکترهای غیرفارسی (ک ی ه) از (عربی، اردو، پشتو، اویغور، کردی) به فارسی مشابه'
		);
	});
 
	test('persianWikiTools.wikiPunctuation', function () {
		var f = persianWikiTools.wikiPunctuation;
		equal(
			f('== «ادعا کرد»، «مدعی شد» =='),
			'== «ادعا کرد»، «مدعی شد» ==',
			'حذف نادرست گیومه از عنوان‌ها.'
		);
		equal(
			f('اندیس "mohsen" و "ali" استفاده'),
			'اندیس "mohsen" و "ali" استفاده',
			'اشتباه در تبدیل گیومه‌ها (یا همه را «» کند یا تغییری ندهد).'
		);
		equal(
			f("در خود فرو می‌روی ابدی،\n:از خود می‌پروازی ابدی،\n:رخشندگی همهٔ ژرفاها،"),
			"در خود فرو می‌روی ابدی،\n:از خود می‌پروازی ابدی،\n:رخشندگی همهٔ ژرفاها،",
			'عدم حذف : اول خط یا بیت شعر'
		);
		equal(
			f("<source lang=\"csharp\">\n*whatever\n</source>"),
			"<source lang=\"csharp\">\n*whatever\n</source>",
			'به داخل تگ سورس کاری نداشته باشد.'
		);
		equal(
			f("<blockquote>«رایانش»</blockquote>"),
			"<blockquote>«رایانش»</blockquote>",
			'بین تگ گفتاورد و گیومه فاصله نگذارد.'
		);
		equal(
			f("کارساز (سرور)ها"),
			"کارساز (سرور)ها",
			'بین پرانتز و «ها» فاصله نگذارد یا اینکه ها را به داخل پرانتز منتقل کند.'
		);
		equal(
			f("==== عنوان<ref group=\"گروه\">Client</ref> ===="),
			"==== عنوان<ref group=\"گروه\">Client</ref> ====",
			'بین مساوی‌های به هم چسبیدهٔ عنوان فاصله‌گذاری نادرست نکند.'
		);
		equal(
			f("'''برون‌یابی، پیش‌بینی و «تاریخ آینده»'''"),
			"'''برون‌یابی، پیش‌بینی و «تاریخ آینده»'''",
			'افزودن فاصله بین گیومه و \' نادرست است.'
		);
		equal(
			f('آمازون.کام'),
			'آمازون.کام',
			'اسم وب‌گاه را تغییر ندهد.'
		);
		equal(
			f('متن.\n:متن'),
			'متن.\n:متن',
			'در خط بعد دو نقطه خرابکاری نکند'
		);
		equal(
			f('متن۱؛\nمتن۲'),
			'متن۱؛\nمتن۲',
			'شکستن یک متن با یک خط ممکن است عمدی — مثلاً برای خوانایی بیهتر در حالت ویرایش یا گرفتن تفاوت بهتر — باشد و شکستگی نباید حذف شود، نرم‌افزار خودش کنار هم می‌آورد.'
		);
		equal(
			f('سلام،\n\nمتن'),
			'سلام،\n\nمتن',
			'آمدن ویرگول در پایان سطر اول یک پیام رایج است.'
		);
		equal(
			f('«است؟!»'),
			'«است؟!»',
			'علامت سؤال می‌تواند پیش یا پس از علامت تعجب بیاید.'
		);
		equal(
			f('=== <small>گرایش مهندسی صنایع</small> ==='),
			'=== <small>گرایش مهندسی صنایع</small> ===',
			'حذف نادرست (ناکامل) تگ از داخل عنوان.'
		);
		equal(
			f('[[پرونده:مثال.jpg|«توضیح»]]'),
			'[[پرونده:مثال.jpg|«توضیح»]]',
			'نیافزودن فاصله قبل از گیومه در بخش توضیحات پرونده'
		);
		equal(
			f('متن\n«برای تست«تست'),
			'متن\n«برای تست «تست',
			'نیافزودن فاصله قبل از گیومه در ابتدای خط'
		);
		equal(
			f('<ref name="آبا" />'),
			'<ref name="آبا" />',
			'عدم تغییر گیومه لاتین درون رفرنس که بعد از الف باشد'
		);
		equal(
			f('تست مثلا" تست است'),
			'تست مثلاً تست است',
			'جایگزینی گیومهٔ لاتین با تنوین در میان متن فارسی'
		);
		/*equal(
			f('او گفت "من می‌روم" ولی نرفت.\nاو گفت "من می‌روم"\nاو گفت "من می‌روم".\nتست'),
			'او گفت «من می‌روم» ولی نرفت.\nاو گفت «من می‌روم»\nاو گفت «من می‌روم».\nتست',
			'جایگزینی گیومهٔ لاتین با تنوین در میان متن فارسی'
		);*/
		equal(
			f('«نیم‌جمله،»'),
			'«نیم‌جمله،»',
			'ویرگول پایان جمله همیشه نباید به بیرون از علامت نقل قول منتقل شود. MOS:LQ'
		);
		equal(
			f('«جمله.»'),
			'«جمله.»',
			'نقطهٔ پایان جمله همیشه نباید به بیرون از علامت نقل قول منتقل شود. MOS:LQ'
		);
		equal(
			f('این یک جمله است.این یک [[جمله.جمله]] است'),
			'این یک جمله است. این یک [[جمله.جمله]] است',
			'تغییر ندادن نقطه درون پیوند ویکی'
		);
		equal(
			f('|سبک(ها)=\nمدیر(ان)'),
			'|سبک(ها)=\nمدیر(ان)',
			'جداکردن علامت جمع داخل پرانتز از کلمهٔ پیش از آن درست نیست (در پارامتر الگوها زیاد دیده می‌شود)'
		);
		equal(
			f('متن.\n\n== منابع ==\n<references/>'),
			'متن.\n\n== منابع ==\n<references/>',
			'تگ references را به خط قبلی‌ نچسباند'
		);
		equal(
			f('متن\n	 s == A<sub>i</sub>\n\n== عنوان بخش =='),
			'متن\n	 s == A<sub>i</sub>\n\n== عنوان بخش ==',
			'فاصلهٔ بین عنوان بخش بعدی و کد قبل از آن را حفظ کند'
		);
		equal(
			f("متن\n\n== برچسب‌زدن حسابهای جایگزین ''مشروع'' ==\nمتن"),
			"متن\n\n== برچسب‌زدن حسابهای جایگزین ''مشروع'' ==\nمتن",
			'تأکیدها از عنوان بخش حذف نشوند'
		);
		equal(
			f('== «دانشنامهٔ آزاد» به معنی «دانشنامهٔ رایگان» نیست =='),
			'== «دانشنامهٔ آزاد» به معنی «دانشنامهٔ رایگان» نیست ==',
			'حذف نادرست یک گیومه'
		);
		equal(
			f('== «متن»  =='),
			'== متن ==',
			'یکی از گیومه‌های داخل عنوان حذف می‌شود اما دیگری نه'
		);
		equal(
			f('و . . . را.'),
			'و . . . را.',
			'برابر با شیوه‌نامه شیکاگو بین نقطه‌های سه‌نقطه باید فاصله باشد'
		);
		equal(
			f('[[رده:رده\u200cها]]'),
			'[[رده:رده\u200cها]]',
			'نیفزودن فاصله بعد از دو نقطه'
		);
		equal(
			f('# تست۱\n# تست۲\n\n# تست۳'),
			'# تست۱\n# تست۲\n# تست۳',
			'حذف خط اضافه میان # ها'
		);
		equal(
			f('قبل\n\n== متن عنوان ==\n\nبعد'),
			'قبل\n\n== متن عنوان ==\n\nبعد',
			'اصلاحات سجاوندی: فاصله بین دستور و متن عنوان'
		);
		equal(
			f('<ref name="تست"/>'),
			'<ref name="تست"/>',
			'عدم تغییر گیومهٔ درون ارجاع'
		);
		equal(
			f('سجاوندی . سجاوندی ، سجاوندی ؛ سجاوندی, سجاوندی , سجاوندی ، سجاوندی'),
			'سجاوندی. سجاوندی، سجاوندی؛ سجاوندی، سجاوندی، سجاوندی، سجاوندی',
			'اصلاحات سجاوندی: نقطه، کاما، نقطه\u200cکاما'
		);
		equal(
			f('متن(فارسی) من - متن( فارسی ) من - متن ( فارسی ) من'),
			'متن (فارسی) من - متن (فارسی) من - متن (فارسی) من',
			'اصلاحات سجاوندی: پرانتز در متن فارسی'
		);
		equal(
			f('قبل\n* متن\n\n* متن\nبعد'),
			'قبل\n* متن\n* متن\nبعد',
			'اصلاحات سجاوندی: حذف فاصله بین فهرست\u200cهای گلوله\u200cای و متن قبلشان'
		);
		equal(
			f('ارجاع\n<ref>منبع</ref>'),
			'ارجاع<ref>منبع</ref>',
			'فاصلهٔ ارجاع و ref حذف شود'
		);
		equal(
			f('تست\n\n\n\n\nتست'),
			'تست\n\nتست',
			'حذف خطوط اضافه'
		);
		equal(
			f('# تغییر مسیر[[فلان]]'),
			'#تغییرمسیر [[فلان]]',
			'اصلاح دستور تغییرمسیر'
		);
		equal(
			f('# تغییر_مسیر[[فلان]]'),
			'#تغییرمسیر [[فلان]]',
			'اصلاح دستور تغییرمسیر'
		);
		equal(
			f('فلان.ایران . ما\n[[رده:چنین]]\n[[رده: چنان]]\n[[الگو: چنان]]\n[[ویکی\u200cپدیا: چنان]]\n[[الگو:چنین]]\n[[ویکی\u200cپدیا:چنین]]'),
			'فلان. ایران. ما\n[[رده:چنین]]\n[[رده:چنان]]\n[[الگو:چنان]]\n[[ویکی\u200cپدیا:چنان]]\n[[الگو:چنین]]\n[[ویکی\u200cپدیا:چنین]]',
			'اصلاحات سجاوندی: فاصله بعد از دونقطه در رده\u200c، الگو، ویکی\u200cپدیا'
		);
		equal(
			f('<!-- === پسوندها نام گذاری == -->'),
			'<!-- === پسوندها نام گذاری == -->',
			'اصلاحات سجاوندی: دست نزدن به دستور &lt;!-- اچ\u200cتی\u200cام\u200cال'
		);
		equal(
			f('\nبرای تست \n\n'),
			'برای تست',
			'حذف کردن \\n و \\r از ابتدا و انتهای متن'
		);
		equal(
			f('[[پرونده: علیآباد.jpg]]'),
			'[[پرونده: علیآباد.jpg]]',
			'اصلاحات سجاوندی عدم حذف فاصله بعد از پرونده'
		);
		equal(
			f('متن <ref>{{یادکرد|فلان=بهمان.|چنین= چنان}}</ref>.'),
			'متن.<ref>{{یادکرد|فلان=بهمان.|چنین= چنان}}</ref>',
			'اصلاحات سجاوندی: نقطه قبل از یادکرد'
		);
		equal(
			f('متن<ref>[یادکرد<sup>۲</sup><!-- عنوان تصحیح شده توسط ربات -->]</ref>، ادامه'),
			'متن،<ref>[یادکرد<sup>۲</sup><!-- عنوان تصحیح شده توسط ربات -->]</ref> ادامه',
			'ویرگول پیش از یادکرد قرار گیرد'
		);
		equal(
			f('<ref>منبع ۱</ref><ref>منبع ۲</ref> متن بیرون <ref>منبع ۳</ref>.'),
			'<ref>منبع ۱</ref><ref>منبع ۲</ref> متن بیرون.<ref>منبع ۳</ref>',
			'نقطه باید به پشت نزدیک‌ترین تگ ref منتقل شود'
		);
		equal(
			f('متن (\u200c'),
			'متن (\u200c',
			'اصلاح نیم\u200cفاصله:قبل و بعد از پرانتز'
		);
		equal(
			f('*   متن\n#    متن'),
			'* متن\n# متن',
			'حذف فاصلهٔ اضافی بعد از * و #'
		);
		equal(
			f('⬤ متن\n⚫ متن\n● متن'),
			'* متن\n* متن\n* متن',
			'تبدیل دایره توپر اول خط به *'
		);
		equal(
			f('قرمـــــــــز'),
			'قرمز',
			'حذف نویسهٔ کشیدگی کلمات'
		);
		equal(
			f('تست و....'),
			'تست و...',
			'تبدیل ۴ نقطه به سه نقطه'
		);
		equal(
			f('متن.؛ متن.! متن.؟ متن.، متن.:'),
			'متن. متن. متن. متن. متن.',
			'بعد از نقطه (؛-:!؟) نمی‌آید'
		);
		equal(
			f('متن۱ (.شروع متن\nمتن۲ (؛شروع متن\nمتن۳ (،شروع متن'),
			'متن۱ (شروع متن\nمتن۲ (شروع متن\nمتن۳ (شروع متن',
			'سجاوندی بعد از پرانتز باز نمی‌آید'
		);
		equal(
			f('متن،) پایان\n متن.) پایان\n متن؛) پایان'),
			'متن) پایان\n متن) پایان\n متن) پایان',
			'سجاوندی قبل از پرانتز بسته نمی‌آید'
		);
		equal(
			f('تست؛،'),
			'تست؛',
			'بعد از نقطه‌ویرگول نباید علامتی باشد'
		);
		equal(
			f('! style="background: #CCC;" class="unsortable" scope="col" width="200px"|جزیره!!style="background: #CCC;" class="unsortable"| مرکز! !style="background: #CCC;"'),
			'! style="background: #CCC;" class="unsortable" scope="col" width="200px"|جزیره!!style="background: #CCC;" class="unsortable"| مرکز! !style="background: #CCC;"',
			'خراب نکردن متن درون جدول‌ها'
		);
		equal(
			f('انتهای پاراگراف؛\n\nشروع خط جدید'),
			'انتهای پاراگراف.\n\nشروع خط جدید',
			'نقطه‌ویرگول انتهای خط نمی‌آید'
		);
		equal(
			f('متن،. متن،؛ متن،- متن،. متن،! متن،؟'),
			'متن، متن، متن، متن، متن، متن،',
			'بعد از ویرگول (.؛-!؟) نمی‌آید'
		);
		equal(
			f('متن. و متن. که متن. بنابراین متن. لذا'),
			'متن؛ و متن؛ که متن؛ بنابراین متن؛ لذا',
			'قبل از حروف ربط فارسی . نمی‌آید'
		);
		equal(//چون !! در کدهای مدیاویکی استفاده می‌شود علامت تعجب را به این موارد نیافزائید
			f('متن،، متن؛؛ متن؟؟؟'),
			'متن، متن؛ متن؟',
			'تکرار سجاوندی یکسان'
		);
		equal(
			f('متن فارسی? متن فارسی; متن فارسی,'),
			'متن فارسی؟ متن فارسی؛ متن فارسی،',
			'استفاده از سجاوندی فارسی'
		);
		/*equal(//مثال نقض برای کاراکتر فارسی و اعداد «نوکیا ان۹۰»
			f('متنtextمتن'),
			'متن text متن',
			'بین کارکترهای فارسی و انگلیسی فاصله باشد (البته در فضای نام مقاله تا با نام کاربری تعارض نداشته باشد)'
		);*/
		equal(
			f('۱-تست؛ تست تست ؛ تست تست ؛تست تست؛تست ۲-تست. تست تست . تست تست .تست تست.تست ۳-تست، تست تست ، تست تست ،تست تست،تست ۴-تست! تست تست ! تست تست!تست ۵-تست؟ تست تست ؟ تست تست ؟تست تست؟تست ۶-تست« تست تست « تست تست «تست تست«تست ۷-تست» تست تست » تست تست »تست تست»تست ۸-تست( تست تست ( تست تست (تست تست(تست ۹-تست) تست تست ) تست تست )تست تست)تست <nowiki><!-- برای تست --></nowiki>'),
			'۱-تست؛ تست تست؛ تست تست؛ تست تست؛ تست ۲-تست. تست تست. تست تست. تست تست. تست ۳-تست، تست تست، تست تست، تست تست، تست ۴-تست! تست تست! تست تست! تست ۵-تست؟ تست تست؟ تست تست؟ تست تست؟ تست ۶-تست «تست تست «تست تست «تست تست «تست ۷-تست» تست تست» تست تست» تست تست» تست ۸-تست (تست تست (تست تست (تست تست (تست ۹-تست) تست تست) تست تست) تست تست) تست <nowiki><!-- برای تست --></nowiki>',
			'اصلاح فاصله قبل و بعد از سجاوندی'
		);
		equal(
			f('تست [www.example.com]'),
			'تست [www.example.com]',
			'حذف نکردن فاصلهٔ قبل از لینک‌های بیرونی'
		);
	});
 
	test('persianWikiTools.wikiTextDigitsToPersian', function () {
		var f = persianWikiTools.wikiTextDigitsToPersian;
		equal(
			f("Wikipedia contributors, \"Tunnel diode,\" Wikipedia, The Free Encyclopedia, http://en.wikipedia.org/w/index.php?title=Tunnel_diode&oldid=611771583 (accessed September 7, 2014)."),
			"Wikipedia contributors, \"Tunnel diode,\" Wikipedia, The Free Encyclopedia, http://en.wikipedia.org/w/index.php?title=Tunnel_diode&oldid=611771583 (accessed September 7, 2014).",
			'یادکرد ویکی کپی‌شده از ویکی انگلیسی را تغییری ندهد'
		);
		equal(
			f("<ref>http://www.example.com</ref><ref>http://example.com/123123/%D9%85%D9%88</ref>"),
			"<ref>http://www.example.com</ref><ref>http://example.com/123123/%D9%85%D9%88</ref>",
			'اشتباه در تبدیل ارفام'
		);
		equal(
			f(" نرم‌افزار 2to3 حل"),
			" نرم‌افزار 2to3 حل",
			'عبارت‌های انگلیسی که از هردو طرف با رقم پایان می‌یابند را فارسی نکند'
		);
		equal(
			f("*[[دنیس اسپیلبرگ|Spellberg, D.A.]] (1994), ''Politics, Gender, and the Islamic Past: the Legacy of A'isha bint Abi Bakr''"),
			"*[[دنیس اسپیلبرگ|Spellberg, D.A.]] (1994), ''Politics, Gender, and the Islamic Past: the Legacy of A'isha bint Abi Bakr''",
			'عدد سال داخل پرانتز فارسی نشود'
		);
		equal(
			f("فرمول g(x) = x^2 + 2x + 2 است"),
			"فرمول g(x) = x^2 + 2x + 2 است",
			'در این فرمول ریاضی، یا باید همهٔ ارقام فارسی شوند یا همه انگلیسی بمانند'
		);
		equal(
			f("'''while''' (i> 0 '''and''' j> 0)"),
			"'''while''' (i> 0 '''and''' j> 0)",
			'پرهیز از فارسی‌سازی ارقام لابه‌لای دستورهای برنامه‌نویسی'
		);
		equal(
			f('ISBN 0-89791-193-8 1986'),
			'ISBN 0-89791-193-8 1986',
			'پرهیز از فارسی‌سازی ارقام انتهایی در منابع انگلیسی'
		);
		equal(
			f('<font color="99000000"">Text</font>'),
			'<font color="99000000"">Text</font>',
			'پرهیز از فارسی‌سازی رنگ در تگ فونت'
		);
		equal(
			f('دارای "&#61;" است'),
			'دارای "&#61;" است',
			'پرهیز از فارسی‌سازی ارقام هستارهای اچ‌تی‌ام‌ال'
		);
		equal(
			f('D. G. (2000). Community'),
			'D. G. (2000). Community',
			'اگر عدد لابه‌لای متن انگلیسی است، آن را فارسی نکند. (از نمونه‌های دیده‌شده در بخش منابع مقالات)'
		);
		equal(
			f('* {{یادکرد ژورنال|نشانی=http://icb.oxfordjournals.org|doi=10.1093/icb/41.2.154}}'),
			'* {{یادکرد ژورنال|نشانی=http://icb.oxfordjournals.org|doi=10.1093/icb/41.2.154}}',
			'ارقام doi را فارسی نکند.'
		);
		equal(
			f('1928 Winter Olympics'),
			'1928 Winter Olympics',
			'عدد پیش از نوشته‌های انگلیسی را فارسی نکند (برای نمونه در {{ویکی‌انبار-رده|1928 Winter Olympics}} یا «|عنوان = 13714 Stainbrook»)'
		);
		equal(
			f('F\n0/24'),
			'F\n۰/۲۴',
			'ارقامِ خط بعد استثنا نشوند'
		);
		equal(
			f('<font color="#0000FF">'),
			'<font color="#0000FF">',
			'ارقامِ رنگ در تگ‌های فونت را فارسی نکند'
		);
		equal(
			f('شرکت 3DO بود'),
			'شرکت 3DO بود',
			'ارقام چسبیده و قبل از حروف انگلیسی فارسی نشوند'
		);
		equal(
			f('[[:en:Wikipedia:Arbitration Committee Elections December 2012#Election process|پیوند]]'),
			'[[:en:Wikipedia:Arbitration Committee Elections December 2012#Election process|پیوند]]',
			'اعداد داخل پیوندها به ویکی انگلیسی فارسی نشوند'
		);
		equal(
			f('<h3>متن فارسی<h3>'),
			'<h3>متن فارسی<h3>',
			'شمارهٔ تگ‌های هدر را فارسی نکند'
		);
		equal(
			f('۹ سپتامبر ۲۰۰۸ || [[Jimmy]]{{سخ}}[[Italia 1]]'),
			'۹ سپتامبر ۲۰۰۸ || [[Jimmy]]{{سخ}}[[Italia 1]]',
			'در پیوندهای انگلیسی، اعداد فارسی نشوند'
		);
		equal(
			f('Research, 10:1, 7 – 14. Online'),
			'Research, 10:1, 7 – 14. Online',
			'اعداد لابه‌لای متن انگلیسی، فارسی نشوند'
		);
		equal(
			f('<ref>xyz (accessed July 3, 2013)</ref>'),
			'<ref>xyz (accessed July 3, 2013)</ref>',
			'ارقام تاریخ را فارسی نکند'
		);
		equal(
			f('[[ویژه:مشارکت‌ها/31.59.154.139|31.59.154.139]]'),
			'[[ویژه:مشارکت‌ها/31.59.154.139|31.59.154.139]]',
			'اعداد در امضای آی‌پی‌ها و پیوند مشارکت‌هایشان فارسی نشود'
		);
		equal(
			f(' its components in [[3D modeling|3D]], annotate the'),
			' its components in [[3D modeling|3D]], annotate the',
			'اعداد در متن انگلیسی تغییری نکند'
		);
		equal(
			f('{{temp|par2=پارامتر2}}'),
			'{{temp|par2=پارامتر۲}}',
			'اعداد در مقدار پارامتر فارسی شوند، اما در نام پارامتر تغییری نکنند'
		);
		equal(
			f('Hassan (1994)'),
			'Hassan (1994)',
			'تبدیل نکردن ارقام داخل پرانتز در متون انگلیسی'
		);
		equal(
			f(
				'{{coord|39|32|52|N|87|22|38|W|type:airport_region:US-IN_scale:10000_source:enwiki|display=title}}'
			),
			'{{coord|39|32|52|N|87|22|38|W|type:airport_region:US-IN_scale:10000_source:enwiki|display=title}}',
			'عدم تغییر اعداد الگوی مختصات'
		);
		equal(
			f('there are 100,000 samples'),
			'there are 100,000 samples',
			'عدم تغییر عدد لاتین درون متن لاتین'
		);
		equal(
			f('<source lang="rsplus">delay=100</source>'),
			'<source lang="rsplus">delay=100</source>',
			'تغییرندادن ارقام لاتین درون سورس'
		);
		equal(
			f('متن 1370 متن'),
			'متن ۱۳۷۰ متن',
			'تغییر عدد لاتین درون متن فارسی'
		);
		equal(
			f('[[تصویر:test.jpg|Left|120px|عکسی میلادی]]'),
			'[[تصویر:test.jpg|Left|120px|عکسی میلادی]]',
			'انگلیسی نگاه داشتن عددهای اندازه تصویر'
		);
		equal(
			f('[[تصویر:test.jpg|Left|120px|عکسی از 1980 میلادی]]'),
			'[[تصویر:test.jpg|Left|120px|عکسی از ۱۹۸۰ میلادی]]',
			'فارسی\u200cسازی اعداد توضیحات تصویر'
		);
		equal(
			f('[[file:12 test 123 .jpg|Left|120px|عکسی]]'),
			'[[file:12 test 123 .jpg|Left|120px|عکسی]]',
			'عدم تغییر فاصله\u200cها و اعداد درون نام تصویر'
		);
		equal(
			f('[[تصویر:عکس 2 من.jpg|Left|120px|توضیحات]]'),
			'[[تصویر:عکس 2 من.jpg|Left|120px|توضیحات]]',
			'انگلیسی نگاه داشتن عددهای اسم پرونده'
		);
		equal(
			f('{{Infobox settlement|pop_est_as_of=2008}}'),
			'{{Infobox settlement|pop_est_as_of=۲۰۰۸}}',
			'فارسی\u200cسازی اعداد درون جعبه'
		);
		equal(
			f('\n[[1234 تست]]\n'),
			'\n[[۱۲۳۴ تست]]\n',
			'فارسی\u200cسازی اعداد درون پیوند'
		);
		equal(
			f('نسخهٔ کنونی 2.1.20 است.'),
			'نسخهٔ کنونی ۲٫۱٫۲۰ است.',
			'تبدیل ممیز انگلیسی به ممیز فارسی'
		);
		equal(
			f('Publish by xy, 2012. ISBN 1234567.'),
			'Publish by xy, 2012. ISBN 1234567.',
			'تبدیل نکردن پس از متن انگلیسی'
		);
		equal(
			f('—<b>[[کاربر:Reza1615|<span style="color:#C12267">رضا ۱۶۱۵</span>]][[بحث کاربر:Reza1615|<span style="color:#C12267"> / ب</span>]]</b> ‏۱۳ فوریهٔ ۲۰۱۳، ساعت ۱۰:۳۴ (UTC)'),
			'—<b>[[کاربر:Reza1615|<span style="color:#C12267">رضا ۱۶۱۵</span>]][[بحث کاربر:Reza1615|<span style="color:#C12267"> / ب</span>]]</b> ‏۱۳ فوریهٔ ۲۰۱۳، ساعت ۱۰:۳۴ (UTC)',
			'عدم تغییر امضای کاربرها'
		);
		equal(
			f('<math dir="ltr">F(Q_1)= \\int_{0}</math><math>F(Q_1)= \\int_{0}</math>'),
			'<math dir="ltr">F(Q_1)= \\int_{0}</math><math>F(Q_1)= \\int_{0}</math>',
			'تبدیل نکردن ارقام در عبارت\u200cهای ریاضی'
		);
	});
 
	test('persianWikiTools.wikiApplyZwnj', function () {
		var f = persianWikiTools.wikiApplyZwnj;
		equal(
			f('[[پرونده:از مجموعه طرح های شبانه.JPG|بندانگشتی|از مجموعه طرح‌های شبانه]]'),
			'[[پرونده:از مجموعه طرح های شبانه.JPG|بندانگشتی|از مجموعه طرح‌های شبانه]]',
			'نام پرونده‌ها را تغییر ندهد.'
		);
		equal(
			f('جهت‌گذاری‌های عبارت ‎(۱+۲)×۵=۱۵‬ را نباید حذف کرد'),
			'جهت‌گذاری‌های عبارت ‎(۱+۲)×۵=۱۵‬ را نباید حذف کرد',
			'حذف LRE و PDF همیشه هم درست نیست'
		);
		equal(
			f('جهت‌گذاری‌های عبارت ‭(۱+۲)×۵=۱۵‬ را نباید حذف کرد'),
			'جهت‌گذاری‌های عبارت ‭(۱+۲)×۵=۱۵‬ را نباید حذف کرد',
			'حذف LRO و PDF همیشه هم درست نیست'
		);
		equal(
			f('در صفحهٔ x‏، y ذکر شده است'),
			'در صفحهٔ x‏، y ذکر شده است',
			'حذف RLM همیشه هم درست نیست'
		);
		equal(
			f('شبکه ای\u200cب'),
			'شبکه ای\u200cب',
			'تبدیل نکردن اضافه ه+ای\u200c به فاصلهٔ مجازی'
		);
		equal(
			f('با تمامی توان سعی می‌کردند'),
			'با تمامی توان سعی می‌کردند',
			'اصلاحات سجاوندی: عدم تغییر تمامی توان'
		);
		equal(
			f('می شدم - می روند - می گوید - خانه های من'),
			'می\u200cشدم - می\u200cروند - می\u200cگوید - خانه\u200cهای من',
			'اصلاحات سجاوندی: فاصلهٔ مجازی'
		);
		equal(
			f('د\u200cر بین د و ر نباید فاصله مجازی بدارد'),
			'در بین د و ر نباید فاصله مجازی بدارد',
			'اصلاحات سجاوندی: حذف فاصلهٔ مجازی غیر ضروری'
		);
		equal(
			f('[[ذوزنقه]]\u200cای'),
			'[[ذوزنقه]]\u200cای',
			'حذف نکردن نیم\u200cفاصله پس از براکت'
		);
		equal(
			f('سلطنت می‌کرده‏اند و این‏ پادشاهی'),
			'سلطنت می‌کرده‌اند و این پادشاهی',
			'حذف کاراکترهای LRM، RLM'
		);
	});
 
	test('persianWikiTools.wikiDictation', function () {
		var f = persianWikiTools.wikiDictation;
		equal(
			f('ساز و کار'),
			'سازوکار',
			'«ساز و کار» را به سازکار تبدیل نکند.'
		);
		equal(
			f('ایالت میسیسیپی'),
			'ایالت میسیسیپی',
			'میسیسیپی نام ایالت است. نیم‌فاصله‌گذاری نکند.'
		);
		equal(
			f('بهمن ۱۳۹۱'),
			'بهمن ۱۳۹۱',
			'ابزار املا: عدم تغییر اشتباه متن'
		);
		equal(
			f('[[file:علی آباد.jpg|100px|thumb]]'),
			'[[file:علی آباد.jpg|100px|thumb]]',
			'ابزار املا: عدم تغییر نام پرونده\u200cها'
		);
		equal(
			f('علی زاده علی آباد ابرو کمان صد گانه'),
			'علی\u200cزاده علی\u200cآباد ابروکمان صدگانه',
			'ابزار املا: فعال بودن'
		);
		equal(
			f('[[file:علی آباد 123 .jpg]]'),
			'[[file:علی آباد 123 .jpg]]',
			'عدم تغییر نام پرونده بدون توضیح'
		);
	});
	QUnit.start();
});