From b6533562df5f6940fad2c101a5b45d0f3e5d0366 Mon Sep 17 00:00:00 2001 From: Dmitry Sorokin Date: Tue, 14 Jan 2020 21:45:18 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=BE=D1=81=D1=81=D1=82=D0=B0=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B8=D1=81=D1=85?= =?UTF-8?q?=D0=BE=D0=B4=D0=BD=D0=BE=D0=B3=D0=BE=20=D1=82=D0=B5=D0=BA=D1=81?= =?UTF-8?q?=D1=82=D0=B0,=20=D1=81=D0=BE=D0=B4=D0=B5=D1=80=D0=B6=D0=B0?= =?UTF-8?q?=D1=89=D0=B5=D0=B3=D0=BE=20=D0=B4=D0=B2=D0=BE=D0=B9=D0=BD=D1=8B?= =?UTF-8?q?=D0=B5=20=D0=BA=D0=B0=D0=B2=D1=8B=D1=87=D0=BA=D0=B8,=20=D0=BF?= =?UTF-8?q?=D0=BE=D1=81=D0=BB=D0=B5=20=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=80=D0=B5=D0=B3=D1=83=D0=BB=D1=8F?= =?UTF-8?q?=D1=80=D0=BD=D1=8B=D1=85=20=D0=B2=D1=8B=D1=80=D0=B0=D0=B6=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B9.=20=D0=A2=D0=B5=D1=81=D1=82=20=D0=BD=D0=B0?= =?UTF-8?q?=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D1=83=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=80=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BA=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8=20=D1=85?= =?UTF-8?q?=D1=80=D0=B0=D0=BD=D0=B8=D0=BB=D0=B8=D1=89=D0=B0,=20=D1=81?= =?UTF-8?q?=D0=BE=D0=B4=D0=B5=D1=80=D0=B6=D0=B0=D1=89=D0=B5=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=B4=D0=B2=D0=BE=D0=B9=D0=BD=D1=8B=D0=B5=20=D0=B8=20=D0=BE?= =?UTF-8?q?=D0=B4=D0=B8=D0=BD=D0=B0=D1=80=D0=BD=D1=8B=D0=B5=20=D0=BA=D0=B0?= =?UTF-8?q?=D0=B2=D1=8B=D1=87=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\320\270\320\273\320\270\321\211\320\260.os" | 6 ++++-- tests/fixtures/report.quoted.mxl.txt | Bin 0 -> 4031 bytes ...270\320\273\320\270\321\211\320\260_test.os" | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 tests/fixtures/report.quoted.mxl.txt diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/internal/ripper/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\321\200\321\201\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/internal/ripper/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\321\200\321\201\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" index d195533..2f6a20a 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/internal/ripper/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\321\200\321\201\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/internal/ripper/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\321\200\321\201\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260.os" @@ -23,7 +23,8 @@ Функция ПрочитатьТекстСкобкоФайлаРегулярками(Знач Текст) - Текст = СтрЗаменить(Текст, """""", "'"); + СпецСимвол = Символ(0); + Текст = СтрЗаменить(Текст, """""", СпецСимвол); РегВыражение = Новый РегулярноеВыражение("[\{]""#"",""([^""]+)[""][\}]"); МассивСовпадений = РегВыражение.НайтиСовпадения(Текст); @@ -31,7 +32,8 @@ Массив = Новый Массив(); Для каждого Совпадение Из МассивСовпадений Цикл - Массив.Добавить(Совпадение.Группы[1].Значение); + Значение = СтрЗаменить(Совпадение.Группы[1].Значение, СпецСимвол, """"""); + Массив.Добавить(Значение); КонецЦикла; ТаблицаВерсий = СформироватьТаблицуВерсий(Массив); diff --git a/tests/fixtures/report.quoted.mxl.txt b/tests/fixtures/report.quoted.mxl.txt new file mode 100644 index 0000000000000000000000000000000000000000..c612b9a8a47324aa8122d6f335d877c60c1e57a4 GIT binary patch literal 4031 zcmcIn%WfP+6g4}rJ5`r&}f=K z6X|Z%t1ki(V1~7YX)-Z1$W=6rx4+~E@NJeK7=QIK?)UP2cskMNPX0~4XB^jO=z6S= zx(+`24~*K+58Uy_I{mRXfguSi0l{Cg@=PD)2l~j-i^3d`YO@WyusKggo4(u({J<~A zl9lipOHV;~rqA=qO>G5!H&ER;C@rPTCb6~L2tJ%X`iX8|kE6BTb8ZuQX2XU*}YjSge=@ z7)-57CM#IKBDrdbwJN!#@+YD^%p@Q;fODzXs&<{1FHKTink}a#=;r7bz(WOU~Spq^q285o?HTq5nc6j-grN ze%R(L%?hp;0`j&+D4&#sBrSVu))$#&L^Xw}U1DHM=%)S+zU?DdrxdyhieUajMUoU& zdDku_HWd1oVb8Ry?Ld2v-Oa zwJ%5Ma5U_DDpUh6QiD5QnkwH@Y1;SWEK>tHVD%fEWGrGh1^_sj|RK0vCGCi=4gJ4NHzk@&EgrK2J2v7HqbIbV5_Cf zfNg!&yZ>pytqF&C6CQ$PKg-E&J-Byobid`LVju))WuT9Cw!iA_jv5YPbrB;}xRrrE z9(~c<>Fqw)X+i}Ig(R*Fb$fgFZj+HuD650eITCLiNIx&6L~y-yKg3H2XpEs9^jA$j zhgMDV(ozmKJ9+ik?8ar=p3m73NS1#qI?Q??P0*L+M}Y^L3|N){PA1e6(q8TR4&-lz z5yT3iG2JSGR0+xqRx%DDFWMPH?g@dzmWm+}w#~8!VoNQMjHwEkZ<3-)fJ0bxSab}= z1Y?QsEj8R{W(MI&UzI}`iIq>=84fn~^~o2?FTt(VFoL3YwtIK^&5^PO3T79~3U1Nr zvrxW^SvRm1Rsj_C5@=&@#GsWHR5U1QBs!Ue*wrs#Et*} literal 0 HcmV?d00001 diff --git "a/tests/\320\237\320\260\321\200\321\201\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260_test.os" "b/tests/\320\237\320\260\321\200\321\201\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260_test.os" index d648d2c..d5dc092 100644 --- "a/tests/\320\237\320\260\321\200\321\201\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260_test.os" +++ "b/tests/\320\237\320\260\321\200\321\201\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\260_test.os" @@ -12,11 +12,27 @@ ИменаТестов = Новый Массив; ИменаТестов.Добавить("ТестДолжен_ПроверитьЧтениеОтчетаХранилища"); + ИменаТестов.Добавить("ТестДолжен_ПроверитьЧтениеОтчетаХранилищаКавычкиВКомментарии"); Возврат ИменаТестов; КонецФункции +Процедура ТестДолжен_ПроверитьЧтениеОтчетаХранилищаКавычкиВКомментарии() Экспорт + + ПутьКФайлуОтчета = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "report.quoted.mxl.txt"); + ПарсерОтчетаХранилища = Новый ПарсерОтчетаХранилища; + ТаблицаВерсийХранилища = ПарсерОтчетаХранилища.ПрочитатьФайлОтчетаХранилища(ПутьКФайлуОтчета); + Ожидаем.Что(ТаблицаВерсийХранилища.Количество(), "Количество версий должно быть равны").Равно(2); + Ожидаем.Что(ТаблицаВерсийХранилища[1].Комментарий).Равно( + "Многострочный комментарий к версии хранилища, содержащий: + |* ""двойные кавычки"" + |* 'одинарные кавычки' + |* несколько кавычек подряд: """""" и '''"); + + +КонецПроцедуры // ТестДолжен_ПроверитьЧтениеОтчетаХранилищаКавычкиВКомментарии() + Процедура ТестДолжен_ПроверитьЧтениеОтчетаХранилища() Экспорт ПутьКФайлуОтчета = ОбъединитьПути(ТекущийСценарий().Каталог, "fixtures", "report.mxl.txt");