
Функция Конт(Конт) Возврат Конт; КонецФункции // : Контекст
Функция Сам() Возврат Конт(Контекст); КонецФункции // : Контекст
Функция База() Возврат Конт(Контекст).ПолучитьБазовыйКласс(); КонецФункции

Процедура ВключитьОПроверкуТипов(Режим) Экспорт
	MetaInfoClasses.УстановитьТекУстановки(,Режим ,);
КонецПроцедуры

Функция УправлениеНастройками()
	Возврат СоздатьОбъект("УправлениеНастройками");
КонецФункции

Процедура ПроверитьНастройку(Наименование, Значение) Экспорт
	ОБ = УправлениеНастройками();
	Флаг = ОБ.Получить(Наименование);
	Сам().ПроверитьРавенство(Флаг, Значение);
КонецПроцедуры	// ПроверитьНастройку

Процедура ВключитьИПроверитьНастройку(Наименование, Значение)
	ОБ = УправлениеНастройками();
	ОБ.Установить(Наименование, Значение);
	Флаг = ОБ.Получить(Наименование);
	Сам().ПроверитьРавенство(Флаг, Значение);
КонецПроцедуры	// ВключитьИПроверитьНастройку

Процедура ВключитьИПроверитьНастройкуПростой(Наименование, Значение)
	ОБ = УправлениеНастройками();
	//ОБ.Включить(Наименование, Значение);
	Если Значение = 0 Тогда
		ОБ.Сбросить(Наименование);
	ИначеЕсли Значение = 1 Тогда
		ОБ.Включить(Наименование);
	Иначе
		Модуль = СоздатьОбъект("ВыполняемыйМодуль");
		Модуль.ВыброситьИскл(, "Неверное значение");
	КонецЕсли;
	
	Флаг = ОБ.Получить(Наименование);
	Сам().ПроверитьРавенство(Флаг, Значение);
КонецПроцедуры	// ВключитьИПроверитьНастройку

Процедура ТестСоздатьОбъект() Экспорт
	ОБ = УправлениеНастройками();
КонецПроцедуры

Процедура ТестПолучитьОптимизацию() Экспорт
	ВключитьОптимизацию(0);
	ПроверитьНастройку("EnableOptimizate", 0);
	ВключитьОптимизацию(1);
	ПроверитьНастройку("EnableOptimizate", 1);
КонецПроцедуры

Процедура ТестПолучитьОптимизацию2() Экспорт
	ВключитьОптимизацию(0);
	ПроверитьНастройку("Оптимизация", 0);
	ВключитьОптимизацию(1);
	ПроверитьНастройку("Оптимизация", 1);
КонецПроцедуры

Процедура ТестПолучитьПроверкуТипов() Экспорт
	ВключитьОПроверкуТипов(0);
	ПроверитьНастройку("EnabledCheckType", 0);
	ВключитьОПроверкуТипов(1);
	ПроверитьНастройку("EnabledCheckType", 1);
КонецПроцедуры

Процедура ТестПолучитьПроверкуТипов2() Экспорт
	ВключитьОПроверкуТипов(0);
	ПроверитьНастройку("Проверка типов", 0);
	ВключитьОПроверкуТипов(1);
	ПроверитьНастройку("Проверка типов", 1);
КонецПроцедуры

Процедура ТестПолучитьОтладку() Экспорт
	ВключитьОтладку(0);
	ПроверитьНастройку("EnableDebugging", 0);
	ВключитьОтладку(1);
	ПроверитьНастройку("EnableDebugging", 1);
КонецПроцедуры

Процедура ТестПолучитьОтладку2() Экспорт
	ВключитьОтладку(0);
	ПроверитьНастройку("Отладка", 0);
	ВключитьОтладку(1);
	ПроверитьНастройку("Отладка", 1);
КонецПроцедуры

Процедура ТестПолучитьОтладку3() Экспорт
	ВключитьОтладку(0);
	ПроверитьНастройку("Отладчик", 0);
	ВключитьОтладку(1);
	ПроверитьНастройку("Отладчик", 1);
КонецПроцедуры

