Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Доработки теста "Проверка права интерактивного удаления помеченных" #1032

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from
14 changes: 13 additions & 1 deletion tests/smoke/smoke.example.json
Original file line number Diff line number Diff line change
Expand Up @@ -789,8 +789,20 @@
"Тесты_ПроверкаПраваИнтерактивногоУдаленияПомеченных": {

"Используется": false,
"ПроверятьОсновныеРоли": true
"ПроверятьОсновныеРоли": true,
"ПрефиксОбъекта": "",
"ОтборПоПрефиксуОбъекта": false,
"ПрефиксРоли": "",
"ОтборПоПрефиксуРоли": false,
"ИсключенияИзПроверок":{

"Справочники":[
"Справочник1"
],
"Документы":[
"Документ1"
]
}
},

"Тесты_ПроверкаПравНаПредопределенныеДанныеОбъектов": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,16 @@
Перем СтроковыеУтилиты;
&НаКлиенте
Перем ПроверятьОсновныеРоли;
&НаКлиенте
Перем ОтборПоПрефиксуОбъекта;
&НаКлиенте
Перем ПрефиксОбъекта;
&НаКлиенте
Перем ОтборПоПрефиксуРоли;
&НаКлиенте
Перем ПрефиксРоли;
&НаКлиенте
Перем ИсключенияИзПроверок;

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

Expand All @@ -33,7 +43,7 @@
Возврат;
КонецЕсли;

ОбъектыМетаданных = ОбъектыМетаданных();
ОбъектыМетаданных = ОбъектыМетаданных(ОтборПоПрефиксуОбъекта, ПрефиксОбъекта, ИсключенияИзПроверок);

Для Каждого ОбъектМетаданных Из ОбъектыМетаданных Цикл
Если ОбъектМетаданных.Значение.Количество() = 0 Тогда
Expand Down Expand Up @@ -61,7 +71,13 @@
Возврат;
КонецЕсли;

ПроверятьОсновныеРоли = Истина;
ПрефиксОбъекта = "";
ОтборПоПрефиксуОбъекта = Ложь;
ПрефиксРоли = "";
ОтборПоПрефиксуРоли = Ложь;
ИсключенияИзПроверок = Новый Структура;
ПроверятьОсновныеРоли = Истина;

ПлагинНастроек = КонтекстЯдра.Плагин("Настройки");
Объект.Настройки = ПлагинНастроек.ПолучитьНастройку(ПутьНастройки);
Настройки = Объект.Настройки;
Expand All @@ -75,6 +91,26 @@
ПроверятьОсновныеРоли = Настройки.ПроверятьОсновныеРоли;
КонецЕсли;

Если Настройки.Свойство("ПрефиксОбъекта") Тогда
ПрефиксОбъекта = ВРег(Настройки.ПрефиксОбъекта);
КонецЕсли;

Если Настройки.Свойство("ОтборПоПрефиксуОбъекта") Тогда
ОтборПоПрефиксуОбъекта = Настройки.ОтборПоПрефиксуОбъекта;
КонецЕсли;

Если Настройки.Свойство("ПрефиксРоли") Тогда
ПрефиксРоли = ВРег(Настройки.ПрефиксРоли);
КонецЕсли;

Если Настройки.Свойство("ОтборПоПрефиксуРоли") Тогда
ОтборПоПрефиксуРоли = Настройки.ОтборПоПрефиксуРоли;
КонецЕсли;

Если Настройки.Свойство("ИсключенияИзПроверок") Тогда
ИсключенияИзПроверок = Настройки.ИсключенияИзПроверок;
КонецЕсли;

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

#КонецОбласти
Expand All @@ -84,14 +120,14 @@
&НаКлиенте
Процедура ТестДолжен_ПроверитьЧтоНетПраваНаИнтерактивноеУдалениеПомеченных(ПолноеИмяМетаданных) Экспорт

