Forked from VladFrost/тесты_КомандныйИнтерфейс.bsl
Created
September 19, 2017 13:18
-
-
Save artbear/ccaadb169347287eeb0fb335592b4995 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| &НаКлиенте | |
| Перем КонтекстЯдра; | |
| &НаКлиенте | |
| Перем Утверждения; | |
| &НаСервере | |
| Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) | |
| ВнешниеОбработки.Создать("C:\xUnitFor1C\xddTestRunner.epf", Ложь); | |
| КонецПроцедуры | |
| &НаКлиенте | |
| Процедура ПриОткрытии(Отказ) | |
| Инициализация(ОткрытьФорму("ВнешняяОбработка.xddTestRunner.Форма")); | |
| ТестКлиент = КонтекстЯдра.Плагин("ТестКлиенты").ТестКлиентПоУмолчанию(); | |
| Для Каждого Описание Из ОписаниеДобавляемыхТестов(ТестКлиент) Цикл | |
| НоваяСтрока = КнопкиКомандногоИнтерфейса.Добавить(); | |
| НоваяСтрока.ПредставлениеТеста = Описание.ПредставлениеТеста; | |
| НоваяСтрока.НавигационнаяСсылка = Описание.НавигационнаяСсылка; | |
| КонецЦикла; | |
| КонецПроцедуры | |
| &НаКлиенте | |
| Процедура Инициализация(КонтекстЯдраПараметр) Экспорт | |
| КонтекстЯдра = КонтекстЯдраПараметр; | |
| Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); | |
| КонецПроцедуры | |
| &НаКлиенте | |
| Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдра) Экспорт | |
| ТестКлиент = КонтекстЯдра.Плагин("ТестКлиенты").ТестКлиентПоУмолчанию(); | |
| Для Каждого Описание Из ОписаниеДобавляемыхТестов(ТестКлиент) Цикл | |
| НаборТестов.Добавить( | |
| Описание.ИмяТеста, | |
| НаборТестов.ПараметрыТеста(Описание.НавигационнаяСсылка), | |
| Описание.ПредставлениеТеста); | |
| КонецЦикла; | |
| КонецПроцедуры | |
| &НаКлиенте | |
| Процедура ПослеЗапускаТеста() Экспорт | |
| ЗакрытьВсеОткрытыеОкна(); | |
| КонецПроцедуры | |
| &НаКлиенте | |
| Функция ОписаниеДобавляемыхТестов(ТестКлиент) | |
| Результат = Новый Массив; | |
| ОсновноеОкно = ОсновноеОкно(ТестКлиент); | |
| КомандныйИнтерфейс = ОсновноеОкно.ПолучитьКомандныйИнтерфейс(); | |
| ПанельРазделов = КомандныйИнтерфейс.НайтиОбъект(Тип("ТестируемаяГруппаКомандногоИнтерфейса"), НСтр("ru = 'Панель разделов'")); | |
| Для Каждого ТекКнопкаРаздел Из ПанельРазделов.НайтиОбъекты(Тип("ТестируемаяКнопкаКомандногоИнтерфейса")) Цикл | |
| ТекКнопкаРаздел.Нажать(); | |
| ДобавитьОписаниеТеста(Результат, КомандныйИнтерфейс, ТекКнопкаРаздел.ТекстЗаголовка); | |
| ТекКнопкаРаздел.Нажать(); | |
| КонецЦикла; | |
| Возврат Результат; | |
| КонецФункции | |
| &НаКлиенте | |
| Процедура ДобавитьОписаниеТеста(ОписаниеТестов, КомандныйИнтерфейс, ТекстЗаголовка) | |
| Для Каждого ТекРаздел Из КомандныйИнтерфейс.НайтиОбъекты(Тип("ТестируемаяГруппаКомандногоИнтерфейса")) Цикл | |
| Если ЭтоСлужебныйРаздел(ТекРаздел) Тогда | |
| Продолжить; | |
| КонецЕсли; | |
| Для Каждого ТекКнопка Из ТекРаздел.ПолучитьПодчиненныеОбъекты() Цикл | |
| ДобавляемоеОписание = Новый Структура; | |
| ДобавляемоеОписание.Вставить("ПредставлениеТеста", СтрШаблон("%1_%2_%3", ТекстЗаголовка, ТекРаздел.ТекстЗаголовка, ТекКнопка.ТекстЗаголовка)); | |
| ДобавляемоеОписание.Вставить("НавигационнаяСсылка", ТекКнопка.НавигационнаяСсылка); | |
| ДобавляемоеОписание.Вставить("ИмяТеста", ИмяТеста(ТекКнопка.НавигационнаяСсылка)); | |
| ОписаниеТестов.Добавить(ДобавляемоеОписание); | |
| КонецЦикла; | |
| КонецЦикла; | |
| КонецПроцедуры | |
| &НаКлиенте | |
| Функция ИмяТеста(ПараметрНавигационнаяСсылка) | |
| ПропускаемыеНавигационныеСсылки = Новый Массив; | |
| ПропускаемыеНавигационныеСсылки.Добавить("e1cib/command/ОбщаяКоманда.СтраницаМобильноеПриложениеНаAppStore"); | |
| ПропускаемыеНавигационныеСсылки.Добавить("e1cib/command/ОбщаяКоманда.СтраницаМобильноеПриложениеНаGooglePlay"); | |
| ПропускаемыеНавигационныеСсылки.Добавить("e1cib/command/ОбщаяКоманда.СтраницаПродуктаНаСайте1С"); | |
| ПропускаемыеНавигационныеСсылки.Добавить("e1cib/command/ОбщаяКоманда.СтраницаЧтоНовогоВВерсииВидео"); | |
| Если ПропускаемыеНавигационныеСсылки.Найти(ПараметрНавигационнаяСсылка) = Неопределено Тогда | |
| Возврат "ТестДолжен_ПерейтиПоКнопкеКомандногоИнтерфейса"; | |
| Иначе | |
| Возврат "ТестДолжен_ПропуститьВыполнение"; | |
| КонецЕсли; | |
| КонецФункции | |
| &НаКлиенте | |
| Функция ЭтоСлужебныйРаздел(ГруппаКомандногоИнтерфейса) | |
| ЗаголовкиСлужебныхРазделов = Новый Массив; | |
| ЗаголовкиСлужебныхРазделов.Добавить(НСтр("ru = 'Панель разделов'")); | |
| ЗаголовкиСлужебныхРазделов.Добавить(НСтр("ru = 'Панель инструментов'")); | |
| ЗаголовкиСлужебныхРазделов.Добавить(НСтр("ru = 'Панель открытых'")); | |
| ЗаголовкиСлужебныхРазделов.Добавить(НСтр("ru = 'Меню функций'")); | |
| Для Каждого ТекЗаголовок Из ЗаголовкиСлужебныхРазделов Цикл | |
| Если НРег(ГруппаКомандногоИнтерфейса.ТекстЗаголовка) = НРег(ТекЗаголовок) Тогда | |
| Возврат Истина; | |
| КонецЕсли; | |
| КонецЦикла; | |
| Возврат Ложь; | |
| КонецФункции | |
| &НаКлиенте | |
| Процедура КнопкиКомандногоИнтерфейсаВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) | |
| ТестДолжен_ПерейтиПоКнопкеКомандногоИнтерфейса(Элементы.КнопкиКомандногоИнтерфейса.ТекущиеДанные.НавигационнаяСсылка); | |
| ПослеЗапускаТеста(); | |
| КонецПроцедуры | |
| &НаКлиенте | |
| Процедура ТестДолжен_ПропуститьВыполнение(ПараметрНавигационнаяСсылка) Экспорт | |
| КонтекстЯдра.ПропуститьТест(); | |
| КонецПроцедуры | |
| &НаКлиенте | |
| Процедура ТестДолжен_ПерейтиПоКнопкеКомандногоИнтерфейса(ПараметрНавигационнаяСсылка) Экспорт | |
| ТестКлиент = КонтекстЯдра.Плагин("ТестКлиенты").ТестКлиентПоУмолчанию(); | |
| ОсновноеОкно = ОсновноеОкно(ТестКлиент); | |
| ОсновноеОкно.ВыполнитьКоманду(ПараметрНавигационнаяСсылка); | |
| ИдентифицироватьОкноПредупреждение(ТестКлиент); | |
| КликнутьПоТаблицеФормы(ТестКлиент); | |
| ИдентифицироватьОкноПредупреждение(ТестКлиент); | |
| ЗакрытьВсеОткрытыеОкна(); | |
| КонецПроцедуры | |
| &НаКлиенте | |
| Процедура КликнутьПоТаблицеФормы(ТестКлиент) | |
| АктивноеОкно = ТестКлиент.ПолучитьАктивноеОкно(); | |
| ТаблицаФормы = АктивноеОкно.НайтиОбъект(Тип("ТестируемаяТаблицаФормы")); | |
| Если ТаблицаФормы = Неопределено Тогда | |
| Возврат; | |
| КонецЕсли; | |
| Если Не ТаблицаФормы.ТекущаяДоступность() Тогда | |
| Возврат; | |
| КонецЕсли; | |
| Если Не ТаблицаФормы.ТекущаяВидимость() Тогда | |
| Возврат; | |
| КонецЕсли; | |
| ТаблицаФормы.ПерейтиКПервойСтроке(); | |
| Если Не ЗначениеЗаполнено(ТаблицаФормы.ПолучитьВыделенныеСтроки()) Тогда | |
| Возврат; | |
| КонецЕсли; | |
| ТаблицаФормы.Выбрать(); | |
| КонецПроцедуры | |
| &НаКлиенте | |
| Процедура ИдентифицироватьОкноПредупреждение(ТестКлиент) | |
| ОкноПредупреждение = ТестКлиент.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), "1С:Предприятие"); | |
| Если ТипЗнч(ОкноПредупреждение) <> Тип("ТестируемоеОкноКлиентскогоПриложения") Тогда | |
| Возврат; | |
| КонецЕсли; | |
| ТекстИсключения = ТекстИсключения(ОкноПредупреждение); | |
| ЗакрытьВсеОткрытыеОкна(); | |
| ВызватьИсключение ТекстИсключения; | |
| КонецПроцедуры | |
| &НаКлиенте | |
| Функция ТекстИсключения(ОкноПредупреждение) | |
| ТекстыЗаголовков = Новый Массив; | |
| Для Каждого ТекОбъект Из ОкноПредупреждение.НайтиОбъекты(Тип("ТестируемоеПолеФормы")) Цикл | |
| ТекстыЗаголовков.Добавить(ТекОбъект.ТекстЗаголовка); | |
| КонецЦикла; | |
| Возврат СтрСоединить(ТекстыЗаголовков, " "); | |
| КонецФункции | |
| &НаКлиенте | |
| Функция ОсновноеОкно(ТестКлиент) | |
| Для Каждого ТестируемоеОкно Из ТестКлиент.ПолучитьПодчиненныеОбъекты() Цикл | |
| Если ТестируемоеОкно.Основное Тогда | |
| Возврат ТестируемоеОкно; | |
| КонецЕсли; | |
| КонецЦикла; | |
| КонецФункции | |
| &НаКлиенте | |
| Процедура ЗакрытьВсеОткрытыеОкна() | |
| ТестКлиент = КонтекстЯдра.Плагин("ТестКлиенты").ТестКлиентПоУмолчанию(); | |
| ОкноПредупреждение = ТестКлиент.НайтиОбъект(Тип("ТестируемоеОкноКлиентскогоПриложения"), НСтр("ru = '1С:Предприятие'")); | |
| НажатьПервуюКнопку(ОкноПредупреждение); | |
| ОткрытыеОкна = ТестКлиент.НайтиОбъекты(Тип("ТестируемоеОкноКлиентскогоПриложения")); | |
| Для Каждого ТекОкно Из ОткрытыеОкна Цикл | |
| Если Не ТекОкно.Основное Тогда | |
| Попытка | |
| ТекОкно.Закрыть(); | |
| Исключение | |
| КонецПопытки; | |
| КонецЕсли; | |
| КонецЦикла; | |
| КонецПроцедуры | |
| &НаКлиенте | |
| Процедура НажатьПервуюКнопку(ОкноПриложения) | |
| Если ТипЗнч(ОкноПриложения) <> Тип("ТестируемоеОкноКлиентскогоПриложения") Тогда | |
| Возврат; | |
| КонецЕсли; | |
| Кнопки = ОкноПриложения.НайтиОбъекты(Тип("ТестируемаяКнопкаФормы")); | |
| Если ЗначениеЗаполнено(Кнопки) Тогда | |
| Кнопки[0].Нажать(); | |
| КонецЕсли; | |
| КонецПроцедуры | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment