summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/oauth2/certs/selfsigned-client.crt33
-rw-r--r--tests/auto/oauth2/certs/selfsigned-client.key55
-rw-r--r--tests/auto/oauth2/certs/selfsigned-server.crt33
-rw-r--r--tests/auto/oauth2/certs/selfsigned-server.key55
-rw-r--r--tests/auto/oauth2/tst_oauth2.cpp83
5 files changed, 173 insertions, 86 deletions
diff --git a/tests/auto/oauth2/certs/selfsigned-client.crt b/tests/auto/oauth2/certs/selfsigned-client.crt
index 88da2db..5155286 100644
--- a/tests/auto/oauth2/certs/selfsigned-client.crt
+++ b/tests/auto/oauth2/certs/selfsigned-client.crt
@@ -1,18 +1,19 @@
-----BEGIN CERTIFICATE-----
-MIIC6TCCAdECCC/r9KvmbWTKMA0GCSqGSIb3DQEBCwUAMDUxFDASBgNVBAMMC0F1
-c3dlaXNBcHAyMR0wGwYDVQQFExQxODIzNTE0MTY0NzI5NDg5NDM3MTAiGA8xOTcw
-MDEwMTAwMDAwMFoYDzk5OTkxMjMxMjM1OTU5WjA1MRQwEgYDVQQDDAtBdXN3ZWlz
-QXBwMjEdMBsGA1UEBRMUMTgyMzUxNDE2NDcyOTQ4OTQzNzEwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCahBpcZyr+PJBCpolzQeFVvDKABwlpdRKGZ8qq
-jD4sq2L7VlBJslgJGv5vsB5oJbnX1FFEu4Uw2kYb/LhnFCEXEFtGKRpWOEZOOqWb
-4l4q2MCa82ZCoIDt8yoAt0sSShbtR6pjW+l0lwAOEpfGvMaMVo5JUyspRxhl1dSu
-sS2Wf65zliqF5VSM2r4xMfJ6LVytxDZsGfTe/HFT2OYYrF+UQZg0mNL39rYWOK4R
-xoOz8eLl3K5hKuHNfn5zPt5QtMhaIvebijBg23xJpl+BeoS37WzaK1f+NyWZKPFb
-rttvSnFxpkyRHqJJ5piNGH6pkQ1+zhd7uh7eOIwxktjYBOFzAgMBAAEwDQYJKoZI
-hvcNAQELBQADggEBADw3MYPft+X78OK/2HAltzsKjfxv/D5qVizm9hcyG1GYe5pS
-qgFn0trCyJopYdbRr+hP7CuHwMmv62CZiHSog3CBPoUh19JENUDGbHXxTEFleB0i
-Fd8I2+WvRjbQ+ehaeTJPx88v5kkJnB2tZUNZuhEws8emCwr1G0TQv1tRYCR1Lp9i
-8/I3FSFpL1zyk47WfM/THa279MPw9WtrFGA6oi36gH9mYxek7n/zQTVi54xDx9GT
-KigBYqavjFdNXryjLTCCtJpMTDePgP66NAUnxn0D/amI2vSbIN++PSTsBm+n4Ti5
-QW/ShFQDNb4bDiwjtTKCeKwvAp2/6GSHVkYy28M=
+MIIDADCCAeigAwIBAgIUCZMzRYZccCDU28Sk62T1ICZcfLcwDQYJKoZIhvcNAQEL
+BQAwIjEgMB4GA1UEAwwXcXRuZXR3b3JrYXV0aF9hdXRvdGVzdHMwIBcNMDAxMjMx
+MjMwMTAxWhgPMjEyODA0MjUyMzAxMDFaMCIxIDAeBgNVBAMMF3F0bmV0d29ya2F1
+dGhfYXV0b3Rlc3RzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA19hR
+CjGusW7if8rojjys4FUSRc+XWUJXeCQjoVsKaUNPHGgihrDCYwUuNEtOkIt+M7fO
+DoB46aZI/4mwkAetPIq70W+ww4myQKj66Q/JD7LZ3653ErmFuZpS5oXAjbXUbRPQ
+hYGxozt6MGH2QsInw3qGaIFbrqj2H66QtLKqYOYDohwD0Iy8L/83JT3lITB9gly2
+o20ZIbIvwWhERtlnI6mN8J76plZWUhmygKcy0rI/uHBobdcO6PFfccGt0UIL5Iqk
+/VtCHdDI/azQJjV15C6ErSPSEJnqA/XPXwq5+77AU9yPBZ+5SBNhxoDjBi8kP12s
+Xn9RzEzg5pZVkAxQLQIDAQABoywwKjAJBgNVHRMEAjAAMB0GA1UdDgQWBBQ/aX4e
+u4u6G8W2MrvseIVVc+DCpDANBgkqhkiG9w0BAQsFAAOCAQEAtH1nUoiixKQI0QB+
+9Y7tMvrl3hxJPrzpZJ8a/LHXrxIb3Q5NrZiCNNP6VHky0SMn2R1EXzpai6vhvv1K
+MbmhwY70JJtcWlwGDZC73rUSRigHkxYhl2pS92ApjD6gj6MHM1CojylBqYpBAUHH
+FBe/Kbvs3kX8VrAnXhwua9BUD+A4zrbnJvMu4zkZDAGARpZFbuCNQ+tv86Dr/x/1
+jV1nh6GXJWqWmPZS/pX9y2XWvA2bhWuyYgSkHJSuNrUSnztKcIKxXEKgOovNoX2F
+h3epBpPgZK6c/mkdeeMl5PlSgnsRIpp0mEW9IrFp3EDtbZDebj2A83U5dVysYdwA
+IqSNqQ==
-----END CERTIFICATE-----
diff --git a/tests/auto/oauth2/certs/selfsigned-client.key b/tests/auto/oauth2/certs/selfsigned-client.key
index 9e59342..2dae3bc 100644
--- a/tests/auto/oauth2/certs/selfsigned-client.key
+++ b/tests/auto/oauth2/certs/selfsigned-client.key
@@ -1,27 +1,28 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEogIBAAKCAQEAmoQaXGcq/jyQQqaJc0HhVbwygAcJaXUShmfKqow+LKti+1ZQ
-SbJYCRr+b7AeaCW519RRRLuFMNpGG/y4ZxQhFxBbRikaVjhGTjqlm+JeKtjAmvNm
-QqCA7fMqALdLEkoW7UeqY1vpdJcADhKXxrzGjFaOSVMrKUcYZdXUrrEtln+uc5Yq
-heVUjNq+MTHyei1crcQ2bBn03vxxU9jmGKxflEGYNJjS9/a2FjiuEcaDs/Hi5dyu
-YSrhzX5+cz7eULTIWiL3m4owYNt8SaZfgXqEt+1s2itX/jclmSjxW67bb0pxcaZM
-kR6iSeaYjRh+qZENfs4Xe7oe3jiMMZLY2AThcwIDAQABAoIBAFjgvc0C5t8AdTZx
-VsS+U2Aedang4lAPsE0xbIj3TFgjaTcLKfmKJUtvhIU39/WOJbz4+pofhvhXxVYZ
-4vQfxvzeQrIzuFt52S7sWxA0gFgC/57hfKO8cQzt/u4UgJEPnupze5XVa47NwJFX
-rof5U/erXgLdXQlMRMNm4QRvE7rp58E2MkSYNur0Xgy9L7cRcUQJ8iuMaxBpOzhS
-fbNFi5zT7RCGcQSIDcb1JFlgs5tMUs6jzLoDSVD2+vvsN4i4LAAPkJSGTGed5vY1
-xn4G8KPR4HHrnBYEb0SGu4ZTznOnQ+JSKhQrbnvEzXM4RTfjqn0YvF8x70+pWSMi
-Fb4mlBECgYEAzW82O79HAlMm8LD7J4byPfVc/1M5/JOnE9H+RR5Vt4jZQGyjCmJu
-cj4UeZyVim0xg30sSYrJ2Urd27CtHp+sMgHkvJt3/ZgcfMZJbMKNGq/OUtV8s/cA
-nkU++/LgeW8r7wpaDjT7bfnOdcf16mYoXrmk0rTJvRqGXCBvCxtt5bsCgYEAwIxu
-vZjPV4Vu/VX6sH2d31D9EFZuZKjGhqukFVtRqLbeosqT9mA+LhQ/wP5qoR2gLQbe
-EwxJLJwGFjUhyhbHNlo6oHv3fWkzmHIMPwDRRI3Ktwi/50SwNSnyERUQcLaiwqKx
-BqaxPYNnspUt0nKE0LFZsSlrfEyxajqAlUEgm6kCgYAV+uQumFScpxDvh8AXhpS8
-lFgS6XC22YVy1XEDLC+3p2i3P+hh4A45IvNF378QRIabrvTiGXtnSF9cdhbPw/3E
-i/dRRsEb3P6PSxfoDxjR1iWZL0Zcav0h8f6/LkleNMralJz2EC0moye36mEhZzTC
-jdJYyQccuI3PpZi7839aqQKBgGezOnEiO4kHdB88jyc+gCglliWWZx4PR9x/1H8s
-D26uDnneYJHwg4yNm0h1vTfInNujNzdLBp3f6edL9kbAvcmoDqsgGMqSPhd8VNwZ
-tJsXQnYRYElN1RjM3nIUxiXuNvpcZLsQS6S1gMPNVEBjLOS4n3WquRjYtTRhDZ9U
-1BsBAoGAUFrIatOLFhcgaqENHyUbMx5uSx0lIfF6Xd5KIAgi+btdmugHe+NK8Cd2
-Rc2bQLQ9K1SvKFX6nFuEsGxnXkKuyhL/j0Kgm8nZin4uAcrtFnNdFumvCL6YgYSc
-IvvM+uVfGEdbqm4pTuiLBfzOXIIy3kVlLGo402QG1pBzOtmsRMs=
------END RSA PRIVATE KEY-----
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDX2FEKMa6xbuJ/
+yuiOPKzgVRJFz5dZQld4JCOhWwppQ08caCKGsMJjBS40S06Qi34zt84OgHjppkj/
+ibCQB608irvRb7DDibJAqPrpD8kPstnfrncSuYW5mlLmhcCNtdRtE9CFgbGjO3ow
+YfZCwifDeoZogVuuqPYfrpC0sqpg5gOiHAPQjLwv/zclPeUhMH2CXLajbRkhsi/B
+aERG2WcjqY3wnvqmVlZSGbKApzLSsj+4cGht1w7o8V9xwa3RQgvkiqT9W0Id0Mj9
+rNAmNXXkLoStI9IQmeoD9c9fCrn7vsBT3I8Fn7lIE2HGgOMGLyQ/Xaxef1HMTODm
+llWQDFAtAgMBAAECggEAa6aZlIn+5MO296GNpxMf7arAOE024O+zjFoJ4zny0Vke
+pb5SKfcSnCxDRRWiE3le8hBkFtuAcpfapIhZpRwPDLjsv6IC+SM94f3lVkPnNYsw
+Gt16yb35sf4EBrECvirHzbcqMsvietT5NhRFrDoFdvsu+gQ6Y7wlNNvtlBHf4/8o
+9UKCE33Y0Du8m2Xt0M16tPPltKizhf5M/vZmuqjgLGIc5ySvquSbvqT9Ye2ku7Vf
+n8LEGAsfXuFFs830s848SSY7rwYVXe6n66Yhu2xlGWADurntJG7suKKNMG62F73W
+pxBAhmRJDXacgAdlZglsN8VeGe5IPSa/0+Ls7sWCCQKBgQDZgboJw3ga+bnggX/x
+XTMr3jBQdJn9RROr10WCimFU0NrXmVCtQCHPPvlzL0ARmosXNejrotzxnSOuUeRq
+cqYeAwRl3cKtto82MLt4HBCr4HwBdIeDvJ3k9Uv+WMx7FqMR5rJoNM16Y+SSrR22
+tyzdUf70VzazIesDHMN/why0owKBgQD+C02KSXt6fU2+V+hMd1mhwqK0p/vpow39
+WWc+OhlX+OiMUd+k4xf7gzaVktL8/j3YYO0uOwd3BUc50UeaeuQr+ok7Xq10/xrO
+QmyALL6zkcdOVT9XCNe/gv3LLIb4bxAyR9RsuFDtKFMicX/Tz3Lqk9IuQGx1SQGC
+GdCSt5Bk7wKBgAN2KBLNtJShUs764KFjvVO+ZoBxSp4YQlbixy1rrF7gMAtsWjdX
+pPIaa3fk0Z02G26UIg/V+LQzrwSwMvVqu7AQljpUzCtdk2vmXKVttOo3WWHgi+OR
+1eV17e6vVRnEY3X+eOplpLuE6XdYH/fvdFxVWLxkwu8Y5BeZlpbq7PAHAoGAdA/L
+5BLAM+zNONnGijC4pVtbpDdespXIzWcr8NTwQS25aGn7R8Rsb3650Enc1LJ+pL1b
+fpR/S5QAv1xqXxwn5CO40IPnsRzfLT5RfZlzomxGZvYxUtz6XEdHFayJGTT8bEw+
+s1DdwAt9N64s3SLYeG0CSBkss8SfyMVscaslb8cCgYAwfumP+Qe4RJfrZNi3b88u
+p/K6kx4Qy6xTJlSjWQm4NyRfww4c3BDSLJrZU8+iTIeJCwhLgBE4V7m3o76E589o
+XiMH3FZkGphXHDt1ZymbdGlotlVuAmcvBBOD4m51lVtyHqFyx9y7/LmOzenXZGTJ
+Ap2t9nPoR3tg59D87Qp8ag==
+-----END PRIVATE KEY-----
diff --git a/tests/auto/oauth2/certs/selfsigned-server.crt b/tests/auto/oauth2/certs/selfsigned-server.crt
index c97d277..549677b 100644
--- a/tests/auto/oauth2/certs/selfsigned-server.crt
+++ b/tests/auto/oauth2/certs/selfsigned-server.crt
@@ -1,18 +1,19 @@
-----BEGIN CERTIFICATE-----
-MIIC5TCCAc0CCAO22gNi0v20MA0GCSqGSIb3DQEBCwUAMDMxFDASBgNVBAMMC0F1
-c3dlaXNBcHAyMRswGQYDVQQFExIyNTIxMTE1NjY3NjM2MjExODgwIhgPMTk3MDAx
-MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowMzEUMBIGA1UEAwwLQXVzd2Vpc0Fw
-cDIxGzAZBgNVBAUTEjI1MjExMTU2Njc2MzYyMTE4ODCCASIwDQYJKoZIhvcNAQEB
-BQADggEPADCCAQoCggEBAL+Fl6v5dcU7qk7vbINclWOhvCe/uklKnXV2QU382x7g
-qpbYxJiJvz24C6tgDMmE0pwEz6PiCbh1dkc8+9cdp37eBcFLCOXYQb27gqVVyVtu
-xO0LLVXPCv48bGSwljOz0FRC3FolzWxzrZogM/i2b/lmehHJ3D4ejmINmIgtFJ9P
-JNNCH4Oh5YEbaFFlNf2m7lCoSuQkOlLZcGeLoipK2XvhZJff6c1uxValh/Mx5dNB
-5Mgd5cOZSSEhwf7mcE8C3SHVfjeNfZGIqlkwdY8lvAOjirAtj6Yl88sJOUID/Q/N
-hU9D8IZy6+Bk2cJQwI/Gzr590VYvlSTI+6lXr//oBBECAwEAATANBgkqhkiG9w0B
-AQsFAAOCAQEArSMO88AYT+9tPCl5lXtSRa0OycqKNlW58GujxIDuR8WX1eFmGSHQ
-uijo5KPYUnqydZzAewGC8NvC9WcLwFltNZ9igXikUHiAHc1JLfW7+7SgKpwOUb02
-rJkUkpPA/SmwkLSKYiR1prt5wgSulU1HPBESep05DfR8MCU5+KHkLyXDqtrbudJ4
-lQd9dSKJFn+cSjUC5JNxCPHoIISe7hfGFMLkd0/tVfSIXLVOAZG4K6zExUdjyPi8
-qEuPq6QCRyIJbYQc5HfnARgwK6GXHqkyLWlqK946Yz8VOba7Nan5uQ6xCjUMHw8Z
-z/673o/3DCaQ9N6dWahNQ09a9ZH8U1X4iA==
+MIIDADCCAeigAwIBAgIUHbqecJIZyZuVjw3wxN45Kd0guzIwDQYJKoZIhvcNAQEL
+BQAwIjEgMB4GA1UEAwwXcXRuZXR3b3JrYXV0aF9hdXRvdGVzdHMwIBcNMDAxMjMx
+MjMwMTAxWhgPMjEyODA0MjUyMzAxMDFaMCIxIDAeBgNVBAMMF3F0bmV0d29ya2F1
+dGhfYXV0b3Rlc3RzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtws+
+v+B9vItR1VwOO1xLF0NuLCimIxVTo6hAGiazSQU+wN4zmOD6c5f8QDmtoM8e1gWi
+kZ9jc5j9p7fYnreLJ7PTnBudb433GuFlVqYztxfiVePlwOEG7VDk7pbWTN+WlTSz
+2Rm1IHk91CnanVvWAPnadSmETju/mbGnHQ2OBggnNZXMtyU5xU0SOxdt9JiTsdar
+n6pAkqrzdUa2H/X6g42xA/0kY1xxtasfM+CptUBpYqT+DWqg0kemiu4lsZoQr+di
+gHXbUjWWiycyYXdfo4VkpejIaOjY4hk21iGfRo4SRCBBgUKJFCvmE2Vm86BH1pMW
+4zX/7T5Pdg7zns0whQIDAQABoywwKjAJBgNVHRMEAjAAMB0GA1UdDgQWBBRhMWqr
+TIOVg8O4mrrBuDasZR9TBTANBgkqhkiG9w0BAQsFAAOCAQEAOVs185gl/j9O7lsE
+0gmo/0GFiUpXga9IEgiPyJyUFbw7vxfak3S5JBVpzAiWbeVw8MyI941DDzaxYjG3
+QG2KACxBh7HTMX3w+KTbSL0RmtXJGsU+IjQNgUuM+s+cY0tCGSbGI5Anx/sDaHL3
+r4l+KT87/H/jo2yC5hsAaZQ/7BM0TtQ307l0fsJ+4BRMe1VQtXL7QRH0wty1X5DQ
+BKb+EsdQ3KP+PKjPmzyU6QESTShvQAVV7u87yGoAG85IQGwmIrcb1//ZshxR1d0c
+X1HCL6ZKo/aKhHZ/+z6v4RAF8+6KdSAYbZdfktsyp25kO5HR1gh/6jyfMbd+wD9U
+vS3IYg==
-----END CERTIFICATE-----
diff --git a/tests/auto/oauth2/certs/selfsigned-server.key b/tests/auto/oauth2/certs/selfsigned-server.key
index b7be118..c70e6a8 100644
--- a/tests/auto/oauth2/certs/selfsigned-server.key
+++ b/tests/auto/oauth2/certs/selfsigned-server.key
@@ -1,27 +1,28 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEAv4WXq/l1xTuqTu9sg1yVY6G8J7+6SUqddXZBTfzbHuCqltjE
-mIm/PbgLq2AMyYTSnATPo+IJuHV2Rzz71x2nft4FwUsI5dhBvbuCpVXJW27E7Qst
-Vc8K/jxsZLCWM7PQVELcWiXNbHOtmiAz+LZv+WZ6EcncPh6OYg2YiC0Un08k00If
-g6HlgRtoUWU1/abuUKhK5CQ6UtlwZ4uiKkrZe+Fkl9/pzW7FVqWH8zHl00HkyB3l
-w5lJISHB/uZwTwLdIdV+N419kYiqWTB1jyW8A6OKsC2PpiXzywk5QgP9D82FT0Pw
-hnLr4GTZwlDAj8bOvn3RVi+VJMj7qVev/+gEEQIDAQABAoIBADdoXsjSEtBMwqiz
-e6FFV7LLR7P4M9ygSY2B+MKnNH1qYe/iJn4626jvZfDeiNSEKKoaejffXRCQaveR
-HQrO+XYqpV+WZayZM+vAI7vRZb+d/DrX0PXSQEvtDy7SJ6Itk0fNUBKEfTmy/bZp
-Op/pp9tvWkFrNNyD2o1jgY1j/WNY8g605m0oURJ9WQsMUu/Kzu+NMoaKTIoQGb3d
-dP71F4KaTXHYxj3B0c+y0NedKbrvnBsP6XbEpgJBaXjtD9z+z/aMF6dmuvpkx7uY
-qzwPMRw05QPyJ9x+1V/v4TytY5f596NgW2niVj77BunkZasTYIEX7bjByrlTeLdx
-xvPRpAECgYEA5KkM/ORbhN1oaw9+tQxA48oG2DFqChBr+vc4NU4j5SNFn9ks5nHI
-xdJNZ9k+bjVUkBP4m88Wd07SW9zXCL8Q5lczb+p5SWl/Pp7ltqaxpH17uzamsaIv
-KIBkeJTOU5TuWdXiV5FY+ofK9ojyEaqX1tmylWnoVe4bIMRWXE5bMSkCgYEA1mvJ
-snkNzPFG0RK7ikjsNxrhzE07+7RSnoM9WeW8y2lvQ9MjdR6eOgqnnlcdk2A7OVbf
-culNgLc0qx/PxZ4BV+8yLLb1EBBGvuVG+x4a6H2mLHdFCJekByZHaQNs9ogVLvdv
-3z8D59KknBUjtj9dCw90Z41yMM4kpWMG9yfSEKkCgYEAvuCvytwF2d/JrrV8nD3i
-XUTkecymLEiRGysMbNMR+9F56XotlSEe7KQloa8kAnPaZ3uEaOxyYJ4X1D+B8fct
-cFsSwTYGkVXTtr6GG/cDC8EEbL+uX1J382Nae54croEAh1WYYGkg0eJRd4PSLxUt
-M1j/TuLd4/2j/7JmNR/j2CECgYBdB3MBHghgzKXe+/OmMbFazyz8SN4nfLsDzwkF
-QenBj0MY+DhADkK0B/9lcYKBeJT5cbmMz7AykkolnK22nbETh9ILGG4GxCkNlchQ
-F2WxTSKV1EF9Ut11xKPi6fuSksQuFmjRQTPelsOYfIt7/M3PiKsGapYKmsXHg8l3
-3i0D0QKBgQCi+HNOaYqduxwjrj8h4eUbiwjID8DCNJ+jXsuGVa6jcsfFpdpivx2c
-ytYSXuTXLRq0I3c1ChUOGQQeztJ5GtCPnXjLHHMf3f6yr7Pk56AUmUsaIlR1Q2Zo
-gqpFD8zYD5UFc2KM7Y38YTh4j82uDzDvHBBFpli7dEmSn2WpcmzFag==
------END RSA PRIVATE KEY-----
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC3Cz6/4H28i1HV
+XA47XEsXQ24sKKYjFVOjqEAaJrNJBT7A3jOY4Ppzl/xAOa2gzx7WBaKRn2NzmP2n
+t9iet4sns9OcG51vjfca4WVWpjO3F+JV4+XA4QbtUOTultZM35aVNLPZGbUgeT3U
+KdqdW9YA+dp1KYROO7+ZsacdDY4GCCc1lcy3JTnFTRI7F230mJOx1qufqkCSqvN1
+RrYf9fqDjbED/SRjXHG1qx8z4Km1QGlipP4NaqDSR6aK7iWxmhCv52KAddtSNZaL
+JzJhd1+jhWSl6Mho6NjiGTbWIZ9GjhJEIEGBQokUK+YTZWbzoEfWkxbjNf/tPk92
+DvOezTCFAgMBAAECggEAF5/dbPFh+RQ4LyPu+E1cqbd7wDpM2wlVHrHH+DgXeqyx
+IT5shWZAHOw4U+e915vz3GakyUu7j79muZ9aV33T+X9Vp/fOdYfqpS8DH9Baq15r
+SW+dByxj8vw2V+7i4NAYxNAlCDevr23Gg5wVSasBL2YQAoAlwd0nSQRrT64grvll
+SqfoyuOQs7+Fzny0mVHgHjxi0V+4io/pl2UuwnUJWnVhi+t/Eh4WJ+C4SNwIz7UO
+mAYoO3LO3sh6QVYObfgnTmEdMLbg8/r1eA4E2MDjB51AlffeeaaydpvtZ/ah76SQ
+/R6fYgkX71OJaTXfqKLAgFAtQfUguoL6H/i7Z2GAwQKBgQDFIWJ/dPHbp6uPqHsP
+yjLxDEhrgfiBEAnyoDk8+8jaYxeo1p0D5kPJy34upAZP5RUns3UBVAi4BN0J1mxn
+283e2LsedPBc5v3qa1cL5SL/Xzffs86t1rz7grp/mwPhpt3kfH5W4vi1tntBb1Sh
+VU37/CfmpwUVbUtMcKgocGh1JQKBgQDttPL1hnf2ISKHpFDSoEv0/tqIZaYwc8Ue
+0OIB5C+sbBo03sKBQkVN5C/PW73KTWlGxDbdZXCrVKG9Sp0jipIIByGBHFTxaqFF
+GbMot5ErshzBdGk8A362fMLRca78y2Qxis+OgDCtDWlvwn0gRzhmbJxC+wC6VANG
+e/h64jff4QKBgQCEWICHb5z8ylndDdDo7eg7evKX8t9CzuDO2pDzB1t2evakbMln
+l81FCnCBoa93LiaAy/Ou25sq6GD5vNJ0+9YAWeNudDX3OUGZg00ieEiByIx7jH0i
+qruf48mP6CO3+E6ampY7gRBW9tdTPApGcj30AftL2DAKjaDzBeNvmuAWXQKBgQCx
+us7CB0WgkQvJUXFg2puQVhE9VItaxOTI8rNZaKzAhZ9ekoPps4wv/gJFTznrjc++
+Kq0/Aj6oy8GWz7gIP+6J9BL3/x//1ZM5IEsVkZMIkcbwWkLorVBLz6K2iQKmXsjO
+RhSEXpKGgXWpK0j1HmssId8AMb5Mks5UIBMchhHy4QKBgGaXPbYFvkofHQDamA5n
+43f6fC7Kt89wGKleYmFVkDkdFLbyIXVFOuGjm5hPz5CQO1YgZALA2N/D86/Plok2
+Csz1rAAhKBu4dXjCtpufF6MqvFVanxjUBXBwLckBLHM/nAxD+BMlZYJEysMXV+hI
+lFW74EMqE1xyzC8DTKuhn1Uw
+-----END PRIVATE KEY-----
diff --git a/tests/auto/oauth2/tst_oauth2.cpp b/tests/auto/oauth2/tst_oauth2.cpp
index e7fbf98..69bfa5b 100644
--- a/tests/auto/oauth2/tst_oauth2.cpp
+++ b/tests/auto/oauth2/tst_oauth2.cpp
@@ -32,9 +32,31 @@ private Q_SLOTS:
void setSslConfig();
void tlsAuthentication();
#endif
+ void extraTokens();
private:
QString testDataDir;
+ [[nodiscard]] auto useTemporaryKeychain()
+ {
+#ifndef QT_NO_SSL
+ // Set the same environment value as CI uses, so that it's possible
+ // to run autotests locally without macOS asking for permission to use
+ // a private key in keychain (with TLS sockets)
+ auto value = qEnvironmentVariable("QT_SSL_USE_TEMPORARY_KEYCHAIN");
+ qputenv("QT_SSL_USE_TEMPORARY_KEYCHAIN", "1");
+ auto envRollback = qScopeGuard([value](){
+ if (value.isEmpty())
+ qunsetenv("QT_SSL_USE_TEMPORARY_KEYCHAIN");
+ else
+ qputenv("QT_SSL_USE_TEMPORARY_KEYCHAIN", value.toUtf8());
+ });
+ return envRollback;
+#else
+ // avoid maybe-unused warnings from callers
+ return qScopeGuard([]{});
+#endif // QT_NO_SSL
+ }
+
};
struct ReplyHandler : QAbstractOAuthReplyHandler
@@ -57,6 +79,11 @@ struct ReplyHandler : QAbstractOAuthReplyHandler
{
Q_EMIT callbackReceived(data);
}
+
+ void emitTokensReceived(const QVariantMap &data)
+ {
+ Q_EMIT tokensReceived(data);
+ }
};
void tst_OAuth2::initTestCase()
@@ -354,6 +381,8 @@ void tst_OAuth2::tlsAuthentication()
if (!QSslSocket::supportsSsl())
QSKIP("This test will fail because the backend does not support TLS");
+ auto rollback = useTemporaryKeychain();
+
// erros may vary, depending on backend
const QSet<QSslError::SslError> expectedErrors{ QSslError::SelfSignedCertificate,
QSslError::CertificateUntrusted,
@@ -407,5 +436,59 @@ void tst_OAuth2::tlsAuthentication()
}
#endif // !QT_NO_SSL
+void tst_OAuth2::extraTokens()
+{
+ QOAuth2AuthorizationCodeFlow oauth2;
+ oauth2.setAuthorizationUrl({"authorizationUrl"_L1});
+ oauth2.setAccessTokenUrl({"accessTokenUrl"_L1});
+ oauth2.setState("a_state"_L1);
+ ReplyHandler replyHandler;
+ oauth2.setReplyHandler(&replyHandler);
+ QSignalSpy extraTokensSpy(&oauth2, &QAbstractOAuth::extraTokensChanged);
+ QVERIFY(oauth2.extraTokens().isEmpty());
+
+ constexpr auto name1 = "name1"_L1;
+ constexpr auto value1 = "value1"_L1;
+ constexpr auto name2 = "name2"_L1;
+ constexpr auto value2 = "value2"_L1;
+
+ // Conclude authorization stage without extra tokens
+ oauth2.grant();
+ replyHandler.emitCallbackReceived({{"code"_L1, "acode"_L1}, {"state"_L1, "a_state"_L1}});
+ QCOMPARE(extraTokensSpy.size(), 1); // 'state'
+
+ // Conclude authorization stage with extra tokens
+ extraTokensSpy.clear();
+ oauth2.grant();
+ replyHandler.emitCallbackReceived({{"code"_L1, "acode"_L1}, {"state"_L1, "a_state"_L1},
+ {name1, value1}});
+ QTRY_COMPARE(extraTokensSpy.size(), 1);
+ QVariantMap extraTokens = oauth2.extraTokens();
+ QCOMPARE(extraTokens, extraTokensSpy.at(0).at(0).toMap());
+ QCOMPARE(extraTokens.size(), 2);
+ QCOMPARE(extraTokens.value("state"_L1).toString(), "a_state"_L1);
+ QCOMPARE(extraTokens.value(name1).toString(), value1);
+
+ // Conclude token stage without additional extra tokens
+ extraTokensSpy.clear();
+ replyHandler.emitTokensReceived({{"access_token"_L1, "at"_L1}});
+ QCOMPARE(extraTokensSpy.size(), 0);
+ extraTokens = oauth2.extraTokens();
+ QCOMPARE(extraTokens.size(), 2);
+ QCOMPARE(extraTokens.value("state"_L1).toString(), "a_state"_L1);
+ QCOMPARE(extraTokens.value(name1).toString(), value1);
+
+ // Conclude token stage with additional extra tokens
+ extraTokensSpy.clear();
+ replyHandler.emitTokensReceived({{"access_token"_L1, "at"_L1}, {name2, value2}});
+ QTRY_COMPARE(extraTokensSpy.size(), 1);
+ extraTokens = oauth2.extraTokens();
+ QCOMPARE(extraTokens, extraTokensSpy.at(0).at(0).toMap());
+ QCOMPARE(extraTokens.size(), 3);
+ QCOMPARE(extraTokens.value("state"_L1).toString(), "a_state"_L1);
+ QCOMPARE(extraTokens.value(name1).toString(), value1);
+ QCOMPARE(extraTokens.value(name2).toString(), value2);
+}
+
QTEST_MAIN(tst_OAuth2)
#include "tst_oauth2.moc"