diff --git a/doc/history.MD b/doc/history.MD index b7ec14e54..bf2d05618 100644 --- a/doc/history.MD +++ b/doc/history.MD @@ -1,3 +1,39 @@ +# v6.4.0 + +## BDD - проверка поведения + +- Уточнено формирование шагов из кнопконажималки для таблиц при наличии дробных значений или чисел, начинающихся с нуля (коды/номера справочников/документов) #441 #315 + +- Реализованы новые шаги для работы с гиперссылками в формах #505 + - И я нажимаю на гиперссылку 'Гиперссылка2' для поля "Форматированная строка" + - И я нажимаю на гиперссылку 'Гиперссылка1' для поля с именем "ФорматированнаяСтрокаСсылка" + +- Реализация как асинхронной, так и не асинхронной паузы при поиске элементов #561 #576 Спасибо @pumbaEO + +## Дымовые тесты + +- Исправлено - при выполнении дымовых тестов не открываются отчеты с общими формами #585 #587 #589 #572 + - Спасибо @ViktorErmakov + +- Тесты КомандныйИнтерфейс #584 + - исправил ошибку формирования списка тестов, если есть вложенные разделы командного интерфейса + - добавлена сортировка тестов по алфавиту + - добавлен строгий порядок выполнения тестов друг за другом #584 + +- Тесты проверки режима блокировки - Исключены общие реквизиты из проверки #583 #590 + - Спасибо @SergeyKud + - добавлено понятное сообщение об ошибке для дымовых тестов проверки режима блокировки данных #442 + +## TDD - тесты кодом + +- ОФ: в обычной форме xddTestRunner доработан выбор файлов для совместимости с 8.2 - переделано с Оповещения на Диалог.Выбрать() #568 #588 + - Спасибо @ KrapivinAndrey + +## Плагины + +- Утверждения - исправлены потенциальные ошибки выполнения и остановке тестирования #578 + - Спасибо @ KrapivinAndrey + # v6.3.0 Улучшение отчетов тестирования Allure и дымовых тестов ## BDD - проверка поведения diff --git a/epf/bddRunner/bddRunner/Ext/ObjectModule.bsl b/epf/bddRunner/bddRunner/Ext/ObjectModule.bsl index 97e263fa7..6d7d0c19c 100644 --- a/epf/bddRunner/bddRunner/Ext/ObjectModule.bsl +++ b/epf/bddRunner/bddRunner/Ext/ObjectModule.bsl @@ -7,7 +7,7 @@ Функция ПолучитьВерсиюОбработки(ДобавлятьНазвание = Истина,ТолькоЦифры = Ложь) Экспорт - Версия = "6.3.0"; + Версия = "6.4.0"; Если ТолькоЦифры Тогда Возврат Версия; diff --git "a/epf/bddRunner/bddRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/epf/bddRunner/bddRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 6406a5724..d859476b5 100644 --- "a/epf/bddRunner/bddRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/epf/bddRunner/bddRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -10608,6 +10608,9 @@ РезЗначение = СобратьСтрокуДляПередачиВКод(РезЗначение); Возврат """" + СтрЗаменить(РезЗначение, """", """""") + """"; ИначеЕсли Тип = "Число" Тогда + Если Лев(Значение, 1) = "0" Тогда // TODO заменить в парсере фич - строки 0001 должны определяться как тип "Строка", а не как тип "Число" + Возврат """" + Значение + """"; + КонецЕсли; Возврат Значение; ИначеЕсли Тип = "Дата" Тогда Возврат ПреобразоватьКДатеСтроку(Значение); @@ -15623,7 +15626,8 @@ КонецЕсли; КонецЕсли; ИначеЕсли ИмяУзла = "inputText" Тогда - Если МассивОбъектов[ИдВМассиве - 1] = "FormField" Тогда + АктивныйЭлемент = МассивОбъектов[ИдВМассиве - 1]; + Если АктивныйЭлемент = "FormField" Или АктивныйЭлемент = "Form" Тогда Если ФлагРедактированияТекстаМакета Тогда ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + " в табличный документ """ + МассивСвойств[ИдВМассиве - 2]["name"] + """ я ввожу текст " + ПолучитьКорректноеПредставлениеСтроковогоЗначенияПоля("'" + МассивСвойств[ИдВМассиве]["text"] + "'")); @@ -15675,6 +15679,19 @@ ИначеЕсли ИмяУзла = "executeChoiceFromList" Тогда ЗначениеМеню = МассивСвойств[ИдВМассиве]["presentation"]; ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + " я выбираю из списка '" + ЗначениеМеню + "'"); + + ИначеЕсли ИмяУзла = "clickFormattedStringHyperlink" Тогда + ПредыдущееСвойство = МассивСвойств[ИдВМассиве - 1]; + ИмяОбъекта = ПредыдущееСвойство["title"]; + ИмяГиперссылки = МассивСвойств[ИдВМассиве]["title"]; + + Если СокрЛП(ИмяОбъекта) <> "" И Не ЕстьДублиЗаголовковУПоля(МассивСтруктурФорм, ТекущаяФорма, ИмяОбъекта, "ПолеФормы") Тогда + ТекстШага = "%1 у поля ""%2"" я нажимаю гиперссылку '%3'"; + Иначе + ИмяОбъекта = ПредыдущееСвойство["name"]; + ТекстШага = "%1 у поля с именем ""%2"" я нажимаю гиперссылку '%3'"; + КонецЕсли; + ТекстРезультат.ДобавитьСтроку(СтрШаблон_(ТекстШага, ПолучитьПервоеКлючевоеСлово(СчетчикДействий), ИмяОбъекта, ИмяГиперссылки)); КонецЕсли; КонецЕсли; @@ -17453,10 +17470,21 @@ Если ПустаяСтрока(ИсходнаяСтрока) Или Найти(ИсходнаяСтрока, """") <> 0 Или Найти(ИсходнаяСтрока, "|") <> 0 Тогда Результат = " '" + ИсходнаяСтрока + "' |"; Иначе - ОписаниеТипа = Новый ОписаниеТипов("Число"); + ДобавитьАпострофы = Истина; + + КЧ = Новый КвалификаторыЧисла(20, 5); + ОписаниеТипа = Новый ОписаниеТипов("Число", КЧ); ЧисловоеЗначение = ОписаниеТипа.ПривестиЗначение(ИсходнаяСтрока); - Если ЧисловоеЗначение > 999 Тогда + МаксимальноеЧислоБезРазделителейВПредставлении = 999; + ЧислоОтображаетсяБезПробелов = ЧисловоеЗначение <= МаксимальноеЧислоБезРазделителейВПредставлении; + ЭтоЦелоеЧислоБезДробныхЗнаков = Цел(ЧисловоеЗначение) = ЧисловоеЗначение И Найти(ИсходнаяСтрока, ",") = 0; + + Если ЧислоОтображаетсяБезПробелов И ЭтоЦелоеЧислоБезДробныхЗнаков Тогда + ДобавитьАпострофы = Ложь; + КонецЕсли; + + Если ДобавитьАпострофы Тогда Результат = " '" + ИсходнаяСтрока + "' |"; Иначе Результат = " " + ИсходнаяСтрока + " |"; diff --git a/epf/xddTestRunner/xddTestRunner/Ext/ObjectModule.bsl b/epf/xddTestRunner/xddTestRunner/Ext/ObjectModule.bsl index 0506901ba..48d9b14f1 100644 --- a/epf/xddTestRunner/xddTestRunner/Ext/ObjectModule.bsl +++ b/epf/xddTestRunner/xddTestRunner/Ext/ObjectModule.bsl @@ -1,6 +1,6 @@  Функция Версия() Экспорт - Версия = "6.3.0"; + Версия = "6.4.0"; Возврат Версия; КонецФункции diff --git a/features/Core/ExpectedSomething/ExpectedForms.feature b/features/Core/ExpectedSomething/ExpectedForms.feature index 4157ea1bc..48d1491a1 100644 --- a/features/Core/ExpectedSomething/ExpectedForms.feature +++ b/features/Core/ExpectedSomething/ExpectedForms.feature @@ -17,14 +17,11 @@ Чтобы у меня был функционал для получения шагов Gherkin при изменении формы Для того чтобы я мог использовать их в своих сценариях без программирования - - Контекст: Дано Я запускаю сценарий открытия TestClient или подключаю уже существующий - Когда я удаляю все элементы Справочника "Справочник1" - Когда я создаю fixtures по макету "Макет" - - + Дано я удаляю все элементы Справочника "Справочник1" + Дано я создаю fixtures по макету "Макет" + Дано Я очищаю окно сообщений пользователю Сценарий: Я получаю изменения формы в виде сценария Gherkin @@ -402,8 +399,8 @@ И элемент формы с именем "Реквизит3" стал равен "ЗначениеПеречисления1" #КонецОбласти - И Я нажмаю на кнопку Vanessa-ADD "Забыть состояние формы TestClient" - И Я нажмаю на кнопку Vanessa-ADD "ПолучитьИзмененияФормыGherkin" + И я нажимаю на кнопку Vanessa-ADD "Забыть состояние формы TestClient" + И я нажимаю на кнопку Vanessa-ADD "ПолучитьИзмененияФормыGherkin" И Пауза 2 И В открытой форме я нажимаю на кнопку с заголовком "Записать и закрыть" @@ -435,3 +432,30 @@ Тогда в таблице "Список" текущая строка равна: | 'Реквизит1' | 'Наименование' | | 'ЗначениеПеречисления1' | 'Тестовый Элемент 2' | + +Сценарий: Проверка гиперссылки у форматированной строки + + Дано я открываю форму с форматированной строкой + Когда Я нажимаю кнопку командного интерфейса "Основная" + И В панели функций я выбираю 'Справочник1' + Тогда открылось окно 'Справочник1' + И я нажимаю на кнопку с именем 'ФормаСоздать' + Тогда открылось окно 'Справочник1 (создание)' + Когда я нажимаю на вторую гиперссылку из форматированной строки + И я перехожу к закладке "Вспомогательная" + И я нажимаю на гиперссылку 'Гиперссылка2' для поля "Форматированная строка" + Тогда В последнем сообщении TestClient есть строка "ГиперссылкаФорматированнойСтроки = http://Гиперссылка2" + +Сценарий: Проверка гиперссылки у имени форматированной строки + + Дано я открываю форму с форматированной строкой + Когда Я нажимаю кнопку командного интерфейса "Основная" + И В панели функций я выбираю 'Справочник1' + Тогда открылось окно 'Справочник1' + И я нажимаю на кнопку с именем 'ФормаСоздать' + Тогда открылось окно 'Справочник1 (создание)' + Когда я нажимаю на вторую гиперссылку из форматированной строки + И я перехожу к закладке "Вспомогательная" + И я нажимаю на гиперссылку 'Гиперссылка1' для поля с именем "ФорматированнаяСтрокаСсылка" + Тогда В последнем сообщении TestClient есть строка "ГиперссылкаФорматированнойСтроки = http://Гиперссылка1" + diff --git a/features/Core/ExpectedSomething/ExpectedReport.feature b/features/Core/ExpectedSomething/ExpectedReport.feature index 4a4e637ce..e3ac65b01 100644 --- a/features/Core/ExpectedSomething/ExpectedReport.feature +++ b/features/Core/ExpectedSomething/ExpectedReport.feature @@ -68,8 +68,8 @@ #Тогда Я задаю системные параметры считывания макета НачСтр 1 НачКол 1 КолСтр 5 КолКол 6 - И Я нажмаю на кнопку Vanessa-ADD "Забыть состояние формы TestClient" - И Я нажмаю на кнопку Vanessa-ADD "ПолучитьИзмененияФормыGherkin" + И я нажимаю на кнопку Vanessa-ADD "Забыть состояние формы TestClient" + И я нажимаю на кнопку Vanessa-ADD "ПолучитьИзмененияФормыGherkin" Тогда В реквизите Vanessa-ADD "СгенерированныйСценарий" будет содержаться строка 'Предопределенный' @@ -150,8 +150,8 @@ #Тогда Я задаю системные параметры считывания макета НачСтр 1 НачКол 1 КолСтр 5 КолКол 6 - И Я нажмаю на кнопку Vanessa-ADD "Забыть состояние формы TestClient" - И Я нажмаю на кнопку Vanessa-ADD "ПолучитьИзмененияФормыGherkin" + И я нажимаю на кнопку Vanessa-ADD "Забыть состояние формы TestClient" + И я нажимаю на кнопку Vanessa-ADD "ПолучитьИзмененияФормыGherkin" Тогда В реквизите Vanessa-ADD "СгенерированныйСценарий" будет содержаться строка 'Предопределенный' @@ -209,8 +209,8 @@ #Тогда Я задаю системные параметры считывания макета НачСтр 1 НачКол 1 КолСтр 5 КолКол 6 - И Я нажмаю на кнопку Vanessa-ADD "Забыть состояние формы TestClient" - И Я нажмаю на кнопку Vanessa-ADD "ПолучитьИзмененияФормыGherkin" + И я нажимаю на кнопку Vanessa-ADD "Забыть состояние формы TestClient" + И я нажимаю на кнопку Vanessa-ADD "ПолучитьИзмененияФормыGherkin" Тогда В реквизите Vanessa-ADD "СгенерированныйСценарий" будет содержаться строка 'Предопределенный' @@ -239,8 +239,8 @@ #Тогда Я задаю системные параметры считывания макета НачСтр 1 НачКол 1 КолСтр 5 КолКол 6 - И Я нажмаю на кнопку Vanessa-ADD "Забыть состояние формы TestClient" - И Я нажмаю на кнопку Vanessa-ADD "ПолучитьИзмененияФормыGherkin" + И я нажимаю на кнопку Vanessa-ADD "Забыть состояние формы TestClient" + И я нажимаю на кнопку Vanessa-ADD "ПолучитьИзмененияФормыGherkin" Тогда В реквизите Vanessa-ADD "СгенерированныйСценарий" будет содержаться строка 'Предопределенный' diff --git a/features/Core/ExpectedSomething/ExpectedSteps.feature b/features/Core/ExpectedSomething/ExpectedSteps.feature index 8c50c80e9..30f9db04b 100644 --- a/features/Core/ExpectedSomething/ExpectedSteps.feature +++ b/features/Core/ExpectedSomething/ExpectedSteps.feature @@ -21,7 +21,7 @@ Сценарий: Я проверяю кнопки с одинаковым заголовком - Когда я нажмаю на кнопку Vanessa-ADD "Начать запись поведения" + Когда я нажимаю на кнопку Vanessa-ADD "Начать запись поведения" #Область Создание элементов шапки И В панели разделов я выбираю "Основная" И В панели функций я выбираю "Справочник1" @@ -42,7 +42,7 @@ #КонецОбласти И В открытой форме я нажимаю на кнопку с заголовком "Записать и закрыть" - И я нажмаю на кнопку Vanessa-ADD "Закончить запись поведения" + И я нажимаю на кнопку Vanessa-ADD "Закончить запись поведения" @@ -53,7 +53,7 @@ Когда я удаляю все элементы Справочника "Справочник1" Когда я создаю fixtures по макету "Макет" #КонецОбласти - Когда я нажмаю на кнопку Vanessa-ADD "Начать запись поведения" + Когда я нажимаю на кнопку Vanessa-ADD "Начать запись поведения" Когда Я нажимаю кнопку командного интерфейса "Основная" И в панели функций я выбираю "Справочник1" Тогда открылось окно "Справочник1" @@ -104,7 +104,7 @@ #КонецОбласти И В открытой форме я нажимаю на кнопку с заголовком "Записать и закрыть" - И я нажмаю на кнопку Vanessa-ADD "Закончить запись поведения" + И я нажимаю на кнопку Vanessa-ADD "Закончить запись поведения" #Область Проверка работы генератора шагов diff --git "a/features/Core/ExpectedSomething/step_definitions/ExpectedForms/ExpectedForms/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/features/Core/ExpectedSomething/step_definitions/ExpectedForms/ExpectedForms/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 4d8fa9cce..ffb1bb738 100644 --- "a/features/Core/ExpectedSomething/step_definitions/ExpectedForms/ExpectedForms/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/features/Core/ExpectedSomething/step_definitions/ExpectedForms/ExpectedForms/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -25,6 +25,9 @@ // описание шагов //пример вызова Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,Снипет,ИмяПроцедуры,ПредставлениеТеста,Транзакция,Параметр); + + Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯНажимаюНаГиперссылкуДляПоля(Парам01,Парам02)","ЯНажимаюНаГиперссылкуДляПоля","И я нажимаю на гиперссылку 'Гиперссылка2' для поля ""Форматированная строка""","",""); + Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯНажимаюНаГиперссылкуДляПоляСИменем(Парам01,Парам02)","ЯНажимаюНаГиперссылкуДляПоляСИменем","И я нажимаю на гиперссылку 'Гиперссылка1' для поля с именем ""ФорматированнаяСтрока""","",""); Возврат ВсеТесты; КонецФункции @@ -62,4 +65,32 @@ //Реализация шагов /////////////////////////////////////////////////// +&НаКлиенте +//И я нажимаю на гиперссылку 'Гиперссылка2' для поля "Форматированная строка" +//@ЯНажимаюНаГиперссылкуДляПоля(Парам01,Парам02) +Процедура ЯНажимаюНаГиперссылкуДляПоля(Гиперссылка, ИмяЭлемента, ИскатьПоИмени = Ложь) Экспорт + + Попытка + + ЭлементФормы = Ванесса.НайтиРеквизитОткрытойФормыПоЗаголовку(ИмяЭлемента, ИскатьПоИмени, Истина); + Попытка + ЭлементФормы.НажатьНаГиперссылкуВФорматированнойСтроке(Гиперссылка); + Исключение + ТекстСообщения = Ванесса.ПолучитьТекстСообщенияПользователю("У поля <%1> неудачное нажатие на гиперссылку <%2>."); + ВызватьИсключение Ванесса.СтрШаблон_(ТекстСообщения, ИмяЭлемента, Гиперссылка); + КонецПопытки; + + Исключение + ВызватьИсключение ОписаниеОшибки(); + КонецПопытки; + +КонецПроцедуры + +&НаКлиенте +//И я нажимаю на гиперссылку 'Гиперссылка1' для поля с именем "ФорматированнаяСтрока" +//@ЯНажимаюНаГиперссылкуДляПоляСИменем(Парам01,Парам02) +Процедура ЯНажимаюНаГиперссылкуДляПоляСИменем(Гиперссылка, ИмяЭлемента) Экспорт + ЯНажимаюНаГиперссылкуДляПоля(Гиперссылка, ИмяЭлемента, Истина); +КонецПроцедуры + //окончание текста модуля \ No newline at end of file diff --git "a/features/Core/FeatureLoad/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\244\320\270\321\207\320\230\321\201\320\277\320\276\320\273\321\214\320\267\321\203\321\217\320\232\320\265\321\210EPF.feature" "b/features/Core/FeatureLoad/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\244\320\270\321\207\320\230\321\201\320\277\320\276\320\273\321\214\320\267\321\203\321\217\320\232\320\265\321\210EPF.feature" index 42372ee55..d1432c85d 100644 --- "a/features/Core/FeatureLoad/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\244\320\270\321\207\320\230\321\201\320\277\320\276\320\273\321\214\320\267\321\203\321\217\320\232\320\265\321\210EPF.feature" +++ "b/features/Core/FeatureLoad/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\244\320\270\321\207\320\230\321\201\320\277\320\276\320\273\321\214\320\267\321\203\321\217\320\232\320\265\321\210EPF.feature" @@ -33,7 +33,7 @@ И Я нажимаю на кнопку перезагрузить сценарии в Vanessa-ADD TestClient И я перехожу к закладке "Служебная" И я перехожу к закладке "Таблица step definition" - И я нажмаю на кнопку Vanessa-ADD "Запомнить состояние формы TestClient" + И я нажимаю на кнопку Vanessa-ADD "Запомнить состояние формы TestClient" И Пауза 5 И Я сохраняю служебную epf 2 для проверки работы кеш в каталог Templates И Пауза 1 @@ -43,5 +43,5 @@ И В логе сообщений TestClient есть строка "Служебное сообщение 2" И я перехожу к закладке "Служебная" И я перехожу к закладке "Таблица step definition" - И я нажмаю на кнопку Vanessa-ADD "ПолучитьИзмененияФормыGherkin" + И я нажимаю на кнопку Vanessa-ADD "ПолучитьИзмененияФормыGherkin" Тогда В реквизите Vanessa-ADD "СгенерированныйСценарий" будет содержаться строка 'Версия файла' diff --git "a/features/Core/TestClient/Issue-276-\320\237\320\276\320\273\321\203\321\207\320\270\321\202\321\214\320\237\321\203\321\201\321\202\320\276\320\271\320\234\320\260\320\272\320\265\321\202.feature" "b/features/Core/TestClient/Issue-276-\320\237\320\276\320\273\321\203\321\207\320\270\321\202\321\214\320\237\321\203\321\201\321\202\320\276\320\271\320\234\320\260\320\272\320\265\321\202.feature" index 869603bfe..0fa9176bb 100644 --- "a/features/Core/TestClient/Issue-276-\320\237\320\276\320\273\321\203\321\207\320\270\321\202\321\214\320\237\321\203\321\201\321\202\320\276\320\271\320\234\320\260\320\272\320\265\321\202.feature" +++ "b/features/Core/TestClient/Issue-276-\320\237\320\276\320\273\321\203\321\207\320\270\321\202\321\214\320\237\321\203\321\201\321\202\320\276\320\271\320\234\320\260\320\272\320\265\321\202.feature" @@ -20,8 +20,8 @@ И В панели функций я выбираю "Справочник3" Тогда открылось окно "Справочник3" И В открытой форме я нажимаю на кнопку с заголовком "Создать" - И Я нажмаю на кнопку Vanessa-ADD "Забыть состояние формы TestClient" - И Я нажмаю на кнопку Vanessa-ADD "ПолучитьИзмененияФормыGherkin" + И я нажимаю на кнопку Vanessa-ADD "Забыть состояние формы TestClient" + И я нажимаю на кнопку Vanessa-ADD "ПолучитьИзмененияФормыGherkin" И Пауза 3 Тогда В реквизите Vanessa-ADD "СгенерированныйСценарий" будет содержаться строка 'табличный документ формы с именем "РеквизитТабличныйДокумент" стал пустым' И табличный документ формы с именем "РеквизитТабличныйДокумент" стал пустым diff --git "a/features/Core/TestClient/\320\237\320\276\320\273\321\203\321\207\320\270\321\202\321\214\320\241\320\276\320\264\320\265\321\200\320\266\320\260\320\275\320\270\320\265\320\242\320\260\320\261\320\273\320\270\321\206\321\213.feature" "b/features/Core/TestClient/\320\237\320\276\320\273\321\203\321\207\320\270\321\202\321\214\320\241\320\276\320\264\320\265\321\200\320\266\320\260\320\275\320\270\320\265\320\242\320\260\320\261\320\273\320\270\321\206\321\213.feature" new file mode 100644 index 000000000..187432853 --- /dev/null +++ "b/features/Core/TestClient/\320\237\320\276\320\273\321\203\321\207\320\270\321\202\321\214\320\241\320\276\320\264\320\265\321\200\320\266\320\260\320\275\320\270\320\265\320\242\320\260\320\261\320\273\320\270\321\206\321\213.feature" @@ -0,0 +1,159 @@ +# language: ru + +@IgnoreOn82Builds +@IgnoreOnOFBuilds +@IgnoreOn837 +@IgnoreOn839 + +#из-за ошибки web клиента в 8.3.10 +@IgnoreOnWeb8310 + +@tree + + +Функционал: Автоматизированное получение изменения состояния таблицы формы + +Как Разработчик я хочу +Чтобы у меня был функционал для получения шагов Gherkin при изменении таблицы формы +Для того чтобы я мог использовать их в своих сценариях без программирования + +Контекст: + Дано Я запускаю сценарий открытия TestClient или подключаю уже существующий + Когда я удаляю все элементы Справочника "Справочник1" + Когда я загружаю макет "features\Support\Templates\МакетыДанных\Справочник1_Справочник2.mxl" + +Сценарий: Проверка получения состояния дробных чисел + + Когда я нажимаю на кнопку Vanessa-ADD "Начать запись поведения" + Когда я открываю форму для ввода табличных данных + Когда Я нажимаю кнопку командного интерфейса "Основная" + И В панели функций я выбираю 'Справочник1' + Тогда открылось окно 'Справочник1' + И я нажимаю на кнопку с именем 'ФормаСоздать' + Тогда открылось окно 'Справочник1 (создание)' + И в поле с именем 'Наименование' я ввожу текст 'Тест генерации таблицы' + И я перехожу к следующему реквизиту + Тогда открылось окно 'Справочник1 (создание) *' + И я нажимаю на кнопку Vanessa-ADD "Запомнить состояние формы TestClient" + И добавляю дробное число в таблицу + И в таблице "ТабличнаяЧасть1" я нажимаю на кнопку с именем 'ТабличнаяЧасть1Добавить' + И в таблице "ТабличнаяЧасть1" в поле 'Реквизит число' я ввожу текст '12,34' + И я перехожу к следующему реквизиту + И в таблице "ТабличнаяЧасть1" я завершаю редактирование строки + И В открытой форме я нажимаю на кнопку с заголовком "Записать" + + Тогда таблица "ТабличнаяЧасть1" содержит строки: + | Реквизит число | + | '12,34' | + Тогда таблица "ТабличнаяЧасть1" содержит строки: + | N | Реквизит булево | Реквизит число | Реквизит справочник выбор из формы списка | Реквизит строка | Реквизит дата | Реквизит справочник | Реквизит быстрый выбор ТЧ | Многострочная строка | + | 1 | Нет | '12,34' | '' | '' | '' | '' | '' | '' | + + И я фиксирую изменения в форме Vanessa-ADD + И я нажимаю на кнопку Vanessa-ADD "Закончить запись поведения" + # И я нажимаю на кнопку Vanessa-ADD "Получить состояние текущего элемента формы" + И я нажимаю на кнопку Vanessa-ADD "ПолучитьИзмененияФормыGherkin" + И я нажимаю на кнопку Vanessa-ADD "Забыть состояние формы TestClient" + + И я проверяю правильность формирования дробного числа + Тогда В реквизите Vanessa-ADD "СгенерированныйСценарий" будет содержаться строка "\'12,34\'" + +Сценарий: Проверка получения состояния целых чисел + + Когда я нажимаю на кнопку Vanessa-ADD "Начать запись поведения" + Когда я открываю форму для ввода табличных данных + Когда Я нажимаю кнопку командного интерфейса "Основная" + И В панели функций я выбираю 'Справочник1' + Тогда открылось окно 'Справочник1' + И я нажимаю на кнопку с именем 'ФормаСоздать' + Тогда открылось окно 'Справочник1 (создание)' + И в поле с именем 'Наименование' я ввожу текст 'Тест генерации таблицы' + И я перехожу к следующему реквизиту + Тогда открылось окно 'Справочник1 (создание) *' + И я нажимаю на кнопку Vanessa-ADD "Запомнить состояние формы TestClient" + И добавляю дробное число в таблицу + И в таблице "ТабличнаяЧасть1" я нажимаю на кнопку с именем 'ТабличнаяЧасть1Добавить' + И в таблице "ТабличнаяЧасть1" в поле 'Реквизит число' я ввожу текст '12' + И я перехожу к следующему реквизиту + И в таблице "ТабличнаяЧасть1" я завершаю редактирование строки + И В открытой форме я нажимаю на кнопку с заголовком "Записать" + + Тогда таблица "ТабличнаяЧасть1" содержит строки: + | Реквизит число | + | '12,00' | + Тогда таблица "ТабличнаяЧасть1" содержит строки: + | N | Реквизит булево | Реквизит число | Реквизит справочник выбор из формы списка | Реквизит строка | Реквизит дата | Реквизит справочник | Реквизит быстрый выбор ТЧ | Многострочная строка | + | 1 | Нет | '12,00' | '' | '' | '' | '' | '' | '' | + + И я фиксирую изменения в форме Vanessa-ADD + И я нажимаю на кнопку Vanessa-ADD "Закончить запись поведения" + # И я нажимаю на кнопку Vanessa-ADD "Получить состояние текущего элемента формы" + И я нажимаю на кнопку Vanessa-ADD "ПолучитьИзмененияФормыGherkin" + И я нажимаю на кнопку Vanessa-ADD "Забыть состояние формы TestClient" + + И я проверяю правильность формирования дробного числа + Тогда В реквизите Vanessa-ADD "СгенерированныйСценарий" будет содержаться строка "\'12,00\'" + +Сценарий: Проверка получения состояния чисел из 4 знаков + + Когда я нажимаю на кнопку Vanessa-ADD "Начать запись поведения" + Когда я открываю форму для ввода табличных данных + Когда Я нажимаю кнопку командного интерфейса "Основная" + И В панели функций я выбираю 'Справочник1' + Тогда открылось окно 'Справочник1' + И я нажимаю на кнопку с именем 'ФормаСоздать' + Тогда открылось окно 'Справочник1 (создание)' + И в поле с именем 'Наименование' я ввожу текст 'Тест генерации таблицы' + И я перехожу к следующему реквизиту + Тогда открылось окно 'Справочник1 (создание) *' + И я нажимаю на кнопку Vanessa-ADD "Запомнить состояние формы TestClient" + И добавляю дробное число в таблицу + И в таблице "ТабличнаяЧасть1" я нажимаю на кнопку с именем 'ТабличнаяЧасть1Добавить' + И в таблице "ТабличнаяЧасть1" в поле 'Реквизит число' я ввожу текст '1200' + И я перехожу к следующему реквизиту + И в таблице "ТабличнаяЧасть1" я завершаю редактирование строки + И В открытой форме я нажимаю на кнопку с заголовком "Записать" + + Тогда таблица "ТабличнаяЧасть1" содержит строки: + | Реквизит число | + | '1 200,00' | + Тогда таблица "ТабличнаяЧасть1" содержит строки: + | N | Реквизит булево | Реквизит число | Реквизит справочник выбор из формы списка | Реквизит строка | Реквизит дата | Реквизит справочник | Реквизит быстрый выбор ТЧ | Многострочная строка | + | 1 | Нет | '1 200,00' | '' | '' | '' | '' | '' | '' | + + И я фиксирую изменения в форме Vanessa-ADD + И я нажимаю на кнопку Vanessa-ADD "Закончить запись поведения" + # И я нажимаю на кнопку Vanessa-ADD "Получить состояние текущего элемента формы" + И я нажимаю на кнопку Vanessa-ADD "ПолучитьИзмененияФормыGherkin" + И я нажимаю на кнопку Vanessa-ADD "Забыть состояние формы TestClient" + + И я проверяю правильность формирования дробного числа + Тогда В реквизите Vanessa-ADD "СгенерированныйСценарий" будет содержаться строка "\'1 200,00\'" + +Сценарий: Проверка получения кода справочника + + Когда я нажимаю на кнопку Vanessa-ADD "Начать запись поведения" + Когда я открываю форму для просмотра кода справочник в таблице + Когда Я нажимаю кнопку командного интерфейса "Основная" + И В панели функций я выбираю 'Справочник1' + Тогда открылось окно 'Справочник1' + И я нажимаю на кнопку Vanessa-ADD "Забыть состояние формы TestClient" + + И я фиксирую изменения в форме Vanessa-ADD + И я нажимаю на кнопку Vanessa-ADD "Закончить запись поведения" + # И я нажимаю на кнопку Vanessa-ADD "Получить состояние текущего элемента формы" + И я нажимаю на кнопку Vanessa-ADD "ПолучитьИзмененияФормыGherkin" + И я нажимаю на кнопку Vanessa-ADD "Забыть состояние формы TestClient" + + И я проверяю правильность кода справочника + + Тогда таблица "Список" содержит строки: + | Наименование | Код | + | Тестовый Элемент 1 | 000000001 | + # | Тестовый Элемент 1 | '000000001' | + | Тестовый Элемент 2 | 000000002 | + + Тогда В реквизите Vanessa-ADD "СгенерированныйСценарий" будет содержаться строка "| Тестовый Элемент 1 | 000000001 |" + Тогда В реквизите Vanessa-ADD "СгенерированныйСценарий" будет содержаться строка "| Тестовый Элемент 2 | 000000002 |" + # Тогда В реквизите Vanessa-ADD "СгенерированныйСценарий" будет содержаться строка "| Тестовый Элемент 1 | \'000000001\' |" + # Тогда В реквизите Vanessa-ADD "СгенерированныйСценарий" будет содержаться строка "| Тестовый Элемент 2 | \'000000002\' |" diff --git "a/features/Support/Templates/\320\234\320\260\320\272\320\265\321\202\321\213\320\224\320\260\320\275\320\275\321\213\321\205/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721_\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722.mxl" "b/features/Support/Templates/\320\234\320\260\320\272\320\265\321\202\321\213\320\224\320\260\320\275\320\275\321\213\321\205/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721_\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722.mxl" new file mode 100644 index 000000000..91d716780 Binary files /dev/null and "b/features/Support/Templates/\320\234\320\260\320\272\320\265\321\202\321\213\320\224\320\260\320\275\320\275\321\213\321\205/\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721_\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2722.mxl" differ diff --git "a/features/libraries/UITestRunner/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/features/libraries/UITestRunner/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 251f0a5ba..4543c18ba 100644 --- "a/features/libraries/UITestRunner/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/features/libraries/UITestRunner/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -1581,14 +1581,6 @@ &НаКлиенте Процедура ЯЖдуЗакрытияОкнаВТеченииСекундОбработчикОжидания() - НужноеОкно = Ванесса.НайтиОкноTestClientПоЗаголовку(ЗначениеОбрабткаОжидания); - - Если НужноеОкно = Неопределено Тогда - ОтключитьОбработчикОжидания("ЯЖдуЗакрытияОкнаВТеченииСекундОбработчикОжидания"); - Ванесса.ПродолжитьВыполнениеШагов(); - Возврат; - КонецЕсли; - Если (ТекущаяДата() - ДатаНачалаОбработкиОжидания) > КоличествоСекундОбработкаОжидания Тогда ОтключитьОбработчикОжидания("ЯЖдуЗакрытияОкнаВТеченииСекундОбработчикОжидания"); ТекстСообщения = "Ожидали в течение <%1> секунд, что закроется окно с заголовком <%2>"; @@ -1597,20 +1589,60 @@ Ванесса.ПродолжитьВыполнениеШагов(Истина,ТекстСообщения); Возврат; КонецЕсли; + + НужноеОкно = Ванесса.НайтиОкноTestClientПоЗаголовку(ЗначениеОбрабткаОжидания); + + Если НужноеОкно = Неопределено Тогда + ОтключитьОбработчикОжидания("ЯЖдуЗакрытияОкнаВТеченииСекундОбработчикОжидания"); + Ванесса.ПродолжитьВыполнениеШагов(); + Возврат; + КонецЕсли; + КонецПроцедуры &НаКлиенте //И я жду закрытия окна "Имя окна" в течении 60 секунд //@ЯЖдуЗакрытияОкнаВТеченииСекунд(Парам01,Парам02) Процедура ЯЖдуЗакрытияОкнаВТеченииСекунд(ИмяОкна,КоличествоСекунд) Экспорт - Ванесса.ЗапретитьВыполнениеШагов(); + //Ванесса.ЗапретитьВыполнениеШагов(); Ванесса.ОбработатьСменуАктивногоОкна(); ДатаНачалаОбработкиОжидания = ТекущаяДата(); ЗначениеОбрабткаОжидания = ИмяОкна; КоличествоСекундОбработкаОжидания = Ванесса.ЗначениеТаймаутаДляАсинхронногоШага(КоличествоСекунд); - ПодключитьОбработчикОжидания("ЯЖдуЗакрытияОкнаВТеченииСекундОбработчикОжидания",1,Ложь); + + Пока (ТекущаяДата() - ДатаНачалаОбработкиОжидания) < КоличествоСекундОбработкаОжидания Цикл + + НужноеОкно = Ванесса.НайтиОкноTestClientПоЗаголовку(ЗначениеОбрабткаОжидания); + + Если НужноеОкно = Неопределено Тогда + ОтключитьОбработчикОжидания("ЯЖдуЗакрытияОкнаВТеченииСекундОбработчикОжидания"); + Ванесса.ПродолжитьВыполнениеШагов(); + Возврат; + КонецЕсли; + + ЗаголовокПауза = Строка(Новый УникальныйИдентификатор); + КонтекстСохраняемый.ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"),ЗаголовокПауза, ЗаголовокПауза, 2) + + КонецЦикла; + + ОтключитьОбработчикОжидания("ЯЖдуЗакрытияОкнаВТеченииСекундОбработчикОжидания"); + НужноеОкно = Ванесса.НайтиОкноTestClientПоЗаголовку(ЗначениеОбрабткаОжидания); + + Если НужноеОкно = Неопределено Тогда + ОтключитьОбработчикОжидания("ЯЖдуЗакрытияОкнаВТеченииСекундОбработчикОжидания"); + Ванесса.ПродолжитьВыполнениеШагов(); + Возврат; + КонецЕсли; + + + ТекстСообщения = "Ожидали в течение <%1> секунд, что закроется окно с заголовком <%2>"; + ТекстСообщения = СтрЗаменить(ТекстСообщения,"%1",КоличествоСекундОбработкаОжидания); + ТекстСообщения = СтрЗаменить(ТекстСообщения,"%2",ЗначениеОбрабткаОжидания); + Ванесса.ПродолжитьВыполнениеШагов(Истина,ТекстСообщения); + + //ПодключитьОбработчикОжидания("ЯЖдуЗакрытияОкнаВТеченииСекундОбработчикОжидания",1,Ложь); КонецПроцедуры &НаКлиенте diff --git "a/features/libraries/VB/step_definitions/VBForm/VBForm/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/features/libraries/VB/step_definitions/VBForm/VBForm/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 00be69fa3..1442f5077 100644 --- "a/features/libraries/VB/step_definitions/VBForm/VBForm/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/features/libraries/VB/step_definitions/VBForm/VBForm/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -26,7 +26,7 @@ // описание шагов //пример вызова Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,Снипет,ИмяПроцедуры,ПредставлениеТеста,Транзакция,Параметр); - Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯНажмаюНаКнопкуVanessa_ADD(Парам01)","ЯНажмаюНаКнопкуVanessa_ADD","Когда я нажмаю на кнопку Vanessa-ADD ""Начать запись поведения"""); + Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯНажимаюНаКнопкуVanessa_ADD(Парам01)","ЯНажимаюНаКнопкуVanessa_ADD","Когда я нажимаю на кнопку Vanessa-ADD ""Начать запись поведения"""); Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ВРеквизитеVanessa_ADDБудетСодержатьсяСтрока(Парам01,Парам02)","ВРеквизитеVanessa_ADDБудетСодержатьсяСтрока","Тогда В реквизите Vanessa-ADD ""СгенерированныйСценарий"" будет содержаться строка ""ываыва"""); Возврат ВсеТесты; @@ -70,9 +70,9 @@ /////////////////////////////////////////////////// &НаКлиенте -//Когда я нажмаю на кнопку Vanessa-ADD "Начать запись поведения" -//@ЯНажмаюНаКнопкуVanessa_ADD(Парам01) -Процедура ЯНажмаюНаКнопкуVanessa_ADD(ИмяКнопки) Экспорт +//Когда я нажимаю на кнопку Vanessa-ADD "Начать запись поведения" +//@ЯНажимаюНаКнопкуVanessa_ADD(Парам01) +Процедура ЯНажимаюНаКнопкуVanessa_ADD(ИмяКнопки) Экспорт Если ИмяКнопки = "Начать запись поведения" Тогда Ванесса.НачатьЗаписьДействийПользователя(); ИначеЕсли ИмяКнопки = "Закончить запись поведения" Тогда diff --git "a/features/libraries/\320\237\320\260\321\203\320\267\320\260/step_definitions/\320\241\320\264\320\265\320\273\320\260\321\202\321\214\320\237\320\260\321\203\320\267\321\203/\320\241\320\264\320\265\320\273\320\260\321\202\321\214\320\237\320\260\321\203\320\267\321\203/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/features/libraries/\320\237\320\260\321\203\320\267\320\260/step_definitions/\320\241\320\264\320\265\320\273\320\260\321\202\321\214\320\237\320\260\321\203\320\267\321\203/\320\241\320\264\320\265\320\273\320\260\321\202\321\214\320\237\320\260\321\203\320\267\321\203/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index bddfe843d..f91f46800 100644 --- "a/features/libraries/\320\237\320\260\321\203\320\267\320\260/step_definitions/\320\241\320\264\320\265\320\273\320\260\321\202\321\214\320\237\320\260\321\203\320\267\321\203/\320\241\320\264\320\265\320\273\320\260\321\202\321\214\320\237\320\260\321\203\320\267\321\203/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/features/libraries/\320\237\320\260\321\203\320\267\320\260/step_definitions/\320\241\320\264\320\265\320\273\320\260\321\202\321\214\320\237\320\260\321\203\320\267\321\203/\320\241\320\264\320\265\320\273\320\260\321\202\321\214\320\237\320\260\321\203\320\267\321\203/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -74,6 +74,26 @@ //И Пауза 1 //@Пауза(Парам01) Процедура Пауза(КолСекунд) Экспорт + + Если КонтекстСохраняемый.Свойство("ТестовоеПриложение") Тогда + + + ДатаНачалаОбработкиОжидания = ТекущаяДата(); + КоличествоСекундОбработкаОжидания = Ванесса.ЗначениеТаймаутаДляАсинхронногоШага(КолСекунд); + + Пока (ТекущаяДата() - ДатаНачалаОбработкиОжидания) < КоличествоСекундОбработкаОжидания Цикл + + ЗаголовокПауза = Строка(Новый УникальныйИдентификатор); + КонтекстСохраняемый.ТестовоеПриложение.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"),ЗаголовокПауза, ЗаголовокПауза, 1); + + КонецЦикла; + + Возврат; + + + + КонецЕсли; + Ванесса.ЗапретитьВыполнениеШагов(); КоличествоСекундОбработкаОжидания = КолСекунд; diff --git a/lib/CF/83/Configuration.xml b/lib/CF/83/Configuration.xml index 434dd7569..ff0e31179 100644 --- a/lib/CF/83/Configuration.xml +++ b/lib/CF/83/Configuration.xml @@ -32,7 +32,7 @@ ru - ADD/BDD, ver. 6.3.0 + ADD/BDD, ver. 6.4.0 @@ -45,7 +45,7 @@ Russian - 6.3.0 + 6.4.0 false false diff --git "a/lib/CF/83NoSync/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.Module.txt" "b/lib/CF/83NoSync/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.Module.txt" index cddb1a68f..3109b88fe 100644 --- "a/lib/CF/83NoSync/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.Module.txt" +++ "b/lib/CF/83NoSync/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.Module.txt" @@ -1,4 +1,11 @@ - +&НаКлиенте +Процедура ПриОткрытии(Отказ) + Гиперссылка1 = Новый ФорматированнаяСтрока("Гиперссылка1",,,,"http://Гиперссылка1"); + Гиперссылка2 = Новый ФорматированнаяСтрока("Гиперссылка2",,,,"http://Гиперссылка2"); + + ФорматированнаяСтрока = Новый ФорматированнаяСтрока(Гиперссылка1, " - ", Гиперссылка2); +КонецПроцедуры + &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) Сообщить("Записываю элемент"); @@ -109,3 +116,8 @@ Сообщить("КонтекстноеМенюТабличнаяЧасть1"); КонецПроцедуры +&НаКлиенте +Процедура ФорматированнаяСтрокаСсылкаОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; + Сообщить("ГиперссылкаФорматированнойСтроки = " + НавигационнаяСсылкаФорматированнойСтроки); +КонецПроцедуры diff --git "a/lib/CF/83NoSync/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.xml" "b/lib/CF/83NoSync/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.xml" index ee0933e47..a5e915b14 100644 --- "a/lib/CF/83NoSync/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.xml" +++ "b/lib/CF/83NoSync/Catalog.\320\241\320\277\321\200\320\260\320\262\320\276\321\207\320\275\320\270\320\2721.Form.\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260.Form.xml" @@ -18,6 +18,7 @@ + ПриОткрытии ПередЗаписью ПриЗакрытии @@ -438,6 +439,14 @@ + + ФорматированнаяСтрока + + + + ФорматированнаяСтрокаСсылкаОбработкаНавигационнойСсылки + + @@ -611,6 +620,17 @@ fd:FormattedDocument + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Форматированная строка</v8:content> + </v8:item> + + + v8ui:FormattedString + + diff --git a/lib/CF/83NoSync/Configuration.xml b/lib/CF/83NoSync/Configuration.xml index 69f6a6875..be60b4e51 100644 --- a/lib/CF/83NoSync/Configuration.xml +++ b/lib/CF/83NoSync/Configuration.xml @@ -32,7 +32,7 @@ ru - ADD/BDD, ver. 6.3.0 + ADD/BDD, ver. 6.4.0 @@ -45,7 +45,7 @@ Russian - 6.3.0 + 6.4.0 false false diff --git a/lib/CF/83xdd/Configuration.xml b/lib/CF/83xdd/Configuration.xml index 1d4e14b8c..b32af2852 100644 --- a/lib/CF/83xdd/Configuration.xml +++ b/lib/CF/83xdd/Configuration.xml @@ -32,7 +32,7 @@ ru - ADD/TDD, ver. 6.3.0 + ADD/TDD, ver. 6.4.0 @@ -45,7 +45,7 @@ Russian - 6.3.0 + 6.4.0 false true diff --git "a/lib/CF/83xddNoSync/CommonAttributes/\320\236\320\261\321\211\320\270\320\271\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\2021.xml" "b/lib/CF/83xddNoSync/CommonAttributes/\320\236\320\261\321\211\320\270\320\271\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\2021.xml" new file mode 100644 index 000000000..77d55c90c --- /dev/null +++ "b/lib/CF/83xddNoSync/CommonAttributes/\320\236\320\261\321\211\320\270\320\271\320\240\320\265\320\272\320\262\320\270\320\267\320\270\321\2021.xml" @@ -0,0 +1,50 @@ + + + + + ОбщийРеквизит1 + + + + xs:string + + 10 + Variable + + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + + DontUse + DontUse + Independently + + + + DontUse + DontUse + Separate + DontIndex + Use + + + \ No newline at end of file diff --git a/lib/CF/83xddNoSync/Configuration.xml b/lib/CF/83xddNoSync/Configuration.xml index ba039827b..69cbc4c84 100644 --- a/lib/CF/83xddNoSync/Configuration.xml +++ b/lib/CF/83xddNoSync/Configuration.xml @@ -32,7 +32,7 @@ ru - ADD/TDD, ver. 6.3.0 + ADD/TDD, ver. 6.4.0 @@ -45,7 +45,7 @@ Russian - 6.3.0 + 6.4.0 false true @@ -133,6 +133,7 @@ xddВызовСервера ЗапускПриложенияКлиент ЗапускПриложенияВызовСервера + ОбщийРеквизит1 ПланОбмена1 ФункциональнаяОпция1 ФормаОтчета diff --git a/packagedef b/packagedef index bc41a0b40..4dfb16e30 100644 --- a/packagedef +++ b/packagedef @@ -161,7 +161,7 @@ Сообщить("ИНФОРМАЦИЯ - Создан файл релиза " + ФайлКонечный.ПолноеИмя); КонецПроцедуры -ВерсияПакета = "6.3.0"; +ВерсияПакета = "6.4.0"; Описание.Имя("add") .Версия(ВерсияПакета) diff --git "a/plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 7a644f180..6b83dc79e 100644 --- "a/plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/plugins/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -107,12 +107,12 @@ &НаКлиенте Процедура ПроверитьВыполнилось(Знач СтрокаАлгоритм, ПараметрыИлиДопСообщениеОшибки = Неопределено, Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры; + Перем ЛокальныеПараметры; Если ТипЗнч(ПараметрыИлиДопСообщениеОшибки) = Тип("Строка") Тогда ДопСообщениеОшибки = ПараметрыИлиДопСообщениеОшибки; Иначе - Параметры = ПараметрыИлиДопСообщениеОшибки; + ЛокальныеПараметры = ПараметрыИлиДопСообщениеОшибки; КонецЕсли; Попытка Выполнить(СтрокаАлгоритм); @@ -126,21 +126,21 @@ &НаКлиенте Процедура ПроверитьМетодВыполнился(Объект, Знач ИмяМетода, ПараметрыИлиДопСообщениеОшибки = Неопределено, Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры; + Перем ЛокальныеПараметры; Если ТипЗнч(ПараметрыИлиДопСообщениеОшибки) = Тип("Строка") Тогда ДопСообщениеОшибки = ПараметрыИлиДопСообщениеОшибки; Иначе - Параметры = ПараметрыИлиДопСообщениеОшибки; - Если Параметры <> Неопределено Тогда - ТипПараметра = ТипЗнч(Параметры); + ЛокальныеПараметры = ПараметрыИлиДопСообщениеОшибки; + Если ЛокальныеПараметры <> Неопределено Тогда + ТипПараметра = ТипЗнч(ЛокальныеПараметры); Если ТипПараметра <> Тип("Массив") Тогда ВызватьИсключение ("Ожидали, что вторым параметром будет передан массив параметров для метода <"+ИмяМетода+">, а получили другой объект с типом <"+ТипПараметра+">"); КонецЕсли; КонецЕсли; КонецЕсли; - ПараметрыСтрока = ПараметрыСтрокой(Параметры); + ПараметрыСтрока = ПараметрыСтрокой(ЛокальныеПараметры); СтрокаВыполнения = "Объект." + ИмяМетода + "(" + ПараметрыСтрока + ")"; @@ -155,11 +155,11 @@ КонецПроцедуры &НаКлиенте -Функция ПараметрыСтрокой(Параметры) +Функция ПараметрыСтрокой(ЛокальныеПараметры) ПараметрыСтрока = ""; - Если ЗначениеЗаполнено(Параметры) Тогда - Для Индекс = 0 По Параметры.ВГраница() Цикл - ПараметрыСтрока = ПараметрыСтрока + ", Параметры[" + Формат(Индекс, "ЧН=0; ЧГ=0") + "]"; + Если ЗначениеЗаполнено(ЛокальныеПараметры) Тогда + Для Индекс = 0 По ЛокальныеПараметры.ВГраница() Цикл + ПараметрыСтрока = ПараметрыСтрока + ", ЛокальныеПараметры[" + Формат(Индекс, "ЧН=0; ЧГ=0") + "]"; КонецЦикла; КонецЕсли; Возврат Сред(ПараметрыСтрока, 3); @@ -167,12 +167,12 @@ &НаКлиенте Процедура ПроверитьНеВыполнилось(Знач СтрокаАлгоритм, ПараметрыИлиОжидаемоеОписаниеОшибки, Знач ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки = "", Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры, ОжидаемоеОписаниеОшибки; + Перем ЛокальныеПараметры, ОжидаемоеОписаниеОшибки; Если ТипЗнч(ПараметрыИлиОжидаемоеОписаниеОшибки) = Тип("Строка") Тогда ОжидаемоеОписаниеОшибки = ПараметрыИлиОжидаемоеОписаниеОшибки; ДопСообщениеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; Иначе - Параметры = ПараметрыИлиОжидаемоеОписаниеОшибки; + ЛокальныеПараметры = ПараметрыИлиОжидаемоеОписаниеОшибки; ОжидаемоеОписаниеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; КонецЕсли; Попытка @@ -191,15 +191,15 @@ &НаКлиенте Процедура ПроверитьМетодНеВыполнился(Объект, ИмяМетода, ПараметрыИлиОжидаемоеОписаниеОшибки, Знач ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки = "", Знач ДопСообщениеОшибки = "") Экспорт - Перем Параметры, ОжидаемоеОписаниеОшибки; + Перем ЛокальныеПараметры, ОжидаемоеОписаниеОшибки; Если ТипЗнч(ПараметрыИлиОжидаемоеОписаниеОшибки) = Тип("Строка") Тогда ОжидаемоеОписаниеОшибки = ПараметрыИлиОжидаемоеОписаниеОшибки; ДопСообщениеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; Иначе - Параметры = ПараметрыИлиОжидаемоеОписаниеОшибки; - Если Параметры <> Неопределено Тогда - ТипПараметра = ТипЗнч(Параметры); + ЛокальныеПараметры = ПараметрыИлиОжидаемоеОписаниеОшибки; + Если ЛокальныеПараметры <> Неопределено Тогда + ТипПараметра = ТипЗнч(ЛокальныеПараметры); Если ТипПараметра <> Тип("Массив") Тогда ВызватьИсключение ("Ожидали, что третьим параметром будет передан массив параметров для метода <"+ИмяМетода+">, а получили другой объект с типом <"+ТипПараметра+">"); КонецЕсли; @@ -207,7 +207,7 @@ ОжидаемоеОписаниеОшибки = ОжидаемоеОписаниеОшибкиИлиДопСообщениеОшибки; КонецЕсли; - ПараметрыСтрока = ПараметрыСтрокой(Параметры); + ПараметрыСтрока = ПараметрыСтрокой(ЛокальныеПараметры); СтрокаВыполнения = "Объект." + ИмяМетода + "(" + ПараметрыСтрока + ")"; diff --git "a/plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Ext/ObjectModule.bsl" "b/plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Ext/ObjectModule.bsl" index 435e9b166..f5096627b 100644 --- "a/plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Ext/ObjectModule.bsl" +++ "b/plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Ext/ObjectModule.bsl" @@ -22,7 +22,7 @@ Перем мТЗКэшОбъектов; Функция Версия() Экспорт - Версия = "6.3.0"; + Версия = "6.4.0"; Возврат Версия; КонецФункции diff --git a/tests/smoke/Tests_SmokeCommonModules/Tests_SmokeCommonModules/Ext/ObjectModule.bsl b/tests/smoke/Tests_SmokeCommonModules/Tests_SmokeCommonModules/Ext/ObjectModule.bsl index 37264fbd1..1693c8452 100644 --- a/tests/smoke/Tests_SmokeCommonModules/Tests_SmokeCommonModules/Ext/ObjectModule.bsl +++ b/tests/smoke/Tests_SmokeCommonModules/Tests_SmokeCommonModules/Ext/ObjectModule.bsl @@ -552,10 +552,10 @@ Procedure AddSmokeCommonModuleTest(TestsSet, CommonModule) EndIf; TestsSet.Добавить(TestName, TestParameters, _StrTemplate( - NStr("en='Common module : %1 {%2}'; - |ru='Общий модуль : %1 {%2}'; + NStr("en='Common module : %1 {%2} - checking name of common module'; + |ru='Общий модуль : %1 {%2} - проверка наименования общего модуля'; |uk='Загальний модуль : %1 {%2}'; - |en_CA='Common module : %1 {%2}'"), + |en_CA='Common module : %1 {%2} - checking name of common module'"), CommonModule.Name, CommonModule.Comment)); EndProcedure // AddSmokeCommonModuleTest() diff --git "a/tests/smoke/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\240\320\265\320\266\320\270\320\274\320\260\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\240\320\265\320\266\320\270\320\274\320\260\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Ext/ObjectModule.bsl" "b/tests/smoke/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\240\320\265\320\266\320\270\320\274\320\260\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\240\320\265\320\266\320\270\320\274\320\260\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Ext/ObjectModule.bsl" index a0a2e75fb..9c57b5e25 100644 --- "a/tests/smoke/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\240\320\265\320\266\320\270\320\274\320\260\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\240\320\265\320\266\320\270\320\274\320\260\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Ext/ObjectModule.bsl" +++ "b/tests/smoke/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\240\320\265\320\266\320\270\320\274\320\260\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\240\320\265\320\266\320\270\320\274\320\260\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Ext/ObjectModule.bsl" @@ -19,6 +19,7 @@ ИтераторМетаданных.ИсключаемыеМетаданные.Добавить(Метаданные.НумераторыДокументов); ИтераторМетаданных.ИсключаемыеМетаданные.Добавить(Метаданные.КритерииОтбора); ИтераторМетаданных.ИсключаемыеМетаданные.Добавить(Метаданные.HTTPСервисы); + ИтераторМетаданных.ИсключаемыеМетаданные.Добавить(Метаданные.ОбщиеРеквизиты); КонецПроцедуры @@ -35,7 +36,8 @@ Родитель = КорневаяСтрока.ОбъектМетаданных; // Начинаем группу тестов по разделу метаданных - НаборТестовПараметр.НачатьГруппу("Проверка режима блокировки данных " + Родитель); + ИмяНабораТестов = "Проверка режима блокировки данных " + Родитель; + НаборТестовПараметр.НачатьГруппу(ИмяНабораТестов); // Проходим по составу раздела метаданных Для Каждого СтрокаМетаданных Из КорневаяСтрока.Строки Цикл @@ -48,12 +50,12 @@ // Для веб-сервиса режим блокировки проверяем у его операций Для Каждого Операция Из ТекОбъектМетаданных.Операции Цикл ПараметрыТеста = НаборТестовПараметр.ПараметрыТеста(ПолноеИмяОбъекта, Родитель, Операция.Имя); - ЗаголовокТеста = "" + ПолноеИмяОбъекта + "." + Операция.Имя; + ЗаголовокТеста = "" + ПолноеИмяОбъекта + "." + Операция.Имя + " - " + ИмяНабораТестов; НаборТестовПараметр.Добавить("Тест_ПроверитьРежимБлокировкиОбъекта", ПараметрыТеста, ЗаголовокТеста); КонецЦикла; Иначе ПараметрыТеста = НаборТестовПараметр.ПараметрыТеста(ПолноеИмяОбъекта, Родитель, ""); - ЗаголовокТеста = ПолноеИмяОбъекта; + ЗаголовокТеста = ПолноеИмяОбъекта + " - " + ИмяНабораТестов; НаборТестовПараметр.Добавить("Тест_ПроверитьРежимБлокировкиОбъекта", ПараметрыТеста, ЗаголовокТеста); КонецЕсли; @@ -69,7 +71,9 @@ ОбъектМетаданных = ОбъектМетаданных.Операции.Найти(ИмяОперации); КонецЕсли; РежимПроверен = ОбъектМетаданных.РежимУправленияБлокировкойДанных = Метаданные.РежимУправленияБлокировкойДанных; - Ожидаем.Что(РежимПроверен).ЕстьИстина(); + + ТекстОшибки = "Режим блокировки объекта метаданных не соответствует корневому режиму конфигурации!"; + Ожидаем.Что(РежимПроверен, ТекстОшибки).ЕстьИстина(); КонецПроцедуры diff --git "a/tests/smoke/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\247\321\202\320\265\320\275\320\270\321\217\320\235\320\265\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\320\260\320\274\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\247\321\202\320\265\320\275\320\270\321\217\320\235\320\265\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\320\260\320\274\320\270/Ext/ObjectModule.bsl" "b/tests/smoke/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\247\321\202\320\265\320\275\320\270\321\217\320\235\320\265\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\320\260\320\274\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\247\321\202\320\265\320\275\320\270\321\217\320\235\320\265\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\320\260\320\274\320\270/Ext/ObjectModule.bsl" index aa3cd9395..f91b3da23 100644 --- "a/tests/smoke/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\247\321\202\320\265\320\275\320\270\321\217\320\235\320\265\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\320\260\320\274\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\247\321\202\320\265\320\275\320\270\321\217\320\235\320\265\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\320\260\320\274\320\270/Ext/ObjectModule.bsl" +++ "b/tests/smoke/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\247\321\202\320\265\320\275\320\270\321\217\320\235\320\265\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\320\260\320\274\320\270/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\247\321\202\320\265\320\275\320\270\321\217\320\235\320\265\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\320\260\320\274\320\270/Ext/ObjectModule.bsl" @@ -39,7 +39,8 @@ НаборТестов = НаборТестовПараметр; // Запищем в переменную модуля, чтобы другие методы могли дополнять набор тестов Инициализация(КонтекстЯдраПараметр);// Все инициализируем. В т.ч. и ИтераторМетаданных - НаборТестов.Добавить("Тест_РолиОпределены"); // Проверим, что есть роли с полными полномочиями чтения + НаборТестов.Добавить("Тест_РолиОпределены", Неопределено, "Есть роли с полными/администраторскими полномочиями чтения - " + + ЗаголовокОбщаяЧасть()); // Заполним дерево тестов Если ЗначениеЗаполнено(ПривилегированныеРоли) Тогда @@ -65,7 +66,7 @@ ПолноеИмяОбъекта = ОбъектМетаданных.ПолноеИмя(); - ЗаголовокОбщаяЧасть = "Проверка доступа на Чтение Не-Администраторами"; + ЗаголовокОбщаяЧасть = ЗаголовокОбщаяЧасть(); Если Родитель=Неопределено И ТипЗнч(ОбъектМетаданных)=Тип("Строка") Тогда НаборТестов.НачатьГруппу(ЗаголовокОбщаяЧасть + " " + ОбъектМетаданных); @@ -100,6 +101,10 @@ КонецПроцедуры +Функция ЗаголовокОбщаяЧасть() + Возврат "Проверка доступа на Чтение Не-Администраторами"; +КонецФункции + #Область РаботаСНастройками Процедура ЗагрузитьНастройки() diff --git "a/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 77dce0896..4b789b089 100644 --- "a/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/\321\202\320\265\321\201\321\202\321\213_\320\232\320\276\320\274\320\260\320\275\320\264\320\275\321\213\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -23,14 +23,14 @@ Объект.Настройки = Новый Структура; КонецЕсли; - Если ЕстьНастройка("СтрогийПорядокВыполнения", Объект.Настройки) Тогда - Объект.СтрогийПорядокВыполнения = Объект.Настройки.СтрогийПорядокВыполнения; - КонецЕсли; - НаборНастроекПоУмолчанию = СоздатьНаборНастроекПоУмолчанию(); ЗаменитьНесуществующиеНастройкиЗначениямиПоУмолчанию(Объект.Настройки, НаборНастроекПоУмолчанию); + Если ЕстьНастройка("СтрогийПорядокВыполнения", Объект.Настройки) Тогда + Объект.СтрогийПорядокВыполнения = Объект.Настройки.СтрогийПорядокВыполнения; + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -101,7 +101,14 @@ ДобавитьИсключения(ИсключаемыеОперации, "БизнесПроцессы", "БизнесПроцесс."); ДобавитьИсключения(ИсключаемыеОперации, "ВнешниеИсточникиДанных", "ВнешнийИсточникДанных."); + СписокДляСортировки = Новый СписокЗначений; Для Каждого КлючЗначение Из ОписаниеДобавляемыхТестов(ТестКлиент, ОсновноеОкно) Цикл + СписокДляСортировки.Добавить(КлючЗначение, КлючЗначение.Значение.ПредставлениеТеста); + КонецЦикла; + СписокДляСортировки.СортироватьПоПредставлению(); + + Для Каждого ЭлементСпискаЗначений Из СписокДляСортировки Цикл + КлючЗначение = ЭлементСпискаЗначений.Значение; Описание = КлючЗначение.Значение; ОписаниеНавигационнаяСсылка = Описание.НавигационнаяСсылка; @@ -110,9 +117,9 @@ КонецЕсли; НаборТестов.Добавить( - Описание.ИмяТеста, - НаборТестов.ПараметрыТеста(ОписаниеНавигационнаяСсылка), - Описание.ПредставлениеТеста); + Описание.ИмяТеста, + НаборТестов.ПараметрыТеста(ОписаниеНавигационнаяСсылка), + Описание.ПредставлениеТеста + " - тесты командного интерфейса"); КонецЦикла; КонецПроцедуры @@ -194,8 +201,8 @@ Продолжить; КонецЕсли; - Для Каждого ТекКнопка Из ТекРаздел.ПолучитьПодчиненныеОбъекты() Цикл - Если ЭтоСлужебныйРазделВерсия82(ТекКнопка) Тогда + Для Каждого ТекКнопка Из ТекРаздел.НайтиОбъекты() Цикл + Если ЭтоСлужебныйРазделВерсия82(ТекКнопка) Или ТипЗнч(ТекКнопка) = Тип("ТестируемаяГруппаКомандногоИнтерфейса") Тогда Продолжить; КонецЕсли; ДобавляемоеОписание = Новый Структура; diff --git "a/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.xml" "b/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.xml" index 6caeff532..0bda76a9a 100644 --- "a/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.xml" +++ "b/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270.xml" @@ -389,11 +389,7 @@ - xs:string - - 10 - Variable - + xs:boolean false diff --git "a/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 679b78efa..953a59684 100644 --- "a/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -510,10 +510,18 @@ Для каждого МетаФорма Из МетаФормы Цикл МетаФорма_ПолноеИмя = МетаФорма.ПолноеИмя(); - Если Метаданные.ОсновнаяФормаОтчета = МетаФорма Тогда - МетаФорма_ПолноеИмя = МетаОбъект.ПолноеИмя() + ".Форма"; - ИначеЕсли Метаданные.ОсновнаяФормаНастроекОтчета = МетаФорма Тогда - МетаФорма_ПолноеИмя = МетаОбъект.ПолноеИмя() + ".ФормаНастроек"; + + // В режиме клиента тестирования не нужно добавлять .Форма, + // а необходимо указывать имя отчета, для формирования навигационной ссылки. + Если Не ОсновнойОбъект.ОткрываемФормыНаКлиентеТестирования Тогда + Если Метаданные.ОсновнаяФормаОтчета = МетаФорма Тогда + МетаФорма_ПолноеИмя = МетаОбъект.ПолноеИмя() + ".Форма"; + + // Форма настроек отчета из комплекта БСП не открывается без передачи параметра. + //ИначеЕсли Метаданные.ОсновнаяФормаНастроекОтчета = МетаФорма Тогда + // МетаФорма_ПолноеИмя = МетаОбъект.ПолноеИмя() + ".ФормаНастроек"; + + КонецЕсли; КонецЕсли; //МетаОбъект.Имя <Отчет1>, МетаФорма_ПолноеИмя <Отчет.Отчет1.Форма.УправляемаяФормаОтчета> @@ -547,19 +555,20 @@ //добавить общие формы к отчётам, если они не указаны ДлинаСловаОтчет = 6; Если Метаданные.Отчеты.Найти(МетаОбъект.Имя) <> Неопределено И Лев(Мета_ПолноеИмя, ДлинаСловаОтчет) = "Отчет." Тогда - ФормыДобавлены = ДобавитьОбщиеФормыДляОтчетов(СписокИменМетаФорм, МетаОбъект); + ФормыДобавлены = ДобавитьОбщиеФормыДляОтчетов(СписокИменМетаФорм, МетаОбъект, ОсновнойОбъект.ОткрываемФормыНаКлиентеТестирования); Если НЕ Результат Тогда Результат = ФормыДобавлены; КонецЕсли; КонецЕсли; - //Не проверяем формы, которые созданы платформой, а не разработчиком в режиме клиента тестирования + // Добавляем наименование отчета для режима клиента тестирования, без указания формы. // TODO Бессмысленно открывать для отчетов основную форму отчета, настроек, варианта из конфигурации. // Также нужно добавить стандартные формы для всяких объектов - справочники, документы - //Если Не ФормыДобавлены Тогда - // СписокИменМетаФорм.Добавить(Мета_ПолноеИмя); - // Результат = Истина; - //КонецЕсли; + Если Не ФормыДобавлены + И ОсновнойОбъект.ОткрываемФормыНаКлиентеТестирования Тогда + СписокИменМетаФорм.Добавить(Мета_ПолноеИмя); + Результат = Истина; + КонецЕсли; Возврат Результат; @@ -570,34 +579,52 @@ //{ РаботаСФормами &НаСервереБезКонтекста -Функция ДобавитьОбщиеФормыДляОтчетов(СписокИменМетаФорм, МетаОбъект) +Функция ДобавитьОбщиеФормыДляОтчетов(СписокИменМетаФорм, МетаОбъект, ОткрываемФормыНаКлиентеТестирования) Результат = Ложь; - Если ПолучитьФормуОбъекта(МетаОбъект, "ОсновнаяФорма") = Неопределено - И ПолучитьФормуОбъекта(Метаданные, "ОсновнаяФормаОтчета") <> Неопределено Тогда - СписокИменМетаФорм.Добавить(МетаОбъект.ПолноеИмя() + ".Форма"); + // В режиме клиента тестирования не нужно добавлять .Форма, + // а необходимо указывать имя отчета, для формирования навигационной ссылки. + Если ОткрываемФормыНаКлиентеТестирования Тогда + СписокИменМетаФорм.Добавить(МетаОбъект.ПолноеИмя()); Результат = Истина; + Возврат Результат; КонецЕсли; - Если ПолучитьФормуОбъекта(МетаОбъект, "ОсновнаяФормаНастроек") = Неопределено - И ПолучитьФормуОбъекта(Метаданные, "ОсновнаяФормаНастроекОтчета") <> Неопределено Тогда - СписокИменМетаФорм.Добавить(МетаОбъект.ПолноеИмя() + ".ФормаНастроек"); + Если ПолучитьФормуОбъекта(МетаОбъект, "ОсновнаяФорма") = Неопределено + И ПолучитьФормуОбъекта(Метаданные, "ОсновнаяФормаОтчета") <> Неопределено Тогда + + СписокИменМетаФорм.Добавить(МетаОбъект.ПолноеИмя() + ".Форма"); Результат = Истина; + КонецЕсли; + // Форма настроек отчета из комплекта БСП не открывается без передачи параметра. + //Если ПолучитьФормуОбъекта(МетаОбъект, "ОсновнаяФормаНастроек") = Неопределено + // И ПолучитьФормуОбъекта(Метаданные, "ОсновнаяФормаНастроекОтчета") <> Неопределено Тогда + // + // СписокИменМетаФорм.Добавить(МетаОбъект.ПолноеИмя() + ".ФормаНастроек"); + // Результат = Истина; + // + //КонецЕсли; + ФормаВарианта = ПолучитьФормуОбъекта(МетаОбъект, "ОсновнаяФормаВарианта"); Если ФормаВарианта = Неопределено Тогда Если ПолучитьФормуОбъекта(Метаданные, "ОсновнаяФормаВариантаОтчета") <> Неопределено Тогда + СписокИменМетаФорм.Добавить(МетаОбъект.ПолноеИмя() + ".ФормаВарианта"); Результат = Истина; + КонецЕсли; Иначе - СписокИменМетаФорм.Добавить(ФормаВарианта.ПолноеИмя()); + // Общая форма "ВариантыОтчета" не открываются самостоятельно. + //СписокИменМетаФорм.Добавить(ФормаВарианта.ПолноеИмя()); + СписокИменМетаФорм.Добавить(МетаОбъект.ПолноеИмя() + ".ФормаВарианта"); Результат = Истина; КонецЕсли; Возврат Результат; + КонецФункции &НаСервереБезКонтекста diff --git "a/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/Ext/ObjectModule.bsl" "b/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/Ext/ObjectModule.bsl" index 9125754ac..0064566ed 100644 --- "a/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/Ext/ObjectModule.bsl" +++ "b/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/\321\202\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\234\320\260\320\272\320\265\321\202\320\276\320\262\320\241\320\232\320\224/Ext/ObjectModule.bsl" @@ -52,6 +52,7 @@ Процедура ДобавитьОбщиеМакеты(НаборТестов) + ЗаголовокОбщаяЧасть = ЗаголовокОбщаяЧасть(); мНаборов = Новый Массив; Для Каждого ОбщийМакет ИЗ Метаданные.ОбщиеМакеты Цикл @@ -64,7 +65,7 @@ Новый Структура("ИмяПроцедуры, Параметры, Представление", "ТестДолжен_ПроверитьОбщийМакетСКД", НаборТестов.ПараметрыТеста(ОбщийМакет.Имя), - КонтекстЯдра.СтрШаблон_("ОбщиеМакеты: %1", ОбщийМакет.Имя))); + КонтекстЯдра.СтрШаблон_("ОбщиеМакеты: %1 %2", ОбщийМакет.Имя, ЗаголовокОбщаяЧасть))); КонецЦикла; @@ -84,6 +85,7 @@ Процедура ДобавитьМакетМетаданных(НаборТестов) + ЗаголовокОбщаяЧасть = ЗаголовокОбщаяЧасть(); ПроверяемыеОбъекты = ПроверяемыеМетаданные(); Для Каждого ПроверяемыйОбъект ИЗ ПроверяемыеОбъекты Цикл @@ -104,7 +106,7 @@ Новый Структура("ИмяПроцедуры, Параметры, Представление", "ТестДолжен_ПроверитьМакетСКД", НаборТестов.ПараметрыТеста(ИмяМенеджера, ТекОбъект.Имя, ТекДанныеМакета.Имя), - КонтекстЯдра.СтрШаблон_("%1: %2", ТекОбъект.Имя, ТекДанныеМакета.Имя))); + КонтекстЯдра.СтрШаблон_("%1: %2 %3", ТекОбъект.Имя, ТекДанныеМакета.Имя, ЗаголовокОбщаяЧасть))); КонецЦикла; @@ -214,4 +216,8 @@ КонецЕсли; Возврат Менеджер; -КонецФункции \ No newline at end of file +КонецФункции + +Функция ЗаголовокОбщаяЧасть() + Возврат "- Проверка макетов СКД"; +КонецФункции