Skip to content

Commit e5188ef

Browse files
authored
Merge pull request EvilBeaver#1604 from asosnoviy/fix/strreplase
EvilBeaver#1603 strReplace
2 parents a0efa72 + 6c323fa commit e5188ef

File tree

2 files changed

+31
-4
lines changed

2 files changed

+31
-4
lines changed

src/OneScript.Native/Runtime/BuiltInFunctions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*----------------------------------------------------------
1+
/*----------------------------------------------------------
22
This Source Code Form is subject to the terms of the
33
Mozilla Public License, v.2.0. If a copy of the MPL
44
was not distributed with this file, You can obtain one
@@ -178,7 +178,7 @@ public static int ChrCode(string strChar, int? position = null)
178178
[MethodImpl(MethodImplOptions.AggressiveInlining)]
179179
[ContextMethod("СтрЗаменить", "StrReplace")]
180180
public static string StrReplace(string sourceString, string searchVal, string newVal) =>
181-
sourceString.Replace(searchVal, newVal);
181+
!string.IsNullOrEmpty(searchVal) ? sourceString.Replace(searchVal, newVal):sourceString;
182182

183183
[ContextMethod("СтрПолучитьСтроку", "StrGetLine")]
184184
public static string StrGetLine(string strArg, int lineNumber)

tests/global-funcs.os

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
///////////////////////////////////////////////////////////////////////
1+
///////////////////////////////////////////////////////////////////////
22
//
33
// Тест проверки поведения некоторых глобальных функций
44
//
@@ -102,6 +102,8 @@
102102
ВсеТесты.Добавить("Тест_ДолженПроверитьНСтрВозвращаетПервуюСтроку");
103103
ВсеТесты.Добавить("Тест_ДолженПроверитьПолучениеТекущейДатыВМиллисекундах");
104104
ВсеТесты.Добавить("Тест_ДолженПроверитьОкруглениеТекущейДатыДоСекунд");
105+
106+
ВсеТесты.Добавить("Тест_ДолженПроверитьСтрЗаменить");
105107
Возврат ВсеТесты;
106108
КонецФункции
107109

@@ -1185,4 +1187,29 @@
11851187
ДатаИсходная = ТекущаяДата();
11861188
ДатаСозданнаяВручную = Дата(Формат(ДатаИсходная, "ДФ=ггггММддЧЧммсс"));
11871189
юТест.ПроверитьРавенство(ДатаИсходная, ДатаСозданнаяВручную);
1188-
КонецПроцедуры
1190+
КонецПроцедуры
1191+
1192+
Процедура Тест_ДолженПроверитьСтрЗаменить() Экспорт
1193+
1194+
Тест = СтрЗаменить("123", "1", "4");
1195+
юТест.ПроверитьРавенство("423", Тест);
1196+
1197+
Тест = СтрЗаменить("", "1", "4");
1198+
юТест.ПроверитьРавенство("", Тест);
1199+
1200+
Тест = СтрЗаменить("123", "", "4");
1201+
юТест.ПроверитьРавенство("123", Тест);
1202+
1203+
Тест = СтрЗаменить("123", "1", "");
1204+
юТест.ПроверитьРавенство("23", Тест);
1205+
1206+
Тест = СтрЗаменить("123", "", "");
1207+
юТест.ПроверитьРавенство("123", Тест);
1208+
1209+
Тест = СтрЗаменить("", "", "123");
1210+
юТест.ПроверитьРавенство("", Тест);
1211+
1212+
Тест = СтрЗаменить("", "", "");
1213+
юТест.ПроверитьРавенство("", Тест);
1214+
1215+
КонецПроцедуры

0 commit comments

Comments
 (0)