Процедура ТестПолучитьРаскраску() Экспорт
Сам().ПропуститьТест();
	ПроверитьНастройку("EnabledColor", 1);
КонецПроцедуры

Процедура ТестПолучитьЧастичнуюРаскраску() Экспорт
Сам().ПропуститьТест();
	ПроверитьНастройку("LocalColor", 0);
КонецПроцедуры

Процедура ТестПолучитьПоказЧасов() Экспорт
Сам().ПропуститьТест();
	ПроверитьНастройку("ShowKeyboardLayout", 1);
КонецПроцедуры

Процедура ТестПолучитьТаблицаИсходнаяТаблица() Экспорт
	ПроверитьНастройку("EnableTableSourceTable", 1);
	ПроверитьНастройку("ТаблицаИсходнаяТаблица", 1);
	ПроверитьНастройку("Таблица.ИсходнаяТаблица", 1);
КонецПроцедуры

Процедура ТестПолучитьTurboBL() Экспорт
	ПроверитьНастройку("EnableTurboBL", 1);
	ПроверитьНастройку("TurboBL", 1);
КонецПроцедуры

Процедура ТестПолучитьПерехватитьСобытияГК() Экспорт
	ПроверитьНастройку("EnableHookEventsGroupContext", 1);
	ПроверитьНастройку("ПерехватитьСобытияГК", 1);
КонецПроцедуры

Процедура ТестПолучитьНесуществующий() Экспорт
	ОБ = УправлениеНастройками();
	Сам().ПроверитьИсключениеДляЛюбогоМетода(ОБ, "Получить", "НесуществующийКлюч");
КонецПроцедуры

Процедура ТестВключитьНесуществующий() Экспорт
	ОБ = УправлениеНастройками();
	Сам().ПроверитьИсключениеДляЛюбогоМетода(ОБ, "Включить", "НесуществующийКлюч");
КонецПроцедуры

Процедура ТестСброситьНесуществующий() Экспорт
	ОБ = УправлениеНастройками();
	Сам().ПроверитьИсключениеДляЛюбогоМетода(ОБ, "Сбросить", "НесуществующийКлюч");
КонецПроцедуры

Процедура ТестУстановитьНесуществующий() Экспорт
	ОБ = УправлениеНастройками();
	Сам().ПроверитьИсключениеДляЛюбогоМетода(ОБ, "Установить", "НесуществующийКлюч");
КонецПроцедуры
            
Процедура ТестВключитьОптимизацию() Экспорт

	ВключитьИПроверитьНастройку("EnableOptimizate", 0);
	ВключитьИПроверитьНастройку("EnableOptimizate", 1);
	ВключитьИПроверитьНастройку("Оптимизация", 0);
	ВключитьИПроверитьНастройку("Оптимизация", 1);
КонецПроцедуры

Процедура ТестВключитьОтладка() Экспорт
	ВключитьИПроверитьНастройку("EnableDebugging", 0);
	ВключитьИПроверитьНастройку("EnableDebugging", 1);
	ВключитьИПроверитьНастройку("Отладка", 0);
	ВключитьИПроверитьНастройку("Отладка", 1);
	ВключитьИПроверитьНастройку("Отладчик", 0);
	ВключитьИПроверитьНастройку("Отладчик", 1);
КонецПроцедуры

Процедура ТестВключитьПроверкуТипов() Экспорт
	ВключитьИПроверитьНастройку("EnabledCheckType", 0);
	ВключитьИПроверитьНастройку("EnabledCheckType", 1);
	ВключитьИПроверитьНастройку("Проверка типов", 0);
	ВключитьИПроверитьНастройку("Проверка типов", 1);
КонецПроцедуры

Процедура ТестВключитьПерехватитьСобытияГК() Экспорт
	ВключитьИПроверитьНастройку("EnableHookEventsGroupContext", 0);
	ВключитьИПроверитьНастройку("EnableHookEventsGroupContext", 1);
	ВключитьИПроверитьНастройку("ПерехватитьСобытияГК", 0);
	ВключитьИПроверитьНастройку("ПерехватитьСобытияГК", 1);
КонецПроцедуры
         
