Skip to content

Commit

Permalink
feat: Добавлен плагин для проверки орфографии через YaSpeller (vaness…
Browse files Browse the repository at this point in the history
…a-opensource#629)

* Шаблон плагина

* feat: Реализация плагина

* feat: Работа со словарем

* test: Тесты плагина

* fix: Поправил имя модуля

* Корректное название

* revent

* Пересобрал

* test: Отладка после тестов

* test: Тесты для проверки работы плагина

* doc: Добавил описание плагина
  • Loading branch information
KrapivinAndrey authored Feb 8, 2020
1 parent 4e8fc3f commit eb8e532
Show file tree
Hide file tree
Showing 12 changed files with 1,017 additions and 0 deletions.
35 changes: 35 additions & 0 deletions F.A.Q.MD
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
* **[Плагины](#плагины)**
1. [Как вызвать код плагина на сервере при запуске в управляемой форме?](#1-как-вызвать-код-плагина-на-сервере-при-запуске-в-управляемой-форме)
2. [Как работать с файлами внутри тестов/шагов? Как получить путь к текущему файлу или к файлу рядом с ним?](#2-как-работать-с-файлами-внутри-тестовшагов-как-получить-путь-к-текущему-файлу-или-к-файлу-рядом-с-ним)
3. [Описание плагинов](#3-описание-плагинов)
* **[Скриншоты](#скриншоты)**
1. [Как сохранять скриншоты при ошибках сценариев?](#1-как-сохранять-скриншоты-при-ошибках-сценариев)
2. [На CI сервере скриншот формируется, но вместо изображения чёрный экран. Как настроить сервер CI?](#2-на-ci-сервере-скриншот-формируется-но-вместо-изображения-чёрный-экран-как-настроить-сервер-ci)
Expand Down Expand Up @@ -311,6 +312,40 @@ vrunner vanessa --settings tools\vrunner.json --path ПутьККаталогу

- В BDD также можно использовать шаг `И я буду выбирать внешний файл "ИмяФайла"` для подмены интерактивных действий пользователя по выбору файла/каталога в окне выбора файлов/каталогов

### 3. Описание плагинов

* Проверка орфографиии. Плагин использует сервис [YaSpeller](https://yandex.ru/dev/speller/) и позволяет проверять наличие орфографических ошибок в тексте.

+ Подключение и использование плагина:

```bsl
ПроверкаОрфографии = КонтекстЯдра.Плагин("ПроверкаОрфографии");
Результат = ПроверкаОрфографии.ВыполнитьПроверкуТекста(ТекстНаПроверку); // локальная проверка. Результат - массив с ошибками
ПроверкаОрфографии.ОжидаемЧтоНетОшибок(ТекстНаПроверку); // выбрасывает исключение если были ошибки с подробным описанием
```

+ Настройки:

- Пропускать слова с цифрами:

```bsl
ПроверкаОрфографии.ПропускатьСловаСЦифрами(Истина);
```

- Пропускать url и интернет адреса

```bsl
ПроверкаОрфографии.ПропускатьУРЛ(Истина);
```

- Словарь слов исключений

```bsl
ПроверкаОрфографии.ИспользоватьШаблонДляСловаря(Истина); // проверка вхождения в словарь по рег. выражению
ПроверкаОрфографии.ИспользоватьСловарьИсключений(Словарь); // список слов или текстовый документ с словами-исключениями
// каждое слово с новой строки
```

## Скриншоты

### 1. Как сохранять скриншоты при ошибках сценариев?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2304,6 +2304,32 @@
КонецЕсли;
КонецПроцедуры

&НаКлиенте
// Делает сообшение пользователю. Совместимость с xdd
//
// Параметры:
// ТекстСообщения - Строка - сообщение для пользователя
// Стаутс - СтатусСообщения
//
Процедура ВывестиСообщение(ТекстСообщения, Статус=Неопределено) Экспорт

Если Статус = СтатусСообщения.Важное
ИЛИ Статус = СтатусСообщения.ОченьВажное Тогда

СтатусСтрока = "Важное";

Иначе

СтатусСтрока = "Информация";

КонецЕсли;

СделатьСообщение(ТекстСообщения, СтатусСтрока);


КонецПроцедуры // ВывестиСообщение()


//Показать предупреждение пользователю
&НаКлиенте
Процедура ВывестиПредупреждение(Знач Событие, Знач Сообщение) Экспорт
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="a63b16f4-f337-4f8a-824c-5a1286a51781">
<InternalInfo>
<xr:ContainedObject>
<xr:ClassId>c3831ec8-d8d5-4f93-8a22-f9bfae07327f</xr:ClassId>
<xr:ObjectId>3b680f02-9b75-44c2-8590-1741f742db6a</xr:ObjectId>
</xr:ContainedObject>
<xr:GeneratedType name="ExternalDataProcessorObject.ПроверкаОрфографии" category="Object">
<xr:TypeId>77ed8537-5340-4da0-8beb-76079f7351fe</xr:TypeId>
<xr:ValueId>103c31a5-7006-47ca-8551-b28598154fe1</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>ПроверкаОрфографии</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Проверка орфографии через сервис YaSpeller</v8:content>
</v8:item>
</Synonym>
<Comment>http://api.yandex.ru/speller/</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,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="a63b16f4-f337-4f8a-824c-5a1286a51781">
<InternalInfo>
<xr:ContainedObject>
<xr:ClassId>c3831ec8-d8d5-4f93-8a22-f9bfae07327f</xr:ClassId>
<xr:ObjectId>3b680f02-9b75-44c2-8590-1741f742db6a</xr:ObjectId>
</xr:ContainedObject>
<xr:GeneratedType name="ExternalDataProcessorObject.ПроверкаОрфографии" category="Object">
<xr:TypeId>77ed8537-5340-4da0-8beb-76079f7351fe</xr:TypeId>
<xr:ValueId>103c31a5-7006-47ca-8551-b28598154fe1</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>ПроверкаОрфографии</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Проверка орфографии через сервис YaSpeller</v8:content>
</v8:item>
</Synonym>
<Comment>http://api.yandex.ru/speller/</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,15 @@

// { Plugin interface
Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт
Результат = Новый Структура;
Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита);
Результат.Вставить("Идентификатор", Метаданные().Имя);
Результат.Вставить("Представление", "Проверка орфографии");

Возврат Новый ФиксированнаяСтруктура(Результат);
КонецФункции

Процедура Инициализация(КонтекстЯдраПараметр) Экспорт

КонецПроцедуры
// } Plugin interface
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="b4bd330d-6e64-4089-91c9-b638d8856799">
<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,30 @@
<?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">
<Autofill>false</Autofill>
</AutoCommandBar>
<ChildItems>
<LabelDecoration name="Яндекс" id="1">
<Title formatted="false">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>http://api.yandex.ru/speller/</v8:content>
</v8:item>
</Title>
<Hyperlink>true</Hyperlink>
<ContextMenu name="ЯндексКонтекстноеМеню" id="2"/>
<ExtendedTooltip name="ЯндексРасширеннаяПодсказка" id="3"/>
<Events>
<Event name="Click">ЯндексНажатие</Event>
</Events>
</LabelDecoration>
</ChildItems>
<Attributes>
<Attribute name="Объект" id="1">
<Type>
<v8:Type>cfg:ExternalDataProcessorObject.ПроверкаОрфографии</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
</Attribute>
</Attributes>
</Form>
Loading

0 comments on commit eb8e532

Please sign in to comment.