Результат = ПроверитьЧтоНетПраваНаИнтерактивноеУдалениеПомеченных(ПолноеИмяМетаданных, ПроверятьОсновныеРоли);
Результат = ПроверитьЧтоНетПраваНаИнтерактивноеУдалениеПомеченных(ПолноеИмяМетаданных, ОтборПоПрефиксуРоли, ПрефиксРоли, ПроверятьОсновныеРоли);
ШаблонСообщения = НСтр("ru = 'Есть право на интерактивное удаление помеченных объектов:%1'");
Утверждения.Проверить(Результат = "", СтроковыеУтилиты.ПодставитьПараметрыВСтроку(ШаблонСообщения, Результат));

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

&НаСервереБезКонтекста
Функция ПроверитьЧтоНетПраваНаИнтерактивноеУдалениеПомеченных(ПолноеИмяМетаданных, ПроверятьОсновныеРоли)
Функция ПроверитьЧтоНетПраваНаИнтерактивноеУдалениеПомеченных(ПолноеИмяМетаданных, ОтборПоПрефиксуРоли, ПрефиксРоли, ПроверятьОсновныеРоли)

ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмяМетаданных);
ЕстьПраво = Ложь;
Expand All @@ -100,7 +136,10 @@
Для Каждого Роль Из Метаданные.Роли Цикл
Если Не ПроверятьОсновныеРоли И Метаданные.ОсновныеРоли.Содержит(Роль) Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Если ОтборПоПрефиксуРоли И Не СтрНачинаетсяС(ВРег(Роль.Имя), ВРег(ПрефиксРоли)) Тогда
Продолжить;
КонецЕсли;
ЕстьПраво = ПравоДоступа("ИнтерактивноеУдалениеПомеченных", ОбъектМетаданных, Роль);
Если ЕстьПраво Тогда
Результат = Результат + Символы.ПС + Роль.Имя;
Expand All @@ -116,8 +155,10 @@
#Область СлужебныеПроцедурыИФункции

&НаСервереБезКонтекста
Функция ОбъектыМетаданных()
Функция ОбъектыМетаданных(ОтборПоПрефиксуОбъекта, ПрефиксОбъекта, ИсключенияИзПроверок)

ЛокальныйКонтекстЯдра = ВнешниеОбработки.Создать("xddTestRunner");

СтроковыеУтилиты = СтроковыеУтилиты();
Пояснение = НСтр("ru = 'Проверка права интерактивного удаления помеченных'");

Expand All @@ -133,14 +174,26 @@

Для Каждого Элемент Из ОбъектыМетаданных Цикл
Для Каждого ОбъектМетаданных Из Метаданные[Элемент.Ключ] Цикл
ИмяТеста = СтроковыеУтилиты.ПодставитьПараметрыВСтроку("%1 [%2]", ОбъектМетаданных.ПолноеИмя(), Пояснение);
ПолноеИмяОбъекта = ОбъектМетаданных.ПолноеИмя();
Если ОтборПоПрефиксуОбъекта И Не СтрНачинаетсяС(ВРег(ОбъектМетаданных.Имя), ВРег(ПрефиксОбъекта)) Тогда
Продолжить;
КонецЕсли;
Если ИсключенияИзПроверок.Свойство(Элемент.Ключ)
И ТипЗнч(ИсключенияИзПроверок[Элемент.Ключ]) = Тип("Массив")
И ЛокальныйКонтекстЯдра.ЕстьВИсключаемойКоллекции(ОбъектМетаданных.Имя, ИсключенияИзПроверок[Элемент.Ключ]) Тогда
Продолжить;
КонецЕсли;
//
ИмяТеста = СтроковыеУтилиты.ПодставитьПараметрыВСтроку("%1 [%2]", ПолноеИмяОбъекта, Пояснение);
СтруктураЭлемента = Новый Структура;
СтруктураЭлемента.Вставить("ИмяТеста", ИмяТеста);
СтруктураЭлемента.Вставить("ПолноеИмя", ОбъектМетаданных.ПолноеИмя());
СтруктураЭлемента.Вставить("ПолноеИмя", ПолноеИмяОбъекта);
ОбъектыМетаданных[Элемент.Ключ].Добавить(СтруктураЭлемента);
КонецЦикла;
КонецЦикла;

ЛокальныйКонтекстЯдра = Неопределено;

Возврат ОбъектыМетаданных;

КонецФункции
Expand Down Expand Up @@ -185,4 +238,4 @@

КонецФункции

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