Процедура ТестВключитьТаблицаИсходнаяТаблица() Экспорт
	ВключитьИПроверитьНастройку("EnableTableSourceTable", 0);
	ВключитьИПроверитьНастройку("EnableTableSourceTable", 1);
	ВключитьИПроверитьНастройку("ТаблицаИсходнаяТаблица", 0);
	ВключитьИПроверитьНастройку("ТаблицаИсходнаяТаблица", 1);
	ВключитьИПроверитьНастройку("Таблица.ИсходнаяТаблица", 0);
	ВключитьИПроверитьНастройку("Таблица.ИсходнаяТаблица", 1);
КонецПроцедуры

Процедура ТестВключитьTurboBL() Экспорт
	ВключитьИПроверитьНастройку("EnableTurboBL", 0);
	ВключитьИПроверитьНастройку("EnableTurboBL", 1);
	ВключитьИПроверитьНастройку("TurboBL", 0);
	ВключитьИПроверитьНастройку("TurboBL", 1);
КонецПроцедуры

//////////////////////////////////// 
            
Процедура ТестВключитьОптимизацию2() Экспорт

	ВключитьИПроверитьНастройкуПростой("EnableOptimizate", 0);
	ВключитьИПроверитьНастройкуПростой("EnableOptimizate", 1);
	ВключитьИПроверитьНастройкуПростой("Оптимизация", 0);
	ВключитьИПроверитьНастройкуПростой("Оптимизация", 1);
КонецПроцедуры

Процедура ТестВключитьОтладка2() Экспорт
	ВключитьИПроверитьНастройкуПростой("EnableDebugging", 0);
	ВключитьИПроверитьНастройкуПростой("EnableDebugging", 1);
	ВключитьИПроверитьНастройкуПростой("Отладка", 0);
	ВключитьИПроверитьНастройкуПростой("Отладка", 1);
	ВключитьИПроверитьНастройкуПростой("Отладчик", 0);
	ВключитьИПроверитьНастройкуПростой("Отладчик", 1);
КонецПроцедуры

Процедура ТестВключитьПроверкуТипов2() Экспорт
	ВключитьИПроверитьНастройкуПростой("EnabledCheckType", 0);
	ВключитьИПроверитьНастройкуПростой("EnabledCheckType", 1);
	ВключитьИПроверитьНастройкуПростой("Проверка типов", 0);
	ВключитьИПроверитьНастройкуПростой("Проверка типов", 1);
КонецПроцедуры

Процедура ТестВключитьПерехватитьСобытияГК2() Экспорт
	ВключитьИПроверитьНастройкуПростой("EnableHookEventsGroupContext", 0);
	ВключитьИПроверитьНастройкуПростой("EnableHookEventsGroupContext", 1);
	ВключитьИПроверитьНастройкуПростой("ПерехватитьСобытияГК", 0);
	ВключитьИПроверитьНастройкуПростой("ПерехватитьСобытияГК", 1);
КонецПроцедуры
         
Процедура ТестВключитьТаблицаИсходнаяТаблица2() Экспорт
	ВключитьИПроверитьНастройкуПростой("EnableTableSourceTable", 0);
	ВключитьИПроверитьНастройкуПростой("EnableTableSourceTable", 1);
	ВключитьИПроверитьНастройкуПростой("ТаблицаИсходнаяТаблица", 0);
	ВключитьИПроверитьНастройкуПростой("ТаблицаИсходнаяТаблица", 1);
	ВключитьИПроверитьНастройкуПростой("Таблица.ИсходнаяТаблица", 0);
	ВключитьИПроверитьНастройкуПростой("Таблица.ИсходнаяТаблица", 1);
КонецПроцедуры

Процедура ТестВключитьTurboBL2() Экспорт
	ВключитьИПроверитьНастройкуПростой("EnableTurboBL", 0);
	ВключитьИПроверитьНастройкуПростой("EnableTurboBL", 1);
	ВключитьИПроверитьНастройкуПростой("TurboBL", 0);
	ВключитьИПроверитьНастройкуПростой("TurboBL", 1);
КонецПроцедуры
