Skip to content

Commit

Permalink
Merge pull request #311 from silverbulleters/feature/regExp-48
Browse files Browse the repository at this point in the history
WIP: Feature/reg exp 48
  • Loading branch information
artbear authored Sep 5, 2018
2 parents 869a92a + 86d97c4 commit de6840e
Show file tree
Hide file tree
Showing 14 changed files with 882 additions and 3 deletions.
2 changes: 1 addition & 1 deletion epf/bddRunner/bddRunner/Ext/ObjectModule.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Перем СтатусыРезультатаТестирования Экспорт;
Перем ПараметрыОтчетаУФ;
Перем ОтчетВРежимеУФ;
Перем ЭтоLinux;
Перем ЭтоLinux Экспорт;
Перем Регулярка;
Перем РазницаВМилисекундахМеждуЮниксИНачалЭпохи;

Expand Down
Binary file modified epf/bddRunner/bddRunner/Forms/Форма/Ext/Form.bin
Binary file not shown.
3 changes: 1 addition & 2 deletions epf/bddRunner/bddRunner/Forms/Форма/Ext/Form/Module.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@
Перем ОбъектКонтекстСохраняемый Экспорт;

Перем ЭтоУФ;
Перем ЭтоLinux;


Перем ВыполнятьСценарииАсинхронно;

Перем МассивСценариевДляВыполнения;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4">
<ExternalDataProcessor uuid="c7e15496-cc1f-49ad-aed1-89cac680945a">
<InternalInfo>
<xr:ContainedObject>
<xr:ClassId>c3831ec8-d8d5-4f93-8a22-f9bfae07327f</xr:ClassId>
<xr:ObjectId>29d2f52d-0ed1-4254-a6bc-bbc6bc333ab1</xr:ObjectId>
</xr:ContainedObject>
<xr:GeneratedType name="ExternalDataProcessorObject.Фича_РегулярныеВыражения" category="Object">
<xr:TypeId>503de865-4645-4496-b5dd-2e4a76236095</xr:TypeId>
<xr:ValueId>4d213f80-34d7-4f82-80f0-c17b4f80d887</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>Фича_РегулярныеВыражения</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Фича_РегулярныеВыражения</v8:content>
</v8:item>
</Synonym>
<Comment/>
<DefaultForm>ExternalDataProcessor.Фича_РегулярныеВыражения.Form.Форма</DefaultForm>
<AuxiliaryForm/>
</Properties>
<ChildObjects>
<Form>Форма</Form>
</ChildObjects>
</ExternalDataProcessor>
</MetaDataObject>
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@

#Область Служебные_функции_и_процедуры

// контекст фреймворка Vanessa-Behavior
Перем Ванесса;

// Структура, в которой хранится состояние сценария между выполнением шагов. Очищается перед выполнением каждого сценария.
Перем Контекст Экспорт;

// Структура, в которой можно хранить служебные данные между запусками сценариев. Существует, пока открыта форма Vanessa-Behavior.
Перем КонтекстСохраняемый Экспорт;

// Функция экспортирует список шагов, которые реализованы в данной внешней обработке.
Функция ПолучитьСписокТестов(КонтекстФреймворкаBDD) Экспорт
Ванесса = КонтекстФреймворкаBDD;

ВсеТесты = Новый Массив;

