diff --git a/features/ВыполнениеПрекоммита.feature b/features/ВыполнениеПрекоммита.feature index e04c41c..70da7b6 100644 --- a/features/ВыполнениеПрекоммита.feature +++ b/features/ВыполнениеПрекоммита.feature @@ -146,4 +146,70 @@ """ И я фиксирую изменения в репозитории "РабочийКаталог" с комментарием "demo коммит" Тогда Файл "\src\Документ.mdo" в рабочем каталоге содержит "fullTextSearch>Use<" - И Файл "\src\Документ.xml" в рабочем каталоге не содержит "FullTextSearch>Use<" \ No newline at end of file + И Файл "\src\Документ.xml" в рабочем каталоге не содержит "FullTextSearch>Use<" + +Сценарий: Прекоммит, анализируя исходники исправляет неканоничкое написание ключевых слов на каноническое + Когда Я копирую файл "tests\fixtures\ИсправлениеНеКаноническогоНаписания.bsl" в каталог репозитория "РабочийКаталог" + И я выполняю команду "git" с параметрами "add --all" + И я выполняю команду "git" с параметрами "commit -m addFile" + Тогда Вывод команды "git" содержит """ + ИНФОРМАЦИЯ - В строке 5 найдено ключевое слово '#область' заменено на '#Область' + ИНФОРМАЦИЯ - В строке 7 найдено ключевое слово 'ПЕРЕМ' заменено на 'Перем' + ИНФОРМАЦИЯ - В строке 8 найдено ключевое слово 'перем' заменено на 'Перем' + ИНФОРМАЦИЯ - В строке 14 найдено ключевое слово '#КонецОБласти' заменено на '#КонецОбласти' + ИНФОРМАЦИЯ - В строке 16 найдено ключевое слово '&НаКлиентенаСервере' заменено на '&НаКлиентеНаСервере' + ИНФОРМАЦИЯ - В строке 17 найдено ключевое слово 'ПРоцедура' заменено на 'Процедура' + ИНФОРМАЦИЯ - В строке 18 найдено ключевое слово 'конецпроцедуры' заменено на 'КонецПроцедуры' + ИНФОРМАЦИЯ - В строке 20 найдено ключевое слово '&Насервере' заменено на '&НаСервере' + ИНФОРМАЦИЯ - В строке 21 найдено ключевое слово 'процедура' заменено на 'Процедура' + ИНФОРМАЦИЯ - В строке 24 найдено ключевое слово '&Наклиенте' заменено на '&НаКлиенте' + ИНФОРМАЦИЯ - В строке 25 найдено ключевое слово 'функция' заменено на 'Функция' + ИНФОРМАЦИЯ - В строке 26 найдено ключевое слово '#если' заменено на '#Если' + ИНФОРМАЦИЯ - В строке 26 найдено ключевое слово '#тогда' заменено на '#Тогда' + ИНФОРМАЦИЯ - В строке 26 найдено ключевое слово 'КлиенТ' заменено на 'Клиент' + ИНФОРМАЦИЯ - В строке 26 найдено ключевое слово 'сервер' заменено на 'Сервер' + ИНФОРМАЦИЯ - В строке 27 найдено ключевое слово 'перейти' заменено на 'Перейти' + ИНФОРМАЦИЯ - В строке 28 найдено ключевое слово '#Конецесли' заменено на '#КонецЕсли' + ИНФОРМАЦИЯ - В строке 30 найдено ключевое слово 'если' заменено на 'Если' + ИНФОРМАЦИЯ - В строке 30 найдено ключевое слово 'тогда' заменено на 'Тогда' + ИНФОРМАЦИЯ - В строке 30 найдено ключевое слово 'иначе' заменено на 'Иначе' + ИНФОРМАЦИЯ - В строке 30 найдено ключевое слово 'конецесли' заменено на 'КонецЕсли' + ИНФОРМАЦИЯ - В строке 30 найдено ключевое слово 'возврат' заменено на 'Возврат' + ИНФОРМАЦИЯ - В строке 30 найдено ключевое слово 'и' заменено на 'И' + ИНФОРМАЦИЯ - В строке 30 найдено ключевое слово 'не' заменено на 'НЕ' + ИНФОРМАЦИЯ - В строке 30 найдено ключевое слово 'истина' заменено на 'Истина' + ИНФОРМАЦИЯ - В строке 30 найдено ключевое слово 'ложь' заменено на 'Ложь' + ИНФОРМАЦИЯ - В строке 30 найдено ключевое слово 'НеОпределено' заменено на 'Неопределено' + ИНФОРМАЦИЯ - В строке 30 найдено ключевое слово 'null' заменено на 'NULL' + ИНФОРМАЦИЯ - В строке 32 найдено ключевое слово 'цикл' заменено на 'Цикл' + ИНФОРМАЦИЯ - В строке 32 найдено ключевое слово 'пока' заменено на 'Пока' + ИНФОРМАЦИЯ - В строке 33 найдено ключевое слово 'прервать' заменено на 'Прервать' + ИНФОРМАЦИЯ - В строке 34 найдено ключевое слово 'конеццикла' заменено на 'КонецЦикла' + ИНФОРМАЦИЯ - В строке 38 найдено ключевое слово 'иначеЕсли' заменено на 'ИначеЕсли' + ИНФОРМАЦИЯ - В строке 39 найдено ключевое слово 'попытка' заменено на 'Попытка' + ИНФОРМАЦИЯ - В строке 40 найдено ключевое слово 'новый' заменено на 'Новый' + ИНФОРМАЦИЯ - В строке 41 найдено ключевое слово 'исключение' заменено на 'Исключение' + ИНФОРМАЦИЯ - В строке 42 найдено ключевое слово 'вызватьИсключение' заменено на 'ВызватьИсключение' + ИНФОРМАЦИЯ - В строке 43 найдено ключевое слово 'конецпопытки' заменено на 'КонецПопытки' + ИНФОРМАЦИЯ - В строке 47 найдено ключевое слово 'ТолстыйКлиентОбычноеприложение' заменено на 'ТолстыйКлиентОбычноеПриложение' + ИНФОРМАЦИЯ - В строке 47 найдено ключевое слово 'толстыйКлиентУправляемоеПриложение' заменено на 'ТолстыйКлиентУправляемоеПриложение' + ИНФОРМАЦИЯ - В строке 47 найдено ключевое слово 'Тонкийклиент' заменено на 'ТонкийКлиент' + ИНФОРМАЦИЯ - В строке 47 найдено ключевое слово 'вебклиент' заменено на 'ВебКлиент' + ИНФОРМАЦИЯ - В строке 47 найдено ключевое слово 'и' заменено на 'И' + ИНФОРМАЦИЯ - В строке 47 найдено ключевое слово 'не' заменено на 'НЕ' + ИНФОРМАЦИЯ - В строке 51 найдено ключевое слово 'для' заменено на 'Для' + ИНФОРМАЦИЯ - В строке 51 найдено ключевое слово 'каждого' заменено на 'Каждого' + ИНФОРМАЦИЯ - В строке 51 найдено ключевое слово 'из' заменено на 'Из' + ИНФОРМАЦИЯ - В строке 52 найдено ключевое слово 'выполнить' заменено на 'Выполнить' + ИНФОРМАЦИЯ - В строке 55 найдено ключевое слово 'по' заменено на 'По' + ИНФОРМАЦИЯ - В строке 58 найдено ключевое слово 'добавитьОбработчик' заменено на 'ДобавитьОбработчик' + ИНФОРМАЦИЯ - В строке 58 найдено ключевое слово 'Удалитьобработчик' заменено на 'УдалитьОбработчик' + ИНФОРМАЦИЯ - В строке 59 найдено ключевое слово 'истина' заменено на 'Истина' + ИНФОРМАЦИЯ - В строке 59 найдено ключевое слово 'истина' заменено на 'Истина' + ИНФОРМАЦИЯ - В строке 59 найдено ключевое слово 'истина' заменено на 'Истина' + ИНФОРМАЦИЯ - В строке 59 найдено ключевое слово 'ложь' заменено на 'Ложь' + ИНФОРМАЦИЯ - В строке 60 найдено ключевое слово 'конецфункции' заменено на 'КонецФункции' + ИНФОРМАЦИЯ - В строке 62 найдено ключевое слово '&НасерверебезКонтекста' заменено на '&НаСервереБезКонтекста' + ИНФОРМАЦИЯ - В строке 68 найдено ключевое слово '&наКлиентеНаСервереБезКонтекста' заменено на '&НаКлиентеНаСервереБезКонтекста' + ИНФОРМАЦИЯ - В строке 72 найдено ключевое слово '&наКлиентенаСервере' заменено на '&НаКлиентеНаСервере' + """ \ No newline at end of file diff --git a/src/СценарииОбработки/ИсправлениеНеКаноническогоНаписания.os b/src/СценарииОбработки/ИсправлениеНеКаноническогоНаписания.os index 423a945..558edca 100644 --- a/src/СценарииОбработки/ИсправлениеНеКаноническогоНаписания.os +++ b/src/СценарииОбработки/ИсправлениеНеКаноническогоНаписания.os @@ -4,6 +4,7 @@ // <ИсправлениеНеКаноническогоНаписания> // /////////////////////////////////////////////////////////////////////////////// +Перем Лог; // ИмяСценария // Возвращает имя сценария обработки файлов @@ -14,7 +15,7 @@ Функция ИмяСценария() Экспорт Возврат "ИсправлениеНеКаноническогоНаписания"; - + КонецФункции // ИмяСценария() // ОбработатьФайл @@ -41,23 +42,23 @@ Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария()); Если ИсправитьНаКаноническоеНаписание(АнализируемыйФайл.ПолноеИмя) Тогда - + ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(АнализируемыйФайл.ПолноеИмя); - + КонецЕсли; - + Возврат Истина; КонецЕсли; - Возврат ЛОЖЬ; - + Возврат Ложь; + КонецФункции // ОбработатьФайл() Функция ИсправитьНаКаноническоеНаписание(Знач ИмяФайла) - + СодержимоеФайла = ФайловыеОперации.ПрочитатьТекстФайла(ИмяФайла); - + Если Не ЗначениеЗаполнено(СодержимоеФайла) Тогда Возврат Ложь; @@ -75,18 +76,21 @@ ТекстРазбора.УстановитьТекст(РазбираемоеСодержимоеФайла); ВсегоСтрок = ТекстРазбора.КоличествоСтрок(); СтрокаОткрыта = Ложь; - + + // символы, которые будут использоваться для нормализации строки + ЗаменяемыеСимволы = "; = ( ) , " + Символы.Таб; + ЗаменяемыеСимволы = СтрРазделить(ЗаменяемыеСимволы, " ", Истина); // Построчная проверка Для Ит = 1 По ВсегоСтрок Цикл СтрокаМодуля = ТекстРазбора.ПолучитьСтроку(Ит); // оставим строки, которые обрабатывать не нужно - Если ПустаяСтрока(СтрокаМодуля) - ИЛИ СтрНачинаетсяС(СокрЛ(СтрокаМодуля), "//") Тогда - + Если ПустаяСтрока(СтрокаМодуля) + ИЛИ СтрНачинаетсяС(СокрЛ(СтрокаМодуля), "//") Тогда + ДобавитьСтрокуСодержимого(НовоеСодержимоеФайла, СтрокаМодуля); - + Продолжить; КонецЕсли; @@ -94,7 +98,7 @@ Если НЕ СтрокаОткрыта Тогда НоваяСтрокаМодуля = УдалитьКомИКавИзСтроки(НоваяСтрокаМодуля); - + КонецЕсли; // Вырезаем часть строки в кавычках @@ -104,17 +108,16 @@ НоваяСтрокаМодуля = ВырезатьТекстВКавычках(НоваяСтрокаМодуля, ПозицияКавычек, ПоследняяПозиция, СтрокаОткрыта); // ничего интересного не осталось - Если СтрокаОткрыта И ПозицияКавычек = 0 - ИЛИ ПустаяСтрока(НоваяСтрокаМодуля) Тогда + Если СтрокаОткрыта И ПозицияКавычек = 0 + ИЛИ ПустаяСтрока(НоваяСтрокаМодуля) Тогда ДобавитьСтрокуСодержимого(НовоеСодержимоеФайла, СтрокаМодуля); Продолжить; КонецЕсли; // Проверяем правильное использование каждого ключевого слова - ВРегНоваяСтрокаМодуля = " " + ВРег(НоваяСтрокаМодуля) + " "; - ВРегНоваяСтрокаМодуля = СтрЗаменить(ВРегНоваяСтрокаМодуля, ";", " "); - ВРегНоваяСтрокаМодуля = СтрЗаменить(ВРегНоваяСтрокаМодуля, Символы.Таб, " "); + ВРегНоваяСтрокаМодуля = НормализоватьСтроку(НоваяСтрокаМодуля, ЗаменяемыеСимволы); + ДлинаСтроки = СтрДлина(ВРегНоваяСтрокаМодуля); Для Каждого ЭлементТаблицы Из КлючевыеСлова Цикл @@ -122,7 +125,7 @@ ПозицияЭталона = СтрНайти(ВРегНоваяСтрокаМодуля, " " + Эталон + " "); Если НЕ ПозицияЭталона Тогда Продолжить; - КонецЕсли; + КонецЕсли; ДлинаЭталона = СтрДлина(Эталон); @@ -130,54 +133,75 @@ Пока ПозицияЭталона > 0 Цикл СтартоваяПозиция = ПозицияЭталона - 1; - Написание = СокрЛП(Сред(СтрокаМодуля, СтартоваяПозиция, ДлинаЭталона)); + Написание = СокрЛП(Сред(СтрокаМодуля, ПозицияЭталона, ДлинаЭталона)); Если Эталоны.Найти(Написание) = Неопределено Тогда // Ключевое слово написано не канонически - СтрокаМодуля = Лев(СтрокаМодуля, СтартоваяПозиция) - + ЭлементТаблицы.Значение - + Сред(СтрокаМодуля, СтартоваяПозиция + ДлинаЭталона + 1); + + СтрокаМодуля = Лев(СтрокаМодуля, СтартоваяПозиция) + + ЭлементТаблицы.Значение + + Сред(СтрокаМодуля, СтартоваяПозиция + ДлинаЭталона + 1); + + СтрокаСообщения = СтрШаблон("В строке %1 найдено ключевое слово '%2' заменено на '%3'", + Ит, Написание, ЭлементТаблицы.Значение); + Лог.Информация(СтрокаСообщения); КонецЕсли; - ПозицияЭталона = СтрНайти(ВРегНоваяСтрокаМодуля, " " + Эталон + " ", , СтартоваяПозиция + ДлинаЭталона); + ПозицияЭталона = СтрНайти(ВРегНоваяСтрокаМодуля, " " + Эталон + " ", , ПозицияЭталона + ДлинаЭталона); КонецЦикла; КонецЦикла; - + ДобавитьСтрокуСодержимого(НовоеСодержимоеФайла, СтрокаМодуля); - + КонецЦикла; - + Если НовоеСодержимоеФайла.ПолучитьТекст() <> СодержимоеФайла Тогда ФайловыеОперации.ЗаписатьТекстФайла(ИмяФайла, НовоеСодержимоеФайла.ПолучитьТекст()); + Возврат Истина; // переиндексируем КонецЕсли; - - Возврат Истина; - + + Возврат Ложь; + КонецФункции -Процедура ДобавитьСтрокуСодержимого(НовоеСодержимоеФайла, Знач СтрокаМодуля) + +Функция НормализоватьСтроку(Знач Строка, ЗаменяемыеСимволы) + + Строка = " " + ВРег(Строка) + " "; + + Для Каждого Символ Из ЗаменяемыеСимволы Цикл + + Строка = СтрЗаменить(Строка, Символ, " "); + + КонецЦикла; + + Возврат Строка; + +КонецФункции + +Процедура ДобавитьСтрокуСодержимого(НовоеСодержимоеФайла, Знач СтрокаМодуля) СтрокаМодуля = СтрЗаменить(СтрокаМодуля, "***ЗАМЕНА_ДВОЙНЫХ_КАВЫЧЕК***", """"""); СтрокаМодуля = СтрЗаменить(СтрокаМодуля, "***ЗАМЕНА_ЧАСТИ_URL***", "://"); - + НовоеСодержимоеФайла.ДобавитьСтроку(СтрокаМодуля); - + КонецПроцедуры Функция ВырезатьТекстВКавычках(Знач СтрокаМодуля, ПозицияКавычек, ПоследняяПозиция, СтрокаОткрыта) - + Пока ПозицияКавычек > 0 Цикл Если СтрокаОткрыта Тогда // кавычки закрывают строку, вырезаем часть в кавычках СтрокаМодуляВКавычках = Сред(СтрокаМодуля, ПозицияКавычек + 1); - СтрокаМодуля = Лев(СтрокаМодуля, ПоследняяПозиция - 1) - + ДополнитьСтроку("", ПозицияКавычек - ПоследняяПозиция + 1, " ") - + СтрокаМодуляВКавычках; + СтрокаМодуля = Лев(СтрокаМодуля, ПоследняяПозиция - 1) + + ДополнитьСтроку("", ПозицияКавычек - ПоследняяПозиция + 1, " ") + + СтрокаМодуляВКавычках; СтрокаОткрыта = Ложь; ПоследняяПозиция = 0; @@ -198,16 +222,16 @@ КонецФункции -Функция УдалитьКомИКавИзСтроки(Знач СтрокаМодуля) +Функция УдалитьКомИКавИзСтроки(Знач СтрокаМодуля) ПозицияКомментария = СтрНайти(СтрокаМодуля, "//"); - + Если ПозицияКомментария > 0 Тогда // есть комментарий ДлинаСтроки = СтрДлина(СтрокаМодуля); ПозицияКавычек = СтрНайти(СтрокаМодуля, """"); - Если ПозицияКавычек = 0 // нет кавычек, удаляем комментарий - ИЛИ ПозицияКавычек > ПозицияКомментария Тогда // кавычки после комментария, удаляем комментарий - + Если ПозицияКавычек = 0 // нет кавычек, удаляем комментарий + ИЛИ ПозицияКавычек > ПозицияКомментария Тогда // кавычки после комментария, удаляем комментарий + СтрокаМодуля = ДополнитьСтроку(Лев(СтрокаМодуля, ПозицияКомментария - 1), ДлинаСтроки, " ", "Справа"); Иначе @@ -222,28 +246,28 @@ КонецЕсли; КонецЕсли; - + Возврат СтрокаМодуля; КонецФункции -Функция КлючевыеСлова(Эталоны) - +Функция КлючевыеСлова(Эталоны) + КлючевыеСлова = Новый ТаблицаЗначений; КлючевыеСлова.Колонки.Добавить("Наименование"); КлючевыеСлова.Колонки.Добавить("Значение"); Для Каждого Эталон Из Эталоны Цикл Если КлючевыеСлова.НайтиСтроки(Новый Структура("Наименование", ВРег(Эталон))).Количество() = 0 Тогда - + СтрокаТаблицы = КлючевыеСлова.Добавить(); СтрокаТаблицы.Наименование = ВРег(Эталон); СтрокаТаблицы.Значение = Эталон; - + КонецЕсли; КонецЦикла; - + Возврат КлючевыеСлова; КонецФункции @@ -251,7 +275,7 @@ Функция Эталоны() Эталоны = Новый Массив; - + Эталоны.Добавить("Если"); Эталоны.Добавить("#Если"); Эталоны.Добавить("Тогда"); @@ -280,7 +304,6 @@ Эталоны.Добавить("&НаКлиентеНаСервере"); Эталоны.Добавить("Для"); Эталоны.Добавить("Каждого"); - Эталоны.Добавить("каждого"); Эталоны.Добавить("Цикл"); Эталоны.Добавить("КонецЦикла"); Эталоны.Добавить("Выполнить"); @@ -320,7 +343,7 @@ Эталоны.Добавить("Null"); Возврат Эталоны; - + КонецФункции // перенесено из строковых ф-ий ибо там ошибка @@ -362,3 +385,4 @@ Возврат Строка; КонецФункции + diff --git a/tests/fixtures/ИсправлениеНеКаноническогоНаписания.bsl b/tests/fixtures/ИсправлениеНеКаноническогоНаписания.bsl new file mode 100644 index 0000000..8e84f6e --- /dev/null +++ b/tests/fixtures/ИсправлениеНеКаноническогоНаписания.bsl @@ -0,0 +1,74 @@ +#Область ХорошихПеременных +Перем пер1 +#КонецОбласти + +#область ПлохихПеременных + +ПЕРЕМ пер1; +перем пер3; +//ПEрем пер4 +// ПEрем пер5 +Перем пер6; //если тут будет текст его не заменит + + +#КонецОБласти + +&НаКлиентенаСервере +ПРоцедура тест() +конецпроцедуры + +&Насервере +процедура СКомментарием() // Комментарий +КонецПроцедуры + +&Наклиенте +функция ТестовыйУжас(ЗНАЧ пар) + #если КлиенТ ИЛИ сервер #тогда + перейти МеткаВыход : + #Конецесли + + если истина тогда Сообщить(не(ложь и null=НеОпределено)); возврат Неопределено; иначе конецесли; + + пока п1 = п2 цикл // если тогда иначе конецесли; + прервать; + конеццикла; + + Если ИСТИНА Тогда + Сообщить(); + иначеЕсли ЛОЖЬ Тогда + попытка + Переменная1 = новый Массив; + исключение + вызватьИсключение "сложно набирать такой код" + конецпопытки; + + КонецЕсли; + + #Если НЕ вебклиент и не Тонкийклиент ИЛИ ТолстыйКлиентОбычноеприложение ИЛИ толстыйКлиентУправляемоеПриложение ИЛИ ВнешнееСоединение + + #КонецЕсли + + для каждого Элемент из Переменная1 Цикл + выполнить("Сообщить(""Привет"")"); + КонецЦикла; + + Для i = 1 по 10 Цикл + КонецЦикла; + + Соообщить("тут пример однострочника");добавитьОбработчик Накладная.ПриЗаписи Обработка.ПриЗаписиДокумента;Удалитьобработчик Накладная.ПриЗаписи, Обработка.ПриЗаписиДокумента; + Возврат ?(истина=истина,ложь,истина); +конецфункции + +&НасерверебезКонтекста +Процедура тест(Пар1, + Пар2, + ЗНАЧ пар3)// Комментарий +КонецПроцедуры + +&наКлиентеНаСервереБезКонтекста +Процедура тест() // Комментарий +КонецПроцедуры + +&наКлиентенаСервере +Процедура тест() // Комментарий +КонецПроцедуры \ No newline at end of file diff --git a/tests/ПроверкаСцераниевОбработки.os b/tests/ПроверкаСцераниевОбработки.os index 9582eb6..e506c09 100644 --- a/tests/ПроверкаСцераниевОбработки.os +++ b/tests/ПроверкаСцераниевОбработки.os @@ -21,7 +21,8 @@ ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийРазбораОтчетовОбработокРасширенийИмеетМетодПолученияНастроек"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийОтключенияПолнотекстовогоПоискаВозвращаетНастройки"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийРазбораОтчетовОбработокРасширенийВозвращаетНастройки"); - + ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетФайл"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияНеИндексируетНеизмененные"); Возврат ВсеТесты; КонецФункции @@ -44,6 +45,33 @@ КонецПроцедуры +Процедура ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетФайл() Экспорт + + ОбъектСценария = ПолучитьСценарий("ИсправлениеНеКаноническогоНаписания.os"); + ИмяФайла = "ИсправлениеНеКаноническогоНаписания.bsl"; + + Файл = ПодготовитьИзменяемыйТестовыйФайл(ИмяФайла); + + Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки()); + Ожидаем.Что(Результат, Истина).ЭтоИстина(); + +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияНеИндексируетНеизмененные() Экспорт + + ОбъектСценария = ПолучитьСценарий("ИсправлениеНеКаноническогоНаписания.os"); + ИмяФайла = "ИсправлениеНеКаноническогоНаписания.bsl"; + + Файл = ПодготовитьИзменяемыйТестовыйФайл(ИмяФайла); + + Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки()); + ДопНастройки = ПолучитьДополнительныеНастройки(); + + Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ДопНастройки); + Ожидаем.Что(ДопНастройки.ИзмененныеКаталоги.Количество(), Истина).Равно(0); + +КонецПроцедуры + Процедура ТестДолжен_ПроверитьЧтоСценарийОтключенияПолнотекстовогоПоискаИмеетМетодПолученияНастроек() Экспорт ОбъектСценария = ПолучитьСценарий("ОтключениеПолнотекстовогоПоиска.os"); @@ -184,8 +212,20 @@ Функция ПолучитьДополнительныеНастройки() УправлениеНастройками = Новый НастройкиРепозитория(ТекущийКаталог()); - ДополнительныеНастройки = Новый Структура("Лог, УправлениеНастройками", Лог, УправлениеНастройками); + ДополнительныеНастройки = Новый Структура("Лог, УправлениеНастройками, ИзмененныеКаталоги", + Лог, УправлениеНастройками, Новый Массив); Возврат ДополнительныеНастройки; КонецФункции + +Функция ПодготовитьИзменяемыйТестовыйФайл(Знач ИмяТестовогоФайла) + + ПутьКТесту = ОбъединитьПути(КаталогТестовыхФикстур(), ИмяТестовогоФайла); + ПутьКФайлу = МенеджерВременныхФайлов.СоздатьФайл(ИмяТестовогоФайла); + КопироватьФайл(ПутьКТесту, ПутьКФайлу); + Файл = Новый Файл(ПутьКФайлу); + + Возврат Файл; + +КонецФункции