Skip to content

Commit 0f2efbd

Browse files
committed
Добавлены тесты
1 parent b620f46 commit 0f2efbd

File tree

1 file changed

+34
-1
lines changed

1 file changed

+34
-1
lines changed

tests/access-token.os

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
ВсеТесты.Добавить("ТестДолжен_ПроверитьКонструкторПоУмолчанию");
99
ВсеТесты.Добавить("ТестДолжен_ПроверитьКонструкторСЗаголовкамиИПолезнойНагрузкой");
10+
ВсеТесты.Добавить("ТестДолжен_ПроверитьГенерациюТокена");
1011
ВсеТесты.Добавить("ТестДолжен_ПроверитьГенерациюТокенаСКлючом");
1112
ВсеТесты.Добавить("ТестДолжен_ПроверитьГенерациюТокенаБезКлюча");
1213
ВсеТесты.Добавить("ТестДолжен_ПроверитьОшибкуПриПодписиБезКлюча");
@@ -30,6 +31,10 @@
3031
юТест.ПроверитьРавенство(Токен.ПолезнаяНагрузка.Количество(), 0);
3132
юТест.ПроверитьРавенство(Токен.Получатели.Количество(), 0);
3233

34+
РазобранныйТокен = РазобратьJWT(Токен);
35+
юТест.ПроверитьРавенство(РазобранныйТокен.Заголовки, "{""alg"":""none""}", "Заголовки");
36+
юТест.ПроверитьРавенство(РазобранныйТокен.ПолезнаяНагрузка, "{}", "Полезная нагрузка");
37+
3338
КонецПроцедуры
3439

3540
Процедура ТестДолжен_ПроверитьКонструкторСЗаголовкамиИПолезнойНагрузкой() Экспорт
@@ -43,13 +48,40 @@
4348
ПолезнаяНагрузка["name"] = "Test User";
4449

4550
Токен = Новый ТокенДоступа(Заголовки, ПолезнаяНагрузка);
51+
РазобранныйТокен = РазобратьJWT(Токен);
4652

4753
юТест.ПроверитьРавенство(Токен.Заголовки.Количество(), 2);
4854
юТест.ПроверитьРавенство(Токен.ПолезнаяНагрузка.Количество(), 2);
4955
юТест.ПроверитьРавенство(Токен.Заголовки["typ"], "JWT");
5056
юТест.ПроверитьРавенство(Токен.Заголовки["any"], "some");
5157
юТест.ПроверитьРавенство(Токен.ПолезнаяНагрузка["sub"], "user123");
5258
юТест.ПроверитьРавенство(Токен.ПолезнаяНагрузка["name"], "Test User");
59+
юТест.ПроверитьРавенство(РазобранныйТокен.Заголовки, "{""alg"":""none"",""typ"":""JWT"",""any"":""some""}", "Заголовки");
60+
юТест.ПроверитьРавенство(РазобранныйТокен.ПолезнаяНагрузка, "{""sub"":""user123"",""name"":""Test User""}", "Полезная нагрузка");
61+
62+
КонецПроцедуры
63+
64+
Процедура ТестДолжен_ПроверитьГенерациюТокена() Экспорт
65+
66+
Токен = Новый ТокенДоступа();
67+
Токен.ВремяЖизни = 3600;
68+
Токен.ВремяСоздания = 1640995200; // 2022-01-01 00:00:00 UTC
69+
Токен.Идентификатор = "unique-token-id";
70+
Токен.КлючСопоставленияПользователя = "[email protected]";
71+
Токен.Эмитент = "https://auth.example.com";
72+
73+
Токен.Заголовки["typ"] = "JWT";
74+
75+
Токен.ПолезнаяНагрузка["role"] = "admin";
76+
Токен.ПолезнаяНагрузка["permissions"] = "read,write,delete";
77+
78+
Токен.Получатели.Добавить("api.example.com");
79+
Токен.Получатели.Добавить("mobile.app");
80+
81+
РазобранныйТокен = РазобратьJWT(Токен);
82+
83+
юТест.ПроверитьРавенство(РазобранныйТокен.Заголовки, "{""alg"":""none"",""typ"":""JWT""}", "Заголовки");
84+
юТест.ПроверитьРавенство(РазобранныйТокен.ПолезнаяНагрузка, "{""iss"":""https://auth.example.com"",""iat"":1640995200,""nbf"":1640995200,""exp"":1640998800,""jti"":""unique-token-id"",""sub"":""[email protected]"",""aud"":[""api.example.com"",""mobile.app""],""role"":""admin"",""permissions"":""read,write,delete""}", "Полезная нагрузка");
5385

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

@@ -153,7 +185,7 @@
153185
Токен.ПолезнаяНагрузка.Вставить("Соответствие", Соответствие);
154186

155187
РазобранныйТокен = РазобратьJWT(Токен);
156-
188+
157189
юТест.ПроверитьРавенство(РазобранныйТокен.ПолезнаяНагрузка, ОжидаемоеЗначение);
158190

159191
КонецПроцедуры
@@ -227,6 +259,7 @@
227259
КонецЕсли;
228260

229261
Возврат Значение + Паддинг;
262+
230263
КонецФункции
231264

232265
// 2048 bits, PKCS#8

0 commit comments

Comments
 (0)