//описание параметров
//Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,Снипет,ИмяПроцедуры,ПредставлениеТеста,ОписаниеШага,ТипШага,Транзакция,Параметр);

Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ПеременнаяСоответствуетРегулярномуВыражению(Парам01,Парам02)","ПеременнаяСоответствуетРегулярномуВыражению","Тогда переменная ""ПроверяемаяСтрока"" соответствует регулярному выражению ""\d\d\d""","","");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯЗапоминаюСтрокуКакПеременную(Парам01,Парам02)","ЯЗапоминаюСтрокуКакПеременную","Когда Я запоминаю строку ""Привет"" как переменную ""ПроверяемаяСтрока""","","");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ПеременнаяСоответствуетПростомуШаблону(Парам01,Парам02)","ПеременнаяСоответствуетПростомуШаблону","Тогда переменная ""ПроверяемаяСтрока"" соответствует простому шаблону ""*ри*""","","");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ПеременнаяНеСоответствуетРегулярномуВыражению(Парам01,Парам02)","ПеременнаяНеСоответствуетРегулярномуВыражению","Тогда переменная ""ПроверяемаяСтрока"" не соответствует регулярному выражению ""\d{4}""","","");
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ПеременнаяНеСоответствуетПростомуШаблону(Парам01,Парам02)","ПеременнаяНеСоответствуетПростомуШаблону","Тогда переменная ""ПроверяемаяСтрока"" не соответствует простому шаблону ""*ДругойТекст*""","","");

Возврат ВсеТесты;
КонецФункции

// Служебная функция для подключения библиотеки создания fixtures.
Функция ПолучитьМакетОбработки(ИмяМакета) Экспорт
Возврат ПолучитьМакет(ИмяМакета);
КонецФункции

#КонецОбласти



#Область Работа_со_сценариями

// Процедура выполняется перед началом каждого сценария
Процедура ПередНачаломСценария() Экспорт

КонецПроцедуры

// Процедура выполняется перед окончанием каждого сценария
Процедура ПередОкончаниемСценария() Экспорт

КонецПроцедуры

#КонецОбласти


///////////////////////////////////////////////////
//Реализация шагов
///////////////////////////////////////////////////

//Когда Я запоминаю строку "Привет" как переменную "ПроверяемаяСтрока"
//@ЯЗапоминаюСтрокуКакПеременную(Парам01,Парам02)
Процедура ЯЗапоминаюСтрокуКакПеременную(ИсходнаяСтрока, ИмяПеременной) Экспорт
Контекст.Вставить(ИмяПеременной, ИсходнаяСтрока);
КонецПроцедуры

//Тогда переменная "ПроверяемаяСтрока" соответствует регулярному выражению "/d/d/d"
//@ПеременнаяСоответствуетРегулярномуВыражению(Парам01,Парам02)
Процедура ПеременнаяСоответствуетРегулярномуВыражению(ИмяПеременной, ШаблонРегулярки) Экспорт

ПроверяемаяСтрока = "";

Нашли = ПеременнаяСоответствуетРегулярномуВыражениюВнутр(ИмяПеременной, ШаблонРегулярки, ПроверяемаяСтрока);

Ожидаем = Ванесса.Плагин("УтвержденияBDD");
Ожидаем.Что(Нашли,
СтрШаблон("Ожидали, что проверяемая строка из переменной совпадает с шаблоном регулярного выражения, а это не так
|Регулярное выражение %1
|Имя переменной %2
|Проверяемая строка:
|%3", ШаблонРегулярки, ИмяПеременной, ПроверяемаяСтрока))
.ЭтоИстина();
КонецПроцедуры

//Тогда переменная "ПроверяемаяСтрока" не соответствует регулярному выражению "\d{4}"
//@ПеременнаяНеСоответствуетРегулярномуВыражению(Парам01,Парам02)
Процедура ПеременнаяНеСоответствуетРегулярномуВыражению(ИмяПеременной, ШаблонРегулярки) Экспорт

ПроверяемаяСтрока = "";

Нашли = ПеременнаяСоответствуетРегулярномуВыражениюВнутр(ИмяПеременной, ШаблонРегулярки, ПроверяемаяСтрока);

Ожидаем = Ванесса.Плагин("УтвержденияBDD");
Ожидаем.Что(Нашли,
СтрШаблон("Ожидали, что проверяемая строка не совпадает с шаблоном регулярного выражения, а она совпадает, что неверно
|Регулярное выражение %1
|Имя переменной %2
|Проверяемая строка:
|%3", ШаблонРегулярки, ИмяПеременной, ПроверяемаяСтрока))
.ЭтоЛожь();
КонецПроцедуры

//Тогда переменная "ПроверяемаяСтрока" соответствует простому шаблону "*ри*"
//@ПеременнаяСоответствуетПростомуШаблону(Парам01,Парам02)
Процедура ПеременнаяСоответствуетПростомуШаблону(ИмяПеременной, ШаблонРегулярки) Экспорт

ПроверяемаяСтрока = "";
Нашли = ПеременнаяСоответствуетПростомуШаблонуВнутр(ИмяПеременной, ШаблонРегулярки, ПроверяемаяСтрока);

Ожидаем = Ванесса.Плагин("УтвержденияBDD");
Ожидаем.Что(Нашли,
СтрШаблон("Ожидали, что проверяемая строка совпадает с шаблоном регулярного выражения, а это не так
|Шаблон проверки %1
|Имя переменной %2
|Проверяемая строка:
|%3", ШаблонРегулярки, ИмяПеременной, ПроверяемаяСтрока))
.ЭтоИстина();
КонецПроцедуры

//Тогда переменная "ПроверяемаяСтрока" не соответствует простому шаблону "*ДругойТекст*"
//@ПеременнаяНеСоответствуетПростомуШаблону(Парам01,Парам02)
Процедура ПеременнаяНеСоответствуетПростомуШаблону(ИмяПеременной, ШаблонРегулярки) Экспорт
ПроверяемаяСтрока = "";
Нашли = ПеременнаяСоответствуетПростомуШаблонуВнутр(ИмяПеременной, ШаблонРегулярки, ПроверяемаяСтрока);

Ожидаем = Ванесса.Плагин("УтвержденияBDD");
Ожидаем.Что(Нашли,
СтрШаблон("Ожидали, что проверяемая строка не совпадает с простым шаблоном, а она совпадает, что неверно
|Шаблон проверки %1
|Имя переменной %2
|Проверяемая строка:
|%3", ШаблонРегулярки, ИмяПеременной, ПроверяемаяСтрока))
.ЭтоЛожь();
КонецПроцедуры

Функция ПеременнаяСоответствуетРегулярномуВыражениюВнутр(ИмяПеременной, ШаблонРегулярки, ПроверяемаяСтрока)

РегулярныеВыражения = Ванесса.Плагин("РегулярныеВыражения");
РегулярныеВыражения.Подготовить(ШаблонРегулярки);

ПроверяемаяСтрока = Контекст[ИмяПеременной];

Нашли = РегулярныеВыражения.Совпадает(ПроверяемаяСтрока);

Возврат Нашли;
КонецФункции

Функция ПеременнаяСоответствуетПростомуШаблонуВнутр(ИмяПеременной, ШаблонРегулярки, ПроверяемаяСтрока)

РегулярныеВыражения = Ванесса.Плагин("РегулярныеВыражения");

ПроверяемаяСтрока = Контекст[ИмяПеременной];

Нашли = РегулярныеВыражения.СтрокаСоответствуетШаблону(ПроверяемаяСтрока, ШаблонРегулярки);

Возврат Нашли;
КонецФункции
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4">
<Form uuid="9e85d150-94c5-4925-88c1-0611ff9360d3">
<Properties>
<Name>Форма</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PersonalComputer</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobileDevice</v8:Value>
</UsePurposes>
<ExtendedPresentation/>
</Properties>
</Form>
</MetaDataObject>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4">
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<Attributes>
<Attribute name="Объект" id="1">
<Type>
<v8:Type>cfg:ExternalDataProcessorObject.Фича_РегулярныеВыражения</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
</Attribute>
</Attributes>
</Form>
Loading

0 comments on commit de6840e

Please sign in to comment.