diff --git a/files/OnAppregistered/connecttest.lua b/files/OnAppregistered/connecttest.lua index 8d468ce79b..c7801b0ca5 100644 --- a/files/OnAppregistered/connecttest.lua +++ b/files/OnAppregistered/connecttest.lua @@ -379,12 +379,10 @@ function module:InitHMI_onReady() text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/files/Security/GetSystemTime_certificates/client_credential.pem b/files/Security/GetSystemTime_certificates/client_credential.pem index b366980046..86ed4daafb 100644 --- a/files/Security/GetSystemTime_certificates/client_credential.pem +++ b/files/Security/GetSystemTime_certificates/client_credential.pem @@ -1,95 +1,98 @@ -----BEGIN RSA PRIVATE KEY----- -MIIEpgIBAAKCAQEAzJ8ye6Rj7jSxaqtYXTNhMwllqWPaX13ZFZLNq6tsefg61IiT -OQcrBcIQUO9Uo29JWHUQ81iM9kMCe5n371uSVGDvm5iROJYbn8Eh3dII54XCbct8 -CMHSF+46SQ6PJshUeWE5B3tG0u7K+vE3Pdav4G5Rg3bu7fyiWKt3FU39mMISxkTT -qT/B0Rn+/+vi//3DjnkY5dzT6Tl3WS4yngsKeLEvcl5t1nBwlvxy9740iswaXm3f -wroYooSVS6sZM5ShKdUWdM5HyDbQ+DNehhjg0wFXzvDsP9lE+2Zy/fR+0IRTNpDE -zkNJrm9gm2k9VEtqNNkYQJ8b8NO1HPerJu/nfwIDAQABAoIBAQCjoUsFhNhEzO5z -lsH7BfNclM8vPiKK0Mmgbtz5wwPkJZUmEHFq0UieOipCDqFocL3+dt8vOki/Rabe -oKmcR2YlA7+YddDrp14/ynoCoMtuGZD5rBdsCVKwwFjrwzDGmryytASe7v4b/8li -EzNRyDStDIsyzhETT0ukDLoV12BMnrcMIMnXOjcy+fpO2Q7lWPko1+/VtyzYwbcO -GdLvmpsFlxQtorj3X8QEVuP5DZzZHr+KXrMLeNvshTDxRXPOlO18podTcBzqj/KW -iwrrlF2t6GoIA1zmPK6vgc1xwaXQp6rsKFhbR4fCu7bnAQ8NmKCAKQNBKtokHaqK -MkEe/TbBAoGBAPPNhNawBhYeI73PQy0K1hXAdQ4AvGeitoKA8g/Cke88+RQZvXF8 -HITlo0pQTvP8ASEqlZnGHcn72dnhaVdi3zvNpmhWvKVyp18UqbM6/fvPtjkKqo3y -0KVa3a5g7VCYz/jVl4Qs/T7I3TXInWgyO7Pp4D+/vVe/VQ0ZbeFkGkvjAoGBANbb -30KwSTE+COh6ngOxCuzAI0M3yA4ZCCKbHNRht9BR3br08jxaNP5QG6YEPLIL5y89 -73+TvsboJ/1O3vtvhJtRsJhXZih51wy5JlNf5eYOjqWzceqVR/voq3vzMxE14VB5 -L6CCew57GwKtUhMyC7xEmE5uIjqaz5fqEzWSOsC1AoGBALvCg5NzbLyL6aq8fFes -CMQnu/5UwsRto3FOLR3GEu3UX18Dk8pacvxGfkM1Jhjw802/pgcPdNGhjF0oJCCQ -nKtJ7eZdJlukuRGYsDjALepIRWYYuNEpN1ahbChnrVxs034nwNCidUZtGy/YmKEu -Tpx4eaOe3ws85xt3ghAbL8VRAoGBAKBU+Pih5ixp12nsPkgQ8E8VXfsGADKM+WYh -i9TsiqdYv/aIXM8unYb9LnSnisduXHkDZdo03VM+4MCE/55vbGwe/IHiDmi76v8i -lvf2gu83A7mg+6wK8+mGiZj4Na5tH5LWq/TCCaQXt2M7BRkv6lP2eBVm2AIVjj4V -vXnnghJVAoGBAIOvCe3EFvMVF7uKLK6AnOj2bytnSMDcFy5nDSErwLGH1ldVD178 -11TBciP0HsdnWuKcI21OgkHknsUBXmJISASmdEXXoQdPkJpcDizJHDjOf5CT4DGo -tIq1bF7ZB9iZgvav4EvRzR4CP35dV3zLnMgW9Tlc2aKm4LItFu3G1QIt +MIIEogIBAAKCAQEArQzYjHEQfjKEsffssT3Yizb6PnNHqqL3ik3sTHgeBYGNsS6a +IcIJPAmFfi7Cn9EiojRE5ssHY3g7TmdfwGheBahw8CEsNGYCp4jkNWCpUTfWo5Gb +OqES4AeGnQerUOV4HaDhxdqwCICzO/1HeuwY5UEbnEVILqh6ZS5imPCO+J1LvHD4 +3eQgS14buSb1uztUtDx5iZEjtrrsBYvnB1XaXG/wAnLpKBop3rIP/4oQ5I0xhLRr +1V7fu4CdyY6V1NKkGG2IdSQa7AwYg8FtxqT8E7C2+iknD+5BKUbGCYs3U+mnf8+L +ubGuni5m/HbdFDjXxSY66eFmcC3jcUxkLeuiYQIDAQABAoIBAA/dNZzqYJCxIOkP +yWsWOFvK1nYTK2bBOeA79IWuHVJz5gFwPEEMALy4QrymnMD58yrbj9V4l1zPEODH +KUgCSVxLbM8Wu26yS1wAeKtMCTmg3NRx7MEbMxfGmNicc2AfKTvOG+R/f9PHuKav +OXZTXpTluxpAX7WnTFEqR2+t3e18l1kmMEC4lrxCG1DXBncRHQCIG+TyR0D435O0 +LyCoIhj0oaoadDUH8Su+oRakCeY2z0zsB6JrMZEM0E9krGrSi8IV3h1LdkeG3ded +F5F9QF388dsJ1w1pi5C0DQxs3U+OSsxuu6931gtFH0Rh8S+nHtJuObH06L5w3Fpm +2iMdHoECgYEA4w1pTUv1k1DFYhgNthdmZAIqDHuYPE++995ex3CW31fheaTW3DO4 +j+3yZ84es+gmpk05j6+OdQyyj9jvqMzg3N6k8raGglyxMTuXjoQ1IOdqPdT4kDqs +LyKJsarZU9UXslF5zJvnXXOVYApywwlVM5YojLCmi7FeuI+ACWFIPPUCgYEAwxzl +3Qs/s/kyesgzL1vsoNwfiBwGs3NAGyi4bBSP0mgls2/Xb32UIMV3L0whXpgm58bZ +FthQatfHhRF5RFFHDvQsy3f8jIB6YFvPO7K4uaD4ayuCT58Ia5TmwzhvV+M501Fh +VNa8ybSEzqLhb4kAVxQv9G/UecsDM/JdYCtvLD0CgYAq4w6f3hgt0lTmOXrliTf6 +7fm5T+MqiTmeIi+u5lJpL3VUf9Fh2JclAKIH/4QHIXOjd/TGcjerXlGgIC7sqH5U +2e04N0fi+dUyYno3HjvW0j9cHI0y2RJK+PAfUhEo55hJQ2CJSG2EVl/Bu1eABZRF +YTiZkohy3Hbyz5A0tV5qvQKBgDXrQ36tgCI9SHzz3GlHDwJ5MmGL1TI8NEgNHcII +gKJV061dx/xwiMHxr/krIcGhbIb6xb1xc+/Cx8l3Rbridy+jvMlR1EIDs03zsTY/ +Mpth56S+NlnIiiwozwi+DM8N5UoHoE0wtqVLNLRiAMiw5J4r3wC+8snhl3YAkVtl +RWjFAoGARorsW5R+wQftDjsP1kiK9hSBoiikZXzlFTuJWiiWJuLoiEgLzEdlSQ6u +iNM+EsG4AOwi6hnWbPliICVUx+JJi9rm/XY70W+rCRIGiaeSydc1MGhehKq4jSye +c6LHGVKBqhyROhW8NiTkJwVpQVROtR5gEuPCWZ2HWGU64EKy9EY= -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- -MIIDsjCCApoCCQDxyGnVVnCS/DANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMC -VVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRyb2l0MRQwEgYDVQQK -DAtGT1JEX0NMSUVOVDEYMBYGA1UECwwPRk9SRF9TRExfQ0xJRU5UMRQwEgYDVQQD -DAtGT1JEX0NMSUVOVDEeMBwGCSqGSIb3DQEJARYPc2FtcGxlQGZvcmQuY29tMB4X -DTEyMDMxNzEwMDQxOVoXDTI2MDMxNDEwMDQxOVowgZwxCzAJBgNVBAYTAlJVMQ8w -DQYDVQQIDAZSdXNzaWExFzAVBgNVBAcMDlN0LiBQZXRlcnNidXJnMQ8wDQYDVQQK -DAZMdXhvZnQxETAPBgNVBAsMCEhlYWRVbml0MQ8wDQYDVQQDDAZjbGllbnQxIDAe -BgkqhkiG9w0BCQEWEXNhbXBsZUBsdXhvZnQuY29tMQwwCgYDVQQFEwNTUFQwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDMnzJ7pGPuNLFqq1hdM2EzCWWp -Y9pfXdkVks2rq2x5+DrUiJM5BysFwhBQ71Sjb0lYdRDzWIz2QwJ7mffvW5JUYO+b -mJE4lhufwSHd0gjnhcJty3wIwdIX7jpJDo8myFR5YTkHe0bS7sr68Tc91q/gblGD -du7t/KJYq3cVTf2YwhLGRNOpP8HRGf7/6+L//cOOeRjl3NPpOXdZLjKeCwp4sS9y -Xm3WcHCW/HL3vjSKzBpebd/CuhiihJVLqxkzlKEp1RZ0zkfINtD4M16GGODTAVfO -8Ow/2UT7ZnL99H7QhFM2kMTOQ0mub2CbaT1US2o02RhAnxvw07Uc96sm7+d/AgMB -AAEwDQYJKoZIhvcNAQELBQADggEBABF1RZtawNRTphALoEgOt+kXJqTg7P9h76l1 -3bD7a4EJGNWVyRQvleeFtKb+cfWX+6ge7MgNN2kHcid7PK5C1KXm5H54c8MJ/QUp -Es/+niQInBHJJkcIQyuZI0RVnabONRXiSG0aG2pIl+Hccuq1VDPWIZ0Ml91U/xFt -8j1vHpocPpK8B/sV14H8PvBJT7sY9hjhznOrhZoL7JOh/jjO81q4mAaXJ+zKCbGv -Bg+/GVbiZD1X/wzegecxJP0I9Tk65AZQK1jzUP6AJLmRqC3YLAmaRxU6qRp1E9Uq -0e5Evu4uExWHAWW4GdOTbqGqCbE+oMILxJXNkD4A8NvdQpTic98= +MIIDvTCCAqUCFHILS61cIH8MhRZMx3KuVAap+1fxMA0GCSqGSIb3DQEBCwUAMIGY +MQswCQYDVQQGEwJVUzERMA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJv +aXQxFDASBgNVBAoMC0ZPUkRfQ0xJRU5UMRgwFgYDVQQLDA9GT1JEX1NETF9DTElF +TlQxFDASBgNVBAMMC0ZPUkRfQ0xJRU5UMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVA +Zm9yZC5jb20wHhcNMTIwMzE3MTAwMDAwWhcNMjYwMzE0MTAwMDAwWjCBnDELMAkG +A1UEBhMCUlUxDzANBgNVBAgMBlJ1c3NpYTEXMBUGA1UEBwwOU3QuIFBldGVyc2J1 +cmcxDzANBgNVBAoMBkx1eG9mdDERMA8GA1UECwwISGVhZFVuaXQxDzANBgNVBAMM +BmNsaWVudDEgMB4GCSqGSIb3DQEJARYRc2FtcGxlQGx1eG9mdC5jb20xDDAKBgNV +BAUTA1NQVDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK0M2IxxEH4y +hLH37LE92Is2+j5zR6qi94pN7Ex4HgWBjbEumiHCCTwJhX4uwp/RIqI0RObLB2N4 +O05nX8BoXgWocPAhLDRmAqeI5DVgqVE31qORmzqhEuAHhp0Hq1DleB2g4cXasAiA +szv9R3rsGOVBG5xFSC6oemUuYpjwjvidS7xw+N3kIEteG7km9bs7VLQ8eYmRI7a6 +7AWL5wdV2lxv8AJy6SgaKd6yD/+KEOSNMYS0a9Ve37uAncmOldTSpBhtiHUkGuwM +GIPBbcak/BOwtvopJw/uQSlGxgmLN1Ppp3/Pi7mxrp4uZvx23RQ418UmOunhZnAt +43FMZC3romECAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAsdEP6xNH+hu09JqynMxF +Vrt0GVczlMVG9XTRsTC1TYILbjvMhXb8kA2Vfg9fDob8uSQp8SLI7hLFch6HqJvQ +xWxJYpRA8vqOaGdghGSEuY5Vzqp1BlAsJT6VEubohhvIL2v2CwfnpNIQaYExnquQ +LugAXS0stmCWUaTfepHurFU2o3XRMbE0DHC7DhN11/uXcLGdMomNUasQuur0/mNV +sss0UaK9mDW5Jkbj/ypMQief/S9PYay/I+oXSOoeH5+tG10SpMHNSNlrMmHDs4uY +/NlPgFjFl900BIUx1kJxWcO/PsDrAkKn1QZuIFUu9ssNaYESOQn2Jl+TlxE4N5EE +DQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIEBzCCAu+gAwIBAgIJAIP3pt4QUWolMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEXMBUGA1UEBwwOU2lsaWNvbiBW -YWxsZXkxEzARBgNVBAoMCkNBY2VydC5vcmcxDzANBgNVBAsMBkNBY2VydDEUMBIG -A1UEAwwLc2VydmVyX3Jvb3QxIDAeBgkqhkiG9w0BCQEWEXNhbXBsZUBjYWNlcnQu -b3JnMB4XDTE4MDMxNDExMjU0NVoXDTQ1MDczMDExMjU0NVowgZkxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQHDA5TaWxpY29uIFZhbGxl -eTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwGQ0FjZXJ0MRQwEgYDVQQD -DAtzZXJ2ZXJfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2FtcGxlQGNhY2VydC5vcmcw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPq17BwejsrvNl6I7cip7L -tQvX/p4EMCi0i2HsmlGD0J+Vpq9Ws3xokekOO8RITBfD5JDoX6ufZf28bc26X4Tp -G8if18juzrGZD38ALfeuoYAVymuBd4NF2xilwX+uqH5E4lkqBOZo3nQ/f1aTKQVT -6DZmr+V62GGaaMewaUOyZ0fZM4tS5ncuvSCMtuLHH5gy87e/lzj8Zbyek6ej2lUL -lwaCMOGCOoxhxUr8rorMefUOMZ4IzObSJ/y6XqWJe8yjSrAmyRHBmpGmCiMUnrkD -4FTY05Cyn2kncCHlYFL18C0utwTBYK1Gv8qampSD+e7ZWKTO1kEMrbZv3kwQdTfp -AgMBAAGjUDBOMB0GA1UdDgQWBBQ+EGb7hYQffkb6GXTWVMyqzz3joTAfBgNVHSME -GDAWgBQ+EGb7hYQffkb6GXTWVMyqzz3joTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3 -DQEBCwUAA4IBAQBFH2QNBHlth/nOIzyxPEXAyvkWDZh2/hukXlK4zWvWyiLlJXr9 -t5goWFzjbqpsCfN3TOb+CDBd3RYhhdnhxXMYmydR77+SlzZ6Lx0YBz7zNV0OUKTK -5Pnlh8GAP7CjU8A0pHf3auAgmBsVmX7+uFQcuRFzvc1LCL6q6t7pM5HH+NvJs7K+ -C/nQB9yW7PWXatPjNVY2YY5YJi2EuUdCFFcAQOtI90Xa8xVtTONYHh/QS7/egVWh -vdsuKx0I6SvMXf2AlVV2NSzcIqps5h7flYAw5sBC7ETux6DV3PgbikLybgxzHlhU -NhCYi7/M9o+QdQKGFc+Pdeapkl8a4GuuR3ax +MIIEFTCCAv2gAwIBAgIUL2z7SxCqpQwvIBsPzqPV5aPcHL8wDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtzZXJ2ZXJfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMjEwMTA2MTg1MzI1WhcNNDgwNTI0MTg1MzI1WjCB +mTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNp +bGljb24gVmFsbGV5MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNl +cnQxFDASBgNVBAMMC3NlcnZlcl9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVA +Y2FjZXJ0Lm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMcI56uY +iwh/D4PjN4A1vrY2S7eYgpH0fu/W6WOK/qQ1suxprq8cHNaCMBdOHwkJJTKejQNi +A/bfqS50dYhb5aJ/KkEKnhmr//+tgsWVeBumzUgMQS6DXZ1qiLLVgQcks0qOuCJn +nNNGIIXCkg1SckuHH0roknWrodKYpfY5gvC5hjeUuHr35UT909/kTHh8RXqIDAyg +Rj85mPGJir0YwsCaVCRi36B92mELBTBq/R1weycNZl0dGU5CdobRdk1iZmZcRe2T +6iABGBKhpBWHmk79djdhgczJ53WOigR64cXnDlNiqMsaD9og30gNGun8EqgYF4sS +g5avGuX0PSJIXT0CAwEAAaNTMFEwHQYDVR0OBBYEFKFrLP3wyeHX0myeD9EzY79A +Un6XMB8GA1UdIwQYMBaAFKFrLP3wyeHX0myeD9EzY79AUn6XMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAHJdnLx0amjFQkfQr2i4dj1H9wn3XvCp +ljGJ2fClIbgljyAitH5RXboWujHOXLzwGRHtV9XuwaNDB83JDPPbhfA7Hk+UF8fT +kaLvcvySQENmKmRQKnRMgQrxH9R+ZnsE7ZvTYN/lV2FUMrWqHciwKX6nvjvLZYCm +jK2Y4l6OT6ytNpPv7R0ic21AWkMk0wpG0yJnrK0C7avyglvZRVkuMcWgawzWMWvx +xOv6y/mM2wya/+U8Qk4wU+SLK2tIxzweLb/PCUSCi9UfcTfRdM8/FPAyMYb0PgTm +jY2N777FhByocrxppmz/kkbCkabjRjWwV/XP1NRroeqY7sBjC0OjEJM= -----END CERTIFICATE----- +46b421d9 -----BEGIN CERTIFICATE----- -MIIDqDCCApACCQCpjnaAoaUGmjANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMC -VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNpbGljb24gVmFsbGV5 -MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNlcnQxFDASBgNVBAMM -C3NlcnZlcl9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVAY2FjZXJ0Lm9yZzAe -Fw0xODAzMTQxMTI1NDVaFw0xODA0MDMxMTI1NDVaMIGRMQswCQYDVQQGEwJVUzER -MA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJvaXQxFDASBgNVBAoMC0ZP -UkRfU0VSVkVSMRgwFgYDVQQLDA9GT1JEX1NETF9TRVJWRVIxDTALBgNVBAMMBEZP -UkQxHjAcBgkqhkiG9w0BCQEWD3NhbXBsZUBmb3JkLmNvbTCCASIwDQYJKoZIhvcN -AQEBBQADggEPADCCAQoCggEBAMCzhMkEhaMy6DkmyTKOhKYJKGsM64SU+6N/TCkv -I3eaj2Vn38gJ57QSwowmF/PtnP0LMPNfUwSmWETHHTGx4hqnAEomhy+4OIpByagZ -LUg8oGXAp+Vx/YyIxTMz6QgACjUV8iHnJWf6SHq+zhGQpo3S9Y2mivOzpAJY1n2n -Ae/FqfNS61CYLBmIh42qt5wOMweiH1Ny+mYUpT7RFMSeDHiiBW4frnJSBKR1xLVW -Y41A70Kto3QZFnjPTZ2eXyXomt+iV+87VWDfAV/edndblVk4QylJO/uPUQzlSrv9 -oY/Y79AcdPjub6xA8Df/H33SNVtSyGvSKEaS5GP7mw6zF98CAwEAATANBgkqhkiG -9w0BAQsFAAOCAQEApIRshx5Ev16JS0DNKYduKqf2N7c7HjGkWw9cdYXBFlkha5uf -2dRe5MMCQLW7q2783a1gBXKxCc4UHks8AeFxajC2KxyTdmmkQsQBQ5Ih6S00K10S -Kk8EIjJ0k4gQyB58vb38Vf494ZfR8avDmYEppdff4DRUdvAgwCRPk9NhEKXLwaZV -0ghqvgLeZ/cb5kiIJW3NHxN9acluSdQLYBdVrRP9MyLzmu13BhcCUgodz4eKxyqY -5PWNPuFCMQ5eVMYVINnZKtzupWISyX9mr1/SJ3evAiroD/6kxxyRQVxtmxLYw+aL -6PRbXGDzEJQvX5frg7WpZLvqsRq5m6KzdXGpXA== +MIIDzTCCArWgAwIBAgIUe17RXHVYTVzNi1wO3dYVogiBG4EwDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtzZXJ2ZXJfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMjEwMTA2MTg1MzI2WhcNNDgwNTI0MTg1MzI2WjCB +kTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRy +b2l0MRQwEgYDVQQKDAtGT1JEX1NFUlZFUjEYMBYGA1UECwwPRk9SRF9TRExfU0VS +VkVSMQ0wCwYDVQQDDARGT1JEMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVAZm9yZC5j +b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDezAxx1oqi9g2lP641 +8JZTAA722bYXm8JxPP1hF5Gyv4GnRmbPIK+KbycX1Zr9lfLsW9gFfUxLVSIs4UuG +YsAcql4faccw8Tt8eLNsHzFMiIxIfr8OfrEeifEk2LJQuzOSLZ3XAnHEOvfhnKUx +Y1MmeZ3EXGcrLzETIGBAMAY5oza6ofh1zctQm/1Reg0fWXVGYqeBaU8TJh/pGL7f +JdaQjO4Vn1PjpS3ju1qV5xHlX6Bd5fWo8y2hbokLfoqIjlYVjFmBq8YzxJI11YwG +dFOr+JxEyQnYNKIXWkLy5pphpuEhJJm12cvFQ75yMtoms/R0U8kOLb6XdJrFrBgz +wggjAgMBAAGjEzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB +AHASV4wdwZFrUai/B7i43rxoDhl2/QrV7Usf3PprR7Q490JE8g5N6dA2sYMRAsbF +ecPAEldpm3tzaGfugQ2/ah8EBtPuP6cEQGzsVhBuQj3JyHr8wRX+Pwq85qtwOJ0r ++lIEZMhJ5YiQ8JOKRPJHQJkHkEEbioYgst/I+WnZx9irffIuJsi59UHG3KXY7SRK +ao+7+75fe80bCzgQb79j4GJyFA/wQfKkNKeKhunzM16cweOqbz0i06R/o1pmphhh +82EHuCPuiK4NMfNCFN2/lgH612Zq+xAQMj8Lv2VeV0PuO4uvKl6VvSP0XeMG4w44 +CmUEtPca3iMMAYXbCA7iku0= -----END CERTIFICATE----- diff --git a/files/Security/GetSystemTime_certificates/client_credential_0312_17.pem b/files/Security/GetSystemTime_certificates/client_credential_0312_17.pem index 5ed61d88e1..9e6a7ac23a 100644 --- a/files/Security/GetSystemTime_certificates/client_credential_0312_17.pem +++ b/files/Security/GetSystemTime_certificates/client_credential_0312_17.pem @@ -1,95 +1,98 @@ -----BEGIN RSA PRIVATE KEY----- -MIIEpgIBAAKCAQEA52O/h2A+5zdPWUTsuEHeB535p19h+pY2HnYyDLX0HDzFyJP8 -zEA/bivjJlBgOEhdwWDbkliSAhlrs9Hl0XzT6oW9gaTM84REes4J15QrMIL5qp1Y -BTwA5d8TxBxzYMx3Fo01r2CHWo2tCyIjRIVmocqf/5/huWOx3Jezknm5sc2FkID6 -DtEG5c+fXaivj34drE4iJcJ0FKntdpcm7haVMClOvZ5JcdaSM0OR6hKK/ffZTTUB -Kb1ZACAUKjcgVlTXmyyiRXMITq8HBq/hfPg9fPmPIqQ7K31+R4+cfOvcLpc960zs -fhm7VwCt9AJaziKMHUsMeGaxz0rwx/E4E022jQIDAQABAoIBAQCuk92foAgVnu9p -JM2NP3TrPk9r7lUYIVj3pqmgWW+yFlALQ0xKNnclAkvBTocqL7889Xz0b4rJtrBB -3a2NXqbsnLccJ2DSogqgtO9MDWiAk3EXPtt4J4tt498f6W9Lqzh2dVf519SHh7j1 -W25MdnG2xA/vZ4uAui0ph/NeIiTudfhHnLe33eoBzuFfjF6EfZcKsxQiNQFs/Su1 -Xg3lC2tFvRDWonrq9Rwmhkq0m049my9xTpCwkc4le30H0ldhArfRg8vqPfLGY4vl -zTecqEo7lS2ukVejaKpaoUVKp22FHrG/mJt6LKjMCFSJj3/Y0WGGqzUTyC+ZhrqW -0bbuCqYBAoGBAPuXo/pzjKucLpXPwFpksgiGyZq+a80dn7r6VOvmGcePKLxuJ36M -YDTgJuVm+s6WNoTMgEjIm473OoY5Omn/1Fw9uwQpimAfixzQP/aOgdK+16oVSvdU -s76m5b9/AyA0tQ9bCN71tbEt6TjpQq3EsRx0GBzxgfQDDlD9zRiy0C7BAoGBAOtx -gEZ7SyO8ZXM43ZA8iMd+s83nAaRLI0sgecGoYB/JpzUMAamD/j5y4MaXS3QVSGGj -7sTUjbkjt6OQy4K+XqNqeNkhevlyQguxX4TS+0trmQ+PQ6IFkbXAuUWApOuVliSB -8YJ+6l3YB2ouMVps2j62v+ANRUrHaOknvGaJL8bNAoGBAMzdZKwKrRAMRC6/FX1F -o2aoAr/bsMI8DhXdw4q3OmSyINSWydgVDD3iDCoeWbogvNIUB528pFac3+3t6a/o -no5hwcgY31F4Pfm/ZWYqEnJ97fTUE9AkC50CH/B3xx7RbGHNmgKbh1B39wHdhusi -T6nAquXejhgY6O5wTDKBYF3BAoGBAJLn0x4nOA8oMjTeuoCRBNdVW2OSTBfzOiZa -MR6ArNmovUgAIdlfnnfgvhert0zLKsqhuw3dgkCO5LqOUi1WEz7r5FO27EBQ5pzd -I7iA3IOGs45d2dlymCRMCE4xorXMNE67NbIy9pFvhdDe2bSOTu7qoHZwUVgDbJZu -UMO5vbHRAoGBAJtSQxWs5sY+Kcwxs0ddryfrWuq2uSrBoexBgZDtNlP8tbJtHesT -cxMNca71R3mPdqcLtBBA1aeBXKNmrcrCMhmdyHe9nLutGuxxsBnDU4XZ6PMffskQ -zMhyWgNRR2vxa4DWVjY0lwqwCmpmmE2RShSruFlkNviL1VXLKRWHpE0G +MIIEowIBAAKCAQEAsj0nhctIDBCk7GXExLQLY2F26Y6/KaWDm8qr0OQGxCE4fTC6 +TqbRdTsZnPL2DVi2b1yh/4CLIFaqk/DAIApLQK/A37G95YciUDtGx9jinnH6x4/l +iFMP+bzslZz7yHXP3WXyxNsSt4Cr4jzOjsBTQdKdJyUWp8Z0OkJ98oW55Z1hMeed +Z1tzIb/uQT/0dDU9FbI+jMXJNiaWw9ONcNoIJqJE0rWeSwCX82q1jsKu2GRwTWuh +3lxNG+MjlXc7RekMlPY5YF1ELKDc+gfT1+1GI/6eqvR4sIV/ZmYGz0mMOwZoawXU +gPJA4Ps6+aFjrHSYLAAwzPGOSZt1KX1tAbqWWwIDAQABAoIBAC50Y+2qKtACMonu +iFdgOaugRnbfHpHDMscTDq72D5Fkuy1d2uEO936fdbCDXn/iBEKIGSzXmutFy1Wd +pOV06WIlrJZg5AaDrvzMRklmDMKRIHSM250pUPudMuhXrwPzOMcSgDCwjHNJVQM1 +J/zqwYhhVVZTg1EdF0Pr+pmQIwBmEfzqsBot47C6Ncp64KpoiDBOvXIWZ75u08gE +lNxa1olRsDWxGc7LfCuJayPuLvAmQs9aZNuIFbizAweTucnvwzYoraFMq89w3KbW +zXKh+5KpMihYVk8ga4k63VFsj4Vr0J1d5FHT3+d5EQdbfjgRmDs1vdYce6/DLvph +6qKVCeECgYEA3GIBok0acQ3fGIuFGWVhratoPqY3Yfn/ZDsllzD2GKVxsBX+aGBb +xcShuJhSd0gaAaX7m6QTVrtuAa7Zt6Mdn+0KYjSoGVYEsl8SLuDFN4CrLVKpAxyS +ZSkeIH4ZJqA6w1km0LWc5T1X7ax8umVkGU3FoCqJnFQ5qAD8bQVtC7ECgYEAzwuC +Fuf8fNSO1LXa0liPv4rMPnIXYDF9DpyEdq17nBzBeKzPMq5M1JhsLQl7hP+k7UYE +L83Kv+aZUOwqD4iSyOeW5R/VSKGxwwv5CtA6SzUcqp5iK5+CTBuVSVWsDxFPl+xR +8Wiu8Ram2LFi3YfAvjkJtI+6GBzgNYl9MWBoocsCgYBS4YzpxAOItwXLDlWNGoKk +tMzsmshDUajJwjC97ozu8fGSnoLiMDLzaqLDcI27DGOzcP/yJb+cI7sYaPC6Tl8K +0TPRgSoi9SWpC3YkKSYiXIKD9g1X/TvVTaRl5eaBj0rqQrIFVffegrZ5zR/PXehK +V+RV+wlrwIU6eLx2J8890QKBgQCTSEB2QvidZCdmsSbEUzOOshGwqkBusUWgyz5/ +ndE8sEgArA2Io+0LnpH1R7WSWrjcAN6hkucTs9qEcjtJaYHhYL06qHZ0gHGPqkiy +pIWTUmjeBmUXWxS5RzXfQQ5weYQBMp7n9+vanJ57r1QA+rzllHWO+F8NIB1ueCuS +oF5OGQKBgGmb/bhmdug79pHOp8dEHbb+6kLiesC4x1FuAIa6WB/oIqKGOdTg+eS4 +P00JQcuApgOzom5ZoSh5DteJcNX0eiCnbosopBLQiin+c58IMMzyauiqweIv11oF +Cq+Q6U2Ve09gsXel3Grz7LvdqHFOoCJk+9Q28i0IAILf1NrtoL/s -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- -MIIDsjCCApoCCQDxyGnVVnCS9jANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMC -VVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRyb2l0MRQwEgYDVQQK -DAtGT1JEX0NMSUVOVDEYMBYGA1UECwwPRk9SRF9TRExfQ0xJRU5UMRQwEgYDVQQD -DAtGT1JEX0NMSUVOVDEeMBwGCSqGSIb3DQEJARYPc2FtcGxlQGZvcmQuY29tMB4X -DTEyMDMxNjA5MDEzM1oXDTE3MDMxNTA5MDEzM1owgZwxCzAJBgNVBAYTAlJVMQ8w -DQYDVQQIDAZSdXNzaWExFzAVBgNVBAcMDlN0LiBQZXRlcnNidXJnMQ8wDQYDVQQK -DAZMdXhvZnQxETAPBgNVBAsMCEhlYWRVbml0MQ8wDQYDVQQDDAZjbGllbnQxIDAe -BgkqhkiG9w0BCQEWEXNhbXBsZUBsdXhvZnQuY29tMQwwCgYDVQQFEwNTUFQwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDnY7+HYD7nN09ZROy4Qd4Hnfmn -X2H6ljYedjIMtfQcPMXIk/zMQD9uK+MmUGA4SF3BYNuSWJICGWuz0eXRfNPqhb2B -pMzzhER6zgnXlCswgvmqnVgFPADl3xPEHHNgzHcWjTWvYIdaja0LIiNEhWahyp// -n+G5Y7Hcl7OSebmxzYWQgPoO0Qblz59dqK+Pfh2sTiIlwnQUqe12lybuFpUwKU69 -nklx1pIzQ5HqEor999lNNQEpvVkAIBQqNyBWVNebLKJFcwhOrwcGr+F8+D18+Y8i -pDsrfX5Hj5x869wulz3rTOx+GbtXAK30AlrOIowdSwx4ZrHPSvDH8TgTTbaNAgMB -AAEwDQYJKoZIhvcNAQELBQADggEBAJrux1Z4ma3OmW6nCgUi/xBhkEyhBaAiynsH -uMXoOxgg9Ffz0MvaLJWSiXASmVIc85IJStO+tRRt/szI4KTMyFGWFYt+J5PaphKZ -7VaztlBwNMqNA2a/XQOOvUPblXY9MeDL4SdNmMsMH/Xz+YA7wRGbv2rpqb7BE37G -tmCv7rW6KQFIXGLkFuM5pvKL/5U1C3MEugoM4htD68nmir5dc7cDKbh0BEqGDWOw -QTRwWw4v5K+TX482wYMNEHRQo0wd7C/9lh9vugcM3oQMVNg+Vc5eisEh2KxjZ5dG -O+cKzijNcICwTZJXzs+v0K3oyiUq0IyXTEKP+I5jKmFIMuMTm4o= +MIIDvTCCAqUCFCeLqmSFG9w81YpZPA1kvLYGEBjxMA0GCSqGSIb3DQEBCwUAMIGY +MQswCQYDVQQGEwJVUzERMA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJv +aXQxFDASBgNVBAoMC0ZPUkRfQ0xJRU5UMRgwFgYDVQQLDA9GT1JEX1NETF9DTElF +TlQxFDASBgNVBAMMC0ZPUkRfQ0xJRU5UMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVA +Zm9yZC5jb20wHhcNMTIwMzE2MTAwMDAwWhcNMTcwMzE1MTAwMDAwWjCBnDELMAkG +A1UEBhMCUlUxDzANBgNVBAgMBlJ1c3NpYTEXMBUGA1UEBwwOU3QuIFBldGVyc2J1 +cmcxDzANBgNVBAoMBkx1eG9mdDERMA8GA1UECwwISGVhZFVuaXQxDzANBgNVBAMM +BmNsaWVudDEgMB4GCSqGSIb3DQEJARYRc2FtcGxlQGx1eG9mdC5jb20xDDAKBgNV +BAUTA1NQVDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALI9J4XLSAwQ +pOxlxMS0C2NhdumOvymlg5vKq9DkBsQhOH0wuk6m0XU7GZzy9g1Ytm9cof+AiyBW +qpPwwCAKS0CvwN+xveWHIlA7RsfY4p5x+seP5YhTD/m87JWc+8h1z91l8sTbEreA +q+I8zo7AU0HSnSclFqfGdDpCffKFueWdYTHnnWdbcyG/7kE/9HQ1PRWyPozFyTYm +lsPTjXDaCCaiRNK1nksAl/NqtY7CrthkcE1rod5cTRvjI5V3O0XpDJT2OWBdRCyg +3PoH09ftRiP+nqr0eLCFf2ZmBs9JjDsGaGsF1IDyQOD7OvmhY6x0mCwAMMzxjkmb +dSl9bQG6llsCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAcROpqRZU8zmXEqKiGhGK +4hVEJgBAD1P+G6uKmrW2Il8cCDl6OpnG/y2/IyZb4fzsLfL/Yf3m6wKnsdaJTsSe +FatDi3T6kzP8fY88ca0A5VAmOYiQhRkc6xVCCZEa2MCygeJtqOUtwBixmquAGuIx +DZsTHNoRn36NPX3uPMgQCtaowxaGpVuIVTBOMyZr6+WmSkwEKE6lRrCPg5ctCGbL +/b6VC/TeNU/cCv5b2Pt0As4q+UNE0BIbPKv+RSQ4PZVFoHguz4o1wapu0Bw3/xiS +6UQLNdY2ySfN9RKdFOW7Lbvs1SZysFP2GJH5POc9mihEq6vAJOKElFM35taDgwh1 +Cg== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIEBzCCAu+gAwIBAgIJAIP3pt4QUWolMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEXMBUGA1UEBwwOU2lsaWNvbiBW -YWxsZXkxEzARBgNVBAoMCkNBY2VydC5vcmcxDzANBgNVBAsMBkNBY2VydDEUMBIG -A1UEAwwLc2VydmVyX3Jvb3QxIDAeBgkqhkiG9w0BCQEWEXNhbXBsZUBjYWNlcnQu -b3JnMB4XDTE4MDMxNDExMjU0NVoXDTQ1MDczMDExMjU0NVowgZkxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQHDA5TaWxpY29uIFZhbGxl -eTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwGQ0FjZXJ0MRQwEgYDVQQD -DAtzZXJ2ZXJfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2FtcGxlQGNhY2VydC5vcmcw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPq17BwejsrvNl6I7cip7L -tQvX/p4EMCi0i2HsmlGD0J+Vpq9Ws3xokekOO8RITBfD5JDoX6ufZf28bc26X4Tp -G8if18juzrGZD38ALfeuoYAVymuBd4NF2xilwX+uqH5E4lkqBOZo3nQ/f1aTKQVT -6DZmr+V62GGaaMewaUOyZ0fZM4tS5ncuvSCMtuLHH5gy87e/lzj8Zbyek6ej2lUL -lwaCMOGCOoxhxUr8rorMefUOMZ4IzObSJ/y6XqWJe8yjSrAmyRHBmpGmCiMUnrkD -4FTY05Cyn2kncCHlYFL18C0utwTBYK1Gv8qampSD+e7ZWKTO1kEMrbZv3kwQdTfp -AgMBAAGjUDBOMB0GA1UdDgQWBBQ+EGb7hYQffkb6GXTWVMyqzz3joTAfBgNVHSME -GDAWgBQ+EGb7hYQffkb6GXTWVMyqzz3joTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3 -DQEBCwUAA4IBAQBFH2QNBHlth/nOIzyxPEXAyvkWDZh2/hukXlK4zWvWyiLlJXr9 -t5goWFzjbqpsCfN3TOb+CDBd3RYhhdnhxXMYmydR77+SlzZ6Lx0YBz7zNV0OUKTK -5Pnlh8GAP7CjU8A0pHf3auAgmBsVmX7+uFQcuRFzvc1LCL6q6t7pM5HH+NvJs7K+ -C/nQB9yW7PWXatPjNVY2YY5YJi2EuUdCFFcAQOtI90Xa8xVtTONYHh/QS7/egVWh -vdsuKx0I6SvMXf2AlVV2NSzcIqps5h7flYAw5sBC7ETux6DV3PgbikLybgxzHlhU -NhCYi7/M9o+QdQKGFc+Pdeapkl8a4GuuR3ax +MIIEFTCCAv2gAwIBAgIUL2z7SxCqpQwvIBsPzqPV5aPcHL8wDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtzZXJ2ZXJfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMjEwMTA2MTg1MzI1WhcNNDgwNTI0MTg1MzI1WjCB +mTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNp +bGljb24gVmFsbGV5MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNl +cnQxFDASBgNVBAMMC3NlcnZlcl9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVA +Y2FjZXJ0Lm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMcI56uY +iwh/D4PjN4A1vrY2S7eYgpH0fu/W6WOK/qQ1suxprq8cHNaCMBdOHwkJJTKejQNi +A/bfqS50dYhb5aJ/KkEKnhmr//+tgsWVeBumzUgMQS6DXZ1qiLLVgQcks0qOuCJn +nNNGIIXCkg1SckuHH0roknWrodKYpfY5gvC5hjeUuHr35UT909/kTHh8RXqIDAyg +Rj85mPGJir0YwsCaVCRi36B92mELBTBq/R1weycNZl0dGU5CdobRdk1iZmZcRe2T +6iABGBKhpBWHmk79djdhgczJ53WOigR64cXnDlNiqMsaD9og30gNGun8EqgYF4sS +g5avGuX0PSJIXT0CAwEAAaNTMFEwHQYDVR0OBBYEFKFrLP3wyeHX0myeD9EzY79A +Un6XMB8GA1UdIwQYMBaAFKFrLP3wyeHX0myeD9EzY79AUn6XMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAHJdnLx0amjFQkfQr2i4dj1H9wn3XvCp +ljGJ2fClIbgljyAitH5RXboWujHOXLzwGRHtV9XuwaNDB83JDPPbhfA7Hk+UF8fT +kaLvcvySQENmKmRQKnRMgQrxH9R+ZnsE7ZvTYN/lV2FUMrWqHciwKX6nvjvLZYCm +jK2Y4l6OT6ytNpPv7R0ic21AWkMk0wpG0yJnrK0C7avyglvZRVkuMcWgawzWMWvx +xOv6y/mM2wya/+U8Qk4wU+SLK2tIxzweLb/PCUSCi9UfcTfRdM8/FPAyMYb0PgTm +jY2N777FhByocrxppmz/kkbCkabjRjWwV/XP1NRroeqY7sBjC0OjEJM= -----END CERTIFICATE----- +46b421d9 -----BEGIN CERTIFICATE----- -MIIDqDCCApACCQCpjnaAoaUGmjANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMC -VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNpbGljb24gVmFsbGV5 -MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNlcnQxFDASBgNVBAMM -C3NlcnZlcl9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVAY2FjZXJ0Lm9yZzAe -Fw0xODAzMTQxMTI1NDVaFw0xODA0MDMxMTI1NDVaMIGRMQswCQYDVQQGEwJVUzER -MA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJvaXQxFDASBgNVBAoMC0ZP -UkRfU0VSVkVSMRgwFgYDVQQLDA9GT1JEX1NETF9TRVJWRVIxDTALBgNVBAMMBEZP -UkQxHjAcBgkqhkiG9w0BCQEWD3NhbXBsZUBmb3JkLmNvbTCCASIwDQYJKoZIhvcN -AQEBBQADggEPADCCAQoCggEBAMCzhMkEhaMy6DkmyTKOhKYJKGsM64SU+6N/TCkv -I3eaj2Vn38gJ57QSwowmF/PtnP0LMPNfUwSmWETHHTGx4hqnAEomhy+4OIpByagZ -LUg8oGXAp+Vx/YyIxTMz6QgACjUV8iHnJWf6SHq+zhGQpo3S9Y2mivOzpAJY1n2n -Ae/FqfNS61CYLBmIh42qt5wOMweiH1Ny+mYUpT7RFMSeDHiiBW4frnJSBKR1xLVW -Y41A70Kto3QZFnjPTZ2eXyXomt+iV+87VWDfAV/edndblVk4QylJO/uPUQzlSrv9 -oY/Y79AcdPjub6xA8Df/H33SNVtSyGvSKEaS5GP7mw6zF98CAwEAATANBgkqhkiG -9w0BAQsFAAOCAQEApIRshx5Ev16JS0DNKYduKqf2N7c7HjGkWw9cdYXBFlkha5uf -2dRe5MMCQLW7q2783a1gBXKxCc4UHks8AeFxajC2KxyTdmmkQsQBQ5Ih6S00K10S -Kk8EIjJ0k4gQyB58vb38Vf494ZfR8avDmYEppdff4DRUdvAgwCRPk9NhEKXLwaZV -0ghqvgLeZ/cb5kiIJW3NHxN9acluSdQLYBdVrRP9MyLzmu13BhcCUgodz4eKxyqY -5PWNPuFCMQ5eVMYVINnZKtzupWISyX9mr1/SJ3evAiroD/6kxxyRQVxtmxLYw+aL -6PRbXGDzEJQvX5frg7WpZLvqsRq5m6KzdXGpXA== +MIIDzTCCArWgAwIBAgIUe17RXHVYTVzNi1wO3dYVogiBG4EwDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtzZXJ2ZXJfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMjEwMTA2MTg1MzI2WhcNNDgwNTI0MTg1MzI2WjCB +kTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRy +b2l0MRQwEgYDVQQKDAtGT1JEX1NFUlZFUjEYMBYGA1UECwwPRk9SRF9TRExfU0VS +VkVSMQ0wCwYDVQQDDARGT1JEMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVAZm9yZC5j +b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDezAxx1oqi9g2lP641 +8JZTAA722bYXm8JxPP1hF5Gyv4GnRmbPIK+KbycX1Zr9lfLsW9gFfUxLVSIs4UuG +YsAcql4faccw8Tt8eLNsHzFMiIxIfr8OfrEeifEk2LJQuzOSLZ3XAnHEOvfhnKUx +Y1MmeZ3EXGcrLzETIGBAMAY5oza6ofh1zctQm/1Reg0fWXVGYqeBaU8TJh/pGL7f +JdaQjO4Vn1PjpS3ju1qV5xHlX6Bd5fWo8y2hbokLfoqIjlYVjFmBq8YzxJI11YwG +dFOr+JxEyQnYNKIXWkLy5pphpuEhJJm12cvFQ75yMtoms/R0U8kOLb6XdJrFrBgz +wggjAgMBAAGjEzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB +AHASV4wdwZFrUai/B7i43rxoDhl2/QrV7Usf3PprR7Q490JE8g5N6dA2sYMRAsbF +ecPAEldpm3tzaGfugQ2/ah8EBtPuP6cEQGzsVhBuQj3JyHr8wRX+Pwq85qtwOJ0r ++lIEZMhJ5YiQ8JOKRPJHQJkHkEEbioYgst/I+WnZx9irffIuJsi59UHG3KXY7SRK +ao+7+75fe80bCzgQb79j4GJyFA/wQfKkNKeKhunzM16cweOqbz0i06R/o1pmphhh +82EHuCPuiK4NMfNCFN2/lgH612Zq+xAQMj8Lv2VeV0PuO4uvKl6VvSP0XeMG4w44 +CmUEtPca3iMMAYXbCA7iku0= -----END CERTIFICATE----- diff --git a/files/Security/GetSystemTime_certificates/client_credential_0316_21.pem b/files/Security/GetSystemTime_certificates/client_credential_0316_21.pem index 1c9d3fe8dd..6a14e44f93 100644 --- a/files/Security/GetSystemTime_certificates/client_credential_0316_21.pem +++ b/files/Security/GetSystemTime_certificates/client_credential_0316_21.pem @@ -1,95 +1,98 @@ -----BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEA3vQ9fmVv7SFNYmuF6TSGkDa+SSMq90FqEEhgczlKwX6hUoDo -LV/m53Fr/urj4BoyN66auordj7WXaXfghR3h/GFqpZzKHRXwPo4iKpiBXhaVBeYq -LJcB6WNl3qcXT7bsS0TI0EJKXBEB0YpX3SL2vyKSHRxq5h6HW1g6MZgdcQ3AYhtf -9wLJmL0GPz1aFXK5lpaCj2fn054PE1Muk3XrSJzFWEXeYi0yogk6CtnfZEutAe5s -KwyvhNQdjlc183HufjU6U0d0V6DcGKYrNaIl+34uSjegJWtRxfmjCFP1B6XgrByT -OhAv3J/qlaZJwHWhKVswUdweNgGUypOba7zY+QIDAQABAoIBAQCdryIa1gU+MjJ3 -7FIOaL7PGlikg4Hs08/+6iGE/L05cqUII/GRveUiRZ668UfvhLeFmDEIxBQFgsou -psEdhNAC3qc9sFFmFtEOfRn/BFNixxfozyt+0+JfPZSbz5N2JoqihWh9mpTa3pBp -sa2I0iSvc/ThL+sPDAJxgUnPL6WLAXtNulqlY3skvHZV/J1gtKecWGL/k1ti4Xoj -i3hMG13tL4xlzkqqqYw1z2+UGDqn0E4Dy7ZgNyB0FckTOia5M7/H863OeZaUW4AI -tL0Q7ALTmd/7CjY82l+YtpIq8CUjWAwXYralR87f9iyJ8eXpuEc8SseHKMNqHZxi -zxdsuppNAoGBAP1P7qgjZawhsPb+HJaSkKN9xE7Zah5KXFd61bWOjLqdGeYCn9kX -86sic9jjbpGgCnLomCXVVK6A7NV2CnChp+eDiIZ3S/VgYui5SvVF8iVgak/ubQXF -O//2SzRuEz951guwhR2APp5vzxtOeLlxQVPCBpxc947tTAEHl9hFnAufAoGBAOFR -2LiZ7K10tR7X883LH/FoPMX5ILzLCYq4dyITyVD3Qe80t1U4WdLK3thk623uycfG -vES2Id3Wbj+DEhl0v2PRdXqLpxNSRdoerq6iRpLkXWvy1HGQvBx9s5MeSSA9j4CX -5U1JM11BYFzW27wQtxbIZfiamwLjXcNYnKdXXFRnAoGAdgADO73pgerb5eLv7FBw -IkjW5qgu39dh9rpYzU+PTOscAmKcleOrdcAB2Tnw6tNzqp2hKpaa8QNL0BBBwr/7 -WESUl5cBAlgZGzIdse4YY8LrIzr8/GApmA3icJUKUFpwFFfxWpHAGcwZ3S2L3U7d -0Kekrrg79g+ihSRFXtDmZR8CgYB9IaMmAfW67tGXa37ujxwSST1XBN/1eRy3eXJP -7oUi/e4UFkaqgT0BH8Fak9Fbn/1XgTsVPcDZHjjj9LqcgIW5vZ1sjRogVNSOKfQA -8AYZldF8HcN1vld5yyVrUqpxyT5kv/aMUVbBN4l4hapKa04CzRA0XEgx9msgDZoS -JSYViQKBgDv09d0mD+OmRho+NYipg9b0SFvhBVXgFN0A8aHnaMOvqilOTBi1vM6v -M9JzgECXGtTpdJsShijKmupvgP2gMFsZ2sFtdvz+zjJthbJSvpQI2IYgVHZSnevg -dc07CINHj12an7VA4QoJmj2YWO5ciJBKo+bAODmQALEDLQYb5Gor +MIIEpAIBAAKCAQEAxtUZKc7+A3KrGvX99kuAWqOTQwwJyNdXF5jTbWYEoGflJdN4 +6vnnjRKIYZ17b7wKmM3mdASkO76i2C1oPnqs7kSiEz38c4fNUPSkr5JG4wULv4KZ +WkzoccCLR+9GLhXRbwUysOv9gbcLfSQ42OPv+Z1W+dwOznwWyXRAv0QrmrgWtYRl +ejATXvRVrBMmxbBb/1bixBKBv9TQlC8ngBXKYbqj0TtQ1sGvanOdbkJFSPaQBI1e +Qn3sBAglCe85jByBcG9x6lMkglXorUXWyRVKULLNDxSyMAAcygLY7W2Qyl/cdBJT +hrqAJ+9g/gfZ8wGluFtmYgm6f9WtfqHMA8bn5QIDAQABAoIBADfcLpGcYai+Umvk +qFDFrW3JftnbS/Rs6z7p5JxbiPk3tx0FaHc7dl4f0sj54W/muGNtlU0K8MkIKd/q +Adtrw6G9DnuxcndSs9AGqy3YPqoRBNfs7QB9kuBCY971zhWsc4ZpQ3CJHFORBV1H +C+GDSCwsk/7mYBKKsiwuyPHzSPzSNCldexqaweS//uEdYXJEbHQhOGQrXXk+pmYM +jZw2DcagVFOvQpX9oJJ7hASX0xWh/ZHAa7lunj/lIFetB0TOaiAgp5i25t6WjMDg +pl964lWuSDiWomGDhLBbC0rLDu1VPRVYX63Y8QYRLLyS8WJNpfPFYIqd85/X1zvO +5JBufYECgYEA8FHDgMo4t/rqkNZM6wVH41kYHEOcK0qx0XhOMuqf5tLn+Qn31a7F +fmgaACkMfFR963I/c1u/LGti27+0P6FZcSg9E96V0OGHe2GiPP/b4rVnJjNoyh59 +tjtjTUQ7bW8BEhp2thh6/zOFJjo4q7iemC9MA69iKles1BPRUjMAwhkCgYEA085Y +qZ9BbjIf2oKDg6r4T9HTJsDsql+ck+1l/k5VGn84oCfRjFL5Jw1qmRj/ZakKiNKf +0by4+ALvsnLPmLsFJm/6pOGowSu3E9FDurV2jpXkZvibkdyXnYHkEbmuXDDgnrYT +rOqm9wqE/1fAhsBSzznRF2TebMKcxAKPguPrRa0CgYEAsdH+VFTNpSzv1d4MKjbN +G6d4FKnea5YofzOCwWAkk1pptTev/5gDoGYNHyNAjtrCFa6CzqwLiCWpj6qJCDAu +i3FXyFUCC/5lDmGO943muRi7S2Ps3Om04VuOPcUIKBBj/W5BeroggKcxlbis6DuC +dl9A4tUqUORxCLflQeplXDkCgYAeBvPk4DH7eFmxta0FXpijYEDKDrG+mZ1uD0rV +Wa+Q+RZDBkIb3at60Nka6UNT2zomGY4UwueKKYhnyQULRwA86cUj2OX+tL7YrWMn +thAfuLpPqtELRbWs27xEkwlYAonlljSF4CJZhYFDXeJqeBuFS1IMOf2ad6CX3TER +QlSZZQKBgQDjviiMy2tC+7kK1y6nPnA1u1rg15NTYiTAV4K2FQya6tly0i948raA +/bQaIA5IqqdTqu/k3MpQWwBgo58J9C+kLOLqNNku1ilZaJTnNRqoDeWcHQQFNcys +zcDcotGlpOWvGhxVybWsOqxtM3bzwDT9FUiw5IMVmwIP0Kcp0mwyMg== -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- -MIIDsjCCApoCCQDxyGnVVnCS7DANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMC -VVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRyb2l0MRQwEgYDVQQK -DAtGT1JEX0NMSUVOVDEYMBYGA1UECwwPRk9SRF9TRExfQ0xJRU5UMRQwEgYDVQQD -DAtGT1JEX0NMSUVOVDEeMBwGCSqGSIb3DQEJARYPc2FtcGxlQGZvcmQuY29tMB4X -DTE2MDMxNDEyMTQyNVoXDTIxMDMxMzEyMTQyNVowgZwxCzAJBgNVBAYTAlJVMQ8w -DQYDVQQIDAZSdXNzaWExFzAVBgNVBAcMDlN0LiBQZXRlcnNidXJnMQ8wDQYDVQQK -DAZMdXhvZnQxETAPBgNVBAsMCEhlYWRVbml0MQ8wDQYDVQQDDAZjbGllbnQxIDAe -BgkqhkiG9w0BCQEWEXNhbXBsZUBsdXhvZnQuY29tMQwwCgYDVQQFEwNTUFQwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDe9D1+ZW/tIU1ia4XpNIaQNr5J -Iyr3QWoQSGBzOUrBfqFSgOgtX+bncWv+6uPgGjI3rpq6it2PtZdpd+CFHeH8YWql -nModFfA+jiIqmIFeFpUF5ioslwHpY2XepxdPtuxLRMjQQkpcEQHRilfdIva/IpId -HGrmHodbWDoxmB1xDcBiG1/3AsmYvQY/PVoVcrmWloKPZ+fTng8TUy6TdetInMVY -Rd5iLTKiCToK2d9kS60B7mwrDK+E1B2OVzXzce5+NTpTR3RXoNwYpis1oiX7fi5K -N6Ala1HF+aMIU/UHpeCsHJM6EC/cn+qVpknAdaEpWzBR3B42AZTKk5trvNj5AgMB -AAEwDQYJKoZIhvcNAQELBQADggEBAGVo/VHEXp8BSSfTFrcye0gI/CvIGPCSVQGv -3uzPMuwyk383dd/lEOXnlS3ohkAVu249Z0xIIHr4rm+ZKFUf11kBu4JaToGiC8r/ -lpY0Z6hcfWQ2SaVeZQoh202uGZJ++/NLjnsscERzyi7HG8s58VsWV9l7dWR/CM0n -pf7C4WeZHMbt1b+WPZCNQfyXgEK4aFq0fmP936JaOaR0ZszFLBrapyURT+R1kgPz -zTg2KysR/Tf6zEKHJ+MDwF47jyxtyvbtWaSImkemmpRqvOByAwLlwqbYoW00PYPp -E3O1pN5QwZMsYFTdOAbmKN1hf4/N5ISJ4LZx/KtXzT9y/NwMnKA= +MIIDvTCCAqUCFA8xt+mP2yJRDoI6pLr3j6YuFNyvMA0GCSqGSIb3DQEBCwUAMIGY +MQswCQYDVQQGEwJVUzERMA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJv +aXQxFDASBgNVBAoMC0ZPUkRfQ0xJRU5UMRgwFgYDVQQLDA9GT1JEX1NETF9DTElF +TlQxFDASBgNVBAMMC0ZPUkRfQ0xJRU5UMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVA +Zm9yZC5jb20wHhcNMTYwMzE0MTAwMDAwWhcNMjEwMzEzMTAwMDAwWjCBnDELMAkG +A1UEBhMCUlUxDzANBgNVBAgMBlJ1c3NpYTEXMBUGA1UEBwwOU3QuIFBldGVyc2J1 +cmcxDzANBgNVBAoMBkx1eG9mdDERMA8GA1UECwwISGVhZFVuaXQxDzANBgNVBAMM +BmNsaWVudDEgMB4GCSqGSIb3DQEJARYRc2FtcGxlQGx1eG9mdC5jb20xDDAKBgNV +BAUTA1NQVDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbVGSnO/gNy +qxr1/fZLgFqjk0MMCcjXVxeY021mBKBn5SXTeOr5540SiGGde2+8CpjN5nQEpDu+ +otgtaD56rO5EohM9/HOHzVD0pK+SRuMFC7+CmVpM6HHAi0fvRi4V0W8FMrDr/YG3 +C30kONjj7/mdVvncDs58Fsl0QL9EK5q4FrWEZXowE170VawTJsWwW/9W4sQSgb/U +0JQvJ4AVymG6o9E7UNbBr2pznW5CRUj2kASNXkJ97AQIJQnvOYwcgXBvcepTJIJV +6K1F1skVSlCyzQ8UsjAAHMoC2O1tkMpf3HQSU4a6gCfvYP4H2fMBpbhbZmIJun/V +rX6hzAPG5+UCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAUgczWB7UcjW8LhY/KUf0 +OsgRwLWYEs1HIF22vrpMPrVsNJLDSBT4z1Z4UfeMVH/7x1KgvEI29p/6xQq0x+/P +A+KZZ4vj5LDimIAkOQTWr0vbYPI5ueD4uTJiJTkaHACxp1+huFajv9tu5BZS5vur +y407EkN4RI+JqT3w5RhtWo3fBjCccUGlgW13YpyYZni4UjflqgKyRQ5S8PGwMxa9 +Jvv5P+FLdTk/U039XZ5KEzGA5rdAoZcM5Ki3mIumjGOBcxQOuCFL+a+X7LlMbj8t +/l3PwkiE0srelFWsj1hor8nrTdtIec/aZ2No6KqNmFn+3DEHfGSs8hebxzKEeIX2 ++g== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIEBzCCAu+gAwIBAgIJAIP3pt4QUWolMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEXMBUGA1UEBwwOU2lsaWNvbiBW -YWxsZXkxEzARBgNVBAoMCkNBY2VydC5vcmcxDzANBgNVBAsMBkNBY2VydDEUMBIG -A1UEAwwLc2VydmVyX3Jvb3QxIDAeBgkqhkiG9w0BCQEWEXNhbXBsZUBjYWNlcnQu -b3JnMB4XDTE4MDMxNDExMjU0NVoXDTQ1MDczMDExMjU0NVowgZkxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQHDA5TaWxpY29uIFZhbGxl -eTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwGQ0FjZXJ0MRQwEgYDVQQD -DAtzZXJ2ZXJfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2FtcGxlQGNhY2VydC5vcmcw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPq17BwejsrvNl6I7cip7L -tQvX/p4EMCi0i2HsmlGD0J+Vpq9Ws3xokekOO8RITBfD5JDoX6ufZf28bc26X4Tp -G8if18juzrGZD38ALfeuoYAVymuBd4NF2xilwX+uqH5E4lkqBOZo3nQ/f1aTKQVT -6DZmr+V62GGaaMewaUOyZ0fZM4tS5ncuvSCMtuLHH5gy87e/lzj8Zbyek6ej2lUL -lwaCMOGCOoxhxUr8rorMefUOMZ4IzObSJ/y6XqWJe8yjSrAmyRHBmpGmCiMUnrkD -4FTY05Cyn2kncCHlYFL18C0utwTBYK1Gv8qampSD+e7ZWKTO1kEMrbZv3kwQdTfp -AgMBAAGjUDBOMB0GA1UdDgQWBBQ+EGb7hYQffkb6GXTWVMyqzz3joTAfBgNVHSME -GDAWgBQ+EGb7hYQffkb6GXTWVMyqzz3joTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3 -DQEBCwUAA4IBAQBFH2QNBHlth/nOIzyxPEXAyvkWDZh2/hukXlK4zWvWyiLlJXr9 -t5goWFzjbqpsCfN3TOb+CDBd3RYhhdnhxXMYmydR77+SlzZ6Lx0YBz7zNV0OUKTK -5Pnlh8GAP7CjU8A0pHf3auAgmBsVmX7+uFQcuRFzvc1LCL6q6t7pM5HH+NvJs7K+ -C/nQB9yW7PWXatPjNVY2YY5YJi2EuUdCFFcAQOtI90Xa8xVtTONYHh/QS7/egVWh -vdsuKx0I6SvMXf2AlVV2NSzcIqps5h7flYAw5sBC7ETux6DV3PgbikLybgxzHlhU -NhCYi7/M9o+QdQKGFc+Pdeapkl8a4GuuR3ax +MIIEFTCCAv2gAwIBAgIUL2z7SxCqpQwvIBsPzqPV5aPcHL8wDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtzZXJ2ZXJfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMjEwMTA2MTg1MzI1WhcNNDgwNTI0MTg1MzI1WjCB +mTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNp +bGljb24gVmFsbGV5MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNl +cnQxFDASBgNVBAMMC3NlcnZlcl9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVA +Y2FjZXJ0Lm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMcI56uY +iwh/D4PjN4A1vrY2S7eYgpH0fu/W6WOK/qQ1suxprq8cHNaCMBdOHwkJJTKejQNi +A/bfqS50dYhb5aJ/KkEKnhmr//+tgsWVeBumzUgMQS6DXZ1qiLLVgQcks0qOuCJn +nNNGIIXCkg1SckuHH0roknWrodKYpfY5gvC5hjeUuHr35UT909/kTHh8RXqIDAyg +Rj85mPGJir0YwsCaVCRi36B92mELBTBq/R1weycNZl0dGU5CdobRdk1iZmZcRe2T +6iABGBKhpBWHmk79djdhgczJ53WOigR64cXnDlNiqMsaD9og30gNGun8EqgYF4sS +g5avGuX0PSJIXT0CAwEAAaNTMFEwHQYDVR0OBBYEFKFrLP3wyeHX0myeD9EzY79A +Un6XMB8GA1UdIwQYMBaAFKFrLP3wyeHX0myeD9EzY79AUn6XMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAHJdnLx0amjFQkfQr2i4dj1H9wn3XvCp +ljGJ2fClIbgljyAitH5RXboWujHOXLzwGRHtV9XuwaNDB83JDPPbhfA7Hk+UF8fT +kaLvcvySQENmKmRQKnRMgQrxH9R+ZnsE7ZvTYN/lV2FUMrWqHciwKX6nvjvLZYCm +jK2Y4l6OT6ytNpPv7R0ic21AWkMk0wpG0yJnrK0C7avyglvZRVkuMcWgawzWMWvx +xOv6y/mM2wya/+U8Qk4wU+SLK2tIxzweLb/PCUSCi9UfcTfRdM8/FPAyMYb0PgTm +jY2N777FhByocrxppmz/kkbCkabjRjWwV/XP1NRroeqY7sBjC0OjEJM= -----END CERTIFICATE----- +46b421d9 -----BEGIN CERTIFICATE----- -MIIDqDCCApACCQCpjnaAoaUGmjANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMC -VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNpbGljb24gVmFsbGV5 -MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNlcnQxFDASBgNVBAMM -C3NlcnZlcl9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVAY2FjZXJ0Lm9yZzAe -Fw0xODAzMTQxMTI1NDVaFw0xODA0MDMxMTI1NDVaMIGRMQswCQYDVQQGEwJVUzER -MA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJvaXQxFDASBgNVBAoMC0ZP -UkRfU0VSVkVSMRgwFgYDVQQLDA9GT1JEX1NETF9TRVJWRVIxDTALBgNVBAMMBEZP -UkQxHjAcBgkqhkiG9w0BCQEWD3NhbXBsZUBmb3JkLmNvbTCCASIwDQYJKoZIhvcN -AQEBBQADggEPADCCAQoCggEBAMCzhMkEhaMy6DkmyTKOhKYJKGsM64SU+6N/TCkv -I3eaj2Vn38gJ57QSwowmF/PtnP0LMPNfUwSmWETHHTGx4hqnAEomhy+4OIpByagZ -LUg8oGXAp+Vx/YyIxTMz6QgACjUV8iHnJWf6SHq+zhGQpo3S9Y2mivOzpAJY1n2n -Ae/FqfNS61CYLBmIh42qt5wOMweiH1Ny+mYUpT7RFMSeDHiiBW4frnJSBKR1xLVW -Y41A70Kto3QZFnjPTZ2eXyXomt+iV+87VWDfAV/edndblVk4QylJO/uPUQzlSrv9 -oY/Y79AcdPjub6xA8Df/H33SNVtSyGvSKEaS5GP7mw6zF98CAwEAATANBgkqhkiG -9w0BAQsFAAOCAQEApIRshx5Ev16JS0DNKYduKqf2N7c7HjGkWw9cdYXBFlkha5uf -2dRe5MMCQLW7q2783a1gBXKxCc4UHks8AeFxajC2KxyTdmmkQsQBQ5Ih6S00K10S -Kk8EIjJ0k4gQyB58vb38Vf494ZfR8avDmYEppdff4DRUdvAgwCRPk9NhEKXLwaZV -0ghqvgLeZ/cb5kiIJW3NHxN9acluSdQLYBdVrRP9MyLzmu13BhcCUgodz4eKxyqY -5PWNPuFCMQ5eVMYVINnZKtzupWISyX9mr1/SJ3evAiroD/6kxxyRQVxtmxLYw+aL -6PRbXGDzEJQvX5frg7WpZLvqsRq5m6KzdXGpXA== +MIIDzTCCArWgAwIBAgIUe17RXHVYTVzNi1wO3dYVogiBG4EwDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtzZXJ2ZXJfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMjEwMTA2MTg1MzI2WhcNNDgwNTI0MTg1MzI2WjCB +kTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRy +b2l0MRQwEgYDVQQKDAtGT1JEX1NFUlZFUjEYMBYGA1UECwwPRk9SRF9TRExfU0VS +VkVSMQ0wCwYDVQQDDARGT1JEMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVAZm9yZC5j +b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDezAxx1oqi9g2lP641 +8JZTAA722bYXm8JxPP1hF5Gyv4GnRmbPIK+KbycX1Zr9lfLsW9gFfUxLVSIs4UuG +YsAcql4faccw8Tt8eLNsHzFMiIxIfr8OfrEeifEk2LJQuzOSLZ3XAnHEOvfhnKUx +Y1MmeZ3EXGcrLzETIGBAMAY5oza6ofh1zctQm/1Reg0fWXVGYqeBaU8TJh/pGL7f +JdaQjO4Vn1PjpS3ju1qV5xHlX6Bd5fWo8y2hbokLfoqIjlYVjFmBq8YzxJI11YwG +dFOr+JxEyQnYNKIXWkLy5pphpuEhJJm12cvFQ75yMtoms/R0U8kOLb6XdJrFrBgz +wggjAgMBAAGjEzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB +AHASV4wdwZFrUai/B7i43rxoDhl2/QrV7Usf3PprR7Q490JE8g5N6dA2sYMRAsbF +ecPAEldpm3tzaGfugQ2/ah8EBtPuP6cEQGzsVhBuQj3JyHr8wRX+Pwq85qtwOJ0r ++lIEZMhJ5YiQ8JOKRPJHQJkHkEEbioYgst/I+WnZx9irffIuJsi59UHG3KXY7SRK +ao+7+75fe80bCzgQb79j4GJyFA/wQfKkNKeKhunzM16cweOqbz0i06R/o1pmphhh +82EHuCPuiK4NMfNCFN2/lgH612Zq+xAQMj8Lv2VeV0PuO4uvKl6VvSP0XeMG4w44 +CmUEtPca3iMMAYXbCA7iku0= -----END CERTIFICATE----- diff --git a/files/Security/GetSystemTime_certificates/client_credential_0321_26.pem b/files/Security/GetSystemTime_certificates/client_credential_0321_26.pem index 9e215a2bb3..e7e1c68749 100644 --- a/files/Security/GetSystemTime_certificates/client_credential_0321_26.pem +++ b/files/Security/GetSystemTime_certificates/client_credential_0321_26.pem @@ -1,95 +1,98 @@ -----BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEAu7gDfGpLP9MAyKMse1xnCpSbGaA2Rm8C2SDs7Yw9zG4t16b9 -o3v/eokMtTAWOCPbtBN92HmR/q7rkxfHEBKxuTAbPvqG7/rEqht0dRSu3/0QFyvc -OSdR49Onnpj3taZIG+KiwId5sch6a12VeZfCF1zlRxQOHed98ijMSxC3Gbj4rVVE -y2FAfDQNS3M38XwsVwk4fCAKZXz19vxKgevQX12dq5w/0Lds+WVB/68Yyvq8Gq99 -UskFolwo72ysLc1brk8wP0BQVv6WkIcGisZ5F3MSmJrenBRzB2GHRBoRjTb3ERZY -wpHKBBjH8yQpmMwVWAXGMsORKklET4FMNg0nCQIDAQABAoIBAApGORKfMr0sjFdu -7ulVlmIy3gZaCX5zZwGBVtZtnZhJ04KBJlLDX6lSRPrJxf2OoODLTFED3mTFKCml -3IRZsZaENomM5sPNwuPYmtgpqKSj0jSiduw95bKFjCAXGT+8+SdlkSjegV+krGah -+aNtFfd3YykvxNIIMJGHgB7/rDXhHNQhbDc7pIGTAzH7mu9oa8F+QOb00PtJFtg3 -+BAPPDD5DKrguTpMAZIGGfiAlFgFIMiOg4S9hE8yMmHOont/sExV3dKCh2XJa1Kb -A/BarXVaGTginVgRsGapJS2IvLWd4dbMowDIjh8izjAWBDEBzsKUWwaNr5p71XqJ -BSCvNg0CgYEA65apdalqKqSt8y6zR8AMzjAbctzAUDncdg5pdu2GyJcsnh8NVgP/ -bs17yMtMoaY86Srl32BQJIwbeMduRW53lCFUnBoKLFwyq5ew3Tuh+fg93qQ67nAn -fKfxo2JjLC1l2HyzoEg4k9zqyLJQYLJKNFLax8rIR5CIqEHDMPSrB0MCgYEAy/ua -uizAgbxwIwijU0CKMNbH6xOC2FonhSr1uT4Wpkb/IxiOVbU4wG9zSXy2nsgkd2SY -3eAgvDWwsid+M8fQ1XdFXKo3yePB6xzs0Vs7NIoUHlAqu/PBiV4dCt84++bN8lqK -/JrsmE6m3240CqEjC+Kd/0Tjgq79NFQToWDndcMCgYBPQcCA9R3iesSKq4tk+BdW -xph1bA7G7rBchzyz5fUSRsmb6JZz+aRVgovCYaLGP0b+qo/rNlu/7+LOH0nZ0fAo -xY3RdnE1u07Qq5e01fsIPZuS621oChM+vMFuVgtHMX6x9kH4ClP+arQSEOs5nMGa -GMXBsVbvvJA9CuK/9ZAUQQKBgQCObivW7aKptCtUuxZX7kvP2FkV0rTdXu4TdTDI -3QqxpgdGuUHBpN1wuSF14agebL/RwiNfYb1Zzd+INj1P6KjwNOzwzEZSKT9hbPwL -HznS8Mslc3KzdHvh8B41VjKS6dFJ9WDxCzhDDUBF6Mxb07IF/YG3GaIGwSs6G67t -Ux2rQwKBgAZSYpxFHQXsTAS929L5huqvGX2s0SuWEOzP0CSzt1fpb52gXVGj7Qle -pDvDs4Q7ZCbsf2BlUqT4b2Zc4u2bzXqUsJOSazGDqJ26ypl5RQfZY+FRnhnB1AGm -2jyP8EmKcpcWe/HQrW5bEoPrZFC+2za3DG6hgGQEmA2ALEhujh66 +MIIEowIBAAKCAQEAuXQ2OqzTV3V5/lvfBL5u2P/mKtKFudqciH2wWtyFWUkznHYZ +43ijlyDHO8P91cMA8CnsuchKvJ0mjyu7qQa49zKKPqgQruzA4Owh60c8HJKRo1gs +14sgOX+W2yt0ctHmzolwNGiy3W83iBdgJpkRjjmVarGlbwIVIIuIST86fbKSDDSi +E8iGWZphwwvR489vsuKhmfZ7wE4TqxwDdIBhnz3zWfE90YLozvfMCNABzncbRdt1 +SrATur8F+FXH7PpaCm1EJNqi/lc8PvliIC6NVYfq/vuNDvLudOSgHjWT+RsfhBr2 +hyX+yuif77SQl68lHkTgvKWvT9dBZ7Sn2N3otwIDAQABAoIBAGUypwzplgHZlxJX +q6D5EZ/UNBMWAebjBhvtCjjqsNGCAmnUgFgCUrJ7LnzMfE0TNgXXute+FhpKXuot +YR/hDTnHGG0MZN4vTyjtcazjmEe3K0XJLd8IijMWDonWcprdM2ds1A+lOkVfFRxs +NQma6VuEzKYF/lJO/pxdx6bAm/hOdUlB7JsuUksFNho0gKu1TorKmYZ/e9CbyKRr +AFSrR0Q2xI1L/JNDVyr0wYwa2AsSw3KmSk0nU0YVqj29ITvhAh11RSguAExsPQxN +7wrInntcDeudOfC0WnMwgdJ14uY3t4LqR7siPZFo6AIpLalXRdtxksfCsWw/9ExP +wn+DlbECgYEA3z50c3WxOzzAY+CnggaRmzPLMCs4AUaNhG86ywb1LZgyeEr9a+ys +ydAKWY3KLCzE0KpzEmcCsJJ5B3ktpK5Z/5hDRyZ0a887UAn2CgWhWcZ5Ousl27MW +//CE/p6GTp9fX/caGpA0aZ7/8TCIdWDACK1/DyQ4VHMuhb+F/Kgr5nMCgYEA1KpH +dpSe8xU9DnQBIfolv06I7kDolQS28aWKdG6pzIF/LyZe9+HF8J8P8n7xXD1M/u6p +iRrmb9/7Ff611tBe0zSXb7RYGH/7Mra7MRlzm6vYQpzwcJ5Q4MMIGsUjTKbA9iac +TqWfwbpmvzBwWyoSHyCAiawWh2jIZeWhQVJ3360CgYEAjATvIy/RPpdHEB3q0jnu +f4rHyWmCEgK/Zi4hkQ/HHZbVKO/X7SYf5eBvbWXqRTS7KSmPTR6A6GCmOpK9lwmn +9xD4OZsb8DalO/lTcUvAvL8ocFTmhNrZ9SNVNyIUmSGKv3UL0VdbGFgarZtEK2LI +b2jqRYPxNL6dklPi5OpRxpMCgYBQw446SX0IAiPa7lFTzwUw3yl/miT6Gv1DTkQD +rddMdE2R4XelmherJy1OQcl1503rb0XxbMbg6+YWV1JFj4LDoTB12r6uJ0SF4QG8 +Rtcx4pRRz/o8OtOqWEcmq4GZZabYlJc+AwZl81179HBnHtYc/iHypukzaabZk9im +zyP5TQKBgCJkHUrKgUTKriJrik7JiWUOIip8v4HB8zA1wOejPJwg5cYnCv02DBKm +8n46JBGmRNVCh6SegnTUG3CPvL8KI1ajFxWEWHEwRDiM6LoE8Ng+Vvdn6LKUzYYF +56npR5nWmoVc1VnN+cdGniBjIXOAZM5RVzOk3s/x9JHEJyGSBSmh -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- -MIIDsjCCApoCCQDxyGnVVnCS8DANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMC -VVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRyb2l0MRQwEgYDVQQK -DAtGT1JEX0NMSUVOVDEYMBYGA1UECwwPRk9SRF9TRExfQ0xJRU5UMRQwEgYDVQQD -DAtGT1JEX0NMSUVOVDEeMBwGCSqGSIb3DQEJARYPc2FtcGxlQGZvcmQuY29tMB4X -DTIxMDMxMzEyMTY1M1oXDTI2MDMxMjEyMTY1M1owgZwxCzAJBgNVBAYTAlJVMQ8w -DQYDVQQIDAZSdXNzaWExFzAVBgNVBAcMDlN0LiBQZXRlcnNidXJnMQ8wDQYDVQQK -DAZMdXhvZnQxETAPBgNVBAsMCEhlYWRVbml0MQ8wDQYDVQQDDAZjbGllbnQxIDAe -BgkqhkiG9w0BCQEWEXNhbXBsZUBsdXhvZnQuY29tMQwwCgYDVQQFEwNTUFQwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7uAN8aks/0wDIoyx7XGcKlJsZ -oDZGbwLZIOztjD3Mbi3Xpv2je/96iQy1MBY4I9u0E33YeZH+ruuTF8cQErG5MBs+ -+obv+sSqG3R1FK7f/RAXK9w5J1Hj06eemPe1pkgb4qLAh3mxyHprXZV5l8IXXOVH -FA4d533yKMxLELcZuPitVUTLYUB8NA1LczfxfCxXCTh8IAplfPX2/EqB69BfXZ2r -nD/Qt2z5ZUH/rxjK+rwar31SyQWiXCjvbKwtzVuuTzA/QFBW/paQhwaKxnkXcxKY -mt6cFHMHYYdEGhGNNvcRFljCkcoEGMfzJCmYzBVYBcYyw5EqSURPgUw2DScJAgMB -AAEwDQYJKoZIhvcNAQELBQADggEBAA/lC4Ut2zYNLOQAE28wBwI5Q9BTDpnJ/GlX -ztdmFBPbq70lXs0M8mFhx32cTowuP/8uLc50R1e1pHlWrjAkP7GZCWUdTbB89eE+ -Nv6BLs2HOObztTdfVy0KfAhRc5gBXDxLLB9ksUUdlmcm1cOytC1jyvXFnu2/wR2t -afIMrI6qRD+yKhNh9cSCl0vJadCHuhEq5IfsFqgZeiHxDwwYmlddS0yxHsn5iT1r -avzGgOOcFhOoA5NbJB0S6P6ZDfubPWqgcZ8rf+QCKo8zri+Vr9evTP5MkwDWRJys -5w0z19UVk0ZwHQsrhg++g99Xvx6MPWBrnzDyEXxG30Y8JevXrAc= +MIIDvTCCAqUCFGiC/Njyk4iGP4hQVjeLOKDrjYoOMA0GCSqGSIb3DQEBCwUAMIGY +MQswCQYDVQQGEwJVUzERMA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJv +aXQxFDASBgNVBAoMC0ZPUkRfQ0xJRU5UMRgwFgYDVQQLDA9GT1JEX1NETF9DTElF +TlQxFDASBgNVBAMMC0ZPUkRfQ0xJRU5UMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVA +Zm9yZC5jb20wHhcNMjEwMzEzMTAwMDAwWhcNMjYwMzEyMTAwMDAwWjCBnDELMAkG +A1UEBhMCUlUxDzANBgNVBAgMBlJ1c3NpYTEXMBUGA1UEBwwOU3QuIFBldGVyc2J1 +cmcxDzANBgNVBAoMBkx1eG9mdDERMA8GA1UECwwISGVhZFVuaXQxDzANBgNVBAMM +BmNsaWVudDEgMB4GCSqGSIb3DQEJARYRc2FtcGxlQGx1eG9mdC5jb20xDDAKBgNV +BAUTA1NQVDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALl0Njqs01d1 +ef5b3wS+btj/5irShbnanIh9sFrchVlJM5x2GeN4o5cgxzvD/dXDAPAp7LnISryd +Jo8ru6kGuPcyij6oEK7swODsIetHPBySkaNYLNeLIDl/ltsrdHLR5s6JcDRost1v +N4gXYCaZEY45lWqxpW8CFSCLiEk/On2ykgw0ohPIhlmaYcML0ePPb7LioZn2e8BO +E6scA3SAYZ8981nxPdGC6M73zAjQAc53G0XbdUqwE7q/BfhVx+z6WgptRCTaov5X +PD75YiAujVWH6v77jQ7y7nTkoB41k/kbH4Qa9ocl/sron++0kJevJR5E4Lylr0/X +QWe0p9jd6LcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAdeCVovE4wQmijdSoACby +8K/vVsjzfhIyeOw3L0XW7yMioJvnd38BihebY6f7dTXml+NLwPQ7rTXXArfXU3dI +SLZqWrJCkF5TqaWcp54XLB+HCYjwS+8XplcZ7uI1Q9xemJGx0bzRrwpZw/C0gfxK +87APXrgV82NOQWCadGaMitaI/59L9Z11HN5ipztUvdHApSMTSbbWbrCdnwjs2bkU +VmIEOk/p0niDByaVJqynUWp8Z+UZveIsD4fB6Zvta1P5p1RlHlwUGPchDH4IqLB9 +LmHG+dk4G7hYyir+QUDs2rgnoH6mSbkp2VUfu85Z7XgfYNMONWpcumeK8XuJOY+v +OA== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIEBzCCAu+gAwIBAgIJAIP3pt4QUWolMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEXMBUGA1UEBwwOU2lsaWNvbiBW -YWxsZXkxEzARBgNVBAoMCkNBY2VydC5vcmcxDzANBgNVBAsMBkNBY2VydDEUMBIG -A1UEAwwLc2VydmVyX3Jvb3QxIDAeBgkqhkiG9w0BCQEWEXNhbXBsZUBjYWNlcnQu -b3JnMB4XDTE4MDMxNDExMjU0NVoXDTQ1MDczMDExMjU0NVowgZkxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQHDA5TaWxpY29uIFZhbGxl -eTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwGQ0FjZXJ0MRQwEgYDVQQD -DAtzZXJ2ZXJfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2FtcGxlQGNhY2VydC5vcmcw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPq17BwejsrvNl6I7cip7L -tQvX/p4EMCi0i2HsmlGD0J+Vpq9Ws3xokekOO8RITBfD5JDoX6ufZf28bc26X4Tp -G8if18juzrGZD38ALfeuoYAVymuBd4NF2xilwX+uqH5E4lkqBOZo3nQ/f1aTKQVT -6DZmr+V62GGaaMewaUOyZ0fZM4tS5ncuvSCMtuLHH5gy87e/lzj8Zbyek6ej2lUL -lwaCMOGCOoxhxUr8rorMefUOMZ4IzObSJ/y6XqWJe8yjSrAmyRHBmpGmCiMUnrkD -4FTY05Cyn2kncCHlYFL18C0utwTBYK1Gv8qampSD+e7ZWKTO1kEMrbZv3kwQdTfp -AgMBAAGjUDBOMB0GA1UdDgQWBBQ+EGb7hYQffkb6GXTWVMyqzz3joTAfBgNVHSME -GDAWgBQ+EGb7hYQffkb6GXTWVMyqzz3joTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3 -DQEBCwUAA4IBAQBFH2QNBHlth/nOIzyxPEXAyvkWDZh2/hukXlK4zWvWyiLlJXr9 -t5goWFzjbqpsCfN3TOb+CDBd3RYhhdnhxXMYmydR77+SlzZ6Lx0YBz7zNV0OUKTK -5Pnlh8GAP7CjU8A0pHf3auAgmBsVmX7+uFQcuRFzvc1LCL6q6t7pM5HH+NvJs7K+ -C/nQB9yW7PWXatPjNVY2YY5YJi2EuUdCFFcAQOtI90Xa8xVtTONYHh/QS7/egVWh -vdsuKx0I6SvMXf2AlVV2NSzcIqps5h7flYAw5sBC7ETux6DV3PgbikLybgxzHlhU -NhCYi7/M9o+QdQKGFc+Pdeapkl8a4GuuR3ax +MIIEFTCCAv2gAwIBAgIUL2z7SxCqpQwvIBsPzqPV5aPcHL8wDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtzZXJ2ZXJfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMjEwMTA2MTg1MzI1WhcNNDgwNTI0MTg1MzI1WjCB +mTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNp +bGljb24gVmFsbGV5MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNl +cnQxFDASBgNVBAMMC3NlcnZlcl9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVA +Y2FjZXJ0Lm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMcI56uY +iwh/D4PjN4A1vrY2S7eYgpH0fu/W6WOK/qQ1suxprq8cHNaCMBdOHwkJJTKejQNi +A/bfqS50dYhb5aJ/KkEKnhmr//+tgsWVeBumzUgMQS6DXZ1qiLLVgQcks0qOuCJn +nNNGIIXCkg1SckuHH0roknWrodKYpfY5gvC5hjeUuHr35UT909/kTHh8RXqIDAyg +Rj85mPGJir0YwsCaVCRi36B92mELBTBq/R1weycNZl0dGU5CdobRdk1iZmZcRe2T +6iABGBKhpBWHmk79djdhgczJ53WOigR64cXnDlNiqMsaD9og30gNGun8EqgYF4sS +g5avGuX0PSJIXT0CAwEAAaNTMFEwHQYDVR0OBBYEFKFrLP3wyeHX0myeD9EzY79A +Un6XMB8GA1UdIwQYMBaAFKFrLP3wyeHX0myeD9EzY79AUn6XMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAHJdnLx0amjFQkfQr2i4dj1H9wn3XvCp +ljGJ2fClIbgljyAitH5RXboWujHOXLzwGRHtV9XuwaNDB83JDPPbhfA7Hk+UF8fT +kaLvcvySQENmKmRQKnRMgQrxH9R+ZnsE7ZvTYN/lV2FUMrWqHciwKX6nvjvLZYCm +jK2Y4l6OT6ytNpPv7R0ic21AWkMk0wpG0yJnrK0C7avyglvZRVkuMcWgawzWMWvx +xOv6y/mM2wya/+U8Qk4wU+SLK2tIxzweLb/PCUSCi9UfcTfRdM8/FPAyMYb0PgTm +jY2N777FhByocrxppmz/kkbCkabjRjWwV/XP1NRroeqY7sBjC0OjEJM= -----END CERTIFICATE----- +46b421d9 -----BEGIN CERTIFICATE----- -MIIDqDCCApACCQCpjnaAoaUGmjANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMC -VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNpbGljb24gVmFsbGV5 -MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNlcnQxFDASBgNVBAMM -C3NlcnZlcl9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVAY2FjZXJ0Lm9yZzAe -Fw0xODAzMTQxMTI1NDVaFw0xODA0MDMxMTI1NDVaMIGRMQswCQYDVQQGEwJVUzER -MA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJvaXQxFDASBgNVBAoMC0ZP -UkRfU0VSVkVSMRgwFgYDVQQLDA9GT1JEX1NETF9TRVJWRVIxDTALBgNVBAMMBEZP -UkQxHjAcBgkqhkiG9w0BCQEWD3NhbXBsZUBmb3JkLmNvbTCCASIwDQYJKoZIhvcN -AQEBBQADggEPADCCAQoCggEBAMCzhMkEhaMy6DkmyTKOhKYJKGsM64SU+6N/TCkv -I3eaj2Vn38gJ57QSwowmF/PtnP0LMPNfUwSmWETHHTGx4hqnAEomhy+4OIpByagZ -LUg8oGXAp+Vx/YyIxTMz6QgACjUV8iHnJWf6SHq+zhGQpo3S9Y2mivOzpAJY1n2n -Ae/FqfNS61CYLBmIh42qt5wOMweiH1Ny+mYUpT7RFMSeDHiiBW4frnJSBKR1xLVW -Y41A70Kto3QZFnjPTZ2eXyXomt+iV+87VWDfAV/edndblVk4QylJO/uPUQzlSrv9 -oY/Y79AcdPjub6xA8Df/H33SNVtSyGvSKEaS5GP7mw6zF98CAwEAATANBgkqhkiG -9w0BAQsFAAOCAQEApIRshx5Ev16JS0DNKYduKqf2N7c7HjGkWw9cdYXBFlkha5uf -2dRe5MMCQLW7q2783a1gBXKxCc4UHks8AeFxajC2KxyTdmmkQsQBQ5Ih6S00K10S -Kk8EIjJ0k4gQyB58vb38Vf494ZfR8avDmYEppdff4DRUdvAgwCRPk9NhEKXLwaZV -0ghqvgLeZ/cb5kiIJW3NHxN9acluSdQLYBdVrRP9MyLzmu13BhcCUgodz4eKxyqY -5PWNPuFCMQ5eVMYVINnZKtzupWISyX9mr1/SJ3evAiroD/6kxxyRQVxtmxLYw+aL -6PRbXGDzEJQvX5frg7WpZLvqsRq5m6KzdXGpXA== +MIIDzTCCArWgAwIBAgIUe17RXHVYTVzNi1wO3dYVogiBG4EwDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtzZXJ2ZXJfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMjEwMTA2MTg1MzI2WhcNNDgwNTI0MTg1MzI2WjCB +kTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRy +b2l0MRQwEgYDVQQKDAtGT1JEX1NFUlZFUjEYMBYGA1UECwwPRk9SRF9TRExfU0VS +VkVSMQ0wCwYDVQQDDARGT1JEMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVAZm9yZC5j +b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDezAxx1oqi9g2lP641 +8JZTAA722bYXm8JxPP1hF5Gyv4GnRmbPIK+KbycX1Zr9lfLsW9gFfUxLVSIs4UuG +YsAcql4faccw8Tt8eLNsHzFMiIxIfr8OfrEeifEk2LJQuzOSLZ3XAnHEOvfhnKUx +Y1MmeZ3EXGcrLzETIGBAMAY5oza6ofh1zctQm/1Reg0fWXVGYqeBaU8TJh/pGL7f +JdaQjO4Vn1PjpS3ju1qV5xHlX6Bd5fWo8y2hbokLfoqIjlYVjFmBq8YzxJI11YwG +dFOr+JxEyQnYNKIXWkLy5pphpuEhJJm12cvFQ75yMtoms/R0U8kOLb6XdJrFrBgz +wggjAgMBAAGjEzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB +AHASV4wdwZFrUai/B7i43rxoDhl2/QrV7Usf3PprR7Q490JE8g5N6dA2sYMRAsbF +ecPAEldpm3tzaGfugQ2/ah8EBtPuP6cEQGzsVhBuQj3JyHr8wRX+Pwq85qtwOJ0r ++lIEZMhJ5YiQ8JOKRPJHQJkHkEEbioYgst/I+WnZx9irffIuJsi59UHG3KXY7SRK +ao+7+75fe80bCzgQb79j4GJyFA/wQfKkNKeKhunzM16cweOqbz0i06R/o1pmphhh +82EHuCPuiK4NMfNCFN2/lgH612Zq+xAQMj8Lv2VeV0PuO4uvKl6VvSP0XeMG4w44 +CmUEtPca3iMMAYXbCA7iku0= -----END CERTIFICATE----- diff --git a/files/Security/GetSystemTime_certificates/spt_credential.pem b/files/Security/GetSystemTime_certificates/spt_credential.pem index 9b59d8d7fb..af634ec0ba 100644 --- a/files/Security/GetSystemTime_certificates/spt_credential.pem +++ b/files/Security/GetSystemTime_certificates/spt_credential.pem @@ -1,95 +1,97 @@ -----BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEAu4KiIgfAGfM7gcc1n8836HMIC605p0aNntOBXD0RszjjKj11 -ecArf3rgtsVJxEVbSY8kcCNL8HGkXpVE/ZYWu2RqmWIccRwDFuFZv6al6Xrg41p7 -1TAoN6oqcOlD6WC6xGYqSqjVBDeive/VtF5lyNw0nBs4k9Bx+xS21G8r9Bx9rrlD -NMdISF76C0j2JT7ovPdOuwSwSjfAAtidlqrMo/LQXdNOAX9mFuq7tAgeE3vLmm4v -l+I7RCMZ3mppoPTw2b83HVJaZATwZgYlMd4NKhDlzBxawBY/UaRZjcY7i9z0QJHu -BP+zRIOjd29JmdLhwoEnyggoHeFjJAsUxdkycQIDAQABAoIBAQCDTxnHBvJpucFk -QmK1BOG78EIkGyySjX/DR44BT+rDPQUnoV5Q4lgTr7MJiuL7hS5GNu1ncfBN8ucO -LS3g/2fv1oQn4WLVeq5XKXw2D7eD5z7xN34cbtrbEFkkNNYP6mMgAgN/wPdbOrLG -m9tlse1JWZul7hISwRfwojLeVPPMv6tgahfB3t9EbiAc1v6v/vcK7ROFSbDScuLP -FAAWOj0dMdVx+u7Z3GMvLvSamKo7FasAnOwx9Sbx5fY/glZnDJv/xd8pS620Jyqd -pExY9uIRgn2aPvrXbfcK5PCHi6LnuXefJynVVNVG/qtgPeuGd+ACm7PweGbSo86t -aItevmy5AoGBAOo+NE7AAoNBayZ0+0k4Pq3tZuHvUNr9HM4JsszJHw6mxjbNC9hE -7wziBs+8qPsBDAMZ2+XJFSILvtoYH1I5yhyC3nQbWD25jMC90FINQdChBwDqgh7q -abYkE96suGJSMVS0Zk3elxsI6gxffJv4c6aavGp4dUJwf22h8bMDMCzjAoGBAMzt -OcXQAAN405rDdRIKHtBndFH2kZsFTlLJU/ZMJNpLleB2v++fyQbo/oqey8J+pAEv -XcWXaiCZi55K2OuBypc5UJ6CbJRfS2avkXYdtXz7bjzD5s2tN6DEuBOMWDZ+g0wk -CNuICx0rnQ7FhOcxoqrTXNyTwuUUh2FqL0nHVfebAoGAQEr6iHLjPauDAXcyUZKC -gbKbfn/1LWYztcmrrdG2GItl9Dyrd5zUEDEptXMO3nYXGfLLDHL4vfODWtEsJ6F8 -+/5fmHa47Zg0LeLrftnsqprIFVRIirvEcB3O5lt58GKm75zkR5NE3kLAGs1KonS7 -KYtnE8IkTSwbjbfZY00IuAkCgYAlYcTfK9FE0N6w5aTOdKAoXibe6L6o66/c9DLn -w/4ZAB7IAoGCwcAXDZuZR9xdj2J1gOF3MObAKaJJbtfhJh0BtwfY0mviKPwFMFO1 -mzfHI8p5NTc+H7H9FsWJc1mIH03uLsia21dDq/gLgMZ8shY9WS8gYaf0x+jmQUt9 -BurMrwKBgAXTH967KW5wNXEZQozgHEIHnU7DsTWfjIP/0HeziNzND0IZzhqyX0iQ -Yg4i5AljQKLVyszitV9BAg/AqFooIqX/qjykTaadM5IsOsAProkQL4Pkk8ov4jx7 -4D2FlvbpZ5CFW9DNkB/KeEQ53bsJbR8FTrR9sDIOjxRLyDlCI6th +MIIEowIBAAKCAQEAmsF0g2+XhgfH7GQqjU7/8tRSkkbOrmF4ZNAgCFrAE85RvILU +KBmKyZDEaR6lz96x2Q/RaAHijtw2X+mXGwG72l/udYrVEsAfPdYaeW7CMtSm9xTI +Kixlpwc7QNtnYGKkv1w3a1gIL9mv8R9HNk/Hh/ZzZ5pOgqIzgJhxpX69jridBHVg +ni8xQ5iR9vxWJt480y0X9RaYlIG/cz78FIHMMLhzhm8ieAWkHO+A026FnTfiACuz +JuA5H8l0oyZyqAqYP/gLG3iVHPQpW8xTlNMc3hkNMbZFuiaWYRaxuwH4N5h4wQUI +MO2nuZHeC5dcazZ+yqHrdVZmiiEyYlIl4PJUWQIDAQABAoIBAGHRoGUoFz3oEy3P +zrnNUqlaHetKCIBfKeuHRoghXMHoKvAePh4urvRjplLPxX1URVRv1CyK7HripRgR +Has7eFM7Sg5QOAiHGfhLKibRpLzef780CqXltEdUodaIGJrrHzm5/2nBlkMwtS6T +V77zxKqjVCULe07FWgqR0VwLdaQM/7WWL5b63VxNDRuux5z85lAj/wOkfN7vheIE +NFfobf6zENnZucBNqeAvuib0ebQfJTd9I615LoQPFiY+594TX9gqSHTZUM8Xoh9g +bAho4JiukqNf+Bp5hdx33y176WiOauNinnAlnhIjgNSI76vI78jWlwyx4RKU6Aoz +0q7Z3hECgYEAzDOQJt3ysjCJzVpyPQnnsBFFjT2t4bC0TQIo9luw7DtI7EJhYLMm +Kah56avYIJs7B6HwrnPndsB1TFL/UUmzHC/IXpT0fhz1oXgqNvufACHGgyI8LDLx +bF1Y5Sp+FCpv9UV1RlRwFXrfBhJ0ddbQiBhheSFlPx8nFvUZ28sIpSUCgYEAwgL7 +0v3Qzejgsdt4L+S6wgvFLL97pXKdw7Wjc7dddFrA+a4SUfHQ/3PGnL5BHWXylhCF +4tkrkevBekSjs/LGHd3hqwkJIbHcGgFeBp4nd99cb/taBGcX5PFL1SVn1cK93YSc +pLGiCYR0AEJkxTdoDIZfXwhc62V6H/sC1ApNviUCgYEAk2zKrvTgajtW0dZx0ZWc +GuZtU2prZhygH1Tm4+4QzoyCume2TA0rCTpkQgrZ77iCpqEI1bpCKt8KEH9/a12N +HVV2EKrz1TTtNZU+zRFemsbHvhbyYGqrGDRQoKrL+Z0l1Ws/HvaJMUjTSVv7jrP3 +O7p2bPBqW2cPXqi38ZIk/K0CgYB+P+DNeTuictOdCZtZVzesxGoH54c3r7E4RP/b +ckxPRitjjsH/LyP4x8dMAoZu8gN9Yb0uVHIE3+ykevwoQmhn0RZj7VpS4eG/znn4 +RnyahfAqMt9uFAQ5iEf3qQK72KEjAIPKrIksNlQiQxI+QALme56eQdvtlrh1DSvW +/el/PQKBgFHihQCIFoWrB7xEUnsuQu1hhn2/OcN40jbq67ta/KnCGbp0rJi6Hl8G +NaEyLTLXRTgYqQeUDRVGoJCi+AhIef8JJexSD1DieQKbYHr81SQmSOd2b1TbWuoo +3eIIuBwBY3ugdrHP0iKtBjPEXmB8r67KGz7s4YccAOWJZLWkpcLD -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- -MIIDqTCCApECCQDFtoVyxnOs6jANBgkqhkiG9w0BAQsFADCBkTELMAkGA1UEBhMC -VVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRyb2l0MRQwEgYDVQQK -DAtGT1JEX1NFUlZFUjEYMBYGA1UECwwPRk9SRF9TRExfU0VSVkVSMQ0wCwYDVQQD -DARGT1JEMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVAZm9yZC5jb20wHhcNMTIwMzE3 -MTAwNDE4WhcNMjYwMzE0MTAwNDE4WjCBmjELMAkGA1UEBhMCUlUxDzANBgNVBAgM -BlJ1c3NpYTEXMBUGA1UEBwwOU3QuIFBldGVyc2J1cmcxDzANBgNVBAoMBkx1eG9m -dDEPMA0GA1UECwwGTW9iaWxlMQ8wDQYDVQQDDAZzZXJ2ZXIxIDAeBgkqhkiG9w0B -CQEWEXNhbXBsZUBsdXhvZnQuY29tMQwwCgYDVQQFEwNTUFQwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQC7gqIiB8AZ8zuBxzWfzzfocwgLrTmnRo2e04Fc -PRGzOOMqPXV5wCt/euC2xUnERVtJjyRwI0vwcaRelUT9lha7ZGqZYhxxHAMW4Vm/ -pqXpeuDjWnvVMCg3qipw6UPpYLrEZipKqNUEN6K979W0XmXI3DScGziT0HH7FLbU -byv0HH2uuUM0x0hIXvoLSPYlPui89067BLBKN8AC2J2Wqsyj8tBd004Bf2YW6ru0 -CB4Te8uabi+X4jtEIxneammg9PDZvzcdUlpkBPBmBiUx3g0qEOXMHFrAFj9RpFmN -xjuL3PRAke4E/7NEg6N3b0mZ0uHCgSfKCCgd4WMkCxTF2TJxAgMBAAEwDQYJKoZI -hvcNAQELBQADggEBAHonEpso9no3n9hhRGi2STGabICRs4brMmfOngsr1EWHZQrh -eRexYJVIJZUrj4SIYnt6DmMlLaMQTGJXwZ4ZrXYwC7KwCEm2QHBV7IoAQFy6by/m -b9CpDhTtaFH1+oHy+ILuwVrt64rHZMcM6gqqtfiGrSoVpp7zcpoC/BIrq6oFm6BH -GLkVWK/0mtZY8DgxZqO2E3SUJt9Ch8uyUWpvAG+Y2srb9ZP+hwHWb6u3KlZmqS3x -brx66FQRt/Al+eir6ssx8FxuiMpZnasSrIsefbZzOrveLiQrlQ2KEq8r1y95U6gZ -6OBIAAVM6T8I/uXSKJQAx6zrFdK+Epbw0P79Bj8= +MIIDtDCCApwCFHuQZjbxT1pcENdL3S0e3GJTwy/1MA0GCSqGSIb3DQEBCwUAMIGR +MQswCQYDVQQGEwJVUzERMA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJv +aXQxFDASBgNVBAoMC0ZPUkRfU0VSVkVSMRgwFgYDVQQLDA9GT1JEX1NETF9TRVJW +RVIxDTALBgNVBAMMBEZPUkQxHjAcBgkqhkiG9w0BCQEWD3NhbXBsZUBmb3JkLmNv +bTAeFw0xMjAzMTcxMDAwMDBaFw0yNjAzMTQxMDAwMDBaMIGaMQswCQYDVQQGEwJS +VTEPMA0GA1UECAwGUnVzc2lhMRcwFQYDVQQHDA5TdC4gUGV0ZXJzYnVyZzEPMA0G +A1UECgwGTHV4b2Z0MQ8wDQYDVQQLDAZNb2JpbGUxDzANBgNVBAMMBnNlcnZlcjEg +MB4GCSqGSIb3DQEJARYRc2FtcGxlQGx1eG9mdC5jb20xDDAKBgNVBAUTA1NQVDCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJrBdINvl4YHx+xkKo1O//LU +UpJGzq5heGTQIAhawBPOUbyC1CgZismQxGkepc/esdkP0WgB4o7cNl/plxsBu9pf +7nWK1RLAHz3WGnluwjLUpvcUyCosZacHO0DbZ2BipL9cN2tYCC/Zr/EfRzZPx4f2 +c2eaToKiM4CYcaV+vY64nQR1YJ4vMUOYkfb8VibePNMtF/UWmJSBv3M+/BSBzDC4 +c4ZvIngFpBzvgNNuhZ034gArsybgOR/JdKMmcqgKmD/4Cxt4lRz0KVvMU5TTHN4Z +DTG2RbomlmEWsbsB+DeYeMEFCDDtp7mR3guXXGs2fsqh63VWZoohMmJSJeDyVFkC +AwEAATANBgkqhkiG9w0BAQsFAAOCAQEAN1YAgZ5KzedyN6Q8AUEXRDOmxRJNrVjA +AoVAtclURZjO4YDfpiSSxdTr9bO1tZh2CBElNWeo48+uLPGDaduMaDfRCv26bdbK +nOZZZfjQvUvUifJgvdAV2Iwrz20x1JcfcqP1hN5vDELhQLCEHmr3hTMHjz8HRjTG +Qs2KnIKWMKW8ubMdjtcNZC/B262N8JtL6yCz9NQ9RGfVQZumzKZdKq+OaSy4JqZ3 +0iQAqgSfhva550gQZRniDL3IneqxXHJD7IFBXycBYGTOZ5uoB8dfv+rh2nsyLKgk +MUb18OhsMlCFNwasuL5n6+CWzVrPvQAOAtqw5G3ube4NR6uSK93fdA== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIEBzCCAu+gAwIBAgIJAJOyycRs95twMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEXMBUGA1UEBwwOU2lsaWNvbiBW -YWxsZXkxEzARBgNVBAoMCkNBY2VydC5vcmcxDzANBgNVBAsMBkNBY2VydDEUMBIG -A1UEAwwLY2xpZW50X3Jvb3QxIDAeBgkqhkiG9w0BCQEWEXNhbXBsZUBjYWNlcnQu -b3JnMB4XDTE4MDMxNDExMjU0NVoXDTQ1MDczMDExMjU0NVowgZkxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQHDA5TaWxpY29uIFZhbGxl -eTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwGQ0FjZXJ0MRQwEgYDVQQD -DAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2FtcGxlQGNhY2VydC5vcmcw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD2OsoeJefNo6+e06B1ytTS -NZu78/975ACCGgntwGOrDX9rS4GW3kZfxcn5Do7jsiQuMZbQ6lcT5HdTJ/SaEXlX -he78d+Tw9BF70LfwFOPhvnRxxSdcCtUMqYL64ZjmO0JHub0bFBt50dtzajWnzq7O -EKGo4E2qFpo4+DC8lTqtaCpjK9MW3kOwZw7as+RYf57X/HMCRWG9vjABPUJ85Tvp -iBmKVCAgVPsdiQPp1NKgBIBWbekZV0/SeoNnZixc1S/J0q+MSECO1YNwNar89fJv -2XXkslvDfJxz/GjPqtBOGu7LyvcobTctedqdea62lPUf+FnK0WNqfjq0Q/J2ALeN -AgMBAAGjUDBOMB0GA1UdDgQWBBTvvVyK2AKsYwfnbn2zHN6/nnwJWjAfBgNVHSME -GDAWgBTvvVyK2AKsYwfnbn2zHN6/nnwJWjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3 -DQEBCwUAA4IBAQB+shDSEVbiSbN130mZ17al9Tmul94hwZh9sPzeY0CbB5ImII7e -lbWKF5ScALIStrdGSGk+EUKgwfx7zBLj61LQajskyu717Q4IYPp7fn/6kN2eyrxW -GndLdn4AhMBAYNNYcK1r1Ji0lLJqoZF0ouAsEAW1AWPSDlB+St8kqGqhmEn3Race -+EC+noa/gc8Ot+x7VtRkL4z8Oo/nbbGBNqu5Qxm7zdz4lh5jcHEXQOq6EbWSqv+U -evanWYFVceiTqXGf9Aw7exAgTGH+Sr1d01g8r57kUYFetukY+UFRvCYJs8e7ER/O -+RQhR87cysNPZefar2oAj2d/berFh2B1a4TA +MIIEFTCCAv2gAwIBAgIUSrJiR49vCVDBGz1w/6It+e5HPwEwDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMjEwMTA2MTg1MzI2WhcNNDgwNTI0MTg1MzI2WjCB +mTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNp +bGljb24gVmFsbGV5MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNl +cnQxFDASBgNVBAMMC2NsaWVudF9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVA +Y2FjZXJ0Lm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANYrtdcr +7Yu/1IDn5JNBuddq3l21SL7HdBvtnT/ONe8TFWg6IZ8o1CD5o5BogUaS8AGlJMWJ +ejI6fjkn20LTjXRtEPuU3fe9a+4yAR+e47/Py3l7JD9Tdu0vyqAqrBt1xtI4z6hb +u2H9R73AG1R3xsY6QFioLhYFrVFHybfXpzAnuh6S8JzZ1rLIOxu3Mka1rPY7c1S/ +EsI5ZDeYAmF6Yuc/pgZMvDdbz2Knbj6v5QCDGSoEhlAtW9TC9g1++28ULyZOTDXP +H0mEGQqWIgEyTNq377T6ii5gyWJoFsT4fLx0GjSVfB8jdDPJ1UoXM6KWWEZvDxD6 +s402XlVKSalR2BcCAwEAAaNTMFEwHQYDVR0OBBYEFPXm84TEHeRactWQ6sXz0Dyj +eCGNMB8GA1UdIwQYMBaAFPXm84TEHeRactWQ6sXz0DyjeCGNMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAH0t3H8xgRxACj2MFUDEFOPfblf9ggTF +kAziDnAZ29XMA6hj82EMKe4FEX2wUDH1+iv39BUquOQsXOAiW5F4cuXKIDECeNfX +/BrcD1XryQD5DYkaOLhIN0s8OYCp7Vlrv/CoNSmhYBCS5/cbk3L/gDXxnL+iEsv/ +E2fOqOCmI7dVO+h7b3xC1UyDVTiCf22HH1MHt2IHVvhmoP/whH0GHLP1relEUVJU +9C/wrJhqC57VDxwlH9byTelcRTFIQaR0z/hk3aAtF+NFcutv/dJJdgT4W+fIQG/v +Xdd4DkTgVFnhH9WV4dDnVt6v8k1OqOw9K98ppvgecgq0/8d5bu2ycSs= -----END CERTIFICATE----- +93dd8908 -----BEGIN CERTIFICATE----- -MIIDrzCCApcCCQChM2uDQRBkRDANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMC -VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNpbGljb24gVmFsbGV5 -MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNlcnQxFDASBgNVBAMM -C2NsaWVudF9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVAY2FjZXJ0Lm9yZzAe -Fw0xODAzMTQxMTI1NDVaFw0xODA0MDMxMTI1NDVaMIGYMQswCQYDVQQGEwJVUzER -MA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJvaXQxFDASBgNVBAoMC0ZP -UkRfQ0xJRU5UMRgwFgYDVQQLDA9GT1JEX1NETF9DTElFTlQxFDASBgNVBAMMC0ZP -UkRfQ0xJRU5UMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVAZm9yZC5jb20wggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDocPnd6WI6P8ahHu9UI3RxWzbKL3Bj -zbEEoVS1RGGiqJcTT99l9JWxYcnXkT2+K24cKKhgZe+yLhs1NZKDu2FxpBL6Tylq -/GgLIl5q7VUhjwLOGpHAY2v3qt4OmkaSMYTW/OxGoH6COya3YJ476yE0TaKRwtX0 -AB2efjWdydSMQMcXPshzjKWas6s94cr0DWnXbhZG1yFJF1qAQ8AstSo5Dp/Wexl5 -4/Ia1uxwAlMAgzhAn/hv6iQEmSqrIXV+UAkkIDutn+ZnNmAHBp89XtSC28o2wOa0 -RZDaRhbZ0eHsgqFwO7sXp9ere2uKiEDP/fd3smwxQcj3sA3pKy2vQ2BlAgMBAAEw -DQYJKoZIhvcNAQELBQADggEBAKHQgzyuTOPvL58eqG4nh2kQrRsT4yXTyymKJYpV -kEy7VaNAXhM+YpVlxGtcNNb6d56m3Vl6riTgEgVoqnbhse9J6II86uu9lvEgZbgW -D4eBBhdLwY22sIxupJ1vDJ4SaPweois7ph9rUQjvtpWQQaT0lnbw51H/DCCT6lxz -TjeoFED1qjFP8rNaNqhmzjs0b2KFMDB+itD6JBAqITnaoweBnYhxUC4F0xhSDng2 -qm/2yiX3zmkPSIK1MDmDvg7nIIIbfJwW6xNfkbgbfl4q5eCBgAL38REsMT13mEia -U8i7rb5q4FAq6iUUFwZxtPRyUJGvNTvuZH+75Yu6JZb2tDk= +MIID1DCCArygAwIBAgIUccGNGnjsCTNE1XvmHSWy/nouynwwDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMjEwMTA2MTg1MzI2WhcNNDgwNTI0MTg1MzI2WjCB +mDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRy +b2l0MRQwEgYDVQQKDAtGT1JEX0NMSUVOVDEYMBYGA1UECwwPRk9SRF9TRExfQ0xJ +RU5UMRQwEgYDVQQDDAtGT1JEX0NMSUVOVDEeMBwGCSqGSIb3DQEJARYPc2FtcGxl +QGZvcmQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvDT3uNcL +hpKX33d4rt0YpFCrwgYkjEIFQtrpCA434EVzvanZeK3zbrND91nTBzII5f9C48iE +Bhq0SIvHXYcJwyeewaVKk4o0MbyR7HG5o2i7TjA0TsQFCy65f3fTIIQtnHhx3qYH +mK1Thi7/zfur+S5nZ9C3yS1Lxq6pJZ7GxQC9Pqhs2Hb8lyS26iRBf/m4D4htFk0U +EZwyvhGcHsvMVPZjJzccyjvEy049vHkTNrtAl35BkFKUh2ywCvl4kF+tikvAIS8N +xsAbzPxn8Ng4At5jMmiK1ZhTy4wCQ9SfNPg2FRx3XPN9wYSQkznrdZu1dtTzxHOc +AyXw03RpVv2zXwIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB +CwUAA4IBAQCUKhZcrwd5VUVeDiVnzXdBozEZ2azo/LilcpS0T+ATnkrC4mvCMthR +b3tb4WFrs+0QZhdIxqSeOvHIcm2nfqTTwR9U4qdxpZfXkK2ZpRiQUnpwTqLuOlor +ROa+1Amdpvmnm6MwI3ArYyRT7Np78LI6v/xn+Pkd0HFeVh9+XvdmR0gUNkbn0gzd +BClHoxCobvvg4brqhfsuXFQN72g0q3seTNXDW6wY4hPAdoqCsdKhHn2q4ZqCxfbe +LWWkNQCK53xCMSx5XidsiKRpPlMw1bwcZfSup7PJ7xmhXHpjkR7tLcB7E3xLO64Y +QI7za6W1k8VhwD1Te8cZB40qDpElv/n0 -----END CERTIFICATE----- diff --git a/files/Security/GetSystemTime_certificates/spt_credential_0311_16.pem b/files/Security/GetSystemTime_certificates/spt_credential_0311_16.pem index a8ea22827b..a4391a2c09 100644 --- a/files/Security/GetSystemTime_certificates/spt_credential_0311_16.pem +++ b/files/Security/GetSystemTime_certificates/spt_credential_0311_16.pem @@ -1,95 +1,97 @@ -----BEGIN RSA PRIVATE KEY----- -MIIEpQIBAAKCAQEA6ofSUW8xNVsxIG2GkIS8bg4yO5O6ijCTp8dQiF7LXYX/mNV/ -7yj9n7RB4chuRwJ2zeedEezRPpLIeRyQZ5r604KfXzPPX4GQORUY0C9666lEpwp+ -nrYB0mn+ZM60z9yl4+2mwZczY3WXZc0/0dECuuj84RSGEBZRvSFldy38Ffe9r0uy -iKvIPAQit/xItElP9IY2Rz6MkBsMXIwvBZA2PFy5W1qdz7nXQbTgPtx/gRME1eau -679Q8WTSqlPxv9Wz+MpMjyTdziD9TVK0/k4+BDwUgTL+nn/LxxAVsyto5BHs3We4 -K9R4U2ELyst58s5nohvqv+YY5Gv3xfZ7jwKJ6QIDAQABAoIBAQDJ9F9FRIyJN5ec -JvRDKingU1UqPFHbgW0Egvt0ErzoMeUhRGfAF/oeNeitdhyQBS0srY9xyg185oS+ -1bv7m1b2H3sBTen6geUhYmtVii09FStK9ByIqo3zFNa9E8pbW9N17EU2Wu8jbDUM -squMD4FcVhi78SJoY+/K/yESeYSjnGVkypFThb78UigTjrNC27S7G3wsqFEGDSh1 -nNWyXFq4Glo9vj1QTa8xJSz8euDNxSoalB1mHJOgDGz8OR4Y3lgwgKhVa/vHao5A -QZGWTgAETq9LR9J4C/+9Wjzg4havJ8fZZ6+C+MIVb6iPoIPZE6gWlM3c3lW14AIz -GkyeE3ZJAoGBAP7olkRg24eN9vrsyhIWVP/pE8O1xUTIRJTPSrPCI63E8E7LIhi5 -KffWw+g16vCBltmX0g//LGIXTuglwfZ2bCh5IANm09xTcUfNI6ireARILIfgMPLP -5Uhe5xFjelr/NXwEG6RSQU+OnoVFgp6cHakNmxqtqQUjKoSBtwuEGC1TAoGBAOuI -5culzuFhrr6nP0h97tWwTaS6zliU0B0olLmorrG58pasc83dmZwfdxHPxN7XrxWo -+zoSmy5gAVW5pOfMi3sCka+x7WblFnBdPwjgaBxPmrcEGjLIhdjWPyAmXJ45NNkk -M8Sdy2whoKqv4mcl/cGJYqBcNxiCChkr0n7t0chTAoGBAMV6ww9uSiSWIwT6dQHW -MzufAiTYqV9EF32Bqkng2WtB6znfvSaSLKVIyLUZME3q10bzi1XBRk0n6YWH2uBp -lhk03UxFWVSTgGszzbBaRrxqfbU2RjWWQfbzLugVvTDKDlFpjVCcOOS9hKmS1EK0 -h3X0iHj+mLbWK5ZEN97AE0rpAoGAO2dmlas2908ctIcYBd+FKi3yFzbqLhsyNfhz -MjQiAz8juO67slNOl7qz3DErtQxu4yagXjAtJVAfZhCRT8kd8KNgPRDCEG5871AF -QubeOy20lq4ZMW+zmlHG0AP83gcNlip0SAWINbhxfjsn/d3uFy7gShOX7b12cIzF -5S9z9nMCgYEA6duZkj4Hz3PQ2306LYHupTT8lDmI7F/x448tBunJjvVlNhLYsVm8 -+V+Kc6XioCmwcO2L3hwLY53cSjjZX8FN5fpIXRoMzoC3j/vQUQnwhGcbGbHfK4Ys -ZE4PY2lKjntqndkF8u9fLrjdkk8lqu+gLVQdlklMv+bvyKbr51bg1d4= +MIIEowIBAAKCAQEA9SSvgfkUtgJ7IKAMU/8W84cD25Cos3D47WW0eN+ctofbQWvp +wkG1nQfqtQigkJlt6Hvlr4TBa2eQ2bh35PgIeOPPPKfNOUOza0TEifxDns/a8h2z +4RCXoxgROZRn7w3IHRg+SvykE6oQLOTUKMPz2rWXoQayO6Z38cCtYVY1znXHYDc1 +oPfmGLgXkaApZhvPek7s0oKUsrv58AfAtifbAiqFKJQaBUTAVEQxJAmV8x6Tfb98 +wdBD0+yrpHCexAPiDA/sCf9qfQiuDtsEG3aBtHIpEMAMhDuJwbo911iY1V4o7Eel +Rn6JHyyXkJ3eZvUMx3NRBDhNl78dn6HbL0Yr0QIDAQABAoIBABcrOnM8SVrSbTSu +K7wcldy6XAD6cRdUjBJT1HTAHZ2axXwvaM51S2bmAqbNg+9msN6SJykpkOZHyYbq +SlqXnqVeUo3XBixtW529yB2KfBGcb4MGj6Or38kIU0hv4ErVsJ4fVnPb4N4C6rhz +gCHCM1/uXcBYU6wTla6BmWFjtn4msDDCUWBL6SwG+Eub+Ag9oS7pVYaT72BFYaWS +i6ENtZkZpm6OowK8YH2jfHclgkmQtWmrKE/eCVpuOiX4A6sex3lJYs5VjoXmPgAb +rJ1Ead86ph9O9YcbdP4EqywakjMYaU09c2eCaL4YDJsAmqmEhRopQLIPu7a8/ojp +QgLquikCgYEA+ykBYtav0Elm5P59wXn6mUPa9QrFzQCuT385l/rZmP0lfu/7KK6r +zMh/aeHXEBn7fVf85lnhOQYzg5pr5EO/aIDvFt2fp3Kw4F//RjzAkOPyOzp1XlmZ +YKOwOkLEC5jhihjQI1PHxExNtPHvaJ9iIXWJAh81gh9/515uOa4dmOMCgYEA+d3/ +l6mT0wXI4HgCwwF4XCGvDVu45ZwzHUystuyucqxbF+biciZELGp1FtWqPSUkyC7U +RxeSvhNCGeVkoT4e1vKATUpykrTXGt+kPxy/EaU/JmDzmqfoATbExx+gRufmU7Ox +rI+xt1RI08e2vXD6tyIKQy9jRODy3RFZiLL46rsCgYEAnTHq9iucWma2ibhmiQOJ +PwfjMN8PMeGtN4BPUbnlGwXFxA77SVkZmdAbPu/kpOU+LBM37AxxFDm3YDT0NifY +0tVvzwXi+PCll6k9on4/n++rGjraXrUBdCS/FZfYD9Idx0sEajfznf6L3CZYS0kG +KB7iI3vZB5ojeXH21w8M4zUCgYAxq7P3jjpYpLm+BZ1m7o/ioL+PxEAJRPfURz2+ +T2aOXTzuj3NMhdbfjXohQ/BHn26kbMq+Jy2Ao4tsYnGSrCqtSB/BPZ9xEooASZz4 +/tnsxBC9rGBAykgQlbagbuUJs2fSE9KqHxaQ/yxLDVSCbEcqyJWJrY3qT114HM7T +oeBhqQKBgFG2lmWJ5Y+vHE8UuFBJ/NOCY1q2i4pCyHGXhj9haTcMtRbj5PLZx8mW +stH2r7DaguQVm/QvSqOOdWtRvemqFFVD1ASNFdMd/k7IAX80VbYP9lABvpczzA9/ +JNkGc0YJ0GI/1QbtWeXoJKeRiVWMfIMGoBvmYPnXxBff3eoIgpOz -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- -MIIDqTCCApECCQDFtoVyxnOs5jANBgkqhkiG9w0BAQsFADCBkTELMAkGA1UEBhMC -VVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRyb2l0MRQwEgYDVQQK -DAtGT1JEX1NFUlZFUjEYMBYGA1UECwwPRk9SRF9TRExfU0VSVkVSMQ0wCwYDVQQD -DARGT1JEMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVAZm9yZC5jb20wHhcNMTEwMzE3 -MDkwMDEzWhcNMTYwMzE1MDkwMDEzWjCBmjELMAkGA1UEBhMCUlUxDzANBgNVBAgM -BlJ1c3NpYTEXMBUGA1UEBwwOU3QuIFBldGVyc2J1cmcxDzANBgNVBAoMBkx1eG9m -dDEPMA0GA1UECwwGTW9iaWxlMQ8wDQYDVQQDDAZzZXJ2ZXIxIDAeBgkqhkiG9w0B -CQEWEXNhbXBsZUBsdXhvZnQuY29tMQwwCgYDVQQFEwNTUFQwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQDqh9JRbzE1WzEgbYaQhLxuDjI7k7qKMJOnx1CI -Xstdhf+Y1X/vKP2ftEHhyG5HAnbN550R7NE+ksh5HJBnmvrTgp9fM89fgZA5FRjQ -L3rrqUSnCn6etgHSaf5kzrTP3KXj7abBlzNjdZdlzT/R0QK66PzhFIYQFlG9IWV3 -LfwV972vS7KIq8g8BCK3/Ei0SU/0hjZHPoyQGwxcjC8FkDY8XLlbWp3PuddBtOA+ -3H+BEwTV5q7rv1DxZNKqU/G/1bP4ykyPJN3OIP1NUrT+Tj4EPBSBMv6ef8vHEBWz -K2jkEezdZ7gr1HhTYQvKy3nyzmeiG+q/5hjka/fF9nuPAonpAgMBAAEwDQYJKoZI -hvcNAQELBQADggEBAFBC7PzhU9VtOBugvscjp615zm9UEes5FciMPPmkLLOToySr -uutCNHXMEyCpCFECxnC5mBHyOoI3IGl6CYs8qF1WT8VKQHVm6xkYeXGDSyPg1B0g -/BoYEJub16dbQxkOugvCEaYlLxMrvIzbcUqJFHn7d6/iqUhUzG6NwFpKPFgbBqoj -cQ6AOG2+LmFzPuJS9Jq0XtQrtXLCeAO62ukRhzWSOqqhOeF2y+IObkelSpGBz/i0 -21wXtMWoQ9+tBThD8tIBgm2CMeFfATKUZM3OPU7lgIvZakih9c4sd9f6PNL+6aFG -QEzBsBbFy4gmejYKrNOuqLBGbywinKz2oNQbs5s= +MIIDtDCCApwCFCxHI8k3iokEiuavpxBnJFiCm2YOMA0GCSqGSIb3DQEBCwUAMIGR +MQswCQYDVQQGEwJVUzERMA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJv +aXQxFDASBgNVBAoMC0ZPUkRfU0VSVkVSMRgwFgYDVQQLDA9GT1JEX1NETF9TRVJW +RVIxDTALBgNVBAMMBEZPUkQxHjAcBgkqhkiG9w0BCQEWD3NhbXBsZUBmb3JkLmNv +bTAeFw0xMTAzMTcxMDAwMDBaFw0xNjAzMTUxMDAwMDBaMIGaMQswCQYDVQQGEwJS +VTEPMA0GA1UECAwGUnVzc2lhMRcwFQYDVQQHDA5TdC4gUGV0ZXJzYnVyZzEPMA0G +A1UECgwGTHV4b2Z0MQ8wDQYDVQQLDAZNb2JpbGUxDzANBgNVBAMMBnNlcnZlcjEg +MB4GCSqGSIb3DQEJARYRc2FtcGxlQGx1eG9mdC5jb20xDDAKBgNVBAUTA1NQVDCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPUkr4H5FLYCeyCgDFP/FvOH +A9uQqLNw+O1ltHjfnLaH20Fr6cJBtZ0H6rUIoJCZbeh75a+EwWtnkNm4d+T4CHjj +zzynzTlDs2tExIn8Q57P2vIds+EQl6MYETmUZ+8NyB0YPkr8pBOqECzk1CjD89q1 +l6EGsjumd/HArWFWNc51x2A3NaD35hi4F5GgKWYbz3pO7NKClLK7+fAHwLYn2wIq +hSiUGgVEwFREMSQJlfMek32/fMHQQ9Psq6RwnsQD4gwP7An/an0Irg7bBBt2gbRy +KRDADIQ7icG6PddYmNVeKOxHpUZ+iR8sl5Cd3mb1DMdzUQQ4TZe/HZ+h2y9GK9EC +AwEAATANBgkqhkiG9w0BAQsFAAOCAQEAZfW1TrGH0wsmYZoD8OaFUEvXgiK9gkYR +E2HsVEM3kEvJPv0eSxY9F1IVzyb4u9Ljb6VnsIlxlpaObyyP7lXlDPlQqkMfONPS +5xaizSeuD/trSGekkdrowEr3sjsVQtX+hUr6jxFewicPnQhi6lvuA/bA+iZf+Qua +cUU94rjhU6BZx43rjns2fW5dW6+yFJ4kXsWTr4jrVkO+XrRnOrKmB2cRb6BihJXV +u0kWr29lBAKWLRnPqHxNI1lhs5ogUV4e7TP09Qiv8ALXf7KncdMWVeD3cQCpFPy1 ++I5bny1pdYHJyDRguuN7UTAMdXUAbpu1Xo4bcSGFqAddrsSiAAv7jQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIEBzCCAu+gAwIBAgIJAJOyycRs95twMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEXMBUGA1UEBwwOU2lsaWNvbiBW -YWxsZXkxEzARBgNVBAoMCkNBY2VydC5vcmcxDzANBgNVBAsMBkNBY2VydDEUMBIG -A1UEAwwLY2xpZW50X3Jvb3QxIDAeBgkqhkiG9w0BCQEWEXNhbXBsZUBjYWNlcnQu -b3JnMB4XDTE4MDMxNDExMjU0NVoXDTQ1MDczMDExMjU0NVowgZkxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQHDA5TaWxpY29uIFZhbGxl -eTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwGQ0FjZXJ0MRQwEgYDVQQD -DAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2FtcGxlQGNhY2VydC5vcmcw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD2OsoeJefNo6+e06B1ytTS -NZu78/975ACCGgntwGOrDX9rS4GW3kZfxcn5Do7jsiQuMZbQ6lcT5HdTJ/SaEXlX -he78d+Tw9BF70LfwFOPhvnRxxSdcCtUMqYL64ZjmO0JHub0bFBt50dtzajWnzq7O -EKGo4E2qFpo4+DC8lTqtaCpjK9MW3kOwZw7as+RYf57X/HMCRWG9vjABPUJ85Tvp -iBmKVCAgVPsdiQPp1NKgBIBWbekZV0/SeoNnZixc1S/J0q+MSECO1YNwNar89fJv -2XXkslvDfJxz/GjPqtBOGu7LyvcobTctedqdea62lPUf+FnK0WNqfjq0Q/J2ALeN -AgMBAAGjUDBOMB0GA1UdDgQWBBTvvVyK2AKsYwfnbn2zHN6/nnwJWjAfBgNVHSME -GDAWgBTvvVyK2AKsYwfnbn2zHN6/nnwJWjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3 -DQEBCwUAA4IBAQB+shDSEVbiSbN130mZ17al9Tmul94hwZh9sPzeY0CbB5ImII7e -lbWKF5ScALIStrdGSGk+EUKgwfx7zBLj61LQajskyu717Q4IYPp7fn/6kN2eyrxW -GndLdn4AhMBAYNNYcK1r1Ji0lLJqoZF0ouAsEAW1AWPSDlB+St8kqGqhmEn3Race -+EC+noa/gc8Ot+x7VtRkL4z8Oo/nbbGBNqu5Qxm7zdz4lh5jcHEXQOq6EbWSqv+U -evanWYFVceiTqXGf9Aw7exAgTGH+Sr1d01g8r57kUYFetukY+UFRvCYJs8e7ER/O -+RQhR87cysNPZefar2oAj2d/berFh2B1a4TA +MIIEFTCCAv2gAwIBAgIUSrJiR49vCVDBGz1w/6It+e5HPwEwDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMjEwMTA2MTg1MzI2WhcNNDgwNTI0MTg1MzI2WjCB +mTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNp +bGljb24gVmFsbGV5MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNl +cnQxFDASBgNVBAMMC2NsaWVudF9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVA +Y2FjZXJ0Lm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANYrtdcr +7Yu/1IDn5JNBuddq3l21SL7HdBvtnT/ONe8TFWg6IZ8o1CD5o5BogUaS8AGlJMWJ +ejI6fjkn20LTjXRtEPuU3fe9a+4yAR+e47/Py3l7JD9Tdu0vyqAqrBt1xtI4z6hb +u2H9R73AG1R3xsY6QFioLhYFrVFHybfXpzAnuh6S8JzZ1rLIOxu3Mka1rPY7c1S/ +EsI5ZDeYAmF6Yuc/pgZMvDdbz2Knbj6v5QCDGSoEhlAtW9TC9g1++28ULyZOTDXP +H0mEGQqWIgEyTNq377T6ii5gyWJoFsT4fLx0GjSVfB8jdDPJ1UoXM6KWWEZvDxD6 +s402XlVKSalR2BcCAwEAAaNTMFEwHQYDVR0OBBYEFPXm84TEHeRactWQ6sXz0Dyj +eCGNMB8GA1UdIwQYMBaAFPXm84TEHeRactWQ6sXz0DyjeCGNMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAH0t3H8xgRxACj2MFUDEFOPfblf9ggTF +kAziDnAZ29XMA6hj82EMKe4FEX2wUDH1+iv39BUquOQsXOAiW5F4cuXKIDECeNfX +/BrcD1XryQD5DYkaOLhIN0s8OYCp7Vlrv/CoNSmhYBCS5/cbk3L/gDXxnL+iEsv/ +E2fOqOCmI7dVO+h7b3xC1UyDVTiCf22HH1MHt2IHVvhmoP/whH0GHLP1relEUVJU +9C/wrJhqC57VDxwlH9byTelcRTFIQaR0z/hk3aAtF+NFcutv/dJJdgT4W+fIQG/v +Xdd4DkTgVFnhH9WV4dDnVt6v8k1OqOw9K98ppvgecgq0/8d5bu2ycSs= -----END CERTIFICATE----- +93dd8908 -----BEGIN CERTIFICATE----- -MIIDrzCCApcCCQChM2uDQRBkRDANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMC -VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNpbGljb24gVmFsbGV5 -MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNlcnQxFDASBgNVBAMM -C2NsaWVudF9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVAY2FjZXJ0Lm9yZzAe -Fw0xODAzMTQxMTI1NDVaFw0xODA0MDMxMTI1NDVaMIGYMQswCQYDVQQGEwJVUzER -MA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJvaXQxFDASBgNVBAoMC0ZP -UkRfQ0xJRU5UMRgwFgYDVQQLDA9GT1JEX1NETF9DTElFTlQxFDASBgNVBAMMC0ZP -UkRfQ0xJRU5UMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVAZm9yZC5jb20wggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDocPnd6WI6P8ahHu9UI3RxWzbKL3Bj -zbEEoVS1RGGiqJcTT99l9JWxYcnXkT2+K24cKKhgZe+yLhs1NZKDu2FxpBL6Tylq -/GgLIl5q7VUhjwLOGpHAY2v3qt4OmkaSMYTW/OxGoH6COya3YJ476yE0TaKRwtX0 -AB2efjWdydSMQMcXPshzjKWas6s94cr0DWnXbhZG1yFJF1qAQ8AstSo5Dp/Wexl5 -4/Ia1uxwAlMAgzhAn/hv6iQEmSqrIXV+UAkkIDutn+ZnNmAHBp89XtSC28o2wOa0 -RZDaRhbZ0eHsgqFwO7sXp9ere2uKiEDP/fd3smwxQcj3sA3pKy2vQ2BlAgMBAAEw -DQYJKoZIhvcNAQELBQADggEBAKHQgzyuTOPvL58eqG4nh2kQrRsT4yXTyymKJYpV -kEy7VaNAXhM+YpVlxGtcNNb6d56m3Vl6riTgEgVoqnbhse9J6II86uu9lvEgZbgW -D4eBBhdLwY22sIxupJ1vDJ4SaPweois7ph9rUQjvtpWQQaT0lnbw51H/DCCT6lxz -TjeoFED1qjFP8rNaNqhmzjs0b2KFMDB+itD6JBAqITnaoweBnYhxUC4F0xhSDng2 -qm/2yiX3zmkPSIK1MDmDvg7nIIIbfJwW6xNfkbgbfl4q5eCBgAL38REsMT13mEia -U8i7rb5q4FAq6iUUFwZxtPRyUJGvNTvuZH+75Yu6JZb2tDk= +MIID1DCCArygAwIBAgIUccGNGnjsCTNE1XvmHSWy/nouynwwDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMjEwMTA2MTg1MzI2WhcNNDgwNTI0MTg1MzI2WjCB +mDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRy +b2l0MRQwEgYDVQQKDAtGT1JEX0NMSUVOVDEYMBYGA1UECwwPRk9SRF9TRExfQ0xJ +RU5UMRQwEgYDVQQDDAtGT1JEX0NMSUVOVDEeMBwGCSqGSIb3DQEJARYPc2FtcGxl +QGZvcmQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvDT3uNcL +hpKX33d4rt0YpFCrwgYkjEIFQtrpCA434EVzvanZeK3zbrND91nTBzII5f9C48iE +Bhq0SIvHXYcJwyeewaVKk4o0MbyR7HG5o2i7TjA0TsQFCy65f3fTIIQtnHhx3qYH +mK1Thi7/zfur+S5nZ9C3yS1Lxq6pJZ7GxQC9Pqhs2Hb8lyS26iRBf/m4D4htFk0U +EZwyvhGcHsvMVPZjJzccyjvEy049vHkTNrtAl35BkFKUh2ywCvl4kF+tikvAIS8N +xsAbzPxn8Ng4At5jMmiK1ZhTy4wCQ9SfNPg2FRx3XPN9wYSQkznrdZu1dtTzxHOc +AyXw03RpVv2zXwIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB +CwUAA4IBAQCUKhZcrwd5VUVeDiVnzXdBozEZ2azo/LilcpS0T+ATnkrC4mvCMthR +b3tb4WFrs+0QZhdIxqSeOvHIcm2nfqTTwR9U4qdxpZfXkK2ZpRiQUnpwTqLuOlor +ROa+1Amdpvmnm6MwI3ArYyRT7Np78LI6v/xn+Pkd0HFeVh9+XvdmR0gUNkbn0gzd +BClHoxCobvvg4brqhfsuXFQN72g0q3seTNXDW6wY4hPAdoqCsdKhHn2q4ZqCxfbe +LWWkNQCK53xCMSx5XidsiKRpPlMw1bwcZfSup7PJ7xmhXHpjkR7tLcB7E3xLO64Y +QI7za6W1k8VhwD1Te8cZB40qDpElv/n0 -----END CERTIFICATE----- diff --git a/files/Security/GetSystemTime_certificates/spt_credential_0317_22.pem b/files/Security/GetSystemTime_certificates/spt_credential_0317_22.pem index 1147e22c48..ff0a136c75 100644 --- a/files/Security/GetSystemTime_certificates/spt_credential_0317_22.pem +++ b/files/Security/GetSystemTime_certificates/spt_credential_0317_22.pem @@ -1,95 +1,97 @@ -----BEGIN RSA PRIVATE KEY----- -MIIEpgIBAAKCAQEAymx326Wn7GT4kWX9ft8ZY2LJhA3khWhwDJAkH3A7YnlY9Bea -0R3yoi5W5e97csXk0ykHvgzxLhjnN/Il/BWPnN108O1AdahpnyMXXKQlcnnnrvz4 -Sgavr5vfQcgyAXW2KYlDUbQjq445iBcOFa23YiOccMroTo2T/ps5i7o23zJGqdgW -JV4j5sP+KpKSrPePgcTcX86fI/5epbvS+a9Rhtecqrc4h38A/24rjpUu7EqPP31u -KSZYTR9gbNHJL7R94eLyqJO/DBy+PBWIZdo5hYcirnUb5xz2lQOmheXhelbrtiNY -KOK84+ysX+MG6aDL6A5RjimMBwQVo4+1b+NJjQIDAQABAoIBAQCSCVkbZNLWMC5I -L42H54qYch+yHpe8S5Fy7tawu7aMH8G2MAVoUrPGn6nfrzufnPeuA87rJMknGZ5O -dWtEB4YZhIemfXPgroSs45MqKd4+TYaBb03tkg9ToR+bhMPW28Z1ButDWbPWRABr -lz55E1/W9Jwbn7ejXG7l47TLgqets32eUtC17GcnKtWco4BscVAU+BlPHzlIdTQQ -SJd/qNyqrZ2Spiz+n6EchB6VfyhDWj802Tg33NA+HGORfZ1Ztz2Wx8yE0LDO9brv -z2CIoYGpXrIs10c+SOV4T6CRAtIC4pXrUFouZc96PMKtFnwXoMLDvhU9DdslHbrT -ougW1O0dAoGBAPO9sfkat+QRUOO2KRksqvCLeOp8K2CBlaFpooEHltGxU+xGsCv6 -k69DeQekh9fclZwzWko0pilYjYeFf61P58QU20gBcTZMu1OpXYbjgylce5ZsxXQB -bgrWnCwxEIKGPzcIVPV4HUWexjCzV0feKaWOrUeiQ3KPQ/zjBACq9YnjAoGBANSa -ygkMKNALUsZh2GT5r97CRhW/cddVhuOuF0ZNpBvdRvWXWjNRpNzV8hShoqqIcMt7 -zWRDDDuQ5FUiEmG+6MKVP5GtnAO3fSDBUxWXW9TnyHA6gnNEDP4dI9zvhvsGtwxd -xL1eENzUFbLljFdEAlpUlo4eoE0HlIWIF0D/yfnPAoGBAIrzXG9HNQgWewelhB5u -4XBKAn+ik9Pra9Ld9p8aJXebYN10muAndGPY0jlyKWL8xGmMuO9Ovl8ZtW1JxLSX -teeJgEy3TcQH0E7sYX4RW2eL6oShs5rjaclR+SwUOHZAc+86l7xsYjubPR7sTliR -JSrVgKEytsKrO7YB8Pk0fM/DAoGBAL4GsEhP7vas+EpK0FDIf7J6MIxltkoCrvM3 -+qOi5+jj6fW/VycBdXrRW3OnWS5Vj4PA3z8bUoa3Je8V6holugOZxNzfsM/9pECv -qyRkSfdNSHFPSqPeEkLbJt/l097xDJFoCl48ApRumApzc/HX3saATqUuqJbRDKYh -kq9NMWkvAoGBANrJVA2O6UmvuUQVfR8oXqvDslttfGYmN2aAd/J3w3jt2tOWkhUO -1I1ov6LMaf2dv1+ElomK0hDNCeynschYwcS4PsT9h6fJkxwkQ89/Vt9BmC39tW/0 -KL58MOmMc2T62S816JlCsrLC3CoQjOtrkZDcZTQXfrCDIg8ad9dI2elF +MIIEowIBAAKCAQEA1jmzv1gt+0+Gi+urYMCxbSVi3wG6LkPPZoqI2syDPZCH78CZ +jUu9vYZ3XBB0wPvgkr5d7MQoEZVsbYhJEOB6An7a+kFMujCNMsNFxO8RGlTs5Bsv +ibqxy7vxkRlQ5SnYtG/ZDDK2B7kKkZe7vhFZD+Cnpl9TxD4jhOwVcgD1if2dizuL +mDJHGgl5lut+WINf8Ge6G2fXb85X2KYXHJdd1uIwvc2m0L6/kzcCOhw2kfRedJhU +oh5q2HMxWUP/K6AIP7y78eE6CQqATSCkv1H5E+8X1xAlQcI0HVtBlxSsr+GCHJCP +FbgJV+nzVhjb+giMUzia4kk+NTsHLyFqX+VGHQIDAQABAoIBAGv/NPW+r5elNNAv +I/unyQqcMWb5iPGv78vjBTFArt0HkvA0KXUI/QOh2WSJS0LK+CEiZVlqXkTXDo19 +ilA+ymOdrilBaDvpJBW2SeMJHpcmvzIT3nhRrTZnblXW7GhLG1uDk2lJ22izSXey +hcxBFKQjfoEqR6GELgXhusH5Z8+DJp13OPC+da25oT/3tMziwa/4tw/AFzTovcCW +9CPFoUErlxnal9huCWmBr084PPPN90XIuCmcpPUHXq2UJPeN7EOSkS9dUN70d2ny +1giyoEWUQyVIWMtE2nwCinXEIDXInPoxyU2YRjPlkmINjob9rUxRJpSP5dSAa8lI +Mdl5ZgECgYEA6p4R4fHNKI5x8ZLU7a99iknD/kLkY/W/YNdS9K/xkW9K7xC/t97h +5a6qXFPVcLW3/qouCpqaGkxTEQKz81aDketEtc0FYq2MdZekV2Oj+IjHwFVxns58 +CtorWp1Q9SX88H5LgBBbn15GSkcd9Pq+AxgIdACGTwMszBPQf7j/fp0CgYEA6b/b +53eVbWw5U4QLvgnD5hpZ8gDrmRB6mcwAnaxBloQVPmUc2/IKtR9QCpVNHhVdlVOR +7Dl09+Z2NqlnA50dPQzAM9BN234x5TAYN0tTTp9vVaJ98Ufcxt/EV8Jd1UsT6dvV +MN7untVi3a5RrCDVHUHNQHolWgsKVMmKF1byjYECgYBjXjF6vbvDupj91M+EH7iP +EnEFRnWO9K1qqagD5GTu0PEu0awxhx+r9M9IrWUQCJb2MEOx0AsGql7gLIHkxTaS +Xc/LJBts0M5Vm7VKIfR3tg7MIiQuO4wD2KVWCp0YR0+a2BLIGaWEmRwyJ27DrFM/ +4jTqVLKN0m1tvdKn1cW4bQKBgAKuoOdXB+/pff7nVPspQYYyZzXPrORkvANnw9oL +T/VaLqQ4pMwhSt4pLdHxRKFDvX8pJlN/lUgC7PhTmUsBUoSQ0OPHUB1kpU3r71sz +EhGk4rIo2ykZmf7uMmKPaGQ6KFBWpWuaI0LPUAMbLPS8q7VaO/CxdhxCZCv05BDA +fqgBAoGBAMBQcqXl+8kkoTHHNDlfmCywkS7viU6YpkmO6XW2sXPiAHzs/BWGPlRb +2HNLjjIWeP49o+ec8WxypKIxwlH29xBXAOmcvFDkT1qC3d37+nq+fEH6uHmta8fF +30hc0y54XyocCCd5wwULHa9M0YU/0olkcdGSXm2qa1CZxpd0Ip2H -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- -MIIDqTCCApECCQDFtoVyxnOs4zANBgkqhkiG9w0BAQsFADCBkTELMAkGA1UEBhMC -VVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRyb2l0MRQwEgYDVQQK -DAtGT1JEX1NFUlZFUjEYMBYGA1UECwwPRk9SRF9TRExfU0VSVkVSMQ0wCwYDVQQD -DARGT1JEMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVAZm9yZC5jb20wHhcNMTcwMzE0 -MTIxNTMxWhcNMjIwMzEzMTIxNTMxWjCBmjELMAkGA1UEBhMCUlUxDzANBgNVBAgM -BlJ1c3NpYTEXMBUGA1UEBwwOU3QuIFBldGVyc2J1cmcxDzANBgNVBAoMBkx1eG9m -dDEPMA0GA1UECwwGTW9iaWxlMQ8wDQYDVQQDDAZzZXJ2ZXIxIDAeBgkqhkiG9w0B -CQEWEXNhbXBsZUBsdXhvZnQuY29tMQwwCgYDVQQFEwNTUFQwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQDKbHfbpafsZPiRZf1+3xljYsmEDeSFaHAMkCQf -cDtieVj0F5rRHfKiLlbl73tyxeTTKQe+DPEuGOc38iX8FY+c3XTw7UB1qGmfIxdc -pCVyeeeu/PhKBq+vm99ByDIBdbYpiUNRtCOrjjmIFw4VrbdiI5xwyuhOjZP+mzmL -ujbfMkap2BYlXiPmw/4qkpKs94+BxNxfzp8j/l6lu9L5r1GG15yqtziHfwD/biuO -lS7sSo8/fW4pJlhNH2Bs0ckvtH3h4vKok78MHL48FYhl2jmFhyKudRvnHPaVA6aF -5eF6Vuu2I1go4rzj7Kxf4wbpoMvoDlGOKYwHBBWjj7Vv40mNAgMBAAEwDQYJKoZI -hvcNAQELBQADggEBAJ3LsGChd01u/Zlk0Vg1NmFb13Ootxj38eKnTSdUXToGQVrw -biIWLXPKFPP9ImO6tRXrQlMIMrjy/t4sznDL1+Ep5KA4oyIzy7IAUTpQh3iAwI3S -hMywsKls0vAbk3GOs4HoQNU0GMfKiPA6F8V0nXTcQRuUX+npRAqQCqqFOyTRMLiZ -vCs7otWmGNfJdypraj+LsUbjsv3OzolYLDBfK6SZwlQyzvenlKkWcuBdchrmnXB5 -I8Q59lEmOHpbuSVGgyguD26XmlDPZKc5AKBmfUiFppgNQkNuyNjclWFHpef01BH5 -W+kUP2IbXx5ZI3SiHjfnJvLSiu3SiIXKRrl0NoQ= +MIIDtDCCApwCFFIiiSBBkGJb/ZVOkd0IAT5IhDJTMA0GCSqGSIb3DQEBCwUAMIGR +MQswCQYDVQQGEwJVUzERMA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJv +aXQxFDASBgNVBAoMC0ZPUkRfU0VSVkVSMRgwFgYDVQQLDA9GT1JEX1NETF9TRVJW +RVIxDTALBgNVBAMMBEZPUkQxHjAcBgkqhkiG9w0BCQEWD3NhbXBsZUBmb3JkLmNv +bTAeFw0xNzAzMTQxMDAwMDBaFw0yMjAzMTMxMDAwMDBaMIGaMQswCQYDVQQGEwJS +VTEPMA0GA1UECAwGUnVzc2lhMRcwFQYDVQQHDA5TdC4gUGV0ZXJzYnVyZzEPMA0G +A1UECgwGTHV4b2Z0MQ8wDQYDVQQLDAZNb2JpbGUxDzANBgNVBAMMBnNlcnZlcjEg +MB4GCSqGSIb3DQEJARYRc2FtcGxlQGx1eG9mdC5jb20xDDAKBgNVBAUTA1NQVDCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANY5s79YLftPhovrq2DAsW0l +Yt8Bui5Dz2aKiNrMgz2Qh+/AmY1Lvb2Gd1wQdMD74JK+XezEKBGVbG2ISRDgegJ+ +2vpBTLowjTLDRcTvERpU7OQbL4m6scu78ZEZUOUp2LRv2Qwytge5CpGXu74RWQ/g +p6ZfU8Q+I4TsFXIA9Yn9nYs7i5gyRxoJeZbrfliDX/Bnuhtn12/OV9imFxyXXdbi +ML3NptC+v5M3AjocNpH0XnSYVKIeathzMVlD/yugCD+8u/HhOgkKgE0gpL9R+RPv +F9cQJUHCNB1bQZcUrK/hghyQjxW4CVfp81YY2/oIjFM4muJJPjU7By8hal/lRh0C +AwEAATANBgkqhkiG9w0BAQsFAAOCAQEAKzKGlYJyaNOA9nVXs9N+RcEMQZBNmFRf +KuwJ+rrUGxPs60+M3YjpAZ79QkPohqW1Y/AwSki+cIOnRrv1C+VKSvxjT11sv1ri +o9xQVUkIOBOB3I+HZr3JNR/IsP+rD5eq4iTLaH0fXeP+43UswbyxFDiHbergx+SK +Zf3wWNTW0p9lmevImMATECCsz/z+kzwV9kRU1Vj+jkSCPH02W3xOJb/mm19MEO0q +jvsOdbXtkTfsD1LXoVODajWkMnWF6AkrZlKH8KL3RA1SbrIUxOUBMdV6rpfKR0Pq +6zNhCxoB/jvtUiZgHnan+1I/dQBNzY7qIJ8yyUAtf75NM8hj2S+rxw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIEBzCCAu+gAwIBAgIJAJOyycRs95twMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEXMBUGA1UEBwwOU2lsaWNvbiBW -YWxsZXkxEzARBgNVBAoMCkNBY2VydC5vcmcxDzANBgNVBAsMBkNBY2VydDEUMBIG -A1UEAwwLY2xpZW50X3Jvb3QxIDAeBgkqhkiG9w0BCQEWEXNhbXBsZUBjYWNlcnQu -b3JnMB4XDTE4MDMxNDExMjU0NVoXDTQ1MDczMDExMjU0NVowgZkxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQHDA5TaWxpY29uIFZhbGxl -eTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwGQ0FjZXJ0MRQwEgYDVQQD -DAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2FtcGxlQGNhY2VydC5vcmcw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD2OsoeJefNo6+e06B1ytTS -NZu78/975ACCGgntwGOrDX9rS4GW3kZfxcn5Do7jsiQuMZbQ6lcT5HdTJ/SaEXlX -he78d+Tw9BF70LfwFOPhvnRxxSdcCtUMqYL64ZjmO0JHub0bFBt50dtzajWnzq7O -EKGo4E2qFpo4+DC8lTqtaCpjK9MW3kOwZw7as+RYf57X/HMCRWG9vjABPUJ85Tvp -iBmKVCAgVPsdiQPp1NKgBIBWbekZV0/SeoNnZixc1S/J0q+MSECO1YNwNar89fJv -2XXkslvDfJxz/GjPqtBOGu7LyvcobTctedqdea62lPUf+FnK0WNqfjq0Q/J2ALeN -AgMBAAGjUDBOMB0GA1UdDgQWBBTvvVyK2AKsYwfnbn2zHN6/nnwJWjAfBgNVHSME -GDAWgBTvvVyK2AKsYwfnbn2zHN6/nnwJWjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3 -DQEBCwUAA4IBAQB+shDSEVbiSbN130mZ17al9Tmul94hwZh9sPzeY0CbB5ImII7e -lbWKF5ScALIStrdGSGk+EUKgwfx7zBLj61LQajskyu717Q4IYPp7fn/6kN2eyrxW -GndLdn4AhMBAYNNYcK1r1Ji0lLJqoZF0ouAsEAW1AWPSDlB+St8kqGqhmEn3Race -+EC+noa/gc8Ot+x7VtRkL4z8Oo/nbbGBNqu5Qxm7zdz4lh5jcHEXQOq6EbWSqv+U -evanWYFVceiTqXGf9Aw7exAgTGH+Sr1d01g8r57kUYFetukY+UFRvCYJs8e7ER/O -+RQhR87cysNPZefar2oAj2d/berFh2B1a4TA +MIIEFTCCAv2gAwIBAgIUSrJiR49vCVDBGz1w/6It+e5HPwEwDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMjEwMTA2MTg1MzI2WhcNNDgwNTI0MTg1MzI2WjCB +mTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNp +bGljb24gVmFsbGV5MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNl +cnQxFDASBgNVBAMMC2NsaWVudF9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVA +Y2FjZXJ0Lm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANYrtdcr +7Yu/1IDn5JNBuddq3l21SL7HdBvtnT/ONe8TFWg6IZ8o1CD5o5BogUaS8AGlJMWJ +ejI6fjkn20LTjXRtEPuU3fe9a+4yAR+e47/Py3l7JD9Tdu0vyqAqrBt1xtI4z6hb +u2H9R73AG1R3xsY6QFioLhYFrVFHybfXpzAnuh6S8JzZ1rLIOxu3Mka1rPY7c1S/ +EsI5ZDeYAmF6Yuc/pgZMvDdbz2Knbj6v5QCDGSoEhlAtW9TC9g1++28ULyZOTDXP +H0mEGQqWIgEyTNq377T6ii5gyWJoFsT4fLx0GjSVfB8jdDPJ1UoXM6KWWEZvDxD6 +s402XlVKSalR2BcCAwEAAaNTMFEwHQYDVR0OBBYEFPXm84TEHeRactWQ6sXz0Dyj +eCGNMB8GA1UdIwQYMBaAFPXm84TEHeRactWQ6sXz0DyjeCGNMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAH0t3H8xgRxACj2MFUDEFOPfblf9ggTF +kAziDnAZ29XMA6hj82EMKe4FEX2wUDH1+iv39BUquOQsXOAiW5F4cuXKIDECeNfX +/BrcD1XryQD5DYkaOLhIN0s8OYCp7Vlrv/CoNSmhYBCS5/cbk3L/gDXxnL+iEsv/ +E2fOqOCmI7dVO+h7b3xC1UyDVTiCf22HH1MHt2IHVvhmoP/whH0GHLP1relEUVJU +9C/wrJhqC57VDxwlH9byTelcRTFIQaR0z/hk3aAtF+NFcutv/dJJdgT4W+fIQG/v +Xdd4DkTgVFnhH9WV4dDnVt6v8k1OqOw9K98ppvgecgq0/8d5bu2ycSs= -----END CERTIFICATE----- +93dd8908 -----BEGIN CERTIFICATE----- -MIIDrzCCApcCCQChM2uDQRBkRDANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMC -VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNpbGljb24gVmFsbGV5 -MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNlcnQxFDASBgNVBAMM -C2NsaWVudF9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVAY2FjZXJ0Lm9yZzAe -Fw0xODAzMTQxMTI1NDVaFw0xODA0MDMxMTI1NDVaMIGYMQswCQYDVQQGEwJVUzER -MA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJvaXQxFDASBgNVBAoMC0ZP -UkRfQ0xJRU5UMRgwFgYDVQQLDA9GT1JEX1NETF9DTElFTlQxFDASBgNVBAMMC0ZP -UkRfQ0xJRU5UMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVAZm9yZC5jb20wggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDocPnd6WI6P8ahHu9UI3RxWzbKL3Bj -zbEEoVS1RGGiqJcTT99l9JWxYcnXkT2+K24cKKhgZe+yLhs1NZKDu2FxpBL6Tylq -/GgLIl5q7VUhjwLOGpHAY2v3qt4OmkaSMYTW/OxGoH6COya3YJ476yE0TaKRwtX0 -AB2efjWdydSMQMcXPshzjKWas6s94cr0DWnXbhZG1yFJF1qAQ8AstSo5Dp/Wexl5 -4/Ia1uxwAlMAgzhAn/hv6iQEmSqrIXV+UAkkIDutn+ZnNmAHBp89XtSC28o2wOa0 -RZDaRhbZ0eHsgqFwO7sXp9ere2uKiEDP/fd3smwxQcj3sA3pKy2vQ2BlAgMBAAEw -DQYJKoZIhvcNAQELBQADggEBAKHQgzyuTOPvL58eqG4nh2kQrRsT4yXTyymKJYpV -kEy7VaNAXhM+YpVlxGtcNNb6d56m3Vl6riTgEgVoqnbhse9J6II86uu9lvEgZbgW -D4eBBhdLwY22sIxupJ1vDJ4SaPweois7ph9rUQjvtpWQQaT0lnbw51H/DCCT6lxz -TjeoFED1qjFP8rNaNqhmzjs0b2KFMDB+itD6JBAqITnaoweBnYhxUC4F0xhSDng2 -qm/2yiX3zmkPSIK1MDmDvg7nIIIbfJwW6xNfkbgbfl4q5eCBgAL38REsMT13mEia -U8i7rb5q4FAq6iUUFwZxtPRyUJGvNTvuZH+75Yu6JZb2tDk= +MIID1DCCArygAwIBAgIUccGNGnjsCTNE1XvmHSWy/nouynwwDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMjEwMTA2MTg1MzI2WhcNNDgwNTI0MTg1MzI2WjCB +mDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRy +b2l0MRQwEgYDVQQKDAtGT1JEX0NMSUVOVDEYMBYGA1UECwwPRk9SRF9TRExfQ0xJ +RU5UMRQwEgYDVQQDDAtGT1JEX0NMSUVOVDEeMBwGCSqGSIb3DQEJARYPc2FtcGxl +QGZvcmQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvDT3uNcL +hpKX33d4rt0YpFCrwgYkjEIFQtrpCA434EVzvanZeK3zbrND91nTBzII5f9C48iE +Bhq0SIvHXYcJwyeewaVKk4o0MbyR7HG5o2i7TjA0TsQFCy65f3fTIIQtnHhx3qYH +mK1Thi7/zfur+S5nZ9C3yS1Lxq6pJZ7GxQC9Pqhs2Hb8lyS26iRBf/m4D4htFk0U +EZwyvhGcHsvMVPZjJzccyjvEy049vHkTNrtAl35BkFKUh2ywCvl4kF+tikvAIS8N +xsAbzPxn8Ng4At5jMmiK1ZhTy4wCQ9SfNPg2FRx3XPN9wYSQkznrdZu1dtTzxHOc +AyXw03RpVv2zXwIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB +CwUAA4IBAQCUKhZcrwd5VUVeDiVnzXdBozEZ2azo/LilcpS0T+ATnkrC4mvCMthR +b3tb4WFrs+0QZhdIxqSeOvHIcm2nfqTTwR9U4qdxpZfXkK2ZpRiQUnpwTqLuOlor +ROa+1Amdpvmnm6MwI3ArYyRT7Np78LI6v/xn+Pkd0HFeVh9+XvdmR0gUNkbn0gzd +BClHoxCobvvg4brqhfsuXFQN72g0q3seTNXDW6wY4hPAdoqCsdKhHn2q4ZqCxfbe +LWWkNQCK53xCMSx5XidsiKRpPlMw1bwcZfSup7PJ7xmhXHpjkR7tLcB7E3xLO64Y +QI7za6W1k8VhwD1Te8cZB40qDpElv/n0 -----END CERTIFICATE----- diff --git a/files/Security/GetSystemTime_certificates/spt_credential_0323_28.pem b/files/Security/GetSystemTime_certificates/spt_credential_0323_28.pem index 8d17321818..3dfe847dff 100644 --- a/files/Security/GetSystemTime_certificates/spt_credential_0323_28.pem +++ b/files/Security/GetSystemTime_certificates/spt_credential_0323_28.pem @@ -1,95 +1,97 @@ -----BEGIN RSA PRIVATE KEY----- -MIIEpAIBAAKCAQEA0GwJPHONllxCz4kVX/fQsLqJ29s2lYLJUyPm+CTYzzg0kyvi -C/Z6NaAjU3BL/YfHbxrcOzbNvvxGwS0wOlX/YrcsltSbs9oCzQryJzAgihMpFwAY -NAahPQWAAjimkj/N5KiUjj5xZAS4s9mMoiYKKo7txV2/6yt776OQC0S6g8d+/Zar -f0Ov8z9XX0Eh2JLtRKUmKwkNgcAKrF2/+R0sU23F1GQk0JHPu2htzQiXjg9MzyQL -DZpCRXDsdnjBFlYPge5+9DoGP44aWoBg/AN2QH/Pe0E+Ndx3KIFRNJHbSTdsf4rU -0x4jCBN1i9AKhYTuXH/ZiLkl8IK5QgZ16Q2fRwIDAQABAoIBAQCHct6hwbrvT7A/ -ragNgUDHycLT9efITIHIHVn6Q//+01kfl/JEsf8EILk0fZN1BauvYfZkKR6XEt5s -ppBkKQVaww4gS7WQsYsGdCmhHB7ZfNBEWVRhYzmgLZXeW7Cs9Pg6tPAubRhF1ueu -QiCqNCyBMfgGPwH9tHnL6DExkY3hGzW1bwcZR23QqD8iSStc4gEt4k2IkaWalRQM -P5k1YUisj5Kw9c+D91joret8HE/Kp2NfAkfT4x9PHHP/dVY5ntn8MmEpNFExVQ40 -LWQm6YmnoUqV+ISQYNQacxUX8sP5QqgNGQwiwjCZnZMn7B0OXvM9DSi1y6dkFajy -gmPkMs5ZAoGBAPIMFoI8k2SxgYN7yvcJeDh15EaPb7gn+fZgTTMqaAGE9sNRPzO7 -hfkT99qVaDKA4tGmU84WwoBL4uP/Q8MSAiy25pAQZOAlrl7PCbV4q2LJuqGFMPeZ -L4Tf6Mi7v3/W9SAyfy5kg7M1gcRAchWB9+we8Z9RKUfcl4cqXb1F0NtlAoGBANxv -vPMlCnipKqPRbYOUgpy3sxtGweX3PKXUzaL5kp+mDcFxlYrlde7y8M++lD9uUq2+ -JPQPV7GEJ/KG+6P0FJWB+zNP0sETdYbriMvQAYBHqLSrpqc++qMmzYOH8Hoi9/TS -w5lUeRTdSPoaw2GOtaYv68dcEAHzdHFgrK4LF2M7AoGBAIBOEBBxc+BIh9Le6DQT -fPrQ43TTy/DeoA4N9l5M+Fz10qiuhMYzfU0PXK8ty9IZqCJh/MKeJfRERb1+LrlU -7notagKr7g0zbD8tmIPtt0vii1/bbp2RQjM5Tfg6LcTieYXbvrck6PsyPdt+Hftw -ra8oqAQ/zZYeROSNfKs8Ov5RAoGATU0Jz6Ifp+x6vXPFmazMmLR6pIgNmt02cVjM -u+gVGNMcY8e3DzwkPSUIeXF1f0Dq0W6qesOeluunLo9TU01Woo8wTfAiEf8G6cdS -81YAEMIQUTsYd/HH5srGqudS1yHIHhyC5xQOWdi3rK0R8vYekSag4gpQur5rCQ9D -vsy46N0CgYBkclvpzeigQi0p9zbkDw/IF/DdlXoatS7AIp3w9dzlhSTeXZpG/wiE -DmHEUzqmFApjFPVmmKcXQpOYJIMjknUqPjVysZLd9BwHMQlgJ/hzZ7lvlirU+nOn -9jjhElHIgPWXC6KcG3JvxQCNfAsOhZr4N1QI4Iyj5SQzQ+sUbQoPcg== +MIIEowIBAAKCAQEAxqBlXccknGH1o+QvQ4iHEJ3wC9CdLXk0rptaybS1i+KF35Tj +rdB3cCPWcGt5C4eDm9a+rNiS+2F6J6LKKcHNtRNOUtqVFtQjFYuWZNV22FgbscBv +B/Sk9yAV22L7UMkR8qf10B0zCqSUwA2pqu6tebLXd0QtUDWxAWG0v2y9hjk/70qj +YlgxMCtrRsLMbz1T0kuwaH3/CBkbwnrxQsPVDJOxmGrQDN3NAq8O3cPCS4BD2tnn +lLxwFiCvcEOMbS1whNiD7BlMW5m8VUkjpC+IT5ZQ7KJ9vI90Jqv3utoBYZWGvmKY +s4jjIJ8etbQab89dVKM5J/BbqMC4U97kVdQ5rQIDAQABAoIBAB8soXw8e0SII3Ob +psdksD4ta7WPAnxWn6wf+fnagPv5i6VxyuJG69gP5+IxHAhxNnjJFZgvTbJitDdw +V2aCYnTfGNXsNKYmmXMSO4KL9mEyQvZ9C3AmN5YJ1SRfvq4JQOXi8rO9QXuUJTyX +aF/JojSNmz++1ZXXN3bODP5WZNCh+JE2Z8UQuAsb6cw93VYXrS0sYhmDiSzMDLkX +7/5nbUemd2yZ7kVQII59HoXmaUIz8V6AJ6BEVMG9xehAMWxhCSLT+we2k+xdh0fJ +zFbqBGpq0zp7Fn7gJimPb+T/IeSemHyoYD/gztlgs5slVsGL7TJUyfYxDFYtHQXB +Dk/8JgkCgYEA9vbj5V7ZriMFgEaQA1tk5/NPIH4n949EQ56LsalbimT1o5O6RH+f +9vXNZF0dS2ZShQBJqLStfFpE4CvQPcylG9wthqBb9E/TeWrSAoBET0DnQKPXhEiR +IWZ11pK+0UCg+8Q2AcXojgiOVEG0hwRvSvPCthqzMcc9Pl63y6op26MCgYEAzeTD +5jJFlwQXAyNyzvPDog5vNx3p2RJ17sKa8y8ZdCQ2yrGtvGa0aCDzEAVhcg04Apah +alHMbONEsn78Jor3ysgZTCY3zYtqLxJ1bxKJukQc4RBWrCa5dOeYM9yeoBT/KuCq +zMernRDoskP9iZdpEBURYpK2zdBaur6yBUgZ6m8CgYB99bqSuGfqKy6ZGGRHcgvr +SeuntPCJkWbN3kV9ndV0pr2qaqRsX3OlMAVMFTnlxRB9iYIIK+74J8pNU8toWcI0 +jX4i1hNQbo57tQHcCLPOgFnyXB6F98Ud9fZQNJRigcYZ4x9wlBJirvZ4/vImkxp4 +bg93dfLDhs0zzHeNxwKGZQKBgG59z+tfGx1Z4oeapGgPRPNYz7JCaVZGo+dHpCPR +KNW9AXJxO40ZiMNAu2/jk1HDakVpVKJb11qv9BPeNa7xcNzv2TOWZuf1YzxzqXW7 ++xFssBrPy9OCzI/CIVnjkXTTD8SQ4NgYZy5Y/qd7+Tm3eXhZ9gRyO4vjvmztHVfc +Q5wdAoGBAKz/+iOwQkZYobKUoc+fZfvnjbOmM3YRM4+246ZEZ4aQcZzPXRDTVMH9 +rqoPttQU/4tZQXbA5JJS25JuZ805p1LrlDf/fHhcJIgJGWAystwpaBF2KtD1JFUd +9JbdhJGdJTsi9ejcG4c8lmvN1SFty8UdxiA8wVbI6HB/HbADxCVX -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- -MIIDqTCCApECCQDFtoVyxnOs5TANBgkqhkiG9w0BAQsFADCBkTELMAkGA1UEBhMC -VVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRyb2l0MRQwEgYDVQQK -DAtGT1JEX1NFUlZFUjEYMBYGA1UECwwPRk9SRF9TRExfU0VSVkVSMQ0wCwYDVQQD -DARGT1JEMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVAZm9yZC5jb20wHhcNMjMwMzEz -MTIxNzQwWhcNMjgwMzExMTIxNzQwWjCBmjELMAkGA1UEBhMCUlUxDzANBgNVBAgM -BlJ1c3NpYTEXMBUGA1UEBwwOU3QuIFBldGVyc2J1cmcxDzANBgNVBAoMBkx1eG9m -dDEPMA0GA1UECwwGTW9iaWxlMQ8wDQYDVQQDDAZzZXJ2ZXIxIDAeBgkqhkiG9w0B -CQEWEXNhbXBsZUBsdXhvZnQuY29tMQwwCgYDVQQFEwNTUFQwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQDQbAk8c42WXELPiRVf99Cwuonb2zaVgslTI+b4 -JNjPODSTK+IL9no1oCNTcEv9h8dvGtw7Ns2+/EbBLTA6Vf9ityyW1Juz2gLNCvIn -MCCKEykXABg0BqE9BYACOKaSP83kqJSOPnFkBLiz2YyiJgoqju3FXb/rK3vvo5AL -RLqDx379lqt/Q6/zP1dfQSHYku1EpSYrCQ2BwAqsXb/5HSxTbcXUZCTQkc+7aG3N -CJeOD0zPJAsNmkJFcOx2eMEWVg+B7n70OgY/jhpagGD8A3ZAf897QT413HcogVE0 -kdtJN2x/itTTHiMIE3WL0AqFhO5cf9mIuSXwgrlCBnXpDZ9HAgMBAAEwDQYJKoZI -hvcNAQELBQADggEBAJXFKBrVm9Ag34tW+vWinOioE5ZynuqrCgTl76z30eQJarP4 -c81rQYpSatbF0XtEv2yunWtwAvz9c2m0bxNb9Tnh1Orh6pZRB37EC1Vhg9tBoZH3 -xXmZpsj8cvfZJLmhH2f7ULmnci/nt88ZHk5Cylj57Mm3p6sLRR6IepGDRoR1sTi/ -u8On0Ix0VzfvJZ8lcuXfLRlP5WesOHLORhSRgUxshLlhUA6RuItxxEEsvpnIXjWX -R9V0WRmXuAySYTRzaJ+LqsSA8kl0aI5QZGxauGsOm4lpoxY/NucfDUwK7A+H91f5 -LjTcFC281tomoA9Ti/ShCC2UekwBdM1i1loDbjo= +MIIDtDCCApwCFFchB7uWwtuF43gwAWSq9CFqhtsGMA0GCSqGSIb3DQEBCwUAMIGR +MQswCQYDVQQGEwJVUzERMA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJv +aXQxFDASBgNVBAoMC0ZPUkRfU0VSVkVSMRgwFgYDVQQLDA9GT1JEX1NETF9TRVJW +RVIxDTALBgNVBAMMBEZPUkQxHjAcBgkqhkiG9w0BCQEWD3NhbXBsZUBmb3JkLmNv +bTAeFw0yMzAzMTMxMDAwMDBaFw0yODAzMTExMDAwMDBaMIGaMQswCQYDVQQGEwJS +VTEPMA0GA1UECAwGUnVzc2lhMRcwFQYDVQQHDA5TdC4gUGV0ZXJzYnVyZzEPMA0G +A1UECgwGTHV4b2Z0MQ8wDQYDVQQLDAZNb2JpbGUxDzANBgNVBAMMBnNlcnZlcjEg +MB4GCSqGSIb3DQEJARYRc2FtcGxlQGx1eG9mdC5jb20xDDAKBgNVBAUTA1NQVDCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMagZV3HJJxh9aPkL0OIhxCd +8AvQnS15NK6bWsm0tYvihd+U463Qd3Aj1nBreQuHg5vWvqzYkvtheieiyinBzbUT +TlLalRbUIxWLlmTVdthYG7HAbwf0pPcgFdti+1DJEfKn9dAdMwqklMANqarurXmy +13dELVA1sQFhtL9svYY5P+9Ko2JYMTAra0bCzG89U9JLsGh9/wgZG8J68ULD1QyT +sZhq0AzdzQKvDt3DwkuAQ9rZ55S8cBYgr3BDjG0tcITYg+wZTFuZvFVJI6QviE+W +UOyifbyPdCar97raAWGVhr5imLOI4yCfHrW0Gm/PXVSjOSfwW6jAuFPe5FXUOa0C +AwEAATANBgkqhkiG9w0BAQsFAAOCAQEAsaKrJNyyzXmN/LJcJI/tbhnHfCXDI0MX +jdeX8eEE0y0iANmKp+Cekt/lKIekFlKvSXl/NQa+yL79yYnInKBoPSp1iwJlNJZu +WG9uJ3Ay/Imf20iLT9iVan1VWWI4BVTmzPRs7J0ad5FmnP8qykHifEZ++T069xrO +ohvPZgAFfxgR72rh8SckJln62NlqE/5KZLaxvMQlD1BUzyS1RGqySMUHmFQ71+Jf +KW5wyG2tz1Fejlfb+OQx+sNiERXnky694G44dKhboOloDId3LHM4SyMhTz7inacL +g0mStzkAdX1owANECBC9pvZvhuE/WjmGRlGvFqW/I9mnvsJWAPJVcQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIEBzCCAu+gAwIBAgIJAJOyycRs95twMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEXMBUGA1UEBwwOU2lsaWNvbiBW -YWxsZXkxEzARBgNVBAoMCkNBY2VydC5vcmcxDzANBgNVBAsMBkNBY2VydDEUMBIG -A1UEAwwLY2xpZW50X3Jvb3QxIDAeBgkqhkiG9w0BCQEWEXNhbXBsZUBjYWNlcnQu -b3JnMB4XDTE4MDMxNDExMjU0NVoXDTQ1MDczMDExMjU0NVowgZkxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQHDA5TaWxpY29uIFZhbGxl -eTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwGQ0FjZXJ0MRQwEgYDVQQD -DAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2FtcGxlQGNhY2VydC5vcmcw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD2OsoeJefNo6+e06B1ytTS -NZu78/975ACCGgntwGOrDX9rS4GW3kZfxcn5Do7jsiQuMZbQ6lcT5HdTJ/SaEXlX -he78d+Tw9BF70LfwFOPhvnRxxSdcCtUMqYL64ZjmO0JHub0bFBt50dtzajWnzq7O -EKGo4E2qFpo4+DC8lTqtaCpjK9MW3kOwZw7as+RYf57X/HMCRWG9vjABPUJ85Tvp -iBmKVCAgVPsdiQPp1NKgBIBWbekZV0/SeoNnZixc1S/J0q+MSECO1YNwNar89fJv -2XXkslvDfJxz/GjPqtBOGu7LyvcobTctedqdea62lPUf+FnK0WNqfjq0Q/J2ALeN -AgMBAAGjUDBOMB0GA1UdDgQWBBTvvVyK2AKsYwfnbn2zHN6/nnwJWjAfBgNVHSME -GDAWgBTvvVyK2AKsYwfnbn2zHN6/nnwJWjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3 -DQEBCwUAA4IBAQB+shDSEVbiSbN130mZ17al9Tmul94hwZh9sPzeY0CbB5ImII7e -lbWKF5ScALIStrdGSGk+EUKgwfx7zBLj61LQajskyu717Q4IYPp7fn/6kN2eyrxW -GndLdn4AhMBAYNNYcK1r1Ji0lLJqoZF0ouAsEAW1AWPSDlB+St8kqGqhmEn3Race -+EC+noa/gc8Ot+x7VtRkL4z8Oo/nbbGBNqu5Qxm7zdz4lh5jcHEXQOq6EbWSqv+U -evanWYFVceiTqXGf9Aw7exAgTGH+Sr1d01g8r57kUYFetukY+UFRvCYJs8e7ER/O -+RQhR87cysNPZefar2oAj2d/berFh2B1a4TA +MIIEFTCCAv2gAwIBAgIUSrJiR49vCVDBGz1w/6It+e5HPwEwDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMjEwMTA2MTg1MzI2WhcNNDgwNTI0MTg1MzI2WjCB +mTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNp +bGljb24gVmFsbGV5MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNl +cnQxFDASBgNVBAMMC2NsaWVudF9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVA +Y2FjZXJ0Lm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANYrtdcr +7Yu/1IDn5JNBuddq3l21SL7HdBvtnT/ONe8TFWg6IZ8o1CD5o5BogUaS8AGlJMWJ +ejI6fjkn20LTjXRtEPuU3fe9a+4yAR+e47/Py3l7JD9Tdu0vyqAqrBt1xtI4z6hb +u2H9R73AG1R3xsY6QFioLhYFrVFHybfXpzAnuh6S8JzZ1rLIOxu3Mka1rPY7c1S/ +EsI5ZDeYAmF6Yuc/pgZMvDdbz2Knbj6v5QCDGSoEhlAtW9TC9g1++28ULyZOTDXP +H0mEGQqWIgEyTNq377T6ii5gyWJoFsT4fLx0GjSVfB8jdDPJ1UoXM6KWWEZvDxD6 +s402XlVKSalR2BcCAwEAAaNTMFEwHQYDVR0OBBYEFPXm84TEHeRactWQ6sXz0Dyj +eCGNMB8GA1UdIwQYMBaAFPXm84TEHeRactWQ6sXz0DyjeCGNMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAH0t3H8xgRxACj2MFUDEFOPfblf9ggTF +kAziDnAZ29XMA6hj82EMKe4FEX2wUDH1+iv39BUquOQsXOAiW5F4cuXKIDECeNfX +/BrcD1XryQD5DYkaOLhIN0s8OYCp7Vlrv/CoNSmhYBCS5/cbk3L/gDXxnL+iEsv/ +E2fOqOCmI7dVO+h7b3xC1UyDVTiCf22HH1MHt2IHVvhmoP/whH0GHLP1relEUVJU +9C/wrJhqC57VDxwlH9byTelcRTFIQaR0z/hk3aAtF+NFcutv/dJJdgT4W+fIQG/v +Xdd4DkTgVFnhH9WV4dDnVt6v8k1OqOw9K98ppvgecgq0/8d5bu2ycSs= -----END CERTIFICATE----- +93dd8908 -----BEGIN CERTIFICATE----- -MIIDrzCCApcCCQChM2uDQRBkRDANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMC -VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNpbGljb24gVmFsbGV5 -MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNlcnQxFDASBgNVBAMM -C2NsaWVudF9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVAY2FjZXJ0Lm9yZzAe -Fw0xODAzMTQxMTI1NDVaFw0xODA0MDMxMTI1NDVaMIGYMQswCQYDVQQGEwJVUzER -MA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJvaXQxFDASBgNVBAoMC0ZP -UkRfQ0xJRU5UMRgwFgYDVQQLDA9GT1JEX1NETF9DTElFTlQxFDASBgNVBAMMC0ZP -UkRfQ0xJRU5UMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVAZm9yZC5jb20wggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDocPnd6WI6P8ahHu9UI3RxWzbKL3Bj -zbEEoVS1RGGiqJcTT99l9JWxYcnXkT2+K24cKKhgZe+yLhs1NZKDu2FxpBL6Tylq -/GgLIl5q7VUhjwLOGpHAY2v3qt4OmkaSMYTW/OxGoH6COya3YJ476yE0TaKRwtX0 -AB2efjWdydSMQMcXPshzjKWas6s94cr0DWnXbhZG1yFJF1qAQ8AstSo5Dp/Wexl5 -4/Ia1uxwAlMAgzhAn/hv6iQEmSqrIXV+UAkkIDutn+ZnNmAHBp89XtSC28o2wOa0 -RZDaRhbZ0eHsgqFwO7sXp9ere2uKiEDP/fd3smwxQcj3sA3pKy2vQ2BlAgMBAAEw -DQYJKoZIhvcNAQELBQADggEBAKHQgzyuTOPvL58eqG4nh2kQrRsT4yXTyymKJYpV -kEy7VaNAXhM+YpVlxGtcNNb6d56m3Vl6riTgEgVoqnbhse9J6II86uu9lvEgZbgW -D4eBBhdLwY22sIxupJ1vDJ4SaPweois7ph9rUQjvtpWQQaT0lnbw51H/DCCT6lxz -TjeoFED1qjFP8rNaNqhmzjs0b2KFMDB+itD6JBAqITnaoweBnYhxUC4F0xhSDng2 -qm/2yiX3zmkPSIK1MDmDvg7nIIIbfJwW6xNfkbgbfl4q5eCBgAL38REsMT13mEia -U8i7rb5q4FAq6iUUFwZxtPRyUJGvNTvuZH+75Yu6JZb2tDk= +MIID1DCCArygAwIBAgIUccGNGnjsCTNE1XvmHSWy/nouynwwDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMjEwMTA2MTg1MzI2WhcNNDgwNTI0MTg1MzI2WjCB +mDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRy +b2l0MRQwEgYDVQQKDAtGT1JEX0NMSUVOVDEYMBYGA1UECwwPRk9SRF9TRExfQ0xJ +RU5UMRQwEgYDVQQDDAtGT1JEX0NMSUVOVDEeMBwGCSqGSIb3DQEJARYPc2FtcGxl +QGZvcmQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvDT3uNcL +hpKX33d4rt0YpFCrwgYkjEIFQtrpCA434EVzvanZeK3zbrND91nTBzII5f9C48iE +Bhq0SIvHXYcJwyeewaVKk4o0MbyR7HG5o2i7TjA0TsQFCy65f3fTIIQtnHhx3qYH +mK1Thi7/zfur+S5nZ9C3yS1Lxq6pJZ7GxQC9Pqhs2Hb8lyS26iRBf/m4D4htFk0U +EZwyvhGcHsvMVPZjJzccyjvEy049vHkTNrtAl35BkFKUh2ywCvl4kF+tikvAIS8N +xsAbzPxn8Ng4At5jMmiK1ZhTy4wCQ9SfNPg2FRx3XPN9wYSQkznrdZu1dtTzxHOc +AyXw03RpVv2zXwIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB +CwUAA4IBAQCUKhZcrwd5VUVeDiVnzXdBozEZ2azo/LilcpS0T+ATnkrC4mvCMthR +b3tb4WFrs+0QZhdIxqSeOvHIcm2nfqTTwR9U4qdxpZfXkK2ZpRiQUnpwTqLuOlor +ROa+1Amdpvmnm6MwI3ArYyRT7Np78LI6v/xn+Pkd0HFeVh9+XvdmR0gUNkbn0gzd +BClHoxCobvvg4brqhfsuXFQN72g0q3seTNXDW6wY4hPAdoqCsdKhHn2q4ZqCxfbe +LWWkNQCK53xCMSx5XidsiKRpPlMw1bwcZfSup7PJ7xmhXHpjkR7tLcB7E3xLO64Y +QI7za6W1k8VhwD1Te8cZB40qDpElv/n0 -----END CERTIFICATE----- diff --git a/files/Security/client_credential.pem b/files/Security/client_credential.pem index 15a412e771..060420e4cc 100644 --- a/files/Security/client_credential.pem +++ b/files/Security/client_credential.pem @@ -1,95 +1,99 @@ -----BEGIN RSA PRIVATE KEY----- -MIIEpAIBAAKCAQEAzSlooyWX+aztQzQ5b4nKsO6mDNx+2h7PRHASdw4FKsUpXwHl -Bz28OOXExDb6ecDnsoiLuh/JCs6Rnk7Zna+PKmFytUkxXWd+QRH3nnaJplQ/jPBg -u5ypx+wUA/q+kkSEnUjTeMDeiGkbAAFyyEBvruZ54V6QiSdEmjtvHQeYbsmi9QcF -KFCuX11oG4M3VgI7N+s8XXwaEcsOJPAeicJdb+uupaj7jGxDPwK8BNdO/zvSYDFe -arFXbIdCicCZdmYAjxXk/8CcCKs28CzpwWy9EUMe60hukuOakwDaNRxEFTAl1IMT -n7LFuBYgTx8oFdldNJl7fdL54qB5z18b/HT/zQIDAQABAoIBACzY3my7bQtBB+Rm -6B8/qbUfleC92mTn0zsMnJy1zd9Zlf+UtHHuxtRRNcAGnJ480ukt/A1FoXbhTOek -KOHVXKBRCPgj9cyLMQgcW1qiYtifFf1DFoIsbtiq/H0aNMpYe/y9zKxazMpY33QS -3Pp1S3SaIQ5o04OHt/FXCKT54hJlUOWKtf7opUCDCdPSOq1E3DNfrlVDvii614Af -khpulzcImWzopabnMZQR2geK//UZbWQ07kla60zIJHqeCpch4jZFeQRcmXRz+Tbu -gJyIImin9MmVgbreHRX/e52KypkLY2STVPgSJ2MXLx048Bmzv81V+zfRj10Fu2Vh -6oda4ikCgYEA9xUa7+vSaEKn6TpCycfFb/5bL3UJnbQbGzQKsnQajPgHQUyWuulb -zXlKV6bMmlizEmhKUPuDwLIzBRKmOz7Budpaee1XML4gkkBGMqTk0cOw2z34R1y5 -5qGj96ZUCwATIFtkEmYpKOq9+jTdzVhe+eJDUI/DfnRlXlLsTZMpp/sCgYEA1JD7 -NXrYw0AMw8UNa1AhiMgOm7R7JR47eIRWSFhnayeEo0mGAHUWq4mLrjcjn/SrzSB/ -HTCvNAV/pAXxfxy4uxHyE4OIg/fZ6zhbzhvo+FVtbVtt5oRTzfV/mDzTKBv5vSxg -RdGoyWsNIOnBmU7eLkPm3apSHVrE6QnGC2U7BNcCgYEAyxTTwSMJG5y9uhqizoqe -IwDjHcyKjM5+AQvzRt3a/MbX37n9ob8wL2Bj1EtKnAoPlS+W9Zzkm7tb5+1+J+/a -9tEb0F9dbLi4uLyPdgzF7gt0D5+Ns8npGkD9Lg3NwgTbs5qqU90YM4NNhptxOthJ -qAVq4opnWkZ9EtwBUXmFoYUCgYEA0AkEkpakRpMM6xyTwY8vArso8OJ2EyG/eneq -Kiu7K3gFq/ltGE1/3mpDNkHor8e5zIwdW+gl0HgBL/pRG+J0OUGa9dYpaV7M/BSw -ZMuT+ldBPWHZ8V1Y152JPulojzyx8p7Xqf1Df70xoCCmxPAXKphx/kePDgOj658R -IF32oQkCgYB8+/niFCC/CcWyeV3z53AYM3MpVrx6vg9/bPIqG8t/4wg3SXVs0V3s -MRfHWcuiZlEX6h1whBnfyx88MPzoOCuKIIQVx1Wqi7UP9bqtCJmWgMnqP9TP74A4 -RHbH8ayfhuBdUyWoeZGdu/DiiYbClDJ+NQ1FSqQOlrdYYM5Gs/oAlA== +MIIEpAIBAAKCAQEA0Sl1Ut/JVcQ+f7maaIoDzVOR7Ko2VJqTtwFuiYnOxE6dBUey +r2tro71F3CUrUjnrAGGSXQyY14+AbJRu+a4kPsmE5pz0N6s0DqmCr7dp5nA19RcV +7nxzxerMTH7AdZ/W1OO5JWAkbjyCJ84EKl5IWY0f2AdoXZ7k33mAho5n8zJif/i3 +ku4DoPNk3r+L2t+KU6Kql9cbG0XbyqWSTdz2Fg/EwGG1GbdGhl8H40J1PvOlRCXg +jCFcn8N/h7WqkBbidlcm3SFVFSwybmMiB0/jbMvpV8S/wcPcNfHJUMFXD5Q73wnj +b6ivX+g8WucoBLT862oMFfSb3AgcrzLFZWzvsQIDAQABAoIBAHeKilNjM16hWlcF +bQpyVtny+WOZpJOWBPaDCvnwmQv5IiTyZV18t3hNpK+9TpUgJP+CxHQJzxDkIzHr +Y8GvlWeNJTfoXGu0nXwDxX1IBm59k1kQaKh02HY1S64sgzK2t8HUpOyHlkqqqni1 +dgwA9ri3v4toMG3Rcl2Gw74jhaWoDbr3Biya+/KdGyBW7MECfXjn5VBKy+mtHKy+ +A4zhT0ClZsBO2se1AmqwPHnlAjj2Ir0OOS5Be8+j+fxdeHng8Y5Pvpvb/OacJCev +5g4mf4CuFDhRPXR+fEcHqDSbpMQSaW8HxjLGzBzZbsqQfA1f6hgKa5Er4TeihJbU +9LdU3EECgYEA6uafBZt5onjq8gNA9zJt2cyV3+76yYzhfrbT7mpWJlHG1vCV82iZ +p+nVtyjQ2JpX2LjTyxb5tOKmAYxdYer+UIq6e4ZxmIN+zfUEtYHu9sLXqoQOwMwr +HUdE6qfX94oGKFizcSacmOZHGTGXEdfPcOPaEE6vfcWgqdbI+iyLoGMCgYEA4/L9 +LE9eOzoDwwg05TLIhx0MXcuifuhwWWa/DD+R/gKx2/KkUCL0ptCuOnXCO6i0+uOQ +Q6Em7ifY3FpSyG4+qB/f8ZMWXG2jQhxHsYmOwp9c+VfGQBiCNqNpgye8sTY5O93s +Oh03ZmOAeFJTbnCBb6b4nI9ys8U8t3TVwfPPydsCgYEAp1dkMjpwjK5XsdFflrr2 +RxLYMo+tWahjfEIC+PYIKYRYgwchzCXYUSbkeXc6URSjQGFrgGL9wT81xCSa4gbm +5bnu39EHW/9Rdqf2ktfdxS1JNtCdMfxBOrpq/kBUOqS5fkSykQlQxhxGykvps2xq ++6FW2Ac2PgNsUZIR2yeg0MECgYEAioA9rAqdascZOgtmeEye4tmXhfYQyaNZgDiZ +pEuL3RauEsIfbEGQ/TqWYhbi6XTcYgSaxzzHdrTnYxvOaNHzaBvV6eZBE+/Z3nVo +akr2XvKNf0MBxjgeBizME1C1qccUh3eT7MuLub6DdJgw8U2Sl9CQBjBytSAGgEGR +D8OgYTkCgYBXi068JkDCXeCCnYnwuXdnaagF2eavDMDfWWDInpP1phwB3eL/88zX +p8LQczJtx2V9zGLHbWQwcBvGEK3gQf8BnDyuOEJYxen4qG6JB7iIQw/nLlsEPEGb +8F1mg5rEV6S+c2yVnw5rseUgeFf+BRh1swrUmyoMjifQs1xco2lpvw== -----END RSA PRIVATE KEY----- +073ab6d7 -----BEGIN CERTIFICATE----- -MIIDpDCCAowCCQC9EWTtPOW2+DANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMC -VVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRyb2l0MRQwEgYDVQQK -DAtGT1JEX0NMSUVOVDEYMBYGA1UECwwPRk9SRF9TRExfQ0xJRU5UMRQwEgYDVQQD -DAtGT1JEX0NMSUVOVDEeMBwGCSqGSIb3DQEJARYPc2FtcGxlQGZvcmQuY29tMB4X -DTE3MTIwMTEzNDYzN1oXDTQ1MDQxODEzNDYzN1owgY4xCzAJBgNVBAYTAlJVMQ8w -DQYDVQQIDAZSdXNzaWExFzAVBgNVBAcMDlN0LiBQZXRlcnNidXJnMQ8wDQYDVQQK -DAZMdXhvZnQxETAPBgNVBAsMCEhlYWRVbml0MQ8wDQYDVQQDDAZjbGllbnQxIDAe -BgkqhkiG9w0BCQEWEXNhbXBsZUBsdXhvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAzSlooyWX+aztQzQ5b4nKsO6mDNx+2h7PRHASdw4FKsUp -XwHlBz28OOXExDb6ecDnsoiLuh/JCs6Rnk7Zna+PKmFytUkxXWd+QRH3nnaJplQ/ -jPBgu5ypx+wUA/q+kkSEnUjTeMDeiGkbAAFyyEBvruZ54V6QiSdEmjtvHQeYbsmi -9QcFKFCuX11oG4M3VgI7N+s8XXwaEcsOJPAeicJdb+uupaj7jGxDPwK8BNdO/zvS -YDFearFXbIdCicCZdmYAjxXk/8CcCKs28CzpwWy9EUMe60hukuOakwDaNRxEFTAl -1IMTn7LFuBYgTx8oFdldNJl7fdL54qB5z18b/HT/zQIDAQABMA0GCSqGSIb3DQEB -CwUAA4IBAQB/Cs6Fm7b9oOkwq+n67oFDmnNx67E3RTrk6p32RXNWyMEHlAXB0DSA -zoapa8fv6siRKlJyU9//WPfuKp5qdfIBCIF21IX9RR2JhHZorcErVqRuXphYHXat -ZT4ZnVhxkkUZ2DWc7gGfPmY7QE6n+gLifmu10KLttz/E4kvEzY3vuHXVfua7llMG -rT57HLKqt532wOw6uy6+8zHerj26qkLsXSAcaP0MqvvN4xItRRlTl4fCyKro7qPx -3eRw2ZqGslPYMFC51BwrC9feJTqq/mZBRWah3j7B6jxyIaGLvtenU4i0PvfMVdYZ -h0sF/C0pOyrFh3pBFAnaIIvPfid4vO4n +MIIDvTCCAqUCFHMEvRyXosp9ORK9aqUChCV0CQeIMA0GCSqGSIb3DQEBCwUAMIGY +MQswCQYDVQQGEwJVUzERMA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJv +aXQxFDASBgNVBAoMC0ZPUkRfQ0xJRU5UMRgwFgYDVQQLDA9GT1JEX1NETF9DTElF +TlQxFDASBgNVBAMMC0ZPUkRfQ0xJRU5UMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVA +Zm9yZC5jb20wHhcNMTcxMjAxMTM0NjM4WhcNNDUwNDE4MTM0NjM4WjCBnDELMAkG +A1UEBhMCUlUxDzANBgNVBAgMBlJ1c3NpYTEXMBUGA1UEBwwOU3QuIFBldGVyc2J1 +cmcxDzANBgNVBAoMBkx1eG9mdDERMA8GA1UECwwISGVhZFVuaXQxDzANBgNVBAMM +BmNsaWVudDEgMB4GCSqGSIb3DQEJARYRc2FtcGxlQGx1eG9mdC5jb20xDDAKBgNV +BAUTA1NQVDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANEpdVLfyVXE +Pn+5mmiKA81TkeyqNlSak7cBbomJzsROnQVHsq9ra6O9RdwlK1I56wBhkl0MmNeP +gGyUbvmuJD7JhOac9DerNA6pgq+3aeZwNfUXFe58c8XqzEx+wHWf1tTjuSVgJG48 +gifOBCpeSFmNH9gHaF2e5N95gIaOZ/MyYn/4t5LuA6DzZN6/i9rfilOiqpfXGxtF +28qlkk3c9hYPxMBhtRm3RoZfB+NCdT7zpUQl4IwhXJ/Df4e1qpAW4nZXJt0hVRUs +Mm5jIgdP42zL6VfEv8HD3DXxyVDBVw+UO98J42+or1/oPFrnKAS0/OtqDBX0m9wI +HK8yxWVs77ECAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAEVtJi1z1MyDfMMboZJdm +yI45ByV9jZToHAbXMnYb/NuvnQljcl9O2F4k5sRCZBvNa+I89ZhsEw1C51TgXLGN +mnjlRhmEWxDRoa7kESVEoX7V/IX/BZXumcwhiP3ImAGM/483EMt9b3j/0tMm6kmw +FcadYq9sCcfwBWJwou9Y7UqVrBYajRZyCFw5mqN13eFy1pR8zkVc4/p5aNpjH3fN +1oNcWSHZgnjqVkyb4kz97KRMQVXAzAURk4YcAxnPZR4Qoc11sGrIYN7/NaMEX8Z4 +ky4tdSZyaLkU+nQ+bIenn/KYKWoS/SdQt7tTtE+x/DJGO4/O5fOIIrmAi7+D7O8H +BA== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIEBzCCAu+gAwIBAgIJAJXvnO5OARyGMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEXMBUGA1UEBwwOU2lsaWNvbiBW -YWxsZXkxEzARBgNVBAoMCkNBY2VydC5vcmcxDzANBgNVBAsMBkNBY2VydDEUMBIG -A1UEAwwLc2VydmVyX3Jvb3QxIDAeBgkqhkiG9w0BCQEWEXNhbXBsZUBjYWNlcnQu -b3JnMB4XDTE3MTIwMTEzNDYzNloXDTQ1MDQxODEzNDYzNlowgZkxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQHDA5TaWxpY29uIFZhbGxl -eTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwGQ0FjZXJ0MRQwEgYDVQQD -DAtzZXJ2ZXJfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2FtcGxlQGNhY2VydC5vcmcw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD1SEpoj3z/1oa8HLfzxWvN -OVmePADdfnt6hvwsZ2R9d3q4iCh3aWIlsxOVHMN3fy+fBMGgefAg+nxVRZ5NHm0x -mBFHUzkZJtFGFhHX0Eav1+JSu32nYIr9l9sIamZNtDn/slq907DBwdOENDaAwZIj -rz4odiUZWoy3LN4gCU+UoYcVePEXFOcNABBHyL4c0sNR4romnsVGWXl9MOAig6/V -JfF+qQudOUBmXy6cK1UdbyThWfToSIMQVEcLh+Y8rdkO0tpM0pWmJWN0OTVtlaGu -z/SZoYRVZfcN+gSftmKfmfvLWifSyk3n1urmPs8sdwQSGV/yAboG9UAtJk8GwKgr -AgMBAAGjUDBOMB0GA1UdDgQWBBRPQGATCkVua5+jQfGdso3jdv9xYjAfBgNVHSME -GDAWgBRPQGATCkVua5+jQfGdso3jdv9xYjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3 -DQEBCwUAA4IBAQDSmMrlHWoZbvqD0fKi1Dw4bLzdMO256Vl1R2vlynAVph/OjNGu -8I37K3NRP6FavVYqOGWgOdJgGJe2QPqmD2FhiYNV1L+n0I4VZ1HJD6NQ77GZ6IAT -A8Kgb42OTORLxPQuDj+epLWt4g3Lf1ooE+2lJnacxKzcgrUEAtD2YxxWtwW6ls/s -xWsn3xipbdketfEyRiMnY+GWYqBnzlVCfIewRosFQaaU6ZwLq1Jn8REufEyClcgC -+ZvvQpc0ERHOK2cHgyuqMz59vj+nBr5eCDZlvpC22YHbautVYbfnUq0A5d1bty2e -SfYV0HVq/fUtb7NMXxFsSVsxC3EavugXSAAq +MIIEFTCCAv2gAwIBAgIUS/AhhpEnbdCGl2o3aCkRXidj0rYwDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtzZXJ2ZXJfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMTcxMjAxMTM0NjM3WhcNNDUwNDE4MTM0NjM3WjCB +mTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNp +bGljb24gVmFsbGV5MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNl +cnQxFDASBgNVBAMMC3NlcnZlcl9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVA +Y2FjZXJ0Lm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKko4oBj +lHWOzeoJMEDjRvN7uc9+8o08EKd2lRB5SH5IE+QBrSuFPzOetS0KHiVagIc13i1J +oYpu6huSyQ1V8dDChKyGqIzR3BTN/uDnPGAhUGqvB9l7hyXVdBF+RMIpAmwy4Map +rOgREl4JouMD6a0YDwtweJla8Q+4j1Kmc421wH5k0hYDs0fQWh8iUVjIn4uUGhEK +k5Ggfwh/56Bdre7Ibcb7+9Kavo0HmnXGdTdpwrxmkUMBBvT0t59lYC3z08evUUIz +5fhPdLIUWNE3+vsKgGRuMzqjoQYaglUCd14EkNsfJl4xQwW8AQxP+Dp4tpBEEwfQ +JQdF1rHESNEZIRECAwEAAaNTMFEwHQYDVR0OBBYEFEiXOF41whE5NQnF/72xLsU+ +jlVeMB8GA1UdIwQYMBaAFEiXOF41whE5NQnF/72xLsU+jlVeMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAJveCscJ3fac3fPJMQlNXJPKmCnSYZcz +6/SO07oaKwAtoiJQdJJGoqM+lXoAlI98ZLJMar2TnnrOX0W0dC/9AT4qRWK7Qlks +7XYf5eTor4pLpbV9Jd4X342qhcf4I+IVWGekItO6xse+nGEhY432cnEacp5Uvsyd +tXr4XXvLh2m7VSptD54mAuZDpNyAhp5LZAyR9BN1B0EnGYhvbgKrzkHqpwaehZhi +jDwv6HyM6HiJyLuzaXSotUqzC4x4+yJn0M1ZtujojWBkPbZ/tPKYWohuB1JO9FU4 +o8bSFjMbGksA3788ej1XyJndPOS9BBG8CZVCqZOfdcl+OBWonr1ySxY= -----END CERTIFICATE----- +46b421d9 -----BEGIN CERTIFICATE----- -MIIDqDCCApACCQC6Uyd8LJ8KoTANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMC -VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNpbGljb24gVmFsbGV5 -MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNlcnQxFDASBgNVBAMM -C3NlcnZlcl9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVAY2FjZXJ0Lm9yZzAe -Fw0xNzEyMDExMzQ2MzZaFw00NTA0MTgxMzQ2MzZaMIGRMQswCQYDVQQGEwJVUzER -MA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJvaXQxFDASBgNVBAoMC0ZP -UkRfU0VSVkVSMRgwFgYDVQQLDA9GT1JEX1NETF9TRVJWRVIxDTALBgNVBAMMBEZP -UkQxHjAcBgkqhkiG9w0BCQEWD3NhbXBsZUBmb3JkLmNvbTCCASIwDQYJKoZIhvcN -AQEBBQADggEPADCCAQoCggEBANj4ZvL/O4BKmq65b08VE/t3vTPGMJ5GyQ66rjMm -GfNuDs8dgHfw7KcoOWLZ2yp147anSWtlPjF5E+tGysQ7fl6jgrUP9OuQYLQiRKk0 -JEmZqrzF3h4M+4wHDm9YITPApAu5/aqSsZhYhRUHDVkAlxvoZNBsOCcyV6tIJlpW -wgtEImQzNjMSgtCAyN5CQ3Jg+1cTS7R4cYlnc3qCGb0S71DyqBVZGe72ojZvqr6V -1DEl7fdKQksZ7YMU2FRhUSushDKmARLI/QKdIaQE2sq4hB1vA7kbFuDsrIneoYo0 -wgPl40MZhDY1R2gVBEHUtHGje/UcW9Xg09WbupGVWqPpCbECAwEAATANBgkqhkiG -9w0BAQsFAAOCAQEAaoRlUPEva89wdL5jW7NoYlM+J7DZ8k6cs6JgYcJGNhmJMjS5 -8T/U6CsDWkw6vd345N2Owhy5ze5pL1VgEbLjOSYnpvZmBTwOKo3PrqMd3i7Zx4bs -SSPqpOwDgsAkURslCjl/se51qpYb1fzgPdZulAvVT2oqWCkMImTyYfgvsUHT5BHH -SLrhDf2q22mtOhiH6KjRk7MdXNcNVVd/9cDSebL+ZJ7itqaSdBapMwTW83K+3m4u -qgqGcz+HmLpjC3qSUCRX9BpaSuVuMCYbLTaG+QxTj3FSlpVLtqBJNWWAquhptQwc -i4X4BbqyQwmy4eiNAeXJX9CMvGErsOsZxJNHOQ== +MIIDzTCCArWgAwIBAgIUOOnk98lJ751rJO5qYOrBciWnqrwwDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtzZXJ2ZXJfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMTcxMjAxMTM0NjM3WhcNNDUwNDE4MTM0NjM3WjCB +kTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRy +b2l0MRQwEgYDVQQKDAtGT1JEX1NFUlZFUjEYMBYGA1UECwwPRk9SRF9TRExfU0VS +VkVSMQ0wCwYDVQQDDARGT1JEMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVAZm9yZC5j +b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9bq2d2nW1Wcz0PSaK +kH2T3tSeeseM15FhnpSFcjpmUFtxAPNYRw2ZfgzG7laGAAnv0N0SF1szC3j52aD/ +UzIdYfHSRx2wANrZrohLISjwfU9n/pnoxYUX9uUkEuOLOjrQYRSNh7AwPf4NIeu1 +QvW1+16Q9VOgw1eS3fXOBQvLYWMXB5JdtKFtdFqyYIk3HO/HpFCEwp86+fU3Dqwh +Luq+8SICdhZ0SKcNGh6Q9l809w5CtDlMCcJsGr6wDVhLLd5LWrar5wVrO7Dj3M/1 +pfadtII1Cbavq7zFYzHFa10UTz1z7osw/IbLH4fuQX/5KEqHp9eJ/uIsDon1pKPS +VccFAgMBAAGjEzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB +AExJ8XnDI2ofAHiRY7VF8DqPU68xbbVjD+B/55zzMGdikJli+EihNs1coGl5KYqF +Nm6gsNeiBzIYcef8JKjjtgJglh3BqoL+GkLpEk49rXsU/m0/t97iIL7jofFXsOwU +o1oTg3ti2TfuYzMp6e+XsPfWjksyCNKnz7DFVN8y5IYZv5sIhN/i+OA9hVCi1mgo +LRqBoswAATfjGZlA3T7lHPJTSZ+qQU7Tt+ef/p8uhIaxy/9osYmsNZQob2uGIzU7 +ywOxHLwAAURlqOH72hoFr/8WFDgYgM2e26XPglCq2Y2je120rxe211WNRRemkb8/ +Tb6RcpMAVl40+xudXgCZuNI= -----END CERTIFICATE----- diff --git a/files/Security/client_credential_expired.pem b/files/Security/client_credential_expired.pem index 45e72e58cd..fa64e35cc9 100644 --- a/files/Security/client_credential_expired.pem +++ b/files/Security/client_credential_expired.pem @@ -1,35 +1,35 @@ -----BEGIN RSA PRIVATE KEY----- -MIIEpAIBAAKCAQEAzSlooyWX+aztQzQ5b4nKsO6mDNx+2h7PRHASdw4FKsUpXwHl -Bz28OOXExDb6ecDnsoiLuh/JCs6Rnk7Zna+PKmFytUkxXWd+QRH3nnaJplQ/jPBg -u5ypx+wUA/q+kkSEnUjTeMDeiGkbAAFyyEBvruZ54V6QiSdEmjtvHQeYbsmi9QcF -KFCuX11oG4M3VgI7N+s8XXwaEcsOJPAeicJdb+uupaj7jGxDPwK8BNdO/zvSYDFe -arFXbIdCicCZdmYAjxXk/8CcCKs28CzpwWy9EUMe60hukuOakwDaNRxEFTAl1IMT -n7LFuBYgTx8oFdldNJl7fdL54qB5z18b/HT/zQIDAQABAoIBACzY3my7bQtBB+Rm -6B8/qbUfleC92mTn0zsMnJy1zd9Zlf+UtHHuxtRRNcAGnJ480ukt/A1FoXbhTOek -KOHVXKBRCPgj9cyLMQgcW1qiYtifFf1DFoIsbtiq/H0aNMpYe/y9zKxazMpY33QS -3Pp1S3SaIQ5o04OHt/FXCKT54hJlUOWKtf7opUCDCdPSOq1E3DNfrlVDvii614Af -khpulzcImWzopabnMZQR2geK//UZbWQ07kla60zIJHqeCpch4jZFeQRcmXRz+Tbu -gJyIImin9MmVgbreHRX/e52KypkLY2STVPgSJ2MXLx048Bmzv81V+zfRj10Fu2Vh -6oda4ikCgYEA9xUa7+vSaEKn6TpCycfFb/5bL3UJnbQbGzQKsnQajPgHQUyWuulb -zXlKV6bMmlizEmhKUPuDwLIzBRKmOz7Budpaee1XML4gkkBGMqTk0cOw2z34R1y5 -5qGj96ZUCwATIFtkEmYpKOq9+jTdzVhe+eJDUI/DfnRlXlLsTZMpp/sCgYEA1JD7 -NXrYw0AMw8UNa1AhiMgOm7R7JR47eIRWSFhnayeEo0mGAHUWq4mLrjcjn/SrzSB/ -HTCvNAV/pAXxfxy4uxHyE4OIg/fZ6zhbzhvo+FVtbVtt5oRTzfV/mDzTKBv5vSxg -RdGoyWsNIOnBmU7eLkPm3apSHVrE6QnGC2U7BNcCgYEAyxTTwSMJG5y9uhqizoqe -IwDjHcyKjM5+AQvzRt3a/MbX37n9ob8wL2Bj1EtKnAoPlS+W9Zzkm7tb5+1+J+/a -9tEb0F9dbLi4uLyPdgzF7gt0D5+Ns8npGkD9Lg3NwgTbs5qqU90YM4NNhptxOthJ -qAVq4opnWkZ9EtwBUXmFoYUCgYEA0AkEkpakRpMM6xyTwY8vArso8OJ2EyG/eneq -Kiu7K3gFq/ltGE1/3mpDNkHor8e5zIwdW+gl0HgBL/pRG+J0OUGa9dYpaV7M/BSw -ZMuT+ldBPWHZ8V1Y152JPulojzyx8p7Xqf1Df70xoCCmxPAXKphx/kePDgOj658R -IF32oQkCgYB8+/niFCC/CcWyeV3z53AYM3MpVrx6vg9/bPIqG8t/4wg3SXVs0V3s -MRfHWcuiZlEX6h1whBnfyx88MPzoOCuKIIQVx1Wqi7UP9bqtCJmWgMnqP9TP74A4 -RHbH8ayfhuBdUyWoeZGdu/DiiYbClDJ+NQ1FSqQOlrdYYM5Gs/oAlA== +MIIEpAIBAAKCAQEA0Sl1Ut/JVcQ+f7maaIoDzVOR7Ko2VJqTtwFuiYnOxE6dBUey +r2tro71F3CUrUjnrAGGSXQyY14+AbJRu+a4kPsmE5pz0N6s0DqmCr7dp5nA19RcV +7nxzxerMTH7AdZ/W1OO5JWAkbjyCJ84EKl5IWY0f2AdoXZ7k33mAho5n8zJif/i3 +ku4DoPNk3r+L2t+KU6Kql9cbG0XbyqWSTdz2Fg/EwGG1GbdGhl8H40J1PvOlRCXg +jCFcn8N/h7WqkBbidlcm3SFVFSwybmMiB0/jbMvpV8S/wcPcNfHJUMFXD5Q73wnj +b6ivX+g8WucoBLT862oMFfSb3AgcrzLFZWzvsQIDAQABAoIBAHeKilNjM16hWlcF +bQpyVtny+WOZpJOWBPaDCvnwmQv5IiTyZV18t3hNpK+9TpUgJP+CxHQJzxDkIzHr +Y8GvlWeNJTfoXGu0nXwDxX1IBm59k1kQaKh02HY1S64sgzK2t8HUpOyHlkqqqni1 +dgwA9ri3v4toMG3Rcl2Gw74jhaWoDbr3Biya+/KdGyBW7MECfXjn5VBKy+mtHKy+ +A4zhT0ClZsBO2se1AmqwPHnlAjj2Ir0OOS5Be8+j+fxdeHng8Y5Pvpvb/OacJCev +5g4mf4CuFDhRPXR+fEcHqDSbpMQSaW8HxjLGzBzZbsqQfA1f6hgKa5Er4TeihJbU +9LdU3EECgYEA6uafBZt5onjq8gNA9zJt2cyV3+76yYzhfrbT7mpWJlHG1vCV82iZ +p+nVtyjQ2JpX2LjTyxb5tOKmAYxdYer+UIq6e4ZxmIN+zfUEtYHu9sLXqoQOwMwr +HUdE6qfX94oGKFizcSacmOZHGTGXEdfPcOPaEE6vfcWgqdbI+iyLoGMCgYEA4/L9 +LE9eOzoDwwg05TLIhx0MXcuifuhwWWa/DD+R/gKx2/KkUCL0ptCuOnXCO6i0+uOQ +Q6Em7ifY3FpSyG4+qB/f8ZMWXG2jQhxHsYmOwp9c+VfGQBiCNqNpgye8sTY5O93s +Oh03ZmOAeFJTbnCBb6b4nI9ys8U8t3TVwfPPydsCgYEAp1dkMjpwjK5XsdFflrr2 +RxLYMo+tWahjfEIC+PYIKYRYgwchzCXYUSbkeXc6URSjQGFrgGL9wT81xCSa4gbm +5bnu39EHW/9Rdqf2ktfdxS1JNtCdMfxBOrpq/kBUOqS5fkSykQlQxhxGykvps2xq ++6FW2Ac2PgNsUZIR2yeg0MECgYEAioA9rAqdascZOgtmeEye4tmXhfYQyaNZgDiZ +pEuL3RauEsIfbEGQ/TqWYhbi6XTcYgSaxzzHdrTnYxvOaNHzaBvV6eZBE+/Z3nVo +akr2XvKNf0MBxjgeBizME1C1qccUh3eT7MuLub6DdJgw8U2Sl9CQBjBytSAGgEGR +D8OgYTkCgYBXi068JkDCXeCCnYnwuXdnaagF2eavDMDfWWDInpP1phwB3eL/88zX +p8LQczJtx2V9zGLHbWQwcBvGEK3gQf8BnDyuOEJYxen4qG6JB7iIQw/nLlsEPEGb +8F1mg5rEV6S+c2yVnw5rseUgeFf+BRh1swrUmyoMjifQs1xco2lpvw== -----END RSA PRIVATE KEY----- Certificate: Data: Version: 1 (0x0) Serial Number: 1 (0x1) - Signature Algorithm: md5WithRSAEncryption + Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=Michigan, L=Detroit, O=FORD_CLIENT, OU=FORD_SDL_CLIENT, CN=FORD_CLIENT/emailAddress=sample@ford.com Validity Not Before: Jan 1 00:00:00 2015 GMT @@ -37,45 +37,45 @@ Certificate: Subject: C=RU, ST=Russia, L=St. Petersburg, O=Luxoft, OU=Mobile_expired, CN=client/emailAddress=sample@luxoft.com Subject Public Key Info: Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) + RSA Public-Key: (2048 bit) Modulus: - 00:cd:29:68:a3:25:97:f9:ac:ed:43:34:39:6f:89: - ca:b0:ee:a6:0c:dc:7e:da:1e:cf:44:70:12:77:0e: - 05:2a:c5:29:5f:01:e5:07:3d:bc:38:e5:c4:c4:36: - fa:79:c0:e7:b2:88:8b:ba:1f:c9:0a:ce:91:9e:4e: - d9:9d:af:8f:2a:61:72:b5:49:31:5d:67:7e:41:11: - f7:9e:76:89:a6:54:3f:8c:f0:60:bb:9c:a9:c7:ec: - 14:03:fa:be:92:44:84:9d:48:d3:78:c0:de:88:69: - 1b:00:01:72:c8:40:6f:ae:e6:79:e1:5e:90:89:27: - 44:9a:3b:6f:1d:07:98:6e:c9:a2:f5:07:05:28:50: - ae:5f:5d:68:1b:83:37:56:02:3b:37:eb:3c:5d:7c: - 1a:11:cb:0e:24:f0:1e:89:c2:5d:6f:eb:ae:a5:a8: - fb:8c:6c:43:3f:02:bc:04:d7:4e:ff:3b:d2:60:31: - 5e:6a:b1:57:6c:87:42:89:c0:99:76:66:00:8f:15: - e4:ff:c0:9c:08:ab:36:f0:2c:e9:c1:6c:bd:11:43: - 1e:eb:48:6e:92:e3:9a:93:00:da:35:1c:44:15:30: - 25:d4:83:13:9f:b2:c5:b8:16:20:4f:1f:28:15:d9: - 5d:34:99:7b:7d:d2:f9:e2:a0:79:cf:5f:1b:fc:74: - ff:cd + 00:d1:29:75:52:df:c9:55:c4:3e:7f:b9:9a:68:8a: + 03:cd:53:91:ec:aa:36:54:9a:93:b7:01:6e:89:89: + ce:c4:4e:9d:05:47:b2:af:6b:6b:a3:bd:45:dc:25: + 2b:52:39:eb:00:61:92:5d:0c:98:d7:8f:80:6c:94: + 6e:f9:ae:24:3e:c9:84:e6:9c:f4:37:ab:34:0e:a9: + 82:af:b7:69:e6:70:35:f5:17:15:ee:7c:73:c5:ea: + cc:4c:7e:c0:75:9f:d6:d4:e3:b9:25:60:24:6e:3c: + 82:27:ce:04:2a:5e:48:59:8d:1f:d8:07:68:5d:9e: + e4:df:79:80:86:8e:67:f3:32:62:7f:f8:b7:92:ee: + 03:a0:f3:64:de:bf:8b:da:df:8a:53:a2:aa:97:d7: + 1b:1b:45:db:ca:a5:92:4d:dc:f6:16:0f:c4:c0:61: + b5:19:b7:46:86:5f:07:e3:42:75:3e:f3:a5:44:25: + e0:8c:21:5c:9f:c3:7f:87:b5:aa:90:16:e2:76:57: + 26:dd:21:55:15:2c:32:6e:63:22:07:4f:e3:6c:cb: + e9:57:c4:bf:c1:c3:dc:35:f1:c9:50:c1:57:0f:94: + 3b:df:09:e3:6f:a8:af:5f:e8:3c:5a:e7:28:04:b4: + fc:eb:6a:0c:15:f4:9b:dc:08:1c:af:32:c5:65:6c: + ef:b1 Exponent: 65537 (0x10001) - Signature Algorithm: md5WithRSAEncryption - 72:b0:5d:b3:1c:ef:4c:f0:11:53:4e:37:b7:db:bc:95:2a:bd: - 45:ef:0b:68:4e:21:b4:98:27:7e:7f:d2:2a:7c:2b:cc:04:cb: - f5:3d:7f:f0:4c:f1:4d:2d:1e:7d:6e:04:16:ca:52:7e:22:b5: - 01:c3:56:d4:1e:6e:14:05:7b:91:4f:30:67:6b:bc:37:a7:f3: - 0c:18:21:86:92:fd:d3:82:2b:1d:dd:a2:ef:8a:3e:ac:62:83: - 89:c7:9e:4c:60:8e:6d:22:54:cd:47:d0:22:6b:dd:54:63:13: - 2f:ce:c6:27:c5:cf:2c:9f:1f:f3:91:4c:29:6b:11:b2:8e:dd: - 57:c2:78:34:e2:10:4b:f2:e3:d0:b8:31:29:7f:1e:1a:08:86: - dc:66:4a:db:aa:c3:62:9e:5d:d6:b2:e3:f6:f2:7e:29:37:58: - 71:9e:1e:a0:eb:13:f4:6d:c1:bc:27:77:d4:ce:26:b1:86:48: - 53:aa:2c:f5:17:ef:b2:c2:d0:45:d0:f1:5c:f8:18:e9:9a:a1: - 50:32:1a:e5:11:be:66:2a:10:44:26:f5:7f:94:59:01:f5:6c: - b2:49:b0:07:22:2d:f4:bd:69:f2:f6:b7:c8:02:4f:ee:8a:c4: - b0:34:b3:f1:7d:22:a8:8d:7a:62:50:ce:14:12:77:09:37:be: - d2:65:cd:27 + Signature Algorithm: sha256WithRSAEncryption + 1d:18:28:41:ff:b3:ca:7d:c1:d2:9f:54:d7:2e:7a:b3:a2:a9: + 41:c5:dc:ce:bf:ee:71:96:f6:a5:1f:79:e8:58:fd:7c:05:e7: + 17:0d:66:45:ef:e3:31:0e:79:dc:d5:7b:32:89:d6:17:61:2c: + 36:27:d6:b7:d4:7c:75:5f:09:61:95:11:62:c6:b6:d9:b9:93: + de:c1:f9:f7:a6:4c:0a:57:cd:98:fc:93:20:f5:29:33:fa:68: + 4b:ad:30:19:5b:f2:ac:d6:a5:2a:5d:12:52:be:e3:3b:14:b7: + 5f:da:41:5f:74:4f:d5:2d:c9:48:45:dc:50:b8:f3:cd:b0:68: + 47:0a:09:9a:2d:4e:ad:75:0c:87:03:08:27:e4:e2:db:66:c3: + 90:81:38:c0:76:d2:3d:d7:54:e8:7f:2f:91:40:54:be:e9:c7: + 7e:4b:75:3e:06:26:ac:59:49:fc:b2:f9:42:56:5e:bc:8b:bf: + 50:6d:d9:8e:17:0a:f2:d1:ab:2d:2a:18:bc:06:d1:ba:15:cc: + 5c:5e:38:38:c3:79:ca:83:70:de:43:5a:a4:e6:7d:f4:98:49: + 01:df:fb:1f:d5:55:79:0f:1a:64:64:91:b7:32:cf:d0:15:08: + 36:e9:4a:8e:eb:d1:a4:a1:9f:ad:88:20:c9:56:ec:ea:3f:0f: + 29:b3:ce:69 -----BEGIN CERTIFICATE----- -MIIDojCCAooCAQEwDQYJKoZIhvcNAQEEBQAwgZgxCzAJBgNVBAYTAlVTMREwDwYD +MIIDojCCAooCAQEwDQYJKoZIhvcNAQELBQAwgZgxCzAJBgNVBAYTAlVTMREwDwYD VQQIDAhNaWNoaWdhbjEQMA4GA1UEBwwHRGV0cm9pdDEUMBIGA1UECgwLRk9SRF9D TElFTlQxGDAWBgNVBAsMD0ZPUkRfU0RMX0NMSUVOVDEUMBIGA1UEAwwLRk9SRF9D TElFTlQxHjAcBgkqhkiG9w0BCQEWD3NhbXBsZUBmb3JkLmNvbTAeFw0xNTAxMDEw @@ -83,62 +83,64 @@ MDAwMDBaFw0xNTAzMTQwOTI2NTNaMIGUMQswCQYDVQQGEwJSVTEPMA0GA1UECAwG UnVzc2lhMRcwFQYDVQQHDA5TdC4gUGV0ZXJzYnVyZzEPMA0GA1UECgwGTHV4b2Z0 MRcwFQYDVQQLDA5Nb2JpbGVfZXhwaXJlZDEPMA0GA1UEAwwGY2xpZW50MSAwHgYJ KoZIhvcNAQkBFhFzYW1wbGVAbHV4b2Z0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAM0paKMll/ms7UM0OW+JyrDupgzcftoez0RwEncOBSrFKV8B -5Qc9vDjlxMQ2+nnA57KIi7ofyQrOkZ5O2Z2vjyphcrVJMV1nfkER9552iaZUP4zw -YLucqcfsFAP6vpJEhJ1I03jA3ohpGwABcshAb67meeFekIknRJo7bx0HmG7JovUH -BShQrl9daBuDN1YCOzfrPF18GhHLDiTwHonCXW/rrqWo+4xsQz8CvATXTv870mAx -XmqxV2yHQonAmXZmAI8V5P/AnAirNvAs6cFsvRFDHutIbpLjmpMA2jUcRBUwJdSD -E5+yxbgWIE8fKBXZXTSZe33S+eKgec9fG/x0/80CAwEAATANBgkqhkiG9w0BAQQF -AAOCAQEAcrBdsxzvTPARU043t9u8lSq9Re8LaE4htJgnfn/SKnwrzATL9T1/8Ezx -TS0efW4EFspSfiK1AcNW1B5uFAV7kU8wZ2u8N6fzDBghhpL904IrHd2i74o+rGKD -iceeTGCObSJUzUfQImvdVGMTL87GJ8XPLJ8f85FMKWsRso7dV8J4NOIQS/Lj0Lgx -KX8eGgiG3GZK26rDYp5d1rLj9vJ+KTdYcZ4eoOsT9G3BvCd31M4msYZIU6os9Rfv -ssLQRdDxXPgY6ZqhUDIa5RG+ZioQRCb1f5RZAfVsskmwByIt9L1p8va3yAJP7orE -sDSz8X0iqI16YlDOFBJ3CTe+0mXNJw== +ggEPADCCAQoCggEBANEpdVLfyVXEPn+5mmiKA81TkeyqNlSak7cBbomJzsROnQVH +sq9ra6O9RdwlK1I56wBhkl0MmNePgGyUbvmuJD7JhOac9DerNA6pgq+3aeZwNfUX +Fe58c8XqzEx+wHWf1tTjuSVgJG48gifOBCpeSFmNH9gHaF2e5N95gIaOZ/MyYn/4 +t5LuA6DzZN6/i9rfilOiqpfXGxtF28qlkk3c9hYPxMBhtRm3RoZfB+NCdT7zpUQl +4IwhXJ/Df4e1qpAW4nZXJt0hVRUsMm5jIgdP42zL6VfEv8HD3DXxyVDBVw+UO98J +42+or1/oPFrnKAS0/OtqDBX0m9wIHK8yxWVs77ECAwEAATANBgkqhkiG9w0BAQsF +AAOCAQEAHRgoQf+zyn3B0p9U1y56s6KpQcXczr/ucZb2pR956Fj9fAXnFw1mRe/j +MQ553NV7MonWF2EsNifWt9R8dV8JYZURYsa22bmT3sH596ZMClfNmPyTIPUpM/po +S60wGVvyrNalKl0SUr7jOxS3X9pBX3RP1S3JSEXcULjzzbBoRwoJmi1OrXUMhwMI +J+Ti22bDkIE4wHbSPddU6H8vkUBUvunHfkt1PgYmrFlJ/LL5QlZevIu/UG3ZjhcK +8tGrLSoYvAbRuhXMXF44OMN5yoNw3kNapOZ99JhJAd/7H9VVeQ8aZGSRtzLP0BUI +NulKjuvRpKGfrYggyVbs6j8PKbPOaQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIEBzCCAu+gAwIBAgIJAJXvnO5OARyGMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEXMBUGA1UEBwwOU2lsaWNvbiBW -YWxsZXkxEzARBgNVBAoMCkNBY2VydC5vcmcxDzANBgNVBAsMBkNBY2VydDEUMBIG -A1UEAwwLc2VydmVyX3Jvb3QxIDAeBgkqhkiG9w0BCQEWEXNhbXBsZUBjYWNlcnQu -b3JnMB4XDTE3MTIwMTEzNDYzNloXDTQ1MDQxODEzNDYzNlowgZkxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQHDA5TaWxpY29uIFZhbGxl -eTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwGQ0FjZXJ0MRQwEgYDVQQD -DAtzZXJ2ZXJfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2FtcGxlQGNhY2VydC5vcmcw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD1SEpoj3z/1oa8HLfzxWvN -OVmePADdfnt6hvwsZ2R9d3q4iCh3aWIlsxOVHMN3fy+fBMGgefAg+nxVRZ5NHm0x -mBFHUzkZJtFGFhHX0Eav1+JSu32nYIr9l9sIamZNtDn/slq907DBwdOENDaAwZIj -rz4odiUZWoy3LN4gCU+UoYcVePEXFOcNABBHyL4c0sNR4romnsVGWXl9MOAig6/V -JfF+qQudOUBmXy6cK1UdbyThWfToSIMQVEcLh+Y8rdkO0tpM0pWmJWN0OTVtlaGu -z/SZoYRVZfcN+gSftmKfmfvLWifSyk3n1urmPs8sdwQSGV/yAboG9UAtJk8GwKgr -AgMBAAGjUDBOMB0GA1UdDgQWBBRPQGATCkVua5+jQfGdso3jdv9xYjAfBgNVHSME -GDAWgBRPQGATCkVua5+jQfGdso3jdv9xYjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3 -DQEBCwUAA4IBAQDSmMrlHWoZbvqD0fKi1Dw4bLzdMO256Vl1R2vlynAVph/OjNGu -8I37K3NRP6FavVYqOGWgOdJgGJe2QPqmD2FhiYNV1L+n0I4VZ1HJD6NQ77GZ6IAT -A8Kgb42OTORLxPQuDj+epLWt4g3Lf1ooE+2lJnacxKzcgrUEAtD2YxxWtwW6ls/s -xWsn3xipbdketfEyRiMnY+GWYqBnzlVCfIewRosFQaaU6ZwLq1Jn8REufEyClcgC -+ZvvQpc0ERHOK2cHgyuqMz59vj+nBr5eCDZlvpC22YHbautVYbfnUq0A5d1bty2e -SfYV0HVq/fUtb7NMXxFsSVsxC3EavugXSAAq +MIIEFTCCAv2gAwIBAgIUS/AhhpEnbdCGl2o3aCkRXidj0rYwDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtzZXJ2ZXJfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMTcxMjAxMTM0NjM3WhcNNDUwNDE4MTM0NjM3WjCB +mTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNp +bGljb24gVmFsbGV5MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNl +cnQxFDASBgNVBAMMC3NlcnZlcl9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVA +Y2FjZXJ0Lm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKko4oBj +lHWOzeoJMEDjRvN7uc9+8o08EKd2lRB5SH5IE+QBrSuFPzOetS0KHiVagIc13i1J +oYpu6huSyQ1V8dDChKyGqIzR3BTN/uDnPGAhUGqvB9l7hyXVdBF+RMIpAmwy4Map +rOgREl4JouMD6a0YDwtweJla8Q+4j1Kmc421wH5k0hYDs0fQWh8iUVjIn4uUGhEK +k5Ggfwh/56Bdre7Ibcb7+9Kavo0HmnXGdTdpwrxmkUMBBvT0t59lYC3z08evUUIz +5fhPdLIUWNE3+vsKgGRuMzqjoQYaglUCd14EkNsfJl4xQwW8AQxP+Dp4tpBEEwfQ +JQdF1rHESNEZIRECAwEAAaNTMFEwHQYDVR0OBBYEFEiXOF41whE5NQnF/72xLsU+ +jlVeMB8GA1UdIwQYMBaAFEiXOF41whE5NQnF/72xLsU+jlVeMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAJveCscJ3fac3fPJMQlNXJPKmCnSYZcz +6/SO07oaKwAtoiJQdJJGoqM+lXoAlI98ZLJMar2TnnrOX0W0dC/9AT4qRWK7Qlks +7XYf5eTor4pLpbV9Jd4X342qhcf4I+IVWGekItO6xse+nGEhY432cnEacp5Uvsyd +tXr4XXvLh2m7VSptD54mAuZDpNyAhp5LZAyR9BN1B0EnGYhvbgKrzkHqpwaehZhi +jDwv6HyM6HiJyLuzaXSotUqzC4x4+yJn0M1ZtujojWBkPbZ/tPKYWohuB1JO9FU4 +o8bSFjMbGksA3788ej1XyJndPOS9BBG8CZVCqZOfdcl+OBWonr1ySxY= -----END CERTIFICATE----- +46b421d9 -----BEGIN CERTIFICATE----- -MIIDqDCCApACCQC6Uyd8LJ8KoTANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMC -VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNpbGljb24gVmFsbGV5 -MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNlcnQxFDASBgNVBAMM -C3NlcnZlcl9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVAY2FjZXJ0Lm9yZzAe -Fw0xNzEyMDExMzQ2MzZaFw00NTA0MTgxMzQ2MzZaMIGRMQswCQYDVQQGEwJVUzER -MA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJvaXQxFDASBgNVBAoMC0ZP -UkRfU0VSVkVSMRgwFgYDVQQLDA9GT1JEX1NETF9TRVJWRVIxDTALBgNVBAMMBEZP -UkQxHjAcBgkqhkiG9w0BCQEWD3NhbXBsZUBmb3JkLmNvbTCCASIwDQYJKoZIhvcN -AQEBBQADggEPADCCAQoCggEBANj4ZvL/O4BKmq65b08VE/t3vTPGMJ5GyQ66rjMm -GfNuDs8dgHfw7KcoOWLZ2yp147anSWtlPjF5E+tGysQ7fl6jgrUP9OuQYLQiRKk0 -JEmZqrzF3h4M+4wHDm9YITPApAu5/aqSsZhYhRUHDVkAlxvoZNBsOCcyV6tIJlpW -wgtEImQzNjMSgtCAyN5CQ3Jg+1cTS7R4cYlnc3qCGb0S71DyqBVZGe72ojZvqr6V -1DEl7fdKQksZ7YMU2FRhUSushDKmARLI/QKdIaQE2sq4hB1vA7kbFuDsrIneoYo0 -wgPl40MZhDY1R2gVBEHUtHGje/UcW9Xg09WbupGVWqPpCbECAwEAATANBgkqhkiG -9w0BAQsFAAOCAQEAaoRlUPEva89wdL5jW7NoYlM+J7DZ8k6cs6JgYcJGNhmJMjS5 -8T/U6CsDWkw6vd345N2Owhy5ze5pL1VgEbLjOSYnpvZmBTwOKo3PrqMd3i7Zx4bs -SSPqpOwDgsAkURslCjl/se51qpYb1fzgPdZulAvVT2oqWCkMImTyYfgvsUHT5BHH -SLrhDf2q22mtOhiH6KjRk7MdXNcNVVd/9cDSebL+ZJ7itqaSdBapMwTW83K+3m4u -qgqGcz+HmLpjC3qSUCRX9BpaSuVuMCYbLTaG+QxTj3FSlpVLtqBJNWWAquhptQwc -i4X4BbqyQwmy4eiNAeXJX9CMvGErsOsZxJNHOQ== +MIIDzTCCArWgAwIBAgIUOOnk98lJ751rJO5qYOrBciWnqrwwDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtzZXJ2ZXJfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMTcxMjAxMTM0NjM3WhcNNDUwNDE4MTM0NjM3WjCB +kTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRy +b2l0MRQwEgYDVQQKDAtGT1JEX1NFUlZFUjEYMBYGA1UECwwPRk9SRF9TRExfU0VS +VkVSMQ0wCwYDVQQDDARGT1JEMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVAZm9yZC5j +b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9bq2d2nW1Wcz0PSaK +kH2T3tSeeseM15FhnpSFcjpmUFtxAPNYRw2ZfgzG7laGAAnv0N0SF1szC3j52aD/ +UzIdYfHSRx2wANrZrohLISjwfU9n/pnoxYUX9uUkEuOLOjrQYRSNh7AwPf4NIeu1 +QvW1+16Q9VOgw1eS3fXOBQvLYWMXB5JdtKFtdFqyYIk3HO/HpFCEwp86+fU3Dqwh +Luq+8SICdhZ0SKcNGh6Q9l809w5CtDlMCcJsGr6wDVhLLd5LWrar5wVrO7Dj3M/1 +pfadtII1Cbavq7zFYzHFa10UTz1z7osw/IbLH4fuQX/5KEqHp9eJ/uIsDon1pKPS +VccFAgMBAAGjEzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB +AExJ8XnDI2ofAHiRY7VF8DqPU68xbbVjD+B/55zzMGdikJli+EihNs1coGl5KYqF +Nm6gsNeiBzIYcef8JKjjtgJglh3BqoL+GkLpEk49rXsU/m0/t97iIL7jofFXsOwU +o1oTg3ti2TfuYzMp6e+XsPfWjksyCNKnz7DFVN8y5IYZv5sIhN/i+OA9hVCi1mgo +LRqBoswAATfjGZlA3T7lHPJTSZ+qQU7Tt+ef/p8uhIaxy/9osYmsNZQob2uGIzU7 +ywOxHLwAAURlqOH72hoFr/8WFDgYgM2e26XPglCq2Y2je120rxe211WNRRemkb8/ +Tb6RcpMAVl40+xudXgCZuNI= -----END CERTIFICATE----- diff --git a/files/Security/spt_credential.pem b/files/Security/spt_credential.pem index 0f35a41d76..09829b0d79 100644 --- a/files/Security/spt_credential.pem +++ b/files/Security/spt_credential.pem @@ -1,95 +1,98 @@ -----BEGIN RSA PRIVATE KEY----- -MIIEpAIBAAKCAQEAqertSCyAomOt4dEAX6gAlx8nCiGnrGDQwqCnxCsNJEE/4c+p -E55VkOB84bEdIuhkShwpzVAqszSkuUJML7zS+/cZZFlR+OinhGE4ffukcrr9uWNm -YTwc6Oqr8jWgGRo+BiJMB4dt8w8D0i9ORZ1pFFreIJFcAqQGeqhgATIPgCDHqFRx -oEDcsmZ2hgWjmXe14Jd1G38BWQg0LApnjayOvxltsYR76LMApojzgbXgHR0kQn+z -oa0FV7vCf72y9VtHl0ipxK8pESpSDApb7KofQIZKehAGa5B2XNwM1J2qfldkhM7Y -9yzZdoxOlYKVwIrsjUVK0VQfC4uI/XF5Col5bQIDAQABAoIBAD9EXAltmI/ecZYN -TghP87hRPyYElfwXKGPvkcf3B7OiH/kiayAE6nNBQv5+Bg1DXmRBzEbIPL3xMgxQ -5TE5K43p2aiFoYH+jrE5yeEO25Jkkah/nFVEHreS+Wb8FJqELOf3yTtcb9H6mz+d -oZVGISQVGXQi65GIJWlyXBzV2POppSI0ex4nZHhxlOJzgbC4WOZ3tpCSgQ6tdE+B -lSYdv0tAkW/y1B00jCdl6HrwG0jcfVZefcRhK5xTRkjBf4j9chUgo44tRM4iBQSR -uLqCcu34g1c9WCg/mzvvQWapg2ygdL7AqPP6KV7wM+tGxRHVwEyh6n525rENCo77 -Bsd9MIECgYEA4ZzkydPbLS7FTgEabVru+nVgkio+MLDtmvF2e0QKImuBHdte/Bzo -Rm7zOnFi/3QXOkXW0q4GKH9jT2I/kzW+rXGUbPau1JLFGMU21tT9/i0Kaj26Jr3z -3o4FV8IwewXDu5uuptZlgv/HLnULMDwCwdkaLJQje6G948L2xTaoWb0CgYEAwM2r -ZeM9usMew01gKddzH+852udBLPbtb2bfKDxtbdkFLfzAF9SY7FKLwf5AjtzZyXoc -t+GOOuQmJlI48ZVNTOLOZQ90xOvD7ITMilCFXE2257qThlzQG+TNNaD9JCkJJNvk -dqXwYpnV0W3h4EFhmcciQH+aoG8yzZ5LZAySoXECgYArPdf3+vwKN+mnHr0C8qfV -J0QgH6qVyINx7A/KZmsO184Ce/ZDmgLG5SMHM45G6eg9yf73mFUj0+6j22/V9joa -oidRjyJJKexO6BWvrVkVK2rQnA4euM+R+2R4woZqPdubDKa34WXJat6xP8uqLgZV -QxgqLSZz3rc3fTmw6N3xfQKBgQC+0U8XUeYgV0i1BnlsL92y93MNId8xf1nS7b9i -9Rtgom8r6oC7lR+clL3ZS6fdPNsXOpH9s3Cu/Gp9dtcA0kFlHPwkrT1mP+jyxyQg -qDy08/1YLyIe0vDtCm/G6gRfq3VvU2ozu1vEWnhyBAyPhGXyalGOADyrGCLxuf7n -kEH3IQKBgQDHuVVhiGp+yIwzTa04LjGvJG4Qh20YJ90+b2BONIP0ZAH36vkk8WZx -VrHTgvG7UXdbY5d4GrPaAzygopVWtFHOmWvkoEOIF/sf3teOUINp8PyoKARUOcfQ -6uZ+tKlsBRrJkiEr9T+Euw16g4xFE5b9tP69mHbtFptfgDtIX6txbA== +MIIEpAIBAAKCAQEA3Q8IEyhlfRj8b2aAuYlfbVlxd1++tbWrw6A5ta4d+eUOj9RV +cZ8p5FIhFGxXHS5roLKdBgiXmkgoK6HPBIk0x3a1vcgUbs1sKvGOk+9qY5EezN8b +wcyu1RfOjaiTsY5rDx9eiqjdaQEMFDgytHojwmJIAmjWdK0YcZvfXDME9MSkVSoo +4da9mkg7VS0ySv4rRLTy0Zzo9XsnxINqowqkyZwxDCExDLhnq7nk1gmfTq0WlwIw +mD7h7/F+aiNY0cMkviGAuNyDVDLDhZ8B2Vi6OUdt4fp8I0LKZGRa1qHLn7PNOodh +wIa3EFsBx2CcayPzOkbnuqlKL7MsilSiOjyyLQIDAQABAoIBABngwJk9iWPzoNmJ +rlgJ9NngNqA63SB4e/sSrq7OC0RNxD6iJL6AW28XDjhN1oTcAk11m1wxdU3iVJGH +B60IQt120B+/ZGT0N01vqbk3tcSiIHDrTVyKkYzwlIWQznliqrXCflbNHd5E+R0E +1yq5gaYnyzY8/535BXuHO8aXUmU0yCbA2hgbS2Zj2nYjSMcMic3sEF15scWic4Lf +OVrUBKbmjOiH8zLpdbK9qQOrB57BtfdM/dXUwUxWRC2rqx4UjYQc6JOAshGJYANs +iuuYdZmKmXNW+LwHBhI5Z+xBzIJdSMj/UkAfDVdWkBRF6/FaM/jqzxvnfj+mypN/ +5vA16AECgYEA+P+rvaKsNZ+bhSYEOUGhzkvzmeTo8ssTMiDaQZCUO/CWzK+nu39U +XU1ELJVoRXvYNjxQcDY66/3b8ugWWyiubPh/yGHQEV0quNBzAXGmtSpicbWsJN/A +4L/w0/pTUcniy/dyc6dDLsesaCZ6+RwN3wrqJGQqyhODFAD169nU0O0CgYEA40Y+ +l0K5OsalNXNOYZneEeDNJmuzL5TGr8oCciWA1nbyC3/Q5IF9YUC3h5/Lax2IGwxh +fyd32ALqjLYcLi+hz8ZaBb2DUQ5oW26L49ZdW7+a8Qe4cu0Gg6C7Q2bLHREEr+a3 +H8TdpOaVQoKIMzdj2VphkTH4J8eqSD5GmyT7fkECgYBZR/uBnLGY7Kjr/iynhxQI +j41CUiUA4bX5VHRN7BRqxaKctCM1hLtwVQMr5UqlF3n4QHorMhbAhZ73IybY+uZI +JnZTGFdt0nU+HWgPTXwUG6V+1kBqXFyhedFVgL2dZwFOV2SPeZsKTAhSs/GGHvwO +TLCV6eC54nMumgWT0uCPJQKBgQCS+qeZzOXbdAH9ui8zgX2TFE24DiiYmd+QadUB +Gu3iRJQuCZ//VxrNnTvTsuyrvjJ6Q5x9zfl8Mg6bp148JEPCCiXH1pKpBedJUgmX +89b2cchzHioT8OOolnbklQLALnRYiZ1eJ0Or1A8tLxuD+8tQElpMuwMgPskJ5XRl ++xnFwQKBgQDEpRS7OpgOM8TOsJja6WYMNk2k6+R/gOkVrDKsk/C2zVy5Fwal1LLF +4+fbZFht+TvqqC0Uk50XnerZ8JJioLlkAEwlotYHvbKGqfB7ujTT8luU4fqHU9Ns +PnMp2+y8Y+VmgpKYOv03HLF7t9iKmOtGUuUfHXEa4e4fNjNBBldubQ== -----END RSA PRIVATE KEY----- +7a410fe9 -----BEGIN CERTIFICATE----- -MIIDqTCCApECCQDuxrkrOSj11TANBgkqhkiG9w0BAQsFADCBkTELMAkGA1UEBhMC -VVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRyb2l0MRQwEgYDVQQK -DAtGT1JEX1NFUlZFUjEYMBYGA1UECwwPRk9SRF9TRExfU0VSVkVSMQ0wCwYDVQQD -DARGT1JEMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVAZm9yZC5jb20wHhcNMTcxMjAx -MTM0NjM3WhcNNDUwNDE4MTM0NjM3WjCBmjELMAkGA1UEBhMCUlUxDzANBgNVBAgM -BlJ1c3NpYTEXMBUGA1UEBwwOU3QuIFBldGVyc2J1cmcxDzANBgNVBAoMBkx1eG9m -dDEPMA0GA1UECwwGTW9iaWxlMQ8wDQYDVQQDDAZzZXJ2ZXIxIDAeBgkqhkiG9w0B -CQEWEXNhbXBsZUBsdXhvZnQuY29tMQwwCgYDVQQFEwNTUFQwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQCp6u1ILICiY63h0QBfqACXHycKIaesYNDCoKfE -Kw0kQT/hz6kTnlWQ4HzhsR0i6GRKHCnNUCqzNKS5QkwvvNL79xlkWVH46KeEYTh9 -+6Ryuv25Y2ZhPBzo6qvyNaAZGj4GIkwHh23zDwPSL05FnWkUWt4gkVwCpAZ6qGAB -Mg+AIMeoVHGgQNyyZnaGBaOZd7Xgl3UbfwFZCDQsCmeNrI6/GW2xhHvoswCmiPOB -teAdHSRCf7OhrQVXu8J/vbL1W0eXSKnErykRKlIMClvsqh9Ahkp6EAZrkHZc3AzU -nap+V2SEztj3LNl2jE6VgpXAiuyNRUrRVB8Li4j9cXkKiXltAgMBAAEwDQYJKoZI -hvcNAQELBQADggEBALgoc7/kBmX8ilC5XdBoKTRhcrGnPNpE4XpLGo2zWBmgCCaT -+4ArZDjzA8vL4fXU2Dnv6EzuZKFFjPRa7JxCw2KEg/nUfwok7PJ4RnUM8/Fst/93 -zUsTw2eeGo3K7SUm/pfq2PJ+bBXpbPYPMok+6LiAf9i7OR7cQuEpS7L46FCI6Slx -zNFMpKsMOCz3NQ1lfZ6uRg4w5DkP15fUx9frflD7GeClW1V6s5JWm73hSz18akuW -lHC/Q0hPgPRcuGH9hv113yfMayNbhzXLQs56F2ANjI0gi5bl8jlZ59bBgyh96Ynl -5IqEOtA0d/qkDnmQ+1BokplEw1AW+MFnoYQrIIs= +MIIDtDCCApwCFHLqUfN6FA1LB6nlHUvTkGRaBSLXMA0GCSqGSIb3DQEBCwUAMIGR +MQswCQYDVQQGEwJVUzERMA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJv +aXQxFDASBgNVBAoMC0ZPUkRfU0VSVkVSMRgwFgYDVQQLDA9GT1JEX1NETF9TRVJW +RVIxDTALBgNVBAMMBEZPUkQxHjAcBgkqhkiG9w0BCQEWD3NhbXBsZUBmb3JkLmNv +bTAeFw0xNzEyMDExMzQ2MzdaFw00NTA0MTgxMzQ2MzdaMIGaMQswCQYDVQQGEwJS +VTEPMA0GA1UECAwGUnVzc2lhMRcwFQYDVQQHDA5TdC4gUGV0ZXJzYnVyZzEPMA0G +A1UECgwGTHV4b2Z0MQ8wDQYDVQQLDAZNb2JpbGUxDzANBgNVBAMMBnNlcnZlcjEg +MB4GCSqGSIb3DQEJARYRc2FtcGxlQGx1eG9mdC5jb20xDDAKBgNVBAUTA1NQVDCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN0PCBMoZX0Y/G9mgLmJX21Z +cXdfvrW1q8OgObWuHfnlDo/UVXGfKeRSIRRsVx0ua6CynQYIl5pIKCuhzwSJNMd2 +tb3IFG7NbCrxjpPvamORHszfG8HMrtUXzo2ok7GOaw8fXoqo3WkBDBQ4MrR6I8Ji +SAJo1nStGHGb31wzBPTEpFUqKOHWvZpIO1UtMkr+K0S08tGc6PV7J8SDaqMKpMmc +MQwhMQy4Z6u55NYJn06tFpcCMJg+4e/xfmojWNHDJL4hgLjcg1Qyw4WfAdlYujlH +beH6fCNCymRkWtahy5+zzTqHYcCGtxBbAcdgnGsj8zpG57qpSi+zLIpUojo8si0C +AwEAATANBgkqhkiG9w0BAQsFAAOCAQEAQwd7Zy4rurSmbk1KhcCmBCfsS3InM4Is +60gv6b+LuvQFpZ5zJZW7fiAXIWw6/soc4naTCA1sFcbp0kg6KnDtHMIQwHjfIUyY +9YbQiJ7p82BjYUr1cpz3emBvPYud39Y8wEJSIORQUceQ37tczr5bJ4zaB0hjf8C2 +1TgUEAgeJ3T17et3OoFDCjKs9o1jJkV1IL3PUsYqkCPsC+0qmCZsFT3TCAyMQkpm +rVJnz/FVIxjK1Snh6lVK48oZm9xbfgj2MW2obGCLshFuRTgJG8sLxBQ/Xinblisw +R3HNb56iaAKoy4H8w44UvMzP+n6tE8JN9byAGXpvYLoUDsTVmG1rgw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIEBzCCAu+gAwIBAgIJAL9pcY0U8s0NMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEXMBUGA1UEBwwOU2lsaWNvbiBW -YWxsZXkxEzARBgNVBAoMCkNBY2VydC5vcmcxDzANBgNVBAsMBkNBY2VydDEUMBIG -A1UEAwwLY2xpZW50X3Jvb3QxIDAeBgkqhkiG9w0BCQEWEXNhbXBsZUBjYWNlcnQu -b3JnMB4XDTE3MTIwMTEzNDYzNloXDTQ1MDQxODEzNDYzNlowgZkxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQHDA5TaWxpY29uIFZhbGxl -eTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwGQ0FjZXJ0MRQwEgYDVQQD -DAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2FtcGxlQGNhY2VydC5vcmcw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaE8eVv5Uc1bZwrVr0fB4U -VTyadwTJipKx4ui6V8tpRs0Ing6W/eRrsjcVuI1byvQY825YTIvC9Nyk5ZTQc0MN -Y9dJCnNbBCiixnexCK9xH590DjI17c3EhEt5oPxCrFYNR+kUePxt8gzX+uf7uJ1P -8O+Nqc/qIUGWOrLkQD8GMwzHfHgydGwkPkEUVmFUGKhBUsW9NjZTos9Scb2/dzuf -EOlGX/bJuLEIo8XoyM3fAlkVGt/JSpF5uK7L7RsFYRD2qcR+TXpL7cEZoYRgCsKi -7xHrAG4va4fbwvDrPDNp90eK2/0CLfOPJn6dyFN+wOVP3ioCd0WFU0cdWEtvy1Dv -AgMBAAGjUDBOMB0GA1UdDgQWBBTm5kmFsHwcAC4j6apSauKNMeyFHDAfBgNVHSME -GDAWgBTm5kmFsHwcAC4j6apSauKNMeyFHDAMBgNVHRMEBTADAQH/MA0GCSqGSIb3 -DQEBCwUAA4IBAQCSYtx32hNVCi0dMQ/pDlKjyZ27iGyDustwL4+pdzU1bXxQAmD+ -FxxiY15RgsTnM2C3n43d22VnZ3YC8oEE/aTWrG+kksEJ78n1ITOzVX69DwcDI91S -MzfxvgCtLRsPfobGdcllAiby8wGVcLJkXI0/9OiHcDdnc5bewsd0G90yFd5GUOjG -U+az79CMwRuH/o53odMeE3Fte3IwAGaobpn6WjnRkxQqMaEaVp2s1J55z1YqdNWa -JkcqEaWbKaqrHJAeOM1Hj+hISNbPp1fQRm/0U96g00I5EcarD4Io0ut++8rLgAbo -fzGGzbZMBmDvorO75g2GegmNTgTGtuPvQAJo +MIIEFTCCAv2gAwIBAgIUOEqUO6Bkm76DSQ0cEexbcSne39EwDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMTcxMjAxMTM0NjM3WhcNNDUwNDE4MTM0NjM3WjCB +mTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNp +bGljb24gVmFsbGV5MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNl +cnQxFDASBgNVBAMMC2NsaWVudF9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVA +Y2FjZXJ0Lm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALgDjUgR +dC9Bfpw8WZaVqhc0jIIuYtMkN/CGyX5qOv0pW43v1sCdScZTBnqc51PghXVvuo7F +RZVsDzecGgKMD6tOM2OezSO4NJb9XB/m5moymw0c28PAKypX+fSBpa2fD6IpCKB3 +dG1r0zQjn5rd2+Ehaec5wFwaQnwK036kGeaqYEPWWch8dRhUB6+Ln8/47sbW62aK +IlM4dlqWZO0rUqQ5kRZ9PIJddqLfuxxec/0mFFfCpne7abyozbUbZc/ny8O/S80u +sgNKY/XsUrmn2cGHb3j9QMmh4i5ey/KSt2HwBxpAd+JVhzwd870eCS4oJZN547AO +A/xN1JcqWdxPwgkCAwEAAaNTMFEwHQYDVR0OBBYEFIZ1fah7K6Rs0O2hqpDXKg4u +tykhMB8GA1UdIwQYMBaAFIZ1fah7K6Rs0O2hqpDXKg4utykhMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAEO73DjF+GkA07lxLZCqtpGA9jQeDYqt +AXAVKiXSLT7KkYkUwWs6Li74QrhoXRc7sjBLuI/TVUCdNKsSd4r3vS3JC8GY3Hcs +bHS1ab9G3JjYiIPXQxuxzCjlzQsUypJBdTyeBAxhQMvxJEA0643n6d3ANRXtfxHF +0gwUxLq1s61meJqvFCmZHY0HxuOgsR6vOdQ5eL1AdUcVLnAeh3aWb4GssBELQkwg +kB8eqplT1E+e2OIu2DpTgUuPRBESTbFyA3gAJ1UxxDXAobAO1oEWuMDv2waCg+bb +iIP08U4rTK821DyThAK3t/n2Tj9nbM/jNu50iaiqcJBYWX2rnuj/FYI= -----END CERTIFICATE----- +93dd8908 -----BEGIN CERTIFICATE----- -MIIDrzCCApcCCQDtz1iLAYcuKDANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMC -VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNpbGljb24gVmFsbGV5 -MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNlcnQxFDASBgNVBAMM -C2NsaWVudF9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVAY2FjZXJ0Lm9yZzAe -Fw0xNzEyMDExMzQ2MzZaFw00NTA0MTgxMzQ2MzZaMIGYMQswCQYDVQQGEwJVUzER -MA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJvaXQxFDASBgNVBAoMC0ZP -UkRfQ0xJRU5UMRgwFgYDVQQLDA9GT1JEX1NETF9DTElFTlQxFDASBgNVBAMMC0ZP -UkRfQ0xJRU5UMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVAZm9yZC5jb20wggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIWtkYLegvg1iV7AO5JBGQ/cX5rcoX -mcrZTGlAiLcZq9P7uxLFBbrKA4JnGki4wCXmy6oR2JOJwwqSGcgRHcw2ZXhUdffM -fkbZ2fec/0N3WIWGLAvAWEY4s+5+3uTgX+1AcQ8THZWjjO+vr8neF5K76etqIs53 -an09Q+yAogr1SAitc/zOUHzySR+6rBccQTwVmX60FljZHIoTl4InFGpJ8NuCMQ3Z -iYsV3dO4uFbrHq9Iwwjzx8qXBm+91YtEvYdtwzZ2fSk6DRz10CmOcIET7C9q55hh -H9NvDFZQ16la1t9j6oQhkdz/A5RkxVQlQ2RR/9rJ/w10d1V4yylTyX4DAgMBAAEw -DQYJKoZIhvcNAQELBQADggEBACyETxrD5pxVJyl39eu/D5wpLFnagqmMHrGe/pkT -fGcpiAk4EB+hcfTWU1EUV6Wy47K6ShrznZYrPwVx0SAHJ9+V55h8DnlqhoDEBsUY -2/RW5l8lPTwssQQIyHMhGkkwopX3O2mfykTMiKRtzyYYzXo842CgRJvL/L6T4RZ1 -gYNXwBGNYJXXM/w0K/4vN+2b053dohy/zuXyOKNNXJL5dEPO2v1FJPPFJmA7011Z -kbIJPpueH6pchocCrFCuSpsT7g5mWyC1d4IZMu/syUY5dwI2Tu9J4e0TlF2Nzlzx -6Fz5xXTcUshc5i66S3qKqvH/gKdmdKCUHnikF0ngoxTimD0= +MIID1DCCArygAwIBAgIUNEiVAruB204YoqEDoUo0PPv4wr4wDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMTcxMjAxMTM0NjM3WhcNNDUwNDE4MTM0NjM3WjCB +mDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRy +b2l0MRQwEgYDVQQKDAtGT1JEX0NMSUVOVDEYMBYGA1UECwwPRk9SRF9TRExfQ0xJ +RU5UMRQwEgYDVQQDDAtGT1JEX0NMSUVOVDEeMBwGCSqGSIb3DQEJARYPc2FtcGxl +QGZvcmQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxlBeAGyx +zpMdtP0EkbHmR51fGd8nkJQzsm7827Q+D3vuMj7R9TJt8nVqN0XLrtgXztGYGyRi +zVt+rxqgMKgrIJflGaTKDgZ/PSTZkw/V0zRutOcU7ep5nyLOkyFEw14Jn9aZTSIn +ibbKIMa0jhh4boKZZiZ/u0c+yq4KZaDMcTY7sYD+zV8SVat+8u6Yw56+xJscG6zN +xFbXqNNzbAU+Ntj/piRf1sthq+FT0YeKH/sNf3NoIEZ5VC41OgWlDQFL8rckUrJ/ +FGzTBksRuTl0I/zgHHEa9Ir1hlzHSwGTLNsFbuDEspKm/RhbAZ9GkkTLYfZkh4cq +UVVuAAd6QxFAEwIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB +CwUAA4IBAQB7ODk4JBOGMb9nKdorPXpwBXqRNS/3yywQT02GnHcaH04GoHPcT4w/ +6+PvE5RjYAayUS4aggZ73A5REN6fXCROX9aF4cfvRj5iEqGE/S2sQ0uMCq1OtF8q +7gVu+pclcpbjlL0uVCJOucnQwDD5Uy/+cSkHFeiaDoyl/FZJ/Ldh35c992R+J46C +Pu9as4QApyuNY/rhMfIkudxLWtsHWWag9eo7Oyfgu0Q36pVtw0TKUhpvXlE9Cs79 +Y076A/xBaHTxaPAmjY9F6v9Hyk0wU1K+eXl27l1WF9fFSX183O/zIaYwwStxAfMB +4FoD4Ps8h4frINllWzZL4tW16kh0lfqI -----END CERTIFICATE----- diff --git a/files/Security/spt_credential_2.pem b/files/Security/spt_credential_2.pem index 4ed520b862..a52722d73d 100644 --- a/files/Security/spt_credential_2.pem +++ b/files/Security/spt_credential_2.pem @@ -1,95 +1,98 @@ -----BEGIN RSA PRIVATE KEY----- -MIIEpQIBAAKCAQEAzCAvUx1+/FIYYJHj54u5Wx8XcP/4YAVmLecqAgFk2HHA0hBe -EH5uJDtn+oylSjGahO74r2gnHtw4f/JLL4yDGpE8jaTTlpBVqTCHUWoWHAa5m4lo -8RoGdB9yiwVKq6rOvSQz1mPd83lMeinQowJcXCfpCllYnYoMZJ+2X9uQ0oU+62m6 -SDIo33z2XXI24INjWThR8Avc9A50ATZVYHVAkIeoY0JC+jBuGAlQcjSoO7m/9FxI -ZVjhKyegKlmZVaGUWfmnZVdPWED9D8q5OT6qVfuO/SQXR6diG6D3+NNCbxYhgJ3v -kmkzPsdvPwIoM738JxVfshrHPw5v1awE8+YnwwIDAQABAoIBAQCXgBe/x3eVTFUd -b4pIM1LqB4R9cO3mTnuM/DIYdPJlFuB2yIEYGs4ihBjjQ3n2PCSkHz1h6pqGdApX -I/ybmN1BXaQkuL311MBPJ153lZY9TNx7TRwfPiKmEyUPe2j1SnvQs8rphwuXhmK1 -lM1t/vWPzGtRLAjyPCCAmm1gbfTp2XoBzVqEum26U8zDdcmHy3QPbBv+Z8tovWvK -/4NBUVljOmhfzkhP2tRrTjh35K0Ybb5gby4z1UpkBVwMf4BJ7X5t2b9Av0J0OXi1 -RldT8dqUM/4yGzKDp8+thFk0FO6+VUwihyTdEmT6cSEKzl0VI8nWasS0Idoksly1 -Bow1n3+5AoGBAOfK/O+NBqkKL8hnU847gAKXoBFJLGrSs3d+TljnSZfYUbSSoJgu -42M8Z1MMuArKkjYYYhxOjXMLkwhA3qUPohBtlEgR4D5adHTeo6Kz+CX+lmr22KWz -Nc/O8KnPoQFWXPF/H+dH8y5VAqbeiIPTjlr0QmX53h3HXH7jVjpMHCO3AoGBAOFx -gsjWBFsLt/i6w7SWWw5M+aX6h7Y11bfHa0GBHq06GpjfpL7UcS6tc492FJXrqc4m -1KYKAhNCq6aEiumynODuIxrRz/wKuwxqvEbGqEkvNWx/CvPHKBurL8XIUurts/gp -GGVESpaXCHEjCu82sV6Gb1xwcNah1WrTh3aKXBRVAoGAK0FgLjv9EDKMdDOEGipU -Wyd8gX1MQqsLPrNdX43Z1/JQXQg32+50FKLDDWaEOc9PtbSbKnkmQF/akmG4qsje -D37DeyeK11f9/4lEtCotlrmJzHBAQbvNwPf3RVkvzJYXRiHZDEoLAYxvsEA67Y7f -M+39LhaQ8rGveyZlgv+NCMUCgYEAr4ek7+CK5aS7KkOoaywCW6EdY9kr33gNHhl7 -7jWtf+zUlqDS8e4Q7eoJJvMmVhB2VtevDFSQhxSK940NZ6Y1NYDU/mXMTY7BUoqs -a2Lz1n+WVhKYoXQ4S0q/WHx/6wEG9jpxDy/b72JLJWPGeLiZ42JCxLObd9HrjFCE -kYxq4z0CgYEAm4tvJ/Z0P2jrfY09a6BY6Lwdc1B8OOhalE0uBNX/6qRCxeccYSNR -RNVGCre+pBR90RkQJ2RnxBj0NECMCWSiB5JfgpkQ9a+ocdootVkgx56y3htWtOQz -iKpvaseklsE5FKyB9OGN5uQUfVkaUCG5mEQkYINTnH3l4irFIbRM5tg= +MIIEpQIBAAKCAQEA1mdg3mGvqHgnhoifzH2ryOTCfwEPv+VbyJ/y0bpRegB9eXU1 +K4R43An2YPJOjQjmEwYtCUIv0RhWSPmdDrUhf6IK06QqzW2hYIPYWMvDo5m3jibl +tSXKoLNN2ByGafvBiFcr6JzLSjg8EDTW4UFH8hzoGvUzio1O1EPsAVFCr0oCwTnw +Lq2gxiqsIz9WdznTRViJZo9kXfNSLaN3nDMGom/N+3QhyvPAj6+YmTXzJZC26amj +c42TpwBVKNfOZj9tgHRyumjSKNveXmT+2DqwXit0JXQxjro7njJeEiIHiKtQkgLq +/r4e10fVkGuZqKJUkb/8ZolDLODvv0PX/+YHqQIDAQABAoIBAQCDcFLpYfefDzIj +/sQASBa1DNDTrWHrYX94Kd5hhpiGc6B4gks7R3YUZyMc4c8YFRl/Fi0r3OCVjhbv +m98V8iL8LOn4P09iKtBg69MI9LoWJJlr0xrFh8qF5AZX83zPomBN5irr6puR/5GK +2enVpACoQ+JjDGkxilmGNbGMSTXZYSWptcQnjv3cHuAH1bEiV557fBoMFCZGhTCu +a5dgbus16LhEqruu2TLIdgcQWLa98Xc3VSyRBxNFKrQma7d2bQD52ppoVT4crO5d +ugBKOHZ86rwShcFSBew8jGwDDlWRJ7AHsgfhsZNAL94yyr8eRslZcq+dE3zvzl0i +TyFV0rJRAoGBAO8JEXd1kTh+aSpnoWUR7JEALC/i5XMR2l0G5ObYUG9R2gYJst++ +8sv1797yT4oz9hPf8Gt7TAuqOgwNZuJm23LBv00NzOIZNe42VSZ98t67HVY7kCUn +yNkGFHOYY1NMHe7bGmTIFDzF50Uky4BohgWyjS4pWr3gCB9GCnO8aOs1AoGBAOWe +ygkyAJXbavOCefSHyZ5V8+4pNv4yJgZgdv+o79cfhcsE/CnA/T44+0XSqbsNky/t +HjS86urYKy/9HlgRouyJZ11oqZVTv/DxQXMT6XKs7hX6plapGY0kYa7QNUeEhsxm +y5LP9b8DAGyEeCrHdGaS0CNI9MeB+sA/Ixr4FAUlAoGAYyce0K+68nU1SHq+Lv+V +Yrxwl9iFlwrTynzenIckLlkEmDaTtU4uxr4YpyFaLxjIvYvJ3bvCWqBc/bzdbZJ+ ++wY1RVAxKaSNg2eUQKhEA3IYhDmm3FK5dJSaDS0sHlRXoknOk/mOs3rgKQVPSM+S +sHBVMc3DrzlsBRT3pvSDjPUCgYEAzWHBPoZOBbxTpmlPIgyOpyQkYiLVQHqkjlGc +PsLhe96DMntL/SDUouIexm5OSLQ0scp6mRtdWB9wSaUyjf2AZ+fi36btAFb/uMhi +DUeDKIJLFreyLpNj+l3PTaiH72c3lv5fGfsOyQIrT+URAtqSX+jzaIwp/YViPrB6 +evXoGk0CgYEAlt+kFgRZtBpYOFN6EA7DIZR8QERAZIvbvweyizOm23VF0IOH/G8Y +rA/bCIBwZI0lUGGgN1hPunSkTZGNI9NJ3ENoAPu5rnGrBAzp/krI7sqq2HUTQiLq +DAZPl15NcBwcTKFauzb8yyq29f1SRQCMlQ/v5KTleXIhYOvKS204dkI= -----END RSA PRIVATE KEY----- +6c87165e -----BEGIN CERTIFICATE----- -MIIDqjCCApICCQDuxrkrOSj11jANBgkqhkiG9w0BAQsFADCBkTELMAkGA1UEBhMC -VVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRyb2l0MRQwEgYDVQQK -DAtGT1JEX1NFUlZFUjEYMBYGA1UECwwPRk9SRF9TRExfU0VSVkVSMQ0wCwYDVQQD -DARGT1JEMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVAZm9yZC5jb20wHhcNMTcxMjAx -MTM0NjM3WhcNNDUwNDE4MTM0NjM3WjCBmzELMAkGA1UEBhMCUlUxDzANBgNVBAgM -BlJ1c3NpYTEXMBUGA1UEBwwOU3QuIFBldGVyc2J1cmcxDzANBgNVBAoMBkx1eG9m -dDEPMA0GA1UECwwGTW9iaWxlMQ8wDQYDVQQDDAZzZXJ2ZXIxIDAeBgkqhkiG9w0B -CQEWEXNhbXBsZUBsdXhvZnQuY29tMQ0wCwYDVQQFEwRTUFQyMIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzCAvUx1+/FIYYJHj54u5Wx8XcP/4YAVmLecq -AgFk2HHA0hBeEH5uJDtn+oylSjGahO74r2gnHtw4f/JLL4yDGpE8jaTTlpBVqTCH -UWoWHAa5m4lo8RoGdB9yiwVKq6rOvSQz1mPd83lMeinQowJcXCfpCllYnYoMZJ+2 -X9uQ0oU+62m6SDIo33z2XXI24INjWThR8Avc9A50ATZVYHVAkIeoY0JC+jBuGAlQ -cjSoO7m/9FxIZVjhKyegKlmZVaGUWfmnZVdPWED9D8q5OT6qVfuO/SQXR6diG6D3 -+NNCbxYhgJ3vkmkzPsdvPwIoM738JxVfshrHPw5v1awE8+YnwwIDAQABMA0GCSqG -SIb3DQEBCwUAA4IBAQBkvVHJK7zR6xSOe4v3Swy+zIujCsEiVqrLZV+H/Kh3/Sj4 -pC78BYCpKhyvjhOJuQlHx3uwt/X4gtbcY6u8yAuMqtz1d/nak/oI8zUP10IlJoPV -ARM7HBq6wy34cYep7+Gv5H9Kjf5ZZdmUXBVLdjyhHfgh+5oxq+P1SlBKNoxFOy7q -2ATs9aQaJSu4fp0y3eiddJwgtmO9fx3zfeVbxLVZ585ymtRBWgO4ljevplC5rOEs -jXGkLO5dmmQyYiCkVQjaBm/nZ9Lq3P5W2F7+DHyomB/gv0se9eiA1ZN9fFxTcwIc -NP1ZA7b4iXvampednGY7iesm5LBcqZWRTlczq7Eg +MIIDtTCCAp0CFHLqUfN6FA1LB6nlHUvTkGRaBSLYMA0GCSqGSIb3DQEBCwUAMIGR +MQswCQYDVQQGEwJVUzERMA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJv +aXQxFDASBgNVBAoMC0ZPUkRfU0VSVkVSMRgwFgYDVQQLDA9GT1JEX1NETF9TRVJW +RVIxDTALBgNVBAMMBEZPUkQxHjAcBgkqhkiG9w0BCQEWD3NhbXBsZUBmb3JkLmNv +bTAeFw0xNzEyMDExMzQ2MzhaFw00NTA0MTgxMzQ2MzhaMIGbMQswCQYDVQQGEwJS +VTEPMA0GA1UECAwGUnVzc2lhMRcwFQYDVQQHDA5TdC4gUGV0ZXJzYnVyZzEPMA0G +A1UECgwGTHV4b2Z0MQ8wDQYDVQQLDAZNb2JpbGUxDzANBgNVBAMMBnNlcnZlcjEg +MB4GCSqGSIb3DQEJARYRc2FtcGxlQGx1eG9mdC5jb20xDTALBgNVBAUTBFNQVDIw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWZ2DeYa+oeCeGiJ/MfavI +5MJ/AQ+/5VvIn/LRulF6AH15dTUrhHjcCfZg8k6NCOYTBi0JQi/RGFZI+Z0OtSF/ +ogrTpCrNbaFgg9hYy8OjmbeOJuW1Jcqgs03YHIZp+8GIVyvonMtKODwQNNbhQUfy +HOga9TOKjU7UQ+wBUUKvSgLBOfAuraDGKqwjP1Z3OdNFWIlmj2Rd81Ito3ecMwai +b837dCHK88CPr5iZNfMlkLbpqaNzjZOnAFUo185mP22AdHK6aNIo295eZP7YOrBe +K3QldDGOujueMl4SIgeIq1CSAur+vh7XR9WQa5moolSRv/xmiUMs4O+/Q9f/5gep +AgMBAAEwDQYJKoZIhvcNAQELBQADggEBACZ01NENKOLAbUhHTDhFKQVt/BZd3qiM +gUAW8E2E16o3VbP6SE84NqLqTVekqQ133zuAjw3XZnKSwlnRSaZw1wQkZWGhEVe3 +dTv6jVIhNVpAsh6HCWKs/8ngAEN4jC30cXV0rnuLnB0JwJdl4XZ+QHPR4C39aFRw +26AMykUq2QpsuD17aeXco/4owINwrmlJQGRoF9dgu+mwBuYVzcIANzIoBV1lD+Jy +//dacXAEv/1Sz0GwAmnAGrnVKqjGuKAI4+I2LplZwMQybKy/rPej32JNoZKee3Gr +XAIi45tFDixACPy+z4c6f6B+F15+Q3Il6IrWRp/Yke6WClSjvYBoWXc= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIEBzCCAu+gAwIBAgIJAL9pcY0U8s0NMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEXMBUGA1UEBwwOU2lsaWNvbiBW -YWxsZXkxEzARBgNVBAoMCkNBY2VydC5vcmcxDzANBgNVBAsMBkNBY2VydDEUMBIG -A1UEAwwLY2xpZW50X3Jvb3QxIDAeBgkqhkiG9w0BCQEWEXNhbXBsZUBjYWNlcnQu -b3JnMB4XDTE3MTIwMTEzNDYzNloXDTQ1MDQxODEzNDYzNlowgZkxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQHDA5TaWxpY29uIFZhbGxl -eTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwGQ0FjZXJ0MRQwEgYDVQQD -DAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2FtcGxlQGNhY2VydC5vcmcw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaE8eVv5Uc1bZwrVr0fB4U -VTyadwTJipKx4ui6V8tpRs0Ing6W/eRrsjcVuI1byvQY825YTIvC9Nyk5ZTQc0MN -Y9dJCnNbBCiixnexCK9xH590DjI17c3EhEt5oPxCrFYNR+kUePxt8gzX+uf7uJ1P -8O+Nqc/qIUGWOrLkQD8GMwzHfHgydGwkPkEUVmFUGKhBUsW9NjZTos9Scb2/dzuf -EOlGX/bJuLEIo8XoyM3fAlkVGt/JSpF5uK7L7RsFYRD2qcR+TXpL7cEZoYRgCsKi -7xHrAG4va4fbwvDrPDNp90eK2/0CLfOPJn6dyFN+wOVP3ioCd0WFU0cdWEtvy1Dv -AgMBAAGjUDBOMB0GA1UdDgQWBBTm5kmFsHwcAC4j6apSauKNMeyFHDAfBgNVHSME -GDAWgBTm5kmFsHwcAC4j6apSauKNMeyFHDAMBgNVHRMEBTADAQH/MA0GCSqGSIb3 -DQEBCwUAA4IBAQCSYtx32hNVCi0dMQ/pDlKjyZ27iGyDustwL4+pdzU1bXxQAmD+ -FxxiY15RgsTnM2C3n43d22VnZ3YC8oEE/aTWrG+kksEJ78n1ITOzVX69DwcDI91S -MzfxvgCtLRsPfobGdcllAiby8wGVcLJkXI0/9OiHcDdnc5bewsd0G90yFd5GUOjG -U+az79CMwRuH/o53odMeE3Fte3IwAGaobpn6WjnRkxQqMaEaVp2s1J55z1YqdNWa -JkcqEaWbKaqrHJAeOM1Hj+hISNbPp1fQRm/0U96g00I5EcarD4Io0ut++8rLgAbo -fzGGzbZMBmDvorO75g2GegmNTgTGtuPvQAJo +MIIEFTCCAv2gAwIBAgIUOEqUO6Bkm76DSQ0cEexbcSne39EwDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMTcxMjAxMTM0NjM3WhcNNDUwNDE4MTM0NjM3WjCB +mTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNp +bGljb24gVmFsbGV5MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNl +cnQxFDASBgNVBAMMC2NsaWVudF9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVA +Y2FjZXJ0Lm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALgDjUgR +dC9Bfpw8WZaVqhc0jIIuYtMkN/CGyX5qOv0pW43v1sCdScZTBnqc51PghXVvuo7F +RZVsDzecGgKMD6tOM2OezSO4NJb9XB/m5moymw0c28PAKypX+fSBpa2fD6IpCKB3 +dG1r0zQjn5rd2+Ehaec5wFwaQnwK036kGeaqYEPWWch8dRhUB6+Ln8/47sbW62aK +IlM4dlqWZO0rUqQ5kRZ9PIJddqLfuxxec/0mFFfCpne7abyozbUbZc/ny8O/S80u +sgNKY/XsUrmn2cGHb3j9QMmh4i5ey/KSt2HwBxpAd+JVhzwd870eCS4oJZN547AO +A/xN1JcqWdxPwgkCAwEAAaNTMFEwHQYDVR0OBBYEFIZ1fah7K6Rs0O2hqpDXKg4u +tykhMB8GA1UdIwQYMBaAFIZ1fah7K6Rs0O2hqpDXKg4utykhMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAEO73DjF+GkA07lxLZCqtpGA9jQeDYqt +AXAVKiXSLT7KkYkUwWs6Li74QrhoXRc7sjBLuI/TVUCdNKsSd4r3vS3JC8GY3Hcs +bHS1ab9G3JjYiIPXQxuxzCjlzQsUypJBdTyeBAxhQMvxJEA0643n6d3ANRXtfxHF +0gwUxLq1s61meJqvFCmZHY0HxuOgsR6vOdQ5eL1AdUcVLnAeh3aWb4GssBELQkwg +kB8eqplT1E+e2OIu2DpTgUuPRBESTbFyA3gAJ1UxxDXAobAO1oEWuMDv2waCg+bb +iIP08U4rTK821DyThAK3t/n2Tj9nbM/jNu50iaiqcJBYWX2rnuj/FYI= -----END CERTIFICATE----- +93dd8908 -----BEGIN CERTIFICATE----- -MIIDrzCCApcCCQDtz1iLAYcuKDANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMC -VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNpbGljb24gVmFsbGV5 -MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNlcnQxFDASBgNVBAMM -C2NsaWVudF9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVAY2FjZXJ0Lm9yZzAe -Fw0xNzEyMDExMzQ2MzZaFw00NTA0MTgxMzQ2MzZaMIGYMQswCQYDVQQGEwJVUzER -MA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJvaXQxFDASBgNVBAoMC0ZP -UkRfQ0xJRU5UMRgwFgYDVQQLDA9GT1JEX1NETF9DTElFTlQxFDASBgNVBAMMC0ZP -UkRfQ0xJRU5UMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVAZm9yZC5jb20wggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIWtkYLegvg1iV7AO5JBGQ/cX5rcoX -mcrZTGlAiLcZq9P7uxLFBbrKA4JnGki4wCXmy6oR2JOJwwqSGcgRHcw2ZXhUdffM -fkbZ2fec/0N3WIWGLAvAWEY4s+5+3uTgX+1AcQ8THZWjjO+vr8neF5K76etqIs53 -an09Q+yAogr1SAitc/zOUHzySR+6rBccQTwVmX60FljZHIoTl4InFGpJ8NuCMQ3Z -iYsV3dO4uFbrHq9Iwwjzx8qXBm+91YtEvYdtwzZ2fSk6DRz10CmOcIET7C9q55hh -H9NvDFZQ16la1t9j6oQhkdz/A5RkxVQlQ2RR/9rJ/w10d1V4yylTyX4DAgMBAAEw -DQYJKoZIhvcNAQELBQADggEBACyETxrD5pxVJyl39eu/D5wpLFnagqmMHrGe/pkT -fGcpiAk4EB+hcfTWU1EUV6Wy47K6ShrznZYrPwVx0SAHJ9+V55h8DnlqhoDEBsUY -2/RW5l8lPTwssQQIyHMhGkkwopX3O2mfykTMiKRtzyYYzXo842CgRJvL/L6T4RZ1 -gYNXwBGNYJXXM/w0K/4vN+2b053dohy/zuXyOKNNXJL5dEPO2v1FJPPFJmA7011Z -kbIJPpueH6pchocCrFCuSpsT7g5mWyC1d4IZMu/syUY5dwI2Tu9J4e0TlF2Nzlzx -6Fz5xXTcUshc5i66S3qKqvH/gKdmdKCUHnikF0ngoxTimD0= +MIID1DCCArygAwIBAgIUNEiVAruB204YoqEDoUo0PPv4wr4wDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMTcxMjAxMTM0NjM3WhcNNDUwNDE4MTM0NjM3WjCB +mDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRy +b2l0MRQwEgYDVQQKDAtGT1JEX0NMSUVOVDEYMBYGA1UECwwPRk9SRF9TRExfQ0xJ +RU5UMRQwEgYDVQQDDAtGT1JEX0NMSUVOVDEeMBwGCSqGSIb3DQEJARYPc2FtcGxl +QGZvcmQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxlBeAGyx +zpMdtP0EkbHmR51fGd8nkJQzsm7827Q+D3vuMj7R9TJt8nVqN0XLrtgXztGYGyRi +zVt+rxqgMKgrIJflGaTKDgZ/PSTZkw/V0zRutOcU7ep5nyLOkyFEw14Jn9aZTSIn +ibbKIMa0jhh4boKZZiZ/u0c+yq4KZaDMcTY7sYD+zV8SVat+8u6Yw56+xJscG6zN +xFbXqNNzbAU+Ntj/piRf1sthq+FT0YeKH/sNf3NoIEZ5VC41OgWlDQFL8rckUrJ/ +FGzTBksRuTl0I/zgHHEa9Ir1hlzHSwGTLNsFbuDEspKm/RhbAZ9GkkTLYfZkh4cq +UVVuAAd6QxFAEwIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB +CwUAA4IBAQB7ODk4JBOGMb9nKdorPXpwBXqRNS/3yywQT02GnHcaH04GoHPcT4w/ +6+PvE5RjYAayUS4aggZ73A5REN6fXCROX9aF4cfvRj5iEqGE/S2sQ0uMCq1OtF8q +7gVu+pclcpbjlL0uVCJOucnQwDD5Uy/+cSkHFeiaDoyl/FZJ/Ldh35c992R+J46C +Pu9as4QApyuNY/rhMfIkudxLWtsHWWag9eo7Oyfgu0Q36pVtw0TKUhpvXlE9Cs79 +Y076A/xBaHTxaPAmjY9F6v9Hyk0wU1K+eXl27l1WF9fFSX183O/zIaYwwStxAfMB +4FoD4Ps8h4frINllWzZL4tW16kh0lfqI -----END CERTIFICATE----- diff --git a/files/Security/spt_credential_expired.pem b/files/Security/spt_credential_expired.pem index 243cf8edc0..4b8d49761c 100644 --- a/files/Security/spt_credential_expired.pem +++ b/files/Security/spt_credential_expired.pem @@ -1,35 +1,35 @@ -----BEGIN RSA PRIVATE KEY----- -MIIEpQIBAAKCAQEAzCAvUx1+/FIYYJHj54u5Wx8XcP/4YAVmLecqAgFk2HHA0hBe -EH5uJDtn+oylSjGahO74r2gnHtw4f/JLL4yDGpE8jaTTlpBVqTCHUWoWHAa5m4lo -8RoGdB9yiwVKq6rOvSQz1mPd83lMeinQowJcXCfpCllYnYoMZJ+2X9uQ0oU+62m6 -SDIo33z2XXI24INjWThR8Avc9A50ATZVYHVAkIeoY0JC+jBuGAlQcjSoO7m/9FxI -ZVjhKyegKlmZVaGUWfmnZVdPWED9D8q5OT6qVfuO/SQXR6diG6D3+NNCbxYhgJ3v -kmkzPsdvPwIoM738JxVfshrHPw5v1awE8+YnwwIDAQABAoIBAQCXgBe/x3eVTFUd -b4pIM1LqB4R9cO3mTnuM/DIYdPJlFuB2yIEYGs4ihBjjQ3n2PCSkHz1h6pqGdApX -I/ybmN1BXaQkuL311MBPJ153lZY9TNx7TRwfPiKmEyUPe2j1SnvQs8rphwuXhmK1 -lM1t/vWPzGtRLAjyPCCAmm1gbfTp2XoBzVqEum26U8zDdcmHy3QPbBv+Z8tovWvK -/4NBUVljOmhfzkhP2tRrTjh35K0Ybb5gby4z1UpkBVwMf4BJ7X5t2b9Av0J0OXi1 -RldT8dqUM/4yGzKDp8+thFk0FO6+VUwihyTdEmT6cSEKzl0VI8nWasS0Idoksly1 -Bow1n3+5AoGBAOfK/O+NBqkKL8hnU847gAKXoBFJLGrSs3d+TljnSZfYUbSSoJgu -42M8Z1MMuArKkjYYYhxOjXMLkwhA3qUPohBtlEgR4D5adHTeo6Kz+CX+lmr22KWz -Nc/O8KnPoQFWXPF/H+dH8y5VAqbeiIPTjlr0QmX53h3HXH7jVjpMHCO3AoGBAOFx -gsjWBFsLt/i6w7SWWw5M+aX6h7Y11bfHa0GBHq06GpjfpL7UcS6tc492FJXrqc4m -1KYKAhNCq6aEiumynODuIxrRz/wKuwxqvEbGqEkvNWx/CvPHKBurL8XIUurts/gp -GGVESpaXCHEjCu82sV6Gb1xwcNah1WrTh3aKXBRVAoGAK0FgLjv9EDKMdDOEGipU -Wyd8gX1MQqsLPrNdX43Z1/JQXQg32+50FKLDDWaEOc9PtbSbKnkmQF/akmG4qsje -D37DeyeK11f9/4lEtCotlrmJzHBAQbvNwPf3RVkvzJYXRiHZDEoLAYxvsEA67Y7f -M+39LhaQ8rGveyZlgv+NCMUCgYEAr4ek7+CK5aS7KkOoaywCW6EdY9kr33gNHhl7 -7jWtf+zUlqDS8e4Q7eoJJvMmVhB2VtevDFSQhxSK940NZ6Y1NYDU/mXMTY7BUoqs -a2Lz1n+WVhKYoXQ4S0q/WHx/6wEG9jpxDy/b72JLJWPGeLiZ42JCxLObd9HrjFCE -kYxq4z0CgYEAm4tvJ/Z0P2jrfY09a6BY6Lwdc1B8OOhalE0uBNX/6qRCxeccYSNR -RNVGCre+pBR90RkQJ2RnxBj0NECMCWSiB5JfgpkQ9a+ocdootVkgx56y3htWtOQz -iKpvaseklsE5FKyB9OGN5uQUfVkaUCG5mEQkYINTnH3l4irFIbRM5tg= +MIIEpQIBAAKCAQEA1mdg3mGvqHgnhoifzH2ryOTCfwEPv+VbyJ/y0bpRegB9eXU1 +K4R43An2YPJOjQjmEwYtCUIv0RhWSPmdDrUhf6IK06QqzW2hYIPYWMvDo5m3jibl +tSXKoLNN2ByGafvBiFcr6JzLSjg8EDTW4UFH8hzoGvUzio1O1EPsAVFCr0oCwTnw +Lq2gxiqsIz9WdznTRViJZo9kXfNSLaN3nDMGom/N+3QhyvPAj6+YmTXzJZC26amj +c42TpwBVKNfOZj9tgHRyumjSKNveXmT+2DqwXit0JXQxjro7njJeEiIHiKtQkgLq +/r4e10fVkGuZqKJUkb/8ZolDLODvv0PX/+YHqQIDAQABAoIBAQCDcFLpYfefDzIj +/sQASBa1DNDTrWHrYX94Kd5hhpiGc6B4gks7R3YUZyMc4c8YFRl/Fi0r3OCVjhbv +m98V8iL8LOn4P09iKtBg69MI9LoWJJlr0xrFh8qF5AZX83zPomBN5irr6puR/5GK +2enVpACoQ+JjDGkxilmGNbGMSTXZYSWptcQnjv3cHuAH1bEiV557fBoMFCZGhTCu +a5dgbus16LhEqruu2TLIdgcQWLa98Xc3VSyRBxNFKrQma7d2bQD52ppoVT4crO5d +ugBKOHZ86rwShcFSBew8jGwDDlWRJ7AHsgfhsZNAL94yyr8eRslZcq+dE3zvzl0i +TyFV0rJRAoGBAO8JEXd1kTh+aSpnoWUR7JEALC/i5XMR2l0G5ObYUG9R2gYJst++ +8sv1797yT4oz9hPf8Gt7TAuqOgwNZuJm23LBv00NzOIZNe42VSZ98t67HVY7kCUn +yNkGFHOYY1NMHe7bGmTIFDzF50Uky4BohgWyjS4pWr3gCB9GCnO8aOs1AoGBAOWe +ygkyAJXbavOCefSHyZ5V8+4pNv4yJgZgdv+o79cfhcsE/CnA/T44+0XSqbsNky/t +HjS86urYKy/9HlgRouyJZ11oqZVTv/DxQXMT6XKs7hX6plapGY0kYa7QNUeEhsxm +y5LP9b8DAGyEeCrHdGaS0CNI9MeB+sA/Ixr4FAUlAoGAYyce0K+68nU1SHq+Lv+V +Yrxwl9iFlwrTynzenIckLlkEmDaTtU4uxr4YpyFaLxjIvYvJ3bvCWqBc/bzdbZJ+ ++wY1RVAxKaSNg2eUQKhEA3IYhDmm3FK5dJSaDS0sHlRXoknOk/mOs3rgKQVPSM+S +sHBVMc3DrzlsBRT3pvSDjPUCgYEAzWHBPoZOBbxTpmlPIgyOpyQkYiLVQHqkjlGc +PsLhe96DMntL/SDUouIexm5OSLQ0scp6mRtdWB9wSaUyjf2AZ+fi36btAFb/uMhi +DUeDKIJLFreyLpNj+l3PTaiH72c3lv5fGfsOyQIrT+URAtqSX+jzaIwp/YViPrB6 +evXoGk0CgYEAlt+kFgRZtBpYOFN6EA7DIZR8QERAZIvbvweyizOm23VF0IOH/G8Y +rA/bCIBwZI0lUGGgN1hPunSkTZGNI9NJ3ENoAPu5rnGrBAzp/krI7sqq2HUTQiLq +DAZPl15NcBwcTKFauzb8yyq29f1SRQCMlQ/v5KTleXIhYOvKS204dkI= -----END RSA PRIVATE KEY----- Certificate: Data: Version: 1 (0x0) Serial Number: 1 (0x1) - Signature Algorithm: md5WithRSAEncryption + Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=Michigan, L=Detroit, O=FORD_SERVER, OU=FORD_SDL_SERVER, CN=FORD/emailAddress=sample@ford.com Validity Not Before: Jan 1 00:00:00 2015 GMT @@ -37,45 +37,45 @@ Certificate: Subject: C=RU, ST=Russia, L=St. Petersburg, O=Luxoft, OU=Mobile_expired, CN=server/emailAddress=sample@luxoft.com Subject Public Key Info: Public Key Algorithm: rsaEncryption - Public-Key: (2048 bit) + RSA Public-Key: (2048 bit) Modulus: - 00:cc:20:2f:53:1d:7e:fc:52:18:60:91:e3:e7:8b: - b9:5b:1f:17:70:ff:f8:60:05:66:2d:e7:2a:02:01: - 64:d8:71:c0:d2:10:5e:10:7e:6e:24:3b:67:fa:8c: - a5:4a:31:9a:84:ee:f8:af:68:27:1e:dc:38:7f:f2: - 4b:2f:8c:83:1a:91:3c:8d:a4:d3:96:90:55:a9:30: - 87:51:6a:16:1c:06:b9:9b:89:68:f1:1a:06:74:1f: - 72:8b:05:4a:ab:aa:ce:bd:24:33:d6:63:dd:f3:79: - 4c:7a:29:d0:a3:02:5c:5c:27:e9:0a:59:58:9d:8a: - 0c:64:9f:b6:5f:db:90:d2:85:3e:eb:69:ba:48:32: - 28:df:7c:f6:5d:72:36:e0:83:63:59:38:51:f0:0b: - dc:f4:0e:74:01:36:55:60:75:40:90:87:a8:63:42: - 42:fa:30:6e:18:09:50:72:34:a8:3b:b9:bf:f4:5c: - 48:65:58:e1:2b:27:a0:2a:59:99:55:a1:94:59:f9: - a7:65:57:4f:58:40:fd:0f:ca:b9:39:3e:aa:55:fb: - 8e:fd:24:17:47:a7:62:1b:a0:f7:f8:d3:42:6f:16: - 21:80:9d:ef:92:69:33:3e:c7:6f:3f:02:28:33:bd: - fc:27:15:5f:b2:1a:c7:3f:0e:6f:d5:ac:04:f3:e6: - 27:c3 + 00:d6:67:60:de:61:af:a8:78:27:86:88:9f:cc:7d: + ab:c8:e4:c2:7f:01:0f:bf:e5:5b:c8:9f:f2:d1:ba: + 51:7a:00:7d:79:75:35:2b:84:78:dc:09:f6:60:f2: + 4e:8d:08:e6:13:06:2d:09:42:2f:d1:18:56:48:f9: + 9d:0e:b5:21:7f:a2:0a:d3:a4:2a:cd:6d:a1:60:83: + d8:58:cb:c3:a3:99:b7:8e:26:e5:b5:25:ca:a0:b3: + 4d:d8:1c:86:69:fb:c1:88:57:2b:e8:9c:cb:4a:38: + 3c:10:34:d6:e1:41:47:f2:1c:e8:1a:f5:33:8a:8d: + 4e:d4:43:ec:01:51:42:af:4a:02:c1:39:f0:2e:ad: + a0:c6:2a:ac:23:3f:56:77:39:d3:45:58:89:66:8f: + 64:5d:f3:52:2d:a3:77:9c:33:06:a2:6f:cd:fb:74: + 21:ca:f3:c0:8f:af:98:99:35:f3:25:90:b6:e9:a9: + a3:73:8d:93:a7:00:55:28:d7:ce:66:3f:6d:80:74: + 72:ba:68:d2:28:db:de:5e:64:fe:d8:3a:b0:5e:2b: + 74:25:74:31:8e:ba:3b:9e:32:5e:12:22:07:88:ab: + 50:92:02:ea:fe:be:1e:d7:47:d5:90:6b:99:a8:a2: + 54:91:bf:fc:66:89:43:2c:e0:ef:bf:43:d7:ff:e6: + 07:a9 Exponent: 65537 (0x10001) - Signature Algorithm: md5WithRSAEncryption - 88:6f:fc:35:e6:d7:d7:68:44:82:b4:f4:93:28:ae:e1:c5:38: - 3a:d2:c0:ca:12:93:ea:ae:13:2e:3b:18:e6:aa:17:79:08:7c: - a0:cb:c2:f0:c0:2a:eb:8e:2b:12:65:71:c4:be:14:f8:c5:c5: - d7:29:3c:f8:1e:f9:8e:97:75:ba:5e:45:50:0a:67:58:d9:eb: - b0:c9:94:c1:30:39:6f:72:fe:4a:44:7e:8f:44:67:53:ff:32: - 8f:5a:d2:cb:b3:b9:c3:ef:e0:bf:be:28:89:cd:f8:bd:e2:9f: - e0:d4:7b:cc:24:f9:41:f5:ac:4c:59:48:7f:dc:60:dc:c3:c7: - 24:2f:f9:7a:f1:53:16:5a:37:d9:c4:75:53:c0:62:b3:82:49: - 8f:dd:73:c8:de:c7:b0:d0:7a:64:c6:5f:fa:c4:2b:c6:d4:56: - 21:95:cb:b6:ae:73:b2:03:ad:d0:40:51:8e:3f:49:18:ee:b1: - d7:e2:36:75:da:ec:99:fb:6b:47:56:63:1e:48:4a:65:70:98: - a1:c2:c8:35:70:42:bc:0d:a4:0a:ac:31:69:20:07:44:d2:47: - ee:c6:66:cd:02:e7:e6:f5:30:62:85:81:75:ad:f1:86:b0:17: - aa:21:64:2e:d6:68:e8:f8:e1:a3:07:15:97:1f:00:c7:6a:e8: - 47:59:02:c9 + Signature Algorithm: sha256WithRSAEncryption + 14:2c:cf:4c:31:7e:68:f6:ed:bf:3c:f6:38:d8:3d:46:fd:59: + b2:a6:62:ed:d8:32:10:24:5a:ef:70:56:a9:4a:89:38:73:4b: + e8:cb:a9:ab:be:a8:58:0c:d4:79:6e:7d:18:a7:8c:1f:d4:2d: + 11:06:79:36:d0:8f:51:8b:b9:6f:5a:c4:a6:46:0c:1d:ba:eb: + 3d:f7:2c:78:b6:0c:ea:54:81:cd:9b:16:3d:5a:7d:51:cb:69: + f3:d5:82:23:bd:6b:a8:d5:af:31:3a:2f:59:97:ab:45:63:dd: + af:73:6c:3b:66:47:aa:3b:9e:23:3f:12:a9:1b:0d:5e:e0:3f: + 8b:4c:f0:46:9f:7b:e3:b6:39:8e:84:b2:ae:f4:b7:94:eb:c4: + 8d:d6:f9:17:4c:82:d5:a9:d2:f3:92:bc:cd:d9:c5:01:e9:b0: + ff:4b:a8:31:2c:ab:2b:8b:d1:43:a5:bd:6e:73:d6:f5:f5:a1: + a2:35:5c:f9:77:1d:a9:2d:6a:32:3b:c0:96:c9:1d:37:8d:9a: + 36:da:d2:0a:5b:be:d6:b7:96:3a:fa:7d:cb:4b:86:d6:43:72: + 0a:05:43:3d:89:28:d5:75:41:f5:ec:b0:22:a9:02:40:33:17: + 54:84:46:dc:de:ab:b0:6f:74:df:ca:80:76:7b:41:1f:7d:5c: + c9:77:6f:7b -----BEGIN CERTIFICATE----- -MIIDmzCCAoMCAQEwDQYJKoZIhvcNAQEEBQAwgZExCzAJBgNVBAYTAlVTMREwDwYD +MIIDmzCCAoMCAQEwDQYJKoZIhvcNAQELBQAwgZExCzAJBgNVBAYTAlVTMREwDwYD VQQIDAhNaWNoaWdhbjEQMA4GA1UEBwwHRGV0cm9pdDEUMBIGA1UECgwLRk9SRF9T RVJWRVIxGDAWBgNVBAsMD0ZPUkRfU0RMX1NFUlZFUjENMAsGA1UEAwwERk9SRDEe MBwGCSqGSIb3DQEJARYPc2FtcGxlQGZvcmQuY29tMB4XDTE1MDEwMTAwMDAwMFoX @@ -83,62 +83,64 @@ DTE1MDMxNDA5MjY1M1owgZQxCzAJBgNVBAYTAlJVMQ8wDQYDVQQIDAZSdXNzaWEx FzAVBgNVBAcMDlN0LiBQZXRlcnNidXJnMQ8wDQYDVQQKDAZMdXhvZnQxFzAVBgNV BAsMDk1vYmlsZV9leHBpcmVkMQ8wDQYDVQQDDAZzZXJ2ZXIxIDAeBgkqhkiG9w0B CQEWEXNhbXBsZUBsdXhvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEAzCAvUx1+/FIYYJHj54u5Wx8XcP/4YAVmLecqAgFk2HHA0hBeEH5uJDtn -+oylSjGahO74r2gnHtw4f/JLL4yDGpE8jaTTlpBVqTCHUWoWHAa5m4lo8RoGdB9y -iwVKq6rOvSQz1mPd83lMeinQowJcXCfpCllYnYoMZJ+2X9uQ0oU+62m6SDIo33z2 -XXI24INjWThR8Avc9A50ATZVYHVAkIeoY0JC+jBuGAlQcjSoO7m/9FxIZVjhKyeg -KlmZVaGUWfmnZVdPWED9D8q5OT6qVfuO/SQXR6diG6D3+NNCbxYhgJ3vkmkzPsdv -PwIoM738JxVfshrHPw5v1awE8+YnwwIDAQABMA0GCSqGSIb3DQEBBAUAA4IBAQCI -b/w15tfXaESCtPSTKK7hxTg60sDKEpPqrhMuOxjmqhd5CHygy8LwwCrrjisSZXHE -vhT4xcXXKTz4HvmOl3W6XkVQCmdY2euwyZTBMDlvcv5KRH6PRGdT/zKPWtLLs7nD -7+C/viiJzfi94p/g1HvMJPlB9axMWUh/3GDcw8ckL/l68VMWWjfZxHVTwGKzgkmP -3XPI3sew0Hpkxl/6xCvG1FYhlcu2rnOyA63QQFGOP0kY7rHX4jZ12uyZ+2tHVmMe -SEplcJihwsg1cEK8DaQKrDFpIAdE0kfuxmbNAufm9TBihYF1rfGGsBeqIWQu1mjo -+OGjBxWXHwDHauhHWQLJ +CgKCAQEA1mdg3mGvqHgnhoifzH2ryOTCfwEPv+VbyJ/y0bpRegB9eXU1K4R43An2 +YPJOjQjmEwYtCUIv0RhWSPmdDrUhf6IK06QqzW2hYIPYWMvDo5m3jibltSXKoLNN +2ByGafvBiFcr6JzLSjg8EDTW4UFH8hzoGvUzio1O1EPsAVFCr0oCwTnwLq2gxiqs +Iz9WdznTRViJZo9kXfNSLaN3nDMGom/N+3QhyvPAj6+YmTXzJZC26amjc42TpwBV +KNfOZj9tgHRyumjSKNveXmT+2DqwXit0JXQxjro7njJeEiIHiKtQkgLq/r4e10fV +kGuZqKJUkb/8ZolDLODvv0PX/+YHqQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAU +LM9MMX5o9u2/PPY42D1G/VmypmLt2DIQJFrvcFapSok4c0voy6mrvqhYDNR5bn0Y +p4wf1C0RBnk20I9Ri7lvWsSmRgwduus99yx4tgzqVIHNmxY9Wn1Ry2nz1YIjvWuo +1a8xOi9Zl6tFY92vc2w7ZkeqO54jPxKpGw1e4D+LTPBGn3vjtjmOhLKu9LeU68SN +1vkXTILVqdLzkrzN2cUB6bD/S6gxLKsri9FDpb1uc9b19aGiNVz5dx2pLWoyO8CW +yR03jZo22tIKW77Wt5Y6+n3LS4bWQ3IKBUM9iSjVdUH17LAiqQJAMxdUhEbc3quw +b3TfyoB2e0EffVzJd297 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIEBzCCAu+gAwIBAgIJAL9pcY0U8s0NMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEXMBUGA1UEBwwOU2lsaWNvbiBW -YWxsZXkxEzARBgNVBAoMCkNBY2VydC5vcmcxDzANBgNVBAsMBkNBY2VydDEUMBIG -A1UEAwwLY2xpZW50X3Jvb3QxIDAeBgkqhkiG9w0BCQEWEXNhbXBsZUBjYWNlcnQu -b3JnMB4XDTE3MTIwMTEzNDYzNloXDTQ1MDQxODEzNDYzNlowgZkxCzAJBgNVBAYT -AlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQHDA5TaWxpY29uIFZhbGxl -eTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwGQ0FjZXJ0MRQwEgYDVQQD -DAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2FtcGxlQGNhY2VydC5vcmcw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaE8eVv5Uc1bZwrVr0fB4U -VTyadwTJipKx4ui6V8tpRs0Ing6W/eRrsjcVuI1byvQY825YTIvC9Nyk5ZTQc0MN -Y9dJCnNbBCiixnexCK9xH590DjI17c3EhEt5oPxCrFYNR+kUePxt8gzX+uf7uJ1P -8O+Nqc/qIUGWOrLkQD8GMwzHfHgydGwkPkEUVmFUGKhBUsW9NjZTos9Scb2/dzuf -EOlGX/bJuLEIo8XoyM3fAlkVGt/JSpF5uK7L7RsFYRD2qcR+TXpL7cEZoYRgCsKi -7xHrAG4va4fbwvDrPDNp90eK2/0CLfOPJn6dyFN+wOVP3ioCd0WFU0cdWEtvy1Dv -AgMBAAGjUDBOMB0GA1UdDgQWBBTm5kmFsHwcAC4j6apSauKNMeyFHDAfBgNVHSME -GDAWgBTm5kmFsHwcAC4j6apSauKNMeyFHDAMBgNVHRMEBTADAQH/MA0GCSqGSIb3 -DQEBCwUAA4IBAQCSYtx32hNVCi0dMQ/pDlKjyZ27iGyDustwL4+pdzU1bXxQAmD+ -FxxiY15RgsTnM2C3n43d22VnZ3YC8oEE/aTWrG+kksEJ78n1ITOzVX69DwcDI91S -MzfxvgCtLRsPfobGdcllAiby8wGVcLJkXI0/9OiHcDdnc5bewsd0G90yFd5GUOjG -U+az79CMwRuH/o53odMeE3Fte3IwAGaobpn6WjnRkxQqMaEaVp2s1J55z1YqdNWa -JkcqEaWbKaqrHJAeOM1Hj+hISNbPp1fQRm/0U96g00I5EcarD4Io0ut++8rLgAbo -fzGGzbZMBmDvorO75g2GegmNTgTGtuPvQAJo +MIIEFTCCAv2gAwIBAgIUOEqUO6Bkm76DSQ0cEexbcSne39EwDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMTcxMjAxMTM0NjM3WhcNNDUwNDE4MTM0NjM3WjCB +mTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNp +bGljb24gVmFsbGV5MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNl +cnQxFDASBgNVBAMMC2NsaWVudF9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVA +Y2FjZXJ0Lm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALgDjUgR +dC9Bfpw8WZaVqhc0jIIuYtMkN/CGyX5qOv0pW43v1sCdScZTBnqc51PghXVvuo7F +RZVsDzecGgKMD6tOM2OezSO4NJb9XB/m5moymw0c28PAKypX+fSBpa2fD6IpCKB3 +dG1r0zQjn5rd2+Ehaec5wFwaQnwK036kGeaqYEPWWch8dRhUB6+Ln8/47sbW62aK +IlM4dlqWZO0rUqQ5kRZ9PIJddqLfuxxec/0mFFfCpne7abyozbUbZc/ny8O/S80u +sgNKY/XsUrmn2cGHb3j9QMmh4i5ey/KSt2HwBxpAd+JVhzwd870eCS4oJZN547AO +A/xN1JcqWdxPwgkCAwEAAaNTMFEwHQYDVR0OBBYEFIZ1fah7K6Rs0O2hqpDXKg4u +tykhMB8GA1UdIwQYMBaAFIZ1fah7K6Rs0O2hqpDXKg4utykhMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAEO73DjF+GkA07lxLZCqtpGA9jQeDYqt +AXAVKiXSLT7KkYkUwWs6Li74QrhoXRc7sjBLuI/TVUCdNKsSd4r3vS3JC8GY3Hcs +bHS1ab9G3JjYiIPXQxuxzCjlzQsUypJBdTyeBAxhQMvxJEA0643n6d3ANRXtfxHF +0gwUxLq1s61meJqvFCmZHY0HxuOgsR6vOdQ5eL1AdUcVLnAeh3aWb4GssBELQkwg +kB8eqplT1E+e2OIu2DpTgUuPRBESTbFyA3gAJ1UxxDXAobAO1oEWuMDv2waCg+bb +iIP08U4rTK821DyThAK3t/n2Tj9nbM/jNu50iaiqcJBYWX2rnuj/FYI= -----END CERTIFICATE----- +93dd8908 -----BEGIN CERTIFICATE----- -MIIDrzCCApcCCQDtz1iLAYcuKDANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMC -VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFzAVBgNVBAcMDlNpbGljb24gVmFsbGV5 -MRMwEQYDVQQKDApDQWNlcnQub3JnMQ8wDQYDVQQLDAZDQWNlcnQxFDASBgNVBAMM -C2NsaWVudF9yb290MSAwHgYJKoZIhvcNAQkBFhFzYW1wbGVAY2FjZXJ0Lm9yZzAe -Fw0xNzEyMDExMzQ2MzZaFw00NTA0MTgxMzQ2MzZaMIGYMQswCQYDVQQGEwJVUzER -MA8GA1UECAwITWljaGlnYW4xEDAOBgNVBAcMB0RldHJvaXQxFDASBgNVBAoMC0ZP -UkRfQ0xJRU5UMRgwFgYDVQQLDA9GT1JEX1NETF9DTElFTlQxFDASBgNVBAMMC0ZP -UkRfQ0xJRU5UMR4wHAYJKoZIhvcNAQkBFg9zYW1wbGVAZm9yZC5jb20wggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIWtkYLegvg1iV7AO5JBGQ/cX5rcoX -mcrZTGlAiLcZq9P7uxLFBbrKA4JnGki4wCXmy6oR2JOJwwqSGcgRHcw2ZXhUdffM -fkbZ2fec/0N3WIWGLAvAWEY4s+5+3uTgX+1AcQ8THZWjjO+vr8neF5K76etqIs53 -an09Q+yAogr1SAitc/zOUHzySR+6rBccQTwVmX60FljZHIoTl4InFGpJ8NuCMQ3Z -iYsV3dO4uFbrHq9Iwwjzx8qXBm+91YtEvYdtwzZ2fSk6DRz10CmOcIET7C9q55hh -H9NvDFZQ16la1t9j6oQhkdz/A5RkxVQlQ2RR/9rJ/w10d1V4yylTyX4DAgMBAAEw -DQYJKoZIhvcNAQELBQADggEBACyETxrD5pxVJyl39eu/D5wpLFnagqmMHrGe/pkT -fGcpiAk4EB+hcfTWU1EUV6Wy47K6ShrznZYrPwVx0SAHJ9+V55h8DnlqhoDEBsUY -2/RW5l8lPTwssQQIyHMhGkkwopX3O2mfykTMiKRtzyYYzXo842CgRJvL/L6T4RZ1 -gYNXwBGNYJXXM/w0K/4vN+2b053dohy/zuXyOKNNXJL5dEPO2v1FJPPFJmA7011Z -kbIJPpueH6pchocCrFCuSpsT7g5mWyC1d4IZMu/syUY5dwI2Tu9J4e0TlF2Nzlzx -6Fz5xXTcUshc5i66S3qKqvH/gKdmdKCUHnikF0ngoxTimD0= +MIID1DCCArygAwIBAgIUNEiVAruB204YoqEDoUo0PPv4wr4wDQYJKoZIhvcNAQEL +BQAwgZkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRcwFQYDVQQH +DA5TaWxpY29uIFZhbGxleTETMBEGA1UECgwKQ0FjZXJ0Lm9yZzEPMA0GA1UECwwG +Q0FjZXJ0MRQwEgYDVQQDDAtjbGllbnRfcm9vdDEgMB4GCSqGSIb3DQEJARYRc2Ft +cGxlQGNhY2VydC5vcmcwHhcNMTcxMjAxMTM0NjM3WhcNNDUwNDE4MTM0NjM3WjCB +mDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1pY2hpZ2FuMRAwDgYDVQQHDAdEZXRy +b2l0MRQwEgYDVQQKDAtGT1JEX0NMSUVOVDEYMBYGA1UECwwPRk9SRF9TRExfQ0xJ +RU5UMRQwEgYDVQQDDAtGT1JEX0NMSUVOVDEeMBwGCSqGSIb3DQEJARYPc2FtcGxl +QGZvcmQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxlBeAGyx +zpMdtP0EkbHmR51fGd8nkJQzsm7827Q+D3vuMj7R9TJt8nVqN0XLrtgXztGYGyRi +zVt+rxqgMKgrIJflGaTKDgZ/PSTZkw/V0zRutOcU7ep5nyLOkyFEw14Jn9aZTSIn +ibbKIMa0jhh4boKZZiZ/u0c+yq4KZaDMcTY7sYD+zV8SVat+8u6Yw56+xJscG6zN +xFbXqNNzbAU+Ntj/piRf1sthq+FT0YeKH/sNf3NoIEZ5VC41OgWlDQFL8rckUrJ/ +FGzTBksRuTl0I/zgHHEa9Ir1hlzHSwGTLNsFbuDEspKm/RhbAZ9GkkTLYfZkh4cq +UVVuAAd6QxFAEwIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB +CwUAA4IBAQB7ODk4JBOGMb9nKdorPXpwBXqRNS/3yywQT02GnHcaH04GoHPcT4w/ +6+PvE5RjYAayUS4aggZ73A5REN6fXCROX9aF4cfvRj5iEqGE/S2sQ0uMCq1OtF8q +7gVu+pclcpbjlL0uVCJOucnQwDD5Uy/+cSkHFeiaDoyl/FZJ/Ldh35c992R+J46C +Pu9as4QApyuNY/rhMfIkudxLWtsHWWag9eo7Oyfgu0Q36pVtw0TKUhpvXlE9Cs79 +Y076A/xBaHTxaPAmjY9F6v9Hyk0wU1K+eXl27l1WF9fFSX183O/zIaYwwStxAfMB +4FoD4Ps8h4frINllWzZL4tW16kh0lfqI -----END CERTIFICATE----- diff --git a/files/connecttest_Navigation_Unsupported.lua b/files/connecttest_Navigation_Unsupported.lua index c345a4f880..c2d51d2a68 100644 --- a/files/connecttest_Navigation_Unsupported.lua +++ b/files/connecttest_Navigation_Unsupported.lua @@ -527,12 +527,10 @@ function module:runSDL() text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/files/hmi_capabilities_SearchButton.json b/files/hmi_capabilities_SearchButton.json index 4f6b8f9a6f..49b7d8b8fc 100644 --- a/files/hmi_capabilities_SearchButton.json +++ b/files/hmi_capabilities_SearchButton.json @@ -104,12 +104,6 @@ "width": 500, "rows": 1 }, - { - "name": "navigationText", - "characterSet": "UTF_8", - "width": 500, - "rows": 1 - }, { "name": "audioPassThruDisplayText1", "characterSet": "UTF_8", @@ -134,12 +128,6 @@ "width": 500, "rows": 1 }, - { - "name": "notificationText", - "characterSet": "UTF_8", - "width": 500, - "rows": 1 - }, { "name": "menuName", "characterSet": "UTF_8", diff --git a/files/hmi_capabilities_Without_PRESET9.json b/files/hmi_capabilities_Without_PRESET9.json index 558a5eb749..b44b691781 100644 --- a/files/hmi_capabilities_Without_PRESET9.json +++ b/files/hmi_capabilities_Without_PRESET9.json @@ -104,12 +104,6 @@ "width": 500, "rows": 1 }, - { - "name": "navigationText", - "characterSet": "UTF_8", - "width": 500, - "rows": 1 - }, { "name": "audioPassThruDisplayText1", "characterSet": "UTF_8", @@ -134,12 +128,6 @@ "width": 500, "rows": 1 }, - { - "name": "notificationText", - "characterSet": "UTF_8", - "width": 500, - "rows": 1 - }, { "name": "menuName", "characterSet": "UTF_8", diff --git a/test_scripts/API/ATF_BasicCommunication_OnReady.lua b/test_scripts/API/ATF_BasicCommunication_OnReady.lua index 7a2de0eb83..cfb7fb0db9 100644 --- a/test_scripts/API/ATF_BasicCommunication_OnReady.lua +++ b/test_scripts/API/ATF_BasicCommunication_OnReady.lua @@ -206,12 +206,10 @@ function Test:initHMI_BasicCommunication_OnReady_Invalid(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/ATF_OnScreenPresetsAvailable.lua b/test_scripts/API/ATF_OnScreenPresetsAvailable.lua index 77283a3a7d..96032b63ac 100644 --- a/test_scripts/API/ATF_OnScreenPresetsAvailable.lua +++ b/test_scripts/API/ATF_OnScreenPresetsAvailable.lua @@ -295,12 +295,10 @@ function Test:initHMI_onReady(bOnScreenPresetsAvailable) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), @@ -916,12 +914,10 @@ end text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/ATF_SetDisplayLayout.lua b/test_scripts/API/ATF_SetDisplayLayout.lua index 5346105f2c..d557aad90d 100644 --- a/test_scripts/API/ATF_SetDisplayLayout.lua +++ b/test_scripts/API/ATF_SetDisplayLayout.lua @@ -568,13 +568,7 @@ function displayCap_textFields_Value() name = "totalDistance", rows = 1, width = 500 - }, - { - characterSet = "UTF_8", - name = "navigationText", --Error - rows = 1, - width = 500 - }, + } { characterSet = "UTF_8", name = "audioPassThruDisplayText1", @@ -599,12 +593,6 @@ function displayCap_textFields_Value() rows = 1, width = 500 }, - { - characterSet = "UTF_8", - name = "notificationText", - rows = 1, - width = 500 - }, { characterSet = "UTF_8", name = "menuName", @@ -870,13 +858,7 @@ function displayCap_textFields_ValueForMobile() name = "sliderFooter", rows = 1, width = 500 - }, - { - characterSet = "UTF_8", - name = "navigationText", - rows = 1, - width = 500 - }, + } { characterSet = "UTF_8", name = "menuName", @@ -913,12 +895,6 @@ function displayCap_textFields_ValueForMobile() rows = 1, width = 500 }, - { - characterSet = "UTF_8", - name = "notificationText", - rows = 1, - width = 500 - }, { characterSet = "UTF_8", name = "locationName", @@ -1706,7 +1682,7 @@ end --Begin Test case PositiveResponseCheck.5 --Description: displayCapabilities.textFields.name parameter is inbound - local inBoundValues = {"mainField1", "mainField2", "mainField3", "mainField4", "statusBar", "mediaClock", "mediaTrack", "alertText1", "alertText2", "alertText3", "scrollableMessageBody", "initialInteractionText", "navigationText1", "navigationText2", "ETA", "totalDistance", "navigationText", "audioPassThruDisplayText1", "audioPassThruDisplayText2", "sliderHeader", "sliderFooter", "notificationText", "menuName", "secondaryText", "tertiaryText", "timeToDestination", "turnText", "menuTitle", "locationName", "locationDescription", "addressLines", "phoneNumber"} + local inBoundValues = {"mainField1", "mainField2", "mainField3", "mainField4", "statusBar", "mediaClock", "mediaTrack", "alertText1", "alertText2", "alertText3", "scrollableMessageBody", "initialInteractionText", "navigationText1", "navigationText2", "ETA", "totalDistance", "audioPassThruDisplayText1", "audioPassThruDisplayText2", "sliderHeader", "sliderFooter", "menuName", "secondaryText", "tertiaryText", "timeToDestination", "turnText", "menuTitle", "locationName", "locationDescription", "addressLines", "phoneNumber"} for i = 1, #inBoundValues do Test["SetDispLay_Res_displayCap_textFields_name_IsInBound_".. inBoundValues[i] .."_SUCCESS"] = function(self) @@ -1992,7 +1968,7 @@ end local testParam = {} - local textFieldsName = {"mainField1", "mainField2", "mainField3", "mainField4", "statusBar", "mediaClock", "mediaTrack", "alertText1", "alertText2", "alertText3", "scrollableMessageBody", "initialInteractionText", "navigationText1", "navigationText2", "ETA", "totalDistance", "navigationText", "audioPassThruDisplayText1", "audioPassThruDisplayText2", "sliderHeader", "sliderFooter", "notificationText", "menuName", "secondaryText", "tertiaryText", "timeToDestination", "turnText", "menuTitle", "locationName", "locationDescription", "addressLines", "phoneNumber"} + local textFieldsName = {"mainField1", "mainField2", "mainField3", "mainField4", "statusBar", "mediaClock", "mediaTrack", "alertText1", "alertText2", "alertText3", "scrollableMessageBody", "initialInteractionText", "navigationText1", "navigationText2", "ETA", "totalDistance", "audioPassThruDisplayText1", "audioPassThruDisplayText2", "sliderHeader", "sliderFooter", "menuName", "secondaryText", "tertiaryText", "timeToDestination", "turnText", "menuTitle", "locationName", "locationDescription", "addressLines", "phoneNumber"} --Create 100 items x = 0 @@ -2534,7 +2510,7 @@ end :Timeout(iTimeout) :Do(function(_,data) --hmi side: sending UI.SetDisplayLayout response - self.hmiConnection:Send('{"id":' .. tostring(data.id) .. ',"result":{"softButtonCapabilities":[{"upDownAvailable":true,"longPressAvailable":true,"imageSupported":true,"shortPressAvailable":true}],"buttonCapabilities":[{"name":"PRESET_0","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_1","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_2","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_3","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_4","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_5","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_6","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_7","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_8","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_9","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"OK","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PLAY_PAUSE","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"SEEKLEFT","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"SEEKRIGHT","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"TUNEUP","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"TUNEDOWN","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true}],"presetBankCapabilities":{"onScreenPresetsAvailable":true},"displayCapabilities":{"displayType":"GEN2_8_DMA","screenParams":{"resolution":{"resolutionWidth":800,"resolutionHeight":480},"touchEventAvailable":{"doublePressAvailable":false,"multiTouchAvailable":true,"pressAvailable":true}},"textFields":[{"name":"mainField1","characterSet":"UTF_8","width":500,"rows":1},{"name":"mainField2","characterSet":"UTF_8","width":500,"rows":1},{"name":"mainField3","characterSet":"UTF_8","width":500,"rows":1},{"name":"mainField4","characterSet":"UTF_8","width":500,"rows":1},{"name":"statusBar","characterSet":"UTF_8","width":500,"rows":1},{"name":"mediaClock","characterSet":"UTF_8","width":500,"rows":1},{"name":"mediaTrack","characterSet":"UTF_8","width":500,"rows":1},{"name":"alertText1","characterSet":"UTF_8","width":500,"rows":1},{"name":"alertText2","characterSet":"UTF_8","width":500,"rows":1},{"name":"alertText3","characterSet":"UTF_8","width":500,"rows":1},{"name":"scrollableMessageBody","characterSet":"UTF_8","width":500,"rows":1},{"name":"initialInteractionText","characterSet":"UTF_8","width":500,"rows":1},{"name":"navigationText1","characterSet":"UTF_8","width":500,"rows":1},{"name":"navigationText2","characterSet":"UTF_8","width":500,"rows":1},{"name":"ETA","characterSet":"UTF_8","width":500,"rows":1},{"name":"totalDistance","characterSet":"UTF_8","width":500,"rows":1},{"name":"navigationText","characterSet":"UTF_8","width":500,"rows":1},{"name":"audioPassThruDisplayText1","characterSet":"UTF_8","width":500,"rows":1},{"name":"audioPassThruDisplayText2","characterSet":"UTF_8","width":500,"rows":1},{"name":"sliderHeader","characterSet":"UTF_8","width":500,"rows":1},{"name":"sliderFooter","characterSet":"UTF_8","width":500,"rows":1},{"name":"notificationText","characterSet":"UTF_8","width":500,"rows":1},{"name":"menuName","characterSet":"UTF_8","width":500,"rows":1},{"name":"secondaryText","characterSet":"UTF_8","width":500,"rows":1},{"name":"tertiaryText","characterSet":"UTF_8","width":500,"rows":1},{"name":"timeToDestination","characterSet":"UTF_8","width":500,"rows":1},{"name":"turnText","characterSet":"UTF_8","width":500,"rows":1},{"name":"menuTitle","characterSet":"UTF_8","width":500,"rows":1},{"name":"locationName","characterSet":"UTF_8","width":500,"rows":1},{"name":"locationDescription","characterSet":"UTF_8","width":500,"rows":1},{"name":"addressLines","characterSet":"UTF_8","width":500,"rows":1},{"name":"phoneNumber","characterSet":"UTF_8","width":500,"rows":1}],"mediaClockFormats":["CLOCK1","CLOCK2","CLOCK3","CLOCKTEXT1","CLOCKTEXT2","CLOCKTEXT3","CLOCKTEXT4"],"imageCapabilities":[],"templatesAvailable":["ONSCREEN_PRESETS"],"imageFields":[{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"softButtonImage","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"choiceImage","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"choiceSecondaryImage","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"vrHelpItem","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"turnIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"menuIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"cmdIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"graphic","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"showConstantTBTIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"showConstantTBTNextTurnIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"showConstantTBTNextTurnIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]}],"numCustomPresetsAvailable":10,"graphicSupported":true},"code":0,"method":"UI.SetDisplayLayout"},"jsonrpc":"2.0"}') + self.hmiConnection:Send('{"id":' .. tostring(data.id) .. ',"result":{"softButtonCapabilities":[{"upDownAvailable":true,"longPressAvailable":true,"imageSupported":true,"shortPressAvailable":true}],"buttonCapabilities":[{"name":"PRESET_0","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_1","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_2","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_3","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_4","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_5","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_6","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_7","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_8","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_9","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"OK","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PLAY_PAUSE","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"SEEKLEFT","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"SEEKRIGHT","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"TUNEUP","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"TUNEDOWN","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true}],"presetBankCapabilities":{"onScreenPresetsAvailable":true},"displayCapabilities":{"displayType":"GEN2_8_DMA","screenParams":{"resolution":{"resolutionWidth":800,"resolutionHeight":480},"touchEventAvailable":{"doublePressAvailable":false,"multiTouchAvailable":true,"pressAvailable":true}},"textFields":[{"name":"mainField1","characterSet":"UTF_8","width":500,"rows":1},{"name":"mainField2","characterSet":"UTF_8","width":500,"rows":1},{"name":"mainField3","characterSet":"UTF_8","width":500,"rows":1},{"name":"mainField4","characterSet":"UTF_8","width":500,"rows":1},{"name":"statusBar","characterSet":"UTF_8","width":500,"rows":1},{"name":"mediaClock","characterSet":"UTF_8","width":500,"rows":1},{"name":"mediaTrack","characterSet":"UTF_8","width":500,"rows":1},{"name":"alertText1","characterSet":"UTF_8","width":500,"rows":1},{"name":"alertText2","characterSet":"UTF_8","width":500,"rows":1},{"name":"alertText3","characterSet":"UTF_8","width":500,"rows":1},{"name":"scrollableMessageBody","characterSet":"UTF_8","width":500,"rows":1},{"name":"initialInteractionText","characterSet":"UTF_8","width":500,"rows":1},{"name":"navigationText1","characterSet":"UTF_8","width":500,"rows":1},{"name":"navigationText2","characterSet":"UTF_8","width":500,"rows":1},{"name":"ETA","characterSet":"UTF_8","width":500,"rows":1},{"name":"totalDistance","characterSet":"UTF_8","width":500,"rows":1},{"name":"audioPassThruDisplayText1","characterSet":"UTF_8","width":500,"rows":1},{"name":"audioPassThruDisplayText2","characterSet":"UTF_8","width":500,"rows":1},{"name":"sliderHeader","characterSet":"UTF_8","width":500,"rows":1},{"name":"sliderFooter","characterSet":"UTF_8","width":500,"rows":1},{"name":"menuName","characterSet":"UTF_8","width":500,"rows":1},{"name":"secondaryText","characterSet":"UTF_8","width":500,"rows":1},{"name":"tertiaryText","characterSet":"UTF_8","width":500,"rows":1},{"name":"timeToDestination","characterSet":"UTF_8","width":500,"rows":1},{"name":"turnText","characterSet":"UTF_8","width":500,"rows":1},{"name":"menuTitle","characterSet":"UTF_8","width":500,"rows":1},{"name":"locationName","characterSet":"UTF_8","width":500,"rows":1},{"name":"locationDescription","characterSet":"UTF_8","width":500,"rows":1},{"name":"addressLines","characterSet":"UTF_8","width":500,"rows":1},{"name":"phoneNumber","characterSet":"UTF_8","width":500,"rows":1}],"mediaClockFormats":["CLOCK1","CLOCK2","CLOCK3","CLOCKTEXT1","CLOCKTEXT2","CLOCKTEXT3","CLOCKTEXT4"],"imageCapabilities":[],"templatesAvailable":["ONSCREEN_PRESETS"],"imageFields":[{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"softButtonImage","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"choiceImage","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"choiceSecondaryImage","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"vrHelpItem","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"turnIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"menuIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"cmdIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"graphic","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"showConstantTBTIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"showConstantTBTNextTurnIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"showConstantTBTNextTurnIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]}],"numCustomPresetsAvailable":10,"graphicSupported":true},"code":0,"method":"UI.SetDisplayLayout"},"jsonrpc":"2.0"}') end) @@ -2776,7 +2752,7 @@ end :Timeout(iTimeout) :Do(function(_,data) --hmi side: sending UI.SetDisplayLayout response - self.hmiConnection:Send('{"id":' .. tostring(data.id) .. ',"result":{"softButtonCapabilities":[{"upDownAvailable":true,"longPressAvailable":true,"imageSupported":true,"shortPressAvailable":true}],"buttonCapabilities":[{"name":"PRESET_0","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_1","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_2","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_3","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_4","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_5","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_6","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_7","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_8","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_9","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"OK","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PLAY_PAUSE","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"SEEKLEFT","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"SEEKRIGHT","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"TUNEUP","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"TUNEDOWN","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true}],"presetBankCapabilities":{"onScreenPresetsAvailable":true},"displayCapabilities":{"displayType":"GEN2_8_DMA","screenParams":{"resolution":{"resolutionWidth":800,"resolutionHeight":480},"touchEventAvailable":{"doublePressAvailable":false,"multiTouchAvailable":true,"pressAvailable":true}},"textFields":[{"name":"mainField1","characterSet":"UTF_8","width":500,"rows":1},{"name":"mainField2","characterSet":"UTF_8","width":500,"rows":1},{"name":"mainField3","characterSet":"UTF_8","width":500,"rows":1},{"name":"mainField4","characterSet":"UTF_8","width":500,"rows":1},{"name":"statusBar","characterSet":"UTF_8","width":500,"rows":1},{"name":"mediaClock","characterSet":"UTF_8","width":500,"rows":1},{"name":"mediaTrack","characterSet":"UTF_8","width":500,"rows":1},{"name":"alertText1","characterSet":"UTF_8","width":500,"rows":1},{"name":"alertText2","characterSet":"UTF_8","width":500,"rows":1},{"name":"alertText3","characterSet":"UTF_8","width":500,"rows":1},{"name":"scrollableMessageBody","characterSet":"UTF_8","width":500,"rows":1},{"name":"initialInteractionText","characterSet":"UTF_8","width":500,"rows":1},{"name":"navigationText1","characterSet":"UTF_8","width":500,"rows":1},{"name":"navigationText2","characterSet":"UTF_8","width":500,"rows":1},{"name":"ETA","characterSet":"UTF_8","width":500,"rows":1},{"name":"totalDistance","characterSet":"UTF_8","width":500,"rows":1},{"name":"navigationText","characterSet":"UTF_8","width":500,"rows":1},{"name":"audioPassThruDisplayText1","characterSet":"UTF_8","width":500,"rows":1},{"name":"audioPassThruDisplayText2","characterSet":"UTF_8","width":500,"rows":1},{"name":"sliderHeader","characterSet":"UTF_8","width":500,"rows":1},{"name":"sliderFooter","characterSet":"UTF_8","width":500,"rows":1},{"name":"notificationText","characterSet":"UTF_8","width":500,"rows":1},{"name":"menuName","characterSet":"UTF_8","width":500,"rows":1},{"name":"secondaryText","characterSet":"UTF_8","width":500,"rows":1},{"name":"tertiaryText","characterSet":"UTF_8","width":500,"rows":1},{"name":"timeToDestination","characterSet":"UTF_8","width":500,"rows":1},{"name":"turnText","characterSet":"UTF_8","width":500,"rows":1},{"name":"menuTitle","characterSet":"UTF_8","width":500,"rows":1},{"name":"locationName","characterSet":"UTF_8","width":500,"rows":1},{"name":"locationDescription","characterSet":"UTF_8","width":500,"rows":1},{"name":"addressLines","characterSet":"UTF_8","width":500,"rows":1},{"name":"phoneNumber","characterSet":"UTF_8","width":500,"rows":1}],"mediaClockFormats":["CLOCK1","CLOCK2","CLOCK3","CLOCKTEXT1","CLOCKTEXT2","CLOCKTEXT3","CLOCKTEXT4"],"imageCapabilities":["DYNAMIC","STATIC"],"templatesAvailable":[],"imageFields":[{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"softButtonImage","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"choiceImage","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"choiceSecondaryImage","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"vrHelpItem","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"turnIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"menuIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"cmdIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"graphic","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"showConstantTBTIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"showConstantTBTNextTurnIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"showConstantTBTNextTurnIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]}],"numCustomPresetsAvailable":10,"graphicSupported":true},"code":0,"method":"UI.SetDisplayLayout"},"jsonrpc":"2.0"} ') + self.hmiConnection:Send('{"id":' .. tostring(data.id) .. ',"result":{"softButtonCapabilities":[{"upDownAvailable":true,"longPressAvailable":true,"imageSupported":true,"shortPressAvailable":true}],"buttonCapabilities":[{"name":"PRESET_0","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_1","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_2","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_3","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_4","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_5","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_6","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_7","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_8","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PRESET_9","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"OK","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"PLAY_PAUSE","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"SEEKLEFT","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"SEEKRIGHT","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"TUNEUP","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"name":"TUNEDOWN","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true}],"presetBankCapabilities":{"onScreenPresetsAvailable":true},"displayCapabilities":{"displayType":"GEN2_8_DMA","screenParams":{"resolution":{"resolutionWidth":800,"resolutionHeight":480},"touchEventAvailable":{"doublePressAvailable":false,"multiTouchAvailable":true,"pressAvailable":true}},"textFields":[{"name":"mainField1","characterSet":"UTF_8","width":500,"rows":1},{"name":"mainField2","characterSet":"UTF_8","width":500,"rows":1},{"name":"mainField3","characterSet":"UTF_8","width":500,"rows":1},{"name":"mainField4","characterSet":"UTF_8","width":500,"rows":1},{"name":"statusBar","characterSet":"UTF_8","width":500,"rows":1},{"name":"mediaClock","characterSet":"UTF_8","width":500,"rows":1},{"name":"mediaTrack","characterSet":"UTF_8","width":500,"rows":1},{"name":"alertText1","characterSet":"UTF_8","width":500,"rows":1},{"name":"alertText2","characterSet":"UTF_8","width":500,"rows":1},{"name":"alertText3","characterSet":"UTF_8","width":500,"rows":1},{"name":"scrollableMessageBody","characterSet":"UTF_8","width":500,"rows":1},{"name":"initialInteractionText","characterSet":"UTF_8","width":500,"rows":1},{"name":"navigationText1","characterSet":"UTF_8","width":500,"rows":1},{"name":"navigationText2","characterSet":"UTF_8","width":500,"rows":1},{"name":"ETA","characterSet":"UTF_8","width":500,"rows":1},{"name":"totalDistance","characterSet":"UTF_8","width":500,"rows":1},{"name":"audioPassThruDisplayText1","characterSet":"UTF_8","width":500,"rows":1},{"name":"audioPassThruDisplayText2","characterSet":"UTF_8","width":500,"rows":1},{"name":"sliderHeader","characterSet":"UTF_8","width":500,"rows":1},{"name":"sliderFooter","characterSet":"UTF_8","width":500,"rows":1},{"name":"menuName","characterSet":"UTF_8","width":500,"rows":1},{"name":"secondaryText","characterSet":"UTF_8","width":500,"rows":1},{"name":"tertiaryText","characterSet":"UTF_8","width":500,"rows":1},{"name":"timeToDestination","characterSet":"UTF_8","width":500,"rows":1},{"name":"turnText","characterSet":"UTF_8","width":500,"rows":1},{"name":"menuTitle","characterSet":"UTF_8","width":500,"rows":1},{"name":"locationName","characterSet":"UTF_8","width":500,"rows":1},{"name":"locationDescription","characterSet":"UTF_8","width":500,"rows":1},{"name":"addressLines","characterSet":"UTF_8","width":500,"rows":1},{"name":"phoneNumber","characterSet":"UTF_8","width":500,"rows":1}],"mediaClockFormats":["CLOCK1","CLOCK2","CLOCK3","CLOCKTEXT1","CLOCKTEXT2","CLOCKTEXT3","CLOCKTEXT4"],"imageCapabilities":["DYNAMIC","STATIC"],"templatesAvailable":[],"imageFields":[{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"softButtonImage","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"choiceImage","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"choiceSecondaryImage","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"vrHelpItem","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"turnIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"menuIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"cmdIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"graphic","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"showConstantTBTIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"showConstantTBTNextTurnIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]},{"imageResolution":{"resolutionWidth":64,"resolutionHeight":64},"name":"showConstantTBTNextTurnIcon","imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"]}],"numCustomPresetsAvailable":10,"graphicSupported":true},"code":0,"method":"UI.SetDisplayLayout"},"jsonrpc":"2.0"} ') end) @@ -4501,7 +4477,7 @@ end local testParam = {} - local textFieldsName = {"mainField1", "mainField2", "mainField3", "mainField4", "statusBar", "mediaClock", "mediaTrack", "alertText1", "alertText2", "alertText3", "scrollableMessageBody", "initialInteractionText", "navigationText1", "navigationText2", "ETA", "totalDistance", "navigationText", "audioPassThruDisplayText1", "audioPassThruDisplayText2", "sliderHeader", "sliderFooter", "notificationText", "menuName", "secondaryText", "tertiaryText", "timeToDestination", "turnText", "menuTitle", "locationName", "locationDescription", "addressLines", "phoneNumber"} + local textFieldsName = {"mainField1", "mainField2", "mainField3", "mainField4", "statusBar", "mediaClock", "mediaTrack", "alertText1", "alertText2", "alertText3", "scrollableMessageBody", "initialInteractionText", "navigationText1", "navigationText2", "ETA", "totalDistance", "audioPassThruDisplayText1", "audioPassThruDisplayText2", "sliderHeader", "sliderFooter", "menuName", "secondaryText", "tertiaryText", "timeToDestination", "turnText", "menuTitle", "locationName", "locationDescription", "addressLines", "phoneNumber"} --Create 101 items x = 0 @@ -10828,7 +10804,7 @@ end }) - local message = '{"id":30,"jsonrpc":"2.0","result":{"buttonCapabilities":[{"longPressAvailable":true,"name":"PRESET_0","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"PRESET_1","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"PRESET_2","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"PRESET_3","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"PRESET_4","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"PRESET_5","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"PRESET_6","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"PRESET_7","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"PRESET_8","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"PRESET_9","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"OK","shortPressAvailable":true,"upDownAvailable":true},{"name":"PLAY_PAUSE","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"longPressAvailable":true,"name":"SEEKLEFT","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"SEEKRIGHT","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"TUNEUP","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"TUNEDOWN","shortPressAvailable":true,"upDownAvailable":true}],"code" 0,"displayCapabilities":{"displayType":"GEN2_8_DMA","graphicSupported":true,"imageCapabilities":["DYNAMIC","STATIC"],"imageFields":[{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"softButtonImage"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"choiceImage"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"choiceSecondaryImage"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"vrHelpItem"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"turnIcon"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"menuIcon"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"cmdIcon"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"graphic"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"showConstantTBTIcon"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"showConstantTBTNextTurnIcon"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"showConstantTBTNextTurnIcon"}],"mediaClockFormats":["CLOCK1","CLOCK2","CLOCK3","CLOCKTEXT1","CLOCKTEXT2","CLOCKTEXT3","CLOCKTEXT4"],"numCustomPresetsAvailable":10,"screenParams":{"resolution":{"resolutionHeight":480,"resolutionWidth":800},"touchEventAvailable":{"doublePressAvailable":false,"multiTouchAvailable":true,"pressAvailable":true}},"templatesAvailable":["ONSCREEN_PRESETS"],"textFields":[{"characterSet":"UTF_8","name":"mainField1","rows":1,"width":500},{"characterSet":"UTF_8","name":"mainField2","rows":1,"width":500},{"characterSet":"UTF_8","name":"mainField3","rows":1,"width":500},{"characterSet":"UTF_8","name":"mainField4","rows":1,"width":500},{"characterSet":"UTF_8","name":"statusBar","rows":1,"width":500},{"characterSet":"UTF_8","name":"mediaClock","rows":1,"width":500},{"characterSet":"UTF_8","name":"mediaTrack","rows":1,"width":500},{"characterSet":"UTF_8","name":"alertText1","rows":1,"width":500},{"characterSet":"UTF_8","name":"alertText2","rows":1,"width":500},{"characterSet":"UTF_8","name":"alertText3","rows":1,"width":500},{"characterSet":"UTF_8","name":"scrollableMessageBody","rows":1,"width":500},{"characterSet":"UTF_8","name":"initialInteractionText","rows":1,"width":500},{"characterSet":"UTF_8","name":"navigationText1","rows":1,"width":500},{"characterSet":"UTF_8","name":"navigationText2","rows":1,"width":500},{"characterSet":"UTF_8","name":"ETA","rows":1,"width":500},{"characterSet":"UTF_8","name":"totalDistance","rows":1,"width":500},{"characterSet":"UTF_8","name":"navigationText","rows":1,"width":500},{"characterSet":"UTF_8","name":"audioPassThruDisplayText1","rows":1,"width":500},{"characterSet":"UTF_8","name":"audioPassThruDisplayText2","rows":1,"width":500},{"characterSet":"UTF_8","name":"sliderHeader","rows":1,"width":500},{"characterSet":"UTF_8","name":"sliderFooter","rows":1,"width":500},{"characterSet":"UTF_8","name":"notificationText","rows":1,"width":500},{"characterSet":"UTF_8","name":"menuName","rows":1,"width":500},{"characterSet":"UTF_8","name":"secondaryText","rows":1,"width":500},{"characterSet":"UTF_8","name":"tertiaryText","rows":1,"width":500},{"characterSet":"UTF_8","name":"timeToDestination","rows":1,"width":500},{"characterSet":"UTF_8","name":"turnText","rows":1,"width":500},{"characterSet":"UTF_8","name":"menuTitle","rows":1,"width":500},{"characterSet":"UTF_8","name":"locationName","rows":1,"width":500},{"characterSet":"UTF_8","name":"locationDescription","rows":1,"width":500},{"characterSet":"UTF_8","name":"addressLines","rows":1,"width":500},{"characterSet":"UTF_8","name":"phoneNumber","rows":1,"width":500}]},"method":"UI.SetDisplayLayout","presetBankCapabilities":{"onScreenPresetsAvailable":true},"softButtonCapabilities":[{"imageSupported":true,"longPressAvailable":true,"shortPressAvailable":true,"upDownAvailable":true}]}}' + local message = '{"id":30,"jsonrpc":"2.0","result":{"buttonCapabilities":[{"longPressAvailable":true,"name":"PRESET_0","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"PRESET_1","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"PRESET_2","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"PRESET_3","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"PRESET_4","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"PRESET_5","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"PRESET_6","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"PRESET_7","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"PRESET_8","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"PRESET_9","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"OK","shortPressAvailable":true,"upDownAvailable":true},{"name":"PLAY_PAUSE","longPressAvailable":true,"upDownAvailable":true,"shortPressAvailable":true},{"longPressAvailable":true,"name":"SEEKLEFT","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"SEEKRIGHT","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"TUNEUP","shortPressAvailable":true,"upDownAvailable":true},{"longPressAvailable":true,"name":"TUNEDOWN","shortPressAvailable":true,"upDownAvailable":true}],"code" 0,"displayCapabilities":{"displayType":"GEN2_8_DMA","graphicSupported":true,"imageCapabilities":["DYNAMIC","STATIC"],"imageFields":[{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"softButtonImage"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"choiceImage"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"choiceSecondaryImage"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"vrHelpItem"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"turnIcon"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"menuIcon"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"cmdIcon"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"graphic"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"showConstantTBTIcon"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"showConstantTBTNextTurnIcon"},{"imageResolution":{"resolutionHeight":64,"resolutionWidth":64},"imageTypeSupported":["GRAPHIC_BMP","GRAPHIC_JPEG","GRAPHIC_PNG"],"name":"showConstantTBTNextTurnIcon"}],"mediaClockFormats":["CLOCK1","CLOCK2","CLOCK3","CLOCKTEXT1","CLOCKTEXT2","CLOCKTEXT3","CLOCKTEXT4"],"numCustomPresetsAvailable":10,"screenParams":{"resolution":{"resolutionHeight":480,"resolutionWidth":800},"touchEventAvailable":{"doublePressAvailable":false,"multiTouchAvailable":true,"pressAvailable":true}},"templatesAvailable":["ONSCREEN_PRESETS"],"textFields":[{"characterSet":"UTF_8","name":"mainField1","rows":1,"width":500},{"characterSet":"UTF_8","name":"mainField2","rows":1,"width":500},{"characterSet":"UTF_8","name":"mainField3","rows":1,"width":500},{"characterSet":"UTF_8","name":"mainField4","rows":1,"width":500},{"characterSet":"UTF_8","name":"statusBar","rows":1,"width":500},{"characterSet":"UTF_8","name":"mediaClock","rows":1,"width":500},{"characterSet":"UTF_8","name":"mediaTrack","rows":1,"width":500},{"characterSet":"UTF_8","name":"alertText1","rows":1,"width":500},{"characterSet":"UTF_8","name":"alertText2","rows":1,"width":500},{"characterSet":"UTF_8","name":"alertText3","rows":1,"width":500},{"characterSet":"UTF_8","name":"scrollableMessageBody","rows":1,"width":500},{"characterSet":"UTF_8","name":"initialInteractionText","rows":1,"width":500},{"characterSet":"UTF_8","name":"navigationText1","rows":1,"width":500},{"characterSet":"UTF_8","name":"navigationText2","rows":1,"width":500},{"characterSet":"UTF_8","name":"ETA","rows":1,"width":500},{"characterSet":"UTF_8","name":"totalDistance","rows":1,"width":500},{"characterSet":"UTF_8","name":"audioPassThruDisplayText1","rows":1,"width":500},{"characterSet":"UTF_8","name":"audioPassThruDisplayText2","rows":1,"width":500},{"characterSet":"UTF_8","name":"sliderHeader","rows":1,"width":500},{"characterSet":"UTF_8","name":"sliderFooter","rows":1,"width":500},{"characterSet":"UTF_8","name":"menuName","rows":1,"width":500},{"characterSet":"UTF_8","name":"secondaryText","rows":1,"width":500},{"characterSet":"UTF_8","name":"tertiaryText","rows":1,"width":500},{"characterSet":"UTF_8","name":"timeToDestination","rows":1,"width":500},{"characterSet":"UTF_8","name":"turnText","rows":1,"width":500},{"characterSet":"UTF_8","name":"menuTitle","rows":1,"width":500},{"characterSet":"UTF_8","name":"locationName","rows":1,"width":500},{"characterSet":"UTF_8","name":"locationDescription","rows":1,"width":500},{"characterSet":"UTF_8","name":"addressLines","rows":1,"width":500},{"characterSet":"UTF_8","name":"phoneNumber","rows":1,"width":500}]},"method":"UI.SetDisplayLayout","presetBankCapabilities":{"onScreenPresetsAvailable":true},"softButtonCapabilities":[{"imageSupported":true,"longPressAvailable":true,"shortPressAvailable":true,"upDownAvailable":true}]}}' --hmi side: expect UI.SetDisplayLayout request diff --git a/test_scripts/API/ATF_VehicleInfo_IsReady.lua b/test_scripts/API/ATF_VehicleInfo_IsReady.lua index 4254df0e86..2820b16462 100644 --- a/test_scripts/API/ATF_VehicleInfo_IsReady.lua +++ b/test_scripts/API/ATF_VehicleInfo_IsReady.lua @@ -248,12 +248,10 @@ function Test:initHMI_onReady_VehicleinfoIsReady(method1, resultCode, params1, c text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/Additional_Submenus/006_duplicate_name_same_level_fail.lua b/test_scripts/API/Additional_Submenus/006_duplicate_name_same_level.lua similarity index 84% rename from test_scripts/API/Additional_Submenus/006_duplicate_name_same_level_fail.lua rename to test_scripts/API/Additional_Submenus/006_duplicate_name_same_level.lua index f76fd729af..345307f5fb 100644 --- a/test_scripts/API/Additional_Submenus/006_duplicate_name_same_level_fail.lua +++ b/test_scripts/API/Additional_Submenus/006_duplicate_name_same_level.lua @@ -20,21 +20,25 @@ runner.testSettings.isSelfIncluded = false local requestParams = { common.reqParams.AddSubMenu.mob, { - menuID = 99, + menuID = 99, menuName = "SubMenu2", parentID = 1 } } local duplicateNameRequestParams = { - menuID = 101, + menuID = 101, menuName = requestParams[2].menuName, - parentID = requestParams[2].parentID + parentID = requestParams[2].parentID } local function DuplicateNameMenu() local cid = common.getMobileSession():SendRPC("AddSubMenu", duplicateNameRequestParams) - common.getMobileSession():ExpectResponse(cid, { success = false, resultCode = "DUPLICATE_NAME" }) + common.getHMIConnection():ExpectRequest("UI.AddSubMenu") + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) end --[[ Scenario ]] diff --git a/test_scripts/API/AutoCompleteList/004_ResetGlobalProperties_SUCCESS.lua b/test_scripts/API/AutoCompleteList/004_ResetGlobalProperties_SUCCESS.lua index 56c8e9bbcb..55a4c23471 100644 --- a/test_scripts/API/AutoCompleteList/004_ResetGlobalProperties_SUCCESS.lua +++ b/test_scripts/API/AutoCompleteList/004_ResetGlobalProperties_SUCCESS.lua @@ -46,7 +46,8 @@ local requestUiParams = { keyboardProperties = { keyboardLayout = "QWERTY", autoCompleteList = {}, - language = "EN-US" + language = "EN-US", + maskInputCharacters = "DISABLE_INPUT_KEY_MASK" } } diff --git a/test_scripts/API/CloseApplication/003_App_is_registered_with_lower_version_than_the_RPC_required.lua b/test_scripts/API/CloseApplication/003_App_is_registered_with_lower_version_than_the_RPC_required.lua new file mode 100644 index 0000000000..39c6bb290c --- /dev/null +++ b/test_scripts/API/CloseApplication/003_App_is_registered_with_lower_version_than_the_RPC_required.lua @@ -0,0 +1,57 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/smartdevicelink/sdl_core/issues/3466 +-- +-- Precondition: +-- 1) Application with is registered on SDL with majorVersion = 5 and minorVersion = 0 +-- 2) Specific permissions are assigned for with CloseApplication +-- 3) CloseApplication RPC available since 6.0 API version +-- +-- Steps: +-- 1) Application sends a CloseApplication RPC request +-- +-- SDL does: +-- - a. not send CloseApplication RPC to the HMI and respond with INVALID_DATA to the Application +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('test_scripts/API/CloseApplication/commonCloseApplication') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false +config.application1.registerAppInterfaceParams.syncMsgVersion.majorVersion = 5 +config.application1.registerAppInterfaceParams.syncMsgVersion.minorVersion = 0 + +--[[ Local Variables ]] +local rpc = { + name = "CloseApplication", + hmiName = "BasicCommunication.CloseApplication", + params = {} +} + +local expectedResponse = { + success = false, + resultCode = "INVALID_DATA" +} + +--[[ Local Functions ]] +local function processRPCInvalidData() + local mobileSession = common.getMobileSession(1) + local cid = mobileSession:SendRPC(rpc.name, rpc.params) + common.getHMIConnection():ExpectRequest(rpc.hmiName) + :Times(0) + mobileSession:ExpectResponse(cid, expectedResponse) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("RAI", common.registerApp) +runner.Step("PTU", common.policyTableUpdate) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("RPC " .. rpc.name .. "_resultCode_INVALID_DATA", processRPCInvalidData) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_available_false_OnExitApplication.lua b/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_available_false_OnExitApplication.lua index 5bad3abf63..e07d614f7d 100644 --- a/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_available_false_OnExitApplication.lua +++ b/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_available_false_OnExitApplication.lua @@ -554,12 +554,10 @@ function Test:initHMI_onReady_Navi_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_available_false_UNSUPPORTED_RESOURCE.lua b/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_available_false_UNSUPPORTED_RESOURCE.lua index 6e3a49cb4d..65230a2b7f 100644 --- a/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_available_false_UNSUPPORTED_RESOURCE.lua +++ b/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_available_false_UNSUPPORTED_RESOURCE.lua @@ -554,12 +554,10 @@ function Test:initHMI_onReady_Navi_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_no_response_single_RPC_Result_Codes.lua b/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_no_response_single_RPC_Result_Codes.lua index cfe895b1b2..f57ccd1b3f 100644 --- a/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_no_response_single_RPC_Result_Codes.lua +++ b/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_no_response_single_RPC_Result_Codes.lua @@ -554,12 +554,10 @@ function Test:initHMI_onReady_Navi_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_no_response_single_RPC_no_response.lua b/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_no_response_single_RPC_no_response.lua index 74cfc7eb2b..dc3e3407d9 100644 --- a/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_no_response_single_RPC_no_response.lua +++ b/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_no_response_single_RPC_no_response.lua @@ -554,12 +554,10 @@ function Test:initHMI_onReady_Navi_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_no_response_split_RPC.lua b/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_no_response_split_RPC.lua index 32014d6f05..20cfb556db 100644 --- a/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_no_response_split_RPC.lua +++ b/test_scripts/API/IsReady/Navigation_IsReady/NotUsed/ATF_Navigation_IsReady_no_response_split_RPC.lua @@ -554,12 +554,10 @@ function Test:initHMI_onReady_Navi_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_RegisterApp.lua b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_RegisterApp.lua index 09e62a7f41..4e64bbd573 100644 --- a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_RegisterApp.lua +++ b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_RegisterApp.lua @@ -487,12 +487,10 @@ function Test:initHMI_onReady_TTS_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Single_RPC.lua b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Single_RPC.lua index 2b75da0a7f..baacf631e1 100644 --- a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Single_RPC.lua +++ b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Single_RPC.lua @@ -471,12 +471,10 @@ function Test:initHMI_onReady_TTS_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_1.lua b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_1.lua index 999a12bd84..8ebd10bb78 100644 --- a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_1.lua +++ b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_1.lua @@ -499,12 +499,10 @@ function Test:initHMI_onReady_TTS_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_2.lua b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_2.lua index 154ba4944a..807b83820f 100644 --- a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_2.lua +++ b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_2.lua @@ -497,12 +497,10 @@ function Test:initHMI_onReady_TTS_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_3.lua b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_3.lua index de07fe74ac..ec1ad55174 100644 --- a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_3.lua +++ b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_3.lua @@ -502,12 +502,10 @@ function Test:initHMI_onReady_TTS_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_RETRY.lua b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_RETRY.lua index 71e2240b1a..8c71aaa930 100644 --- a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_RETRY.lua +++ b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_RETRY.lua @@ -482,12 +482,10 @@ function Test:initHMI_onReady_TTS_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_SAVED.lua b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_SAVED.lua index a36b588466..470bb52de8 100644 --- a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_SAVED.lua +++ b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_SAVED.lua @@ -483,12 +483,10 @@ function Test:initHMI_onReady_TTS_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_SUCCESS.lua b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_SUCCESS.lua index e8c0c3e7dc..1c5cf3a2c5 100644 --- a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_SUCCESS.lua +++ b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_SUCCESS.lua @@ -484,12 +484,10 @@ function Test:initHMI_onReady_TTS_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_WARNINGS.lua b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_WARNINGS.lua index de248f4583..d5a8f73557 100644 --- a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_WARNINGS.lua +++ b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_WARNINGS.lua @@ -479,12 +479,10 @@ function Test:initHMI_onReady_TTS_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_WRONG_LANGUAGE.lua b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_WRONG_LANGUAGE.lua index 075c1a1189..80cb36f1f8 100644 --- a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_WRONG_LANGUAGE.lua +++ b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_NotRespond_Split_RPC_APPLINK_25139_WRONG_LANGUAGE.lua @@ -481,12 +481,10 @@ function Test:initHMI_onReady_TTS_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_false_RegisterApp.lua b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_false_RegisterApp.lua index 68d1c7c18e..e9c8f42198 100644 --- a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_false_RegisterApp.lua +++ b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_false_RegisterApp.lua @@ -471,12 +471,10 @@ function Test:initHMI_onReady_TTS_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_false_SingleRPC.lua b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_false_SingleRPC.lua index f3e1ed08e1..e75e1560fa 100644 --- a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_false_SingleRPC.lua +++ b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_false_SingleRPC.lua @@ -473,12 +473,10 @@ function Test:initHMI_onReady_TTS_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_false_Split_RPC.lua b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_false_Split_RPC.lua index d711bb1ab4..3a648d65da 100644 --- a/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_false_Split_RPC.lua +++ b/test_scripts/API/IsReady/TTS_IsReady/NotUsed/ATF_TTS_IsReady_false_Split_RPC.lua @@ -473,12 +473,10 @@ function Test:initHMI_onReady_TTS_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_available_false_RAI.lua b/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_available_false_RAI.lua index b14575f0ef..68a7f9e95f 100644 --- a/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_available_false_RAI.lua +++ b/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_available_false_RAI.lua @@ -481,12 +481,10 @@ function Test:initHMI_onReady_VR_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), @@ -851,12 +849,10 @@ local function Case1_BothVR_TTS_IsReady_available_false() text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_available_false_singleRPC.lua b/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_available_false_singleRPC.lua index b2ffb768be..f3c284022f 100644 --- a/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_available_false_singleRPC.lua +++ b/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_available_false_singleRPC.lua @@ -452,12 +452,10 @@ function Test:initHMI_onReady_VR_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_available_false_splitRPC_errorCode.lua b/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_available_false_splitRPC_errorCode.lua index 19946a3fb8..3501d2245c 100644 --- a/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_available_false_splitRPC_errorCode.lua +++ b/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_available_false_splitRPC_errorCode.lua @@ -451,12 +451,10 @@ function Test:initHMI_onReady_VR_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_available_false_splitRPC_success.lua b/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_available_false_splitRPC_success.lua index 5f0764c033..c2c0fd3634 100644 --- a/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_available_false_splitRPC_success.lua +++ b/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_available_false_splitRPC_success.lua @@ -451,12 +451,10 @@ function Test:initHMI_onReady_VR_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_RAI.lua b/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_RAI.lua index 80167dd238..7d88239873 100644 --- a/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_RAI.lua +++ b/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_RAI.lua @@ -486,12 +486,10 @@ function Test:initHMI_onReady_VR_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_singleRPC.lua b/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_singleRPC.lua index d2feb36143..5421e20fc5 100644 --- a/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_singleRPC.lua +++ b/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_singleRPC.lua @@ -451,12 +451,10 @@ function Test:initHMI_onReady_VR_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_splitRPC_VR_NotRespond.lua b/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_splitRPC_VR_NotRespond.lua index ff3ab1b71c..fb85f7d6dc 100644 --- a/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_splitRPC_VR_NotRespond.lua +++ b/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_splitRPC_VR_NotRespond.lua @@ -452,12 +452,10 @@ function Test:initHMI_onReady_VR_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_splitRPC_VR_responds_UNSUPPORTED_RESOURCE_other_SUCCESS.lua b/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_splitRPC_VR_responds_UNSUPPORTED_RESOURCE_other_SUCCESS.lua index a663382ea5..4e0d41b117 100644 --- a/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_splitRPC_VR_responds_UNSUPPORTED_RESOURCE_other_SUCCESS.lua +++ b/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_splitRPC_VR_responds_UNSUPPORTED_RESOURCE_other_SUCCESS.lua @@ -458,12 +458,10 @@ function Test:initHMI_onReady_VR_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_splitRPC_VR_responds_UNSUPPORTED_RESOURCE_other_error.lua b/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_splitRPC_VR_responds_UNSUPPORTED_RESOURCE_other_error.lua index b91eb91834..07b3d4b887 100644 --- a/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_splitRPC_VR_responds_UNSUPPORTED_RESOURCE_other_error.lua +++ b/test_scripts/API/IsReady/VR_IsReady/NotUsed/ATF_VR_IsReady_missed_splitRPC_VR_responds_UNSUPPORTED_RESOURCE_other_error.lua @@ -458,12 +458,10 @@ function Test:initHMI_onReady_VR_IsReady(case) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/API/KeyboardEnhancements/Capabilities/001_HMI_provides_valid_values_for_all_parameters_in_KeyboardCapabilities.lua b/test_scripts/API/KeyboardEnhancements/Capabilities/001_HMI_provides_valid_values_for_all_parameters_in_KeyboardCapabilities.lua new file mode 100644 index 0000000000..62f9db7963 --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/Capabilities/001_HMI_provides_valid_values_for_all_parameters_in_KeyboardCapabilities.lua @@ -0,0 +1,29 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to receive 'KeyboardCapabilities' from HMI and transfer them to App +-- in case all parameters are defined with valid values +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- 3. App requests 'DISPLAYS' system capabilities through 'GetSystemCapability' +-- SDL does: +-- - Provide 'KeyboardCapabilities' to App +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated) +common.Step("App sends GetSystemCapability", common.sendGetSystemCapability) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/Capabilities/002_HMI_provides_valid_value_for_one_parameter_in_KeyboardCapabilities.lua b/test_scripts/API/KeyboardEnhancements/Capabilities/002_HMI_provides_valid_value_for_one_parameter_in_KeyboardCapabilities.lua new file mode 100644 index 0000000000..14935a847e --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/Capabilities/002_HMI_provides_valid_value_for_one_parameter_in_KeyboardCapabilities.lua @@ -0,0 +1,50 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to receive 'KeyboardCapabilities' from HMI and transfer them to App +-- in case one parameter is defined with valid values (edge scenarios) +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- 3. App requests 'DISPLAYS' system capabilities through 'GetSystemCapability' +-- SDL does: +-- - Provide 'KeyboardCapabilities' to App +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local tcs = { + [01] = { maskInputCharactersSupported = false }, + [02] = { maskInputCharactersSupported = true }, + [03] = { supportedKeyboards = common.getArrayValue({ { keyboardLayout = "QWERTY", numConfigurableKeys = 1 }}, 1) }, + [04] = { supportedKeyboards = common.getArrayValue({ { keyboardLayout = "QWERTY", numConfigurableKeys = 0 }}, 5) }, + [05] = { supportedKeyboards = common.getArrayValue({ { keyboardLayout = "QWERTY", numConfigurableKeys = 5 }}, 1000) }, + [06] = { supportedKeyboards = common.getArrayValue({ { keyboardLayout = "QWERTY", numConfigurableKeys = 10 }}, 5) } +} + +--[[ Local Functions ]] +local function getDispCaps(pTC) + local dispCaps = common.getDispCaps() + dispCaps.systemCapability.displayCapabilities[1].windowCapabilities[1].keyboardCapabilities = pTC + return dispCaps +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +for tc, data in common.spairs(tcs) do + common.Title("TC[" .. string.format("%03d", tc) .. "]") + local dispCaps = getDispCaps(data) + common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated, { dispCaps }) + common.Step("App sends GetSystemCapability", common.sendGetSystemCapability, { dispCaps }) +end + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/Capabilities/003_HMI_doesnt_provide_KeyboardCapabilities.lua b/test_scripts/API/KeyboardEnhancements/Capabilities/003_HMI_doesnt_provide_KeyboardCapabilities.lua new file mode 100644 index 0000000000..dd08c52012 --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/Capabilities/003_HMI_doesnt_provide_KeyboardCapabilities.lua @@ -0,0 +1,42 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check SDL is still able to receive 'WindowCapabilities' from HMI without 'KeyboardCapabilities' +-- and transfer them to App +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'WindowCapabilities' without 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- 3. App requests 'DISPLAYS' system capabilities through 'GetSystemCapability' +-- SDL does: +-- - Provide 'WindowCapabilities' without 'KeyboardCapabilities' to App +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local dispCaps = common.getDispCaps() +dispCaps.systemCapability.displayCapabilities[1].windowCapabilities[1].keyboardCapabilities = nil + +--[[ Local Functions ]] +local function check(_, data) + if data.payload.systemCapability.displayCapabilities[1].windowCapabilities[1].keyboardCapabilities ~= nil then + return false, "Unexpected 'keyboardCapabilities' parameter received" + end + return true +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated, + { dispCaps, common.expected.yes, check }) +common.Step("App sends GetSystemCapability", common.sendGetSystemCapability, { dispCaps, common.result.success, check }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/Capabilities/004_HMI_doesnt_send_OnSCU.lua b/test_scripts/API/KeyboardEnhancements/Capabilities/004_HMI_doesnt_send_OnSCU.lua new file mode 100644 index 0000000000..1b7be622ba --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/Capabilities/004_HMI_doesnt_send_OnSCU.lua @@ -0,0 +1,37 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check SDL is unable to provide 'WindowCapabilities' to App +-- in case if HMI has not sent 'OnSystemCapabilityUpdated' notification +-- +-- Steps: +-- 1. App is registered +-- 2. HMI doesn't send 'OnSystemCapabilityUpdated' notification with 'WindowCapabilities' +-- 3. App requests 'DISPLAYS' system capabilities through 'GetSystemCapability' +-- SDL does: +-- - Respond with DATA_NOT_AVAILABLE, success:false to App +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Functions ]] +local function check(_, data) + if data.payload.systemCapability ~= nil then + return false, "Unexpected 'systemCapability' parameter received" + end + return true +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +common.Step("App sends GetSystemCapability", common.sendGetSystemCapability, + { { }, common.result.data_not_available, check }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/Capabilities/005_HMI_provides_invalid_value_for_one_parameter_in_KeyboardCapabilities.lua b/test_scripts/API/KeyboardEnhancements/Capabilities/005_HMI_provides_invalid_value_for_one_parameter_in_KeyboardCapabilities.lua new file mode 100644 index 0000000000..48ac71671d --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/Capabilities/005_HMI_provides_invalid_value_for_one_parameter_in_KeyboardCapabilities.lua @@ -0,0 +1,62 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check SDL is unable to provide 'WindowCapabilities' to App +-- in case if HMI has sent 'OnSystemCapabilityUpdated' notification with invalid data +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' with invalid data within 'OnSystemCapabilityUpdated' notification +-- 3. App requests 'DISPLAYS' system capabilities through 'GetSystemCapability' +-- SDL does: +-- - Respond with DATA_NOT_AVAILABLE, success:false to App +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local tcs = { + [01] = { maskInputCharactersSupported = "false" }, --invalid type + [02] = { supportedKeyboards = { { keyboardLayout = "QWERTY", numConfigurableKeys = "0" }} }, + [03] = { supportedKeyboards = { { keyboardLayout = true, numConfigurableKeys = 0 }} }, + [04] = { supportedKeyboards = { { } } }, + [05] = { supportedKeyboards = { { keyboardLayout = "QWERTY", numConfigurableKeys = nil }} }, + [06] = { supportedKeyboards = { { keyboardLayout = nil, numConfigurableKeys = 0 }} }, + [07] = { supportedKeyboards = common.getArrayValue({ { keyboardLayout = "QWERTY", numConfigurableKeys = 0 }}, 1001) }, + [08] = { supportedKeyboards = { { keyboardLayout = "QWERTY", numConfigurableKeys = 11 }} }, + [09] = { supportedKeyboards = common.json.EMPTY_ARRAY } +} + +--[[ Local Functions ]] +local function getDispCaps(pTC) + local dispCaps = common.getDispCaps() + dispCaps.systemCapability.displayCapabilities[1].windowCapabilities[1].keyboardCapabilities = pTC + return dispCaps +end + +local function check(_, data) + if data.payload.systemCapability ~= nil then + return false, "Unexpected 'systemCapability' parameter received" + end + return true +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +for tc, data in common.spairs(tcs) do + common.Title("TC[" .. string.format("%03d", tc) .. "]") + local dispCaps = getDispCaps(data) + common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated, + { dispCaps, common.expected.no }) + common.Step("App sends GetSystemCapability", common.sendGetSystemCapability, + { { }, common.result.data_not_available, check }) +end + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/OnKeyboardInput/001_App_receives_OnKeyboardInput.lua b/test_scripts/API/KeyboardEnhancements/OnKeyboardInput/001_App_receives_OnKeyboardInput.lua new file mode 100644 index 0000000000..c601513c31 --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/OnKeyboardInput/001_App_receives_OnKeyboardInput.lua @@ -0,0 +1,49 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to transfer 'OnKeyboardInput' notification from HMI to App +-- with new values for 'event' +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- 3. App sends 'SetGlobalProperties' with 'maskInputCharacters=USER_CHOICE_INPUT_KEY_MASK' +-- 4. HMI sends 'OnKeyboardInput' notification with specific values for 'event': +-- - INPUT_KEY_MASK_ENABLED +-- - INPUT_KEY_MASK_DISABLED +-- SDL does: +-- - Transfer 'OnKeyboardInput' notification to App +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local sgpParams = { + keyboardProperties = { + keyboardLayout = "NUMERIC", + maskInputCharacters = "USER_CHOICE_INPUT_KEY_MASK" + } +} + +--[[ Local Functions ]] +local function ptUpd(pTbl) + pTbl.policy_table.app_policies[common.getPolicyAppId()].groups = { "Base-4", "OnKeyboardInputOnlyGroup" } +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) +common.Step("PTU", common.policyTableUpdate, { ptUpd }) +common.Step("Activate App", common.activateApp) + +common.Title("Test") +common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated) +common.Step("App sends SetGlobalProperties", common.sendSetGlobalProperties, { sgpParams, common.result.success }) +common.Step("HMI sends OnKeyboardInput", common.sendOnKeyboardInput, { { event = "INPUT_KEY_MASK_ENABLED" } }) +common.Step("HMI sends OnKeyboardInput", common.sendOnKeyboardInput, { { event = "INPUT_KEY_MASK_DISABLED" } }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/ResetGlobalProperties/001_App_resets_KeyboardProperties.lua b/test_scripts/API/KeyboardEnhancements/ResetGlobalProperties/001_App_resets_KeyboardProperties.lua new file mode 100644 index 0000000000..f25db2816d --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/ResetGlobalProperties/001_App_resets_KeyboardProperties.lua @@ -0,0 +1,70 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check App is able to reset previously defined 'KeyboardProperties' to default values +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- 3. App sends 'SetGlobalProperties' with some non-default values for 'KeyboardProperties' +-- 4. App sends 'ResetGlobalProperties' for 'KEYBOARDPROPERTIES' +-- SDL does: +-- - Send default values for 'KeyboardProperties' to HMI within 'UI.SetGlobalProperties' request +-- - By receiving successful response from HMI transfer it to App +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local sgpParams = { + keyboardProperties = { + language = "EN-US", + keyboardLayout = "NUMERIC", + keypressMode = "SINGLE_KEYPRESS", + limitedCharacterList = { "a" }, + autoCompleteList = { "Daemon, Freedom" }, + maskInputCharacters = "DISABLE_INPUT_KEY_MASK", + customKeys = { "#" } + } +} + +--[[ Local Functions ]] +local function sendResetGP() + local params = { properties = { "KEYBOARDPROPERTIES" } } + local dataToHMI = { + keyboardProperties = { + language = "EN-US", + keyboardLayout = "QWERTY", + autoCompleteList = common.json.EMPTY_ARRAY, + maskInputCharacters = "DISABLE_INPUT_KEY_MASK" + }, + appID = common.getHMIAppId() + } + local cid = common.getMobileSession():SendRPC("ResetGlobalProperties", params) + common.getHMIConnection():ExpectRequest("UI.SetGlobalProperties", dataToHMI) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + :ValidIf(function(_, data) + if data.params.keyboardProperties.customKeys then + return false, "Unexpected 'customKeys' parameter received" + end + return true + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated) +common.Step("App sends SetGlobalProperties", common.sendSetGlobalProperties, { sgpParams, common.result.success }) +common.Step("App sends ResetGP", sendResetGP) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/Resumption/001_SDL_resumes_KeyboardProperties_all_params.lua b/test_scripts/API/KeyboardEnhancements/Resumption/001_SDL_resumes_KeyboardProperties_all_params.lua new file mode 100644 index 0000000000..24757f5d53 --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/Resumption/001_SDL_resumes_KeyboardProperties_all_params.lua @@ -0,0 +1,48 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to resume previously defined by App 'KeyboardProperties' after +-- unexpected disconnect +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- 3. App sends 'SetGlobalProperties' with some non-default values for 'KeyboardProperties' +-- 4. App unexpectedly disconnects and reconnects +-- SDL does: +-- - Start data resumption process +-- - Send the values defined by App for 'KeyboardProperties' to HMI within 'UI.SetGlobalProperties' request +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local sgpParams = { + keyboardProperties = { + language = "EN-US", + keyboardLayout = "AZERTY", + keypressMode = "SINGLE_KEYPRESS", + limitedCharacterList = { "a" }, + autoCompleteList = { "Daemon, Freedom" }, + maskInputCharacters = "DISABLE_INPUT_KEY_MASK", + customKeys = { "#", "$" } + } +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated) +common.Step("App sends SetGlobalProperties", common.sendSetGlobalPropertiesWithHashId, + { sgpParams, common.result.success }) +common.Step("Unexpected disconnect", common.unexpectedDisconnect) +common.Step("Connect mobile", common.connectMobile) +common.Step("Re-register App", common.reRegisterApp, { sgpParams }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/Resumption/002_SDL_resumes_cached_KeyboardProperties.lua b/test_scripts/API/KeyboardEnhancements/Resumption/002_SDL_resumes_cached_KeyboardProperties.lua new file mode 100644 index 0000000000..d032afb1ed --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/Resumption/002_SDL_resumes_cached_KeyboardProperties.lua @@ -0,0 +1,70 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to resume cached language, keyboardLayout, autoCompleteList from KeyboardProperties +-- after unexpected disconnect +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- 3. App sends 'SetGlobalProperties' with some non-default values for all parameters in 'KeyboardProperties' +-- SDL does: +-- - Cache all values of received parameters +-- 4. App sends 'SetGlobalProperties' with empty 'KeyboardProperties' +-- SDL does: +-- - Keep values for language, keyboardLayout, autoCompleteList +-- - Reset all other parameter values to the default values +-- 5. App unexpectedly disconnects and reconnects +-- SDL does: +-- - Start data resumption process +-- - Send language, keyboardLayout, autoCompleteList defined by App in 'KeyboardProperties' to HMI +-- within 'UI.SetGlobalProperties' request +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local sgpParams_1 = { + keyboardProperties = { + language = "EN-US", + keyboardLayout = "AZERTY", + keypressMode = "SINGLE_KEYPRESS", + limitedCharacterList = { "a" }, + autoCompleteList = { "Daemon, Freedom" }, + maskInputCharacters = "DISABLE_INPUT_KEY_MASK", + customKeys = { "#", "$" } + } +} + +local sgpParams_2 = { + keyboardProperties = { } +} + +local sgpParams_resumption = { + keyboardProperties = { + language = sgpParams_1.keyboardProperties.language, + keyboardLayout = sgpParams_1.keyboardProperties.keyboardLayout, + autoCompleteList = sgpParams_1.keyboardProperties.autoCompleteList, + maskInputCharacters = sgpParams_1.keyboardProperties.maskInputCharacters + } +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated) +common.Step("App sends SetGlobalProperties first request", common.sendSetGlobalPropertiesWithHashId, + { sgpParams_1, common.result.success }) +common.Step("App sends SetGlobalProperties second request", common.sendSetGlobalPropertiesWithHashId, + { sgpParams_2, common.result.success }) +common.Step("Unexpected disconnect", common.unexpectedDisconnect) +common.Step("Connect mobile", common.connectMobile) +common.Step("Re-register App", common.reRegisterApp, { sgpParams_resumption }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/Resumption/003_SDL_resumes_cached_KeyboardProperties_with_removed_autoCompleteList.lua b/test_scripts/API/KeyboardEnhancements/Resumption/003_SDL_resumes_cached_KeyboardProperties_with_removed_autoCompleteList.lua new file mode 100644 index 0000000000..f0b6bf5553 --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/Resumption/003_SDL_resumes_cached_KeyboardProperties_with_removed_autoCompleteList.lua @@ -0,0 +1,71 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to resume cached language, keyboardLayout from KeyboardProperties +-- after unexpected disconnect +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- 3. App sends 'SetGlobalProperties' with some non-default values for all parameters in 'KeyboardProperties' +-- SDL does: +-- - Cache all values of received parameters +-- 4. App sends 'SetGlobalProperties' with empty array in autoCompleteList in 'KeyboardProperties' +-- SDL does: +-- - Keep values for language, keyboardLayout +-- - Reset all other parameter values to the default values +-- 5. App unexpectedly disconnects and reconnects +-- SDL does: +-- - Start data resumption process +-- - Send language, keyboardLayout defined by App in 'KeyboardProperties' to HMI +-- within 'UI.SetGlobalProperties' request +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local sgpParams_1 = { + keyboardProperties = { + language = "EN-US", + keyboardLayout = "AZERTY", + keypressMode = "SINGLE_KEYPRESS", + limitedCharacterList = { "a" }, + autoCompleteList = { "Daemon, Freedom" }, + maskInputCharacters = "USER_CHOICE_INPUT_KEY_MASK", + customKeys = { "#", "$" } + } +} + +local sgpParams_2 = { + keyboardProperties = { + autoCompleteList = common.json.EMPTY_ARRAY + } +} + +local sgpParams_resumption = { + keyboardProperties = { + language = sgpParams_1.keyboardProperties.language, + keyboardLayout = sgpParams_1.keyboardProperties.keyboardLayout, + maskInputCharacters = sgpParams_1.keyboardProperties.maskInputCharacters + } +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated) +common.Step("App sends SetGlobalProperties first request", common.sendSetGlobalPropertiesWithHashId, + { sgpParams_1, common.result.success }) +common.Step("App sends SetGlobalProperties second request", common.sendSetGlobalPropertiesWithHashId, + { sgpParams_2, common.result.success }) +common.Step("Unexpected disconnect", common.unexpectedDisconnect) +common.Step("Connect mobile", common.connectMobile) +common.Step("Re-register App", common.reRegisterApp, { sgpParams_resumption }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/Resumption/004_SDL_resumes_cached_KeyboardProperties_single_parameter.lua b/test_scripts/API/KeyboardEnhancements/Resumption/004_SDL_resumes_cached_KeyboardProperties_single_parameter.lua new file mode 100644 index 0000000000..845eda61c2 --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/Resumption/004_SDL_resumes_cached_KeyboardProperties_single_parameter.lua @@ -0,0 +1,97 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to resume cached and set parameters from KeyboardProperties +-- after unexpected disconnect +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- 3. App sends 'SetGlobalProperties' with some non-default values for all parameters in 'KeyboardProperties' +-- SDL does: +-- - Cache all values of received parameters +-- 4. App sends 'SetGlobalProperties' with one parameter in 'KeyboardProperties' +-- SDL does: +-- - Keep values for language, keyboardLayout, autoCompleteList +-- - Reset all other parameter values to the default values +-- - Update the value of parameter received in the second SetGlobalProperties request +-- 5. App unexpectedly disconnects and reconnects +-- SDL does: +-- - Start data resumption process +-- - Send cached and set parameters defined by App in 'KeyboardProperties' to HMI +-- within 'UI.SetGlobalProperties' request +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local sgpParams = { + keyboardProperties = { + language = "DE-DE", + keyboardLayout = "NUMERIC", + keypressMode = "QUEUE_KEYPRESSES", + limitedCharacterList = { "b" }, + autoCompleteList = { "123" }, + maskInputCharacters = "ENABLE_INPUT_KEY_MASK", + customKeys = { "*" } + } +} + +--[[ Local Functions ]] +local function getParamsForReq(pParam) + local reqParams = { + keyboardProperties = { + language = "EN-US", + keyboardLayout = "AZERTY", + keypressMode = "SINGLE_KEYPRESS", + limitedCharacterList = { "a" }, + autoCompleteList = { "Daemon, Freedom" }, + maskInputCharacters = "DISABLE_INPUT_KEY_MASK", + customKeys = { "#" } + } + } + local out = { + keyboardProperties = {} + } + out.keyboardProperties[pParam] = reqParams.keyboardProperties[pParam] + return out +end + +local function getResumptionParams(pReqParams) + local resumptionParams = { + keyboardProperties = { + language = sgpParams.keyboardProperties.language, + keyboardLayout = sgpParams.keyboardProperties.keyboardLayout, + autoCompleteList = sgpParams.keyboardProperties.autoCompleteList, + maskInputCharacters = sgpParams.keyboardProperties.maskInputCharacters + } + } + local k, v = next(pReqParams.keyboardProperties) + resumptionParams.keyboardProperties[k] = v + return resumptionParams +end + +--[[ Scenario ]] +for parameter in common.spairs (sgpParams.keyboardProperties) do + common.Title("Resumption of " .. parameter .. " parameter") + local reqParams = getParamsForReq(parameter) + local resumptionParams = getResumptionParams(reqParams) + common.Title("Preconditions") + common.Step("Clean environment", common.preconditions) + common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.Step("Register App", common.registerApp) + + common.Title("Test") + common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated) + common.Step("App sends SetGlobalProperties first request", common.sendSetGlobalPropertiesWithHashId, + { sgpParams, common.result.success }) + common.Step("App sends SetGlobalProperties second request", common.sendSetGlobalPropertiesWithHashId, + { reqParams, common.result.success }) + common.Step("Unexpected disconnect", common.unexpectedDisconnect) + common.Step("Connect mobile", common.connectMobile) + common.Step("Re-register App", common.reRegisterApp, { resumptionParams }) + + common.Title("Postconditions") + common.Step("Stop SDL", common.postconditions) +end diff --git a/test_scripts/API/KeyboardEnhancements/Resumption/005_SDL_resumes_KeyboardProperties_single_parameter.lua b/test_scripts/API/KeyboardEnhancements/Resumption/005_SDL_resumes_KeyboardProperties_single_parameter.lua new file mode 100644 index 0000000000..32567ed160 --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/Resumption/005_SDL_resumes_KeyboardProperties_single_parameter.lua @@ -0,0 +1,62 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to resume previously defined by App one parameter from 'KeyboardProperties' after +-- unexpected disconnect +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- 3. App sends 'SetGlobalProperties' with one parameter with non-default values for 'KeyboardProperties' +-- 4. App unexpectedly disconnects and reconnects +-- SDL does: +-- - Start data resumption process +-- - Send the values defined by App for 'KeyboardProperties' to HMI within 'UI.SetGlobalProperties' request +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local sgpParams = { + keyboardProperties = { + language = "DE-DE", + keyboardLayout = "NUMERIC", + keypressMode = "QUEUE_KEYPRESSES", + limitedCharacterList = { "b" }, + autoCompleteList = { "123" }, + maskInputCharacters = "ENABLE_INPUT_KEY_MASK", + customKeys = { "*" } + } +} + +--[[ Local Functions ]] +local function getParamsForReq(pParam) + local reqParams = common.cloneTable(sgpParams) + local out = { + keyboardProperties = {} + } + out.keyboardProperties[pParam] = reqParams.keyboardProperties[pParam] + return out +end + +--[[ Scenario ]] +for parameter in common.spairs (sgpParams.keyboardProperties) do + common.Title("Resumption of " .. parameter .. " parameter") + local reqParams = getParamsForReq(parameter) + common.Title("Preconditions") + common.Step("Clean environment", common.preconditions) + common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.Step("Register App", common.registerApp) + + common.Title("Test") + common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated) + common.Step("App sends SetGlobalProperties request", common.sendSetGlobalPropertiesWithHashId, + { reqParams, common.result.success }) + common.Step("Unexpected disconnect", common.unexpectedDisconnect) + common.Step("Connect mobile", common.connectMobile) + common.Step("Re-register App", common.reRegisterApp, { reqParams }) + + common.Title("Postconditions") + common.Step("Stop SDL", common.postconditions) +end diff --git a/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/001_App_sets_NUMERIC_keyboard.lua b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/001_App_sets_NUMERIC_keyboard.lua new file mode 100644 index 0000000000..5377e0b52a --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/001_App_sets_NUMERIC_keyboard.lua @@ -0,0 +1,41 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check App is able to define 'KeyboardProperties' for 'NUMERIC' layout +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- 3. App sends 'SetGlobalProperties' with 'NUMERIC' layout in 'KeyboardProperties' and some non-default values +-- SDL does: +-- - Proceed with request successfully +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local sgpParams = { + keyboardProperties = { + language = "EN-US", + keyboardLayout = "NUMERIC", + keypressMode = "SINGLE_KEYPRESS", + limitedCharacterList = { "a" }, + autoCompleteList = { "Daemon, Freedom" }, + maskInputCharacters = "DISABLE_INPUT_KEY_MASK", + customKeys = { "#" } + } +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated) +common.Step("App sends SetGlobalProperties", common.sendSetGlobalProperties, { sgpParams, common.result.success }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/002_App_masks_input_characters.lua b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/002_App_masks_input_characters.lua new file mode 100644 index 0000000000..c94e322334 --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/002_App_masks_input_characters.lua @@ -0,0 +1,45 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check App is able to mask input characters via 'maskInputCharacters' parameter +-- of `KeyboardProperties` struct +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- 3. App sends 'SetGlobalProperties' with 'maskInputCharacters' in 'KeyboardProperties' +-- SDL does: +-- - Proceed with request successfully +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local maskValues = { "ENABLE_INPUT_KEY_MASK", "DISABLE_INPUT_KEY_MASK", "USER_CHOICE_INPUT_KEY_MASK" } + +--[[ Local Functions ]] +local function getSGPParams(pMaskValue) + return { + keyboardProperties = { + keyboardLayout = "NUMERIC", + maskInputCharacters = pMaskValue + } + } +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated) +for _, v in common.spairs(maskValues) do + common.Step("App sends SetGlobalProperties " .. v, common.sendSetGlobalProperties, + { getSGPParams(v), common.result.success }) +end + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/003_App_defines_invalid_value_for_maskInputCharacters.lua b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/003_App_defines_invalid_value_for_maskInputCharacters.lua new file mode 100644 index 0000000000..74cb530f32 --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/003_App_defines_invalid_value_for_maskInputCharacters.lua @@ -0,0 +1,38 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check App receives 'INVALID_DATA' in case it defines invalid value for 'maskInputCharacters' +-- parameter of 'KeyboardProperties' struct +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- 3. App sends 'SetGlobalProperties' with invalid value for 'maskInputCharacters' parameter in 'KeyboardProperties' +-- SDL does: +-- - Not transfer request to HMI +-- - Respond with INVALID_DATA, success:false to App +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local sgpParams = { + keyboardProperties = { + keyboardLayout = "NUMERIC", + maskInputCharacters = true --invalid type + } +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated) +common.Step("App sends SetGlobalProperties", common.sendSetGlobalProperties, { sgpParams, common.result.invalid_data }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/004_App_defines_customKeys.lua b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/004_App_defines_customKeys.lua new file mode 100644 index 0000000000..fae1c28d6a --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/004_App_defines_customKeys.lua @@ -0,0 +1,45 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check App is able to change special characters via 'customKeys' parameter +-- of 'KeyboardProperties' struct +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- 3. App sends 'SetGlobalProperties' with 'customKeys' in 'KeyboardProperties' +-- SDL does: +-- - Proceed with request successfully +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local keys = { "$", "#", "&" } + +--[[ Local Functions ]] +local function getSGPParams(pKey) + return { + keyboardProperties = { + keyboardLayout = "NUMERIC", + customKeys = { pKey } + } + } +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated) +for _, v in common.spairs(keys) do + common.Step("App sends SetGlobalProperties", common.sendSetGlobalProperties, + { getSGPParams(v), common.result.success }) +end + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/005_App_defines_customKeys_edge_cases.lua b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/005_App_defines_customKeys_edge_cases.lua new file mode 100644 index 0000000000..6944378e2a --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/005_App_defines_customKeys_edge_cases.lua @@ -0,0 +1,56 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check App is able to change special characters via 'customKeys' parameter +-- of 'KeyboardProperties' struct (edge scenarios) +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- 3. App sends 'SetGlobalProperties' with 'customKeys' in 'KeyboardProperties' +-- SDL does: +-- - Proceed with request successfully +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local dispCaps = common.getDispCaps() +dispCaps.systemCapability.displayCapabilities[1].windowCapabilities[1].keyboardCapabilities = { + supportedKeyboards = { { keyboardLayout = "NUMERIC", numConfigurableKeys = 8 } } +} + +local keys = { "$", "#", "&" } + +local tcs = { + [01] = { customKeys = common.getArrayValue(keys, 1) }, -- lower in bound + [02] = { customKeys = common.getArrayValue(keys, 8) } -- upper in bound +} + +--[[ Local Functions ]] +local function getSGPParams(pKeys) + return { + keyboardProperties = { + keyboardLayout = "NUMERIC", + customKeys = pKeys.customKeys + } + } +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated, { dispCaps }) +for tc, data in common.spairs(tcs) do + common.Title("TC[" .. string.format("%03d", tc) .. "]") + common.Step("App sends SetGlobalProperties", common.sendSetGlobalProperties, + { getSGPParams(data), common.result.success }) +end + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/006_App_defines_invalid_value_in_customKeys.lua b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/006_App_defines_invalid_value_in_customKeys.lua new file mode 100644 index 0000000000..a6cdf0f987 --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/006_App_defines_invalid_value_in_customKeys.lua @@ -0,0 +1,58 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check App receives 'INVALID_DATA' in case it defines invalid value for 'customKeys' +-- parameter of 'KeyboardProperties' struct +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- 3. App sends 'SetGlobalProperties' with invalid value in 'customKeys' parameter in 'KeyboardProperties' +-- SDL does: +-- - Not transfer request to HMI +-- - Respond with INVALID_DATA, success:false to App +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local dispCaps = common.getDispCaps() +dispCaps.systemCapability.displayCapabilities[1].windowCapabilities[1].keyboardCapabilities = { + supportedKeyboards = { { keyboardLayout = "NUMERIC", numConfigurableKeys = 8 } } +} + +local keys = { "$", "#", "&" } + +local tcs = { + [01] = { customKeys = common.json.EMPTY_ARRAY }, -- lower out of bound + [02] = { customKeys = common.getArrayValue(keys, 9) }, -- upper out of bound + [03] = { customKeys = 123 }, -- invalid type +} + +--[[ Local Functions ]] +local function getSGPParams(pKeys) + return { + keyboardProperties = { + keyboardLayout = "NUMERIC", + customKeys = pKeys.customKeys + } + } +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated, { dispCaps }) +for tc, data in common.spairs(tcs) do + common.Title("TC[" .. string.format("%03d", tc) .. "]") + common.Step("App sends SetGlobalProperties", common.sendSetGlobalProperties, + { getSGPParams(data), common.result.invalid_data }) +end + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/007_App_defines_excessive_value_in_customKeys.lua b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/007_App_defines_excessive_value_in_customKeys.lua new file mode 100644 index 0000000000..db46f44303 --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/007_App_defines_excessive_value_in_customKeys.lua @@ -0,0 +1,78 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check App receives 'INVALID_DATA' if number of keys in 'customKeys' array is more +-- than customizable keys allowed +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- 3. App sends 'SetGlobalProperties' with excessive number of values in 'customKeys' parameter +-- in 'KeyboardProperties' +-- SDL does: +-- - Not transfer request to HMI +-- - Respond with INVALID_DATA, success:false to App with appropriate message in 'info' +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local keys = { "$", "#", "&" } + +--[[ Local Functions ]] +local function getOnSCUParams(pNumOfKeys) + local dispCaps = common.getDispCaps() + dispCaps.systemCapability.displayCapabilities[1].windowCapabilities[1].keyboardCapabilities = { + supportedKeyboards = { { keyboardLayout = "NUMERIC", numConfigurableKeys = pNumOfKeys } } + } + return dispCaps +end + +local function getSGPParams(pNumOfKeys, pLayout) + if not pLayout then pLayout = "NUMERIC" end + return { + keyboardProperties = { + keyboardLayout = pLayout, + customKeys = common.getArrayValue(keys, pNumOfKeys) + } + } +end + +local function check(_, data) + if data.payload.success == true and data.payload.info ~= nil then + return false, "Unexpected 'info' parameter received" + end + local exp = "customKeys exceeds the number of customizable keys in this Layout" + if data.payload.success == false and data.payload.info ~= exp then + return false, "Expected 'info':\n" .. exp .. "\nActual:\n" .. tostring(data.payload.info) + end + return true +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +common.Step("HMI sends OnSystemCapabilityUpdated 1", common.sendOnSystemCapabilityUpdated, + { getOnSCUParams(1) }) +common.Step("App sends SetGlobalProperties 1 success", common.sendSetGlobalProperties, + { getSGPParams(1), common.result.success, check }) +common.Step("App sends SetGlobalProperties 2 invalid_data", common.sendSetGlobalProperties, + { getSGPParams(2), common.result.invalid_data, check }) +common.Step("HMI sends OnSystemCapabilityUpdated 1", common.sendOnSystemCapabilityUpdated, + { getOnSCUParams(2) }) +common.Step("App sends SetGlobalProperties 1 success", common.sendSetGlobalProperties, + { getSGPParams(1), common.result.success, check }) +common.Step("App sends SetGlobalProperties 2 success", common.sendSetGlobalProperties, + { getSGPParams(2), common.result.success, check }) +common.Step("App sends SetGlobalProperties 3 invalid_data", common.sendSetGlobalProperties, + { getSGPParams(3), common.result.invalid_data, check }) +common.Step("App sends SetGlobalProperties 1 unknown layout invalid_data", common.sendSetGlobalProperties, + { getSGPParams(1, "QWERTY"), common.result.invalid_data, check }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/008_App_defines_not_supported_special_character_in_customKeys.lua b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/008_App_defines_not_supported_special_character_in_customKeys.lua new file mode 100644 index 0000000000..a7d468c18b --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/008_App_defines_not_supported_special_character_in_customKeys.lua @@ -0,0 +1,51 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check App is able to receive 'WARNINGS' response with appropriate 'info' +-- for 'SetGlobalProperties' request in case if a certain special character is not supported by HMI +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- 3. App sends 'SetGlobalProperties' with non-supported special character in 'customKeys' parameter +-- in 'KeyboardProperties' +-- SDL does: +-- - Transfer request to HMI +-- 4. HMI responds with successful 'WARNINGS' message +-- SDL does: +-- - Respond with 'WARNINGS', success:true to App +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Functions ]] +local function sendSetGlobalProperties() + local sgpParams = { + keyboardProperties = { + keyboardLayout = "NUMERIC", + customKeys = { "^" } -- special character that is not supported by HMI + } + } + local dataToHMI = common.cloneTable(sgpParams) + dataToHMI.appID = common.getHMIAppId() + local cid = common.getMobileSession():SendRPC("SetGlobalProperties", sgpParams) + common.getHMIConnection():ExpectRequest("UI.SetGlobalProperties", dataToHMI) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "WARNINGS", {}) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "WARNINGS" }) +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated) +common.Step("App sends SetGlobalProperties warnings", sendSetGlobalProperties) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/009_Multiple_apps_set_KeyboardProperties.lua b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/009_Multiple_apps_set_KeyboardProperties.lua new file mode 100644 index 0000000000..08470d5ed1 --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/009_Multiple_apps_set_KeyboardProperties.lua @@ -0,0 +1,83 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check SDL correctly proceed with 'SetGlobalProperties' requests +-- with 'KeyboardProperties' parameters for multiple apps +-- +-- Steps: +-- 1. App_1 and App_2 are registered +-- 2. HMI provides two different sets of 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notifications +-- to App_1 and to App_2 +-- 3. App_1 sends 'SetGlobalProperties' with 'KeyboardProperties' which are corresponds to App_1 +-- SDL does: +-- - Proceed with request successfully +-- 4. App_1 sends 'SetGlobalProperties' with 'KeyboardProperties' which are corresponds to App_2 +-- SDL does: +-- - Not proceed with request and respond with INVALID_DATA, success:false to App +-- 5. App_2 sends 'SetGlobalProperties' with 'KeyboardProperties' which are corresponds to App_2 +-- SDL does: +-- - Proceed with request successfully +-- 6. App_2 sends 'SetGlobalProperties' with 'KeyboardProperties' which are corresponds to App_1 +-- SDL does: +-- - Not proceed with request and respond with INVALID_DATA, success:false to App +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local dispCaps1 = common.getDispCaps() +dispCaps1.systemCapability.displayCapabilities[1].windowCapabilities[1].keyboardCapabilities = { + maskInputCharactersSupported = true, + supportedKeyboards = { { keyboardLayout = "AZERTY", numConfigurableKeys = 2 } } +} +local dispCaps2 = common.getDispCaps() +dispCaps2.systemCapability.displayCapabilities[1].windowCapabilities[1].keyboardCapabilities = { + maskInputCharactersSupported = false, + supportedKeyboards = { { keyboardLayout = "NUMERIC", numConfigurableKeys = 1 } } +} + +--[[ Local Functions ]] +local function getSGPParams(pLayout, pNumOfKeys) + local keys = { "$", "#", "&" } + return { + keyboardProperties = { + keyboardLayout = pLayout, + customKeys = common.getArrayValue(keys, pNumOfKeys) + } + } +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU, { 1 }) +common.Step("Register App", common.registerAppWOPTU, { 2 }) + +common.Title("Test") +common.Step("HMI sends OnSystemCapabilityUpdated for App 1", common.sendOnSystemCapabilityUpdated, + { dispCaps1, nil, nil, 1 }) +common.Step("HMI sends OnSystemCapabilityUpdated for App 2", common.sendOnSystemCapabilityUpdated, + { dispCaps2, nil, nil, 2 }) + +common.Title("App 1") +common.Step("App 1 sends SetGlobalProperties valid", common.sendSetGlobalProperties, + { getSGPParams("AZERTY", 1), common.result.success, nil, 1 }) +common.Step("App 1 sends SetGlobalProperties valid", common.sendSetGlobalProperties, + { getSGPParams("AZERTY", 2), common.result.success, nil, 1 }) +common.Step("App 1 sends SetGlobalProperties invalid", common.sendSetGlobalProperties, + { getSGPParams("AZERTY", 3), common.result.invalid_data, nil, 1 }) +common.Step("App 1 sends SetGlobalProperties invalid", common.sendSetGlobalProperties, + { getSGPParams("NUMERIC", 1), common.result.invalid_data, nil, 1 }) + +common.Title("App 2") +common.Step("App 2 sends SetGlobalProperties valid", common.sendSetGlobalProperties, + { getSGPParams("NUMERIC", 1), common.result.success, nil, 2 }) +common.Step("App 2 sends SetGlobalProperties invalid", common.sendSetGlobalProperties, + { getSGPParams("NUMERIC", 2), common.result.invalid_data, nil, 2 }) +common.Step("App 2 sends SetGlobalProperties invalid", common.sendSetGlobalProperties, + { getSGPParams("AZERTY", 1), common.result.invalid_data, nil, 2 }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/010_App_sets_masking_if_its_not_supported.lua b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/010_App_sets_masking_if_its_not_supported.lua new file mode 100644 index 0000000000..9b60c52a46 --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/010_App_sets_masking_if_its_not_supported.lua @@ -0,0 +1,51 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check App is unable to mask input characters via 'maskInputCharacters' parameter +-- within 'SetGlobalProperties' request if masking is not supported by HMI +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- where 'maskInputCharactersSupported' = false +-- 3. App sends 'SetGlobalProperties' with 'maskInputCharacters' in 'KeyboardProperties' +-- SDL does: +-- - Transfer request to HMI +-- 4. HMI responds with successful 'WARNINGS' message +-- SDL does: +-- - Respond with 'WARNINGS', success:true to App +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Functions ]] +local function sendSetGlobalProperties() + local sgpParams = { + keyboardProperties = { + keyboardLayout = "NUMERIC", + maskInputCharacters = "ENABLE_INPUT_KEY_MASK" + } + } + local dataToHMI = common.cloneTable(sgpParams) + dataToHMI.appID = common.getHMIAppId() + local cid = common.getMobileSession():SendRPC("SetGlobalProperties", sgpParams) + common.getHMIConnection():ExpectRequest("UI.SetGlobalProperties", dataToHMI) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "WARNINGS", {}) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "WARNINGS" }) +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated) +common.Step("App sends SetGlobalProperties warnings", sendSetGlobalProperties) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/011_App_sets_layout_if_its_not_supported.lua b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/011_App_sets_layout_if_its_not_supported.lua new file mode 100644 index 0000000000..34cdf10bc7 --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/011_App_sets_layout_if_its_not_supported.lua @@ -0,0 +1,58 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check App is unable to set 'keyboardProperties' for unsupported 'keyboardLayout'. +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- with supported keyboards in 'supportedKeyboards' +-- 3. App sends 'SetGlobalProperties' with 'keyboardLayout' in 'KeyboardProperties' which is not +-- in 'supportedKeyboards' list +-- SDL does: +-- - Transfer request to HMI +-- 4. HMI responds with erroneous 'UNSUPPORTED_RESOURCE' message +-- SDL does: +-- - Respond with 'UNSUPPORTED_RESOURCE', success:false to App with appropriate message in 'info' +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local msg = "keyboard layout is not supported" +local dispCaps = common.getDispCaps() +dispCaps.systemCapability.displayCapabilities[1].windowCapabilities[1].keyboardCapabilities = { + supportedKeyboards = { { keyboardLayout = "NUMERIC", numConfigurableKeys = 1 } } +} + +--[[ Local Functions ]] +local function sendSetGlobalProperties() + local sgpParams = { + keyboardProperties = { + keyboardLayout = "QWERTY", + keypressMode = "SINGLE_KEYPRESS" + } + } + local dataToHMI = common.cloneTable(sgpParams) + dataToHMI.appID = common.getHMIAppId() + local cid = common.getMobileSession():SendRPC("SetGlobalProperties", sgpParams) + common.getHMIConnection():ExpectRequest("UI.SetGlobalProperties", dataToHMI) + :Do(function(_, data) + common.getHMIConnection():SendError(data.id, data.method, "UNSUPPORTED_RESOURCE", msg) + end) + common.getMobileSession():ExpectResponse(cid, { success = false, resultCode = "UNSUPPORTED_RESOURCE", info = msg }) +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated, { dispCaps }) +common.Step("App sends SetGlobalProperties warnings", sendSetGlobalProperties) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/012_App_defines_excessive_value_in_customKeys_a_few_requests.lua b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/012_App_defines_excessive_value_in_customKeys_a_few_requests.lua new file mode 100644 index 0000000000..b62c3c2918 --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/SetGlobalProperties/012_App_defines_excessive_value_in_customKeys_a_few_requests.lua @@ -0,0 +1,61 @@ +---------------------------------------------------------------------------------------------------- +-- Proposal: +-- https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0238-Keyboard-Enhancements.md +---------------------------------------------------------------------------------------------------- +-- Description: Check App receives 'INVALID_DATA' if number of keys in 'customKeys' array is more +-- than customizable keys allowed. +-- Scenario with a few consecutive 'SetGlobalProperties' requests +-- +-- Steps: +-- 1. App is registered +-- 2. HMI provides 'KeyboardCapabilities' within 'OnSystemCapabilityUpdated' notification +-- where 'numConfigurableKeys=1' for 'NUMERIC' +-- 3. App sends 'SetGlobalProperties' with 'keyboardLayout=NUMERIC' in 'KeyboardProperties' +-- SDL does: +-- - Proceed with request successfully +-- 4. App sends 'SetGlobalProperties' with 'customKeys=<1 element>' in 'KeyboardProperties' +-- SDL does: +-- - Proceed with request successfully +-- 5. App sends 'SetGlobalProperties' with 'customKeys=<2 elements>' in 'KeyboardProperties' +-- SDL does: +-- - Not transfer request to HMI +-- - Respond with INVALID_DATA, success:false to App with appropriate message in 'info' +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/KeyboardEnhancements/common') + +--[[ Local Variables ]] +local params1 = { + keyboardProperties = { + keyboardLayout = "NUMERIC", + } +} + +local params2 = { + keyboardProperties = { + customKeys = { "$" } + } +} + +local params3 = { + keyboardProperties = { + customKeys = { "$", "#" } + } +} + + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerApp) + +common.Title("Test") +common.Step("HMI sends OnSystemCapabilityUpdated", common.sendOnSystemCapabilityUpdated) +common.Step("App sends SetGlobalProperties success", common.sendSetGlobalProperties, { params1, common.result.success }) +common.Step("App sends SetGlobalProperties success", common.sendSetGlobalProperties, { params2, common.result.success }) +common.Step("App sends SetGlobalProperties invalid_data", common.sendSetGlobalProperties, + { params3, common.result.invalid_data }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/KeyboardEnhancements/common.lua b/test_scripts/API/KeyboardEnhancements/common.lua new file mode 100644 index 0000000000..2b94e0bf66 --- /dev/null +++ b/test_scripts/API/KeyboardEnhancements/common.lua @@ -0,0 +1,237 @@ +--------------------------------------------------------------------------------------------------- +-- Common module +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local actions = require("user_modules/sequences/actions") +local runner = require('user_modules/script_runner') +local utils = require("user_modules/utils") + +--[[ General configuration parameters ]] +runner.testSettings.isSelfIncluded = false +config.defaultProtocolVersion = 2 + +--[[ Local Variables ]] +local m = {} + +--[[ Common Proxy Functions ]] +m.Title = runner.Title +m.Step = runner.Step +m.preconditions = actions.preconditions +m.postconditions = actions.postconditions +m.start = actions.start +m.registerApp = actions.app.register +m.registerAppWOPTU = actions.app.registerNoPTU +m.activateApp = actions.app.activate +m.getMobileSession = actions.getMobileSession +m.getHMIConnection = actions.hmi.getConnection +m.policyTableUpdate = actions.policyTableUpdate +m.getHMIAppId = actions.getHMIAppId +m.cloneTable = utils.cloneTable +m.connectMobile = actions.mobile.connect +m.wait = utils.wait +m.json = actions.json +m.getPolicyAppId = actions.app.getPolicyAppId +m.getParams = actions.app.getParams +m.spairs = utils.spairs +m.isTableEqual = utils.isTableEqual +m.tableToString = utils.tableToString + +--[[ Common Variables ]] +m.expected = { + yes = 1, + no = 0 +} + +m.result = { + success = { success = true, resultCode = "SUCCESS" }, + data_not_available = { success = false, resultCode = "DATA_NOT_AVAILABLE" }, + invalid_data = { success = false, resultCode = "INVALID_DATA" } +} + +m.hashId = "" + +--[[ Common Functions ]] + +--[[ @getDispCaps: Provide system capabilities with default keyboard capabilities +--! @parameters: none +--! @return: table with capabilities +--]] +function m.getDispCaps() + return { + systemCapability = { + systemCapabilityType = "DISPLAYS", + displayCapabilities = { + { + displayName = "MainDisplayName", + windowCapabilities = { + { + windowID = 0, + keyboardCapabilities = { + maskInputCharactersSupported = true, + supportedKeyboards = { + { keyboardLayout = "QWERTY", numConfigurableKeys = 4 }, + { keyboardLayout = "QWERTZ", numConfigurableKeys = 3 }, + { keyboardLayout = "AZERTY", numConfigurableKeys = 2 }, + { keyboardLayout = "NUMERIC", numConfigurableKeys = 1 }, + } + } + } + } + } + } + } + } +end + +--[[ @getArrayValue: Generate array value +--! @parameters: +--! pPossibleValuesTbl - array of possible values +--! pNumOfElements - number of elements in array +--! @return: table with array value +--]] +function m.getArrayValue(pPossibleValuesTbl, pNumOfElements) + local out = {} + for i = 0, pNumOfElements-1 do + table.insert(out, pPossibleValuesTbl[i%#pPossibleValuesTbl+1]) + end + return out +end + +--[[ @sendOnSystemCapabilityUpdated: Processing of 'OnSystemCapabilityUpdated' notification: HMI->SDL->App +--! @parameters: +--! pData - source/expected data for notification +--! pTimes - expected number of notifications (0, 1 or more) +--! pValidFunc - validation function +--! pAppId - application number (1, 2, etc.) +--! @return: none +--]] +function m.sendOnSystemCapabilityUpdated(pData, pTimes, pValidFunc, pAppId) + if not pData then pData = m.getDispCaps() end + if not pTimes then pTimes = 1 end + if not pValidFunc then pValidFunc = function() return true end end + local expDataToMobile = pData + local dataFromHMI = utils.cloneTable(expDataToMobile) + dataFromHMI.appID = m.getHMIAppId(pAppId) + m.getHMIConnection():SendNotification("BasicCommunication.OnSystemCapabilityUpdated", dataFromHMI) + m.getMobileSession(pAppId):ExpectNotification("OnSystemCapabilityUpdated", expDataToMobile) + :Times(pTimes) + :ValidIf(pValidFunc) +end + +--[[ @sendOnKeyboardInput: Processing of 'OnKeyboardInput' notification: HMI->SDL->App +--! @parameters: +--! pData - source/expected data for notification +--! pTimes - expected number of notifications (0, 1 or more) +--! pValidFunc - validation function +--! pAppId - application number (1, 2, etc.) +--! @return: none +--]] +function m.sendOnKeyboardInput(pData, pTimes, pValidFunc, pAppId) + if not pTimes then pTimes = 1 end + if not pValidFunc then pValidFunc = function() return true end end + m.getHMIConnection():SendNotification("UI.OnKeyboardInput", pData) + m.getMobileSession(pAppId):ExpectNotification("OnKeyboardInput", pData) + :Times(pTimes) + :ValidIf(pValidFunc) +end + +--[[ @sendGetSystemCapability: Processing of 'GetSystemCapability' request: App->SDL->App +--! @parameters: +--! pData - expected data in response +--! pExpRes - expected result in response +--! pValidFunc - validation function +--! pAppId - application number (1, 2, etc.) +--! @return: none +--]] +function m.sendGetSystemCapability(pData, pExpRes, pValidFunc, pAppId) + if not pData then pData = m.getDispCaps() end + if not pExpRes then pExpRes = utils.cloneTable(m.result.success) end + if pData.systemCapability then pExpRes.systemCapability = pData.systemCapability end + if not pValidFunc then pValidFunc = function() return true end end + local cid = m.getMobileSession(pAppId):SendRPC("GetSystemCapability", { systemCapabilityType = "DISPLAYS" }) + m.getMobileSession(pAppId):ExpectResponse(cid, pExpRes) + :ValidIf(pValidFunc) +end + +--[[ @sendSetGlobalProperties: Processing of 'SetGlobalProperties' request: App->SDL->HMI->SDL->App +--! @parameters: +--! pData - expected data in response +--! pExpRes - expected result in response +--! pValidFunc - validation function +--! pAppId - application number (1, 2, etc.) +--! @return: none +--]] +function m.sendSetGlobalProperties(pData, pExpRes, pValidFunc, pAppId) + if not pExpRes then pExpRes = m.result.success end + if not pValidFunc then pValidFunc = function() return true end end + local dataToHMI = utils.cloneTable(pData) + dataToHMI.appID = m.getHMIAppId(pAppId) + local times = 1 + if pExpRes.success == false then times = 0 end + local cid = m.getMobileSession(pAppId):SendRPC("SetGlobalProperties", pData) + m.getHMIConnection():ExpectRequest("UI.SetGlobalProperties", dataToHMI) + :Do(function(_, data) + m.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + :Times(times) + m.getMobileSession(pAppId):ExpectResponse(cid, pExpRes) + :ValidIf(pValidFunc) +end + +--[[ @unexpectedDisconnect: Unexpected disconnect sequence +--! @parameters: none +--! @return: none +--]] +function m.unexpectedDisconnect() + m.getHMIConnection():ExpectNotification("BasicCommunication.OnAppUnregistered", { unexpectedDisconnect = true }) + :Times(actions.mobile.getAppsCount()) + actions.mobile.disconnect() + utils.wait(1000) +end + +--[[ @reRegisterApp: App registration with resumption of UI.SetGlobalProperties +--! @parameters: +--! pResumptionParams - parameters for UI.SetGlobalProperties +--! @return: none +--]] +function m.reRegisterApp(pResumptionParams) + m.getMobileSession():StartService(7) + :Do(function() + local appParams = m.cloneTable(m.getParams()) + appParams.hashID = m.hashId + local cid = m.getMobileSession():SendRPC("RegisterAppInterface", appParams) + m.getHMIConnection():ExpectNotification("BasicCommunication.OnAppRegistered") + :Do(function() + local dataToHMI = m.cloneTable(pResumptionParams) + m.getHMIConnection():ExpectRequest("UI.SetGlobalProperties", dataToHMI) + :Do(function(_, data) + m.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + :ValidIf(function(_, data) + if not m.isTableEqual(data.params.keyboardProperties, dataToHMI.keyboardProperties) then + return false, "Unexpected number of parameters or parameter values are received" + .. " in UI.SetGlobalProperties request" + .. "\n Expected data: " .. m.tableToString(dataToHMI.keyboardProperties) + .. "\n Actual data: " .. m.tableToString(data.params.keyboardProperties) + end + return true + end) + end) + m.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) + end) +end + +--[[ @sendSetGlobalPropertiesWithHashId: Processing of 'SetGlobalProperties' request and OnHashChange notification +--! @parameters: some number of params for m.sendSetGlobalProperties function +--! @return: none +--]] +function m.sendSetGlobalPropertiesWithHashId(...) + m.getMobileSession():ExpectNotification("OnHashChange") + :Do(function(_, data) + m.hashId = data.payload.hashID + end) + m.sendSetGlobalProperties(...) +end + + +return m diff --git a/test_scripts/API/SameMenuName/001_MenuName.lua b/test_scripts/API/SameMenuName/001_MenuName.lua new file mode 100644 index 0000000000..92c54ce9fa --- /dev/null +++ b/test_scripts/API/SameMenuName/001_MenuName.lua @@ -0,0 +1,90 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: SDL 0180 Broaden Choice Uniqueness +-- +-- Description: +-- Mobile shall be able to send two AddCommand RPCs with identical menuName values. +--------------------------------------------------------------------------------------------------- + +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('test_scripts/Smoke/commonSmoke') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local menuParams = { + position = 0, + menuName = "menuName" +} + +local requestParams1 = { + cmdID = 499, + menuParams = menuParams +} + +local requestParams2 = { + cmdID = 500, + menuParams = menuParams +} + +local requestParams3 = { + menuID = 699, + menuName = "menuName" +} + +local requestParams4 = { + menuID = 700, + menuName = "menuName" +} + +--[[ Local Functions ]] +local function addCommand(pParams) + local cid = common.getMobileSession():SendRPC("AddCommand", pParams) + + local hmiRequestParams = { + cmdID = pParams.cmdID, + menuParams = pParams.menuParams, + appID = common.getHMIAppId() + } + common.getHMIConnection():ExpectRequest("UI.AddCommand", hmiRequestParams) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) + common.getMobileSession():ExpectNotification("OnHashChange") +end + +local function addSubMenu(pParams) + local cid = common.getMobileSession():SendRPC("AddSubMenu", pParams) + + local hmiRequestParams = { + menuID = pParams.menuID, + appID = common.getHMIAppId() + } + common.getHMIConnection():ExpectRequest("UI.AddSubMenu", hmiRequestParams) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) + common.getMobileSession():ExpectNotification("OnHashChange") +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Update Preloaded PT", common.updatePreloadedPT) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("AddCommand Positive Case", addCommand, { requestParams1 }) +runner.Step("AddCommand With Same Menu Name", addCommand, { requestParams2 }) +runner.Step("AddSubMenu With Same Menu Name", addSubMenu, { requestParams3 }) +runner.Step("AddSubMenu Again With Same Menu Name", addSubMenu, { requestParams4 }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/SameMenuName/002_CreateInteractionChoiceSet.lua b/test_scripts/API/SameMenuName/002_CreateInteractionChoiceSet.lua new file mode 100644 index 0000000000..a182e3f183 --- /dev/null +++ b/test_scripts/API/SameMenuName/002_CreateInteractionChoiceSet.lua @@ -0,0 +1,106 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: SDL 0180 Broaden Choice Uniqueness +-- +-- Description: +-- Mobile shall be able to send a CreateInteractionChoiceSet RPC where two choices within the +-- choice set have identical menuName values. +--------------------------------------------------------------------------------------------------- + +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('test_scripts/Smoke/commonSmoke') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local cics1Params = { + interactionChoiceSetID = 499, + choiceSet = { + { + choiceID = 42, + menuName = "menuName" + }, + { + choiceID = 43, + menuName = "menuName" + } + } +} + +local cics2Params = { + interactionChoiceSetID = 500, + choiceSet = { + { + choiceID = 44, + menuName = "menuName" + }, + { + choiceID = 45, + menuName = "unique" + } + } +} + +local cics3Params = { + interactionChoiceSetID = 501, + choiceSet = { + { + choiceID = 46, + menuName = "menuName" + }, + { + choiceID = 47, + menuName = "unique" + } + } +} + +local performInteractionParams = { + initialText = "StartPerformInteraction", + interactionMode = "MANUAL_ONLY", + interactionChoiceSetIDList = { 500, 501 } +} + +local performInteraction2Params = { + initialText = "StartPerformInteraction", + interactionMode = "MANUAL_ONLY", + interactionChoiceSetIDList = { 499, 500, 501 } +} + +--[[ Local Functions ]] +local function createInteractionChoiceSet(pParams) + local cid = common.getMobileSession():SendRPC("CreateInteractionChoiceSet", pParams) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) +end + +local function performInteraction(pParams) + local cid = common.getMobileSession():SendRPC("PerformInteraction", pParams) + common.getHMIConnection():ExpectRequest("UI.PerformInteraction") + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + common.getHMIConnection():ExpectRequest("VR.PerformInteraction") + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Update Preloaded PT", common.updatePreloadedPT) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("CreateInteractionChoiceSet1 with dupe menuNames", createInteractionChoiceSet, { cics1Params }) +runner.Step("CreateInteractionChoiceSet2 with (menuName, unique)", createInteractionChoiceSet, { cics2Params }) +runner.Step("CreateInteractionChoiceSet3 again with (menuName, unique)", createInteractionChoiceSet, { cics3Params }) +runner.Step("PerformInteraction with choice set 2 and 3", performInteraction, { performInteractionParams }) +runner.Step("PerformInteraction with all choice sets", performInteraction, { performInteraction2Params }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/SetMediaClockTimer/001_PositiveCase_default_countRate_SUCCESS.lua b/test_scripts/API/SetMediaClockTimer/001_PositiveCase_default_countRate_SUCCESS.lua new file mode 100644 index 0000000000..e43f454c55 --- /dev/null +++ b/test_scripts/API/SetMediaClockTimer/001_PositiveCase_default_countRate_SUCCESS.lua @@ -0,0 +1,78 @@ +--------------------------------------------------------------------------------------------------- +-- User story: API +-- Use case: SetMediaClockTimer +-- Item: Happy path, default countRate +-- +-- Requirement summary: +-- [SetMediaClockTimer] SUCCESS: getting SUCCESS:UI.SetMediaClockTimer() +-- +-- Description: +-- Mobile application sends valid SetMediaClockTimer request and gets UI.SetMediaClockTimer "SUCCESS" response from HMI + +-- Pre-conditions: +-- a. HMI and SDL are started +-- b. appID is registered and activated on SDL +-- c. appID is currently in Background, Full or Limited HMI level + +-- Steps: +-- appID requests SetMediaClockTimer with valid parameters and without countRate + +-- Expected: +-- SDL validates parameters of the request +-- SDL checks if UI interface is available on HMI +-- SDL checks if SetMediaClockTimer is allowed by Policies +-- SDL checks if all parameters are allowed by Policies +-- SDL transfers the UI part of request with allowed parameters along with a default countRate of 1.0 to HMI +-- SDL receives UI part of response from HMI with "SUCCESS" result code +-- SDL responds with (resultCode: SUCCESS, success:true) to mobile application +--------------------------------------------------------------------------------------------------- + +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") +local utils = require("user_modules/utils") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local requestParams = { + startTime = { + hours = 0, + minutes = 1, + seconds = 33 + }, + endTime = { + hours = 0, + minutes = 1, + seconds = 35 + }, + updateMode = "COUNTUP", + audioStreamingIndicator = "PAUSE" +} + +--[[ Local Functions ]] +local function sendRPC(pParams) + local params = utils.cloneTable(pParams) + local cid = common.getMobileSession():SendRPC("SetMediaClockTimer", params) + params.appID = common.getHMIAppId() + params.countRate = 1.0 + common.getHMIConnection():ExpectRequest("UI.SetMediaClockTimer", params) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("SetMediaClockTimer Positive Case", sendRPC, { requestParams }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/SetMediaClockTimer/002_PositiveCase_custom_countRate_SUCCESS.lua b/test_scripts/API/SetMediaClockTimer/002_PositiveCase_custom_countRate_SUCCESS.lua new file mode 100644 index 0000000000..e7f35955c3 --- /dev/null +++ b/test_scripts/API/SetMediaClockTimer/002_PositiveCase_custom_countRate_SUCCESS.lua @@ -0,0 +1,73 @@ +--------------------------------------------------------------------------------------------------- +-- User story: API +-- Use case: SetMediaClockTimer +-- Item: Happy path, custom countRate +-- +-- Requirement summary: +-- [SetMediaClockTimer] SUCCESS: getting SUCCESS:UI.SetMediaClockTimer() +-- +-- Description: +-- Mobile application sends valid SetMediaClockTimer request and gets UI.SetMediaClockTimer "SUCCESS" response from HMI + +-- Pre-conditions: +-- a. HMI and SDL are started +-- b. appID is registered and activated on SDL +-- c. appID is currently in Background, Full or Limited HMI level + +-- Steps: +-- appID requests SetMediaClockTimer with valid parameters including a custom countRate + +-- Expected: +-- SDL validates parameters of the request +-- SDL checks if UI interface is available on HMI +-- SDL checks if SetMediaClockTimer is allowed by Policies +-- SDL checks if all parameters are allowed by Policies +-- SDL transfers the UI part of request with allowed parameters to HMI +-- SDL receives UI part of response from HMI with "SUCCESS" result code +-- SDL responds with (resultCode: SUCCESS, success:true) to mobile application +--------------------------------------------------------------------------------------------------- + +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") +local utils = require("user_modules/utils") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local requestParams = { + startTime = { + hours = 0, + minutes = 1, + seconds = 33 + }, + updateMode = "COUNTUP", + audioStreamingIndicator = "PLAY_PAUSE", + countRate = 2.0 +} + +--[[ Local Functions ]] +local function sendRPC(pParams) + local params = utils.cloneTable(pParams) + local cid = common.getMobileSession():SendRPC("SetMediaClockTimer", params) + params.appID = common.getHMIAppId() + common.getHMIConnection():ExpectRequest("UI.SetMediaClockTimer", params) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("SetMediaClockTimer Positive Case with custom countRate", sendRPC, { requestParams }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/SetMediaClockTimer/003_Non_media_app_REJECTED.lua b/test_scripts/API/SetMediaClockTimer/003_Non_media_app_REJECTED.lua new file mode 100644 index 0000000000..d0169dc92a --- /dev/null +++ b/test_scripts/API/SetMediaClockTimer/003_Non_media_app_REJECTED.lua @@ -0,0 +1,74 @@ +--------------------------------------------------------------------------------------------------- +-- User story: API +-- Use case: SetMediaClockTimer +-- Item: REJECTED case, non-media app +-- +-- Requirement summary: +-- [SetMediaClockTimer] REJECTED: getting SetMediaClockTimer request from non-media app +-- +-- Description: +-- Non-media mobile application sends valid SetMediaClockTimer request + +-- Pre-conditions: +-- a. HMI and SDL are started +-- b. Non-media app1 is registered and activated on SDL +-- c. app1 is currently in Background, Full or Limited HMI level + +-- Steps: +-- app1 requests SetMediaClockTimer with valid parameters + +-- Expected: +-- SDL validates parameters of the request +-- SDL checks if UI interface is available on HMI +-- SDL checks if SetMediaClockTimer is allowed by Policies +-- SDL checks if all parameters are allowed by Policies +-- SDL does not transfer the UI part of request with allowed parameters to HMI +-- SDL responds with (resultCode: REJECTED, success:false) to mobile application +--------------------------------------------------------------------------------------------------- + +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false +config.application1.registerAppInterfaceParams.isMediaApplication = false +config.application1.registerAppInterfaceParams.appHMIType = { "DEFAULT" } + +--[[ Local Variables ]] +local requestParams = { + startTime = { + hours = 0, + minutes = 1, + seconds = 33 + }, + endTime = { + hours = 0, + minutes = 1, + seconds = 35 + }, + updateMode = "COUNTUP", + audioStreamingIndicator = "PAUSE", + countRate = 1.1 +} + +--[[ Local Functions ]] +local function sendRPC(pParams) + local cid = common.getMobileSession():SendRPC("SetMediaClockTimer", pParams) + common.getHMIConnection():ExpectRequest("UI.SetMediaClockTimer") + :Times(0) + common.getMobileSession():ExpectResponse(cid, { success = false, resultCode = "REJECTED" }) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("SetMediaClockTimer REJECTED", sendRPC, { requestParams }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/SetMediaClockTimer/004_COUNTUP_no_startTime_INVALID_DATA.lua b/test_scripts/API/SetMediaClockTimer/004_COUNTUP_no_startTime_INVALID_DATA.lua new file mode 100644 index 0000000000..8e24ef4cec --- /dev/null +++ b/test_scripts/API/SetMediaClockTimer/004_COUNTUP_no_startTime_INVALID_DATA.lua @@ -0,0 +1,67 @@ +--------------------------------------------------------------------------------------------------- +-- User story: API +-- Use case: SetMediaClockTimer +-- Item: INVALID_DATA case, missing startTime in COUNTUP mode +-- +-- Requirement summary: +-- [SetMediaClockTimer] INVALID_DATA: getting SetMediaClockTimer(COUNTUP) without required startTime parameter +-- +-- Description: +-- Mobile application sends SetMediaClockTimer(COUNTUP) request without startTime parameter + +-- Pre-conditions: +-- a. HMI and SDL are started +-- b. app1 is registered and activated on SDL +-- c. app1 is currently in Background, Full or Limited HMI level + +-- Steps: +-- app1 requests SetMediaClockTimer with COUNTUP mode and without startTime parameter + +-- Expected: +-- SDL validates parameters of the request +-- SDL checks if SetMediaClockTimer is allowed by Policies +-- SDL checks if all parameters are allowed by Policies +-- SDL checks special validation rules for SetMediaClockTimer +-- SDL does not transfer the UI part of request with allowed parameters to HMI +-- SDL responds with (resultCode: INVALID_DATA, success:false) to mobile application +--------------------------------------------------------------------------------------------------- + +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local requestParams = { + endTime = { + hours = 0, + minutes = 1, + seconds = 35 + }, + updateMode = "COUNTUP", + audioStreamingIndicator = "PAUSE", + countRate = 0.5 +} + +--[[ Local Functions ]] +local function sendRPC(pParams) + local cid = common.getMobileSession():SendRPC("SetMediaClockTimer", pParams) + common.getHMIConnection():ExpectRequest("UI.SetMediaClockTimer") + :Times(0) + common.getMobileSession():ExpectResponse(cid, { success = false, resultCode = "INVALID_DATA" }) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("SetMediaClockTimer INVALID_DATA", sendRPC, { requestParams }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/SetMediaClockTimer/005_COUNTUP_endTime_before_startTime_INVALID_DATA.lua b/test_scripts/API/SetMediaClockTimer/005_COUNTUP_endTime_before_startTime_INVALID_DATA.lua new file mode 100644 index 0000000000..595d65dc57 --- /dev/null +++ b/test_scripts/API/SetMediaClockTimer/005_COUNTUP_endTime_before_startTime_INVALID_DATA.lua @@ -0,0 +1,71 @@ +--------------------------------------------------------------------------------------------------- +-- User story: API +-- Use case: SetMediaClockTimer +-- Item: INVALID_DATA case, endTime before startTime in COUNTUP mode +-- +-- Requirement summary: +-- [SetMediaClockTimer] INVALID_DATA: getting SetMediaClockTimer(COUNTUP) with endTime earlier than startTime +-- +-- Description: +-- Mobile application sends SetMediaClockTimer(COUNTUP) request with invalid timer bounds + +-- Pre-conditions: +-- a. HMI and SDL are started +-- b. app1 is registered and activated on SDL +-- c. app1 is currently in Background, Full or Limited HMI level + +-- Steps: +-- app1 requests SetMediaClockTimer with COUNTUP mode and with endTime earlier than startTime + +-- Expected: +-- SDL validates parameters of the request +-- SDL checks if SetMediaClockTimer is allowed by Policies +-- SDL checks if all parameters are allowed by Policies +-- SDL checks special validation rules for SetMediaClockTimer +-- SDL does not transfer the UI part of request with allowed parameters to HMI +-- SDL responds with (resultCode: INVALID_DATA, success:false) to mobile application +--------------------------------------------------------------------------------------------------- + +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local requestParams = { + startTime = { + hours = 0, + minutes = 1, + seconds = 35 + }, + endTime = { + hours = 0, + minutes = 1, + seconds = 33 + }, + updateMode = "COUNTUP", + audioStreamingIndicator = "PAUSE" +} + +--[[ Local Functions ]] +local function sendRPC(pParams) + local cid = common.getMobileSession():SendRPC("SetMediaClockTimer", pParams) + common.getHMIConnection():ExpectRequest("UI.SetMediaClockTimer") + :Times(0) + common.getMobileSession():ExpectResponse(cid, { success = false, resultCode = "INVALID_DATA" }) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("SetMediaClockTimer INVALID_DATA", sendRPC, { requestParams }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/SetMediaClockTimer/006_COUNTDOWN_startTime_before_endTime_INVALID_DATA.lua b/test_scripts/API/SetMediaClockTimer/006_COUNTDOWN_startTime_before_endTime_INVALID_DATA.lua new file mode 100644 index 0000000000..cef96f5b05 --- /dev/null +++ b/test_scripts/API/SetMediaClockTimer/006_COUNTDOWN_startTime_before_endTime_INVALID_DATA.lua @@ -0,0 +1,72 @@ +--------------------------------------------------------------------------------------------------- +-- User story: API +-- Use case: SetMediaClockTimer +-- Item: INVALID_DATA case, startTime before endTime in COUNTDOWN mode +-- +-- Requirement summary: +-- [SetMediaClockTimer] INVALID_DATA: getting SetMediaClockTimer(COUNTDOWN) with startTime earlier than endTime +-- +-- Description: +-- Mobile application sends SetMediaClockTimer(COUNTDOWN) request with invalid timer bounds + +-- Pre-conditions: +-- a. HMI and SDL are started +-- b. app1 is registered and activated on SDL +-- c. app1 is currently in Background, Full or Limited HMI level + +-- Steps: +-- app1 requests SetMediaClockTimer with COUNTDOWN mode and with startTime earlier than endTime + +-- Expected: +-- SDL validates parameters of the request +-- SDL checks if SetMediaClockTimer is allowed by Policies +-- SDL checks if all parameters are allowed by Policies +-- SDL checks special validation rules for SetMediaClockTimer +-- SDL does not transfer the UI part of request with allowed parameters to HMI +-- SDL responds with (resultCode: INVALID_DATA, success:false) to mobile application +--------------------------------------------------------------------------------------------------- + +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local requestParams = { + startTime = { + hours = 0, + minutes = 1, + seconds = 33 + }, + endTime = { + hours = 0, + minutes = 1, + seconds = 35 + }, + updateMode = "COUNTDOWN", + audioStreamingIndicator = "STOP", + countRate = 4.0 +} + +--[[ Local Functions ]] +local function sendRPC(pParams) + local cid = common.getMobileSession():SendRPC("SetMediaClockTimer", pParams) + common.getHMIConnection():ExpectRequest("UI.SetMediaClockTimer") + :Times(0) + common.getMobileSession():ExpectResponse(cid, { success = false, resultCode = "INVALID_DATA" }) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("SetMediaClockTimer INVALID_DATA", sendRPC, { requestParams }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/SetMediaClockTimer/007_PositiveCase_media_skip_indicators.lua b/test_scripts/API/SetMediaClockTimer/007_PositiveCase_media_skip_indicators.lua new file mode 100644 index 0000000000..73b4d655da --- /dev/null +++ b/test_scripts/API/SetMediaClockTimer/007_PositiveCase_media_skip_indicators.lua @@ -0,0 +1,96 @@ +--------------------------------------------------------------------------------------------------- +-- User story: API +-- Use case: SetMediaClockTimer +-- Item: Happy path case, forward and back seek indicators +-- +-- Requirement summary: +-- [SetMediaClockTimer] SUCCESS: getting SUCCESS:UI.SetMediaClockTimer() +-- +-- Description: +-- Mobile application sends SetMediaClockTimer(COUNTDOWN) request with forwardSeekIndicator and backSeekIndicator + +-- Pre-conditions: +-- a. HMI and SDL are started +-- b. app1 is registered and activated on SDL +-- c. app1 is currently in Background, Full or Limited HMI level + +-- Steps: +-- app1 requests SetMediaClockTimer with COUNTDOWN mode and with valid forwardSeekIndicator and backSeekIndicator values + +-- Expected: +-- SDL validates parameters of the request +-- SDL checks if SetMediaClockTimer is allowed by Policies +-- SDL checks if all parameters are allowed by Policies +-- SDL checks special validation rules for SetMediaClockTimer +-- SDL receives UI part of response from HMI with "SUCCESS" result code +-- SDL responds with (resultCode: SUCCESS, success:true) to mobile application +--------------------------------------------------------------------------------------------------- + +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") +local utils = require("user_modules/utils") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local indicatorValues = { + { type = "TRACK" }, + { type = "TIME" }, + { type = "TIME", seekTime = 30 } +} + +local requestParams = { + startTime = { + hours = 0, + minutes = 1, + seconds = 33 + }, + updateMode = "COUNTDOWN", + audioStreamingIndicator = "STOP" +} + +--[[ Local Functions ]] +local function getTestName(forwardIndicator, backIndicator) + local test_name = "forward_" .. forwardIndicator.type + if (forwardIndicator.seekTime ~= nil) then + test_name = test_name .. "_" .. forwardIndicator.seekTime + end + test_name = test_name .. "_back_" .. backIndicator.type + if (backIndicator.seekTime ~= nil) then + test_name = test_name .. "_" .. backIndicator.seekTime + end + return test_name +end + +local function sendRPC(pParams, forwardIndicator, backIndicator) + local params = utils.cloneTable(pParams) + params.forwardSeekIndicator = forwardIndicator + params.backSeekIndicator = backIndicator + + local cid = common.getMobileSession():SendRPC("SetMediaClockTimer", params) + params.appID = common.getHMIAppId() + common.getHMIConnection():ExpectRequest("UI.SetMediaClockTimer", params) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +for _, v1 in pairs(indicatorValues) do + for _, v2 in pairs(indicatorValues) do + runner.Step("SetMediaClockTimer " .. getTestName(v1, v2), sendRPC, { requestParams, v1, v2 }) + end +end + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/SetMediaClockTimer/008_TRACK_Indicator_type_with_seektime_INVALID_DATA.lua b/test_scripts/API/SetMediaClockTimer/008_TRACK_Indicator_type_with_seektime_INVALID_DATA.lua new file mode 100644 index 0000000000..843f65acbd --- /dev/null +++ b/test_scripts/API/SetMediaClockTimer/008_TRACK_Indicator_type_with_seektime_INVALID_DATA.lua @@ -0,0 +1,79 @@ +--------------------------------------------------------------------------------------------------- +-- User story: API +-- Use case: SetMediaClockTimer +-- Item: INVALID_DATA case, seek Indicator with type TRACK and seekTime +-- +-- Requirement summary: +-- [SetMediaClockTimer] INVALID_DATA: getting SetMediaClockTimer(COUNTDOWN) +-- +-- Description: +-- Mobile application sends SetMediaClockTimer(COUNTDOWN) with forward or back seek indicator with type TRACK and seekTime defined + +-- Pre-conditions: +-- a. HMI and SDL are started +-- b. app1 is registered and activated on SDL +-- c. app1 is currently in Background, Full or Limited HMI level + +-- Steps: +-- app1 requests SetMediaClockTimer with COUNTDOWN mode with fowardSeekIndicator and backSeekIndicator params + +-- Expected: +-- SDL validates parameters of the request +-- SDL checks if SetMediaClockTimer is allowed by Policies +-- SDL checks if all parameters are allowed by Policies +-- SDL checks special validation rules for SetMediaClockTimer +-- SDL does not transfer the UI part of request with allowed parameters to HMI +-- SDL responds with (resultCode: INVALID_DATA, success:false) to mobile application +--------------------------------------------------------------------------------------------------- + +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") +local utils = require("user_modules/utils") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local requestParams = { + startTime = { + hours = 0, + minutes = 1, + seconds = 33 + }, + endTime = { + hours = 0, + minutes = 1, + seconds = 35 + }, + updateMode = "COUNTUP", + audioStreamingIndicator = "PAUSE" +} +local validIndicator = { type = "TIME" } +local invalidIndicator = { type = "TRACK", seekTime = 90 } + +--[[ Local Functions ]] +local function sendRPC(pParams, forwardIndicator, backIndicator) + local params = utils.cloneTable(pParams) + params.forwardSeekIndicator = forwardIndicator + params.backSeekIndicator = backIndicator + local cid = common.getMobileSession():SendRPC("SetMediaClockTimer", params) + common.getHMIConnection():ExpectRequest("UI.SetMediaClockTimer") + :Times(0) + common.getMobileSession():ExpectResponse(cid, { success = false, resultCode = "INVALID_DATA" }) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("SetMediaClockTimer INVALID_DATA forward_TRACK_30_back_TIME", sendRPC, { requestParams, validIndicator, invalidIndicator }) +runner.Step("SetMediaClockTimer INVALID_DATA forward_TIME_back_TRACK_30", sendRPC, { requestParams, invalidIndicator, validIndicator }) +runner.Step("SetMediaClockTimer INVALID_DATA forward_TRACK_30_back_TRACK_30", sendRPC, { requestParams, invalidIndicator, invalidIndicator }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/System/commonSystem.lua b/test_scripts/API/System/commonSystem.lua deleted file mode 100644 index 6acdacecfc..0000000000 --- a/test_scripts/API/System/commonSystem.lua +++ /dev/null @@ -1,342 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- System common module ---------------------------------------------------------------------------------------------------- ---[[ General configuration parameters ]] -config.deviceMAC = "12ca17b49af2289436f303e0166030a21e525d266e209267433801a8fd4071a0" -config.defaultProtocolVersion = 2 - ---[[ Required Shared libraries ]] -local mobile_session = require("mobile_session") -local json = require("modules/json") - -local commonFunctions = require("user_modules/shared_testcases/commonFunctions") -local commonSteps = require("user_modules/shared_testcases/commonSteps") -local commonTestCases = require("user_modules/shared_testcases/commonTestCases") -local common = {} - ---[[ Constants ]] -common.timeout = 2000 -common.minTimeout = 500 - ---[[ Variables ]] -local ptu_table = {} -local hmiAppIds = {} - ---[[ Functions ]] - ---[[ @checkIfPTSIsSentAsBinary: check if binary data is not empty ---! @parameters: ---! pBinData - binary data ---]] -local function checkIfPTSIsSentAsBinary(pBinData) - if not (pBinData ~= nil and string.len(pBinData) > 0) then - commonFunctions:userPrint(31, "PTS was not sent to Mobile in payload of OnSystemRequest") - end -end - ---[[ @getPTUFromPTS: create policy table update table (PTU) ---! @parameters: ---! pTbl - table with policy table snapshot (PTS) ---! @return: table with PTU ---]] -local function getPTUFromPTS(pTbl) - pTbl.policy_table.consumer_friendly_messages.messages = nil - pTbl.policy_table.device_data = nil - pTbl.policy_table.module_meta = nil - pTbl.policy_table.usage_and_error_counts = nil - pTbl.policy_table.functional_groupings["DataConsent-2"].rpcs = json.null - pTbl.policy_table.module_config.preloaded_pt = nil - pTbl.policy_table.module_config.preloaded_date = nil - pTbl.policy_table.vehicle_data = nil -end - ---[[ @jsonFileToTable: convert .json file to table ---! @parameters: ---! pFileName - file name ---! @return: table ---]] -local function jsonFileToTable(pFileName) - local f = io.open(pFileName, "r") - local content = f:read("*all") - f:close() - return json.decode(content) -end - ---[[ @tableToJsonFile: convert table to .json file ---! @parameters: ---! pTbl - table ---! pFileName - file name ---]] -local function tableToJsonFile(pTbl, pFileName) - local f = io.open(pFileName, "w") - f:write(json.encode(pTbl)) - f:close() -end - ---[[ @ptu: perform policy table update ---! @parameters: ---! pPTUpdateFunc - additional function for update ---! self - test object ---]] -local function ptu(pPTUpdateFunc, self) - local policy_file_name = "PolicyTableUpdate" - local policy_file_path = commonFunctions:read_parameter_from_smart_device_link_ini("SystemFilesPath") - local pts_file_name = commonFunctions:read_parameter_from_smart_device_link_ini("PathToSnapshot") - local ptu_file_name = os.tmpname() - local requestId = self.hmiConnection:SendRequest("SDL.GetPolicyConfigurationData", - { policyType = "module_config", property = "endpoints" }) - EXPECT_HMIRESPONSE(requestId) - :Do(function() - self.hmiConnection:SendNotification("BasicCommunication.OnSystemRequest", - { requestType = "PROPRIETARY", fileName = pts_file_name }) - getPTUFromPTS(ptu_table) - - if pPTUpdateFunc then - pPTUpdateFunc(ptu_table) - end - - tableToJsonFile(ptu_table, ptu_file_name) - - local event = events.Event() - event.matches = function(self, e) return self == e end - EXPECT_EVENT(event, "PTU event") - :Timeout(11000) - - local function getAppsCount() - local count = 0 - for _ in pairs(hmiAppIds) do - count = count + 1 - end - return count - end - for id = 1, getAppsCount() do - local mobileSession = common.getMobileSession(id, self) - mobileSession:ExpectNotification("OnSystemRequest", { requestType = "PROPRIETARY" }) - :Do(function(_, d2) - print("App ".. id .. " was used for PTU") - RAISE_EVENT(event, event, "PTU event") - checkIfPTSIsSentAsBinary(d2.binaryData) - local corIdSystemRequest = mobileSession:SendRPC("SystemRequest", - { requestType = "PROPRIETARY", fileName = policy_file_name }, ptu_file_name) - EXPECT_HMICALL("BasicCommunication.SystemRequest") - :Do(function(_, d3) - self.hmiConnection:SendResponse(d3.id, "BasicCommunication.SystemRequest", "SUCCESS", { }) - self.hmiConnection:SendNotification("SDL.OnReceivedPolicyUpdate", - { policyfile = policy_file_path .. "/" .. policy_file_name }) - end) - mobileSession:ExpectResponse(corIdSystemRequest, { success = true, resultCode = "SUCCESS" }) - end) - :Times(AtMost(1)) - end - end) - os.remove(ptu_file_name) -end - ---[[ @preconditions: precondition steps ---! @parameters: none ---]] -function common.preconditions() - commonFunctions:SDLForceStop() - commonSteps:DeletePolicyTable() - commonSteps:DeleteLogsFiles() -end - ---[[ @activateApp: activate application ---! @parameters: ---! pAppId - application number (1, 2, etc.) ---! self - test object ---]] -function common.activateApp(pAppId, self) - self, pAppId = common.getSelfAndParams(pAppId, self) - if not pAppId then pAppId = 1 end - local pHMIAppId = hmiAppIds[config["application" .. pAppId].registerAppInterfaceParams.fullAppID] - local mobSession = common.getMobileSession(pAppId, self) - local requestId = self.hmiConnection:SendRequest("SDL.ActivateApp", { appID = pHMIAppId }) - EXPECT_HMIRESPONSE(requestId) - mobSession:ExpectNotification("OnHMIStatus", - { hmiLevel = "FULL", audioStreamingState = "AUDIBLE", systemContext = "MAIN" }) - commonTestCases:DelayedExp(common.minTimeout) -end - ---[[ @getSelfAndParams: shifting parameters in order to move self at 1st position ---! @parameters: ---! ... - various parameters and self ---! @return: self and other parameters ---]] -function common.getSelfAndParams(...) - local out = { } - local selfIdx = nil - for i,v in pairs({...}) do - if type(v) == "table" and v.isTest then - table.insert(out, v) - selfIdx = i - break - end - end - local idx = 2 - for i = 1, table.maxn({...}) do - if i ~= selfIdx then - out[idx] = ({...})[i] - idx = idx + 1 - end - end - return table.unpack(out, 1, table.maxn(out)) -end - ---[[ @getMobileSession: get mobile session ---! @parameters: ---! pAppId - application number (1, 2, etc.) ---! self - test object ---! @return: mobile session ---]] -function common.getMobileSession(pAppId, self) - if not pAppId then pAppId = 1 end - return self["mobileSession" .. pAppId] -end - ---[[ @postconditions: postcondition steps ---! @parameters: none ---]] -function common.postconditions() - StopSDL() -end - ---[[ @registerAppWithPTU: register mobile application and perform PTU ---! @parameters: ---! pAppId - application number (1, 2, etc.) ---! pPTUpdateFunc - additional function for update ---! self - test object ---]] -function common.registerAppWithPTU(pAppId, pPTUpdateFunc, self) - self, pAppId, pPTUpdateFunc = common.getSelfAndParams(pAppId, pPTUpdateFunc, self) - if not pAppId then pAppId = 1 end - self["mobileSession" .. pAppId] = mobile_session.MobileSession(self, self.mobileConnection) - self["mobileSession" .. pAppId]:StartService(7) - :Do(function() - local corId = self["mobileSession" .. pAppId]:SendRPC("RegisterAppInterface", - config["application" .. pAppId].registerAppInterfaceParams) - EXPECT_HMINOTIFICATION("BasicCommunication.OnAppRegistered", - { application = { appName = config["application" .. pAppId].registerAppInterfaceParams.appName } }) - :Do(function(_, d1) - hmiAppIds[config["application" .. pAppId].registerAppInterfaceParams.fullAppID] = d1.params.application.appID - EXPECT_HMINOTIFICATION("SDL.OnStatusUpdate", - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }, { status = "UP_TO_DATE" }) - :Times(3) - EXPECT_HMICALL("BasicCommunication.PolicyUpdate") - :Do(function(_, d2) - self.hmiConnection:SendResponse(d2.id, d2.method, "SUCCESS", { }) - ptu_table = jsonFileToTable(d2.params.file) - ptu(pPTUpdateFunc, self) - end) - end) - self["mobileSession" .. pAppId]:ExpectResponse(corId, { success = true, resultCode = "SUCCESS" }) - :Do(function() - self["mobileSession" .. pAppId]:ExpectNotification("OnHMIStatus", - { hmiLevel = "NONE", audioStreamingState = "NOT_AUDIBLE", systemContext = "MAIN" }) - :Times(1) - self["mobileSession" .. pAppId]:ExpectNotification("OnPermissionsChange") - :Times(AtLeast(1)) -- TODO: Change to exact 1 occurence when SDL issue is fixed - end) - end) -end - ---[[ @allowSDL: sequence that allows SDL functionality ---! @parameters: ---! self - test object ---]] -local function allowSDL(self) - self.hmiConnection:SendNotification("SDL.OnAllowSDLFunctionality", - { allowed = true, source = "GUI", device = { id = config.deviceMAC, name = "127.0.0.1" } }) -end - ---[[ @start: starting sequence: starting of SDL, initialization of HMI, connect mobile ---! @parameters: ---! pHMIParams - table with parameters for HMI initialization ---! self - test object ---]] -function common.start(pHMIParams, self) - self, pHMIParams = common.getSelfAndParams(pHMIParams, self) - self:runSDL() - commonFunctions:waitForSDLStart(self) - :Do(function() - self:initHMI(self) - :Do(function() - commonFunctions:userPrint(35, "HMI initialized") - self:initHMI_onReady(pHMIParams) - :Do(function() - commonFunctions:userPrint(35, "HMI is ready") - self:connectMobile() - :Do(function() - commonFunctions:userPrint(35, "Mobile connected") - allowSDL(self) - end) - end) - end) - end) -end - -function common.convertTableToString(tbl, i) - local strIndex = "" - local strReturn = "" - for j = 1, i do - strIndex = strIndex .. "\t" - end - local strIndex2 = strIndex .."\t" - local x = 0 - if type(tbl) == "table" then - strReturn = strReturn .. strIndex .. "{\n" - for k,v in pairs(tbl) do - x = x + 1 - if type(k) == "number" then - if type(v) == "table" then - if x ~=1 then - strReturn = strReturn .. ",\n" - end - else - if x ==1 then - strReturn = strReturn .. strIndex2 - else - strReturn = strReturn .. ",\n" .. strIndex2 - end - end - else - if x ==1 then - strReturn = strReturn .. strIndex2 .. k .. " = " - else - strReturn = strReturn .. ",\n" .. strIndex2 .. k .. " = " - end - if type(v) == "table" then - strReturn = strReturn .. "\n" - end - end - strReturn = strReturn .. common.convertTableToString(v, i+1) - end - strReturn = strReturn .. "\n" - strReturn = strReturn .. strIndex .. "}" - else - if type(tbl) == "number" then - strReturn = strReturn .. tbl - elseif type(tbl) == "boolean" then - strReturn = strReturn .. tostring(tbl) - elseif type(tbl) == "string" then - strReturn = strReturn .. tbl - end - end - return strReturn -end ---[[ @protect: make table immutable ---! @parameters: ---! pTbl - mutable table ---! @return: immutable table ---]] -local function protect(pTbl) - local mt = { - __index = pTbl, - __newindex = function(_, k, v) - error("Attempting to change item " .. tostring(k) .. " to " .. tostring(v), 2) - end - } - return setmetatable({}, mt) -end - -return protect(common) diff --git a/test_scripts/API/VehicleData/AudioSource/001_Success_deviceStatus_primaryAudioSource.lua b/test_scripts/API/VehicleData/AudioSource/001_Success_deviceStatus_primaryAudioSource.lua deleted file mode 100644 index 6c54ec2a30..0000000000 --- a/test_scripts/API/VehicleData/AudioSource/001_Success_deviceStatus_primaryAudioSource.lua +++ /dev/null @@ -1,80 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0182-audio-source-am-fm-xm.md --- --- Description: --- In case: --- 1) Mobile app sends GetVehicleData request with deviceStatus=true --- 2) SDL transfers this request to HMI --- 3) HMI responds with value from PrimaryAudioSource enum in deviceStatus.primaryAudioSource --- SDL must: --- 1) Process GetVehicleData response and transfer it to mobile ---------------------------------------------------------------------------------------------------- - ---[[ Required Shared libraries ]] -local common = require('test_scripts/API/VehicleData/common') - ---[[ Local Variables ]] -local audioSources = { - "NO_SOURCE_SELECTED", - "CD", - "BLUETOOTH_STEREO_BTST", - "USB", - "USB2", - "LINE_IN", - "IPOD", - "MOBILE_APP", - "AM", - "FM", - "XM", - "DAB" -} - -local rpc = { - name = "GetVehicleData", - params = { - deviceStatus = true - } -} - ---[[ Local Functions ]] -local function processRPCSuccess(pAudioSource) - local cid = common.getMobileSession():SendRPC(rpc.name, rpc.params) - local vehicleDataValues = { - deviceStatus = { - primaryAudioSource = pAudioSource, - voiceRecOn = false, - btIconOn = false, - callActive = false, - phoneRoaming = false, - textMsgAvailable = false, - battLevelStatus = "TWO_LEVEL_BARS", - stereoAudioOutputMuted = false, - monoAudioOutputMuted = false, - signalLevelStatus = "ONE_LEVEL_BARS", - eCallEventActive = false - } - } - common.getHMIConnection():ExpectRequest("VehicleInfo." .. rpc.name, rpc.params) - :Do(function(_, data) - common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", vehicleDataValues) - end) - local responseParams = vehicleDataValues - responseParams.success = true - responseParams.resultCode = "SUCCESS" - common.getMobileSession():ExpectResponse(cid, responseParams) - common.wait(300) -end - ---[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("RAI", common.registerApp) - -common.Title("Test") -for _, source in pairs(audioSources) do - common.Step("RPC " .. rpc.name .. " source " .. source, processRPCSuccess, { source }) -end - -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/AudioSource/002_Success_flow_deviceStatus_primaryAudioSource.lua b/test_scripts/API/VehicleData/AudioSource/002_Success_flow_deviceStatus_primaryAudioSource.lua deleted file mode 100644 index 2909f543c0..0000000000 --- a/test_scripts/API/VehicleData/AudioSource/002_Success_flow_deviceStatus_primaryAudioSource.lua +++ /dev/null @@ -1,97 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0182-audio-source-am-fm-xm.md --- --- Description: --- In case: --- 1) Mobile app is subscribed to get deviceStatus vehicle data --- 2) HMI sends OnVehicleData with value from PrimaryAudioSource enum in deviceStatus.primaryAudioSource --- SDL must: --- 1) Process OnVehicleData notification and transfer it to mobile ---------------------------------------------------------------------------------------------------- - ---[[ Required Shared libraries ]] -local common = require('test_scripts/API/VehicleData/common') - ---[[ Local Variables ]] -local audioSources = { - "NO_SOURCE_SELECTED", - "CD", - "BLUETOOTH_STEREO_BTST", - "USB", - "USB2", - "LINE_IN", - "IPOD", - "MOBILE_APP", - "AM", - "FM", - "XM", - "DAB" -} - -local rpc1 = { - name = "SubscribeVehicleData", - params = { - deviceStatus = true - } -} - -local vehicleDataResults = { - deviceStatus = { - dataType = "VEHICLEDATA_DEVICESTATUS", - resultCode = "SUCCESS" - } -} - -local rpc2 = { - name = "OnVehicleData", - params = { - deviceStatus = { - primaryAudioSource = "CD", - voiceRecOn = false, - btIconOn = false, - callActive = false, - phoneRoaming = false, - textMsgAvailable = false, - battLevelStatus = "TWO_LEVEL_BARS", - stereoAudioOutputMuted = false, - monoAudioOutputMuted = false, - signalLevelStatus = "ONE_LEVEL_BARS", - eCallEventActive = false - } - } -} - ---[[ Local Functions ]] -local function processRPCSubscribeSuccess() - local cid = common.getMobileSession():SendRPC(rpc1.name, rpc1.params) - common.getHMIConnection():ExpectRequest("VehicleInfo." .. rpc1.name, rpc1.params) - :Do(function(_, data) - common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", vehicleDataResults) - end) - - local responseParams = vehicleDataResults - responseParams.success = true - responseParams.resultCode = "SUCCESS" - common.getMobileSession():ExpectResponse(cid, responseParams) -end - -local function checkNotificationSuccess(pAudioSource) - rpc2.params.deviceStatus.primaryAudioSource = pAudioSource - common.getHMIConnection():SendNotification("VehicleInfo." .. rpc2.name, rpc2.params) - common.getMobileSession():ExpectNotification("OnVehicleData", rpc2.params) -end - ---[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("RAI", common.registerApp) - -common.Title("Test") -common.Step("RPC " .. rpc1.name, processRPCSubscribeSuccess) -for _, source in pairs(audioSources) do - common.Step("RPC " .. rpc2.name .. " source " .. source, checkNotificationSuccess, { source }) -end - -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/GearStatus/001_GetVehicleData_with_one_param_in_gearStatus_structure.lua b/test_scripts/API/VehicleData/GearStatus/001_GetVehicleData_with_one_param_in_gearStatus_structure.lua deleted file mode 100644 index 267601273e..0000000000 --- a/test_scripts/API/VehicleData/GearStatus/001_GetVehicleData_with_one_param_in_gearStatus_structure.lua +++ /dev/null @@ -1,75 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0266-New-vehicle-data-GearStatus.md --- --- Description: SDL successfully processes GetVehicleData response if 'gearStatus' structure contains one parameter. --- --- In case: --- 1) App sends GetVehicleData(gearStatus=true) request. --- SDL does: --- a) transfer this request to HMI. --- 2) HMI sends the 'gearStatus' structure with only one parameter in GetVehicleData response. --- SDL does: --- a) respond with resultCode:'SUCCESS' to app with only one parameter. ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/API/VehicleData/common') - --- [[ Local Variables ]] -local param = "gearStatus" - -local transmissionTypeEnumValues = { - "MANUAL", - "AUTOMATIC", - "SEMI_AUTOMATIC", - "DUAL_CLUTCH", - "CONTINUOUSLY_VARIABLE", - "INFINITELY_VARIABLE", - "ELECTRIC_VARIABLE", - "DIRECT_DRIVE" -} - -local prndlEnumValues = { - "PARK", - "REVERSE", - "NEUTRAL", - "DRIVE", - "SPORT", - "LOWGEAR", - "FIRST", - "SECOND", - "THIRD", - "FOURTH", - "FIFTH", - "SIXTH", - "SEVENTH", - "EIGHTH", - "NINTH", - "TENTH", - "UNKNOWN", - "FAULT" -} - -local gearStatusData = { - userSelectedGear = prndlEnumValues, - actualGear = prndlEnumValues, - transmissionType = transmissionTypeEnumValues -} - ---[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) -common.Step("Activate App", common.activateApp) - -common.Title("Test") -common.Title("VD parameter: " .. param) -for sub_param, data in common.spairs(gearStatusData) do - for _, value in common.spairs(data) do - common.Step("RPC " .. common.rpc.get .. " param " .. sub_param .. "=" .. value, - common.getVehicleData, { param, { [sub_param] = value } }) - end -end - -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/GearStatus/002_OnVehicleData_with_only_one_param_in_gearStatus_structure.lua b/test_scripts/API/VehicleData/GearStatus/002_OnVehicleData_with_only_one_param_in_gearStatus_structure.lua deleted file mode 100644 index 2507ec028f..0000000000 --- a/test_scripts/API/VehicleData/GearStatus/002_OnVehicleData_with_only_one_param_in_gearStatus_structure.lua +++ /dev/null @@ -1,75 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0266-New-vehicle-data-GearStatus.md --- --- Description: SDL transfers OnVehicleData notification to app if HMI sends it with only one parameter --- in 'gearStatus' structure. --- --- In case: --- 1) App is subscribed to 'gearStatus' data. --- 2) HMI sends valid OnVehicleData notification with only one parameter in 'gearStatus' structure. --- SDL does: --- a) process this notification and transfer it to mobile app. ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/API/VehicleData/common') - ---[[ Local Variables ]] -local param = "gearStatus" - -local transmissionTypeEnumValues = { - "MANUAL", - "AUTOMATIC", - "SEMI_AUTOMATIC", - "DUAL_CLUTCH", - "CONTINUOUSLY_VARIABLE", - "INFINITELY_VARIABLE", - "ELECTRIC_VARIABLE", - "DIRECT_DRIVE" -} - -local prndlEnumValues = { - "PARK", - "REVERSE", - "NEUTRAL", - "DRIVE", - "SPORT", - "LOWGEAR", - "FIRST", - "SECOND", - "THIRD", - "FOURTH", - "FIFTH", - "SIXTH", - "SEVENTH", - "EIGHTH", - "NINTH", - "TENTH", - "UNKNOWN", - "FAULT" -} - -local gearStatusData = { - userSelectedGear = prndlEnumValues, - actualGear = prndlEnumValues, - transmissionType = transmissionTypeEnumValues -} - ---[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) -common.Step("Activate App", common.activateApp) -common.Step("RPC " .. common.rpc.sub, common.processSubscriptionRPC, { common.rpc.sub, param }) - -common.Title("Test") -common.Title("VD parameter: " .. param) -for sub_param, data in common.spairs(gearStatusData) do - for _, value in common.spairs(data) do - common.Step("RPC " .. common.rpc.on .. " param " .. sub_param .. "=" .. value, - common.sendOnVehicleData, { param, common.isExpected, { [sub_param] = value } }) - end -end - -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/GenericNetworkSignalData/commonGenericNetSignalData.lua b/test_scripts/API/VehicleData/GenericNetworkSignalData/commonGenericNetSignalData.lua index 2392cc3a5d..35d72b730a 100644 --- a/test_scripts/API/VehicleData/GenericNetworkSignalData/commonGenericNetSignalData.lua +++ b/test_scripts/API/VehicleData/GenericNetworkSignalData/commonGenericNetSignalData.lua @@ -100,7 +100,6 @@ local function VehicleDataItemsWithDataTableCreation() end end - common.VehicleDataItemsWithData.engineTorque.APItype = "VEHICLEDATA_ENGINETORQUE" local gpsParams = common.VehicleDataItemsWithData.gps.params gpsParams.longitudeDegrees.value = 100 gpsParams.latitudeDegrees.value = 20.5 @@ -137,35 +136,34 @@ local function VehicleDataItemsWithDataTableCreation() common.VehicleDataItemsWithData.fuelRange.APItype = "VEHICLEDATA_FUELRANGE" common.VehicleDataItemsWithData.externalTemperature.value = 24.1 common.VehicleDataItemsWithData.externalTemperature.APItype = "VEHICLEDATA_EXTERNTEMP" + local climateDataParams = common.VehicleDataItemsWithData.climateData.params + climateDataParams.externalTemperature.params.value.value = 25.5 + climateDataParams.externalTemperature.params.unit.value = "CELSIUS" + climateDataParams.cabinTemperature.params.value.value = 20.5 + climateDataParams.cabinTemperature.params.unit.value = "CELSIUS" + climateDataParams.atmosphericPressure.value = 1024 + common.VehicleDataItemsWithData.climateData.APItype = "VEHICLEDATA_CLIMATEDATA" common.VehicleDataItemsWithData.turnSignal.value = "OFF" common.VehicleDataItemsWithData.turnSignal.APItype = "VEHICLEDATA_TURNSIGNAL" common.VehicleDataItemsWithData.vin.value = "SJFHSIGD4058569" common.VehicleDataItemsWithData.vin.APItype = "VEHICLEDATA_VIN" common.VehicleDataItemsWithData.prndl.value = "PARK" common.VehicleDataItemsWithData.prndl.APItype = "VEHICLEDATA_PRNDL" - if common.VehicleDataItemsWithData.handsOffSteering then - common.VehicleDataItemsWithData.handsOffSteering.value = true - common.VehicleDataItemsWithData.handsOffSteering.APItype = "VEHICLEDATA_HANDSOFFSTEERING" - end - if common.VehicleDataItemsWithData.stabilityControlsStatus then - common.VehicleDataItemsWithData.stabilityControlsStatus.value = { - escSystem = "ON" , trailerSwayControl = "OFF" } - common.VehicleDataItemsWithData.stabilityControlsStatus.APItype = "VEHICLEDATA_STABILITYCONTROLSSTATUS" - end - if common.VehicleDataItemsWithData.gearStatus then - local gearStatusParams = common.VehicleDataItemsWithData.gearStatus.params - gearStatusParams.userSelectedGear.value = "NINTH" - gearStatusParams.actualGear.value = "TENTH" - gearStatusParams.transmissionType.value = "MANUAL" - common.VehicleDataItemsWithData.gearStatus.APItype = "VEHICLEDATA_GEARSTATUS" - end - if common.VehicleDataItemsWithData.windowStatus then - common.VehicleDataItemsWithData.windowStatus.value = { - { location = { col = 49, row = 49, level = 49, colspan = 49, rowspan = 49, levelspan = 49 }, - state = { approximatePosition = 50, deviation = 50 } - }} + common.VehicleDataItemsWithData.handsOffSteering.value = true + common.VehicleDataItemsWithData.handsOffSteering.APItype = "VEHICLEDATA_HANDSOFFSTEERING" + common.VehicleDataItemsWithData.stabilityControlsStatus.value = { + escSystem = "ON" , trailerSwayControl = "OFF" } + common.VehicleDataItemsWithData.stabilityControlsStatus.APItype = "VEHICLEDATA_STABILITYCONTROLSSTATUS" + local gearStatusParams = common.VehicleDataItemsWithData.gearStatus.params + gearStatusParams.userSelectedGear.value = "NINTH" + gearStatusParams.actualGear.value = "TENTH" + gearStatusParams.transmissionType.value = "MANUAL" + common.VehicleDataItemsWithData.gearStatus.APItype = "VEHICLEDATA_GEARSTATUS" + common.VehicleDataItemsWithData.windowStatus.value = { + { location = { col = 49, row = 49, level = 49, colspan = 49, rowspan = 49, levelspan = 49 }, + state = { approximatePosition = 50, deviation = 50 } + }} common.VehicleDataItemsWithData.windowStatus.APItype = "VEHICLEDATA_WINDOWSTATUS" - end local tirePressureParams = common.VehicleDataItemsWithData.tirePressure.params tirePressureParams.pressureTelltale.value = "OFF" local leftFrontParams = tirePressureParams.leftFront.params @@ -220,6 +218,22 @@ local function VehicleDataItemsWithDataTableCreation() bodyInformationParams.passengerDoorAjar.value = false bodyInformationParams.rearLeftDoorAjar.value = false bodyInformationParams.rearRightDoorAjar.value = false + bodyInformationParams.doorStatuses.value = { + { location = { col = 49, row = 49, level = 49, colspan = 49, rowspan = 49, levelspan = 49 }, + status = "CLOSED" + } + } + bodyInformationParams.gateStatuses.value = { + { location = { col = 50, row = 50, level = 50, colspan = 50, rowspan = 50, levelspan = 50 }, + status = "AJAR" + } + } + bodyInformationParams.roofStatuses.value = { + { location = { col = 51, row = 51, level = 51, colspan = 51, rowspan = 51, levelspan = 51 }, + state = { approximatePosition = 52, deviation = 52 }, + status = "REMOVED" + } + } common.VehicleDataItemsWithData.bodyInformation.APItype = "VEHICLEDATA_BODYINFO" local deviceStatusParams = common.VehicleDataItemsWithData.deviceStatus.params deviceStatusParams.voiceRecOn.value = true @@ -286,6 +300,14 @@ local function VehicleDataItemsWithDataTableCreation() local myKeyParams = common.VehicleDataItemsWithData.myKey.params myKeyParams.e911Override.value = "ON" common.VehicleDataItemsWithData.myKey.APItype = "VEHICLEDATA_MYKEY" + local seatOccupancyParams = common.VehicleDataItemsWithData.seatOccupancy.params + seatOccupancyParams.seatsOccupied.value = { + { seatLocation = { grid = { col = 53, row = 53, level = 53, colspan = 53, rowspan = 53, levelspan = 53 }}, + conditionActive = true }} + seatOccupancyParams.seatsBelted.value = { + { seatLocation = { grid = { col = 54, row = 54, level = 54, colspan = 54, rowspan = 54, levelspan = 54 }}, + conditionActive = false }} + common.VehicleDataItemsWithData.seatOccupancy.APItype = "VEHICLEDATA_SEATOCCUPANCY" else utils.cprint(31, "VehicleDataItemsWithData are missed in preloaded file") end diff --git a/test_scripts/API/VehicleData/GetVehicleData/001_GetVD_Success_flow.lua b/test_scripts/API/VehicleData/GetVehicleData/001_GetVD_Success_flow.lua index 31d29b4bb5..1cc958d9de 100644 --- a/test_scripts/API/VehicleData/GetVehicleData/001_GetVD_Success_flow.lua +++ b/test_scripts/API/VehicleData/GetVehicleData/001_GetVD_Success_flow.lua @@ -1,5 +1,6 @@ --------------------------------------------------------------------------------------------------- -- Description: Check that SDL processes GetVehicleData RPC with parameter +-- Positive cases for all VD parameters and sub-parameters -- -- Preconditions: -- 1) SDL and HMI are started @@ -18,17 +19,21 @@ --[[ Required Shared libraries ]] local common = require('test_scripts/API/VehicleData/common') +--[[ Local Constants ]] +local testTypes = { + common.testType.VALID_RANDOM_ALL, + common.testType.VALID_RANDOM_SUB +} + --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment and update preloaded_pt file", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) +common.runner.Step("Activate App", common.activateApp) -common.Title("Test") -for param in common.spairs(common.getVDParams()) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.get, common.getVehicleData, { param }) -end +common.runner.Title("Test") +common.runner.getTestsForGetVD(testTypes) -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/GetVehicleData/002_GetVD_disallowed.lua b/test_scripts/API/VehicleData/GetVehicleData/002_GetVD_disallowed.lua index fd63a11aae..7297b402b6 100644 --- a/test_scripts/API/VehicleData/GetVehicleData/002_GetVD_disallowed.lua +++ b/test_scripts/API/VehicleData/GetVehicleData/002_GetVD_disallowed.lua @@ -37,16 +37,16 @@ end --[[ Scenario ]] for param in common.spairs(common.getVDParams()) do - common.Title("VD parameter: " .. param) - common.Title("Preconditions") - common.Step("Clean environment and update preloaded_pt file", common.preconditions, { getVDGroup(param) }) - common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - common.Step("Register App", common.registerApp) + common.runner.Title("VD parameter: " .. param) + common.runner.Title("Preconditions") + common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions, { getVDGroup(param) }) + common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.runner.Step("Register App", common.registerApp) - common.Title("Test") - common.Step("RPC " .. common.rpc.get .. " DISALLOWED", common.processRPCFailure, + common.runner.Title("Test") + common.runner.Step("RPC " .. common.rpc.get .. " DISALLOWED", common.processRPCFailure, { common.rpc.get, param, result }) - common.Title("Postconditions") - common.Step("Stop SDL", common.postconditions) + common.runner.Title("Postconditions") + common.runner.Step("Stop SDL", common.postconditions) end diff --git a/test_scripts/API/VehicleData/GetVehicleData/003_GetVD_disallowed_after_PTU.lua b/test_scripts/API/VehicleData/GetVehicleData/003_GetVD_disallowed_after_PTU.lua index 4ff52c6933..82006170fa 100644 --- a/test_scripts/API/VehicleData/GetVehicleData/003_GetVD_disallowed_after_PTU.lua +++ b/test_scripts/API/VehicleData/GetVehicleData/003_GetVD_disallowed_after_PTU.lua @@ -33,6 +33,7 @@ local function getVDGroup(pDisallowedParam) for param in pairs(common.getVDParams()) do if param ~= pDisallowedParam then table.insert(params, param) end end + if #params == 0 then params = common.json.EMPTY_ARRAY end return { rpcs = { [common.rpc.get] = { @@ -53,18 +54,18 @@ end --[[ Scenario ]] for param in common.spairs(common.getVDParams()) do - common.Title("VD parameter: " .. param) - common.Title("Preconditions") - common.Step("Clean environment and update preloaded_pt file", common.preconditions) - common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - common.Step("Register App", common.registerApp) - common.Step("RPC GetVehicleData, SUCCESS", common.getVehicleData, { param }) + common.runner.Title("VD parameter: " .. param) + common.runner.Title("Preconditions") + common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) + common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.runner.Step("Register App", common.registerApp) + common.runner.Step("RPC GetVehicleData, SUCCESS", common.getVehicleData, { param }) - common.Title("Test") - common.Step("PTU with disabling permissions for VD parameter", policyTableUpdate, { param }) - common.Step("RPC " .. common.rpc.get .. " DISALLOWED after PTU", common.processRPCFailure, + common.runner.Title("Test") + common.runner.Step("PTU with disabling permissions for VD parameter", policyTableUpdate, { param }) + common.runner.Step("RPC " .. common.rpc.get .. " DISALLOWED after PTU", common.processRPCFailure, { common.rpc.get, param, result }) - common.Title("Postconditions") - common.Step("Stop SDL", common.postconditions) + common.runner.Title("Postconditions") + common.runner.Step("Stop SDL", common.postconditions) end diff --git a/test_scripts/API/VehicleData/GetVehicleData/004_GetVD_HMI_responds_with_invalid_data.lua b/test_scripts/API/VehicleData/GetVehicleData/004_GetVD_HMI_responds_with_invalid_data.lua index f208568c27..b19df67fe1 100644 --- a/test_scripts/API/VehicleData/GetVehicleData/004_GetVD_HMI_responds_with_invalid_data.lua +++ b/test_scripts/API/VehicleData/GetVehicleData/004_GetVD_HMI_responds_with_invalid_data.lua @@ -18,18 +18,21 @@ --[[ Required Shared libraries ]] local common = require('test_scripts/API/VehicleData/common') +--[[ Local Constants ]] +local testTypes = { + common.testType.INVALID_TYPE +} + --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment and update preloaded_pt file", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) +common.runner.Step("Activate App", common.activateApp) + +common.runner.Title("Test") +common.runner.getTestsForGetVD(testTypes) -common.Title("Test") -for param, value in common.spairs(common.getVDParams()) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.get .. " invalid HMI response", common.processRPCgenericError, - { common.rpc.get, param, common.getInvalidData(value) }) -end +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/GetVehicleData/005_GetVD_App_sends_invalid_request.lua b/test_scripts/API/VehicleData/GetVehicleData/005_GetVD_App_sends_invalid_request.lua index 38abe7d0af..60993ba38d 100644 --- a/test_scripts/API/VehicleData/GetVehicleData/005_GetVD_App_sends_invalid_request.lua +++ b/test_scripts/API/VehicleData/GetVehicleData/005_GetVD_App_sends_invalid_request.lua @@ -21,17 +21,17 @@ local result = "INVALID_DATA" local value = 123 --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment and update preloaded_pt file", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) -common.Title("Test") +common.runner.Title("Test") for param in common.spairs(common.getVDParams()) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.get .. " invalid App request", + common.runner.Title("VD parameter: " .. param) + common.runner.Step("RPC " .. common.rpc.get .. " invalid App request", common.processRPCFailure, { common.rpc.get, param, result, value }) end -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/GetVehicleData/006_GetVD_mandatory_parameters.lua b/test_scripts/API/VehicleData/GetVehicleData/006_GetVD_mandatory_parameters.lua index 66f7329864..d049b0b7f5 100644 --- a/test_scripts/API/VehicleData/GetVehicleData/006_GetVD_mandatory_parameters.lua +++ b/test_scripts/API/VehicleData/GetVehicleData/006_GetVD_mandatory_parameters.lua @@ -29,43 +29,21 @@ --[[ Required Shared libraries ]] local common = require('test_scripts/API/VehicleData/common') ---[[ Local Functions ]] -local function processRPC(pRPC, pParam, pValue, pIsSuccess) - local cid = common.getMobileSession():SendRPC(pRPC, { [pParam] = true }) - common.getHMIConnection():ExpectRequest("VehicleInfo." .. pRPC, { [pParam] = true }) - :Do(function(_, data) - common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", { [pParam] = pValue }) - end) - if pIsSuccess == true then - local responseParams = {} - responseParams[pParam] = pValue - responseParams.success = true - responseParams.resultCode = "SUCCESS" - common.getMobileSession():ExpectResponse(cid, responseParams) - else - common.getMobileSession():ExpectResponse(cid, - { success = false, resultCode = "GENERIC_ERROR", info = "Invalid message received from vehicle" }) - end -end +--[[ Local Constants ]] +local testTypes = { + common.testType.MANDATORY_ONLY, + common.testType.MANDATORY_MISSING +} --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("RAI", common.registerApp) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) +common.runner.Step("Activate App", common.activateApp) -common.Title("Test") -for param in pairs(common.mandatoryVD) do - common.Title("VD parameter: " .. param) - for caseName, value in pairs(common.getMandatoryOnlyCases(param)) do - common.Step("RPC " .. common.rpc.get .. " with " .. caseName .. " SUCCESS", processRPC, - { common.rpc.get, param, value, true }) - end - for caseName, value in pairs(common.getMandatoryMissingCases(param)) do - common.Step("RPC " .. common.rpc.get .. " with " .. caseName .. " GENERIC_ERROR", processRPC, - { common.rpc.get, param, value, false }) - end -end +common.runner.Title("Test") +common.runner.getTestsForGetVD(testTypes) -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/GetVehicleData/007_GetVD_app_version_is_greater_than_parameter_version.lua b/test_scripts/API/VehicleData/GetVehicleData/007_GetVD_app_version_is_greater_than_parameter_version.lua index 594f26f7b9..30dda7e585 100644 --- a/test_scripts/API/VehicleData/GetVehicleData/007_GetVD_app_version_is_greater_than_parameter_version.lua +++ b/test_scripts/API/VehicleData/GetVehicleData/007_GetVD_app_version_is_greater_than_parameter_version.lua @@ -23,20 +23,20 @@ local common = require('test_scripts/API/VehicleData/common') --[[ Scenario ]] -for param, version in common.spairs(common.versioningVD) do - common.Title("VD parameter: " .. param) - common.Title("Preconditions") - common.Step("Clean environment and update preloaded_pt file", common.preconditions) - common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - common.Step("Set App version", common.setAppVersion, { version, common.operator.increase }) - common.Step("Register App", common.registerApp) +for _, test in common.spairs(common.getTests(common.rpc.get, common.testType.PARAM_VERSION)) do + common.runner.Title("VD parameter: " .. test.param) + common.runner.Title("Preconditions") + common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) + common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.runner.Step("Set App version", common.setAppVersion, { test.version, common.operator.increase }) + common.runner.Step("Register App", common.registerApp) - common.Title("Test") - common.Step("RPC " .. common.rpc.get, common.getVehicleData, { param }) - common.Step("RPC " .. common.rpc.sub, common.processSubscriptionRPC, { common.rpc.sub, param }) - common.Step("RPC " .. common.rpc.on, common.sendOnVehicleData, { param, common.isExpected }) - common.Step("RPC " .. common.rpc.unsub, common.processSubscriptionRPC, { common.rpc.unsub, param }) + common.runner.Title("Test") + common.runner.Step("RPC " .. common.rpc.get, common.getVehicleData, { test.param }) + common.runner.Step("RPC " .. common.rpc.sub, common.processSubscriptionRPC, { common.rpc.sub, test.param }) + common.runner.Step("RPC " .. common.rpc.on, common.sendOnVehicleData, { test.param, common.isExpected }) + common.runner.Step("RPC " .. common.rpc.unsub, common.processSubscriptionRPC, { common.rpc.unsub, test.param }) - common.Title("Postconditions") - common.Step("Stop SDL", common.postconditions) + common.runner.Title("Postconditions") + common.runner.Step("Stop SDL", common.postconditions) end diff --git a/test_scripts/API/VehicleData/GetVehicleData/008_GetVD_app_version_is_less_than_parameter_version.lua b/test_scripts/API/VehicleData/GetVehicleData/008_GetVD_app_version_is_less_than_parameter_version.lua index 2cb4ca48d0..9f2119183f 100644 --- a/test_scripts/API/VehicleData/GetVehicleData/008_GetVD_app_version_is_less_than_parameter_version.lua +++ b/test_scripts/API/VehicleData/GetVehicleData/008_GetVD_app_version_is_less_than_parameter_version.lua @@ -26,20 +26,20 @@ local common = require('test_scripts/API/VehicleData/common') local result = "INVALID_DATA" --[[ Scenario ]] -for param, version in common.spairs(common.versioningVD) do - common.Title("VD parameter: " .. param) - common.Title("Preconditions") - common.Step("Clean environment and update preloaded_pt file", common.preconditions) - common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - common.Step("Set App version", common.setAppVersion, { version, common.operator.decrease }) - common.Step("Register App", common.registerApp) +for _, test in common.spairs(common.getTests(common.rpc.get, common.testType.PARAM_VERSION)) do + common.runner.Title("VD parameter: " .. test.param) + common.runner.Title("Preconditions") + common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) + common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.runner.Step("Set App version", common.setAppVersion, { test.version, common.operator.decrease }) + common.runner.Step("Register App", common.registerApp) - common.Title("Test") - common.Step("RPC " .. common.rpc.get, common.processRPCFailure, { common.rpc.get, param, result }) - common.Step("RPC " .. common.rpc.sub, common.processRPCFailure, { common.rpc.sub, param, result }) - common.Step("RPC " .. common.rpc.on, common.sendOnVehicleData, { param, common.isNotExpected }) - common.Step("RPC " .. common.rpc.unsub, common.processRPCFailure, { common.rpc.unsub, param, result }) + common.runner.Title("Test") + common.runner.Step("RPC " .. common.rpc.get, common.processRPCFailure, { common.rpc.get, test.param, result }) + common.runner.Step("RPC " .. common.rpc.sub, common.processRPCFailure, { common.rpc.sub, test.param, result }) + common.runner.Step("RPC " .. common.rpc.on, common.sendOnVehicleData, { test.param, common.isNotExpected }) + common.runner.Step("RPC " .. common.rpc.unsub, common.processRPCFailure, { common.rpc.unsub, test.param, result }) - common.Title("Postconditions") - common.Step("Stop SDL", common.postconditions) + common.runner.Title("Postconditions") + common.runner.Step("Stop SDL", common.postconditions) end diff --git a/test_scripts/API/VehicleData/GetVehicleData/009_GetVD_min_max_boundary_values.lua b/test_scripts/API/VehicleData/GetVehicleData/009_GetVD_min_max_boundary_values.lua new file mode 100644 index 0000000000..d00ace32fd --- /dev/null +++ b/test_scripts/API/VehicleData/GetVehicleData/009_GetVD_min_max_boundary_values.lua @@ -0,0 +1,49 @@ +---------------------------------------------------------------------------------------------------- +-- Description: Check that SDL processes GetVehicleData RPC with parameter +-- Positive/Negative cases for boundary values for all VD parameters and sub-parameters +-- +-- Preconditions: +-- 1) SDL and HMI are started +-- 2) GetVehicleData RPC and parameter are allowed by policies +-- 3) App is registered +-- +-- In case: +-- 1) App sends valid GetVehicleData(=true) request to SDL +-- SDL does: +-- - a) transfer this request to HMI +-- 2) HMI sends VI.GetVehicleData response with valid data for to SDL +-- (closest lower/upper values to the defined boundary) +-- SDL does: +-- - a) send GetVehicleData response with (success = true, resultCode = "SUCCESS", +-- = ) to App +-- 3) App sends valid GetVehicleData(=true) request to SDL +-- SDL does: +-- - a) transfer this request to HMI +-- 4) HMI sends VI.GetVehicleData response with invalid data for to SDL +-- (closest lower/upper values to the defined boundary) +-- SDL does: +-- - a) send GetVehicleData response with (success = false, resultCode = "GENERIC_ERROR") +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/VehicleData/common') + +--[[ Local Constants ]] +local testTypes = { + common.testType.LOWER_IN_BOUND, + common.testType.UPPER_IN_BOUND, + common.testType.LOWER_OUT_OF_BOUND, + common.testType.UPPER_OUT_OF_BOUND +} + +--[[ Scenario ]] +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) +common.runner.Step("Activate App", common.activateApp) + +common.runner.Title("Test") +common.runner.getTestsForGetVD(testTypes) + +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/GetVehicleData/010_GetVD_enum_and_bool_values.lua b/test_scripts/API/VehicleData/GetVehicleData/010_GetVD_enum_and_bool_values.lua new file mode 100644 index 0000000000..8dd8567129 --- /dev/null +++ b/test_scripts/API/VehicleData/GetVehicleData/010_GetVD_enum_and_bool_values.lua @@ -0,0 +1,40 @@ +---------------------------------------------------------------------------------------------------- +-- Description: Check that SDL processes GetVehicleData RPC with parameter +-- Positive cases for all possible values for Enum and Boolean VD parameters and sub-parameters +-- +-- Preconditions: +-- 1) SDL and HMI are started +-- 2) GetVehicleData RPC and parameter are allowed by policies +-- 3) App is registered +-- +-- In case: +-- 1) App sends valid GetVehicleData(=true) request to SDL +-- SDL does: +-- - a) transfer this request to HMI +-- 2) HMI sends VI.GetVehicleData response with valid data to SDL +-- (iterate trough all possible enum and boolean values of applicable parameters) +-- SDL does: +-- - a) send GetVehicleData response with (success = true, resultCode = "SUCCESS", +-- = ) to App +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/VehicleData/common') + +--[[ Local Constants ]] +local testTypes = { + common.testType.ENUM_ITEMS, + common.testType.BOOL_ITEMS +} + +--[[ Scenario ]] +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) +common.runner.Step("Activate App", common.activateApp) + +common.runner.Title("Test") +common.runner.getTestsForGetVD(testTypes) + +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/OnVehicleData/001_OnVD_Success.lua b/test_scripts/API/VehicleData/OnVehicleData/001_OnVD_Success.lua index a76b312a20..7fcd6ff2e8 100644 --- a/test_scripts/API/VehicleData/OnVehicleData/001_OnVD_Success.lua +++ b/test_scripts/API/VehicleData/OnVehicleData/001_OnVD_Success.lua @@ -1,5 +1,6 @@ --------------------------------------------------------------------------------------------------- -- Description: Check that SDL processes OnVehicleData notification with parameter +-- Positive cases for all VD parameters and sub-parameters -- -- Preconditions: -- 1) SDL and HMI are started @@ -16,22 +17,21 @@ --[[ Required Shared libraries ]] local common = require('test_scripts/API/VehicleData/common') +--[[ Local Constants ]] +local testTypes = { + common.testType.VALID_RANDOM_ALL, + common.testType.VALID_RANDOM_SUB +} + --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment and update preloaded_pt file", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) +common.runner.Step("Activate App", common.activateApp) -common.Title("Test") -for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.sub, common.processSubscriptionRPC, { common.rpc.sub, param }) - common.Step("RPC " .. common.rpc.on, common.sendOnVehicleData, { param, common.isExpected }) -end -for param in common.spairs(common.getVDParams(false)) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.on, common.sendOnVehicleData, { param, common.isNotExpected }) -end +common.runner.Title("Test") +common.runner.getTestsForOnVD(testTypes) -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/OnVehicleData/002_OnVD_disallowed.lua b/test_scripts/API/VehicleData/OnVehicleData/002_OnVD_disallowed.lua index 840e939679..a80476df51 100644 --- a/test_scripts/API/VehicleData/OnVehicleData/002_OnVD_disallowed.lua +++ b/test_scripts/API/VehicleData/OnVehicleData/002_OnVD_disallowed.lua @@ -40,16 +40,16 @@ end --[[ Scenario ]] for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Title("Preconditions") - common.Step("Clean environment and update preloaded_pt file", common.preconditions, { getVDGroup(param) }) - common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - common.Step("Register App", common.registerApp) + common.runner.Title("VD parameter: " .. param) + common.runner.Title("Preconditions") + common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions, { getVDGroup(param) }) + common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.runner.Step("Register App", common.registerApp) - common.Title("Test") - common.Step("RPC " .. common.rpc.sub .. " SUCCESS", common.processSubscriptionRPC, { common.rpc.sub, param }) - common.Step("RPC " .. common.rpc.on .. " ignored", common.sendOnVehicleData, { param, common.isNotExpected }) + common.runner.Title("Test") + common.runner.Step("RPC " .. common.rpc.sub .. " SUCCESS", common.processSubscriptionRPC, { common.rpc.sub, param }) + common.runner.Step("RPC " .. common.rpc.on .. " ignored", common.sendOnVehicleData, { param, common.isNotExpected }) - common.Title("Postconditions") - common.Step("Stop SDL", common.postconditions) + common.runner.Title("Postconditions") + common.runner.Step("Stop SDL", common.postconditions) end diff --git a/test_scripts/API/VehicleData/OnVehicleData/003_OnVD_disallowed_after_PTU.lua b/test_scripts/API/VehicleData/OnVehicleData/003_OnVD_disallowed_after_PTU.lua index 026b0c7ece..9f5a7da4a5 100644 --- a/test_scripts/API/VehicleData/OnVehicleData/003_OnVD_disallowed_after_PTU.lua +++ b/test_scripts/API/VehicleData/OnVehicleData/003_OnVD_disallowed_after_PTU.lua @@ -27,6 +27,8 @@ local function getVDGroup(pDisallowedParam) if param ~= pDisallowedParam then table.insert(params, param) end table.insert(all_params, param) end + if #all_params == 0 then all_params = common.json.EMPTY_ARRAY end + if #params == 0 then params = common.json.EMPTY_ARRAY end return { rpcs = { [common.rpc.sub] = { @@ -49,20 +51,27 @@ local function policyTableUpdate(pDisallowedParam) common.policyTableUpdate(ptUpdate) end +local function getValue(pParam) + if pParam == "odometer" then return 1 end + return nil +end + --[[ Scenario ]] for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Title("Preconditions") - common.Step("Clean environment and update preloaded_pt file", common.preconditions, { getVDGroup(param) }) - common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - common.Step("Register App", common.registerApp) - common.Step("RPC " .. common.rpc.sub .. " SUCCESS", common.processSubscriptionRPC, { common.rpc.sub, param }) - common.Step("RPC " .. common.rpc.on .. " transferred", common.sendOnVehicleData, { param, common.isExpected }) + common.runner.Title("VD parameter: " .. param) + common.runner.Title("Preconditions") + common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) + common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.runner.Step("Register App", common.registerApp) + common.runner.Step("RPC " .. common.rpc.sub .. " SUCCESS", common.processSubscriptionRPC, { common.rpc.sub, param }) + common.runner.Step("RPC " .. common.rpc.on .. " transferred", common.sendOnVehicleData, + { param, common.isExpected, getValue(param) }) - common.Title("Test") - common.Step("PTU with disabling permissions for VD parameter", policyTableUpdate, { param }) - common.Step("RPC " .. common.rpc.on .. " ignored", common.sendOnVehicleData, { param, common.isNotExpected }) + common.runner.Title("Test") + common.runner.Step("PTU with disabling permissions for VD parameter", policyTableUpdate, { param }) + common.runner.Step("RPC " .. common.rpc.on .. " ignored", common.sendOnVehicleData, + { param, common.isNotExpected, getValue(param) }) - common.Title("Postconditions") - common.Step("Stop SDL", common.postconditions) + common.runner.Title("Postconditions") + common.runner.Step("Stop SDL", common.postconditions) end diff --git a/test_scripts/API/VehicleData/OnVehicleData/004_OnVD_with_invalid_data.lua b/test_scripts/API/VehicleData/OnVehicleData/004_OnVD_with_invalid_data.lua index 1d307c1d4f..7c3122dc85 100644 --- a/test_scripts/API/VehicleData/OnVehicleData/004_OnVD_with_invalid_data.lua +++ b/test_scripts/API/VehicleData/OnVehicleData/004_OnVD_with_invalid_data.lua @@ -17,24 +17,20 @@ --[[ Required Shared libraries ]] local common = require('test_scripts/API/VehicleData/common') +--[[ Local Constants ]] +local testTypes = { + common.testType.INVALID_TYPE +} + --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment and update preloaded_pt file", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) +common.runner.Step("Activate App", common.activateApp) -common.Title("Test") -for param, value in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.sub, common.processSubscriptionRPC, { common.rpc.sub, param }) - common.Step("RPC " .. common.rpc.on, common.sendOnVehicleData, - { param, common.isNotExpected, common.getInvalidData(value) }) -end -for param, value in common.spairs(common.getVDParams(false)) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.on, common.sendOnVehicleData, - { param, common.isNotExpected, common.getInvalidData(value) }) -end +common.runner.Title("Test") +common.runner.getTestsForOnVD(testTypes) -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/OnVehicleData/005_OnVD_App_is_not_subscribed.lua b/test_scripts/API/VehicleData/OnVehicleData/005_OnVD_App_is_not_subscribed.lua index c3c0352e56..a89dbeafa8 100644 --- a/test_scripts/API/VehicleData/OnVehicleData/005_OnVD_App_is_not_subscribed.lua +++ b/test_scripts/API/VehicleData/OnVehicleData/005_OnVD_App_is_not_subscribed.lua @@ -23,23 +23,23 @@ local common = require('test_scripts/API/VehicleData/common') --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment and update preloaded_pt file", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) -common.Title("Test") +common.runner.Title("Test") for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.sub, common.processSubscriptionRPC, { common.rpc.sub, param }) - common.Step("RPC " .. common.rpc.on, common.sendOnVehicleData, { param, common.isExpected }) - common.Step("RPC " .. common.rpc.unsub, common.processSubscriptionRPC, { common.rpc.unsub, param }) - common.Step("RPC " .. common.rpc.on, common.sendOnVehicleData, { param, common.isNotExpected }) + common.runner.Title("VD parameter: " .. param) + common.runner.Step("RPC " .. common.rpc.sub, common.processSubscriptionRPC, { common.rpc.sub, param }) + common.runner.Step("RPC " .. common.rpc.on, common.sendOnVehicleData, { param, common.isExpected }) + common.runner.Step("RPC " .. common.rpc.unsub, common.processSubscriptionRPC, { common.rpc.unsub, param }) + common.runner.Step("RPC " .. common.rpc.on, common.sendOnVehicleData, { param, common.isNotExpected }) end for param in common.spairs(common.getVDParams(false)) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.on, common.sendOnVehicleData, { param, common.isNotExpected }) + common.runner.Title("VD parameter: " .. param) + common.runner.Step("RPC " .. common.rpc.on, common.sendOnVehicleData, { param, common.isNotExpected }) end -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/OnVehicleData/006_OnVD_mandatory_parameters.lua b/test_scripts/API/VehicleData/OnVehicleData/006_OnVD_mandatory_parameters.lua index d94f6ed650..9458b93541 100644 --- a/test_scripts/API/VehicleData/OnVehicleData/006_OnVD_mandatory_parameters.lua +++ b/test_scripts/API/VehicleData/OnVehicleData/006_OnVD_mandatory_parameters.lua @@ -26,25 +26,21 @@ --[[ Required Shared libraries ]] local common = require('test_scripts/API/VehicleData/common') +--[[ Local Constants ]] +local testTypes = { + common.testType.MANDATORY_ONLY, + common.testType.MANDATORY_MISSING +} + --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("RAI", common.registerApp) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) +common.runner.Step("Activate App", common.activateApp) -common.Title("Test") -for param in pairs(common.mandatoryVD) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.sub .. " SUCCESS", common.processSubscriptionRPC, { common.rpc.sub, param }) - for caseName, value in pairs(common.getMandatoryOnlyCases(param)) do - common.Step("RPC " .. common.rpc.on .. " with " .. caseName .. " Transfered", common.sendOnVehicleData, - { param, common.isExpected, value }) - end - for caseName, value in pairs(common.getMandatoryMissingCases(param)) do - common.Step("RPC " .. common.rpc.on .. " with " .. caseName .. " Ignored", common.sendOnVehicleData, - { param, common.isNotExpected, value }) - end -end +common.runner.Title("Test") +common.runner.getTestsForOnVD(testTypes) -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/OnVehicleData/007_OnVD_min_max_boundary_values.lua b/test_scripts/API/VehicleData/OnVehicleData/007_OnVD_min_max_boundary_values.lua new file mode 100644 index 0000000000..c652cd5e7b --- /dev/null +++ b/test_scripts/API/VehicleData/OnVehicleData/007_OnVD_min_max_boundary_values.lua @@ -0,0 +1,44 @@ +---------------------------------------------------------------------------------------------------- +-- Description: Check that SDL processes OnVehicleData notification with parameter +-- Positive/Negative cases for boundary values for all VD parameters and sub-parameters +-- +-- Preconditions: +-- 1) SDL and HMI are started +-- 2) SubscribeVehicleData, OnVehicleData RPCs and parameter are allowed by policies +-- 3) App is registered +-- 4) App is subscribed to parameter data +-- +-- In case: +-- 1) HMI sends OnVehicleData notification with valid data for parameter to SDL +-- (closest lower/upper values to the defined boundary) +-- SDL does: +-- - a) transfer this notification to App +-- Exception: Notification for unsubscribable VD parameter is not transfered +-- 2) HMI sends OnVehicleData notification with invalid data for parameter to SDL +-- (closest lower/upper values to the defined boundary) +-- SDL does: +-- - a) not transfer this notification to App +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/VehicleData/common') + +--[[ Local Constants ]] +local testTypes = { + common.testType.LOWER_IN_BOUND, + common.testType.UPPER_IN_BOUND, + common.testType.LOWER_OUT_OF_BOUND, + common.testType.UPPER_OUT_OF_BOUND +} + +--[[ Scenario ]] +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) +common.runner.Step("Activate App", common.activateApp) + +common.runner.Title("Test") +common.runner.getTestsForOnVD(testTypes) + +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/OnVehicleData/008_OnVD_enum_and_bool_values.lua b/test_scripts/API/VehicleData/OnVehicleData/008_OnVD_enum_and_bool_values.lua new file mode 100644 index 0000000000..2cf71c44a9 --- /dev/null +++ b/test_scripts/API/VehicleData/OnVehicleData/008_OnVD_enum_and_bool_values.lua @@ -0,0 +1,38 @@ +---------------------------------------------------------------------------------------------------- +-- Description: Check that SDL processes OnVehicleData notification with parameter +-- Positive cases for all possible values for Enum and Boolean VD parameters and sub-parameters +-- +-- Preconditions: +-- 1) SDL and HMI are started +-- 2) SubscribeVehicleData, OnVehicleData RPCs and parameter are allowed by policies +-- 3) App is registered +-- 4) App is subscribed to parameter data +-- +-- In case: +-- 1) HMI sends valid OnVehicleData notification with parameter data to SDL +-- (iterate trough all possible enum and boolean values of applicable parameters) +-- SDL does: +-- - a) transfer this notification to App +-- Exception: Notification for unsubscribable VD parameter is not transfered +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/API/VehicleData/common') + +--[[ Local Constants ]] +local testTypes = { + common.testType.ENUM_ITEMS, + common.testType.BOOL_ITEMS +} + +--[[ Scenario ]] +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) +common.runner.Step("Activate App", common.activateApp) + +common.runner.Title("Test") +common.runner.getTestsForOnVD(testTypes) + +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/RefactorFuelInformation/001_GetVehicleData_with_one_param_in_fuelRange_structure.lua b/test_scripts/API/VehicleData/RefactorFuelInformation/001_GetVehicleData_with_one_param_in_fuelRange_structure.lua deleted file mode 100644 index 4d2f95791f..0000000000 --- a/test_scripts/API/VehicleData/RefactorFuelInformation/001_GetVehicleData_with_one_param_in_fuelRange_structure.lua +++ /dev/null @@ -1,103 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0256-Refactor-Fuel-Information-Related-Vehicle-Data.md --- --- Description: SDL successfully processes GetVehicleData response if 'fuelRange' structure contains one parameter. --- --- In case: --- 1) App sends GetVehicleData(fuelRange=true) request. --- SDL does: --- a) transfer this request to HMI. --- 2) HMI sends the 'fuelRange' structure with only one parameter in GetVehicleData response. --- SDL does: --- a) respond with resultCode:'SUCCESS' to app with only one parameter. ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/API/VehicleData/common') - ---[[ Local Variables ]] -local param = "fuelRange" - -local typeEnumValues = { - "GASOLINE", - "DIESEL", - "CNG", - "LPG", - "HYDROGEN", - "BATTERY" -} - -local levelStateEnumValues = { - "UNKNOWN", - "NORMAL", - "LOW", - "FAULT", - "ALERT", - "NOT_SUPPORTED" -} - -local capacityUnitEnumValues = { - "LITERS", - "KILOWATTHOURS", - "KILOGRAMS" -} - -local fuelRangeData = { - type = typeEnumValues[1], - range = 20, - level = 5, - levelState = levelStateEnumValues[1], - capacity = 1234, - capacityUnit = capacityUnitEnumValues[1] -} - -local fuelRangeDataMinValues = { - range = 0, - level = -6, - capacity = 0 -} - -local fuelRangeDataMaxValues = { - range = 10000, - level = 1000000, - capacity = 1000000 -} - -local maxArraySize = {} -for i = 1, 100 do - maxArraySize[i] = fuelRangeData -end - ---[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) -common.Step("Activate App", common.activateApp) - -common.Title("Test") -common.Title("VD parameter: " .. param) -for sub_param, value in common.spairs(fuelRangeDataMinValues) do - common.Step("RPC " .. common.rpc.get .. " minValue " .. sub_param .. "=" .. value, - common.getVehicleData, { param, { [1] = { [sub_param] = value } } }) -end -for sub_param, value in common.spairs(fuelRangeDataMaxValues) do - common.Step("RPC " .. common.rpc.get .. " maxValue " .. sub_param .. "=" .. value, - common.getVehicleData, { param, { [1] = { [sub_param] = value } } }) -end -for _, value in common.spairs(typeEnumValues) do - common.Step("RPC " .. common.rpc.get .. " enum value " .. "type" .. "=" .. value, - common.getVehicleData, { param, { [1] = { ["type"] = value } } }) -end -for _, value in common.spairs(levelStateEnumValues) do - common.Step("RPC " .. common.rpc.get .. " enum value " .. "levelState" .. "=" .. value, - common.getVehicleData, { param, { [1] = { ["levelState"] = value } } }) -end -for _, value in common.spairs(capacityUnitEnumValues) do - common.Step("RPC " .. common.rpc.get .. " enum value " .. "capacityUnit" .. "=" .. value, - common.getVehicleData, { param, { [1] = { ["capacityUnit"] = value } } }) -end -common.Step("RPC " .. common.rpc.get .. " max " .. param .. " array size", - common.getVehicleData, { param, maxArraySize }) - -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/RefactorFuelInformation/002_OnVehicleData_with_only_one_param_in_fuelRange_structure.lua b/test_scripts/API/VehicleData/RefactorFuelInformation/002_OnVehicleData_with_only_one_param_in_fuelRange_structure.lua deleted file mode 100644 index e0188d9be7..0000000000 --- a/test_scripts/API/VehicleData/RefactorFuelInformation/002_OnVehicleData_with_only_one_param_in_fuelRange_structure.lua +++ /dev/null @@ -1,103 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0256-Refactor-Fuel-Information-Related-Vehicle-Data.md --- --- Description: SDL transfers OnVehicleData notification to app if HMI sends it with only one parameter --- in 'fuelRange' structure. --- --- In case: --- 1) App is subscribed to 'fuelRange' data. --- 2) HMI sends valid OnVehicleData notification with only one parameter in 'fuelRange' structure. --- SDL does: --- a) process this notification and transfer it to mobile app. ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/API/VehicleData/common') - ---[[ Local Variables ]] -local param = "fuelRange" - -local typeEnumValues = { - "GASOLINE", - "DIESEL", - "CNG", - "LPG", - "HYDROGEN", - "BATTERY" -} - -local levelStateEnumValues = { - "UNKNOWN", - "NORMAL", - "LOW", - "FAULT", - "ALERT", - "NOT_SUPPORTED" -} - -local capacityUnitEnumValues = { - "LITERS", - "KILOWATTHOURS", - "KILOGRAMS" -} - -local fuelRangeData = { - type = typeEnumValues[1], - range = 20, - level = 5, - levelState = levelStateEnumValues[1], - capacity = 1234, - capacityUnit = capacityUnitEnumValues[1] -} - -local fuelRangeDataMinValues = { - range = 0, - level = -6, - capacity = 0 -} - -local fuelRangeDataMaxValues = { - range = 10000, - level = 1000000, - capacity = 1000000 -} - -local maxArraySize = {} -for i = 1, 100 do - maxArraySize[i] = fuelRangeData -end - ---[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) -common.Step("Activate App", common.activateApp) -common.Step("RPC " .. common.rpc.sub, common.processSubscriptionRPC, { common.rpc.sub, param }) - -common.Title("Test") -common.Title("VD parameter: " .. param) -for sub_param, value in common.spairs(fuelRangeDataMinValues) do - common.Step("RPC " .. common.rpc.on .. " minValue " .. sub_param .. "=" .. value, - common.sendOnVehicleData, { param, common.isExpected, { [1] = { [sub_param] = value } } }) -end -for sub_param, value in common.spairs(fuelRangeDataMaxValues) do - common.Step("RPC " .. common.rpc.on .. " maxValue " .. sub_param .. "=" .. value, - common.sendOnVehicleData, { param, common.isExpected, { [1] = { [sub_param] = value } } }) -end -for _, value in common.spairs(typeEnumValues) do - common.Step("RPC " .. common.rpc.on .. " enum value " .. "type" .. "=" .. value, - common.sendOnVehicleData, { param, common.isExpected, { [1] = { ["type"] = value } } }) -end -for _, value in common.spairs(levelStateEnumValues) do - common.Step("RPC " .. common.rpc.on .. " enum value " .. "levelState" .. "=" .. value, - common.sendOnVehicleData, { param, common.isExpected, { [1] = { ["levelState"] = value } } }) -end -for _, value in common.spairs(capacityUnitEnumValues) do - common.Step("RPC " .. common.rpc.on .. " enum value " .. "capacityUnit" .. "=" .. value, - common.sendOnVehicleData, { param, common.isExpected, { [1] = { ["capacityUnit"] = value } } }) -end -common.Step("RPC " .. common.rpc.on .. " max " .. param .. " array size", - common.sendOnVehicleData, { param, common.isExpected, maxArraySize }) - -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/StabilityControlsStatus/001_GetVehicleData_with_one_param_in_stabilityControlsStatus_structure.lua b/test_scripts/API/VehicleData/StabilityControlsStatus/001_GetVehicleData_with_one_param_in_stabilityControlsStatus_structure.lua deleted file mode 100644 index 8a7c1359f8..0000000000 --- a/test_scripts/API/VehicleData/StabilityControlsStatus/001_GetVehicleData_with_one_param_in_stabilityControlsStatus_structure.lua +++ /dev/null @@ -1,48 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Proposal: https://github.com/smartdevicelink/sdl_evolution/edit/master/proposals/0253-New-vehicle-data-StabilityControlsStatus.md --- --- Description: SDL successfully processes GetVehicleData response if 'stabilityControlsStatus' structure contains one parameter. --- --- In case: --- 1) App sends GetVehicleData(stabilityControlsStatus=true) request. --- SDL does: --- a) transfer this request to HMI. --- 2) HMI sends the 'stabilityControlsStatus' structure with only one parameter in GetVehicleData response. --- SDL does: --- a) respond with resultCode:'SUCCESS' to app with only one parameter. ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/API/VehicleData/common') - ---[[ Local Variables ]] -local param = "stabilityControlsStatus" - -local vehicleDataStatusEnumValues = { - "NO_DATA_EXISTS", - "OFF", - "ON" -} - -local stabilityControlsStatusData = { - escSystem = vehicleDataStatusEnumValues, - trailerSwayControl = vehicleDataStatusEnumValues -} - ---[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) -common.Step("Activate App", common.activateApp) - -common.Title("Test") -common.Title("VD parameter: " .. param) -for sub_param, data in common.spairs(stabilityControlsStatusData) do - for _, value in common.spairs(data) do - common.Step("RPC " .. common.rpc.get .. " param " .. sub_param .. "=" .. value, - common.getVehicleData, { param, { [sub_param] = value } }) - end -end - -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/StabilityControlsStatus/002_OnVehicleData_with_only_one_param_in_stabilityControlsStatus_structure.lua b/test_scripts/API/VehicleData/StabilityControlsStatus/002_OnVehicleData_with_only_one_param_in_stabilityControlsStatus_structure.lua deleted file mode 100644 index 1049d1ea2c..0000000000 --- a/test_scripts/API/VehicleData/StabilityControlsStatus/002_OnVehicleData_with_only_one_param_in_stabilityControlsStatus_structure.lua +++ /dev/null @@ -1,48 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Proposal: https://github.com/smartdevicelink/sdl_evolution/edit/master/proposals/0253-New-vehicle-data-StabilityControlsStatus.md --- --- Description: SDL transfers OnVehicleData notification to app if HMI sends it with only one parameter --- in 'stabilityControlsStatus' structure. --- --- In case: --- 1) App is subscribed to 'stabilityControlsStatus' data. --- 2) HMI sends valid OnVehicleData notification with only one parameter in 'stabilityControlsStatus' structure. --- SDL does: --- a) process this notification and transfer it to mobile app. ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/API/VehicleData/common') - ---[[ Local Variables ]] -local param = "stabilityControlsStatus" - -local vehicleDataStatusEnumValues = { - "NO_DATA_EXISTS", - "OFF", - "ON" -} - -local stabilityControlsStatusData = { - escSystem = vehicleDataStatusEnumValues, - trailerSwayControl = vehicleDataStatusEnumValues -} - ---[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) -common.Step("Activate App", common.activateApp) -common.Step("RPC " .. common.rpc.sub, common.processSubscriptionRPC, { common.rpc.sub, param }) - -common.Title("Test") -common.Title("VD parameter: " .. param) -for sub_param, data in common.spairs(stabilityControlsStatusData) do - for _, value in common.spairs(data) do - common.Step("RPC " .. common.rpc.on .. " param " .. sub_param .. "=" .. value, - common.sendOnVehicleData, { param, common.isExpected, { [sub_param] = value } }) - end -end - -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/SubscribeVehicleData/001_SubscribeVD_Success.lua b/test_scripts/API/VehicleData/SubscribeVehicleData/001_SubscribeVD_Success.lua index fcc2fdef1e..e9fb71508a 100644 --- a/test_scripts/API/VehicleData/SubscribeVehicleData/001_SubscribeVD_Success.lua +++ b/test_scripts/API/VehicleData/SubscribeVehicleData/001_SubscribeVD_Success.lua @@ -20,20 +20,20 @@ local common = require('test_scripts/API/VehicleData/common') --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment and update preloaded_pt file", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) -common.Title("Test") +common.runner.Title("Test") for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.sub, common.processSubscriptionRPC, { common.rpc.sub, param }) + common.runner.Title("VD parameter: " .. param) + common.runner.Step("RPC " .. common.rpc.sub, common.processSubscriptionRPC, { common.rpc.sub, param }) end for param in common.spairs(common.getVDParams(false)) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.sub, common.processRPCFailure, { common.rpc.sub, param, "INVALID_DATA" }) + common.runner.Title("VD parameter: " .. param) + common.runner.Step("RPC " .. common.rpc.sub, common.processRPCFailure, { common.rpc.sub, param, "INVALID_DATA" }) end -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/SubscribeVehicleData/002_SubscribeVD_disallowed.lua b/test_scripts/API/VehicleData/SubscribeVehicleData/002_SubscribeVD_disallowed.lua index 9ea599a173..1e66ae4dd8 100644 --- a/test_scripts/API/VehicleData/SubscribeVehicleData/002_SubscribeVD_disallowed.lua +++ b/test_scripts/API/VehicleData/SubscribeVehicleData/002_SubscribeVD_disallowed.lua @@ -37,15 +37,15 @@ end --[[ Scenario ]] for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Title("Preconditions") - common.Step("Clean environment and update preloaded_pt file", common.preconditions, { getVDGroup(param) }) - common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - common.Step("Register App", common.registerApp) + common.runner.Title("VD parameter: " .. param) + common.runner.Title("Preconditions") + common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions, { getVDGroup(param) }) + common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.runner.Step("Register App", common.registerApp) - common.Title("Test") - common.Step("RPC " .. common.rpc.sub .. " DISALLOWED", common.processRPCFailure, { common.rpc.sub, param, result }) + common.runner.Title("Test") + common.runner.Step("RPC " .. common.rpc.sub .. " DISALLOWED", common.processRPCFailure, { common.rpc.sub, param, result }) - common.Title("Postconditions") - common.Step("Stop SDL", common.postconditions) + common.runner.Title("Postconditions") + common.runner.Step("Stop SDL", common.postconditions) end diff --git a/test_scripts/API/VehicleData/SubscribeVehicleData/003_SubscribeVD_disallowed_after_PTU.lua b/test_scripts/API/VehicleData/SubscribeVehicleData/003_SubscribeVD_disallowed_after_PTU.lua index c08b91a799..f59619440f 100644 --- a/test_scripts/API/VehicleData/SubscribeVehicleData/003_SubscribeVD_disallowed_after_PTU.lua +++ b/test_scripts/API/VehicleData/SubscribeVehicleData/003_SubscribeVD_disallowed_after_PTU.lua @@ -33,6 +33,7 @@ local function getVDGroup(pDisallowedParam) for param in pairs(common.getVDParams(true)) do if param ~= pDisallowedParam then table.insert(params, param) end end + if #params == 0 then params = common.json.EMPTY_ARRAY end return { rpcs = { [common.rpc.sub] = { @@ -53,17 +54,17 @@ end --[[ Scenario ]] for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Title("Preconditions") - common.Step("Clean environment and update preloaded_pt file", common.preconditions) - common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - common.Step("Register App", common.registerApp) - common.Step("RPC " .. common.rpc.sub, common.processSubscriptionRPC, { common.rpc.sub, param }) + common.runner.Title("VD parameter: " .. param) + common.runner.Title("Preconditions") + common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) + common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.runner.Step("Register App", common.registerApp) + common.runner.Step("RPC " .. common.rpc.sub, common.processSubscriptionRPC, { common.rpc.sub, param }) - common.Title("Test") - common.Step("PTU with disabling permissions for VD parameter", policyTableUpdate, { param }) - common.Step("RPC " .. common.rpc.sub .. " DISALLOWED after PTU", common.processRPCFailure, { common.rpc.sub, result }) + common.runner.Title("Test") + common.runner.Step("PTU with disabling permissions for VD parameter", policyTableUpdate, { param }) + common.runner.Step("RPC " .. common.rpc.sub .. " DISALLOWED after PTU", common.processRPCFailure, { common.rpc.sub, result }) - common.Title("Postconditions") - common.Step("Stop SDL", common.postconditions) + common.runner.Title("Postconditions") + common.runner.Step("Stop SDL", common.postconditions) end diff --git a/test_scripts/API/VehicleData/SubscribeVehicleData/004_SubscribeVD_HMI_responds_with_invalid_data.lua b/test_scripts/API/VehicleData/SubscribeVehicleData/004_SubscribeVD_HMI_responds_with_invalid_data.lua index fbe67d0bb6..70c3b0eec9 100644 --- a/test_scripts/API/VehicleData/SubscribeVehicleData/004_SubscribeVD_HMI_responds_with_invalid_data.lua +++ b/test_scripts/API/VehicleData/SubscribeVehicleData/004_SubscribeVD_HMI_responds_with_invalid_data.lua @@ -28,19 +28,19 @@ local function getInvalidData(pParam) end --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment and update preloaded_pt file", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) -common.Title("Test") +common.runner.Title("Test") for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) + common.runner.Title("VD parameter: " .. param) for caseName, value in common.spairs(getInvalidData(param)) do - common.Step("RPC " .. common.rpc.sub .. " invalid HMI response " .. caseName, + common.runner.Step("RPC " .. common.rpc.sub .. " invalid HMI response " .. caseName, common.processRPCgenericError, { common.rpc.sub, param, value }) end end -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/SubscribeVehicleData/005_SubscribeVD_App_sends_invalid_request.lua b/test_scripts/API/VehicleData/SubscribeVehicleData/005_SubscribeVD_App_sends_invalid_request.lua index 048472a607..7fc34f4c0a 100644 --- a/test_scripts/API/VehicleData/SubscribeVehicleData/005_SubscribeVD_App_sends_invalid_request.lua +++ b/test_scripts/API/VehicleData/SubscribeVehicleData/005_SubscribeVD_App_sends_invalid_request.lua @@ -21,17 +21,17 @@ local result = "INVALID_DATA" local value = 123 --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment and update preloaded_pt file", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) -common.Title("Test") +common.runner.Title("Test") for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.sub .. " invalid App request", + common.runner.Title("VD parameter: " .. param) + common.runner.Step("RPC " .. common.rpc.sub .. " invalid App request", common.processRPCFailure, { common.rpc.sub, param, result, value }) end -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/SubscribeVehicleData/006_SubscribeVD_2nd_request_IGNORED.lua b/test_scripts/API/VehicleData/SubscribeVehicleData/006_SubscribeVD_2nd_request_IGNORED.lua index 940582692a..181b64597d 100644 --- a/test_scripts/API/VehicleData/SubscribeVehicleData/006_SubscribeVD_2nd_request_IGNORED.lua +++ b/test_scripts/API/VehicleData/SubscribeVehicleData/006_SubscribeVD_2nd_request_IGNORED.lua @@ -24,26 +24,26 @@ local common = require('test_scripts/API/VehicleData/common') local result = "IGNORED" --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment and update preloaded_pt file", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) -common.Title("Test") +common.runner.Title("Test") for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Step("RPC 1 " .. common.rpc.sub .. " SUCCESS", common.processSubscriptionRPC, + common.runner.Title("VD parameter: " .. param) + common.runner.Step("RPC 1 " .. common.rpc.sub .. " SUCCESS", common.processSubscriptionRPC, { common.rpc.sub, param }) - common.Step("RPC 2 " .. common.rpc.sub .. " IGNORED", common.processRPCFailure, + common.runner.Step("RPC 2 " .. common.rpc.sub .. " IGNORED", common.processRPCFailure, { common.rpc.sub, param, result }) end for param in common.spairs(common.getVDParams(false)) do - common.Title("VD parameter: " .. param) - common.Step("RPC 1 " .. common.rpc.sub .. " INVALID_DATA", common.processRPCFailure, + common.runner.Title("VD parameter: " .. param) + common.runner.Step("RPC 1 " .. common.rpc.sub .. " INVALID_DATA", common.processRPCFailure, { common.rpc.sub, param, "INVALID_DATA" }) - common.Step("RPC 2 " .. common.rpc.sub .. " INVALID_DATA", common.processRPCFailure, + common.runner.Step("RPC 2 " .. common.rpc.sub .. " INVALID_DATA", common.processRPCFailure, { common.rpc.sub, param, "INVALID_DATA" }) end -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/SubscribeVehicleData/007_SubscribeVD_for_2_apps.lua b/test_scripts/API/VehicleData/SubscribeVehicleData/007_SubscribeVD_for_2_apps.lua index eea30c4ab0..ac38906f9f 100644 --- a/test_scripts/API/VehicleData/SubscribeVehicleData/007_SubscribeVD_for_2_apps.lua +++ b/test_scripts/API/VehicleData/SubscribeVehicleData/007_SubscribeVD_for_2_apps.lua @@ -24,26 +24,26 @@ local common = require('test_scripts/API/VehicleData/common') --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment and update preloaded_pt file", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App_1", common.registerApp, { common.app[1] }) -common.Step("Register App_2", common.registerAppWOPTU, { common.app[2] }) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App_1", common.registerApp, { common.app[1] }) +common.runner.Step("Register App_2", common.registerAppWOPTU, { common.app[2] }) -common.Title("Test") +common.runner.Title("Test") for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Step("Absence of OnVehicleData for both apps", + common.runner.Title("VD parameter: " .. param) + common.runner.Step("Absence of OnVehicleData for both apps", common.sendOnVehicleDataTwoApps, { param, common.isNotExpected, common.isNotExpected }) - common.Step("RPC " .. common.rpc.sub .. " for App_1", + common.runner.Step("RPC " .. common.rpc.sub .. " for App_1", common.processSubscriptionRPC, { common.rpc.sub, param, common.app[1], common.isExpectedSubscription }) - common.Step("OnVehicleData for App_1", + common.runner.Step("OnVehicleData for App_1", common.sendOnVehicleDataTwoApps, { param, common.isExpected, common.isNotExpected }) - common.Step("RPC " .. common.rpc.sub .. " for App_2", + common.runner.Step("RPC " .. common.rpc.sub .. " for App_2", common.processSubscriptionRPC, { common.rpc.sub, param, common.app[2], common.isNotExpectedSubscription }) - common.Step("OnVehicleData for both apps", + common.runner.Step("OnVehicleData for both apps", common.sendOnVehicleDataTwoApps, { param, common.isExpected, common.isExpected }) end -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/SubscribeVehicleData/008_SubscribeVD_HMI_responds_with_not_success_codes.lua b/test_scripts/API/VehicleData/SubscribeVehicleData/008_SubscribeVD_HMI_responds_with_not_success_codes.lua index 72da15e82f..94744e5fcf 100644 --- a/test_scripts/API/VehicleData/SubscribeVehicleData/008_SubscribeVD_HMI_responds_with_not_success_codes.lua +++ b/test_scripts/API/VehicleData/SubscribeVehicleData/008_SubscribeVD_HMI_responds_with_not_success_codes.lua @@ -44,19 +44,19 @@ local function subscribeToVDwithUnsuccessCodeForVD(pParam, pCode) end --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment and update preloaded_pt file", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) -common.Title("Test") +common.runner.Title("Test") for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) + common.runner.Title("VD parameter: " .. param) for _, code in common.spairs(resultCodes) do - common.Step("RPC " .. common.rpc.sub .. " resultCode " .. code, + common.runner.Step("RPC " .. common.rpc.sub .. " resultCode " .. code, subscribeToVDwithUnsuccessCodeForVD, { param, code }) end end -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/SubscribeVehicleData/009_SubscribeVD_Resumption_of_subscription_Unexpected_Disconnect.lua b/test_scripts/API/VehicleData/SubscribeVehicleData/009_SubscribeVD_Resumption_of_subscription_Unexpected_Disconnect.lua index a54c17aa8e..a58f0404cd 100644 --- a/test_scripts/API/VehicleData/SubscribeVehicleData/009_SubscribeVD_Resumption_of_subscription_Unexpected_Disconnect.lua +++ b/test_scripts/API/VehicleData/SubscribeVehicleData/009_SubscribeVD_Resumption_of_subscription_Unexpected_Disconnect.lua @@ -19,21 +19,21 @@ local common = require('test_scripts/API/VehicleData/common') --[[ Scenario ]] for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Title("Preconditions") - common.Step("Clean environment and update preloaded_pt file", common.preconditions) - common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - common.Step("Register App", common.registerApp) - common.Step("App subscribes to VD param", common.processSubscriptionRPC, + common.runner.Title("VD parameter: " .. param) + common.runner.Title("Preconditions") + common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) + common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.runner.Step("Register App", common.registerApp) + common.runner.Step("App subscribes to VD param", common.processSubscriptionRPC, { common.rpc.sub, param }) - common.Title("Test") - common.Step("Unexpected disconnect", common.unexpectedDisconnect, { param }) - common.Step("Connect mobile", common.connectMobile) - common.Step("Re-register App resumption data", common.registerAppWithResumption, + common.runner.Title("Test") + common.runner.Step("Unexpected disconnect", common.unexpectedDisconnect, { param }) + common.runner.Step("Connect mobile", common.connectMobile) + common.runner.Step("Re-register App resumption data", common.registerAppWithResumption, { param, common.app[1], common.isExpectedSubscription }) - common.Step("OnVehicleData with VD param", common.sendOnVehicleData, { param, common.isExpected }) + common.runner.Step("OnVehicleData with VD param", common.sendOnVehicleData, { param, common.isExpected }) - common.Title("Postconditions") - common.Step("Stop SDL", common.postconditions) + common.runner.Title("Postconditions") + common.runner.Step("Stop SDL", common.postconditions) end diff --git a/test_scripts/API/VehicleData/SubscribeVehicleData/010_SubscribeVD_Resumption_of_subscription_Ignition_Cycle.lua b/test_scripts/API/VehicleData/SubscribeVehicleData/010_SubscribeVD_Resumption_of_subscription_Ignition_Cycle.lua index b2405c8c2a..08d1e81f7d 100644 --- a/test_scripts/API/VehicleData/SubscribeVehicleData/010_SubscribeVD_Resumption_of_subscription_Ignition_Cycle.lua +++ b/test_scripts/API/VehicleData/SubscribeVehicleData/010_SubscribeVD_Resumption_of_subscription_Ignition_Cycle.lua @@ -19,21 +19,21 @@ local common = require('test_scripts/API/VehicleData/common') --[[ Scenario ]] for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Title("Preconditions") - common.Step("Clean environment and update preloaded_pt file", common.preconditions) - common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - common.Step("Register App", common.registerApp) - common.Step("App subscribes to VD param", common.processSubscriptionRPC, + common.runner.Title("VD parameter: " .. param) + common.runner.Title("Preconditions") + common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) + common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.runner.Step("Register App", common.registerApp) + common.runner.Step("App subscribes to VD param", common.processSubscriptionRPC, { common.rpc.sub, param }) - common.Title("Test") - common.Step("Ignition Off", common.ignitionOff, { param }) - common.Step("Ignition On", common.start) - common.Step("Re-register App resumption data", common.registerAppWithResumption, + common.runner.Title("Test") + common.runner.Step("Ignition Off", common.ignitionOff, { param }) + common.runner.Step("Ignition On", common.start) + common.runner.Step("Re-register App resumption data", common.registerAppWithResumption, { param, common.app[1], common.isExpectedSubscription }) - common.Step("OnVehicleData with VD param", common.sendOnVehicleData, { param, common.isExpected }) + common.runner.Step("OnVehicleData with VD param", common.sendOnVehicleData, { param, common.isExpected }) - common.Title("Postconditions") - common.Step("Stop SDL", common.postconditions) + common.runner.Title("Postconditions") + common.runner.Step("Stop SDL", common.postconditions) end diff --git a/test_scripts/API/VehicleData/SubscribeVehicleData/011_SubscribeVD_Resumption_of_subscription_for_2_apps_Unexpected_Disconnect.lua b/test_scripts/API/VehicleData/SubscribeVehicleData/011_SubscribeVD_Resumption_of_subscription_for_2_apps_Unexpected_Disconnect.lua index accea4b3f1..30bc7ff389 100644 --- a/test_scripts/API/VehicleData/SubscribeVehicleData/011_SubscribeVD_Resumption_of_subscription_for_2_apps_Unexpected_Disconnect.lua +++ b/test_scripts/API/VehicleData/SubscribeVehicleData/011_SubscribeVD_Resumption_of_subscription_for_2_apps_Unexpected_Disconnect.lua @@ -26,27 +26,27 @@ local common = require('test_scripts/API/VehicleData/common') --[[ Scenario ]] for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Title("Preconditions") - common.Step("Clean environment", common.preconditions) - common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - common.Step("Register App1", common.registerAppWOPTU, { common.app[1] }) - common.Step("Register App2", common.registerAppWOPTU, { common.app[2] }) - common.Step("App1 subscribes to VD param", common.processSubscriptionRPC, + common.runner.Title("VD parameter: " .. param) + common.runner.Title("Preconditions") + common.runner.Step("Clean environment", common.preconditions) + common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.runner.Step("Register App1", common.registerAppWOPTU, { common.app[1] }) + common.runner.Step("Register App2", common.registerAppWOPTU, { common.app[2] }) + common.runner.Step("App1 subscribes to VD param", common.processSubscriptionRPC, { common.rpc.sub, param, common.app[1], common.isExpectedSubscription }) - common.Step("App2 subscribes to VD param", common.processSubscriptionRPC, + common.runner.Step("App2 subscribes to VD param", common.processSubscriptionRPC, { common.rpc.sub, param, common.app[2], common.isNotExpectedSubscription }) - common.Title("Test") - common.Step("Unexpected disconnect", common.unexpectedDisconnect, { param }) - common.Step("Connect mobile", common.connectMobile) - common.Step("Re-register App1 resumption data", common.registerAppWithResumption, + common.runner.Title("Test") + common.runner.Step("Unexpected disconnect", common.unexpectedDisconnect, { param }) + common.runner.Step("Connect mobile", common.connectMobile) + common.runner.Step("Re-register App1 resumption data", common.registerAppWithResumption, { param, common.app[1], common.isExpectedSubscription }) - common.Step("Re-register App2 resumption data", common.registerAppWithResumption, + common.runner.Step("Re-register App2 resumption data", common.registerAppWithResumption, { param, common.app[2], common.isNotExpectedSubscription }) - common.Step("OnVehicleData with VD param for both apps", common.sendOnVehicleDataTwoApps, + common.runner.Step("OnVehicleData with VD param for both apps", common.sendOnVehicleDataTwoApps, { param, common.isExpected, common.isExpected }) - common.Title("Postconditions") - common.Step("Stop SDL", common.postconditions) + common.runner.Title("Postconditions") + common.runner.Step("Stop SDL", common.postconditions) end diff --git a/test_scripts/API/VehicleData/SubscribeVehicleData/012_SubscribeVD_Resumption_of_subscription_for_2_apps_Ignition_Cycle.lua b/test_scripts/API/VehicleData/SubscribeVehicleData/012_SubscribeVD_Resumption_of_subscription_for_2_apps_Ignition_Cycle.lua index 6e78671a7e..a341ec3d21 100644 --- a/test_scripts/API/VehicleData/SubscribeVehicleData/012_SubscribeVD_Resumption_of_subscription_for_2_apps_Ignition_Cycle.lua +++ b/test_scripts/API/VehicleData/SubscribeVehicleData/012_SubscribeVD_Resumption_of_subscription_for_2_apps_Ignition_Cycle.lua @@ -26,27 +26,27 @@ local common = require('test_scripts/API/VehicleData/common') --[[ Scenario ]] for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Title("Preconditions") - common.Step("Clean environment", common.preconditions) - common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - common.Step("Register App1", common.registerAppWOPTU, { common.app[1] }) - common.Step("Register App2", common.registerAppWOPTU, { common.app[2] }) - common.Step("App1 subscribes to VD param", common.processSubscriptionRPC, + common.runner.Title("VD parameter: " .. param) + common.runner.Title("Preconditions") + common.runner.Step("Clean environment", common.preconditions) + common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.runner.Step("Register App1", common.registerAppWOPTU, { common.app[1] }) + common.runner.Step("Register App2", common.registerAppWOPTU, { common.app[2] }) + common.runner.Step("App1 subscribes to VD param", common.processSubscriptionRPC, { common.rpc.sub, param, common.app[1], common.isExpectedSubscription }) - common.Step("App2 subscribes to VD param", common.processSubscriptionRPC, + common.runner.Step("App2 subscribes to VD param", common.processSubscriptionRPC, { common.rpc.sub, param, common.app[2], common.isNotExpectedSubscription }) - common.Title("Test") - common.Step("Ignition Off", common.ignitionOff, { param }) - common.Step("Ignition On", common.start) - common.Step("Re-register App1 resumption data", common.registerAppWithResumption, + common.runner.Title("Test") + common.runner.Step("Ignition Off", common.ignitionOff, { param }) + common.runner.Step("Ignition On", common.start) + common.runner.Step("Re-register App1 resumption data", common.registerAppWithResumption, { param, common.app[1], common.isExpectedSubscription }) - common.Step("Re-register App2 resumption data", common.registerAppWithResumption, + common.runner.Step("Re-register App2 resumption data", common.registerAppWithResumption, { param, common.app[2], common.isNotExpectedSubscription }) - common.Step("OnVehicleData with VD param for both apps", common.sendOnVehicleDataTwoApps, + common.runner.Step("OnVehicleData with VD param for both apps", common.sendOnVehicleDataTwoApps, { param, common.isExpected, common.isExpected }) - common.Title("Postconditions") - common.Step("Stop SDL", common.postconditions) + common.runner.Title("Postconditions") + common.runner.Step("Stop SDL", common.postconditions) end diff --git a/test_scripts/API/VehicleData/UnsubscribeVehicleData/001_UnsubscribeVD_Success.lua b/test_scripts/API/VehicleData/UnsubscribeVehicleData/001_UnsubscribeVD_Success.lua index c22145513b..002620b5cd 100644 --- a/test_scripts/API/VehicleData/UnsubscribeVehicleData/001_UnsubscribeVD_Success.lua +++ b/test_scripts/API/VehicleData/UnsubscribeVehicleData/001_UnsubscribeVD_Success.lua @@ -21,23 +21,23 @@ local common = require('test_scripts/API/VehicleData/common') --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment and update preloaded_pt file", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) -common.Title("Test") +common.runner.Title("Test") for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.sub, common.processSubscriptionRPC, { common.rpc.sub, param }) - common.Step("RPC " .. common.rpc.unsub, common.processSubscriptionRPC, { common.rpc.unsub, param }) + common.runner.Title("VD parameter: " .. param) + common.runner.Step("RPC " .. common.rpc.sub, common.processSubscriptionRPC, { common.rpc.sub, param }) + common.runner.Step("RPC " .. common.rpc.unsub, common.processSubscriptionRPC, { common.rpc.unsub, param }) end for param in common.spairs(common.getVDParams(false)) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.unsub .. " INVALID_DATA", common.processRPCFailure, + common.runner.Title("VD parameter: " .. param) + common.runner.Step("RPC " .. common.rpc.unsub .. " INVALID_DATA", common.processRPCFailure, { common.rpc.unsub, param, "INVALID_DATA" }) end -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/UnsubscribeVehicleData/002_UnsubscribeVD_disallowed.lua b/test_scripts/API/VehicleData/UnsubscribeVehicleData/002_UnsubscribeVD_disallowed.lua index 98325f166b..63adcdff49 100644 --- a/test_scripts/API/VehicleData/UnsubscribeVehicleData/002_UnsubscribeVD_disallowed.lua +++ b/test_scripts/API/VehicleData/UnsubscribeVehicleData/002_UnsubscribeVD_disallowed.lua @@ -43,18 +43,18 @@ end --[[ Scenario ]] for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Title("Preconditions") - common.Step("Clean environment and update preloaded_pt file", common.preconditions, { getVDGroup(param) }) - common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - common.Step("Register App", common.registerApp) + common.runner.Title("VD parameter: " .. param) + common.runner.Title("Preconditions") + common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions, { getVDGroup(param) }) + common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.runner.Step("Register App", common.registerApp) - common.Title("Test") - common.Step("RPC " .. common.rpc.sub .. " SUCCESS", common.processSubscriptionRPC, + common.runner.Title("Test") + common.runner.Step("RPC " .. common.rpc.sub .. " SUCCESS", common.processSubscriptionRPC, { common.rpc.sub, param }) - common.Step("RPC " .. common.rpc.unsub .. " DISALLOWED", common.processRPCFailure, + common.runner.Step("RPC " .. common.rpc.unsub .. " DISALLOWED", common.processRPCFailure, { common.rpc.unsub, param, result }) - common.Title("Postconditions") - common.Step("Stop SDL", common.postconditions) + common.runner.Title("Postconditions") + common.runner.Step("Stop SDL", common.postconditions) end diff --git a/test_scripts/API/VehicleData/UnsubscribeVehicleData/003_UnsubscribeVD_disallowed_after_PTU.lua b/test_scripts/API/VehicleData/UnsubscribeVehicleData/003_UnsubscribeVD_disallowed_after_PTU.lua index 7868af5c9c..c9d2af127f 100644 --- a/test_scripts/API/VehicleData/UnsubscribeVehicleData/003_UnsubscribeVD_disallowed_after_PTU.lua +++ b/test_scripts/API/VehicleData/UnsubscribeVehicleData/003_UnsubscribeVD_disallowed_after_PTU.lua @@ -36,6 +36,8 @@ local function getVDGroup(pDisallowedParam) if param ~= pDisallowedParam then table.insert(params, param) end table.insert(all_params, param) end + if #all_params == 0 then all_params = common.json.EMPTY_ARRAY end + if #params == 0 then params = common.json.EMPTY_ARRAY end return { rpcs = { [common.rpc.sub] = { @@ -60,23 +62,23 @@ end --[[ Scenario ]] for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Title("Preconditions") - common.Step("Clean environment and update preloaded_pt file", common.preconditions) - common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - common.Step("Register App", common.registerApp) - common.Step("RPC " .. common.rpc.sub .. " SUCCESS", common.processSubscriptionRPC, + common.runner.Title("VD parameter: " .. param) + common.runner.Title("Preconditions") + common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) + common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.runner.Step("Register App", common.registerApp) + common.runner.Step("RPC " .. common.rpc.sub .. " SUCCESS", common.processSubscriptionRPC, { common.rpc.sub, param }) - common.Step("RPC " .. common.rpc.unsub .. " SUCCESS", common.processSubscriptionRPC, + common.runner.Step("RPC " .. common.rpc.unsub .. " SUCCESS", common.processSubscriptionRPC, { common.rpc.unsub, param }) - common.Title("Test") - common.Step("PTU with disabling permissions for VD parameter", policyTableUpdate, { param }) - common.Step("RPC " .. common.rpc.sub .. " SUCCESS", common.processSubscriptionRPC, + common.runner.Title("Test") + common.runner.Step("PTU with disabling permissions for VD parameter", policyTableUpdate, { param }) + common.runner.Step("RPC " .. common.rpc.sub .. " SUCCESS", common.processSubscriptionRPC, { common.rpc.sub, param }) - common.Step("RPC " .. common.rpc.unsub .. " DISALLOWED after PTU", common.processRPCFailure, + common.runner.Step("RPC " .. common.rpc.unsub .. " DISALLOWED after PTU", common.processRPCFailure, { common.rpc.unsub, result }) - common.Title("Postconditions") - common.Step("Stop SDL", common.postconditions) + common.runner.Title("Postconditions") + common.runner.Step("Stop SDL", common.postconditions) end diff --git a/test_scripts/API/VehicleData/UnsubscribeVehicleData/004_UnsubscribeVD_HMI_responds_with_invalid_data.lua b/test_scripts/API/VehicleData/UnsubscribeVehicleData/004_UnsubscribeVD_HMI_responds_with_invalid_data.lua index 74d095fe0e..c679bbbb04 100644 --- a/test_scripts/API/VehicleData/UnsubscribeVehicleData/004_UnsubscribeVD_HMI_responds_with_invalid_data.lua +++ b/test_scripts/API/VehicleData/UnsubscribeVehicleData/004_UnsubscribeVD_HMI_responds_with_invalid_data.lua @@ -28,21 +28,21 @@ local function getInvalidData(pParam) end --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment and update preloaded_pt file", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) -common.Title("Test") +common.runner.Title("Test") for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.sub .. " SUCCESS", common.processSubscriptionRPC, + common.runner.Title("VD parameter: " .. param) + common.runner.Step("RPC " .. common.rpc.sub .. " SUCCESS", common.processSubscriptionRPC, { common.rpc.sub, param }) for caseName, value in common.spairs(getInvalidData(param)) do - common.Step("RPC " .. common.rpc.unsub .. " invalid HMI response " .. caseName, + common.runner.Step("RPC " .. common.rpc.unsub .. " invalid HMI response " .. caseName, common.processRPCgenericError, { common.rpc.unsub, param, value }) end end -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/UnsubscribeVehicleData/005_UnsubscribeVD_App_sends_invalid_request.lua b/test_scripts/API/VehicleData/UnsubscribeVehicleData/005_UnsubscribeVD_App_sends_invalid_request.lua index dab8821c18..f356e68339 100644 --- a/test_scripts/API/VehicleData/UnsubscribeVehicleData/005_UnsubscribeVD_App_sends_invalid_request.lua +++ b/test_scripts/API/VehicleData/UnsubscribeVehicleData/005_UnsubscribeVD_App_sends_invalid_request.lua @@ -21,19 +21,19 @@ local result = "INVALID_DATA" local value = 123 --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment and update preloaded_pt file", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) -common.Title("Test") +common.runner.Title("Test") for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.sub .. " SUCCESS", common.processSubscriptionRPC, + common.runner.Title("VD parameter: " .. param) + common.runner.Step("RPC " .. common.rpc.sub .. " SUCCESS", common.processSubscriptionRPC, { common.rpc.sub, param }) - common.Step("RPC " .. common.rpc.unsub .. " invalid App request", + common.runner.Step("RPC " .. common.rpc.unsub .. " invalid App request", common.processRPCFailure, { common.rpc.unsub, param, result, value }) end -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/UnsubscribeVehicleData/006_UnsubscribeVD_2nd_request_IGNORED.lua b/test_scripts/API/VehicleData/UnsubscribeVehicleData/006_UnsubscribeVD_2nd_request_IGNORED.lua index 5c5555731e..7938b72e8e 100644 --- a/test_scripts/API/VehicleData/UnsubscribeVehicleData/006_UnsubscribeVD_2nd_request_IGNORED.lua +++ b/test_scripts/API/VehicleData/UnsubscribeVehicleData/006_UnsubscribeVD_2nd_request_IGNORED.lua @@ -25,28 +25,28 @@ local common = require('test_scripts/API/VehicleData/common') local result = "IGNORED" --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment and update preloaded_pt file", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) -common.Title("Test") +common.runner.Title("Test") for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.sub .. " SUCCESS", common.processSubscriptionRPC, + common.runner.Title("VD parameter: " .. param) + common.runner.Step("RPC " .. common.rpc.sub .. " SUCCESS", common.processSubscriptionRPC, { common.rpc.sub, param }) - common.Step("RPC 1 " .. common.rpc.unsub .. " SUCCESS", common.processSubscriptionRPC, + common.runner.Step("RPC 1 " .. common.rpc.unsub .. " SUCCESS", common.processSubscriptionRPC, { common.rpc.unsub, param }) - common.Step("RPC 2 " .. common.rpc.unsub .. " IGNORED", common.processRPCFailure, + common.runner.Step("RPC 2 " .. common.rpc.unsub .. " IGNORED", common.processRPCFailure, { common.rpc.unsub, param, result }) end for param in common.spairs(common.getVDParams(false)) do - common.Title("VD parameter: " .. param) - common.Step("RPC 1 " .. common.rpc.unsub .. " INVALID_DATA", common.processRPCFailure, + common.runner.Title("VD parameter: " .. param) + common.runner.Step("RPC 1 " .. common.rpc.unsub .. " INVALID_DATA", common.processRPCFailure, { common.rpc.unsub, param, "INVALID_DATA" }) - common.Step("RPC 2 " .. common.rpc.unsub .. " INVALID_DATA", common.processRPCFailure, + common.runner.Step("RPC 2 " .. common.rpc.unsub .. " INVALID_DATA", common.processRPCFailure, { common.rpc.unsub, param, "INVALID_DATA" }) end -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/UnsubscribeVehicleData/007_UnsubscribeVD_for_2_apps.lua b/test_scripts/API/VehicleData/UnsubscribeVehicleData/007_UnsubscribeVD_for_2_apps.lua index be8d8bca1b..a6f6acb7cc 100644 --- a/test_scripts/API/VehicleData/UnsubscribeVehicleData/007_UnsubscribeVD_for_2_apps.lua +++ b/test_scripts/API/VehicleData/UnsubscribeVehicleData/007_UnsubscribeVD_for_2_apps.lua @@ -24,30 +24,30 @@ local common = require('test_scripts/API/VehicleData/common') --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment and update preloaded_pt file", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App_1", common.registerApp, { common.app[1] }) -common.Step("Register App_2", common.registerAppWOPTU, { common.app[2] }) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App_1", common.registerApp, { common.app[1] }) +common.runner.Step("Register App_2", common.registerAppWOPTU, { common.app[2] }) -common.Title("Test") +common.runner.Title("Test") for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.sub .. " for App_1", + common.runner.Title("VD parameter: " .. param) + common.runner.Step("RPC " .. common.rpc.sub .. " for App_1", common.processSubscriptionRPC, { common.rpc.sub, param, common.app[1], common.isExpectedSubscription }) - common.Step("RPC " .. common.rpc.sub .. " for App_2", + common.runner.Step("RPC " .. common.rpc.sub .. " for App_2", common.processSubscriptionRPC, { common.rpc.sub, param, common.app[2], common.isNotExpectedSubscription }) - common.Step("OnVehicleData for both apps", + common.runner.Step("OnVehicleData for both apps", common.sendOnVehicleDataTwoApps, { param, common.isExpected, common.isExpected }) - common.Step("RPC " .. common.rpc.unsub .. " for App_1", + common.runner.Step("RPC " .. common.rpc.unsub .. " for App_1", common.processSubscriptionRPC, { common.rpc.unsub, param, common.app[1], common.isNotExpectedSubscription }) - common.Step("Absence of OnVehicleData for App_1", + common.runner.Step("Absence of OnVehicleData for App_1", common.sendOnVehicleDataTwoApps, { param, common.isNotExpected, common.isExpected }) - common.Step("RPC " .. common.rpc.unsub .. " for App_2", + common.runner.Step("RPC " .. common.rpc.unsub .. " for App_2", common.processSubscriptionRPC, { common.rpc.unsub, param, common.app[2], common.isExpectedSubscription }) - common.Step("Absence of OnVehicleData for both apps", + common.runner.Step("Absence of OnVehicleData for both apps", common.sendOnVehicleDataTwoApps, { param, common.isNotExpected, common.isNotExpected }) end -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/UnsubscribeVehicleData/008_UnsubscribeVD_HMI_responds_with_not_success_codes.lua b/test_scripts/API/VehicleData/UnsubscribeVehicleData/008_UnsubscribeVD_HMI_responds_with_not_success_codes.lua index 8c0cce9673..ea4caf8f38 100644 --- a/test_scripts/API/VehicleData/UnsubscribeVehicleData/008_UnsubscribeVD_HMI_responds_with_not_success_codes.lua +++ b/test_scripts/API/VehicleData/UnsubscribeVehicleData/008_UnsubscribeVD_HMI_responds_with_not_success_codes.lua @@ -45,20 +45,20 @@ local function unsubscribeVDwithUnsuccessCodeForVD(pParam, pCode) end --[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment and update preloaded_pt file", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) +common.runner.Title("Preconditions") +common.runner.Step("Clean environment and update preloaded_pt file", common.preconditions) +common.runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.runner.Step("Register App", common.registerApp) -common.Title("Test") +common.runner.Title("Test") for param in common.spairs(common.getVDParams(true)) do - common.Title("VD parameter: " .. param) - common.Step("RPC " .. common.rpc.sub, common.processSubscriptionRPC, { common.rpc.sub, param }) + common.runner.Title("VD parameter: " .. param) + common.runner.Step("RPC " .. common.rpc.sub, common.processSubscriptionRPC, { common.rpc.sub, param }) for _, code in common.spairs(resultCodes) do - common.Step("RPC " .. common.rpc.unsub .. " resultCode " .. code, + common.runner.Step("RPC " .. common.rpc.unsub .. " resultCode " .. code, unsubscribeVDwithUnsuccessCodeForVD, { param, code }) end end -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) +common.runner.Title("Postconditions") +common.runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/WindowStatus/001_GetVehicleData_boundary_values_windowStatus_structure.lua b/test_scripts/API/VehicleData/WindowStatus/001_GetVehicleData_boundary_values_windowStatus_structure.lua deleted file mode 100644 index 4fc2c7814a..0000000000 --- a/test_scripts/API/VehicleData/WindowStatus/001_GetVehicleData_boundary_values_windowStatus_structure.lua +++ /dev/null @@ -1,78 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Proposal:https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0261-New-vehicle-data-WindowStatus.md --- --- Description: SDL processes GetVehicleData if HMI responds with valid values --- for 'windowStatus' structure sub-parameters: --- location: { col, row, level, colspan, rowspan, levelspan } --- state: { approximatePosition, deviation } --- --- In case: --- 1) App sends GetVehicleData request with windowStatus=true to the SDL and this request is allowed by Policies. --- 2) SDL transfers this request to HMI. --- 3) HMI sends GetVehicleData response with 'windowStatus' structure with valid values sub-parameters --- SDL does: --- a) process this response and transfer it to mobile app. ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/API/VehicleData/common') - ---[[ Local Variables ]] -local param = "windowStatus" -local windowStatusData = { - { - location = { col = 0, row = 0, level = 0, colspan = 1, rowspan = 1, levelspan = 1 }, - state = { - approximatePosition = 50, - deviation = 50 - } - } -} - -local windowStatusDataMinValues = { - location = { col = -1, row = -1, level = -1, colspan = 1, rowspan = 1, levelspan = 1 }, - state = { approximatePosition = 0, deviation = 0 } -} - -local windowStatusDataMaxValues = { - location = { col = 100, row = 100, level = 100, colspan = 100, rowspan = 100, levelspan = 100 }, - state = { approximatePosition = 100, deviation = 100 } -} - -local maxArraySize = {} -for i = 1, 100 do - maxArraySize[i] = windowStatusData[1] -end - ---[[ Local Functions ]] -local function getCustomData(pSubParam, pParam, pValue) - local params = common.cloneTable(windowStatusData) - params[1][pParam][pSubParam] = pValue - return params -end - ---[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) -common.Step("Activate App", common.activateApp) - -common.Title("Test") -common.Title("VD parameter: " .. param) -for k in common.spairs(windowStatusData[1].state) do - common.Step("RPC " .. common.rpc.get .. " minValue " .. k .. "=" .. windowStatusDataMinValues.state[k], - common.getVehicleData, { param, getCustomData(k, "state", windowStatusDataMinValues.state[k]) }) - common.Step("RPC " .. common.rpc.get .. " maxValue " .. k .. "=" .. windowStatusDataMaxValues.state[k], - common.getVehicleData, { param, getCustomData(k, "state", windowStatusDataMaxValues.state[k]) }) -end -for k in common.spairs(windowStatusData[1].location) do - common.Step("RPC " .. common.rpc.get .. " minValue " .. k .. "=" .. windowStatusDataMinValues.location[k], - common.getVehicleData, { param, getCustomData(k, "location", windowStatusDataMinValues.location[k]) }) - common.Step("RPC " .. common.rpc.get .. " maxValue " .. k .. "=" .. windowStatusDataMaxValues.location[k], - common.getVehicleData, { param, getCustomData(k, "location", windowStatusDataMaxValues.location[k]) }) -end -common.Step("RPC " .. common.rpc.get .. " max windowStatus array size", - common.getVehicleData, { param, maxArraySize }) - -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/WindowStatus/002_OnVehicleData_boundary_values_windowStatus_structure.lua b/test_scripts/API/VehicleData/WindowStatus/002_OnVehicleData_boundary_values_windowStatus_structure.lua deleted file mode 100644 index 13003fe5b2..0000000000 --- a/test_scripts/API/VehicleData/WindowStatus/002_OnVehicleData_boundary_values_windowStatus_structure.lua +++ /dev/null @@ -1,78 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Proposal:https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0261-New-vehicle-data-WindowStatus.md --- --- Description: SDL transfers OnVehicleData notification to subscribed app if HMI sends this notification --- with valid values of 'windowStatus' structure sub-parameters: --- location: { col, row, level, colspan, rowspan, levelspan } --- state: { approximatePosition, deviation } --- --- In case: --- 1) App is subscribed to 'windowStatus' data. --- 2) HMI sends the 'windowStatus' structure with valid values for sub-parameters. --- SDL does: --- a) process this notification and transfer it to mobile app. ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/API/VehicleData/common') - ---[[ Local Variables ]] -local param = "windowStatus" -local windowStatusData = { - { - location = { col = 0, row = 0, level = 0, colspan = 1, rowspan = 1, levelspan = 1 }, - state = { - approximatePosition = 50, - deviation = 50 - } - } -} - -local windowStatusDataMinValues = { - location = { col = -1, row = -1, level = -1, colspan = 1, rowspan = 1, levelspan = 1 }, - state = { approximatePosition = 0, deviation = 0 } -} - -local windowStatusDataMaxValues = { - location = { col = 100, row = 100, level = 100, colspan = 100, rowspan = 100, levelspan = 100 }, - state = { approximatePosition = 100, deviation = 100 } -} - -local maxArraySize = {} -for i = 1, 100 do - maxArraySize[i] = windowStatusData[1] -end - ---[[ Local Functions ]] -local function getCustomData(pSubParam, pParam, pValue) - local params = common.cloneTable(windowStatusData) - params[1][pParam][pSubParam] = pValue - return params -end - ---[[ Scenario ]] -common.Title("Preconditions") -common.Step("Clean environment", common.preconditions) -common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -common.Step("Register App", common.registerApp) -common.Step("Activate App", common.activateApp) -common.Step("RPC " .. common.rpc.sub, common.processSubscriptionRPC, { common.rpc.sub, param }) - -common.Title("Test") -common.Title("VD parameter: " .. param) -for k in common.spairs(windowStatusData[1].state) do - common.Step("RPC " .. common.rpc.on .. " minValue " .. k .. "=" .. windowStatusDataMinValues.state[k], - common.sendOnVehicleData, { param, common.isExpected, getCustomData(k, "state", windowStatusDataMinValues.state[k]) }) - common.Step("RPC " .. common.rpc.on .. " maxValue " .. k .. "=" .. windowStatusDataMaxValues.state[k], - common.sendOnVehicleData, { param, common.isExpected, getCustomData(k, "state", windowStatusDataMaxValues.state[k]) }) -end -for k in common.spairs(windowStatusData[1].location) do - common.Step("RPC " .. common.rpc.on .. " minValue " .. k .. "=" .. windowStatusDataMinValues.location[k], - common.sendOnVehicleData, { param, common.isExpected, getCustomData(k, "location", windowStatusDataMinValues.location[k]) }) - common.Step("RPC " .. common.rpc.on .. " maxValue " .. k .. "=" .. windowStatusDataMaxValues.location[k], - common.sendOnVehicleData, { param, common.isExpected, getCustomData(k, "location", windowStatusDataMaxValues.location[k]) }) -end -common.Step("RPC " .. common.rpc.on .. " max windowStatus array size", - common.sendOnVehicleData, { param, common.isExpected, maxArraySize }) - -common.Title("Postconditions") -common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/API/VehicleData/common.lua b/test_scripts/API/VehicleData/common.lua index 31566c5d1c..d60eff6141 100644 --- a/test_scripts/API/VehicleData/common.lua +++ b/test_scripts/API/VehicleData/common.lua @@ -7,25 +7,21 @@ local runner = require('user_modules/script_runner') local utils = require("user_modules/utils") local json = require("modules/json") local SDL = require("SDL") -local apiLoader = require("modules/api_loader") local color = require("user_modules/consts").color +local api = require("user_modules/api/APIHelper") +local gen = require("user_modules/api/APITestDataGenerator") --[[ General configuration parameters ]] runner.testSettings.isSelfIncluded = false config.defaultProtocolVersion = 2 +config.zeroOccurrenceTimeout = 1000 ---[[ Local Variables ]] +--[[ Module ]] local m = {} -local hashId = {} -local api = { - hmi = apiLoader.init("data/HMI_API.xml"), - mob = apiLoader.init("data/MOBILE_API.xml") -} --[[ Common Proxy Functions ]] do - m.Title = runner.Title - m.Step = runner.Step + m.runner = runner m.getPreloadedPT = actions.sdl.getPreloadedPT m.setPreloadedPT = actions.sdl.setPreloadedPT m.registerApp = actions.app.register @@ -46,7 +42,7 @@ do m.json = actions.json end ---[[ Common Variables ]] +--[[ Common Constants and Variables ]] m.rpc = { get = "GetVehicleData", sub = "SubscribeVehicleData", @@ -54,6 +50,13 @@ m.rpc = { on = "OnVehicleData" } +m.rpcHMIMap = { + [m.rpc.get] = "VehicleInfo.GetVehicleData", + [m.rpc.sub] = "VehicleInfo.SubscribeVehicleData", + [m.rpc.unsub] = "VehicleInfo.UnsubscribeVehicleData", + [m.rpc.on] = "VehicleInfo.OnVehicleData" +} + m.vd = { vin = "", gps = "VEHICLEDATA_GPS", @@ -88,7 +91,9 @@ m.vd = { handsOffSteering = "VEHICLEDATA_HANDSOFFSTEERING", stabilityControlsStatus = "VEHICLEDATA_STABILITYCONTROLSSTATUS", gearStatus = "VEHICLEDATA_GEARSTATUS", - windowStatus = "VEHICLEDATA_WINDOWSTATUS" + windowStatus = "VEHICLEDATA_WINDOWSTATUS", + seatOccupancy = "VEHICLEDATA_SEATOCCUPANCY", + climateData = "VEHICLEDATA_CLIMATEDATA" } m.operator = { @@ -100,185 +105,138 @@ m.app = { [1] = 1, [2] = 2 } + m.isExpected = 1 m.isNotExpected = 0 m.isExpectedSubscription = true m.isNotExpectedSubscription = false ---[[ API Functions ]] +m.testType = { + VALID_RANDOM_ALL = 1, -- Positive: cases for VD parameters where all possible sub-parameters of hierarchy + -- are defined with valid random values + VALID_RANDOM_SUB = 2, -- Positive: cases for struct VD parameters and sub-parameters where only one sub-parameter + -- of hierarchy is defined with valid random value (mandatory also included) + LOWER_IN_BOUND = 3, -- Positive: cases for VD parameters and sub-parameters where only one sub-parameter + -- of hierarchy is defined with min valid value (mandatory also included) + UPPER_IN_BOUND = 4, -- Positive: cases for VD parameters and sub-parameters where only one sub-parameter + -- of hierarchy is defined with max valid value (mandatory also included) + LOWER_OUT_OF_BOUND = 5, -- Negative: cases for VD parameters and sub-parameters where only one sub-parameter + -- of hierarchy is defined with nearest invalid min value + UPPER_OUT_OF_BOUND = 6, -- Negative: cases for VD parameters and sub-parameters where only one sub-parameter + -- of hierarchy is defined with nearest invalid max value + INVALID_TYPE = 7, -- Negative: cases for VD parameters and sub-parameters with invalid type value defined + -- for one of them + ENUM_ITEMS = 8, -- Positive: cases for enum VD parameters and sub-parameters with all possible enum values + -- defined + BOOL_ITEMS = 9, -- Positive: cases for boolean VD parameters and sub-parameters with 'true' and 'false' + -- values defined + PARAM_VERSION = 10, -- Positive/Negative: cases for VD parameters with version defined + -- + MANDATORY_ONLY = 11, -- Positive: cases for struct VD parameters and sub-parameters + -- where only mandatory sub-parameters are defined with valid random values + MANDATORY_MISSING = 12 -- Negative: cases for struct VD parameters and sub-parameters + -- where only mandatory sub-parameters are defined and one of them is missing +} -math.randomseed(os.clock()) +m.isMandatory = { + YES = true, -- only mandatory + NO = false, -- only optional + ALL = 3 -- both mandatory and optional +} ---[[ @split: Split input string by '.' into a few sub-strings ---! @parameters: ---! pStr: input string ---! @return: table with sub-strings ---]] -local function split(pStr) - local result = {} - for match in (pStr.."."):gmatch("(.-)%.") do - if string.len(match) > 0 then table.insert(result, match) end - end - return result -end +m.isArray = { + YES = true, -- only array + NO = false, -- only non-array + ALL = 3 -- both array and non-array +} ---[[ @getParamValues: Generate VD parameter values bases on restrictions in API --- Function iterates through all structs recursively ---! @parameters: ---! pParams: table with parameters ---! pCmnSchema: table with data representation of 'Common' interface ---! @return: table with VD parameters and values +m.isVersion = { + YES = true, -- only with version + NO = false, -- only without version + ALL = 3 -- both with and without version +} + +--[[ Local Constants and Variables ]] +local hashId = {} +local isSubscribed = {} +local rpc +local rpcType +local testType +local paramName +local boundValueTypeMap = { + [m.testType.UPPER_IN_BOUND] = gen.valueType.UPPER_IN_BOUND, + [m.testType.LOWER_IN_BOUND] = gen.valueType.LOWER_IN_BOUND, + [m.testType.UPPER_OUT_OF_BOUND] = gen.valueType.UPPER_OUT_OF_BOUND, + [m.testType.LOWER_OUT_OF_BOUND] = gen.valueType.LOWER_OUT_OF_BOUND +} +local isRestricted = false + +--[[ Common Functions ]] + +--[[ @restrictAvailableVDParams: Restrict VD parameters for test by only ones defined in 'VD_PARAMS' environment variable +--! @parameters: none +--! @return: none --]] -function m.getParamValues(pParams, pCmnSchema) - local function getTypeValue(pData) - local itype = split(pData.type)[2] - local function getSimpleValue() - local tp = pData.type - local min = 1 - local max = 30 - -- set min/max restrictions - if tp == "Float" or tp == "Integer" then - if pData.minvalue ~= nil then min = pData.minvalue end - if pData.maxvalue ~= nil then max = pData.maxvalue end - end - if tp == "String" then - if pData.minlength ~= nil then min = pData.minlength end - if pData.maxlength ~= nil then max = pData.maxlength end - end - -- generate random value - if tp == "Boolean" then - return math.random(0, 1) == 1 - end - if tp == "Float" then - return tonumber(string.format('%.02f', math.random() + math.random(min, max-1))) - end - if tp == "Integer" then - return math.random(min, max) - end - if tp == "String" then - local length = math.random(min, max) - local res = "" - for _ = 1, length do - res = res .. string.char(math.random(97, 122)) -- [a-z] characters - end - return res - end - end - local function getEnumValue() - local data = {} - for k in m.spairs(pCmnSchema.enum[itype]) do - table.insert(data, k) +local function restrictAvailableVDParams() + local extVDParams = os.getenv("VD_PARAMS") + local checkedExtVDParams = {} + if extVDParams ~= nil then + m.cprint(color.magenta, "Environment variable 'VD_PARAMS': " .. extVDParams) + for _, p in pairs(utils.splitString(extVDParams, ",")) do + if m.vd[p] ~= nil then + isRestricted = true + table.insert(checkedExtVDParams, p) + else + m.cprint(color.magenta, "Unknown VD parameter:", p) end - return data[math.random(1, #data)] - end - local function getStructValue() - return m.getParamValues(pCmnSchema.struct[itype].param, pCmnSchema) - end - if pCmnSchema.struct[itype] ~= nil then - return getStructValue() - elseif pCmnSchema.enum[itype] ~= nil then - return getEnumValue() - else - return getSimpleValue() end end - local function getArrayTypeValue(pData) - local min = 1 - local max = 5 - if pData.minsize ~= nil and pData.minsize > min then min = pData.minsize end - if pData.maxsize ~= nil and pData.maxsize < max then max = pData.maxsize end - local numOfItems = math.random(min, max) - local out = {} - for _ = 1, numOfItems do - table.insert(out, getTypeValue(pData, pCmnSchema)) + if #checkedExtVDParams > 0 then + for k in pairs(m.vd) do + if not utils.isTableContains(checkedExtVDParams, k) then + m.vd[k] = nil + end end - return out - end - local out = {} - for k, v in pairs(pParams) do - if v.array == false then - out[k] = getTypeValue(v) - else - out[k] = getArrayTypeValue(v) + local checkedExtVDParamsToPrint = "" + for id, p in pairs(checkedExtVDParams) do + checkedExtVDParamsToPrint = checkedExtVDParamsToPrint .. p + if id ~= #checkedExtVDParams then checkedExtVDParamsToPrint = checkedExtVDParamsToPrint .. ", " end end + m.cprint(color.magenta, "Testing VD parameters restricted to: " .. checkedExtVDParamsToPrint) + else + m.cprint(color.magenta, "Testing VD parameters are not restricted") end - return out end ---[[ @getParamValuesFromAPI: Generate VD parameter values bases on restrictions in API --- This is a wrapper for 'm.getParamValues()' function ---! @parameters: ---! @return: table with VD parameters and values +restrictAvailableVDParams() + +--[[ @getAvailableVDParams: Return VD parameters available for processing +--! @parameters: none +--! @return: table with VD parameters --]] -local function getParamValuesFromAPI() - local viSchema = api.hmi.interface["VehicleInfo"] - local cmnSchema = api.hmi.interface["Common"] - local params = viSchema.type.response.functions.GetVehicleData.param - local paramValues = m.getParamValues(params, cmnSchema) +local function getAvailableVDParams() + local graph = api.getGraph(api.apiType.MOBILE, api.eventType.REQUEST, m.rpc.get) + local vdParams = {} + for _, data in pairs(graph) do + if data.parentId == nil then vdParams[data.name] = true end + end -- print not defined in API parameters for k in pairs(m.vd) do - if paramValues[k] == nil then + if vdParams[k] == nil then m.cprint(color.magenta, "Not found in API VD parameter:", k) end end -- remove disabled parameters - for k in pairs(paramValues) do + for k in pairs(vdParams) do if m.vd[k] == nil then - paramValues[k] = nil - m.cprint(color.magenta, "Disabled VD parameter:", k) + vdParams[k] = nil + if not isRestricted then m.cprint(color.magenta, "Disabled VD parameter:", k) end end end - return paramValues -end - -m.vdValues = getParamValuesFromAPI() - ---[[ @getMandatoryParamsFromAPI: Return VD parameters and values which has mandatory sub-parameters defined in API ---! @parameters: ---! @return: table with VD parameters and values ---]] -local function getMandatoryParamsFromAPI() - local out = {} - local viSchema = api.hmi.interface["VehicleInfo"] - local cmnSchema = api.hmi.interface["Common"] - local params = viSchema.type.response.functions.GetVehicleData.param - for k, v in pairs(params) do - local iface = split(v.type)[1] - local itype = split(v.type)[2] - if iface == "Common" then - if cmnSchema.struct[itype] ~= nil then - for k2, v2 in pairs(cmnSchema.struct[itype].param) do - if v2.mandatory == "true" and m.vd[k] then - if out[k] == nil then out[k] = { sub = {}, array = false } end - if v.array == "true" then out[k].array = true end - table.insert(out[k].sub, k2) - end - end - end - end - end - return out + return vdParams end -m.mandatoryVD = getMandatoryParamsFromAPI() - ---[[ @getVersioningParamsFromAPI: Return VD parameters and values which has version defined in API ---! @parameters: ---! @return: table with VD parameters and values ---]] -local function getVersioningParamsFromAPI() - local out = {} - local schema = api.mob.interface[next(api.mob.interface)] - local params = schema.type.request.functions.GetVehicleData.param - for k, v in pairs(params) do - if v.since ~= nil and m.vd[k] and v.deprecated ~= "true" then out[k] = v.since end - end - return out -end - -m.versioningVD = getVersioningParamsFromAPI() - ---[[ Common Functions ]] +local vdParams = getAvailableVDParams() --[[ @updatePreloadedPTFile: Update preloaded file with additional permissions --! @parameters: @@ -304,6 +262,9 @@ local function updatePreloadedPTFile(pGroup) } end end + for _, data in pairs(pGroup.rpcs) do + if #data.parameters == 0 then data.parameters = json.EMPTY_ARRAY end + end pt.policy_table.functional_groupings["VDGroup"] = pGroup pt.policy_table.app_policies["default"].groups = { "Base-4", "VDGroup" } pt.policy_table.functional_groupings["DataConsent-2"].rpcs = json.null @@ -339,64 +300,27 @@ function m.getHashId(pAppId) return hashId[pAppId] end ---[[ @getVDParams: Return VD parameters and values ---! @parameters: ---! pIsSubscribable: true if parameter is available for subscription, otherwise - false ---! @return: table with VD parameters and values ---]] -function m.getVDParams(pIsSubscribable) - if pIsSubscribable == nil then return m.vdValues end - local out = {} - for param in pairs(m.vd) do - if pIsSubscribable == (m.vd[param] ~= "") then out[param] = m.vdValues[param] end - end - return out -end - ---[[ @getMandatoryOnlyCases: Return cases for VD parameter where only mandatory sub-parameters are defined +--[[ @isSubscribable: Check whether VD parameter is subscribable +--! E.g. it's not possible to subscribe to 'vin' VD parameter --! @parameters: --! pParam: name of the VD parameter ---! @return: table with test cases where key is name of test case and value is VD parameter with value +--! @return: true if it's possible to subscribe to VD parameter, otherwise - false --]] -function m.getMandatoryOnlyCases(pParam) - local out = {} - local value = utils.cloneTable(m.vdValues[pParam]) - local mnd = m.mandatoryVD[pParam] -- get information about mandatory sub-parameters - local to_upd = value -- 'to_upd' variable allows to handle non-array and array cases by the same logic - if mnd.array then -- in both cases 'to_upd' is a table with sub-parameters - value = { value[1] } -- in case of non-array it equals to param value - to_upd = value[1] -- in case of array it equals to 1st item of param value - end - -- iterate through all sub-parameters and remove all optional - for k in pairs(to_upd) do - if not utils.isTableContains(mnd.sub, k) then - to_upd[k] = nil - end - end - out["mandatory"] = value - return out +function m.isSubscribable(pParam) + if m.vd[pParam] ~= "" then return true end + return false end ---[[ @getMandatoryMissingCases: Return cases for VD parameter where one mandatory sub-parameter is missing +--[[ @getVDParams: Return VD parameters and values --! @parameters: ---! pParam: name of the VD parameter ---! @return: table with test cases where key is name of test case and value is VD parameter with value +--! pIsSubscribable: true if parameter is available for subscription, otherwise - false +--! @return: table with VD parameters and values --]] -function m.getMandatoryMissingCases(pParam) +function m.getVDParams(pIsSubscribable) + if pIsSubscribable == nil then return vdParams end local out = {} - local mnd = m.mandatoryVD[pParam] -- get information about mandatory sub-parameters - -- iterate through all mandatory sub-parameters and remove one of them for each case - for _, k in pairs(mnd.sub) do - local value = utils.cloneTable(m.vdValues[pParam]) - local to_upd = value - if mnd.array then - value = { value[1] } - to_upd = value[1] - end - for j in pairs(to_upd) do - if j == k then to_upd[k] = nil end - end - out["missing_" .. k] = value + for param in pairs(m.vd) do + if pIsSubscribable == m.isSubscribable(param) then out[param] = true end end return out end @@ -449,23 +373,6 @@ function m.processRPCgenericError(pRPC, pParam, pValue) m.getMobileSession():ExpectResponse(cid, { success = false, resultCode = "GENERIC_ERROR" }) end ---[[ @getInvalidData: Return invalid value bases on valid one ---! @parameters: ---! pData: valid value ---! @return: invalid value ---]] -function m.getInvalidData(pData) - if type(pData) == "boolean" then return 123 end - if type(pData) == "number" then return true end - if type(pData) == "string" then return false end - if type(pData) == "table" then - for k, v in pairs(pData) do - pData[k] = m.getInvalidData(v) - end - return pData - end -end - --[[ @processSubscriptionRPC: Processing SubscribeVehicleData and UnsubscribeVehicleData RPCs --! @parameters: --! pRPC: RPC for mobile request @@ -495,10 +402,11 @@ function m.processSubscriptionRPC(pRPC, pParam, pAppId, isRequestOnHMIExpected) end m.getMobileSession(pAppId):ExpectResponse(cid, { success = true, resultCode = "SUCCESS", [responseParam] = response }) - m.getMobileSession(pAppId):ExpectNotification("OnHashChange") + local ret = m.getMobileSession(pAppId):ExpectNotification("OnHashChange") :Do(function(_, data) m.setHashId(data.payload.hashID, pAppId) end) + return ret end --[[ @sendOnVehicleData: Processing OnVehicleData RPC @@ -621,9 +529,9 @@ end --]] function m.setAppVersion(pParamVersion, pOperator) m.cprint(color.magenta, "Param version:", pParamVersion) - local major = tonumber(split(pParamVersion)[1]) or 0 - local minor = tonumber(split(pParamVersion)[2]) or 0 - local patch = tonumber(split(pParamVersion)[3]) or 0 + local major = tonumber(utils.splitString(pParamVersion, ".")[1]) or 0 + local minor = tonumber(utils.splitString(pParamVersion, ".")[2]) or 0 + local patch = tonumber(utils.splitString(pParamVersion, ".")[3]) or 0 local ver = (major*100 + minor*10 + patch) + pOperator if ver < 450 then ver = 450 end ver = tostring(ver) @@ -636,4 +544,778 @@ function m.setAppVersion(pParamVersion, pOperator) actions.app.getParams().syncMsgVersion.patchVersion = patch end +--[[ @getKeyByValue: Get key from table by defined value +--! @parameters: +--! pTbl: table for lookup +--! pValue: value for lookup +--! @return: key +--]] +function m.getKeyByValue(pTbl, pValue) + for k, v in pairs(pTbl) do + if v == pValue then return k end + end + return nil +end + +--[[ Params Generator Functions ]]------------------------------------------------------------------ + +--[[ @getParamsValidDataTestForRequest: Provide parameters for processing valid sequence for 'GetVehicleData' request +--! @parameters: +--! pGraph: graph with structure of parameters +--! @return: table with parameters +--]] +local function getParamsValidDataTestForRequest(pGraph) + local request = { [paramName] = true } + local hmiResponse = gen.getParamValues(pGraph) + local mobileResponse = utils.cloneTable(hmiResponse) + mobileResponse.success = true + mobileResponse.resultCode = "SUCCESS" + local params = { + mobile = { + name = rpc, + request = request, + response = mobileResponse + }, + hmi = { + name = m.rpcHMIMap[rpc], + request = request, + response = hmiResponse + } + } + return params +end + +--[[ @getParamsInvalidDataTestForRequest: Provide parameters for processing invalid sequence for 'GetVehicleData' request +--! @parameters: +--! pGraph: graph with structure of parameters +--! @return: table with parameters +--]] +local function getParamsInvalidDataTestForRequest(pGraph) + local request = { [paramName] = true } + local hmiResponse = gen.getParamValues(pGraph) + local params = { + mobile = { + name = rpc, + request = request, + response = { success = false, resultCode = "GENERIC_ERROR" } + }, + hmi = { + name = m.rpcHMIMap[rpc], + request = request, + response = hmiResponse + } + } + return params +end + +--[[ @getParamsAnyDataTestForNotification: Provide parameters for processing any sequence for 'OnVehicleData' notification +--! @parameters: +--! pGraph: graph with structure of parameters +--! @return: table with parameters +--]] +local function getParamsAnyDataTestForNotification(pGraph) + local notification = gen.getParamValues(pGraph) + local params = { + mobile = { + name = rpc, + notification = { [paramName] = notification[paramName] } + }, + hmi = { + name = m.rpcHMIMap[rpc], + notification = { [paramName] = notification[paramName] } + } + } + return params +end + +local getParamsFuncMap = { + VALID = { + [api.eventType.RESPONSE] = getParamsValidDataTestForRequest, + [api.eventType.NOTIFICATION] = getParamsAnyDataTestForNotification + }, + INVALID = { + [api.eventType.RESPONSE] = getParamsInvalidDataTestForRequest, + [api.eventType.NOTIFICATION] = getParamsAnyDataTestForNotification + } +} + +--[[ Test Cases Generator Function ]]--------------------------------------------------------------- + +--[[ @createTestCases: Generate test cases depends on API structure of VD parameter and various options +--! @parameters: +--! pAPIType: type of the API, e.g. 'mobile' or 'hmi' +--! pEventType: type of the event, e.g. 'request', 'response' or 'notification' +--! pFuncName: name of the API function, e.g. 'GetVehicleData' +--! pIsMandatory: defines how mandatory parameters is going to be handled (see 'm.isMandatory') +--! pIsArray: defines how array parameters is going to be handled (see 'm.isArray') +--! pIsVersion: defines how parameters with version defined is going to be handled (see 'm.isVersion') +--! pDataTypes: list of data types included into processing, e.g. 'api.dataType.INTEGER.type' +--! @return: table with test cases +--]] +local function createTestCases(pAPIType, pEventType, pFuncName, pIsMandatory, pIsArray, pIsVersion, pDataTypes) + + --[[ + Build a graph object which is a flattened list representation of all parameters defined in a particular API function. + It includes all hierarchy of parameters and sub-parameters. E.g.: + root-level 0 - bodyInformation + child-level 1 - roofStatuses + child-level 2 - location + child-level 3 - rowspan + It's a 'key:value' list, where + - 'key' is a unique integer ID for the parameter (or sub-parameter) + - 'value' is a table of properties for the parameter, such as: + - parentId - ID of the parent for this parameter (or nil for root-level parameters) + - name - name of the parameter + - , such as 'type', 'array', 'mandatory', 'since' etc. copied from API + --]] + local graph = api.getGraph(pAPIType, pEventType, pFuncName) + + --[[ @getParents: Get table with all parents for parameter defined by pId + --! @parameters: + --! pGraph: graph with all parameters + --! pId: parameter identifier + --! @return: table with parent parameters identifiers + --]] + local function getParents(pGraph, pId) + local out = {} + pId = pGraph[pId].parentId + while pId do + out[pId] = true + pId = pGraph[pId].parentId + end + return out + end + + --[[ @getMandatoryNeighbors: Get table with mandatory neighbors for parameters defined by pId and pParentIds + --! @parameters: + --! pGraph: graph with all parameters + --! pId: parameter identifier + --! pParentIds: table with parent parameters identifiers + --! @return: table with mandatory neighbors parameters identifiers + --]] + local function getMandatoryNeighbors(pGraph, pId, pParentIds) + local parentIds = utils.cloneTable(pParentIds) + parentIds[pId] = true + local out = {} + for p in pairs(parentIds) do + for k, v in pairs(pGraph) do + if v.parentId == pGraph[p].parentId and v.mandatory and p ~= k then + out[k] = true + end + end + end + return out + end + + --[[ @getMandatoryChildren: Get table with mandatory children for parameter defined by pId + --! @parameters: + --! pGraph: graph with all parameters + --! pId: parameter identifier + --! pChildrenIds: output table with mandatory children parameters identifiers + --! @return: table with mandatory children parameters identifiers + --]] + local function getMandatoryChildren(pGraph, pId, pChildrenIds) + for k, v in pairs(pGraph) do + if v.parentId == pId and v.mandatory then + pChildrenIds[k] = true + getMandatoryChildren(pGraph, k, pChildrenIds) + end + end + return pChildrenIds + end + + --[[ @getTCParamsIds: Merge all parameters identifiers required for the test case into one table + --! @parameters: + --! pId: parameter identifier + --! ...: all tables with parameters identifiers + --! @return: table with merged parameters identifiers + --]] + local function getTCParamsIds(pId, ...) + local ids = {} + ids[pId] = true + for _, arg in pairs({...}) do + if type(arg) == "table" then + for p in pairs(arg) do + ids[p] = true + end + end + end + return ids + end + + --[[ @getUpdatedParams: Filter graph by defined parameters + --! @parameters: + --! pGraph: initial graph with all parameters + --! pParamIds: table with parameters identifiers + --! @return: filtered graph + --]] + local function getUpdatedParams(pGraph, pParamIds) + for k in pairs(pGraph) do + if not pParamIds[k] then + pGraph[k] = nil + end + end + return pGraph + end + + --[[ @getTestCases: Get test cases from graph + --! @parameters: + --! pGraph: graph with all parameters + --! @return: table with test cases + --]] + local function getTestCases(pGraph) + --[[ @getMandatoryCondition: Check mandatory condition for the parameter + --! @parameters: + --! pMandatory - 'mandatory' attribute of the parameter defined in API + --! @return: true if mandatory condition is met + --]] + local function getMandatoryCondition(pMandatory) + if pIsMandatory == m.isMandatory.ALL then return true + else return pIsMandatory == pMandatory + end + end + --[[ @getArrayCondition: Check array condition for the parameter + --! @parameters: + --! pArray - 'array' attribute of the parameter defined in API + --! @return: true if array condition is met + --]] + local function getArrayCondition(pArray) + if pIsArray == m.isArray.ALL then return true + else return pIsArray == pArray + end + end + --[[ @getVersionCondition: Check version condition for the parameter + --! @parameters: + --! pSince - 'since' attribute of the parameter defined in API + --! pDeprecated - 'deprecated' attribute of the parameter defined in API + --! @return: true if version condition is met + --]] + local function getVersionCondition(pSince, pDeprecated) + if pIsVersion == m.isVersion.ALL then return true end + if pSince ~= nil and pDeprecated ~= true then return true end + return false + end + --[[ @getTypeCondition: Check type condition for the parameter + --! @parameters: + --! pType - type of the parameter, see 'APIHelper.dataType' table + --! @return: true if type condition is met + --]] + local function getTypeCondition(pType) + if pDataTypes == nil or #pDataTypes == 0 then return true + elseif utils.isTableContains(pDataTypes, pType) then return true + else return false + end + end + --[[ @getParamNameCondition: Check name condition for the parameter + --! @parameters: + --! pName - name of the parameter + --! @return: true if name condition is met + --]] + local function getParamNameCondition(pName) + if paramName == nil or paramName == "" then return true end + if (pName == paramName) or (string.find(pName .. ".", paramName .. "%.") == 1) then return true end + return false + end + --[[ + Iterate through all the parameters and sub-parameters defined in graph object. + Check whether various conditions are met and include a test case in table with test cases if so. + Test case is a table with elements: + - 'paramId' - Id of the parameter to be tested + - 'graph' - reduced graph object with all parameter Ids required for the test case + Later this object is used for creating a hierarchy of parameters with their values. + --]] + local tcs = {} + for k, v in pairs(pGraph) do + local paramFullName = api.getFullParamName(graph, k) + if getMandatoryCondition(v.mandatory) and getArrayCondition(v.array) + and getTypeCondition(v.type) and getParamNameCondition(paramFullName) + and getVersionCondition(v.since, v.deprecated) then + local parentIds = getParents(graph, k) + local childrenIds = getMandatoryChildren(graph, k, {}) + local neighborsIds = getMandatoryNeighbors(graph, k, parentIds) + local neighborsChildrenIds = {} + for id in pairs(neighborsIds) do + getMandatoryChildren(graph, id, neighborsChildrenIds) + end + local tcParamIds = getTCParamsIds(k, parentIds, neighborsIds, childrenIds, neighborsChildrenIds) + local tc = { + paramId = k, + graph = getUpdatedParams(utils.cloneTable(graph), tcParamIds) + } + table.insert(tcs, tc) + end + end + return tcs + end + + local tcs = getTestCases(graph) + + return tcs +end + +--[[ Tests Generator Functions ]]------------------------------------------------------------------- + +--[[ @getValidRandomTests: Generate tests for VALID_RANDOM_SUB test type +--! @parameters: none +--! @return: table with tests +--]] +local function getValidRandomTests() + local tcs = createTestCases(api.apiType.HMI, rpcType, m.rpcHMIMap[rpc], + m.isMandatory.ALL, m.isArray.ALL, m.isVersion.ALL, {}) + local tests = {} + for _, tc in pairs(tcs) do + local paramData = tc.graph[tc.paramId] + if paramData.type ~= api.dataType.STRUCT.type and paramData.parentId ~= nil then + table.insert(tests, { + name = "Param_" .. api.getFullParamName(tc.graph, tc.paramId), + params = getParamsFuncMap.VALID[rpcType](tc.graph), + }) + end + end + return tests +end + +--[[ @getOnlyMandatoryTests: Generate tests for MANDATORY_ONLY test type +--! @parameters: none +--! @return: table with tests +--]] +local function getOnlyMandatoryTests() + local function isTCExist(pExistingTCs, pTC) + local tc = utils.cloneTable(pTC) + tc.paramId = nil + for _, e in pairs(pExistingTCs) do + local etc = utils.cloneTable(e) + etc.paramId = nil + if utils.isTableEqual(etc, tc) then return true end + end + return false + end + local function filterDuplicates(pTCs) + local existingTCs = {} + for _, tc in pairs(pTCs) do + if not isTCExist(existingTCs, tc) then + tc.paramId = tc.graph[tc.paramId].parentId + table.insert(existingTCs, tc) + end + end + return existingTCs + end + local tcs = createTestCases(api.apiType.HMI, rpcType, m.rpcHMIMap[rpc], + m.isMandatory.YES, m.isArray.ALL, m.isVersion.ALL, {}) + tcs = filterDuplicates(tcs) + local tests = {} + for _, tc in pairs(tcs) do + table.insert(tests, { + name = "Param_" .. api.getFullParamName(tc.graph, tc.paramId), + params = getParamsFuncMap.VALID[rpcType](tc.graph), + paramId = tc.paramId, + graph = tc.graph + }) + end + return tests +end + +--[[ @getInBoundTests: Generate tests for LOWER_IN_BOUND/UPPER_IN_BOUND test types +--! @parameters: none +--! @return: table with tests +--]] +local function getInBoundTests() + local tests = {} + -- tests simple data types + local dataTypes = { api.dataType.INTEGER.type, api.dataType.FLOAT.type, api.dataType.DOUBLE.type, api.dataType.STRING.type } + local tcs = createTestCases(api.apiType.HMI, rpcType, m.rpcHMIMap[rpc], + m.isMandatory.ALL, m.isArray.ALL, m.isVersion.ALL, dataTypes) + for _, tc in pairs(tcs) do + tc.graph[tc.paramId].valueType = boundValueTypeMap[testType] + table.insert(tests, { + name = "Param_" .. api.getFullParamName(tc.graph, tc.paramId), + params = getParamsFuncMap.VALID[rpcType](tc.graph), + }) + end + -- tests for arrays + tcs = createTestCases(api.apiType.HMI, rpcType, m.rpcHMIMap[rpc], + m.isMandatory.ALL, m.isArray.YES, m.isVersion.ALL, {}) + for _, tc in pairs(tcs) do + tc.graph[tc.paramId].valueTypeArray = boundValueTypeMap[testType] + table.insert(tests, { + name = "Param_" .. api.getFullParamName(tc.graph, tc.paramId) .. "_ARRAY", + params = getParamsFuncMap.VALID[rpcType](tc.graph), + }) + end + return tests +end + +--[[ @getOutOfBoundTests: Generate tests for LOWER_OUT_OF_BOUND/UPPER_OUT_OF_BOUND test types +--! @parameters: none +--! @return: table with tests +--]] +local function getOutOfBoundTests() + local tests = {} + -- tests for simple data types + local dataTypes = { api.dataType.INTEGER.type, api.dataType.FLOAT.type, api.dataType.DOUBLE.type, api.dataType.STRING.type } + local tcs = createTestCases(api.apiType.HMI, rpcType, m.rpcHMIMap[rpc], + m.isMandatory.ALL, m.isArray.ALL, m.isVersion.ALL, dataTypes) + for _, tc in pairs(tcs) do + local function isSkipped() + local paramData = tc.graph[tc.paramId] + if paramData.type == api.dataType.STRING.type then + if (testType == m.testType.LOWER_OUT_OF_BOUND and paramData.minlength == 0) + or (testType == m.testType.UPPER_OUT_OF_BOUND and paramData.maxlength == nil) then + return true + end + else + if (testType == m.testType.LOWER_OUT_OF_BOUND and paramData.minvalue == nil) + or (testType == m.testType.UPPER_OUT_OF_BOUND and paramData.maxvalue == nil) then + return true + end + end + return false + end + if not isSkipped() then + tc.graph[tc.paramId].valueType = boundValueTypeMap[testType] + table.insert(tests, { + name = "Param_" .. api.getFullParamName(tc.graph, tc.paramId), + params = getParamsFuncMap.INVALID[rpcType](tc.graph), + }) + end + end + -- tests for arrays + tcs = createTestCases(api.apiType.HMI, rpcType, m.rpcHMIMap[rpc], + m.isMandatory.ALL, m.isArray.YES, m.isVersion.ALL, {}) + for _, tc in pairs(tcs) do + local function isSkipped() + local paramData = tc.graph[tc.paramId] + if (testType == m.testType.LOWER_OUT_OF_BOUND and (paramData.minsize == 0 or paramData.minsize == nil)) + or (testType == m.testType.UPPER_OUT_OF_BOUND and paramData.maxsize == nil) then + return true + end + return false + end + if not isSkipped() then + tc.graph[tc.paramId].valueTypeArray = boundValueTypeMap[testType] + table.insert(tests, { + name = "Param_" .. api.getFullParamName(tc.graph, tc.paramId) .. "_ARRAY", + params = getParamsFuncMap.INVALID[rpcType](tc.graph), + }) + end + end + -- tests for enums + tcs = createTestCases(api.apiType.HMI, rpcType, m.rpcHMIMap[rpc], + m.isMandatory.ALL, m.isArray.ALL, m.isVersion.ALL, { api.dataType.ENUM.type }) + for _, tc in pairs(tcs) do + local function isSkipped() + local paramData = tc.graph[tc.paramId] + if paramData.type == api.dataType.ENUM.type and testType == m.testType.LOWER_OUT_OF_BOUND then + return true + end + return false + end + --[[ @getMandatoryValues: Get hierarchy levels of parameters starting from current and to the root + -- with mandatory value for each + --! @parameters: + --! pId: parameter identifier (in graph) + --! pLevel: level of hierarchy + --! pOut: table with result + --! @return: table with levels and mandatory values + --]] + local function getMandatoryValues(pId, pLevel, pOut) + pOut[pLevel] = tc.graph[pId].mandatory + local parentId = tc.graph[pId].parentId + if parentId then return getMandatoryValues(parentId, pLevel+1, pOut) end + return pOut + end + local mandatoryValues = getMandatoryValues(tc.paramId, 1, {}) + if not isSkipped() and (#mandatoryValues == 1 or mandatoryValues[#mandatoryValues-1]) then + local invalidValue = "INVALID_VALUE" + tc.graph[tc.paramId].data = { invalidValue } + local params = getParamsFuncMap.INVALID[rpcType](tc.graph) + table.insert(tests, { + name = "Param_" .. api.getFullParamName(tc.graph, tc.paramId) .. "_" .. invalidValue, + params = params + }) + end + end + return tests +end + +--[[ @getEnumItemsTests: Generate tests for ENUM_ITEMS test type +--! @parameters: none +--! @return: table with tests +--]] +local function getEnumItemsTests() + local tests = {} + local dataTypes = { api.dataType.ENUM.type } + local tcs = createTestCases(api.apiType.HMI, rpcType, m.rpcHMIMap[rpc], + m.isMandatory.ALL, m.isArray.ALL, m.isVersion.ALL, dataTypes) + for _, tc in pairs(tcs) do + for _, item in pairs(tc.graph[tc.paramId].data) do + local tcUpd = utils.cloneTable(tc) + tcUpd.graph[tc.paramId].data = { item } + table.insert(tests, { + name = "Param_" .. api.getFullParamName(tc.graph, tc.paramId) .. "_" .. item, + params = getParamsFuncMap.VALID[rpcType](tcUpd.graph) + }) + end + end + return tests +end + +--[[ @getBoolItemsTests: Generate tests for BOOL_ITEMS test type +--! @parameters: none +--! @return: table with tests +--]] +local function getBoolItemsTests() + local tests = {} + local dataTypes = { api.dataType.BOOLEAN.type } + local tcs = createTestCases(api.apiType.HMI, rpcType, m.rpcHMIMap[rpc], + m.isMandatory.ALL, m.isArray.ALL, m.isVersion.ALL, dataTypes) + for _, tc in pairs(tcs) do + for _, item in pairs({ true, false }) do + local tcUpd = utils.cloneTable(tc) + tcUpd.graph[tc.paramId].data = { item } + table.insert(tests, { + name = "Param_" .. api.getFullParamName(tc.graph, tc.paramId) .. "_" .. tostring(item), + params = getParamsFuncMap.VALID[rpcType](tcUpd.graph) + }) + end + end + return tests +end + +--[[ @getVersionTests: Generate tests for PARAM_VERSION test type +--! @parameters: none +--! @return: table with tests +--]] +local function getVersionTests() + local tests = {} + local tcs = createTestCases(api.apiType.MOBILE, api.eventType.REQUEST, rpc, + m.isMandatory.ALL, m.isArray.ALL, m.isVersion.YES, {}) + for _, tc in pairs(tcs) do + local name = tc.graph[tc.paramId].name + if vdParams[name] then + table.insert(tests, { + param = tc.graph[tc.paramId].name, + version = tc.graph[tc.paramId].since + }) + end + end + return tests +end + +--[[ @getValidRandomAllTests: Generate tests for VALID_RANDOM_ALL test type +--! @parameters: none +--! @return: table with tests +--]] +local function getValidRandomAllTests() + local tests = {} + local graph = api.getGraph(api.apiType.HMI, rpcType, m.rpcHMIMap[rpc]) + local function getParamId(pGraph, pName) + for k, v in pairs(pGraph) do + if v.parentId == nil and v.name == pName then return k end + end + return nil + end + local paramId = getParamId(graph, paramName) + + graph = api.getBranch(graph, paramId) + local tc = { graph = graph, paramId = paramId } + table.insert(tests, { + name = "Param_" .. api.getFullParamName(tc.graph, tc.paramId), + params = getParamsFuncMap.VALID[rpcType](tc.graph), + paramId = tc.paramId, + graph = tc.graph + }) + return tests +end + +--[[ @getMandatoryMissingTests: Generate tests for MANDATORY_MISSING test type +--! @parameters: none +--! @return: table with tests +--]] +local function getMandatoryMissingTests() + local tests = {} + local mndTests = getOnlyMandatoryTests() + local randomAllTests = getValidRandomAllTests() + if #mndTests == 0 or #randomAllTests == 0 then return tests end + for testId in pairs(mndTests) do + for paramId in pairs(mndTests[testId].graph) do + local graph = utils.cloneTable(randomAllTests[1].graph) + if graph[paramId].parentId ~= nil and graph[paramId].mandatory == true then + local name = api.getFullParamName(graph, paramId) + local branchToDelete = api.getBranch(graph, paramId, {}) + for id in pairs(graph) do + if branchToDelete[id] then graph[id] = nil end + end + table.insert(tests, { + name = "Param_missing_" .. name, + params = getParamsFuncMap.INVALID[rpcType](graph), + }) + end + end + end + return tests +end + +--[[ @getInvalidTypeTests: Generate tests for INVALID_TYPE test type +--! @parameters: none +--! @return: table with tests +--]] +local function getInvalidTypeTests() + local dataTypes = { api.dataType.INTEGER.type, api.dataType.FLOAT.type, api.dataType.DOUBLE.type, + api.dataType.STRING.type, api.dataType.ENUM.type, api.dataType.BOOLEAN.type } + local tcs = createTestCases(api.apiType.HMI, rpcType, m.rpcHMIMap[rpc], + m.isMandatory.ALL, m.isArray.ALL, m.isVersion.ALL, dataTypes) + local tests = {} + for _, tc in pairs(tcs) do + tc.graph[tc.paramId].valueType = gen.valueType.INVALID_TYPE + table.insert(tests, { + name = "Param_" .. api.getFullParamName(tc.graph, tc.paramId), + params = getParamsFuncMap.INVALID[rpcType](tc.graph), + }) + end + return tests +end + +--[[ Test Getter Functions ]]----------------------------------------------------------------------- + +--[[ @getTests: Provide tests for defined test type and VD parameter +--! @parameters: +--! pRPC: name of RPC, e.g. 'GetVehicleData' +--! pTestType: test type, e.g. 'm.testType.VALID_RANDOM_ALL' +--! pParamName: name of the VD parameter +--! @return: table with tests +--]] +function m.getTests(pRPC, pTestType, pParamName) + local rpcTypeMap = { + [m.rpc.get] = api.eventType.RESPONSE, + [m.rpc.on] = api.eventType.NOTIFICATION + } + rpc = pRPC + rpcType = rpcTypeMap[pRPC] + testType = pTestType + paramName = pParamName + + local testTypeMap = { + [m.testType.VALID_RANDOM_ALL] = getValidRandomAllTests, + [m.testType.VALID_RANDOM_SUB] = getValidRandomTests, + [m.testType.LOWER_IN_BOUND] = getInBoundTests, + [m.testType.UPPER_IN_BOUND] = getInBoundTests, + [m.testType.LOWER_OUT_OF_BOUND] = getOutOfBoundTests, + [m.testType.UPPER_OUT_OF_BOUND] = getOutOfBoundTests, + [m.testType.INVALID_TYPE] = getInvalidTypeTests, + [m.testType.ENUM_ITEMS] = getEnumItemsTests, + [m.testType.BOOL_ITEMS] = getBoolItemsTests, + [m.testType.PARAM_VERSION] = getVersionTests, + [m.testType.MANDATORY_ONLY] = getOnlyMandatoryTests, + [m.testType.MANDATORY_MISSING] = getMandatoryMissingTests, + + } + if testTypeMap[testType] then return testTypeMap[testType]() end + return {} +end + +--[[ @processRequest: Processing sequence for 'GetVehicleData' request +--! @parameters: +--! pParams: all parameters for the sequence +--! @return: none +--]] +function m.processRequest(pParams) + local cid = m.getMobileSession():SendRPC(pParams.mobile.name, pParams.mobile.request) + m.getHMIConnection():ExpectRequest(pParams.hmi.name, pParams.hmi.request) + :Do(function(_, data) + m.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", pParams.hmi.response) + end) + m.getMobileSession():ExpectResponse(cid, pParams.mobile.response) +end + +--[[ @processNotification: Processing sequence for 'OnVehicleData' notification +--! @parameters: +--! pParams: all parameters for the sequence +--! pTestType: test type, e.g. 'm.testType.VALID_RANDOM_ALL' +--! pParamName: name of the VD parameter +--! @return: none +--]] +function m.processNotification(pParams, pTestType, pParamName) + local function SendNotification() + local times = m.isExpected + if pTestType == m.testType.LOWER_OUT_OF_BOUND or pTestType == m.testType.UPPER_OUT_OF_BOUND + or pTestType == m.testType.MANDATORY_MISSING or pTestType == m.testType.INVALID_TYPE + or not m.isSubscribable(pParamName) then + times = m.isNotExpected + end + m.getHMIConnection():SendNotification(pParams.hmi.name, pParams.hmi.notification) + m.getMobileSession():ExpectNotification(pParams.mobile.name, pParams.mobile.notification) + :Times(times) + end + if not isSubscribed[pParamName] and m.isSubscribable(pParamName) then + m.processSubscriptionRPC(m.rpc.sub, pParamName) + :Do(function() + SendNotification() + end) + isSubscribed[pParamName] = true + else + SendNotification() + end +end + +--[[ @getTestsForGetVD: Generate test steps for 'GetVehicleData' tests for defined test types +--! @parameters: +--! pTestTypes: test types +--! @return: test steps +--]] +function m.runner.getTestsForGetVD(pTestTypes) + for param in m.spairs(m.getVDParams()) do + m.runner.Title("VD parameter: " .. param) + for _, tt in pairs(pTestTypes) do + local tests = m.getTests(m.rpc.get, tt, param) + if #tests > 0 then + m.runner.Title("Test type: " .. m.getKeyByValue(m.testType, tt)) + for _, t in pairs(tests) do + m.runner.Step(t.name, m.processRequest, { t.params }) + end + end + end + end +end + +--[[ @getTestsForOnVD: Generate test steps for 'OnVehicleData' tests for defined test types +--! @parameters: +--! pTestTypes: test types +--! @return: test steps +--]] +function m.runner.getTestsForOnVD(pTestTypes) + for param in m.spairs(m.getVDParams()) do + m.runner.Title("VD parameter: " .. param) + for _, tt in pairs(pTestTypes) do + local tests = m.getTests(m.rpc.on, tt, param) + if #tests > 0 then + m.runner.Title("Test type: " .. m.getKeyByValue(m.testType, tt)) + for _, t in pairs(tests) do + m.runner.Step(t.name, m.processNotification, { t.params, tt, param }) + end + end + end + end +end + +--[[ @getDefaultValues: Generate default random valid values for all VD parameters +--! @parameters: none +--! @return: values for parameters +--]] +local function getDefaultValues() + local out = {} + local fullGraph = api.getGraph(api.apiType.HMI, api.eventType.RESPONSE, m.rpcHMIMap[m.rpc.get]) + for k, v in pairs(fullGraph) do + if v.parentId == nil then + local name = v.name + local graph = api.getBranch(fullGraph, k) + local params = gen.getParamValues(graph) + out[name] = params[name] + end + end + return out +end + +m.vdValues = getDefaultValues() + return m diff --git a/test_scripts/ATF_Expanded_smoke_test_Genivi.lua b/test_scripts/ATF_Expanded_smoke_test_Genivi.lua index 920e9803e1..4bcd2df32e 100644 --- a/test_scripts/ATF_Expanded_smoke_test_Genivi.lua +++ b/test_scripts/ATF_Expanded_smoke_test_Genivi.lua @@ -9899,7 +9899,7 @@ local blockId = 1 { turnList = { { - navigationText = {fieldName = "navigationText", fieldText = "Text"}, + navigationText = {fieldName = "turnText", fieldText = "Text"}, turnIcon = { value = pathToAppFolder .."icon.png", @@ -10066,8 +10066,8 @@ local blockId = 1 { turnList = { - { navigationText = {fieldName = "navigationText", fieldText = "Text"} }, - { navigationText = {fieldName = "navigationText", fieldText = "Text2"} } + { navigationText = {fieldName = "turnText", fieldText = "Text"} }, + { navigationText = {fieldName = "turnText", fieldText = "Text2"} } }, softButtons = @@ -10176,7 +10176,7 @@ local blockId = 1 turnList = { { - navigationText = {fieldName = "navigationText", fieldText = "Text"}, + navigationText = {fieldName = "turnText", fieldText = "Text"}, turnIcon = { value = pathToAppFolder .."icon.png", @@ -10184,7 +10184,7 @@ local blockId = 1 } }, { - navigationText = {fieldName = "navigationText", fieldText = "Text2"}, + navigationText = {fieldName = "turnText", fieldText = "Text2"}, turnIcon = { value = pathToAppFolder .."icon.png", imageType = "DYNAMIC" @@ -10259,7 +10259,7 @@ local blockId = 1 turnList = { { - navigationText = {fieldName = "navigationText", fieldText = "Text"}, + navigationText = {fieldName = "turnText", fieldText = "Text"}, turnIcon = { value = pathToAppFolder .."icon.png", @@ -10267,7 +10267,7 @@ local blockId = 1 } }, { - navigationText = {fieldName = "navigationText", fieldText = "Text2"}, + navigationText = {fieldName = "turnText", fieldText = "Text2"}, turnIcon = { value = pathToAppFolder .."icon.png", imageType = "DYNAMIC" @@ -10360,7 +10360,7 @@ local blockId = 1 turnList = { { - navigationText = {fieldName = "navigationText", fieldText = "Text"}, + navigationText = {fieldName = "turnText", fieldText = "Text"}, turnIcon = { value = "icon.png", @@ -10368,7 +10368,7 @@ local blockId = 1 } }, { - navigationText = {fieldName = "navigationText", fieldText = "Text2"}, + navigationText = {fieldName = "turnText", fieldText = "Text2"}, turnIcon = { value = "icon.png", imageType = "STATIC" diff --git a/test_scripts/AppServices/AppServiceActivation/003_two_apps_activate_success.lua b/test_scripts/AppServices/AppServiceActivation/003_two_apps_activate_success.lua index e32ee8a65a..17fe13b047 100644 --- a/test_scripts/AppServices/AppServiceActivation/003_two_apps_activate_success.lua +++ b/test_scripts/AppServices/AppServiceActivation/003_two_apps_activate_success.lua @@ -60,7 +60,7 @@ local function PTUfunc(tbl) end --[[ Local Functions ]] -local function processRPCSuccess(self) +local function processRPCSuccess() local mobileSession = common.getMobileSession(1) local mobileSession2 = common.getMobileSession(2) local service_id = common.getAppServiceID(2) @@ -89,6 +89,7 @@ runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI", common.registerApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) runner.Step("RAI w/o PTU", common.registerAppWOPTU, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) runner.Step("Activate App", common.activateApp) runner.Step("Publish App Service", common.publishMobileAppService, { manifest }) runner.Step("Publish App Service 2", common.publishSecondMobileAppService, { manifest, manifest2, 2 }) diff --git a/test_scripts/AppServices/AppServiceActivation/004_two_apps_default_disconnect_reconnect.lua b/test_scripts/AppServices/AppServiceActivation/004_two_apps_default_disconnect_reconnect.lua index 40e430d331..4196411529 100644 --- a/test_scripts/AppServices/AppServiceActivation/004_two_apps_default_disconnect_reconnect.lua +++ b/test_scripts/AppServices/AppServiceActivation/004_two_apps_default_disconnect_reconnect.lua @@ -69,7 +69,7 @@ local function PTUfunc(tbl) end --[[ Local Functions ]] -local function processRPCSuccess(self) +local function processRPCSuccess() local mobileSession = common.getMobileSession(1) local mobileSession2 = common.getMobileSession(2) local service_id = common.getAppServiceID(2) @@ -91,7 +91,7 @@ local function processRPCSuccess(self) mobileSession2:ExpectNotification("OnSystemCapabilityUpdated", combinedParams):Times(AtLeast(1)) end -local function disconnectDefaultService(self) +local function disconnectDefaultService() local mobileSession = common.getMobileSession(2) local cid = mobileSession:SendRPC("UnregisterAppInterface", {}) mobileSession:ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) @@ -107,7 +107,7 @@ local function disconnectDefaultService(self) end -local function republishDefaultApp(self) +local function republishDefaultApp() local mobileSession = common.getMobileSession(2) local cid = mobileSession:SendRPC("PublishAppService", { appServiceManifest = manifest2 @@ -145,6 +145,7 @@ runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI", common.registerApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) runner.Step("RAI w/o PTU", common.registerAppWOPTU, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) runner.Step("Activate App", common.activateApp) runner.Step("Publish App Service", common.publishMobileAppService, { manifest }) runner.Step("Publish App Service 2", common.publishSecondMobileAppService, { manifest, manifest2, 2 }) @@ -158,8 +159,9 @@ runner.Step("Stop SDL", common.postconditions) runner.Step("Clean environment", commonFunctions.SDLForceStop) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI w/o PTU", common.registerAppWOPTU, { 1 }) +runner.Step("RAI w/o PTU App 2", common.registerAppWOPTU, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) runner.Step("Activate App", common.activateApp) -runner.Step("RAI w/o PTU", common.registerAppWOPTU, { 2 }) runner.Step("Publish App Service", common.publishMobileAppService, { manifest }) runner.Step("Reconnect Default Service App", republishDefaultApp) diff --git a/test_scripts/AppServices/GetFile/003_GetFile_Mobile_ASP.lua b/test_scripts/AppServices/GetFile/003_GetFile_Mobile_ASP.lua index 71cbc51161..b6b055366c 100644 --- a/test_scripts/AppServices/GetFile/003_GetFile_Mobile_ASP.lua +++ b/test_scripts/AppServices/GetFile/003_GetFile_Mobile_ASP.lua @@ -53,10 +53,11 @@ runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI App 1", common.registerApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) -runner.Step("Putfile", common.putFileInStorage, {1, putFileParams, result}) +runner.Step("Activate App 1", common.activateApp) +runner.Step("PutFile", common.putFileInStorage, {1, putFileParams, result}) runner.Step("PublishAppService", common.publishMobileAppService, { manifest, 1 }) runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) -runner.Step("Activate App", common.activateApp, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) runner.Title("Test") runner.Step("Getfile", common.getFileFromService, {2, 1, getFileParams, result}) diff --git a/test_scripts/AppServices/OnAppServiceData/008_M2M_service_not_active_flow.lua b/test_scripts/AppServices/OnAppServiceData/008_M2M_service_not_active_flow.lua index 9fa8312751..076af8ad04 100644 --- a/test_scripts/AppServices/OnAppServiceData/008_M2M_service_not_active_flow.lua +++ b/test_scripts/AppServices/OnAppServiceData/008_M2M_service_not_active_flow.lua @@ -69,7 +69,7 @@ local function PTUfunc(tbl) end --[[ Local Functions ]] -local function processRPCFailure(self) +local function processRPCFailure() local mobileSession = common.getMobileSession(1) local mobileSession2 = common.getMobileSession(2) local service_id = common.getAppServiceID() @@ -86,7 +86,9 @@ runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI", common.registerApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) +runner.Step("Activate App 1", common.activateApp) runner.Step("RAI w/o PTU", common.registerAppWOPTU, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) runner.Step("Publish Embedded Service", common.publishEmbeddedAppService, { hmiManifest }) runner.Step("Publish App Service", common.publishMobileAppService, { manifest }) runner.Step("Subscribe App Service Data", common.mobileSubscribeAppServiceData, { 0, manifest.serviceType, 2 }) diff --git a/test_scripts/AppServices/OnAppServiceData/010_M2M_invalid_service_id_flow.lua b/test_scripts/AppServices/OnAppServiceData/010_M2M_invalid_service_id_flow.lua index fe77ae9d89..0e105e4e16 100644 --- a/test_scripts/AppServices/OnAppServiceData/010_M2M_invalid_service_id_flow.lua +++ b/test_scripts/AppServices/OnAppServiceData/010_M2M_invalid_service_id_flow.lua @@ -61,7 +61,7 @@ local function PTUfunc(tbl) end --[[ Local Functions ]] -local function processRPCFailure(self) +local function processRPCFailure() local mobileSession = common.getMobileSession(1) local mobileSession2 = common.getMobileSession(2) local notificationParams = expectedNotification @@ -77,6 +77,7 @@ runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI", common.registerApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) +runner.Step("Activate App", common.activateApp) runner.Step("RAI w/o PTU", common.registerAppWOPTU, { 2 }) runner.Step("Publish App Service", common.publishMobileAppService, { manifest }) runner.Step("Subscribe App Service Data", common.mobileSubscribeAppServiceData, { 1, manifest.serviceType, 2 }) diff --git a/test_scripts/AppServices/OnAppServiceData/011_M2M_service_type_mismatch_flow.lua b/test_scripts/AppServices/OnAppServiceData/011_M2M_service_type_mismatch_flow.lua index 2287635a72..7dea87b749 100644 --- a/test_scripts/AppServices/OnAppServiceData/011_M2M_service_type_mismatch_flow.lua +++ b/test_scripts/AppServices/OnAppServiceData/011_M2M_service_type_mismatch_flow.lua @@ -69,7 +69,7 @@ local function PTUfunc(tbl) end --[[ Local Functions ]] -local function processRPCFailure(self) +local function processRPCFailure() local mobileSession = common.getMobileSession(1) local mobileSession2 = common.getMobileSession(2) local notificationParams = expectedNotification @@ -87,6 +87,7 @@ runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI", common.registerApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) runner.Step("RAI w/o PTU", common.registerAppWOPTU, { 2 }) +runner.Step("Activate App", common.activateApp) runner.Step("Publish App Service", common.publishMobileAppService, { manifest }) runner.Step("Publish Embedded Service", common.publishEmbeddedAppService, { hmiManifest }) runner.Step("Subscribe App Service Data", common.mobileSubscribeAppServiceData, { 0, hmiManifest.serviceType, 2 }) diff --git a/test_scripts/AppServices/PerformAppServiceInteraction/005_Mobile_requestServiceActive_background_success_flow.lua b/test_scripts/AppServices/PerformAppServiceInteraction/005_Mobile_requestServiceActive_background_success_flow.lua index 98dab1637a..859bdde0a5 100644 --- a/test_scripts/AppServices/PerformAppServiceInteraction/005_Mobile_requestServiceActive_background_success_flow.lua +++ b/test_scripts/AppServices/PerformAppServiceInteraction/005_Mobile_requestServiceActive_background_success_flow.lua @@ -64,7 +64,7 @@ local function PTUfunc(tbl) end --[[ Local Functions ]] -local function processRPCSuccess(self) +local function processRPCSuccess() local mobileSession = common.getMobileSession(1) local mobileSession2 = common.getMobileSession(2) local service_id = common.getAppServiceID() @@ -79,10 +79,10 @@ local function processRPCSuccess(self) }) end) local serviceParams = common.appServiceCapability("ACTIVATED", manifest) - mobileSession:ExpectNotification("OnSystemCapabilityUpdated"):ValidIf(function(self, data) + mobileSession:ExpectNotification("OnSystemCapabilityUpdated"):ValidIf(function(_, data) return common.findCapabilityUpdate(serviceParams, data.payload) end) - EXPECT_HMINOTIFICATION("BasicCommunication.OnSystemCapabilityUpdated"):ValidIf(function(self, data) + EXPECT_HMINOTIFICATION("BasicCommunication.OnSystemCapabilityUpdated"):ValidIf(function(_, data) return common.findCapabilityUpdate(serviceParams, data.params) end) @@ -101,6 +101,9 @@ runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI", common.registerApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) runner.Step("RAI w/o PTU", common.registerAppWOPTU, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) +runner.Step("Activate App 1", common.activateApp) +runner.Step("Dectivate App to Background", common.deactivateAppToBackground) runner.Step("Publish Embedded Service", common.publishEmbeddedAppService, { hmiManifest }) runner.Step("Publish App Service", common.publishMobileAppService, { manifest }) diff --git a/test_scripts/AppServices/PerformAppServiceInteraction/006_Mobile_requestServiceActive_foreground_success_flow.lua b/test_scripts/AppServices/PerformAppServiceInteraction/006_Mobile_requestServiceActive_foreground_success_flow.lua index 0ba2b17161..c4559a3c15 100644 --- a/test_scripts/AppServices/PerformAppServiceInteraction/006_Mobile_requestServiceActive_foreground_success_flow.lua +++ b/test_scripts/AppServices/PerformAppServiceInteraction/006_Mobile_requestServiceActive_foreground_success_flow.lua @@ -64,7 +64,7 @@ local function PTUfunc(tbl) end --[[ Local Functions ]] -local function processRPCSuccess(self) +local function processRPCSuccess() local mobileSession = common.getMobileSession(1) local mobileSession2 = common.getMobileSession(2) local service_id = common.getAppServiceID() @@ -75,10 +75,10 @@ local function processRPCSuccess(self) -- Should not prompt user if app is in foreground EXPECT_HMICALL("AppService.GetActiveServiceConsent", { serviceID = service_id }):Times(0) local serviceParams = common.appServiceCapability("ACTIVATED", manifest) - mobileSession:ExpectNotification("OnSystemCapabilityUpdated"):ValidIf(function(self, data) + mobileSession:ExpectNotification("OnSystemCapabilityUpdated"):ValidIf(function(_, data) return common.findCapabilityUpdate(serviceParams, data.payload) end) - EXPECT_HMINOTIFICATION("BasicCommunication.OnSystemCapabilityUpdated"):ValidIf(function(self, data) + EXPECT_HMINOTIFICATION("BasicCommunication.OnSystemCapabilityUpdated"):ValidIf(function(_, data) return common.findCapabilityUpdate(serviceParams, data.params) end) @@ -96,8 +96,9 @@ runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI", common.registerApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) +runner.Step("Activate App 1", common.activateApp) runner.Step("RAI w/o PTU", common.registerAppWOPTU, { 2 }) -runner.Step("Activate App", common.activateApp, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) runner.Step("Publish Embedded Service", common.publishEmbeddedAppService, { hmiManifest }) runner.Step("Publish App Service", common.publishMobileAppService, { manifest }) diff --git a/test_scripts/AppServices/PerformAppServiceInteraction/007_HMI_requestServiceActive_success_flow.lua b/test_scripts/AppServices/PerformAppServiceInteraction/007_HMI_requestServiceActive_success_flow.lua index 16d35201b2..e66c5cff83 100644 --- a/test_scripts/AppServices/PerformAppServiceInteraction/007_HMI_requestServiceActive_success_flow.lua +++ b/test_scripts/AppServices/PerformAppServiceInteraction/007_HMI_requestServiceActive_success_flow.lua @@ -61,17 +61,17 @@ local function PTUfunc(tbl) end --[[ Local Functions ]] -local function processRPCSuccess(self) +local function processRPCSuccess() local mobileSession = common.getMobileSession() local service_id = common.getAppServiceID() local requestParams = rpc.params requestParams.serviceID = service_id local cid = common.getHMIConnection():SendRequest(rpc.hmiName, requestParams) local serviceParams = common.appServiceCapability("ACTIVATED", manifest) - mobileSession:ExpectNotification("OnSystemCapabilityUpdated"):ValidIf(function(self, data) + mobileSession:ExpectNotification("OnSystemCapabilityUpdated"):ValidIf(function(_, data) return common.findCapabilityUpdate(serviceParams, data.payload) end) - EXPECT_HMINOTIFICATION("BasicCommunication.OnSystemCapabilityUpdated"):ValidIf(function(self, data) + EXPECT_HMINOTIFICATION("BasicCommunication.OnSystemCapabilityUpdated"):ValidIf(function(_, data) return common.findCapabilityUpdate(serviceParams, data.params) end) local passedRequestParams = requestParams @@ -97,6 +97,8 @@ runner.Step("Clean environment", common.preconditions) runner.Step("Set HMI Origin ID", common.setSDLIniParameter, { "HMIOriginID", hmiOriginID }) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI", common.registerApp) +runner.Step("Activate App", common.activateApp) +runner.Step("Dectivate App to Background", common.deactivateAppToBackground) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) runner.Step("Publish Embedded Service", common.publishEmbeddedAppService, { hmiManifest }) runner.Step("Publish App Service", common.publishMobileAppService, { manifest }) diff --git a/test_scripts/AppServices/PublishAppService/009_Mobile_duplicate_name_rejected.lua b/test_scripts/AppServices/PublishAppService/009_Mobile_duplicate_name_rejected.lua index b73c1a98ab..2b16d0ac4d 100644 --- a/test_scripts/AppServices/PublishAppService/009_Mobile_duplicate_name_rejected.lua +++ b/test_scripts/AppServices/PublishAppService/009_Mobile_duplicate_name_rejected.lua @@ -63,7 +63,7 @@ end --[[ Local Functions ]] -local function processRPCRejected(self) +local function processRPCRejected() local mobileSession = common.getMobileSession(2) local cid = mobileSession:SendRPC(rpc.name, rpc.params) @@ -79,9 +79,10 @@ runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI", common.registerApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) -runner.Step("RAI w/o PTU", common.registerAppWOPTU, { 2 }) -runner.Step("Activate App", common.activateApp) +runner.Step("Activate App 1", common.activateApp) runner.Step("Publish App Service", common.publishMobileAppService, { manifest }) +runner.Step("RAI w/o PTU", common.registerAppWOPTU, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) runner.Title("Test") runner.Step("RPC " .. rpc.name .. "_resultCode_REJECTED", processRPCRejected) diff --git a/test_scripts/AppServices/RPCPassThrough/001_SendLocation_Handled_Request.lua b/test_scripts/AppServices/RPCPassThrough/001_SendLocation_Handled_Request.lua index 1e06ab70bf..59fae9a519 100644 --- a/test_scripts/AppServices/RPCPassThrough/001_SendLocation_Handled_Request.lua +++ b/test_scripts/AppServices/RPCPassThrough/001_SendLocation_Handled_Request.lua @@ -27,7 +27,7 @@ local manifest = { handledRPCs = {39}, allowAppConsumers = true, rpcSpecVersion = config.application1.registerAppInterfaceParams.syncMsgVersion, - navigationServiceManifest = {} + navigationServiceManifest = {acceptsWayPoints = true} } local successResponse = { @@ -88,10 +88,11 @@ runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI App 1", common.registerApp) +runner.Step("Activate App 1", common.activateApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) runner.Step("PublishAppService", common.publishMobileAppService, { manifest, 1 }) runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) -runner.Step("Activate App", common.activateApp, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) runner.Title("Test") runner.Step("RPCPassThroughTest_SUCCESS", RPCPassThruTest) diff --git a/test_scripts/AppServices/RPCPassThrough/002_SendLocation_Unsupported_Request.lua b/test_scripts/AppServices/RPCPassThrough/002_SendLocation_Unsupported_Request.lua index 9a721cb8ba..138661f81e 100644 --- a/test_scripts/AppServices/RPCPassThrough/002_SendLocation_Unsupported_Request.lua +++ b/test_scripts/AppServices/RPCPassThrough/002_SendLocation_Unsupported_Request.lua @@ -27,7 +27,7 @@ local manifest = { handledRPCs = {39}, allowAppConsumers = true, rpcSpecVersion = config.application1.registerAppInterfaceParams.syncMsgVersion, - navigationServiceManifest = {} + navigationServiceManifest = {acceptsWayPoints = true} } local unsupportedResponse = { @@ -96,10 +96,11 @@ runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI App 1", common.registerApp) +runner.Step("Activate App 1", common.activateApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) runner.Step("PublishAppService", common.publishMobileAppService, { manifest, 1 }) runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) -runner.Step("Activate App", common.activateApp, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) runner.Title("Test") runner.Step("RPCPassThroughTest_UNSUPPORTED", RPCPassThruTest) diff --git a/test_scripts/AppServices/RPCPassThrough/003_SendLocation_Request_Timeout.lua b/test_scripts/AppServices/RPCPassThrough/003_SendLocation_Request_Timeout.lua index 9b25e7b655..158b061aca 100644 --- a/test_scripts/AppServices/RPCPassThrough/003_SendLocation_Request_Timeout.lua +++ b/test_scripts/AppServices/RPCPassThrough/003_SendLocation_Request_Timeout.lua @@ -27,7 +27,7 @@ local manifest = { handledRPCs = { 39 }, allowAppConsumers = true, rpcSpecVersion = config.application1.registerAppInterfaceParams.syncMsgVersion, - navigationServiceManifest = {} + navigationServiceManifest = {acceptsWayPoints = true} } local successResponse = { @@ -97,10 +97,11 @@ runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI App 1", common.registerApp) +runner.Step("Activate App 1", common.activateApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) runner.Step("PublishAppService", common.publishMobileAppService, { manifest, 1 }) runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) -runner.Step("Activate App", common.activateApp, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) runner.Title("Test") runner.Step("RPCPassThroughTest_TIMEOUT", RPCPassThruTest) diff --git a/test_scripts/AppServices/RPCPassThrough/004_SendLocation_MultipleAS.lua b/test_scripts/AppServices/RPCPassThrough/004_SendLocation_MultipleAS.lua index f80d28f0ef..f89245bb4a 100644 --- a/test_scripts/AppServices/RPCPassThrough/004_SendLocation_MultipleAS.lua +++ b/test_scripts/AppServices/RPCPassThrough/004_SendLocation_MultipleAS.lua @@ -31,7 +31,7 @@ local manifest = { handledRPCs = { 39 }, allowAppConsumers = true, rpcSpecVersion = config.application1.registerAppInterfaceParams.syncMsgVersion, - navigationServiceManifest = {} + navigationServiceManifest = {acceptsWayPoints = true} } local manifest2 = { @@ -127,12 +127,14 @@ runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI App 1", common.registerApp) +runner.Step("Activate App 1", common.activateApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) runner.Step("Publish NAVIGATION AppService", common.publishMobileAppService, { manifest, 1 }) runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) runner.Step("Publish MEDIA AppService", common.publishMobileAppService, { manifest2, 2 }) runner.Step("RAI App 3", common.registerAppWOPTU, { 3 }) -runner.Step("Activate App", common.activateApp, { 3 }) +runner.Step("Activate App 3", common.activateApp, { 3 }) runner.Title("Test") runner.Step("RPCPassThroughTest_MultipleAS", RPCPassThruTest) diff --git a/test_scripts/AppServices/RPCPassThrough/005_SendLocation_Invalid_Permissions.lua b/test_scripts/AppServices/RPCPassThrough/005_SendLocation_Invalid_Permissions.lua index 0b4002d9e1..fe6bbb25d0 100644 --- a/test_scripts/AppServices/RPCPassThrough/005_SendLocation_Invalid_Permissions.lua +++ b/test_scripts/AppServices/RPCPassThrough/005_SendLocation_Invalid_Permissions.lua @@ -25,7 +25,7 @@ local manifest = { handledRPCs = {39}, allowAppConsumers = true, rpcSpecVersion = config.application1.registerAppInterfaceParams.syncMsgVersion, - navigationServiceManifest = {} + navigationServiceManifest = {acceptsWayPoints = true} } local disallowedResponse = { @@ -76,10 +76,11 @@ runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI App 1", common.registerApp) +runner.Step("Activate App 1", common.activateApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) runner.Step("PublishAppService", common.publishMobileAppService, { manifest, 1 }) runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) -runner.Step("Activate App", common.activateApp, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) runner.Title("Test") runner.Step("RPCPassThroughTest_DISALLOWED", RPCPassThruTest) diff --git a/test_scripts/AppServices/RPCPassThrough/006_ButtonPress_Handled_Request.lua b/test_scripts/AppServices/RPCPassThrough/006_ButtonPress_Handled_Request.lua index 8595d57358..1664c5ee3c 100644 --- a/test_scripts/AppServices/RPCPassThrough/006_ButtonPress_Handled_Request.lua +++ b/test_scripts/AppServices/RPCPassThrough/006_ButtonPress_Handled_Request.lua @@ -88,10 +88,11 @@ runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI App 1", common.registerApp) +runner.Step("Activate App 1", common.activateApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) runner.Step("PublishAppService", common.publishMobileAppService, { manifest, 1 }) runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) -runner.Step("Activate App", common.activateApp, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) runner.Title("Test") runner.Step("RPCPassThroughTest_SUCCESS", RPCPassThruTest) diff --git a/test_scripts/AppServices/RPCPassThrough/007_ButtonPress_Invalid_Permissions.lua b/test_scripts/AppServices/RPCPassThrough/007_ButtonPress_Invalid_Permissions.lua index d49f39a442..dfe13cd8bd 100644 --- a/test_scripts/AppServices/RPCPassThrough/007_ButtonPress_Invalid_Permissions.lua +++ b/test_scripts/AppServices/RPCPassThrough/007_ButtonPress_Invalid_Permissions.lua @@ -81,10 +81,11 @@ runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI App 1", common.registerApp) +runner.Step("Activate App 1", common.activateApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) runner.Step("PublishAppService", common.publishMobileAppService, { manifest, 1 }) runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) -runner.Step("Activate App", common.activateApp, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) runner.Title("Test") runner.Step("RPCPassThroughTest_DISALLOWED", RPCPassThruTest) diff --git a/test_scripts/AppServices/RPCPassThrough/009_UnknownRPC_Consumer_UNSUPPORTED_REQUEST_policy_allow_flag_false.lua b/test_scripts/AppServices/RPCPassThrough/009_UnknownRPC_Consumer_UNSUPPORTED_REQUEST_policy_allow_flag_false.lua index e3943ac9fb..4a2d6e1d81 100644 --- a/test_scripts/AppServices/RPCPassThrough/009_UnknownRPC_Consumer_UNSUPPORTED_REQUEST_policy_allow_flag_false.lua +++ b/test_scripts/AppServices/RPCPassThrough/009_UnknownRPC_Consumer_UNSUPPORTED_REQUEST_policy_allow_flag_false.lua @@ -88,10 +88,11 @@ runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI App 1", common.registerApp) +runner.Step("Activate App 1", common.activateApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) runner.Step("PublishAppService", common.publishMobileAppService, { manifest, 1 }) runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) -runner.Step("Activate App", common.activateApp, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) runner.Title("Test") runner.Step("RPCPassThroughTest_UNSUPPORTED", RPCPassThruTest) diff --git a/test_scripts/AppServices/RPCPassThrough/010_UnknownRpc_Handled_Request.lua b/test_scripts/AppServices/RPCPassThrough/010_UnknownRpc_Handled_Request.lua index eed5a5fa5d..a9a2a93ee0 100644 --- a/test_scripts/AppServices/RPCPassThrough/010_UnknownRpc_Handled_Request.lua +++ b/test_scripts/AppServices/RPCPassThrough/010_UnknownRpc_Handled_Request.lua @@ -90,10 +90,11 @@ runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI App 1", common.registerApp) +runner.Step("Activate App 1", common.activateApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) runner.Step("PublishAppService", common.publishMobileAppService, { manifest, 1 }) runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) -runner.Step("Activate App", common.activateApp, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) runner.Title("Test") runner.Step("RPCPassThroughTest_SUCCESS", RPCPassThruTest) diff --git a/test_scripts/AppServices/RPCPassThrough/011_UnknownRpc_Unsupported_Request.lua b/test_scripts/AppServices/RPCPassThrough/011_UnknownRpc_Unsupported_Request.lua index 852afa8e93..9b91347696 100644 --- a/test_scripts/AppServices/RPCPassThrough/011_UnknownRpc_Unsupported_Request.lua +++ b/test_scripts/AppServices/RPCPassThrough/011_UnknownRpc_Unsupported_Request.lua @@ -90,10 +90,11 @@ runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI App 1", common.registerApp) +runner.Step("Activate App 1", common.activateApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) runner.Step("PublishAppService", common.publishMobileAppService, { manifest, 1 }) runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) -runner.Step("Activate App", common.activateApp, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) runner.Title("Test") runner.Step("RPCPassThroughTest_UNSUPPORTED", RPCPassThruTest) diff --git a/test_scripts/AppServices/RPCPassThrough/012_UnknownRpc_Request_Timeout.lua b/test_scripts/AppServices/RPCPassThrough/012_UnknownRpc_Request_Timeout.lua index ff261f292f..ccf58e96de 100644 --- a/test_scripts/AppServices/RPCPassThrough/012_UnknownRpc_Request_Timeout.lua +++ b/test_scripts/AppServices/RPCPassThrough/012_UnknownRpc_Request_Timeout.lua @@ -98,10 +98,11 @@ runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI App 1", common.registerApp) +runner.Step("Activate App 1", common.activateApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) runner.Step("PublishAppService", common.publishMobileAppService, { manifest, 1 }) runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) -runner.Step("Activate App", common.activateApp, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) runner.Title("Test") runner.Step("RPCPassThroughTest_TIMEOUT", RPCPassThruTest) diff --git a/test_scripts/AppServices/RPCPassThrough/013_UnknownRpc_MultipleAS.lua b/test_scripts/AppServices/RPCPassThrough/013_UnknownRpc_MultipleAS.lua index a6a3ff6f07..ef3297fe8b 100644 --- a/test_scripts/AppServices/RPCPassThrough/013_UnknownRpc_MultipleAS.lua +++ b/test_scripts/AppServices/RPCPassThrough/013_UnknownRpc_MultipleAS.lua @@ -129,12 +129,14 @@ runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("RAI App 1", common.registerApp) +runner.Step("Activate App 1", common.activateApp) runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) runner.Step("Publish NAVIGATION AppService", common.publishMobileAppService, { manifest, 1 }) runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) runner.Step("Publish MEDIA AppService", common.publishMobileAppService, { manifest2, 2 }) runner.Step("RAI App 3", common.registerAppWOPTU, { 3 }) -runner.Step("Activate App", common.activateApp, { 3 }) +runner.Step("Activate App 3", common.activateApp, { 3 }) runner.Title("Test") runner.Step("RPCPassThroughTest_MultipleAS", RPCPassThruTest) diff --git a/test_scripts/AppServices/RPCPassThrough/WayPoints/001_GetWayPoints_Handled_Request.lua b/test_scripts/AppServices/RPCPassThrough/WayPoints/001_GetWayPoints_Handled_Request.lua new file mode 100644 index 0000000000..94cbb45743 --- /dev/null +++ b/test_scripts/AppServices/RPCPassThrough/WayPoints/001_GetWayPoints_Handled_Request.lua @@ -0,0 +1,123 @@ +--------------------------------------------------------------------------------------------------- +-- Precondition: +-- 1) app1 and app2 are registered on SDL. +-- 2) AppServiceProvider permissions (with NAVIGATION AppService permissions to handle rpc GetWayPoints) are assigned for +-- 3) GetWayPoints permissions are assigned for +-- 4) app1 is activated and sends a PublishAppService request (with {serviceType=NAVIGATION, handledRPC=GetWayPoints} in the manifest) +-- +-- Steps: +-- 1) app2 sends a GetWayPoints request to core +-- +-- Expected: +-- 1) Core forwards the request to app1 +-- 2) app1 responds to core with { success = true, resultCode = "SUCCESS", info = "Request was handled by app services" } +-- 3) Core forwards the response from app1 to app2 +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('test_scripts/AppServices/commonAppServices') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local variables ]] +local manifest = { + serviceName = config.application1.registerAppInterfaceParams.appName, + serviceType = "NAVIGATION", + handledRPCs = {45}, + allowAppConsumers = true, + rpcSpecVersion = config.application1.registerAppInterfaceParams.syncMsgVersion, + navigationServiceManifest = {acceptsWayPoints = true} +} + +local rpcRequest = { + name = "GetWayPoints", + hmi_name = "Navigation.GetWayPoints", + params = { + wayPointType = "ALL" + }, + hmi_params = { + wayPointType = "ALL" + } +} + +local rpcResponse = { + params = { + success = true, + resultCode = "SUCCESS", + wayPoints = { + { + coordinate = { + longitudeDegrees = 50, + latitudeDegrees = 50 + }, + locationName = "Location 1", + addressLines = { + "Line 1", + "Line 2", + "Line 3", + "Line 4" + } + }, + { + coordinate = { + longitudeDegrees = 40, + latitudeDegrees = 40 + }, + locationName = "Location 2", + addressLines = { + "Line 5", + "Line 6", + "Line 7", + "Line 8" + } + } + }, + info = "Request was handled by app services" + } +} + +--[[ Local functions ]] +local function PTUfunc(tbl) + -- Add permissions for app1 + local pt_entry = common.getAppServiceProducerConfig(1) + pt_entry.app_services.NAVIGATION = { handled_rpcs = {{function_id = 45}} } + tbl.policy_table.app_policies[common.getConfigAppParams(1).fullAppID] = pt_entry + -- Add permissions for app2 + pt_entry = common.getAppDataForPTU(2) + pt_entry.groups = { "Base-4" , "WayPoints" } + tbl.policy_table.app_policies[common.getConfigAppParams(2).fullAppID] = pt_entry +end + +local function RPCPassThruTest() + local providerMobileSession = common.getMobileSession(1) + local mobileSession = common.getMobileSession(2) + + local cid = mobileSession:SendRPC(rpcRequest.name, rpcRequest.params) + + providerMobileSession:ExpectRequest(rpcRequest.name, rpcRequest.params):Do(function(_, data) + providerMobileSession:SendResponse(rpcRequest.name, data.rpcCorrelationId, rpcResponse.params) + end) + + -- Core will NOT handle the RPC + EXPECT_HMICALL(rpcRequest.hmi_name, rpcRequest.hmi_params):Times(0) + + mobileSession:ExpectResponse(cid, rpcResponse.params) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("RAI App 1", common.registerApp) +runner.Step("Activate App 1", common.activateApp) +runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) +runner.Step("PublishAppService", common.publishMobileAppService, { manifest, 1 }) +runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) + +runner.Title("Test") +runner.Step("GetWayPoints_RPCPassThrough_SUCCESS", RPCPassThruTest) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/AppServices/RPCPassThrough/WayPoints/002_WayPointsSubscription_App_Provider.lua b/test_scripts/AppServices/RPCPassThrough/WayPoints/002_WayPointsSubscription_App_Provider.lua new file mode 100644 index 0000000000..06489017f6 --- /dev/null +++ b/test_scripts/AppServices/RPCPassThrough/WayPoints/002_WayPointsSubscription_App_Provider.lua @@ -0,0 +1,171 @@ +--------------------------------------------------------------------------------------------------- +-- Precondition: +-- 1) app1 and app2 are registered on SDL. +-- 2) AppServiceProvider permissions (with NAVIGATION AppService permissions to handle rpc GetWayPoints) are assigned for +-- 3) WayPoints permissions are assigned for , +-- 4) app1 is activated and sends a PublishAppService request (with {serviceType=NAVIGATION, handledRPC=GetWayPoints} in the manifest) +-- +-- SubscribeWayPoints +-- +-- Steps: +-- 1) app2 sends a SubscribeWayPoints request to Core, HMI receives SubscribeWayPoints request and responds with SUCCESS +-- 2) app1 sends OnWayPointChange notification to Core +-- 3) HMI sends Navigation.OnWayPointChange notification to Core +-- +-- Expected: +-- 1) Core forwards OnWayPointChange from app1 to app2 +-- 2) Core does not forward OnWayPointChange from HMI to app2 +-- +-- UnsubscribeWayPoints +-- +-- Steps: +-- 1) app2 sends a UnsubscribeWayPoints request to Core, HMI receives UnsubscribeWayPoints request and responds with SUCCESS +-- 2) app1 sends OnWayPointChange notification to Core +-- 3) HMI sends Navigation.OnWayPointChange notification to Core +-- +-- Expected: +-- 1) Core does not forward OnWayPointChange from app1 to app2 +-- 2) Core does not forward OnWayPointChange from HMI to app2 +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('test_scripts/AppServices/commonAppServices') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local variables ]] +local manifest = { + serviceName = config.application1.registerAppInterfaceParams.appName, + serviceType = "NAVIGATION", + handledRPCs = {45}, + allowAppConsumers = true, + rpcSpecVersion = config.application1.registerAppInterfaceParams.syncMsgVersion, + navigationServiceManifest = {acceptsWayPoints = true} +} + +local notificationParams = { + wayPoints = { + { + coordinate = { + longitudeDegrees = 50, + latitudeDegrees = 50 + }, + locationName = "Location 1", + addressLines = { + "Line 1", + "Line 2", + "Line 3", + "Line 4" + } + }, + { + coordinate = { + longitudeDegrees = 40, + latitudeDegrees = 40 + }, + locationName = "Location 2", + addressLines = { + "Line 5", + "Line 6", + "Line 7", + "Line 8" + } + } + } +} + +local subscribeRequest = { + name = "SubscribeWayPoints", + hmi_name = "Navigation.SubscribeWayPoints", + params = {}, + hmi_params = nil +} + +local subscribeResponse = { + params = { + success = true, + resultCode = "SUCCESS" + } +} + +local unsubscribeRequest = { + name = "UnsubscribeWayPoints", + hmi_name = "Navigation.UnsubscribeWayPoints", + params = {}, + hmi_params = nil +} + +local unsubscribeResponse = { + params = { + success = true, + resultCode = "SUCCESS" + } +} + +--[[ Local functions ]] +local function PTUfunc(tbl) + -- Add permissions for app1 + local pt_entry = common.getAppServiceProducerConfig(1) + pt_entry.app_services.NAVIGATION = { handled_rpcs = {{function_id = 45}} } + pt_entry.groups[#pt_entry.groups + 1] = "WayPoints" + tbl.policy_table.app_policies[common.getConfigAppParams(1).fullAppID] = pt_entry + -- Add permissions for app2 + pt_entry = common.getAppDataForPTU(2) + pt_entry.groups = { "Base-4" , "WayPoints" } + tbl.policy_table.app_policies[common.getConfigAppParams(2).fullAppID] = pt_entry +end + +local function SubscribeWayPoints() + local providerMobileSession = common.getMobileSession(1) + local mobileSession = common.getMobileSession(2) + + local cid = mobileSession:SendRPC(subscribeRequest.name, subscribeRequest.params) + + -- App will NOT handle the RPC (but the subscription will still apply to the app service) + providerMobileSession:ExpectRequest(subscribeRequest.name, subscribeRequest.params):Times(0) + + common.getHMIConnection():ExpectRequest(subscribeRequest.hmi_name, subscribeRequest.hmi_params):Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + + mobileSession:ExpectResponse(cid, subscribeResponse.params) +end + +local function UnsubscribeWayPoints() + local providerMobileSession = common.getMobileSession(1) + local mobileSession = common.getMobileSession(2) + + local cid = mobileSession:SendRPC(unsubscribeRequest.name, unsubscribeRequest.params) + + -- App will NOT handle the RPC (but the subscription will still apply to the app service) + providerMobileSession:ExpectRequest(unsubscribeRequest.name, unsubscribeRequest.params):Times(0) + + common.getHMIConnection():ExpectRequest(unsubscribeRequest.hmi_name, unsubscribeRequest.hmi_params):Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + + mobileSession:ExpectResponse(cid, unsubscribeResponse.params) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("RAI App 1", common.registerApp) +runner.Step("Activate App 1", common.activateApp) +runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) +runner.Step("PublishAppService", common.publishMobileAppService, { manifest, 1 }) +runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) + +runner.Title("Test") +runner.Step("SubscribeWayPoints SUCCESS", SubscribeWayPoints) +runner.Step("OnWayPointChange From Mobile SUCCESS", common.onWayPointChangeFromMobile, { notificationParams }) +runner.Step("OnWayPointChange From HMI Ignored", common.onWayPointChangeFromHMI, { notificationParams, 0 }) +runner.Step("UnsubscribeWayPoints SUCCESS", UnsubscribeWayPoints) +runner.Step("OnWayPointChange From Mobile Ignored", common.onWayPointChangeFromMobile, { notificationParams, 0 }) +runner.Step("OnWayPointChange From HMI Ignored", common.onWayPointChangeFromHMI, { notificationParams, 0 }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/AppServices/RPCPassThrough/WayPoints/003_WayPointsSubscription_Not_Supported_by_HMI.lua b/test_scripts/AppServices/RPCPassThrough/WayPoints/003_WayPointsSubscription_Not_Supported_by_HMI.lua new file mode 100644 index 0000000000..7c8506b38c --- /dev/null +++ b/test_scripts/AppServices/RPCPassThrough/WayPoints/003_WayPointsSubscription_Not_Supported_by_HMI.lua @@ -0,0 +1,171 @@ +--------------------------------------------------------------------------------------------------- +-- Precondition: +-- 1) app1 and app2 are registered on SDL. +-- 2) AppServiceProvider permissions (with NAVIGATION AppService permissions to handle rpc GetWayPoints) are assigned for +-- 3) WayPoints permissions are assigned for , +-- 4) app1 is activated and sends a PublishAppService request (with {serviceType=NAVIGATION, handledRPC=GetWayPoints} in the manifest) +-- +-- SubscribeWayPoints +-- +-- Steps: +-- 1) app2 sends a SubscribeWayPoints request to Core, HMI receives Navigation.SubscribeWayPoints request and responds with UNSUPPORTED_REQUEST +-- 2) app1 sends OnWayPointChange notification to Core +-- 3) HMI sends Navigation.OnWayPointChange notification to Core +-- +-- Expected: +-- 1) Core responds to SubscribeWayPoints with WARNINGS +-- 2) Core forwards OnWayPointChange from app1 to app2 +-- 3) Core does not forward OnWayPointChange from HMI to app2 +-- +-- UnsubscribeWayPoints +-- +-- Steps: +-- 1) app2 sends a UnsubscribeWayPoints request to Core, HMI does not receive Navigation.UnsubscribeWayPoints request +-- 2) app1 sends OnWayPointChange notification to Core +-- 3) HMI sends Navigation.OnWayPointChange notification to Core +-- +-- Expected: +-- 1) Core does not forward OnWayPointChange from app1 to app2 +-- 2) Core does not forward OnWayPointChange from HMI to app2 +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('test_scripts/AppServices/commonAppServices') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local variables ]] +local manifest = { + serviceName = config.application1.registerAppInterfaceParams.appName, + serviceType = "NAVIGATION", + handledRPCs = {45}, + allowAppConsumers = true, + rpcSpecVersion = config.application1.registerAppInterfaceParams.syncMsgVersion, + navigationServiceManifest = {acceptsWayPoints = true} +} + +local notificationParams = { + wayPoints = { + { + coordinate = { + longitudeDegrees = 50, + latitudeDegrees = 50 + }, + locationName = "Location 1", + addressLines = { + "Line 1", + "Line 2", + "Line 3", + "Line 4" + } + }, + { + coordinate = { + longitudeDegrees = 40, + latitudeDegrees = 40 + }, + locationName = "Location 2", + addressLines = { + "Line 5", + "Line 6", + "Line 7", + "Line 8" + } + } + } +} + +local subscribeRequest = { + name = "SubscribeWayPoints", + hmi_name = "Navigation.SubscribeWayPoints", + params = {}, + hmi_params = nil +} + +local subscribeResponse = { + params = { + success = true, + resultCode = "WARNINGS" + } +} + +local unsubscribeRequest = { + name = "UnsubscribeWayPoints", + hmi_name = "Navigation.UnsubscribeWayPoints", + params = {}, + hmi_params = nil +} + +local unsubscribeResponse = { + params = { + success = true, + resultCode = "SUCCESS" + } +} + +--[[ Local functions ]] +local function PTUfunc(tbl) + -- Add permissions for app1 + local pt_entry = common.getAppServiceProducerConfig(1) + pt_entry.app_services.NAVIGATION = { handled_rpcs = {{function_id = 45}} } + pt_entry.groups[#pt_entry.groups + 1] = "WayPoints" + tbl.policy_table.app_policies[common.getConfigAppParams(1).fullAppID] = pt_entry + -- Add permissions for app2 + pt_entry = common.getAppDataForPTU(2) + pt_entry.groups = { "Base-4" , "WayPoints" } + tbl.policy_table.app_policies[common.getConfigAppParams(2).fullAppID] = pt_entry +end + +local function SubscribeWayPoints() + local providerMobileSession = common.getMobileSession(1) + local mobileSession = common.getMobileSession(2) + + local cid = mobileSession:SendRPC(subscribeRequest.name, subscribeRequest.params) + + -- App will NOT handle the RPC (but the subscription will still apply to the app service) + providerMobileSession:ExpectRequest(subscribeRequest.name, subscribeRequest.params):Times(0) + + common.getHMIConnection():ExpectRequest(subscribeRequest.hmi_name, subscribeRequest.hmi_params):Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "UNSUPPORTED_REQUEST", {}) + end) + + mobileSession:ExpectResponse(cid, subscribeResponse.params) +end + +local function UnsubscribeWayPoints() + local providerMobileSession = common.getMobileSession(1) + local mobileSession = common.getMobileSession(2) + + local cid = mobileSession:SendRPC(unsubscribeRequest.name, unsubscribeRequest.params) + + -- App will NOT handle the RPC (but the subscription will still apply to the app service) + providerMobileSession:ExpectRequest(unsubscribeRequest.name, unsubscribeRequest.params):Times(0) + + -- HMI will not receive request since Core wasn't subscribe to HMI waypoints + common.getHMIConnection():ExpectRequest(unsubscribeRequest.hmi_name, unsubscribeRequest.hmi_params):Times(0) + + mobileSession:ExpectResponse(cid, unsubscribeResponse.params) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("RAI App 1", common.registerApp) +runner.Step("Activate App 1", common.activateApp) +runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) +runner.Step("PublishAppService", common.publishMobileAppService, { manifest, 1 }) +runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) + +runner.Title("Test") +runner.Step("SubscribeWayPoints HMI Unsupported WARNINGS", SubscribeWayPoints) +runner.Step("OnWayPointChange From Mobile SUCCESS", common.onWayPointChangeFromMobile, { notificationParams }) +runner.Step("OnWayPointChange From HMI Ignored", common.onWayPointChangeFromHMI, { notificationParams, 0 }) +runner.Step("UnsubscribeWayPoints SUCCESS", UnsubscribeWayPoints) +runner.Step("OnWayPointChange From Mobile Ignored", common.onWayPointChangeFromMobile, { notificationParams, 0 }) +runner.Step("OnWayPointChange From HMI Ignored", common.onWayPointChangeFromHMI, { notificationParams, 0 }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/AppServices/RPCPassThrough/WayPoints/004_WayPointsSubscription_Not_Handled_Request.lua b/test_scripts/AppServices/RPCPassThrough/WayPoints/004_WayPointsSubscription_Not_Handled_Request.lua new file mode 100644 index 0000000000..c3690e1393 --- /dev/null +++ b/test_scripts/AppServices/RPCPassThrough/WayPoints/004_WayPointsSubscription_Not_Handled_Request.lua @@ -0,0 +1,172 @@ +--------------------------------------------------------------------------------------------------- +-- Precondition: +-- 1) app1 and app2 are registered on SDL. +-- 2) AppServiceProvider permissions (with NAVIGATION AppService permissions to handle rpc GetWayPoints) are assigned for +-- 3) WayPoints permissions are assigned for , +-- 4) app1 is activated and sends a PublishAppService request (with {serviceType=NAVIGATION, handledRPCs omitted} in the manifest) +-- +-- SubscribeWayPoints +-- +-- Steps: +-- 1) app2 sends a SubscribeWayPoints request to Core, HMI receives Navigation.SubscribeWayPoints request +-- and responds with SUCCESS +-- 2) app1 sends OnWayPointChange notification to Core +-- 3) HMI sends Navigation.OnWayPointChange notification to Core +-- +-- Expected: +-- 1) Core does not forward OnWayPointChange from app1 to app2 +-- 2) Core forwards OnWayPointChange from HMI to app2 +-- +-- UnsubscribeWayPoints +-- +-- Steps: +-- 1) app2 sends a UnsubscribeWayPoints request to Core, HMI receives Navigation.UnsubscribeWayPoints request +-- and responds with SUCCESS +-- 2) app1 sends OnWayPointChange notification to Core +-- 3) HMI sends Navigation.OnWayPointChange notification to Core +-- +-- Expected: +-- 1) Core does not forward OnWayPointChange from app1 to app2 +-- 2) Core does not forward OnWayPointChange from HMI to app2 +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('test_scripts/AppServices/commonAppServices') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local variables ]] +local manifest = { + serviceName = config.application1.registerAppInterfaceParams.appName, + serviceType = "NAVIGATION", + allowAppConsumers = true, + rpcSpecVersion = config.application1.registerAppInterfaceParams.syncMsgVersion, + navigationServiceManifest = {acceptsWayPoints = true} +} + +local notificationParams = { + wayPoints = { + { + coordinate = { + longitudeDegrees = 50, + latitudeDegrees = 50 + }, + locationName = "Location 1", + addressLines = { + "Line 1", + "Line 2", + "Line 3", + "Line 4" + } + }, + { + coordinate = { + longitudeDegrees = 40, + latitudeDegrees = 40 + }, + locationName = "Location 2", + addressLines = { + "Line 5", + "Line 6", + "Line 7", + "Line 8" + } + } + } +} + +local subscribeRequest = { + name = "SubscribeWayPoints", + hmi_name = "Navigation.SubscribeWayPoints", + params = {}, + hmi_params = nil +} + +local subscribeResponse = { + params = { + success = true, + resultCode = "SUCCESS" + } +} + +local unsubscribeRequest = { + name = "UnsubscribeWayPoints", + hmi_name = "Navigation.UnsubscribeWayPoints", + params = {}, + hmi_params = nil +} + +local unsubscribeResponse = { + params = { + success = true, + resultCode = "SUCCESS" + } +} + +--[[ Local functions ]] +local function PTUfunc(tbl) + -- Add permissions for app1 + local pt_entry = common.getAppServiceProducerConfig(1) + pt_entry.app_services.NAVIGATION = { handled_rpcs = {{function_id = 45}} } + pt_entry.groups[#pt_entry.groups + 1] = "WayPoints" + tbl.policy_table.app_policies[common.getConfigAppParams(1).fullAppID] = pt_entry + -- Add permissions for app2 + pt_entry = common.getAppDataForPTU(2) + pt_entry.groups = { "Base-4" , "WayPoints" } + tbl.policy_table.app_policies[common.getConfigAppParams(2).fullAppID] = pt_entry +end + +local function SubscribeWayPoints() + local providerMobileSession = common.getMobileSession(1) + local mobileSession = common.getMobileSession(2) + + local cid = mobileSession:SendRPC(subscribeRequest.name, subscribeRequest.params) + + -- App will NOT handle the RPC + providerMobileSession:ExpectRequest(subscribeRequest.name, subscribeRequest.params):Times(0) + + common.getHMIConnection():ExpectRequest(subscribeRequest.hmi_name, subscribeRequest.hmi_params):Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + + mobileSession:ExpectResponse(cid, subscribeResponse.params) +end + +local function UnsubscribeWayPoints() + local providerMobileSession = common.getMobileSession(1) + local mobileSession = common.getMobileSession(2) + + local cid = mobileSession:SendRPC(unsubscribeRequest.name, unsubscribeRequest.params) + + -- App will NOT handle the RPC + providerMobileSession:ExpectRequest(unsubscribeRequest.name, unsubscribeRequest.params):Times(0) + + common.getHMIConnection():ExpectRequest(unsubscribeRequest.hmi_name, unsubscribeRequest.hmi_params):Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + + mobileSession:ExpectResponse(cid, unsubscribeResponse.params) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("RAI App 1", common.registerApp) +runner.Step("Activate App 1", common.activateApp) +runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) +runner.Step("PublishAppService", common.publishMobileAppService, { manifest, 1 }) +runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) + +runner.Title("Test") +runner.Step("SubscribeWayPoints HMI Unsupported SUCCESS", SubscribeWayPoints) +runner.Step("OnWayPointChange From Mobile Ignored", common.onWayPointChangeFromMobile, { notificationParams, 0 }) +runner.Step("OnWayPointChange From HMI SUCCESS", common.onWayPointChangeFromHMI, { notificationParams }) +runner.Step("UnsubscribeWayPoints SUCCESS", UnsubscribeWayPoints) +runner.Step("OnWayPointChange From Mobile Ignored", common.onWayPointChangeFromMobile, { notificationParams, 0 }) +runner.Step("OnWayPointChange From HMI Ignored", common.onWayPointChangeFromHMI, { notificationParams, 0 }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/AppServices/RPCPassThrough/WayPoints/005_WayPointsSubscription_Service_Unpublished_While_Subscribed.lua b/test_scripts/AppServices/RPCPassThrough/WayPoints/005_WayPointsSubscription_Service_Unpublished_While_Subscribed.lua new file mode 100644 index 0000000000..51bc367b61 --- /dev/null +++ b/test_scripts/AppServices/RPCPassThrough/WayPoints/005_WayPointsSubscription_Service_Unpublished_While_Subscribed.lua @@ -0,0 +1,156 @@ +--------------------------------------------------------------------------------------------------- +-- Precondition: +-- 1) app1 and app2 are registered on SDL. +-- 2) AppServiceProvider permissions (with NAVIGATION AppService permissions to handle rpc GetWayPoints) are assigned for +-- 3) WayPoints permissions are assigned for , +-- 4) app1 is activated and sends a PublishAppService request (with {serviceType=NAVIGATION, handledRPC=GetWayPoints} in the manifest) +-- +-- SubscribeWayPoints +-- +-- Steps: +-- 1) app2 sends a SubscribeWayPoints request to Core, HMI receives Navigation.SubscribeWayPoints request +-- and responds with SUCCESS +-- 2) app1 sends OnWayPointChange notification to Core +-- 3) HMI sends Navigation.OnWayPointChange notification to Core +-- +-- Expected: +-- 1) Core does not forward OnWayPointChange from app1 to app2 +-- 2) Core forwards OnWayPointChange from HMI to app2 +-- +-- UnpublishAppService +-- +-- Steps: +-- 1) app1 sends a UnpublishAppService request to Core with its serviceID +-- 2) app1 sends OnWayPointChange notification to Core +-- 3) HMI sends Navigation.OnWayPointChange notification to Core +-- +-- Expected: +-- 1) Core does not forward OnWayPointChange from app1 to app2 +-- 2) Core forwards OnWayPointChange from HMI to app2 +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('test_scripts/AppServices/commonAppServices') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local variables ]] +local manifest = { + serviceName = config.application1.registerAppInterfaceParams.appName, + serviceType = "NAVIGATION", + handledRPCs = {45}, + allowAppConsumers = true, + rpcSpecVersion = config.application1.registerAppInterfaceParams.syncMsgVersion, + navigationServiceManifest = {acceptsWayPoints = true} +} + +local notificationParams = { + wayPoints = { + { + coordinate = { + longitudeDegrees = 50, + latitudeDegrees = 50 + }, + locationName = "Location 1", + addressLines = { + "Line 1", + "Line 2", + "Line 3", + "Line 4" + } + }, + { + coordinate = { + longitudeDegrees = 40, + latitudeDegrees = 40 + }, + locationName = "Location 2", + addressLines = { + "Line 5", + "Line 6", + "Line 7", + "Line 8" + } + } + } +} + +local subscribeRequest = { + name = "SubscribeWayPoints", + hmi_name = "Navigation.SubscribeWayPoints", + params = {}, + hmi_params = nil +} + +local subscribeResponse = { + params = { + success = true, + resultCode = "SUCCESS" + } +} + +local unsubscribeRequest = { + name = "UnsubscribeWayPoints", + hmi_name = "Navigation.UnsubscribeWayPoints", + params = {}, + hmi_params = nil +} + +local unsubscribeResponse = { + params = { + success = true, + resultCode = "SUCCESS" + } +} + +--[[ Local functions ]] +local function PTUfunc(tbl) + -- Add permissions for app1 + local pt_entry = common.getAppServiceProducerConfig(1) + pt_entry.app_services.NAVIGATION = { handled_rpcs = {{function_id = 45}} } + pt_entry.groups[#pt_entry.groups + 1] = "WayPoints" + tbl.policy_table.app_policies[common.getConfigAppParams(1).fullAppID] = pt_entry + -- Add permissions for app2 + pt_entry = common.getAppDataForPTU(2) + pt_entry.groups = { "Base-4" , "WayPoints" } + tbl.policy_table.app_policies[common.getConfigAppParams(2).fullAppID] = pt_entry +end + +local function SubscribeWayPoints() + local providerMobileSession = common.getMobileSession(1) + local mobileSession = common.getMobileSession(2) + + local cid = mobileSession:SendRPC(subscribeRequest.name, subscribeRequest.params) + + -- App will NOT handle the RPC (but the subscription will still apply to the app service) + providerMobileSession:ExpectRequest(subscribeRequest.name, subscribeRequest.params):Times(0) + + common.getHMIConnection():ExpectRequest(subscribeRequest.hmi_name, subscribeRequest.hmi_params):Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + + mobileSession:ExpectResponse(cid, subscribeResponse.params) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("RAI App 1", common.registerApp) +runner.Step("Activate App 1", common.activateApp) +runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) +runner.Step("PublishAppService", common.publishMobileAppService, { manifest, 1 }) +runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) + +runner.Title("Test") +runner.Step("SubscribeWayPoints SUCCESS", SubscribeWayPoints) +runner.Step("OnWayPointChange From Mobile SUCCESS", common.onWayPointChangeFromMobile, { notificationParams }) +runner.Step("OnWayPointChange From HMI Ignored", common.onWayPointChangeFromHMI, { notificationParams, 0 }) +runner.Step("UnpublishAppService", common.unpublishMobileAppService, { 1 }) +runner.Step("OnWayPointChange From Mobile Ignored", common.onWayPointChangeFromMobile, { notificationParams, 0 }) +runner.Step("OnWayPointChange From HMI SUCCESS", common.onWayPointChangeFromHMI, { notificationParams }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/AppServices/RPCPassThrough/WayPoints/006_WayPointsSubscription_Service_Deactivated_While_Subscribed.lua b/test_scripts/AppServices/RPCPassThrough/WayPoints/006_WayPointsSubscription_Service_Deactivated_While_Subscribed.lua new file mode 100644 index 0000000000..d21db0a166 --- /dev/null +++ b/test_scripts/AppServices/RPCPassThrough/WayPoints/006_WayPointsSubscription_Service_Deactivated_While_Subscribed.lua @@ -0,0 +1,164 @@ +--------------------------------------------------------------------------------------------------- +-- Precondition: +-- 1) app1 and app2 are registered on SDL. +-- 2) AppServiceProvider permissions (with NAVIGATION AppService permissions to handle rpc GetWayPoints) are assigned for +-- 3) WayPoints permissions are assigned for , +-- 4) app1 is activated and sends a PublishAppService request (with {serviceType=NAVIGATION, handledRPC=GetWayPoints} in the manifest) +-- +-- SubscribeWayPoints +-- +-- Steps: +-- 1) app2 sends a SubscribeWayPoints request to Core, HMI receives Navigation.SubscribeWayPoints request +-- and responds with SUCCESS +-- 2) app1 sends OnWayPointChange notification to Core +-- 3) HMI sends Navigation.OnWayPointChange notification to Core +-- +-- Expected: +-- 1) Core does not forward OnWayPointChange from app1 to app2 +-- 2) Core forwards OnWayPointChange from HMI to app2 +-- +-- Deactivate App Service +-- +-- Steps: +-- 1) HMI sends AppServiceActivation request with activate=false to deactivate app1's NAVIGATION service +-- 2) app1 sends OnWayPointChange notification to Core +-- 3) HMI sends Navigation.OnWayPointChange notification to Core +-- +-- Expected: +-- 1) Core does not forward OnWayPointChange from app1 to app2 +-- 2) Core forwards OnWayPointChange from HMI to app2 +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('test_scripts/AppServices/commonAppServices') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local variables ]] +local manifest = { + serviceName = config.application1.registerAppInterfaceParams.appName, + serviceType = "NAVIGATION", + handledRPCs = {45}, + allowAppConsumers = true, + rpcSpecVersion = config.application1.registerAppInterfaceParams.syncMsgVersion, + navigationServiceManifest = {acceptsWayPoints = true} +} + +local notificationParams = { + wayPoints = { + { + coordinate = { + longitudeDegrees = 50, + latitudeDegrees = 50 + }, + locationName = "Location 1", + addressLines = { + "Line 1", + "Line 2", + "Line 3", + "Line 4" + } + }, + { + coordinate = { + longitudeDegrees = 40, + latitudeDegrees = 40 + }, + locationName = "Location 2", + addressLines = { + "Line 5", + "Line 6", + "Line 7", + "Line 8" + } + } + } +} + +local subscribeRequest = { + name = "SubscribeWayPoints", + hmi_name = "Navigation.SubscribeWayPoints", + params = {}, + hmi_params = nil +} + +local subscribeResponse = { + params = { + success = true, + resultCode = "SUCCESS" + } +} + +local unsubscribeRequest = { + name = "UnsubscribeWayPoints", + hmi_name = "Navigation.UnsubscribeWayPoints", + params = {}, + hmi_params = nil +} + +local unsubscribeResponse = { + params = { + success = true, + resultCode = "SUCCESS" + } +} + +--[[ Local functions ]] +local function PTUfunc(tbl) + -- Add permissions for app1 + local pt_entry = common.getAppServiceProducerConfig(1) + pt_entry.app_services.NAVIGATION = { handled_rpcs = {{function_id = 45}} } + pt_entry.groups[#pt_entry.groups + 1] = "WayPoints" + tbl.policy_table.app_policies[common.getConfigAppParams(1).fullAppID] = pt_entry + -- Add permissions for app2 + pt_entry = common.getAppDataForPTU(2) + pt_entry.groups = { "Base-4" , "WayPoints" } + tbl.policy_table.app_policies[common.getConfigAppParams(2).fullAppID] = pt_entry +end + +local function SubscribeWayPoints() + local providerMobileSession = common.getMobileSession(1) + local mobileSession = common.getMobileSession(2) + + local cid = mobileSession:SendRPC(subscribeRequest.name, subscribeRequest.params) + + -- App will NOT handle the RPC (but the subscription will still apply to the app service) + providerMobileSession:ExpectRequest(subscribeRequest.name, subscribeRequest.params):Times(0) + + common.getHMIConnection():ExpectRequest(subscribeRequest.hmi_name, subscribeRequest.hmi_params):Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + + mobileSession:ExpectResponse(cid, subscribeResponse.params) +end + +local function DeactivateService() + local cid = common.getHMIConnection():SendRequest("AppService.AppServiceActivation", { + activate = false, + serviceID = common.getAppServiceID() + }) + common.getHMIConnection():ExpectResponse(cid, {result = {code = 0, method = "AppService.AppServiceActivation"}}) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("RAI App 1", common.registerApp) +runner.Step("Activate App 1", common.activateApp) +runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) +runner.Step("PublishAppService", common.publishMobileAppService, { manifest, 1 }) +runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) + +runner.Title("Test") +runner.Step("SubscribeWayPoints SUCCESS", SubscribeWayPoints) +runner.Step("OnWayPointChange From Mobile SUCCESS", common.onWayPointChangeFromMobile, { notificationParams }) +runner.Step("OnWayPointChange From HMI Ignored", common.onWayPointChangeFromHMI, { notificationParams, 0 }) +runner.Step("Deactivate App Service", DeactivateService) +runner.Step("OnWayPointChange From Mobile Ignored", common.onWayPointChangeFromMobile, { notificationParams, 0 }) +runner.Step("OnWayPointChange From HMI SUCCESS", common.onWayPointChangeFromHMI, { notificationParams }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/AppServices/RPCPassThrough/WayPoints/007_WayPointsSubscription_HMI_Error.lua b/test_scripts/AppServices/RPCPassThrough/WayPoints/007_WayPointsSubscription_HMI_Error.lua new file mode 100644 index 0000000000..b480dc5b94 --- /dev/null +++ b/test_scripts/AppServices/RPCPassThrough/WayPoints/007_WayPointsSubscription_HMI_Error.lua @@ -0,0 +1,154 @@ +--------------------------------------------------------------------------------------------------- +-- Precondition: +-- 1) app1 and app2 are registered on SDL. +-- 2) AppServiceProvider permissions (with NAVIGATION AppService permissions to handle rpc GetWayPoints) are assigned for +-- 3) WayPoints permissions are assigned for , , +-- 4) app1 is activated and sends a PublishAppService request (with {serviceType=NAVIGATION, handledRPC=GetWayPoints} in the manifest) +-- +-- Steps: +-- 1) app2 sends a SubscribeWayPoints request to Core, HMI receives Navigation.SubscribeWayPoints request +-- and responds with GENERIC_ERROR +-- 1) app3 sends a SubscribeWayPoints request to Core, HMI receives Navigation.SubscribeWayPoints request +-- and responds with SUCCESS +-- 3) app1 sends OnWayPointChange notification to Core +-- 4) HMI sends Navigation.OnWayPointChange notification to Core +-- +-- Expected: +-- 1) Core responds to app2's SubscribeWayPoints with WARNINGS +-- 1) Core responds to app3's SubscribeWayPoints with SUCCESS +-- 1) Core forwards OnWayPointChange from app1 to app2 +-- 2) Core does not forward OnWayPointChange from HMI to app2 +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('test_scripts/AppServices/commonAppServices') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local variables ]] +local manifest = { + serviceName = config.application1.registerAppInterfaceParams.appName, + serviceType = "NAVIGATION", + handledRPCs = {45}, + allowAppConsumers = true, + rpcSpecVersion = config.application1.registerAppInterfaceParams.syncMsgVersion, + navigationServiceManifest = {acceptsWayPoints = true} +} + +local notificationParams = { + wayPoints = { + { + coordinate = { + longitudeDegrees = 50, + latitudeDegrees = 50 + }, + locationName = "Location 1", + addressLines = { + "Line 1", + "Line 2", + "Line 3", + "Line 4" + } + }, + { + coordinate = { + longitudeDegrees = 40, + latitudeDegrees = 40 + }, + locationName = "Location 2", + addressLines = { + "Line 5", + "Line 6", + "Line 7", + "Line 8" + } + } + } +} + +local subscribeRequest = { + name = "SubscribeWayPoints", + hmi_name = "Navigation.SubscribeWayPoints", + params = {}, + hmi_params = nil +} + +--[[ Local functions ]] +local function PTUfunc(tbl) + -- Add permissions for app1 + local pt_entry = common.getAppServiceProducerConfig(1) + pt_entry.app_services.NAVIGATION = { handled_rpcs = {{function_id = 45}} } + pt_entry.groups[#pt_entry.groups + 1] = "WayPoints" + tbl.policy_table.app_policies[common.getConfigAppParams(1).fullAppID] = pt_entry + -- Add permissions for app2 + pt_entry = common.getAppDataForPTU(2) + pt_entry.groups = { "Base-4" , "WayPoints" } + tbl.policy_table.app_policies[common.getConfigAppParams(2).fullAppID] = pt_entry + -- Add permissions for app3 + pt_entry = common.getAppDataForPTU(3) + pt_entry.groups = { "Base-4" , "WayPoints" } + tbl.policy_table.app_policies[common.getConfigAppParams(3).fullAppID] = pt_entry +end + +local function SubscribeWayPointsError() + local providerMobileSession = common.getMobileSession(1) + local mobileSession = common.getMobileSession(2) + + local cid = mobileSession:SendRPC(subscribeRequest.name, subscribeRequest.params) + + -- App will NOT handle the RPC (but the subscription will still apply to the app service) + providerMobileSession:ExpectRequest(subscribeRequest.name, subscribeRequest.params):Times(0) + + -- HMI requests fails for some internal reason + common.getHMIConnection():ExpectRequest(subscribeRequest.hmi_name, subscribeRequest.hmi_params):Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "GENERIC_ERROR", {}) + end) + + mobileSession:ExpectResponse(cid, { + success = true, + resultCode = "WARNINGS" + }) +end + +local function SubscribeWayPointsSuccess() + local providerMobileSession = common.getMobileSession(1) + local mobileSession = common.getMobileSession(3) + + local cid = mobileSession:SendRPC(subscribeRequest.name, subscribeRequest.params) + + -- App will NOT handle the RPC (but the subscription will still apply to the app service) + providerMobileSession:ExpectRequest(subscribeRequest.name, subscribeRequest.params):Times(0) + + -- Core will resend the HMI request since the first request errored out + common.getHMIConnection():ExpectRequest(subscribeRequest.hmi_name, subscribeRequest.hmi_params):Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + + mobileSession:ExpectResponse(cid, { + success = true, + resultCode = "SUCCESS" + }) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("RAI App 1", common.registerApp) +runner.Step("Activate App 1", common.activateApp) +runner.Step("PTU", common.policyTableUpdate, { PTUfunc }) +runner.Step("PublishAppService", common.publishMobileAppService, { manifest, 1 }) +runner.Step("RAI App 2", common.registerAppWOPTU, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) +runner.Step("RAI App 3", common.registerAppWOPTU, { 3 }) +runner.Step("Activate App 3", common.activateApp, { 3 }) + +runner.Title("Test") +runner.Step("SubscribeWayPoints App 2 HMI Error WARNINGS", SubscribeWayPointsError) +runner.Step("SubscribeWayPoints App 3 HMI SUCCESS", SubscribeWayPointsSuccess) +runner.Step("OnWayPointChange From Mobile SUCCESS", common.onWayPointChangeFromMobile, { notificationParams }) +runner.Step("OnWayPointChange From HMI Ignored", common.onWayPointChangeFromHMI, { notificationParams, 0 }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/AppServices/SystemCapabilities/001_GetSystemCapability_success.lua b/test_scripts/AppServices/SystemCapabilities/001_GetSystemCapability_success.lua index 5f3d5b627f..753c315ad0 100644 --- a/test_scripts/AppServices/SystemCapabilities/001_GetSystemCapability_success.lua +++ b/test_scripts/AppServices/SystemCapabilities/001_GetSystemCapability_success.lua @@ -64,7 +64,7 @@ local function PTUfunc(tbl) end --[[ Local Functions ]] -local function GetSystemCapabilitySubscribe(self) +local function GetSystemCapabilitySubscribe() local mobileSession2 = common.getMobileSession(2) local cid = mobileSession2:SendRPC(rpc.name, rpc.params) local responseParams = expectedResponse @@ -72,7 +72,7 @@ local function GetSystemCapabilitySubscribe(self) mobileSession2:ExpectResponse(cid, responseParams) end -local function PublishServiceExpectNotification(self) +local function PublishServiceExpectNotification() local mobileSession = common.getMobileSession(1) local mobileSession2 = common.getMobileSession(2) local cid = mobileSession:SendRPC(publishRpc.name, publishRpc.params) diff --git a/test_scripts/AppServices/SystemCapabilities/002_GetSystemCapabilitySubscribe_OnSystemCapability_on_unregister.lua b/test_scripts/AppServices/SystemCapabilities/002_GetSystemCapabilitySubscribe_OnSystemCapability_on_unregister.lua index 616272eb15..1b25ea0ab3 100644 --- a/test_scripts/AppServices/SystemCapabilities/002_GetSystemCapabilitySubscribe_OnSystemCapability_on_unregister.lua +++ b/test_scripts/AppServices/SystemCapabilities/002_GetSystemCapabilitySubscribe_OnSystemCapability_on_unregister.lua @@ -65,7 +65,7 @@ local function PTUfunc(tbl) end --[[ Local Functions ]] -local function GetSystemCapabilitySubscribe(self) +local function GetSystemCapabilitySubscribe() local mobileSession2 = common.getMobileSession(2) local cid = mobileSession2:SendRPC(rpc.name, rpc.params) local responseParams = expectedResponse @@ -74,7 +74,7 @@ local function GetSystemCapabilitySubscribe(self) mobileSession2:ExpectResponse(cid, responseParams) end -local function UnregisterAppExpectNotification(self) +local function UnregisterAppExpectNotification() local mobileSession = common.getMobileSession(1) local mobileSession2 = common.getMobileSession(2) local cid = mobileSession:SendRPC("UnregisterAppInterface", {}) diff --git a/test_scripts/AppServices/SystemCapabilities/003_OnSystemCapability_on_deactivate_service.lua b/test_scripts/AppServices/SystemCapabilities/003_OnSystemCapability_on_deactivate_service.lua index 56c26c2b3c..32deb9f561 100644 --- a/test_scripts/AppServices/SystemCapabilities/003_OnSystemCapability_on_deactivate_service.lua +++ b/test_scripts/AppServices/SystemCapabilities/003_OnSystemCapability_on_deactivate_service.lua @@ -65,7 +65,7 @@ local function PTUfunc(tbl) end --[[ Local Functions ]] -local function GetSystemCapabilitySubscribe(self) +local function GetSystemCapabilitySubscribe() local mobileSession2 = common.getMobileSession(2) local cid = mobileSession2:SendRPC(rpc.name, rpc.params) local responseParams = expectedResponse @@ -74,13 +74,15 @@ local function GetSystemCapabilitySubscribe(self) mobileSession2:ExpectResponse(cid, responseParams) end -local function DeactivateServiceExpectNotification(self) +local function DeactivateServiceExpectNotification() local mobileSession = common.getMobileSession(1) local mobileSession2 = common.getMobileSession(2) local cid = common.getHMIConnection():SendRequest("AppService.AppServiceActivation", { activate = false, serviceID = common.getAppServiceID() }) + + common.getHMIConnection():ExpectResponse(cid, {result = {code = 0, method = "AppService.AppServiceActivation"}}) mobileSession:ExpectNotification("OnSystemCapabilityUpdated", common.appServiceCapabilityUpdateParams("DEACTIVATED", manifest)):Times(1) diff --git a/test_scripts/AppServices/SystemCapabilities/004_GetSystemCapability_unsubscribe.lua b/test_scripts/AppServices/SystemCapabilities/004_GetSystemCapability_unsubscribe.lua index d0a998ce08..4ba5107425 100644 --- a/test_scripts/AppServices/SystemCapabilities/004_GetSystemCapability_unsubscribe.lua +++ b/test_scripts/AppServices/SystemCapabilities/004_GetSystemCapability_unsubscribe.lua @@ -67,7 +67,7 @@ local function PTUfunc(tbl) end --[[ Local Functions ]] -local function GetSystemCapabilitySubscribe(self) +local function GetSystemCapabilitySubscribe() local mobileSession2 = common.getMobileSession(2) local cid = mobileSession2:SendRPC(rpc.name, rpc.params) local responseParams = expectedResponse @@ -75,7 +75,7 @@ local function GetSystemCapabilitySubscribe(self) mobileSession2:ExpectResponse(cid, responseParams) end -local function PublishServiceExpectNotification(self) +local function PublishServiceExpectNotification() local mobileSession2 = common.getMobileSession(2) common.publishMobileAppService(manifest, 1) @@ -86,7 +86,7 @@ local function PublishServiceExpectNotification(self) end -local function GetSystemCapabilityUnsubscribe(self) +local function GetSystemCapabilityUnsubscribe() local mobileSession2 = common.getMobileSession(2) params = rpc.params params.subscribe = false @@ -96,13 +96,15 @@ local function GetSystemCapabilityUnsubscribe(self) mobileSession2:ExpectResponse(cid, responseParams) end -local function DeactivateService(self) +local function DeactivateService() local mobileSession = common.getMobileSession(1) local mobileSession2 = common.getMobileSession(2) local cid = common.getHMIConnection():SendRequest("AppService.AppServiceActivation", { activate = false, serviceID = common.getAppServiceID() }) + + common.getHMIConnection():ExpectResponse(cid, {result = {code = 0, method = "AppService.AppServiceActivation"}}) mobileSession:ExpectNotification("OnSystemCapabilityUpdated", common.appServiceCapabilityUpdateParams("DEACTIVATED", manifest)):Times(1) diff --git a/test_scripts/AppServices/SystemCapabilities/005_OnSystemCapability_unknown_parameter_success.lua b/test_scripts/AppServices/SystemCapabilities/005_OnSystemCapability_unknown_parameter_success.lua index f9db39d497..83d33bf106 100644 --- a/test_scripts/AppServices/SystemCapabilities/005_OnSystemCapability_unknown_parameter_success.lua +++ b/test_scripts/AppServices/SystemCapabilities/005_OnSystemCapability_unknown_parameter_success.lua @@ -71,7 +71,7 @@ local function PTUfunc(tbl) tbl.policy_table.app_policies[common.getConfigAppParams(2).fullAppID] = common.getAppServiceConsumerConfig(2); end -local function GetSystemCapabilitySubscribe(self) +local function GetSystemCapabilitySubscribe() local mobileSession2 = common.getMobileSession(2) local cid = mobileSession2:SendRPC(rpc.name, rpc.params) local responseParams = expectedResponse @@ -79,7 +79,7 @@ local function GetSystemCapabilitySubscribe(self) mobileSession2:ExpectResponse(cid, responseParams) end -local function PublishServiceExpectNotification(self) +local function PublishServiceExpectNotification() local mobileSession = common.getMobileSession(1) local mobileSession2 = common.getMobileSession(2) local cid = mobileSession:SendRPC(publishRpc.name, publishRpc.params) diff --git a/test_scripts/AppServices/UnpublishAppService/001_Mobile_success_flow.lua b/test_scripts/AppServices/UnpublishAppService/001_Mobile_success_flow.lua index fe4648da42..d7ad6a49a1 100644 --- a/test_scripts/AppServices/UnpublishAppService/001_Mobile_success_flow.lua +++ b/test_scripts/AppServices/UnpublishAppService/001_Mobile_success_flow.lua @@ -30,9 +30,7 @@ local manifest = { local rpc = { name = "UnpublishAppService", - params = { - serviceID = "temp" - } + params = {} } local expectedResponse = { @@ -45,7 +43,7 @@ local function PTUfunc(tbl) end --[[ Local Functions ]] -local function processRPCSuccess(self) +local function processRPCSuccess() rpc.params.serviceID = common.getAppServiceID(1) local mobileSession = common.getMobileSession(1) local cid = mobileSession:SendRPC(rpc.name, rpc.params) diff --git a/test_scripts/AppServices/UnpublishAppService/002_HMI_success_flow.lua b/test_scripts/AppServices/UnpublishAppService/002_HMI_success_flow.lua index 92e71a94bd..f27f406775 100644 --- a/test_scripts/AppServices/UnpublishAppService/002_HMI_success_flow.lua +++ b/test_scripts/AppServices/UnpublishAppService/002_HMI_success_flow.lua @@ -41,7 +41,7 @@ local expectedResponse = { } --[[ Local Functions ]] -local function processRPCSuccess(self) +local function processRPCSuccess() rpc.params.serviceID = common.getAppServiceID(0) local cid = common.getHMIConnection():SendRequest(rpc.name, rpc.params) diff --git a/test_scripts/AppServices/UnpublishAppService/003_Mobile_failure_did_not_publish_requested_service.lua b/test_scripts/AppServices/UnpublishAppService/003_Mobile_failure_did_not_publish_requested_service.lua index 33b684295b..1d0edee833 100644 --- a/test_scripts/AppServices/UnpublishAppService/003_Mobile_failure_did_not_publish_requested_service.lua +++ b/test_scripts/AppServices/UnpublishAppService/003_Mobile_failure_did_not_publish_requested_service.lua @@ -46,7 +46,7 @@ local function PTUfunc(tbl) end --[[ Local Functions ]] -local function processRPCFailure(self) +local function processRPCFailure() rpc.params.serviceID = common.getAppServiceID(1) local mobileSession = common.getMobileSession(2) local cid = mobileSession:SendRPC(rpc.name, rpc.params) diff --git a/test_scripts/AppServices/commonAppServices.lua b/test_scripts/AppServices/commonAppServices.lua index fa748e1f76..fae5041fe3 100644 --- a/test_scripts/AppServices/commonAppServices.lua +++ b/test_scripts/AppServices/commonAppServices.lua @@ -186,7 +186,8 @@ function commonAppServices.publishEmbeddedAppService(manifest) appServiceManifest = manifest }) local first_run = true - EXPECT_HMINOTIFICATION("BasicCommunication.OnSystemCapabilityUpdated"):Times(AtLeast(1)):ValidIf(function(self, data) + commonAppServices.getHMIConnection():ExpectNotification("BasicCommunication.OnSystemCapabilityUpdated"):Times(AtLeast(1)) + :ValidIf(function(self, data) if data.params.systemCapability.systemCapabilityType == "NAVIGATION" then return true elseif first_run then @@ -234,7 +235,7 @@ function commonAppServices.publishMobileAppService(manifest, app_id) end end) local first_run_hmi = true - EXPECT_HMINOTIFICATION("BasicCommunication.OnSystemCapabilityUpdated"):Times(AtLeast(1)):ValidIf(function(self, data) + commonAppServices.getHMIConnection():ExpectNotification("BasicCommunication.OnSystemCapabilityUpdated"):Times(AtLeast(1)):ValidIf(function(self, data) if data.params.systemCapability.systemCapabilityType == "NAVIGATION" then return true elseif first_run_hmi then @@ -262,6 +263,21 @@ function commonAppServices.publishMobileAppService(manifest, app_id) commonTestCases:DelayedExp(2000) end +function commonAppServices.unpublishMobileAppService(app_id) + if not app_id then app_id = 1 end + local mobileSession = commonAppServices.getMobileSession(app_id) + local cid = mobileSession:SendRPC("UnpublishAppService", { + serviceID = commonAppServices.getAppServiceID(app_id) + }) + + mobileSession:ExpectNotification("OnSystemCapabilityUpdated", + commonAppServices.appServiceCapabilityUpdateParams("REMOVED", manifest)):Times(1) + mobileSession:ExpectResponse(cid, expectedResponse) + + commonAppServices.getHMIConnection():ExpectNotification("BasicCommunication.OnSystemCapabilityUpdated", + commonAppServices.appServiceCapabilityUpdateParams("REMOVED", manifest)):Times(1) +end + function commonAppServices.publishSecondMobileAppService(manifest1, manifest2, app_id) if not app_id then app_id = 2 end @@ -289,7 +305,7 @@ function commonAppServices.publishSecondMobileAppService(manifest1, manifest2, a serviceIDs[app_id] = data.payload.appServiceRecord.serviceID end end) - EXPECT_HMINOTIFICATION("BasicCommunication.OnSystemCapabilityUpdated") + commonAppServices.getHMIConnection():ExpectNotification("BasicCommunication.OnSystemCapabilityUpdated") end function commonAppServices.mobileSubscribeAppServiceData(provider_app_id, service_type, app_id) @@ -306,7 +322,7 @@ function commonAppServices.mobileSubscribeAppServiceData(provider_app_id, servic serviceData = commonAppServices.appServiceDataByType(service_id, service_type) } if provider_app_id == 0 then - EXPECT_HMICALL("AppService.GetAppServiceData", requestParams):Do(function(_, data) + commonAppServices.getHMIConnection():ExpectRequest("AppService.GetAppServiceData", requestParams):Do(function(_, data) commonAppServices.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", responseParams) end) else @@ -356,6 +372,26 @@ function commonAppServices.GetAppServiceSystemCapability(manifest, subscribe, ap mobileSession:ExpectResponse(cid, responseParams) end +function commonAppServices.onWayPointChangeFromMobile(params, exp_times) + if not exp_times then exp_times = 1 end + local providerMobileSession = commonAppServices.getMobileSession(1) + local mobileSession = commonAppServices.getMobileSession(2) + + providerMobileSession:SendNotification("OnWayPointChange", params) + + mobileSession:ExpectNotification("OnWayPointChange", params):Times(exp_times) +end + +function commonAppServices.onWayPointChangeFromHMI(params, exp_times) + if not exp_times then exp_times = 1 end + local providerMobileSession = commonAppServices.getMobileSession(1) + local mobileSession = commonAppServices.getMobileSession(2) + + commonAppServices.getHMIConnection():SendNotification("Navigation.OnWayPointChange", params) + + mobileSession:ExpectNotification("OnWayPointChange", params):Times(exp_times) +end + function commonAppServices.cleanSession(app_id) test.mobileSession[app_id]:StopRPC() :Do(function(_, d) @@ -365,6 +401,14 @@ function commonAppServices.cleanSession(app_id) utils.wait() end +function commonAppServices.deactivateAppToBackground(pSystemContext) + if not pSystemContext then pSystemContext = "MAIN" end + commonAppServices.getHMIConnection():SendNotification("BasicCommunication.OnEventChanged", + { eventName = "EMBEDDED_NAVI", isActive = true }) + commonAppServices.getMobileSession():ExpectNotification("OnHMIStatus", + { hmiLevel = "BACKGROUND", audioStreamingState = "NOT_AUDIBLE", systemContext = pSystemContext }) +end + function commonAppServices.setValidateSchema(value) config.ValidateSchema = value end @@ -428,7 +472,6 @@ function commonAppServices.getFileFromService(app_id, asp_app_id, request_params --mobile side: sending GetFile request local cid = mobileSession:SendRPC("GetFile", request_params) if asp_app_id == 0 then - --EXPECT_HMICALL commonAppServices.getHMIConnection():ExpectRequest("BasicCommunication.GetFilePath") :Do(function(_, d2) local cwd = getATFPath() diff --git a/test_scripts/Capabilities/ATF_Buttons_GetCapabilities.lua b/test_scripts/Capabilities/ATF_Buttons_GetCapabilities.lua index dedc3ae8ce..ab9fc76f03 100644 --- a/test_scripts/Capabilities/ATF_Buttons_GetCapabilities.lua +++ b/test_scripts/Capabilities/ATF_Buttons_GetCapabilities.lua @@ -394,12 +394,10 @@ local function HMI_Send_Button_GetCapabilities_Response(Input_capabilities) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), @@ -680,12 +678,10 @@ local function HMI_Send_Button_GetCapabilities_Response_Timeout(Input_Timeoutcap text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), @@ -967,12 +963,10 @@ local function HMI_Send_Button_GetCapabilities_Response_Invalid() text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/Capabilities/ATF_Buttons_GetCapabilities_ButtonName.lua b/test_scripts/Capabilities/ATF_Buttons_GetCapabilities_ButtonName.lua index f187ba58c4..ed53429a09 100644 --- a/test_scripts/Capabilities/ATF_Buttons_GetCapabilities_ButtonName.lua +++ b/test_scripts/Capabilities/ATF_Buttons_GetCapabilities_ButtonName.lua @@ -248,12 +248,10 @@ local function HMI_Send_Button_GetCapabilities_Response(Input_capabilities) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/Capabilities/PersistingHMICapabilities/common.lua b/test_scripts/Capabilities/PersistingHMICapabilities/common.lua index cecc2899c3..d5aed51c01 100644 --- a/test_scripts/Capabilities/PersistingHMICapabilities/common.lua +++ b/test_scripts/Capabilities/PersistingHMICapabilities/common.lua @@ -32,23 +32,6 @@ function test:initHMI_onReady(hmi_table) end --[[ Common Functions ]] -local function excludeAbsentInMobApiTextFields(pTextFields) - if type(pTextFields) == "table" then - local textFieldsToExclude = { "timeToDestination", "turnText", "navigationText", "notificationText" } - for _, excludeTextFieldName in ipairs(textFieldsToExclude) do - local isFound = false - local i = #pTextFields - repeat - if pTextFields[i].name == excludeTextFieldName then - table.remove(pTextFields, i) - isFound = true - end - i = i - 1 - until (isFound or i < 1) - end - end -end - function m.checkDefaultMobileAdapterType(pApplicableMobileAdapterTypes) if type(pApplicableMobileAdapterTypes) == "table" then local isTransportDisallowed = true @@ -66,7 +49,6 @@ end function m.getDefaultHMITable() local hmiCaps = hmi_values.getDefaultHMITable() - excludeAbsentInMobApiTextFields(hmiCaps.UI.GetCapabilities.params.displayCapabilities.textFields) hmiCaps.VehicleInfo.GetVehicleData.mandatory = false return hmiCaps end @@ -137,7 +119,6 @@ function m.buildDisplayCapForMobileExp(pDisplayCapabilities) local displayCapabilities = pDisplayCapabilities displayCapabilities.imageCapabilities = nil -- no Mobile_API.xml displayCapabilities.menuLayoutsAvailable = nil --since 6.0 - excludeAbsentInMobApiTextFields(displayCapabilities.textFields) return displayCapabilities end @@ -280,7 +261,6 @@ function m.updateHMICapabilitiesTable(isRemainData) table.remove(hmiCapTbl.RC.remoteControlCapability.buttonCapabilities, 1) hmiCapTbl.RC.seatLocationCapability.rows = 1 end - excludeAbsentInMobApiTextFields(hmiCapTbl.UI.displayCapabilities.textFields) return hmiCapTbl end @@ -478,10 +458,6 @@ end function m.start(pHMIParams) local hmiParams = pHMIParams or hmi_values.getDefaultHMITable() - if hmiParams and hmiParams.UI and hmiParams.UI.GetCapabilities - and hmiParams.UI.GetCapabilities.params.displayCapabilities then - excludeAbsentInMobApiTextFields(hmiParams.UI.GetCapabilities.params.displayCapabilities.textFields) - end return actions.start(hmiParams) end diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/001_resolution_switching.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/001_resolution_switching.lua new file mode 100644 index 0000000000..2478843756 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/001_resolution_switching.lua @@ -0,0 +1,78 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: Resolution switching from mobile app after receiving OnSystemCapabilityUpdated notification +-- with new video capabilities +-- +-- Preconditions: +-- 1. SDL and HMI are started +-- 2. App is registered with protocol version 5 and activated +-- 3. HMI sends UI.GetCapabilities(videoStreamingCapability) with additionalVideoStreamingCapabilities +-- 4. App is subscribed to video streaming capabilities update +-- 5. App sends supported video capabilities to HMI using OnAppCapabilityUpdated notification +-- 6. Video service is started +-- 7. App starts video streaming +-- +-- Sequence: +-- 1. HMI sends OnSystemCapabilityUpdated with new video capabilities +-- SDL does: +-- a. send OnSystemCapabilityUpdated notification to App with received parameters +-- 2. App stops streaming and video service by sending EndService(VIDEO) to SDL +-- SDL does: +-- a. send Navi.OnVideoDataStreaming(available=false) to HMI +-- b. respond with EndServiceACK(VIDEO) to Mobile App +-- c. request Navi.StopStream +-- 3. App restarts video service with new video parameters and sends StartService(VIDEO, new_video_params) to SDL +-- SDL does: +-- a. request Navi.SetVideoConfig(new_video_params) +-- 4. HMI responds with SUCCESS resultCode to Navi.SetVideoConfig(new_video_params) +-- SDL does: +-- a. send StartService(VIDEO, new_video_params) to App +-- 5. App starts streaming with new video params +-- SDL does: +-- a. request Navi.StopStream +-- b. send Navi.OnVideoDataStreaming(available=false) to HMI after successful response to Navi.StopStream from HMI +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Variables ]] +local isSubscribed = true +local expected = 1 +local appSessionId = 1 +local anotherVSC = 2 +local isSecure = false + +local videoCapSupportedByApp = { + appCapability = { + appCapabilityType = "VIDEO_STREAMING", + videoStreamingCapability = common.buildVideoStreamingCapabilities(3) + } +} + +local videoCapSupportedByHMI = common.buildVideoStreamingCapabilities(5) + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities, { videoCapSupportedByHMI }) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) +common.Step("App sends GetSystemCapability for VIDEO_STREAMING", common.getSystemCapability, + { isSubscribed, appSessionId, videoCapSupportedByHMI }) +common.Step("OnAppCapabilityUpdated with supported video capabilities", common.sendOnAppCapabilityUpdated, + { videoCapSupportedByApp }) +common.Step("Start video service", common.startVideoService, { common.getVscData() }) +common.Step("Start video streaming", common.startVideoStreaming, { isSecure }) + +common.Title("Test") +common.Step("OnSystemCapabilityUpdated with new video params", common.sendOnSystemCapabilityUpdated, + { appSessionId, expected, common.getVscData(anotherVSC) }) +common.Step("Stop video streaming", common.stopVideoStreaming) +common.Step("Stop video service", common.stopVideoService) +common.Step("Start video service with new parameters", common.startVideoService, { common.getVscData(anotherVSC) }) +common.Step("Start video streaming with new parameters", common.startVideoStreaming, { isSecure }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/002_resolution_switching_secure_streaming.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/002_resolution_switching_secure_streaming.lua new file mode 100644 index 0000000000..993069833c --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/002_resolution_switching_secure_streaming.lua @@ -0,0 +1,87 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: Resolution switching from mobile app after receiving OnSystemCapabilityUpdated notification +-- with new video capabilities during secure video streaming +-- +-- Preconditions: +-- 1. SDL and HMI are started +-- 2. App is registered with protocol version 5 and activated +-- 3. HMI sends UI.GetCapabilities(videoStreamingCapability) with additionalVideoStreamingCapabilities +-- 4. App is subscribed to video streaming capabilities update +-- 5. App sends supported video capabilities to HMI using OnAppCapabilityUpdated notification +-- 6. Video service is started, handshake is performed during service start +-- 7. App starts video streaming +-- +-- Sequence: +-- 1. HMI sends OnSystemCapabilityUpdated with new video capabilities +-- SDL does: +-- a. send OnSystemCapabilityUpdated notification to App with received parameters +-- 2. App stops streaming and video service by sending EndService(VIDEO) to SDL +-- SDL does: +-- a. send Navi.OnVideoDataStreaming(available=false) to HMI +-- b. respond with EndServiceACK(VIDEO) to Mobile App +-- c. request Navi.StopStream +-- 3. App restarts video service with new video parameters and sends StartService(VIDEO, new_video_params) to SDL +-- SDL does: +-- a. handshake is not started +-- b. request Navi.SetVideoConfig(new_video_params) +-- 4. HMI responds with SUCCESS resultCode to Navi.SetVideoConfig(new_video_params) +-- SDL does: +-- a. send StartService(VIDEO, new_video_params) to App +-- 5. Mobile app starts streaming with new video params +-- SDL does: +-- a. request Navi.StopStream +-- b. send Navi.OnVideoDataStreaming(available=false) to HMI after successful response to Navi.StopStream from HMI +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ General configuration parameters ]] +config.SecurityProtocol = "DTLS" +config.application1.registerAppInterfaceParams.appName = "server" +config.application1.registerAppInterfaceParams.fullAppID = "SPT" + +--[[ Local Variables ]] +local isSubscribed = true +local expected = 1 +local notExpected = 0 +local appSessionId = 1 +local anotherVSC = 2 +local isSecure = true + +local videoCapSupportedByApp = { + appCapability = { + appCapabilityType = "VIDEO_STREAMING", + videoStreamingCapability = common.buildVideoStreamingCapabilities(3) + } +} + +local videoCapSupportedByHMI = common.buildVideoStreamingCapabilities(5) + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.securePreconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities, { videoCapSupportedByHMI }) + +common.Step("Start SDL, HMI, connect Mobile, start Session", common.startWithGetSystemTime) +common.Step("Register App", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) +common.Step("App sends GetSystemCapability for VIDEO_STREAMING", common.getSystemCapability, + { isSubscribed, appSessionId, videoCapSupportedByHMI }) +common.Step("OnAppCapabilityUpdated with supported video capabilities", common.sendOnAppCapabilityUpdated, + { videoCapSupportedByApp }) +common.Step("Start secure video service", common.startSecureVideoService, { common.getVscData(), expected }) +common.Step("Start video streaming", common.startVideoStreaming, { isSecure }) + +common.Title("Test") +common.Step("OnSystemCapabilityUpdated with new video params", common.sendOnSystemCapabilityUpdated, + {appSessionId, expected, common.getVscData(anotherVSC) }) +common.Step("Stop video streaming", common.stopVideoStreaming) +common.Step("Stop video service", common.stopVideoService) +common.Step("Start secure video service with new parameters", common.startSecureVideoService, + { common.getVscData(anotherVSC), notExpected }) +common.Step("Start video streaming with new parameters", common.startVideoStreaming, { isSecure }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.securePostconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/001_GetCapabilities_with_addVSC.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/001_GetCapabilities_with_addVSC.lua new file mode 100644 index 0000000000..c93e17c8e8 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/001_GetCapabilities_with_addVSC.lua @@ -0,0 +1,34 @@ +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: SDL applies the videoStreamingCapability with additionalVideoStreamingCapabilities parameter +-- received from HMI in UI.GetCapabilities response +-- +-- Preconditions: +-- 1. SDL and HMI are started +-- +-- Sequence: +-- 1. SDL requests UI.GetCapabilities() +-- 2. HMI sends UI.GetCapabilities(videoStreamingCapability) response with additionalVideoStreamingCapabilities +-- SDL does: +-- - a. apply the videoStreamingCapability with additionalVideoStreamingCapabilities internally +-- 3. App registers with protocol version 5 +-- 4. App requests GetSystemCapability(VIDEO_STREAMING) +-- SDL does: +-- - a. send GetSystemCapability response with videoStreamingCapability that contains +-- the additionalVideoStreamingCapabilities received from HMI in UI.GetCapabilities response +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) + +common.Title("Test") +common.Step("App sends GetSystemCapability for VIDEO_STREAMING", common.getSystemCapability) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/002_GetCapabilities_without_AddVSC.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/002_GetCapabilities_without_AddVSC.lua new file mode 100644 index 0000000000..05dd134e3f --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/002_GetCapabilities_without_AddVSC.lua @@ -0,0 +1,39 @@ +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: SDL applies the videoStreamingCapability without additionalVideoStreamingCapabilities received from HMI +-- in UI.GetCapabilities response +-- +-- Preconditions: +-- 1. SDL and HMI are started +-- +-- Sequence: +-- 1. SDL requests UI.GetCapabilities() +-- 2. HMI sends UI.GetCapabilities(videoStreamingCapability) response without additionalVideoStreamingCapabilities +-- SDL does: +-- - a. apply the videoStreamingCapability without additionalVideoStreamingCapabilities internally +-- 3. App registers with protocol version 5 +-- 4. App requests GetSystemCapability(VIDEO_STREAMING) +-- SDL does: +-- - a. send GetSystemCapability response with videoStreamingCapability that does not contain +-- the additionalVideoStreamingCapabilities +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local isSubscribe = false + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities, { common.getVscData() }) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) + +common.Title("Test") +common.Step("App sends GetSystemCapability for VIDEO_STREAMING", common.getSystemCapability, + { isSubscribe, appSessionId, common.getVscData() }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/003_GetCapabilities_AddVSC_part_of_params.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/003_GetCapabilities_AddVSC_part_of_params.lua new file mode 100644 index 0000000000..b8a52184ab --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/003_GetCapabilities_AddVSC_part_of_params.lua @@ -0,0 +1,60 @@ +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: SDL applies the videoStreamingCapability with additionalVideoStreamingCapabilities parameter +-- with several missed non-mandatory parameters in array items received from HMI in UI.GetCapabilities response +-- +-- Preconditions: +-- 1. SDL and HMI are started +-- +-- Sequence: +-- 1. SDL requests UI.GetCapabilities() +-- 2. HMI sends UI.GetCapabilities(videoStreamingCapability) response with additionalVideoStreamingCapabilities +-- with several missed non-mandatory parameters in array items +-- SDL does: +-- - a. apply the videoStreamingCapability with additionalVideoStreamingCapabilities internally +-- 3. App registers with protocol version 5 +-- 4. App requests GetSystemCapability(VIDEO_STREAMING) +-- SDL does: +-- - a. send GetSystemCapability response with videoStreamingCapability that contains +-- the additionalVideoStreamingCapabilities received from HMI in UI.GetCapabilities response +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local isSubscribe = false +local anotherVSC = 2 + +local vsc = common.getVscData(anotherVSC) +vsc.additionalVideoStreamingCapabilities = { + { + preferredResolution = { resolutionWidth = 200, resolutionHeight = 200 }, + supportedFormats = {{ protocol = "WEBM", codec = "H265" }}, + diagonalScreenSize = 200, + pixelPerInch = 200, + scale = 3 + }, + { + preferredResolution = { resolutionWidth = 320, resolutionHeight = 240 }, + scale = 4 + }, + { + preferredResolution = { resolutionWidth = 640, resolutionHeight = 480 }, + scale = 2 + } +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities, { vsc }) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) + +common.Title("Test") +common.Step("App sends GetSystemCapability for VIDEO_STREAMING", common.getSystemCapability, + { isSubscribe, appSessionId, vsc }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/004_GetCapabilities_AddVSC_missing_all_params.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/004_GetCapabilities_AddVSC_missing_all_params.lua new file mode 100644 index 0000000000..52be500b01 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/004_GetCapabilities_AddVSC_missing_all_params.lua @@ -0,0 +1,43 @@ +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: SDL applies the videoStreamingCapability in case HMI responds with videoStreamingCapability +-- that contains additionalVideoStreamingCapabilities array with empty single element +-- +-- Preconditions: +-- 1. SDL and HMI are started +-- +-- Sequence: +-- 1. SDL requests UI.GetCapabilities() +-- 2. HMI sends UI.GetCapabilities(videoStreamingCapability) response with additionalVideoStreamingCapabilities +-- and additionalVideoStreamingCapabilities array contains empty single element +-- SDL does: +-- - a. apply the videoStreamingCapability with additionalVideoStreamingCapabilities internally +-- 3. App registers with protocol version 5 +-- 4. App requests GetSystemCapability(VIDEO_STREAMING) +-- SDL does: +-- - a. send GetSystemCapability response with videoStreamingCapability that contains +-- the additionalVideoStreamingCapabilities received from HMI in UI.GetCapabilities response +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local isSubscribe = false + +local vsc = common.buildVideoStreamingCapabilities() +vsc.additionalVideoStreamingCapabilities = {{ }} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities, { vsc }) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) + +common.Title("Test") +common.Step("App sends GetSystemCapability for VIDEO_STREAMING", common.getSystemCapability, + { isSubscribe, appSessionId, vsc }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/005_GetCapabilities_with_addVSC_only.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/005_GetCapabilities_with_addVSC_only.lua new file mode 100644 index 0000000000..ebc45c9166 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/005_GetCapabilities_with_addVSC_only.lua @@ -0,0 +1,46 @@ +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: SDL applies the videoStreamingCapability with only additionalVideoStreamingCapabilities parameter +-- received from HMI in UI.GetCapabilities response +-- +-- Preconditions: +-- 1. SDL and HMI are started +-- +-- Sequence: +-- 1. SDL requests UI.GetCapabilities() +-- 2. HMI sends UI.GetCapabilities(videoStreamingCapability) response with only additionalVideoStreamingCapabilities +-- parameter +-- SDL does: +-- - a. apply the videoStreamingCapability with only additionalVideoStreamingCapabilities parameter internally +-- 3. App registers with protocol version 5 +-- 4. App requests GetSystemCapability(VIDEO_STREAMING) +-- SDL does: +-- - a. send GetSystemCapability response with videoStreamingCapability that contains +-- only additionalVideoStreamingCapabilities received from HMI in UI.GetCapabilities response +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local isSubscribe = false +local anotherVSC = 2 + +local vsc = { + additionalVideoStreamingCapabilities = {} +} +vsc.additionalVideoStreamingCapabilities[1] = common.getVscData(anotherVSC) + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities, { vsc }) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) + +common.Title("Test") +common.Step("App sends GetSystemCapability for VIDEO_STREAMING", common.getSystemCapability, + { isSubscribe, appSessionId, vsc }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/006_GetCapabilities_with_addVSC_nested.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/006_GetCapabilities_with_addVSC_nested.lua new file mode 100644 index 0000000000..e45665d4f8 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/006_GetCapabilities_with_addVSC_nested.lua @@ -0,0 +1,47 @@ +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: SDL applies the videoStreamingCapability with additionalVideoStreamingCapabilities received from HMI +-- in UI.GetCapabilities response in case additionalVideoStreamingCapabilities parameter contains +-- nested additionalVideoStreamingCapabilities parameter +-- +-- Preconditions: +-- 1. SDL and HMI are started +-- +-- Sequence: +-- 1. SDL requests UI.GetCapabilities() +-- 2. HMI sends UI.GetCapabilities(videoStreamingCapability) response with additionalVideoStreamingCapabilities +-- and additionalVideoStreamingCapabilities parameter contains nested additionalVideoStreamingCapabilities parameter +-- SDL does: +-- - a. apply the videoStreamingCapability with additionalVideoStreamingCapabilities internally +-- 3. App registers with protocol version 5 +-- 4. App requests GetSystemCapability(VIDEO_STREAMING) +-- SDL does: +-- - a. send GetSystemCapability response with videoStreamingCapability that contains +-- the additionalVideoStreamingCapabilities received from HMI in UI.GetCapabilities response +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local isSubscribe = false + +local vsc = common.buildVideoStreamingCapabilities(10) +vsc.additionalVideoStreamingCapabilities[8] = common.buildVideoStreamingCapabilities(1) +vsc.additionalVideoStreamingCapabilities[6] = common.buildVideoStreamingCapabilities(4) +vsc.additionalVideoStreamingCapabilities[5] = common.buildVideoStreamingCapabilities(2) +vsc.additionalVideoStreamingCapabilities[10] = common.buildVideoStreamingCapabilities(2) + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities, { vsc }) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) + +common.Title("Test") +common.Step("App sends GetSystemCapability for VIDEO_STREAMING", common.getSystemCapability, + { isSubscribe, appSessionId, vsc }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/007_GetCapabilities_with_addVSC_deep_nested.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/007_GetCapabilities_with_addVSC_deep_nested.lua new file mode 100644 index 0000000000..6cd48e849b --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/007_GetCapabilities_with_addVSC_deep_nested.lua @@ -0,0 +1,47 @@ +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: SDL applies the videoStreamingCapability with multiple nesting of additionalVideoStreamingCapabilities +-- parameter received from HMI in UI.GetCapabilities response +-- +-- Preconditions: +-- 1. SDL and HMI are started +-- +-- Sequence: +-- 1. SDL requests UI.GetCapabilities() +-- 2. HMI sends UI.GetCapabilities(videoStreamingCapability) response with multiple nesting of +-- additionalVideoStreamingCapabilities parameter +-- SDL does: +-- - a. apply the videoStreamingCapability with additionalVideoStreamingCapabilities internally +-- 3. App registers with protocol version 5 +-- 4. App requests GetSystemCapability(VIDEO_STREAMING) +-- SDL does: +-- - a. send GetSystemCapability response with videoStreamingCapability that contains +-- the additionalVideoStreamingCapabilities received from HMI in UI.GetCapabilities response +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local isSubscribe = false + +local vsc = common.buildVideoStreamingCapabilities(1) +local tmpVsc = vsc +for _ = 1, 32, 1 do + tmpVsc.additionalVideoStreamingCapabilities[1] = common.buildVideoStreamingCapabilities(1) + tmpVsc = tmpVsc.additionalVideoStreamingCapabilities[1] +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities, { vsc }) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) + +common.Title("Test") +common.Step("App sends GetSystemCapability for VIDEO_STREAMING", common.getSystemCapability, + { isSubscribe, appSessionId, vsc }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/008_GetCapabilities_in_range_minsize_maxsize_array.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/008_GetCapabilities_in_range_minsize_maxsize_array.lua new file mode 100644 index 0000000000..cf0c7dbff4 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/008_GetCapabilities_in_range_minsize_maxsize_array.lua @@ -0,0 +1,48 @@ +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: SDL applies the videoStreamingCapability with additionalVideoStreamingCapabilities received from HMI +-- in UI.GetCapabilities response in case additionalVideoStreamingCapabilities array contains +-- min or max number of elements +-- +-- Preconditions: +-- 1. SDL and HMI are started +-- +-- Sequence: +-- 1. SDL requests UI.GetCapabilities() +-- 2. HMI sends UI.GetCapabilities(videoStreamingCapability) response with additionalVideoStreamingCapabilities +-- and additionalVideoStreamingCapabilities array contains min or max number of elements +-- SDL does: +-- - a. apply the videoStreamingCapability with additionalVideoStreamingCapabilities internally +-- 3. App registers with protocol version 5 +-- 4. App requests GetSystemCapability(VIDEO_STREAMING) +-- SDL does: +-- - a. send GetSystemCapability response with videoStreamingCapability that contains +-- the additionalVideoStreamingCapabilities received from HMI in UI.GetCapabilities response +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local isSubscribe = false + +local arraySize = { + minSize = 1, + maxSize = 100 +} + +--[[ Scenario ]] +for parameter, value in pairs(arraySize) do + common.Title("Preconditions") + common.Step("Clean environment", common.preconditions) + common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities, { common.buildVideoStreamingCapabilities(value) }) + common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.Step("Register App", common.registerAppWOPTU) + + common.Title("Test") + common.Step("GetSystemCapability in range " .. parameter .. " " .. value, common.getSystemCapability, + { isSubscribe, appSessionId, common.buildVideoStreamingCapabilities(value) }) + + common.Title("Postconditions") + common.Step("Stop SDL", common.postconditions) +end diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/009_GetCapabilities_out_of_range_minsize_maxsize_array.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/009_GetCapabilities_out_of_range_minsize_maxsize_array.lua new file mode 100644 index 0000000000..585cbafb91 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/009_GetCapabilities_out_of_range_minsize_maxsize_array.lua @@ -0,0 +1,49 @@ +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: SDL applies default videoStreamingCapability in case HMI responds with videoStreamingCapability +-- that contains additionalVideoStreamingCapabilities array with count of items out of range +-- +-- Preconditions: +-- 1. SDL and HMI are started +-- +-- Sequence: +-- 1. SDL requests UI.GetCapabilities() +-- 2. HMI sends UI.GetCapabilities(videoStreamingCapability) response with additionalVideoStreamingCapabilities +-- and additionalVideoStreamingCapabilities array contains out of range number of elements +-- SDL does: +-- - a. ignore the videoStreamingCapability with additionalVideoStreamingCapabilities +-- received from HMI in UI.GetCapabilities response +-- - b. apply the default videoStreamingCapability from hmi_capabilities.json +-- 3. App registers with protocol version 5 +-- 4. App requests GetSystemCapability(VIDEO_STREAMING) +-- SDL does: +-- - a. send GetSystemCapability response with the default videoStreamingCapability from hmi_capabilities.json +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local isSubscribe = false + +local arraySize = { + minSize = 0, + maxSize = 101 +} + +--[[ Scenario ]] +for parameter, value in pairs(arraySize) do + common.Title("Preconditions") + common.Step("Clean environment", common.preconditions) + common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities, + { common.buildVideoStreamingCapabilities(value) }) + common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.Step("Register App", common.registerAppWOPTU) + + common.Title("Test") + common.Step("GetSystemCapability out of range " .. parameter .. " " .. value, common.getSystemCapability, + { isSubscribe, appSessionId, common.getVscFromDefaultCapabilitiesFile() }) + + common.Title("Postconditions") + common.Step("Stop SDL", common.postconditions) +end diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/010_GetCapabilities_invalid_AddVSC.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/010_GetCapabilities_invalid_AddVSC.lua new file mode 100644 index 0000000000..a36b7cd1b0 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/010_GetCapabilities_invalid_AddVSC.lua @@ -0,0 +1,61 @@ +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: SDL applies default videoStreamingCapability in case HMI responds with videoStreamingCapability +-- that contains additionalVideoStreamingCapabilities array with incorrect parameters in single item +-- +-- Preconditions: +-- 1. SDL and HMI are started +-- +-- Sequence: +-- 1. SDL requests UI.GetCapabilities() +-- 2. HMI sends UI.GetCapabilities(videoStreamingCapability) response with additionalVideoStreamingCapabilities +-- and additionalVideoStreamingCapabilities array contains parameters with invalid type of value in single item +-- SDL does: +-- - a. ignore the videoStreamingCapability with additionalVideoStreamingCapabilities +-- received from HMI in UI.GetCapabilities response +-- - b. apply the default videoStreamingCapability from hmi_capabilities.json +-- 3. App registers with protocol version 5 +-- 4. App requests GetSystemCapability(VIDEO_STREAMING) +-- SDL does: +-- - a. send GetSystemCapability response with the default videoStreamingCapability from hmi_capabilities.json +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local isSubscribe = false + +local checks = { } + +checks.invalid_type = common.buildVideoStreamingCapabilities(1) +checks.invalid_type.additionalVideoStreamingCapabilities[1].preferredResolution.resolutionWidth = true -- invalid type + +checks.invalid_value = common.buildVideoStreamingCapabilities(2) +checks.invalid_value.additionalVideoStreamingCapabilities[1].maxBitrate = -1 -- invalid value + +checks.invalid_nested_type = common.buildVideoStreamingCapabilities(2) +checks.invalid_nested_type.additionalVideoStreamingCapabilities[2] = common.buildVideoStreamingCapabilities(1) +checks.invalid_nested_type.additionalVideoStreamingCapabilities[2] + .additionalVideoStreamingCapabilities[1].hapticSpatialDataSupported = 18 -- invalid type + +checks.invalid_nested_value = common.buildVideoStreamingCapabilities(3) +checks.invalid_nested_value.additionalVideoStreamingCapabilities[2] = common.buildVideoStreamingCapabilities(2) +checks.invalid_nested_value.additionalVideoStreamingCapabilities[2] + .additionalVideoStreamingCapabilities[2].scale = -1 -- invalid value + +--[[ Scenario ]] +for type, value in pairs(checks) do + common.Title("Preconditions") + common.Step("Clean environment", common.preconditions) + common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities, { value }) + common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.Step("Register App", common.registerAppWOPTU) + + common.Title("Test") + common.Step("App sends GetSystemCapability for VIDEO_STREAMING " .. type, common.getSystemCapability, + { isSubscribe, appSessionId, common.getVscFromDefaultCapabilitiesFile() }) + + common.Title("Postconditions") + common.Step("Stop SDL", common.postconditions) +end diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/011_GetCapabilities_caching_of_addVSC_no_nesting.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/011_GetCapabilities_caching_of_addVSC_no_nesting.lua new file mode 100644 index 0000000000..1841f4dfb6 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/011_GetCapabilities_caching_of_addVSC_no_nesting.lua @@ -0,0 +1,53 @@ +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: SDL persists the videoStreamingCapability with additionalVideoStreamingCapabilities received from HMI +-- in UI.GetCapabilities response in case additionalVideoStreamingCapabilities parameter does not contain +-- nested additionalVideoStreamingCapabilities parameter +-- +-- Preconditions: +-- 1. HMICapabilitiesCacheFile is set in smartDeviceLink.ini +-- 2. SDL and HMI are started +-- +-- Sequence: +-- 1. SDL requests UI.GetCapabilities() +-- 2. HMI sends UI.GetCapabilities(videoStreamingCapability) response with additionalVideoStreamingCapabilities +-- and additionalVideoStreamingCapabilities parameter does not contain nested additionalVideoStreamingCapabilities +-- parameter +-- SDL does: +-- - a. cache the videoStreamingCapability with additionalVideoStreamingCapabilities +-- 3. It is restarted ignition cycle +-- SDL does: +-- - a. not requests UI.GetCapabilities() +-- 4. App registers with protocol version 5 +-- 5. App requests GetSystemCapability(VIDEO_STREAMING) +-- SDL does: +-- - a. send GetSystemCapability response with videoStreamingCapability that contains +-- the additionalVideoStreamingCapabilities from cache +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local isSubscribe = false + +local vsc = common.buildVideoStreamingCapabilities(2) + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Update HMICapabilitiesCacheFile in SDL.ini file ", common.setSDLIniParameter, + { "HMICapabilitiesCacheFile", "hmi_capabilities_cache.json" }) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities, { vsc }) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + +common.Title("Test") +common.Step("Ignition off", common.ignitionOff) +common.Step("Ignition on, SDL doesn't send HMI capabilities requests to HMI", + common.start, { common.getHMIParamsWithOutRequests() }) +common.Step("Register App", common.registerAppWOPTU) +common.Step("App sends GetSystemCapability for VIDEO_STREAMING", common.getSystemCapability, + { isSubscribe, appSessionId, vsc }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/012_GetCapabilities_caching_of_addVSC_nesting.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/012_GetCapabilities_caching_of_addVSC_nesting.lua new file mode 100644 index 0000000000..c697089c60 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/012_GetCapabilities_caching_of_addVSC_nesting.lua @@ -0,0 +1,57 @@ +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: SDL persists the videoStreamingCapability with additionalVideoStreamingCapabilities received from HMI +-- in UI.GetCapabilities response in case additionalVideoStreamingCapabilities parameter contains +-- nested additionalVideoStreamingCapabilities parameter +-- +-- Preconditions: +-- 1. HMICapabilitiesCacheFile is set in smartDeviceLink.ini +-- 2. SDL and HMI are started +-- +-- Sequence: +-- 1. SDL requests UI.GetCapabilities() +-- 2. HMI sends UI.GetCapabilities(videoStreamingCapability) response with additionalVideoStreamingCapabilities +-- and additionalVideoStreamingCapabilities parameter contains nested additionalVideoStreamingCapabilities parameter +-- SDL does: +-- - a. cache the videoStreamingCapability with additionalVideoStreamingCapabilities +-- 2. It is restarted ignition cycle +-- SDL does: +-- - a. not requests UI.GetCapabilities() +-- 3. App registers with protocol version 5 +-- 4. App requests GetSystemCapability(VIDEO_STREAMING) +-- SDL does: +-- - a. send GetSystemCapability response with videoStreamingCapability that contains +-- the additionalVideoStreamingCapabilities from cache +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local isSubscribe = false +local appSessionId = 1 + +local vsc = common.buildVideoStreamingCapabilities(2) +local tmpVsc = vsc +for i = 1, 5, 1 do + tmpVsc.additionalVideoStreamingCapabilities[1] = common.buildVideoStreamingCapabilities(i) + tmpVsc = tmpVsc.additionalVideoStreamingCapabilities[1] +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Update HMICapabilitiesCacheFile in SDL.ini file ", common.setSDLIniParameter, + { "HMICapabilitiesCacheFile", "hmi_capabilities_cache.json" }) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities, { vsc }) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + +common.Title("Test") +common.Step("Ignition off", common.ignitionOff) +common.Step("Ignition on, SDL doesn't send HMI capabilities requests to HMI", + common.start, { common.getHMIParamsWithOutRequests() }) +common.Step("Register App", common.registerAppWOPTU) +common.Step("App sends GetSystemCapability for VIDEO_STREAMING", common.getSystemCapability, + { isSubscribe, appSessionId, vsc }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/013_GetCapabilities_caching_of_addVSC_invalid.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/013_GetCapabilities_caching_of_addVSC_invalid.lua new file mode 100644 index 0000000000..b9f211d7d7 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/013_GetCapabilities_caching_of_addVSC_invalid.lua @@ -0,0 +1,83 @@ +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: SDL does not persist the videoStreamingCapability received from HMI +-- in UI.GetCapabilities response in case HMI responds with videoStreamingCapability +-- which contains additionalVideoStreamingCapabilities array with incorrect parameters +-- +-- Preconditions: +-- 1. HMICapabilitiesCacheFile is set in smartDeviceLink.ini +-- 2. SDL and HMI are started +-- +-- Sequence: +-- 1. SDL requests UI.GetCapabilities() +-- 2. HMI sends UI.GetCapabilities(videoStreamingCapability) response with additionalVideoStreamingCapabilities +-- which contains additionalVideoStreamingCapabilities array with incorrect parameters +-- SDL does: +-- - a. not cache the videoStreamingCapability with additionalVideoStreamingCapabilities +-- 3. It is restarted ignition cycle +-- SDL does: +-- - a. requests UI.GetCapabilities() +-- 4. App registers with protocol version 5 +-- 5. App requests GetSystemCapability(VIDEO_STREAMING) +-- SDL does: +-- - a. send GetSystemCapability response with videoStreamingCapability that contains +-- the additionalVideoStreamingCapabilities received from HMI in UI.GetCapabilities response in last ignition cycle +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local isSubscribe = false +local appSessionId = 1 +local anotherVSC = 2 + +local checks = { } + +checks.invalid_type = common.buildVideoStreamingCapabilities(1) +checks.invalid_type.additionalVideoStreamingCapabilities[1].pixelPerInch = "264" -- invalid type + +checks.invalid_value = common.buildVideoStreamingCapabilities(2) +checks.invalid_value.additionalVideoStreamingCapabilities[1].preferredResolution.resolutionHeight = -2 -- invalid value + +checks.invalid_nested_type = common.buildVideoStreamingCapabilities(2) +checks.invalid_nested_type.additionalVideoStreamingCapabilities[2] = common.buildVideoStreamingCapabilities(1) +checks.invalid_nested_type.additionalVideoStreamingCapabilities[2].additionalVideoStreamingCapabilities[1] + .diagonalScreenSize = true -- invalid type + +checks.invalid_nested_value = common.buildVideoStreamingCapabilities(3) +checks.invalid_nested_value.additionalVideoStreamingCapabilities[2] = common.buildVideoStreamingCapabilities(2) +checks.invalid_nested_value.additionalVideoStreamingCapabilities[2].additionalVideoStreamingCapabilities[2] + .scale = -3 -- invalid value + +--[[ Local Functions ]] +local function getHMIParamsWithUiRequestOnly() + local vsc = common.getVscData(anotherVSC) + local params = common.getHMIParamsWithOutRequests() + params.UI.GetCapabilities.occurrence = 1 + params.UI.GetCapabilities.params.systemCapabilities.videoStreamingCapability = vsc + return params +end + +--[[ Scenario ]] +for type, value in pairs(checks) do + common.Title("Preconditions") + common.Step("Clean environment", common.preconditions) + common.Step("Update HMICapabilitiesCacheFile in SDL.ini file ", common.setSDLIniParameter, + { "HMICapabilitiesCacheFile", "hmi_capabilities_cache.json" }) + common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities, { value }) + common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.Step("Register App", common.registerAppWOPTU) + common.Step("App sends GetSystemCapability for VIDEO_STREAMING default " .. type, common.getSystemCapability, + { isSubscribe, appSessionId, common.getVscFromDefaultCapabilitiesFile() }) + + common.Title("Test") + common.Step("Ignition off", common.ignitionOff) + common.Step("Ignition on, SDL sends HMI capabilities request to HMI for UI.GetCapabilities only", + common.start, { getHMIParamsWithUiRequestOnly() }) + common.Step("Register App", common.registerAppWOPTU) + common.Step("App sends GetSystemCapability for VIDEO_STREAMING " .. type, common.getSystemCapability, + { isSubscribe, appSessionId, common.getVscData(anotherVSC) }) + + common.Title("Postconditions") + common.Step("Stop SDL", common.postconditions) +end diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/001_GetSystemCapability_with_addVSC.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/001_GetSystemCapability_with_addVSC.lua new file mode 100644 index 0000000000..b0a54b6407 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/001_GetSystemCapability_with_addVSC.lua @@ -0,0 +1,39 @@ +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: SDL successfully transfers videoStreamingCapabilities with additionalVideoStreamingCapabilities +-- to the Application via GetSystemCapability RPC +-- +-- Preconditions: +-- 1. SDL and HMI are started +-- 2. SDL received videoStreamingCapabilities from HMI +-- 3. App is registered and activated +-- +-- Sequence: +-- 1. App requests videoStreamingCapabilities via GetSystemCapability RPC +-- SDL does: +-- - a. send response to the App with videoStreamingCapabilities with additionalVideoStreamingCapabilities +-- stored internally +-- - b. not request videoStreamingCapabilities from HMI +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local vsc = common.buildVideoStreamingCapabilities(5) +vsc.additionalVideoStreamingCapabilities[1].preferredResolution = { resolutionWidth = 1920, resolutionHeight = 1080 } +vsc.additionalVideoStreamingCapabilities[3].preferredResolution = { resolutionWidth = 1024, resolutionHeight = 768 } +vsc.additionalVideoStreamingCapabilities[4].preferredResolution = { resolutionWidth = 15, resolutionHeight = 2 } + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities, { vsc }) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) + +common.Title("Test") +common.Step("Check GetSystemCapability processing", common.getSystemCapabilityExtended, { appSessionId, vsc }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/002_GetSystemCapability_subscribe.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/002_GetSystemCapability_subscribe.lua new file mode 100644 index 0000000000..8c95c58703 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/002_GetSystemCapability_subscribe.lua @@ -0,0 +1,43 @@ +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: SDL successfully subscribes an application on OnSystemCapabilityUpdated notification +-- with VIDEO_STREAMING capability type +-- +-- Preconditions: +-- 1. SDL and HMI are started +-- 2. SDL received videoStreamingCapabilities from HMI +-- 3. App is registered and activated +-- +-- Sequence: +-- 1. App requests subscription on OnSystemCapabilityUpdated notification with VIDEO_STREAMING capability type +-- SDL does: +-- - a. subscribe App on the notification +-- - b. send response to the App with videoStreamingCapabilities with additionalVideoStreamingCapabilities +-- stored internally +-- 2. HMI sends OnSystemCapabilityUpdated notification with updates of VIDEO_STREAMING capability type for App +-- SDL does: +-- - a. resend OnSystemCapabilityUpdated notification with updates of VIDEO_STREAMING capability type to the App +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local expected = 1 +local isSubscribe = true + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) + +common.Title("Test") +common.Step("Subscribe App on VIDEO_STREAMING updates", common.getSystemCapability, { isSubscribe }) +common.Step("OnSystemCapabilityUpdated to check subscription", + common.sendOnSystemCapabilityUpdated, { appSessionId, expected }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/003_GetSystemCapability_unsubscribe.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/003_GetSystemCapability_unsubscribe.lua new file mode 100644 index 0000000000..a5692de6ba --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/003_GetSystemCapability_unsubscribe.lua @@ -0,0 +1,47 @@ +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: SDL successfully unsubscribes an application from OnSystemCapabilityUpdated notification +-- with VIDEO_STREAMING capability type +-- +-- Preconditions: +-- 1. SDL and HMI are started +-- 2. SDL received videoStreamingCapabilities from HMI +-- 3. App is registered and activated +-- 4. App is subscribed on OnSystemCapabilityUpdated notification with VIDEO_STREAMING capability type +-- +-- Sequence: +-- 1. App requests unsubscription from OnSystemCapabilityUpdated notification +-- with VIDEO_STREAMING capability type +-- SDL does: +-- - a. unsubscribe App from the notification +-- - b. send response to the App with videoStreamingCapabilities with additionalVideoStreamingCapabilities +-- stored internally +-- 2. HMI sends OnSystemCapabilityUpdated notification with updates of VIDEO_STREAMING capability type for App +-- SDL does: +-- - a. not resend OnSystemCapabilityUpdated notification with updates of VIDEO_STREAMING capability type +-- to the App +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local notExpected = 0 +local isSubscribe = true +local isUnsubscribe = false + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) +common.Step("Subscribe App on VIDEO_STREAMING updates", common.getSystemCapability, { isSubscribe }) + +common.Title("Test") +common.Step("Unsubscribe App from VIDEO_STREAMING updates", common.getSystemCapability, { isUnsubscribe }) +common.Step("OnSystemCapabilityUpdated to check unsubscription", common.sendOnSystemCapabilityUpdated, + { appSessionId, notExpected }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/004_GetSystemCapability_after_OnSystemCapabilityUpdated_same_app.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/004_GetSystemCapability_after_OnSystemCapabilityUpdated_same_app.lua new file mode 100644 index 0000000000..1d48a55dc9 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/004_GetSystemCapability_after_OnSystemCapabilityUpdated_same_app.lua @@ -0,0 +1,49 @@ +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: SDL sends GetSystemCapability response with videoStreamingCapabilities received from HMI on startup +-- to the application after updates of video streaming capabilities for this application via OnSystemCapabilityUpdated +-- notification +-- +-- Preconditions: +-- 1. SDL and HMI are started +-- 2. SDL received videoStreamingCapabilities from HMI +-- 3. App is registered and activated +-- 4. App is subscribed on OnSystemCapabilityUpdated notification with VIDEO_STREAMING capability type +-- +-- Sequence: +-- 1. HMI sends OnSystemCapabilityUpdated notification with updates of VIDEO_STREAMING capability type for App +-- SDL does: +-- - a. resend OnSystemCapabilityUpdated notification with updates of VIDEO_STREAMING capability type to the App +-- 2. App requests videoStreamingCapabilities via GetSystemCapability RPC +-- SDL does: +-- - a. send response to the App with received from HMI on startup videoStreamingCapabilities +-- which stored internally +-- - b. not request videoStreamingCapabilities from HMI +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local expected = 1 + +local vsc = common.buildVideoStreamingCapabilities(5) +vsc.additionalVideoStreamingCapabilities[1].preferredResolution = { resolutionWidth = 1920, resolutionHeight = 1080 } +vsc.additionalVideoStreamingCapabilities[2].preferredResolution = { resolutionWidth = 1024, resolutionHeight = 768 } +vsc.additionalVideoStreamingCapabilities[5].preferredResolution = { resolutionWidth = 15, resolutionHeight = 2 } + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) +common.Step("Subscribe App on VIDEO_STREAMING updates", common.getSystemCapability, { true }) + +common.Title("Test") +common.Step("OnSystemCapabilityUpdated notification processing", + common.sendOnSystemCapabilityUpdated, { appSessionId, expected, vsc }) +common.Step("Check GetSystemCapability processing", common.getSystemCapabilityExtended) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/005_GetSystemCapability_after_OnSystemCapabilityUpdated_other_app.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/005_GetSystemCapability_after_OnSystemCapabilityUpdated_other_app.lua new file mode 100644 index 0000000000..ef4e2a1323 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/005_GetSystemCapability_after_OnSystemCapabilityUpdated_other_app.lua @@ -0,0 +1,54 @@ +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: SDL sends GetSystemCapability response with videoStreamingCapabilities received from HMI on startup +-- to the application after updates of video streaming capabilities for another application +-- via OnSystemCapabilityUpdated notification +-- +-- Preconditions: +-- 1. SDL and HMI are started +-- 2. SDL received videoStreamingCapabilities from HMI +-- 3. App1 is registered and activated +-- 4. App1 is subscribed on OnSystemCapabilityUpdated notification with VIDEO_STREAMING capability type +-- +-- Sequence: +-- 1. HMI sends OnSystemCapabilityUpdated notification with updates of VIDEO_STREAMING capability type for App1 +-- SDL does: +-- - a. resend OnSystemCapabilityUpdated notification with updates of VIDEO_STREAMING capability type +-- to the App1 +-- 2. App2 is registered and requests videoStreamingCapabilities via GetSystemCapability RPC +-- SDL does: +-- - a. send response to the App2 with received from HMI on startup videoStreamingCapabilities +-- which stored internally +-- - b. not request videoStreamingCapabilities from HMI +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId1 = 1 +local appSessionId2 = 2 +local expected = 1 + +local vsc = common.buildVideoStreamingCapabilities(5) +vsc.additionalVideoStreamingCapabilities[1].preferredResolution = { resolutionWidth = 1920, resolutionHeight = 1080 } +vsc.additionalVideoStreamingCapabilities[2].preferredResolution = { resolutionWidth = 1024, resolutionHeight = 768 } +vsc.additionalVideoStreamingCapabilities[5].preferredResolution = { resolutionWidth = 15, resolutionHeight = 2 } + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App1", common.registerAppWOPTU) +common.Step("Subscribe App1 on VIDEO_STREAMING updates", common.getSystemCapability, { true }) + +common.Title("Test") +common.Step("OnSystemCapabilityUpdated notification processing", common.sendOnSystemCapabilityUpdated, + { appSessionId1, expected, vsc }) +common.Step("Check GetSystemCapability processing App1", common.getSystemCapabilityExtended, { appSessionId1 }) +common.Step("Register App2", common.registerAppWOPTU, { appSessionId2 }) +common.Step("Activate App2", common.activateApp, { appSessionId2 }) +common.Step("Check GetSystemCapability processing App2", common.getSystemCapabilityExtended, { appSessionId2 }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/001_OnAppCapabilityUpdated_from_mobile_to_HMI_happy_path.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/001_OnAppCapabilityUpdated_from_mobile_to_HMI_happy_path.lua new file mode 100644 index 0000000000..94e9cb95df --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/001_OnAppCapabilityUpdated_from_mobile_to_HMI_happy_path.lua @@ -0,0 +1,31 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: +-- Processing OnAppCapabilityUpdated notification from mobile to HMI +-- +-- Precondition: +-- 1. SDL and HMI are started +-- 2. App with `PROJECTION` appHMIType and protocol version 5 is registered +-- 3. OnAppCapabilityUpdated notification is allowed by policy for App +-- +-- Sequence: +-- 1. App sends OnAppCapabilityUpdated for VIDEO_STREAMING capability type with all valid parameters +-- SDL does: +-- - a. send OnAppCapabilityUpdated notification to the HMI +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("RAI", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) + +common.Title("Test") +common.Step("App sends OnAppCapabilityUpdated for VIDEO_STREAMING", common.sendOnAppCapabilityUpdated ) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/002_OnAppCapabilityUpdated_from_mobile_to_HMI_capability_parameter_non_mandatory_parameter_is_missed.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/002_OnAppCapabilityUpdated_from_mobile_to_HMI_capability_parameter_non_mandatory_parameter_is_missed.lua new file mode 100644 index 0000000000..c17acb2b32 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/002_OnAppCapabilityUpdated_from_mobile_to_HMI_capability_parameter_non_mandatory_parameter_is_missed.lua @@ -0,0 +1,41 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: +-- Processing OnAppCapabilityUpdated notification with only mandatory parameters from mobile to HMI +-- +-- Precondition: +-- 1. SDL and HMI are started +-- 2. App with `PROJECTION` or `NAVIGATION` appHMIType and protocol version 5 is registered +-- 3. OnAppCapabilityUpdated notification is allowed by policy for App +-- +-- Sequence: +-- 1. App sends OnAppCapabilityUpdated for VIDEO_STREAMING capability type without +-- videoStreamingCapability parameter +-- SDL does: +-- - a. send OnAppCapabilityUpdated notification to the HMI +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appCapability = { + appCapability = { + appCapabilityType = "VIDEO_STREAMING" + -- videoStreamingCapability is missed + } +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("RAI", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) + +common.Title("Test") +common.Step("App sends OnAppCapabilityUpdated with appCapabilityType without videoStreamingCapability parameter", + common.sendOnAppCapabilityUpdated, { appCapability }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/003_OnAppCapabilityUpdated_from_mobile_to_HMI_mandatory_parameter_is_missed.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/003_OnAppCapabilityUpdated_from_mobile_to_HMI_mandatory_parameter_is_missed.lua new file mode 100644 index 0000000000..1ea94dd3bd --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/003_OnAppCapabilityUpdated_from_mobile_to_HMI_mandatory_parameter_is_missed.lua @@ -0,0 +1,42 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: +-- Processing OnAppCapabilityUpdated notification without mandatory parameter from mobile to HMI +-- +-- Precondition: +-- 1. SDL and HMI are started +-- 2. App with `PROJECTION` or `NAVIGATION` appHMIType and protocol version 5 is registered +-- 3. OnAppCapabilityUpdated notification is allowed by policy for App +-- +-- Sequence: +-- 1. App sends OnAppCapabilityUpdated without mandatory parameter appCapabilityType +-- SDL does: +-- - a. not send OnAppCapabilityUpdated notification to the HMI +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local notExpected = 0 + +local appCapability = { + appCapability = { + -- appCapabilityType - mandatory parameter is missed + videoStreamingCapability = common.buildVideoStreamingCapabilities() + } +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("RAI", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) + +common.Title("Test") +common.Step("App sends OnAppCapabilityUpdated without mandatory parameter appCapabilityType", + common.sendOnAppCapabilityUpdated, { appCapability, notExpected }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/004_OnAppCapabilityUpdated_capability_parameter_has_additionalVideoStreamingCapabilities_only.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/004_OnAppCapabilityUpdated_capability_parameter_has_additionalVideoStreamingCapabilities_only.lua new file mode 100644 index 0000000000..9a34cedc53 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/004_OnAppCapabilityUpdated_capability_parameter_has_additionalVideoStreamingCapabilities_only.lua @@ -0,0 +1,44 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: +-- Processing OnAppCapabilityUpdated notification with additionalVideoStreamingCapabilities parameter only +-- from mobile to HMI +-- +-- Precondition: +-- 1. SDL and HMI are started +-- 2. App with `PROJECTION` or `NAVIGATION` appHMIType and protocol version 5 is registered +-- 3. OnAppCapabilityUpdated notification is allowed by policy for App +-- +-- Sequence: +-- 1. App sends OnAppCapabilityUpdated for VIDEO_STREAMING capability type with videoStreamingCapability +-- parameter that contains additionalVideoStreamingCapabilities parameter only +-- SDL does: +-- - a. send OnAppCapabilityUpdated notification to the HMI +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appCapability = { + appCapability = { + appCapabilityType = "VIDEO_STREAMING", + videoStreamingCapability = { + additionalVideoStreamingCapabilities = { common.getVscData() } + } + } +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("RAI", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) + +common.Title("Test") +common.Step("App sends OnAppCapabilityUpdated with additionalVideoStreamingCapabilities parameter only", + common.sendOnAppCapabilityUpdated, { appCapability }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/005_OnAppCapabilityUpdated_additionalVideoStreamingCapabilities_has_nesting_level.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/005_OnAppCapabilityUpdated_additionalVideoStreamingCapabilities_has_nesting_level.lua new file mode 100644 index 0000000000..e01c79b39c --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/005_OnAppCapabilityUpdated_additionalVideoStreamingCapabilities_has_nesting_level.lua @@ -0,0 +1,46 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: +-- Processing OnAppCapabilityUpdated notification with recursive nesting additionalVideoStreamingCapabilities parameter +-- from mobile to HMI +-- +-- Precondition: +-- 1. SDL and HMI are started +-- 2. App with `PROJECTION` or `NAVIGATION` appHMIType and protocol version 5 is registered +-- 3. OnAppCapabilityUpdated notification is allowed by policy for App +-- +-- Sequence: +-- 1. App sends OnAppCapabilityUpdated for VIDEO_STREAMING capability type with additionalVideoStreamingCapabilities +-- parameter that has a nesting additionalVideoStreamingCapabilities parameter +-- SDL does: +-- - a. send OnAppCapabilityUpdated notification to the HMI +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appCapability = { + appCapability = { + appCapabilityType = "VIDEO_STREAMING", + videoStreamingCapability = { + additionalVideoStreamingCapabilities = { + common.buildVideoStreamingCapabilities() + } + } + } +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("RAI", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) + +common.Title("Test") +common.Step("App sends OnAppCapabilityUpdated additionalVideoStreamingCapabilities has a nesting level ", + common.sendOnAppCapabilityUpdated, { appCapability }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/006_OnAppCapabilityUpdated_from_mobile_to_HMI_not_allowed_by_Policy_after_PTU.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/006_OnAppCapabilityUpdated_from_mobile_to_HMI_not_allowed_by_Policy_after_PTU.lua new file mode 100644 index 0000000000..371fc98b24 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/006_OnAppCapabilityUpdated_from_mobile_to_HMI_not_allowed_by_Policy_after_PTU.lua @@ -0,0 +1,44 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: +-- Processing OnAppCapabilityUpdated notification from mobile to HMI in case notification is not allowed by policies +-- +-- Precondition: +-- 1. SDL and HMI are started +-- 2. App with `PROJECTION` or `NAVIGATION` appHMIType and protocol version 5 is registered +-- 3. OnAppCapabilityUpdated notification is allowed by policy for App +-- +-- Sequence: +-- 1. PTU is performed with removing of permissions for OnAppCapabilityUpdated notification +-- 2. App sends OnAppCapabilityUpdated for VIDEO_STREAMING capability type +-- SDL does: +-- - a. not send OnAppCapabilityUpdated notification to the HMI +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local notExpected = 0 +local defaultAppCapability = nil + +--[[ Local Functions ]] +local function ptUpdate(pTbl) + pTbl.policy_table.functional_groupings["Base-4"].rpcs.OnAppCapabilityUpdated = nil +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("RAI", common.registerApp) +common.Step("Activate App", common.activateApp) +common.Step("App sends OnAppCapabilityUpdated allowed by Policy", common.sendOnAppCapabilityUpdated ) + +common.Title("Test") +common.Step("Policy Table Update Certificate", common.policyTableUpdate, { ptUpdate }) +common.Step("App sends OnAppCapabilityUpdated not allowed by Policy", common.sendOnAppCapabilityUpdated, + { defaultAppCapability, notExpected }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/007_OnAppCapabilityUpdated_from_mobile_to_HMI_capability_parameter_has_no_parameters.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/007_OnAppCapabilityUpdated_from_mobile_to_HMI_capability_parameter_has_no_parameters.lua new file mode 100644 index 0000000000..083ed51871 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/007_OnAppCapabilityUpdated_from_mobile_to_HMI_capability_parameter_has_no_parameters.lua @@ -0,0 +1,40 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: +-- Processing OnAppCapabilityUpdated notification with empty videoStreamingCapability from mobile to HMI +-- +-- Precondition: +-- 1. SDL and HMI are started +-- 2. App with `PROJECTION` or `NAVIGATION` appHMIType and protocol version 5 is registered +-- 3. OnAppCapabilityUpdated notification is allowed by policy for App +-- +-- Sequence: +-- 1. App sends OnAppCapabilityUpdated for VIDEO_STREAMING capability type with empty videoStreamingCapability +-- SDL does: +-- - a. send OnAppCapabilityUpdated notification to the HMI +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appCapability = { + appCapability = { + appCapabilityType = "VIDEO_STREAMING", + videoStreamingCapability = { } + } +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("RAI", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) + +common.Title("Test") +common.Step("App sends OnAppCapabilityUpdated with empty videoStreamingCapability", common.sendOnAppCapabilityUpdated, + { appCapability }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/008_OnAppCapabilityUpdated_from_mobile_to_HMI_count_of_items_of_array_in_range.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/008_OnAppCapabilityUpdated_from_mobile_to_HMI_count_of_items_of_array_in_range.lua new file mode 100644 index 0000000000..a436689ffa --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/008_OnAppCapabilityUpdated_from_mobile_to_HMI_count_of_items_of_array_in_range.lua @@ -0,0 +1,42 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: +-- Processing OnAppCapabilityUpdated notification with max size of additionalVideoStreamingCapabilities array +-- from mobile to HMI +-- +-- Precondition: +-- 1. SDL and HMI are started +-- 2. App with `PROJECTION` or `NAVIGATION` appHMIType and protocol version 5 is registered +-- 3. OnAppCapabilityUpdated notification is allowed by policy for App +-- +-- Sequence: +-- 1. App sends OnAppCapabilityUpdated for VIDEO_STREAMING capability type with 100 items in +-- additionalVideoStreamingCapabilities array (in range) +-- SDL does: +-- - a. send OnAppCapabilityUpdated notification to the HMI +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appCapability = { + appCapability = { + appCapabilityType = "VIDEO_STREAMING", + videoStreamingCapability = common.buildVideoStreamingCapabilities(100) + } +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("RAI", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) + +common.Title("Test") +common.Step("App sends OnAppCapabilityUpdated 100 items in additionalVideoStreamingCapabilities", + common.sendOnAppCapabilityUpdated, { appCapability }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/009_OnAppCapabilityUpdated_from_mobile_to_HMI_count_of_items_of_array_out_of_range.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/009_OnAppCapabilityUpdated_from_mobile_to_HMI_count_of_items_of_array_out_of_range.lua new file mode 100644 index 0000000000..6226469ab3 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/009_OnAppCapabilityUpdated_from_mobile_to_HMI_count_of_items_of_array_out_of_range.lua @@ -0,0 +1,54 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: +-- Processing OnAppCapabilityUpdated notification with 101 or 0 items +-- in additionalVideoStreamingCapabilities array (out of range) from mobile to HMI in case +-- +-- Precondition: +-- 1. SDL and HMI are started +-- 2. App with `PROJECTION` or `NAVIGATION` appHMIType is registered +-- 3. OnAppCapabilityUpdated notification is allowed by policy for App +-- +-- Sequence: +-- 1. App sends OnAppCapabilityUpdated for VIDEO_STREAMING capability type with 101 or 0 items in +-- additionalVideoStreamingCapabilities array (out of range) +-- SDL does: +-- - a. not send OnAppCapabilityUpdated notification to the HMI +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local notExpected = 0 + +local cases = { + outOfLowerBound = { + appCapability = { + appCapabilityType = "VIDEO_STREAMING", + videoStreamingCapability = { additionalVideoStreamingCapabilities = { }} + } + }, + outOfUpperBound = { + appCapability = { + appCapabilityType = "VIDEO_STREAMING", + videoStreamingCapability = common.buildVideoStreamingCapabilities(101) + } + } +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("RAI", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) + +common.Title("Test") +for caseName, value in common.spairs(cases) do + common.Step("OnAppCapabilityUpdated with additionalVideoStreamingCapabilities " ..caseName, + common.sendOnAppCapabilityUpdated, { value, notExpected }) +end + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/010_OnAppCapabilityUpdated_VCS_is_mismatched_with_additional_VCS_received_from_HMI_on_start.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/010_OnAppCapabilityUpdated_VCS_is_mismatched_with_additional_VCS_received_from_HMI_on_start.lua new file mode 100644 index 0000000000..c4a5f82c17 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/010_OnAppCapabilityUpdated_VCS_is_mismatched_with_additional_VCS_received_from_HMI_on_start.lua @@ -0,0 +1,47 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: +-- Processing OnAppCapabilityUpdated notification with videoStreamingCapability that doesn't match +-- with the videoStreamingCapability received from HMI on start from mobile to HMI +-- +-- Precondition: +-- 1. SDL and HMI are started +-- 2. App with `PROJECTION` or `NAVIGATION` appHMIType and protocol version 5 is registered +-- 3. OnAppCapabilityUpdated notification is allowed by policy for App +-- +-- Sequence: +-- 1. App sends OnAppCapabilityUpdated for VIDEO_STREAMING capability type with videoStreamingCapability that doesn't +-- match with the videoStreamingCapability received from HMI on start +-- SDL does: +-- - a. send OnAppCapabilityUpdated notification to the HMI +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local isSubscribe = false +local appCapability = { + appCapability = { + appCapabilityType = "VIDEO_STREAMING", + videoStreamingCapability = common.buildVideoStreamingCapabilities() + } +} +local vsc = common.getDefaultHMITable().UI.GetCapabilities.params.systemCapabilities.videoStreamingCapability + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("RAI", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) + common.Step("GetSystemCapability with default videoStreamingCapability", common.getSystemCapability, + { isSubscribe, appSessionId, vsc }) + +common.Title("Test") +common.Step("App sends OnAppCapabilityUpdated with new videoStreamingCapability", common.sendOnAppCapabilityUpdated, + { appCapability }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/011_OnAppCapabilityUpdated_app_is_registered_with_lower_version_than_the_notification_required.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/011_OnAppCapabilityUpdated_app_is_registered_with_lower_version_than_the_notification_required.lua new file mode 100644 index 0000000000..8389d4e232 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/011_OnAppCapabilityUpdated_app_is_registered_with_lower_version_than_the_notification_required.lua @@ -0,0 +1,41 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: +-- Processing OnAppCapabilityUpdated notification from mobile to HMI +-- in case app version is less then notification version +-- +-- Precondition: +-- 1. SDL and HMI are started +-- 2. App with `PROJECTION` or `NAVIGATION` appHMIType, protocol version 5, version 6.0 is registered +-- 3. OnAppCapabilityUpdated notification is allowed by policy for App +-- +-- Sequence: +-- 1. App sends OnAppCapabilityUpdated for VIDEO_STREAMING capability type +-- SDL does: +-- - a. not send OnAppCapabilityUpdated notification to the HMI +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ General configuration parameters ]] +config.application1.registerAppInterfaceParams.syncMsgVersion.majorVersion = 6 +config.application1.registerAppInterfaceParams.syncMsgVersion.minorVersion = 0 + +--[[ Local Variables ]] +local notExpected = 0 +local defaultAppCapability = nil + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("RAI", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) + +common.Title("Test") +common.Step("App sends OnAppCapabilityUpdated for VIDEO_STREAMING", common.sendOnAppCapabilityUpdated, + { defaultAppCapability, notExpected }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/012_OnAppCapabilityUpdated_from_mobile_to_HMI_capability_parameter_has_incorrect_parameters.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/012_OnAppCapabilityUpdated_from_mobile_to_HMI_capability_parameter_has_incorrect_parameters.lua new file mode 100644 index 0000000000..acaf7f6b79 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/012_OnAppCapabilityUpdated_from_mobile_to_HMI_capability_parameter_has_incorrect_parameters.lua @@ -0,0 +1,44 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: +-- Processing OnAppCapabilityUpdated notification with incorrect parameter value from mobile to HMI +-- +-- Precondition: +-- 1. SDL and HMI are started +-- 2. App with `PROJECTION` or `NAVIGATION` appHMIType is registered +-- 3. OnAppCapabilityUpdated notification is allowed by policy for App +-- +-- Sequence: +-- 1. App sends OnAppCapabilityUpdated for VIDEO_STREAMING capability type with videoStreamingCapability that has +-- the incorrect parameter +-- SDL does: +-- - a. not send OnAppCapabilityUpdated notification to the HMI +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local notExpected = 0 + +local appCapability = { + appCapability = { + appCapabilityType = "VIDEO_STREAMING", + videoStreamingCapability = common.buildVideoStreamingCapabilities() + } +} +appCapability.appCapability.videoStreamingCapability.preferredResolution.resolutionWidth = "resolutionWidth" -- invalid type + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("RAI", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) + +common.Title("Test") +common.Step("App sends OnAppCapabilityUpdated with incorrect parameter", common.sendOnAppCapabilityUpdated, + { appCapability, notExpected }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/001_OnSystemCapabilityUpdated_without_AddVSC.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/001_OnSystemCapabilityUpdated_without_AddVSC.lua new file mode 100644 index 0000000000..637d9c2d0a --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/001_OnSystemCapabilityUpdated_without_AddVSC.lua @@ -0,0 +1,45 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: Processing of OnSystemCapabilityUpdated notification without +-- additionalVideoStreamingCapabilities parameter +-- +-- Preconditions: +-- 1. HMI capabilities contain data about videoStreamingCapability without additionalVideoStreamingCapabilities +-- 2. SDL and HMI are started +-- 3. App is registered, activated and subscribed on videoStreamingCapability updates +-- +-- Sequence: +-- 1. HMI sends OnSystemCapabilityUpdated notification for "VIDEO_STREAMING" to SDL +-- without additionalVideoStreamingCapabilities +-- SDL does: +-- a. send OnSystemCapabilityUpdated (videoStreamingCapability) notification +-- without additionalVideoStreamingCapabilities received from HMI to App +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local expected = 1 +local isSubscribe = true +local anotherVSC = 2 + +local vsc = common.getVscData(anotherVSC) +vsc.additionalVideoStreamingCapabilities = nil + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) +common.Step("Subscribe App on VIDEO_STREAMING updates", common.getSystemCapability, { isSubscribe }) + +common.Title("Test") +common.Step("Check OnSystemCapabilityUpdated notification processing", common.sendOnSystemCapabilityUpdated, + { appSessionId, expected, vsc }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/002_OnSystemCapabilityUpdated_with_addVSC.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/002_OnSystemCapabilityUpdated_with_addVSC.lua new file mode 100644 index 0000000000..291a6fe332 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/002_OnSystemCapabilityUpdated_with_addVSC.lua @@ -0,0 +1,46 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: Processing of OnSystemCapabilityUpdated notification with additionalVideoStreamingCapabilities parameter +-- +-- Preconditions: +-- 1. HMI capabilities contain data about videoStreamingCapability with additionalVideoStreamingCapabilities +-- 2. SDL and HMI are started +-- 3. App is registered, activated and subscribed on videoStreamingCapability updates +-- +-- Sequence: +-- 1. HMI sends OnSystemCapabilityUpdated notification for "VIDEO_STREAMING" to SDL +-- with additionalVideoStreamingCapabilities +-- SDL does: +-- a. send OnSystemCapabilityUpdated (videoStreamingCapability) notification +-- with additionalVideoStreamingCapabilities received from HMI to App +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local expected = 1 +local isSubscribe = true +local anotherVSC = 2 + +local vsc = common.getVscData(anotherVSC) +vsc.additionalVideoStreamingCapabilities = { + [1] = common.getVscData() +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) +common.Step("Subscribe App on VIDEO_STREAMING updates", common.getSystemCapability, { isSubscribe }) + +common.Title("Test") +common.Step("Check OnSystemCapabilityUpdated notification processing", + common.sendOnSystemCapabilityUpdated, { appSessionId, expected, vsc }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/003_OnSystemCapabilityUpdated_missing_some_params.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/003_OnSystemCapabilityUpdated_missing_some_params.lua new file mode 100644 index 0000000000..484f58150b --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/003_OnSystemCapabilityUpdated_missing_some_params.lua @@ -0,0 +1,46 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: Processing of OnSystemCapabilityUpdated notification with missing not mandatory parameters +-- +-- Preconditions: +-- 1. HMI capabilities contain data about videoStreamingCapability +-- 2. SDL and HMI are started +-- 3. App is registered, activated and subscribed on videoStreamingCapability updates +-- +-- Sequence: +-- 1. HMI sends OnSystemCapabilityUpdated notification for "VIDEO_STREAMING" to SDL +-- with missing not mandatory parameters +-- SDL does: +-- a. send OnSystemCapabilityUpdated (videoStreamingCapability) notification to mobile +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local expected = 1 +local isSubscribe = true +local anotherVSC = 2 + +local baseVsc = common.getVscData(anotherVSC) +local vsc = { + preferredResolution = baseVsc.preferredResolution, + scale = baseVsc.scale +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) +common.Step("Subscribe App on VIDEO_STREAMING updates", common.getSystemCapability, { isSubscribe }) + +common.Title("Test") +common.Step("Check OnSystemCapabilityUpdated notification processing", common.sendOnSystemCapabilityUpdated, + { appSessionId, expected, vsc }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/004_OnSystemCapabilityUpdated_missing_all_params.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/004_OnSystemCapabilityUpdated_missing_all_params.lua new file mode 100644 index 0000000000..95608751d2 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/004_OnSystemCapabilityUpdated_missing_all_params.lua @@ -0,0 +1,41 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: Processing of empty OnSystemCapabilityUpdated notification +-- +-- Preconditions: +-- 1. HMI capabilities contain data about videoStreamingCapability +-- 2. SDL and HMI are started +-- 3. App is registered, activated and subscribed on videoStreamingCapability updates +-- +-- Sequence: +-- 1. HMI sends OnSystemCapabilityUpdated notification for "VIDEO_STREAMING" to SDL +-- with no params for videoStreamingCapabilities +-- SDL does: +-- a. send OnSystemCapabilityUpdated (videoStreamingCapability) notification to mobile +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local expected = 1 +local isSubscribe = true + +local vsc = {} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) +common.Step("Subscribe App on VIDEO_STREAMING updates", common.getSystemCapability, { isSubscribe }) + +common.Title("Test") +common.Step("Check OnSystemCapabilityUpdated notification processing", common.sendOnSystemCapabilityUpdated, + { appSessionId, expected, vsc }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/005_OnSystemCapabilityUpdated_in_range_minsize_maxsize_array.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/005_OnSystemCapabilityUpdated_in_range_minsize_maxsize_array.lua new file mode 100644 index 0000000000..d0b0b4baa0 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/005_OnSystemCapabilityUpdated_in_range_minsize_maxsize_array.lua @@ -0,0 +1,48 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: Processing of OnSystemCapabilityUpdated notification with valid +-- number of additionalVideoStreamingCapabilities array items +-- +-- Preconditions: +-- 1. HMI capabilities contain data about videoStreamingCapability +-- 2. SDL and HMI are started +-- 3. App is registered, activated and subscribed on videoStreamingCapability updates +-- +-- Sequence: +-- 1. HMI sends OnSystemCapabilityUpdated notification for "VIDEO_STREAMING" to SDL with valid +-- number of additionalVideoStreamingCapabilities array items +-- SDL does: +-- a. send OnSystemCapabilityUpdated (videoStreamingCapability) notification to mobile +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local expected = 1 +local isSubscribe = true + +local arraySize = { + minSize = 1, + maxSize = 100 +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) +common.Step("Subscribe App on VIDEO_STREAMING updates", common.getSystemCapability, { isSubscribe }) + + common.Title("Test") +for parameter, value in pairs(arraySize) do + common.Step("Check OnSystemCapabilityUpdated notification processing in range " .. parameter .. " " .. value, + common.sendOnSystemCapabilityUpdated, { appSessionId, expected, common.buildVideoStreamingCapabilities(value) }) +end + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) + diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/006_OnSystemCapabilityUpdated_out_of_range_minsize_maxsize_array.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/006_OnSystemCapabilityUpdated_out_of_range_minsize_maxsize_array.lua new file mode 100644 index 0000000000..238ed27fed --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/006_OnSystemCapabilityUpdated_out_of_range_minsize_maxsize_array.lua @@ -0,0 +1,47 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: Processing of OnSystemCapabilityUpdated notification with invalid +-- number of additionalVideoStreamingCapabilities array items +-- +-- Preconditions: +-- 1. HMI capabilities contain data about videoStreamingCapability +-- 2. SDL and HMI are started +-- 3. App is registered, activated and subscribed on videoStreamingCapability updates +-- +-- Sequence: +-- 1. HMI sends OnSystemCapabilityUpdated notification for "VIDEO_STREAMING" to SDL with invalid +-- number of additionalVideoStreamingCapabilities array items +-- SDL does: +-- a. not send OnSystemCapabilityUpdated (videoStreamingCapability) notification to mobile +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local notExpected = 0 +local isSubscribe = true + +local arraySize = { + minSize = 0, + maxSize = 101 +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) +common.Step("Subscribe App on VIDEO_STREAMING updates", common.getSystemCapability, { isSubscribe }) + +common.Title("Test") +for parameter, value in pairs(arraySize) do + common.Step("Check OnSystemCapabilityUpdated notification processing out of range " .. parameter .. " " .. value, + common.sendOnSystemCapabilityUpdated, { appSessionId, notExpected, common.buildVideoStreamingCapabilities(value) }) +end + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/007_OnSystemCapabilityUpdated_invalid.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/007_OnSystemCapabilityUpdated_invalid.lua new file mode 100644 index 0000000000..5e4047006e --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/007_OnSystemCapabilityUpdated_invalid.lua @@ -0,0 +1,81 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: Processing of OnSystemCapabilityUpdated notification with invalid params +-- +-- Preconditions: +-- 1. HMI capabilities contain data about videoStreamingCapability +-- 2. SDL and HMI are started +-- 3. App is registered, activated and subscribed on videoStreamingCapability updates +-- +-- Sequence: +-- 1. HMI sends OnSystemCapabilityUpdated notification for "VIDEO_STREAMING" to SDL with invalid +-- values of VideoStreamingCapabilities parameters +-- SDL does: +-- a. not send OnSystemCapabilityUpdated (videoStreamingCapability) notification to mobile +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local notExpected = 0 +local isSubscribe = true +local anotherVSC = 2 + +local checks = { } + +checks.invalid_type = common.getVscData(anotherVSC) +checks.invalid_type.preferredResolution.resolutionWidth = "8000" -- invalid type + +checks.invalid_value = common.getVscData(anotherVSC) +checks.invalid_value.maxBitrate = -1 -- invalid value + +checks.invalid_additional_type = common.getVscData(anotherVSC) +checks.invalid_additional_type.additionalVideoStreamingCapabilities = { + [1] = common.getVscData(), + [2] = common.getVscData(anotherVSC) +} +checks.invalid_additional_type.additionalVideoStreamingCapabilities[2].hapticSpatialDataSupported = 18 -- invalid type + +checks.invalid_additional_value = common.getVscData(anotherVSC) +checks.invalid_additional_value.additionalVideoStreamingCapabilities = { + [1] = common.getVscData(), + [2] = common.getVscData(anotherVSC) +} +checks.invalid_additional_value.additionalVideoStreamingCapabilities[1].scale = -1 -- invalid value + +checks.invalid_deep_nested_type = common.getVscData(anotherVSC) +checks.invalid_deep_nested_type.additionalVideoStreamingCapabilities = { + [1] = common.buildVideoStreamingCapabilities(2) +} + +checks.invalid_deep_nested_type.additionalVideoStreamingCapabilities[1].additionalVideoStreamingCapabilities[1] = + common.buildVideoStreamingCapabilities(3) +checks.invalid_deep_nested_type.additionalVideoStreamingCapabilities[1].additionalVideoStreamingCapabilities[1] + .additionalVideoStreamingCapabilities[3].supportedFormats = 2 -- invalid type + +checks.invalid_deep_nested_value = common.getVscData(anotherVSC) +checks.invalid_deep_nested_value.additionalVideoStreamingCapabilities = { + [1] = common.buildVideoStreamingCapabilities(3) +} +checks.invalid_deep_nested_value.additionalVideoStreamingCapabilities[1].additionalVideoStreamingCapabilities[2] + .pixelPerInch = -2 -- invalid value + +--[[ Scenario ]] +for type, value in pairs(checks) do + common.Title("Preconditions") + common.Step("Clean environment", common.preconditions) + common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities) + common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + common.Step("Register App", common.registerAppWOPTU) + common.Step("Activate App", common.activateApp) + common.Step("Subscribe App on VIDEO_STREAMING updates", common.getSystemCapability, { isSubscribe }) + + common.Title("Test") + common.Step("Check OnSystemCapabilityUpdated notification processing " .. type, common.sendOnSystemCapabilityUpdated, + {appSessionId, notExpected, value }) + + common.Title("Postconditions") + common.Step("Stop SDL", common.postconditions) +end diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/008_OnSystemCapabilityUpdated_not_existing_appid.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/008_OnSystemCapabilityUpdated_not_existing_appid.lua new file mode 100644 index 0000000000..8086fc17b2 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/008_OnSystemCapabilityUpdated_not_existing_appid.lua @@ -0,0 +1,55 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: Processing of OnSystemCapabilityUpdated notification with not existing appID +-- +-- Preconditions: +-- 1. HMI capabilities contain data about videoStreamingCapability +-- 2. SDL and HMI are started +-- 3. App is registered, activated and subscribed on videoStreamingCapability updates +-- +-- Sequence: +-- 1. HMI sends OnSystemCapabilityUpdated notification for "VIDEO_STREAMING" to SDL +-- with not existing appID +-- SDL does: +-- a. not send OnSystemCapabilityUpdated (videoStreamingCapability) notification to mobile +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local isSubscribe = true +local anotherVSC = 2 + +local vsc = common.getVscData(anotherVSC) + +--[[ Local Functions ]] +local function sendOnSystemCapabilityUpdatedWithNotExistingAppId() + local systemCapabilityParam = { + systemCapability = { + systemCapabilityType = "VIDEO_STREAMING", + videoStreamingCapability = vsc + }, + appID = common.getHMIAppId(appSessionId) + 1 -- not existing app id + } + common.getHMIConnection():SendNotification("BasicCommunication.OnSystemCapabilityUpdated", systemCapabilityParam) + common.getMobileSession():ExpectNotification("OnSystemCapabilityUpdated", systemCapabilityParam) + :Times(0) +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) +common.Step("Subscribe App on VIDEO_STREAMING updates", common.getSystemCapability, { isSubscribe }) + +common.Title("Test") +common.Step("Check OnSystemCapabilityUpdated notification processing", + sendOnSystemCapabilityUpdatedWithNotExistingAppId) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/009_OnSystemCapabilityUpdated_no_appid.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/009_OnSystemCapabilityUpdated_no_appid.lua new file mode 100644 index 0000000000..2753321f13 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/009_OnSystemCapabilityUpdated_no_appid.lua @@ -0,0 +1,52 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: Processing of OnSystemCapabilityUpdated notification with no appID +-- +-- Preconditions: +-- 1. HMI capabilities contain data about videoStreamingCapability +-- 2. SDL and HMI are started +-- 3. App is registered, activated and subscribed on videoStreamingCapability updates +-- +-- Sequence: +-- 1. HMI sends OnSystemCapabilityUpdated notification for "VIDEO_STREAMING" to SDL with no appID +-- SDL does: +-- a. not send OnSystemCapabilityUpdated (videoStreamingCapability) notification to mobile +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local isSubscribe = true +local anotherVSC = 2 + +local vsc = common.getVscData(anotherVSC) + +--[[ Local Functions ]] +local function sendOnSystemCapabilityUpdatedWithoutAppId() + local systemCapabilityParam = { + systemCapability = { + systemCapabilityType = "VIDEO_STREAMING", + videoStreamingCapability = vsc + }, + appID = nil -- no app id + } + common.getHMIConnection():SendNotification("BasicCommunication.OnSystemCapabilityUpdated", systemCapabilityParam) + common.getMobileSession():ExpectNotification("OnSystemCapabilityUpdated", systemCapabilityParam) + :Times(0) +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) +common.Step("Subscribe App on VIDEO_STREAMING updates", common.getSystemCapability, { isSubscribe }) + +common.Title("Test") +common.Step("Check OnSystemCapabilityUpdated notification processing", sendOnSystemCapabilityUpdatedWithoutAppId) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/010_OnSystemCapabilityUpdated_mismatched_initial.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/010_OnSystemCapabilityUpdated_mismatched_initial.lua new file mode 100644 index 0000000000..6a66c1a472 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/010_OnSystemCapabilityUpdated_mismatched_initial.lua @@ -0,0 +1,46 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: Processing of OnSystemCapabilityUpdated notification with videoStreamingCapabilities parameter +-- which mismatched with initial videoStreamingCapabilities received on startup +-- +-- Preconditions: +-- 1. HMI capabilities contain data about videoStreamingCapability +-- 2. SDL and HMI are started +-- 3. App is registered, activated and subscribed on videoStreamingCapability updates +-- +-- Sequence: +-- 1. HMI sends OnSystemCapabilityUpdated notification for "VIDEO_STREAMING" to SDL with data +-- which mismatched with initial videoStreamingCapabilities received from HMI on startup +-- SDL does: +-- a. send OnSystemCapabilityUpdated (videoStreamingCapability) notification to mobile +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local expected = 1 +local isSubscribe = true +local anotherVSC = 2 + +local vsc = common.getVscData(anotherVSC) +vsc.preferredResolution.resolutionWidth = vsc.preferredResolution.resolutionWidth + 1 +vsc.preferredResolution.resolutionWidth = vsc.preferredResolution.resolutionHeight + 1 +vsc.scale = vsc.scale + 0.1 + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) +common.Step("Subscribe App on VIDEO_STREAMING updates", common.getSystemCapability, { isSubscribe }) + +common.Title("Test") +common.Step("Check OnSystemCapabilityUpdated notification processing", common.sendOnSystemCapabilityUpdated, + { appSessionId, expected, vsc }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/011_OnSystemCapabilityUpdated_multiple_apps.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/011_OnSystemCapabilityUpdated_multiple_apps.lua new file mode 100644 index 0000000000..b834505969 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/011_OnSystemCapabilityUpdated_multiple_apps.lua @@ -0,0 +1,132 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: Processing of OnSystemCapabilityUpdated notification for 2 applications at once +-- +-- Preconditions: +-- 1. HMI capabilities contain data about videoStreamingCapability +-- 2. SDL and HMI are started +-- 3. App1 and App2 are registered and activated +-- +-- Sequence: +-- 1. HMI sends OnSystemCapabilityUpdated notification for "VIDEO_STREAMING" to SDL +-- SDL does: +-- a. not send OnSystemCapabilityUpdated (videoStreamingCapability) notification to App1 and App2 +-- 2. App1 subscribes on videoStreamingCapability updates +-- 3. HMI sends OnSystemCapabilityUpdated notification for "VIDEO_STREAMING" to SDL +-- SDL does: +-- a. send OnSystemCapabilityUpdated (videoStreamingCapability) notification to App1 +-- and doesn't send notification to App2 +-- 4. App2 subscribes on videoStreamingCapability updates +-- 5. HMI sends OnSystemCapabilityUpdated notification for "VIDEO_STREAMING" to SDL +-- SDL does: +-- a. send OnSystemCapabilityUpdated (videoStreamingCapability) notification to each apps +-- 6. App1 unsubscribes from videoStreamingCapability updates +-- 7. HMI sends OnSystemCapabilityUpdated notification for "VIDEO_STREAMING" to SDL +-- SDL does: +-- a. send OnSystemCapabilityUpdated (videoStreamingCapability) notification to App2 +-- and doesn't send notification to App1 +-- 8. App2 unsubscribes from videoStreamingCapability updates +-- 9. HMI sends OnSystemCapabilityUpdated notification for "VIDEO_STREAMING" to SDL +-- SDL does: +-- a. not send OnSystemCapabilityUpdated (videoStreamingCapability) notification to each apps +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionIdAbsent = nil +local appSessionId1 = 1 +local appSessionId2 = 2 +local expected = 1 +local notExpected = 0 +local isSubscribe = true +local isUnSubscribe = false + +--[[ Local Functions ]] +local function sendOnSystemCapabilityUpdatedMultipleApps(pAppId, pTimesAppId1, pTimesAppId2) + local mobileParams = { + systemCapability = { + systemCapabilityType = "VIDEO_STREAMING", + videoStreamingCapability = common.buildVideoStreamingCapabilities() + } + } + local hmiParams = common.cloneTable(mobileParams) + if pAppId then + hmiParams.appID = common.getHMIAppId(pAppId) + end + common.getHMIConnection():SendNotification("BasicCommunication.OnSystemCapabilityUpdated", hmiParams) + common.getMobileSession(1):ExpectNotification("OnSystemCapabilityUpdated", mobileParams) + :Times(pTimesAppId1) + :ValidIf(function(_, data) + if pTimesAppId1 == 1 and (not common.isTableEqual(mobileParams, data.payload)) then + return false, "Parameters of the notification received by App1 are incorrect: \nExpected: " + .. common.toString(mobileParams) .. "\nActual: " .. common.toString(data.payload) + end + return true + end) + common.getMobileSession(2):ExpectNotification("OnSystemCapabilityUpdated", mobileParams) + :Times(pTimesAppId2) + :ValidIf(function(_, data) + if pTimesAppId2 == 1 and (not common.isTableEqual(mobileParams, data.payload)) then + return false, "Parameters of the notification received by App2 are incorrect: \nExpected: " + .. common.toString(mobileParams) .. "\nActual: " .. common.toString(data.payload) + end + return true + end) +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App1", common.registerAppWOPTU, { appSessionId1 }) +common.Step("Register App2", common.registerAppWOPTU, { appSessionId2 }) + +common.Title("Test") +common.Step("Check OnSystemCapabilityUpdated notification processing with appID = 1", + sendOnSystemCapabilityUpdatedMultipleApps, { appSessionId1, notExpected, notExpected }) +common.Step("Check OnSystemCapabilityUpdated notification processing appID = 2", + sendOnSystemCapabilityUpdatedMultipleApps, { appSessionId2, notExpected, notExpected }) +common.Step("Check OnSystemCapabilityUpdated notification processing no appID", + sendOnSystemCapabilityUpdatedMultipleApps, { appSessionIdAbsent, notExpected, notExpected }) + +common.Step("App1 sends GetSystemCapability with subscribe = true", + common.getSystemCapability, { isSubscribe, appSessionId1 }) +common.Step("Check OnSystemCapabilityUpdated notification processing appID = 1", + sendOnSystemCapabilityUpdatedMultipleApps, { appSessionId1, expected, notExpected }) +common.Step("Check OnSystemCapabilityUpdated notification processing appID = 2", + sendOnSystemCapabilityUpdatedMultipleApps, { appSessionId2, notExpected, notExpected }) +common.Step("Check OnSystemCapabilityUpdated notification processing no appID", + sendOnSystemCapabilityUpdatedMultipleApps, { appSessionIdAbsent, notExpected, notExpected }) + +common.Step("App2 sends GetSystemCapability with subscribe = true", + common.getSystemCapability, { isSubscribe, appSessionId2 }) +common.Step("Check OnSystemCapabilityUpdated notification processing appID = 1", + sendOnSystemCapabilityUpdatedMultipleApps, { appSessionId1, expected, notExpected }) +common.Step("Check OnSystemCapabilityUpdated notification processing appID = 2", + sendOnSystemCapabilityUpdatedMultipleApps, { appSessionId2, notExpected, expected }) +common.Step("Check OnSystemCapabilityUpdated notification processing no appID", + sendOnSystemCapabilityUpdatedMultipleApps, { appSessionIdAbsent, notExpected, notExpected }) + +common.Step("App1 sends GetSystemCapability with subscribe = false", + common.getSystemCapability, { isUnSubscribe, appSessionId1 }) +common.Step("Check OnSystemCapabilityUpdated notification processing appID = 1", + sendOnSystemCapabilityUpdatedMultipleApps, { appSessionId1, notExpected, notExpected }) +common.Step("Check OnSystemCapabilityUpdated notification processing appID = 2", + sendOnSystemCapabilityUpdatedMultipleApps, { appSessionId2, notExpected, expected }) +common.Step("Check OnSystemCapabilityUpdated notification processing no appID", + sendOnSystemCapabilityUpdatedMultipleApps, { appSessionIdAbsent, notExpected, notExpected }) + +common.Step("App2 sends GetSystemCapability with subscribe = false", + common.getSystemCapability, { isUnSubscribe, appSessionId2 }) +common.Step("Check OnSystemCapabilityUpdated notification processing appID = 1", + sendOnSystemCapabilityUpdatedMultipleApps, { appSessionId1, notExpected, notExpected }) +common.Step("Check OnSystemCapabilityUpdated notification processing appID = 2", + sendOnSystemCapabilityUpdatedMultipleApps, { appSessionId2, notExpected, notExpected }) +common.Step("Check OnSystemCapabilityUpdated notification processing no appID", + sendOnSystemCapabilityUpdatedMultipleApps, { appSessionIdAbsent, notExpected, notExpected }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/012_OnSystemCapabilityUpdated_caching.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/012_OnSystemCapabilityUpdated_caching.lua new file mode 100644 index 0000000000..2fec58f8e5 --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/012_OnSystemCapabilityUpdated_caching.lua @@ -0,0 +1,53 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0296-Update-video-streaming-capabilities-during-ignition-cycle.md +-- +-- Description: Check that OnSystemCapabilityUpdated notification data is not persisted as capabilities +-- +-- Preconditions: +-- 1. HMI capabilities contain data about videoStreamingCapability +-- 2. SDL and HMI are started +-- 3. App is registered, activated and subscribed on videoStreamingCapability updates +-- +-- Sequence: +-- 1. HMI sends OnSystemCapabilityUpdated notification for "VIDEO_STREAMING" to SDL +-- a. send OnSystemCapabilityUpdated (videoStreamingCapability) notification to mobile +-- 2. It is restarted ignition cycle +-- 3. App is registered again +-- 4. App sends GetSystemCapability request +-- SDL does: +-- a. send GetSystemCapability response with initial videoStreamingCapability received from HMI on startup +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local common = require('test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common') + +--[[ Local Variables ]] +local appSessionId = 1 +local expected = 1 +local isSubscribe = true +local anotherVSC = 2 + +local vsc = common.getVscData(anotherVSC) + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Update HMICapabilitiesCacheFile in SDL.ini file ", common.setSDLIniParameter, + { "HMICapabilitiesCacheFile", "hmi_capabilities_cache.json" }) +common.Step("Set HMI Capabilities", common.setVideoStreamingCapabilities) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Register App", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) +common.Step("Subscribe App on VIDEO_STREAMING updates", common.getSystemCapability, { isSubscribe }) + +common.Title("Test") +common.Step("OnSystemCapabilityUpdated notification processing", common.sendOnSystemCapabilityUpdated, + { appSessionId, expected, vsc }) +common.Step("Ignition off", common.ignitionOff) +common.Step("Ignition on, SDL doesn't send HMI capabilities requests to HMI", + common.start, { common.getHMIParamsWithOutRequests() }) +common.Step("Register App", common.registerAppWOPTU) +common.Step("Activate App", common.activateApp) +common.Step("GetSystemCapability to check stored capabilities", common.getSystemCapability) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common.lua b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common.lua new file mode 100644 index 0000000000..8fde7421bc --- /dev/null +++ b/test_scripts/Capabilities/UpdateVideoStreamingCapabilities/common.lua @@ -0,0 +1,445 @@ +--------------------------------------------------------------------------------------------------- +-- Common module for VideoStreamingCapability +--------------------------------------------------------------------------------------------------- + +--[[ Required Shared libraries ]] +local actions = require("user_modules/sequences/actions") +local runner = require('user_modules/script_runner') +local hmi_values = require('user_modules/hmi_values') +local SDL = require('SDL') +local events = require('events') +local utils = require("user_modules/utils") +local constants = require('protocol_handler/ford_protocol_constants') +local bson = require("bson4lua") +local security = require("user_modules/sequences/security") +local test = require("user_modules/dummy_connecttest") +local json = require('modules/json') + +--[[ General configuration parameters ]] +runner.testSettings.isSelfIncluded = false +config.defaultProtocolVersion = 5 +config.ValidateSchema = false +constants.FRAME_SIZE.P5 = 131084 +config.application1.registerAppInterfaceParams.appHMIType = { "PROJECTION" } +config.application2.registerAppInterfaceParams.appHMIType = { "PROJECTION" } + +--[[ Shared Functions ]] +local m = {} +m.Title = runner.Title +m.Step = runner.Step +m.postconditions = actions.postconditions +m.preconditions = actions.preconditions +m.registerAppWOPTU = actions.registerAppWOPTU +m.activateApp = actions.activateApp +m.getHMIAppId = actions.app.getHMIId +m.getHMIConnection = actions.hmi.getConnection +m.getMobileSession = actions.mobile.getSession +m.setSDLIniParameter = actions.sdl.setSDLIniParameter +m.cloneTable = utils.cloneTable +m.toString = utils.toString +m.isTableEqual = utils.isTableEqual +m.getPreloadedPT = actions.sdl.getPreloadedPT +m.setPreloadedPT = actions.sdl.setPreloadedPT +m.spairs = utils.spairs +m.policyTableUpdate = actions.policyTableUpdate +m.registerApp = actions.registerApp +m.getDefaultHMITable = hmi_values.getDefaultHMITable + +--[[ Common Variables ]] +local hmiDefaultCapabilities = m.getDefaultHMITable() + +local bsonType = { + DOUBLE = 0x01, + STRING = 0x02, + DOCUMENT = 0x03, + ARRAY = 0x04, + BOOLEAN = 0x08, + INT32 = 0x10, + INT64 = 0x12 +} + +--[[ Overridden Functions ]] +local initHMI_onReady_Orig = test.initHMI_onReady +function test:initHMI_onReady(hmi_table) + return initHMI_onReady_Orig(self, hmi_table, false) +end + +--[[ Common Functions ]] +local function getSystemTimeValue() + local dd = os.date("*t") + return { + millisecond = 0, + second = dd.sec, + minute = dd.min, + hour = dd.hour, + day = dd.day, + month = dd.month, + year = dd.year, + tz_hour = 2, + tz_minute = 0 + } +end + +local function registerGetSystemTimeResponse() + actions.getHMIConnection():ExpectRequest("BasicCommunication.GetSystemTime") + :Do(function(_, data) + actions.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", { systemTime = getSystemTimeValue() }) + end) + :Pin() + :Times(AnyNumber()) +end + +function m.startWithGetSystemTime(pHMIParams) + local event = actions.run.createEvent() + actions.init.SDL() + :Do(function() + actions.init.HMI() + :Do(function() + actions.init.HMI_onReady(pHMIParams or hmiDefaultCapabilities) + :Do(function() + actions.getHMIConnection():SendNotification("BasicCommunication.OnSystemTimeReady") + registerGetSystemTimeResponse() + actions.init.connectMobile() + :Do(function() + actions.init.allowSDL() + :Do(function() + actions.hmi.getConnection():RaiseEvent(event, "Start event") + end) + end) + end) + end) + end) + return actions.hmi.getConnection():ExpectEvent(event, "Start event") +end + +function m.start(pHMIParams) + return actions.start(pHMIParams or hmiDefaultCapabilities) +end + +function m.getVscData(pIdx) + pIdx = pIdx or 1 + local videoStreamingCapabilitiesWithOutAddVSC = { + [1] = { + preferredResolution = { + resolutionWidth = 5000, + resolutionHeight = 5000 + }, + maxBitrate = 1073741823, + supportedFormats = {{ + protocol = "RTP", + codec = "VP9" + }}, + hapticSpatialDataSupported = true, + diagonalScreenSize = 1000, + pixelPerInch = 500, + scale = 5.5 + }, + [2] = { + preferredResolution = { + resolutionWidth = 200, + resolutionHeight = 200 + }, + maxBitrate = 200, + supportedFormats = {{ + protocol = "WEBM", + codec = "H265" + }}, + hapticSpatialDataSupported = false, + diagonalScreenSize = 200, + pixelPerInch = 200, + scale = 3 + } + } + return utils.cloneTable(videoStreamingCapabilitiesWithOutAddVSC[pIdx]) +end + +function m.getVscFromDefaultCapabilitiesFile() + return SDL.HMICap.get().UI.systemCapabilities.videoStreamingCapability +end + +function m.buildVideoStreamingCapabilities(pArraySizeAddVSC) + if not pArraySizeAddVSC then pArraySizeAddVSC = 1 end + local vSC = m.getVscData() + vSC.additionalVideoStreamingCapabilities = {} + if pArraySizeAddVSC == 0 then + vSC.additionalVideoStreamingCapabilities = json.EMPTY_ARRAY + else + for i = 1, pArraySizeAddVSC do + vSC.additionalVideoStreamingCapabilities[i] = m.getVscData(2) + end + end + return vSC +end + +function m.setVideoStreamingCapabilities(pVSC) + if not pVSC then pVSC = m.buildVideoStreamingCapabilities() end + hmiDefaultCapabilities.UI.GetCapabilities.params.systemCapabilities.videoStreamingCapability = pVSC +end + +function m.getSystemCapability(pSubscribe, pAppId, pResponseParams) + if not pAppId then pAppId = 1 end + if not pResponseParams then pResponseParams = m.buildVideoStreamingCapabilities() end + local requestParams = { + systemCapabilityType = "VIDEO_STREAMING", + subscribe = pSubscribe + } + local corId = actions.getMobileSession(pAppId):SendRPC("GetSystemCapability", requestParams) + actions.getMobileSession(pAppId):ExpectResponse(corId, { success = true, resultCode = "SUCCESS", + systemCapability = { + systemCapabilityType = "VIDEO_STREAMING" + } + }) + :ValidIf(function(_, data) + if not m.isTableEqual(pResponseParams, data.payload.systemCapability.videoStreamingCapability) then + return false, "Parameters of the response are incorrect: \nExpected: " .. m.toString(pResponseParams) + .. "\nActual: " .. m.toString(data.payload) + end + return true + end) +end + +function m.getSystemCapabilityExtended(pAppId, pVsc) + pAppId = pAppId or 1 + pVsc = pVsc or m.buildVideoStreamingCapabilities() + m.getHMIConnection():ExpectRequest("UI.GetCapabilities"):Times(0) + m.getSystemCapability(nil, pAppId, pVsc) +end + +function m.sendOnSystemCapabilityUpdated(pAppId, pTimes, pParams) + if not pTimes then pTimes = 1 end + if not pParams then pParams = m.buildVideoStreamingCapabilities() end + local mobileParams = { + systemCapability = { + systemCapabilityType = "VIDEO_STREAMING", + videoStreamingCapability = pParams + } + } + local hmiParams = m.cloneTable(mobileParams) + hmiParams.appID = m.getHMIAppId(pAppId) + actions.getHMIConnection():SendNotification("BasicCommunication.OnSystemCapabilityUpdated", hmiParams) + actions.getMobileSession():ExpectNotification("OnSystemCapabilityUpdated", mobileParams) + :Times(pTimes) + :ValidIf(function(_, data) + if not utils.isTableEqual(mobileParams, data.payload) then + return false, "Parameters of the notification are incorrect: \nExpected: " .. utils.toString(mobileParams) + .. "\nActual: " .. utils.toString(data.payload) + end + return true + end) +end + +function m.getHMIParamsWithOutRequests(pParams) + local params = pParams or utils.cloneTable(hmiDefaultCapabilities) + params.RC.GetCapabilities.occurrence = 0 + params.UI.GetSupportedLanguages.occurrence = 0 + params.UI.GetCapabilities.occurrence = 0 + params.VR.GetSupportedLanguages.occurrence = 0 + params.VR.GetCapabilities.occurrence = 0 + params.TTS.GetSupportedLanguages.occurrence = 0 + params.TTS.GetCapabilities.occurrence = 0 + params.Buttons.GetCapabilities.occurrence = 0 + params.VehicleInfo.GetVehicleType.occurrence = 0 + params.UI.GetLanguage.occurrence = 0 + params.VR.GetLanguage.occurrence = 0 + params.TTS.GetLanguage.occurrence = 0 + return params +end + +function m.ignitionOff() + local hmiConnection = actions.hmi.getConnection() + local mobileConnection = actions.mobile.getConnection() + config.ExitOnCrash = false + local timeout = 5000 + local function removeSessions() + for i = 1, actions.mobile.getAppsCount() do + actions.mobile.deleteSession(i) + end + end + local event = events.Event() + event.matches = function(event1, event2) return event1 == event2 end + mobileConnection:ExpectEvent(event, "SDL shutdown") + :Do(function() + removeSessions() + StopSDL() + config.ExitOnCrash = true + end) + hmiConnection:SendNotification("BasicCommunication.OnExitAllApplications", { reason = "SUSPEND" }) + hmiConnection:ExpectNotification("BasicCommunication.OnSDLPersistenceComplete") + :Do(function() + hmiConnection:SendNotification("BasicCommunication.OnExitAllApplications",{ reason = "IGNITION_OFF" }) + for i = 1, actions.mobile.getAppsCount() do + actions.mobile.getSession(i):ExpectNotification("OnAppInterfaceUnregistered", { reason = "IGNITION_OFF" }) + end + end) + hmiConnection:ExpectNotification("BasicCommunication.OnAppUnregistered", { unexpectedDisconnect = false }) + :Times(actions.mobile.getAppsCount()) + local isSDLShutDownSuccessfully = false + hmiConnection:ExpectNotification("BasicCommunication.OnSDLClose") + :Do(function() + utils.cprint(35, "SDL was shutdown successfully") + isSDLShutDownSuccessfully = true + mobileConnection:RaiseEvent(event, event) + end) + :Timeout(timeout) + local function forceStopSDL() + if isSDLShutDownSuccessfully == false then + utils.cprint(35, "SDL was shutdown forcibly") + mobileConnection:RaiseEvent(event, event) + end + end + actions.run.runAfter(forceStopSDL, timeout + 500) +end + +function m.sendOnAppCapabilityUpdated(appCapability, pTimesOnHMI, pAppId) + if not pAppId then pAppId = 1 end + if not pTimesOnHMI then pTimesOnHMI = 1 end + local uiGetCapabilities = hmiDefaultCapabilities.UI.GetCapabilities.params + if not appCapability then appCapability = { + appCapability = { + appCapabilityType = "VIDEO_STREAMING", + videoStreamingCapability = uiGetCapabilities.systemCapabilities.videoStreamingCapability + } + } + end + local appCapabilityHMI = m.cloneTable(appCapability) + appCapabilityHMI.appID = m.getHMIAppId(pAppId) + actions.getMobileSession(pAppId):SendNotification("OnAppCapabilityUpdated", appCapability) + actions.getHMIConnection():ExpectNotification("BasicCommunication.OnAppCapabilityUpdated", appCapabilityHMI) + :Times(pTimesOnHMI) +end + +local function getVideoDataForStartServicePayload(pData) + local out = { + height = pData.preferredResolution.resolutionHeight, + width = pData.preferredResolution.resolutionWidth, + videoProtocol = pData.supportedFormats[1].protocol, + videoCodec = pData.supportedFormats[1].codec + } + return out +end + +function m.startVideoService(pData, pAppId) + if not pAppId then pAppId = 1 end + local videoData = getVideoDataForStartServicePayload(pData) + local videoPayload = { + height = { type = bsonType.INT32, value = videoData.height }, + width = { type = bsonType.INT32, value = videoData.width }, + videoProtocol = { type = bsonType.STRING, value = videoData.videoProtocol }, + videoCodec = { type = bsonType.STRING, value = videoData.videoCodec }, + } + + local msg = { + serviceType = constants.SERVICE_TYPE.VIDEO, + frameInfo = constants.FRAME_INFO.START_SERVICE, + encryption = false, + frameType = constants.FRAME_TYPE.CONTROL_FRAME, + binaryData = bson.to_bytes(videoPayload) + } + actions.getMobileSession(pAppId):Send(msg) + + actions.getMobileSession():ExpectControlMessage(constants.SERVICE_TYPE.VIDEO, { + frameInfo = constants.FRAME_INFO.START_SERVICE_ACK, + encryption = false + }) + + actions.getHMIConnection():ExpectRequest("Navigation.SetVideoConfig",{ + config = { + height = videoData.height, + width = videoData.width, + protocol = videoData.videoProtocol, + codec = videoData.videoCodec + } + }) + :Do(function(_, data) + actions.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + actions.getHMIConnection(pAppId):ExpectRequest("Navigation.StartStream") + :Do(function(_, data) + actions.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) +end + +function m.startSecureVideoService(pData, pTimes) + local videoData = getVideoDataForStartServicePayload(pData) + + local videoPayload = { + height = { type = bsonType.INT32, value = videoData.height }, + width = { type = bsonType.INT32, value = videoData.width }, + videoProtocol = { type = bsonType.STRING, value = videoData.videoProtocol }, + videoCodec = { type = bsonType.STRING, value = videoData.videoCodec } + } + + actions.getMobileSession():StartSecureService(constants.SERVICE_TYPE.VIDEO, bson.to_bytes(videoPayload)) + + actions.getMobileSession():ExpectControlMessage(constants.SERVICE_TYPE.VIDEO, { + frameInfo = constants.FRAME_INFO.START_SERVICE_ACK, + encryption = true + }) + + actions.getMobileSession():ExpectHandshakeMessage() + :Times(pTimes) + + actions.getHMIConnection():ExpectRequest("Navigation.SetVideoConfig", { + config = { + height = videoData.height, + width = videoData.width, + protocol = videoData.videoProtocol, + codec = videoData.videoCodec + } + }) + :Do(function(_, data) + actions.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + actions.getHMIConnection():ExpectRequest("Navigation.StartStream") + :Do(function(_, data) + actions.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) +end + +function m.startVideoStreaming(pIsSecure, pAppId) + if not pAppId then pAppId = 1 end + local mobSession = actions.getMobileSession(pAppId) + local func = mobSession.StartStreaming + if pIsSecure == true then + func = mobSession.StartEncryptedStreaming + end + func(mobSession, 11, "files/SampleVideo_5mb.mp4") + actions.getHMIConnection():ExpectNotification("Navigation.OnVideoDataStreaming", { available = true }) + utils.cprint(33, "Streaming...") + utils.wait(1000) +end + +function m.stopVideoStreaming(pAppId) + actions.getMobileSession(pAppId):StopStreaming("files/SampleVideo_5mb.mp4") + actions.getHMIConnection():ExpectNotification("Navigation.OnVideoDataStreaming", { available = false }) +end + +function m.stopVideoService(pAppId) + actions.getMobileSession(pAppId):StopService(11) + actions.getHMIConnection(pAppId):ExpectRequest("Navigation.StopStream") + :Do(function(_, data) + actions.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) +end + +local function initSDLCertificates(pCrtsFileName) + SDL.CRT.set(pCrtsFileName) +end + +local function cleanUpCertificates() + SDL.CRT.clean() +end + +function m.securePreconditions() + actions.preconditions() + cleanUpCertificates() + actions.setSDLIniParameter("Protocol", "DTLSv1.0") + initSDLCertificates("./files/Security/client_credential.pem") +end + +function m.securePostconditions() + actions.postconditions() + cleanUpCertificates() +end + +return m diff --git a/test_scripts/Defects/4_5/1893_ATF_HeartBeat_App_does_not_send_HB_and_does_not_respond.lua b/test_scripts/Defects/4_5/1893_ATF_HeartBeat_App_does_not_send_HB_and_does_not_respond.lua index ff30650935..5d244ccbbc 100644 --- a/test_scripts/Defects/4_5/1893_ATF_HeartBeat_App_does_not_send_HB_and_does_not_respond.lua +++ b/test_scripts/Defects/4_5/1893_ATF_HeartBeat_App_does_not_send_HB_and_does_not_respond.lua @@ -62,7 +62,7 @@ local function Register_App(appId, answerHeartbeatFromSDL, self) -- create mobile session mobileSession[appId] = mobile_session.MobileSession(self, self.mobileConnection) -- set parameters for heartbeat - mobileSession[appId].activateHeartbeat = false + mobileSession[appId].activateHeartbeat = true mobileSession[appId].sendHeartbeatToSDL = false mobileSession[appId].answerHeartbeatFromSDL = answerHeartbeatFromSDL mobileSession[appId].ignoreSDLHeartBeatACK = false diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_1_navi.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_1_secure_service_RPC.lua similarity index 62% rename from test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_1_navi.lua rename to test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_1_secure_service_RPC.lua index f7b2cac5df..3e265bab29 100644 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_1_navi.lua +++ b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_1_secure_service_RPC.lua @@ -10,32 +10,12 @@ runner.testSettings.isSelfIncluded = false --[[ Local Variables ]] local serviceId = 7 -local appHMIType = "NAVIGATION" +local appHMIType = "DEFAULT" --[[ General configuration parameters ]] -config.application1.registerAppInterfaceParams.appName = "server" -config.application1.registerAppInterfaceParams.fullAppID = "SPT" config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } --[[ Local Functions ]] -local function ptUpdate(pTbl) - local filePath = "./files/Security/client_credential.pem" - local crt = common.readFile(filePath) - pTbl.policy_table.module_config.certificate = crt -end - -local function startServiceSecured(pData) - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, pData) - - local handshakeOccurences = 0 - if pData.encryption == true then handshakeOccurences = 1 end - common.getMobileSession():ExpectHandshakeMessage() - :Times(handshakeOccurences) - - common.delayedExp() -end - local function sendRPCAddCommandSecured() local params = { cmdID = 1, @@ -57,23 +37,18 @@ end runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Set ForceProtectedService OFF", common.setForceProtectedServiceParam, { "Non" }) +runner.Step("Init SDL certificates", common.initSDLCertificates, + { "./files/Security/client_credential_expired.pem", false }) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - -runner.Title("Test") - runner.Step("Register App", common.registerApp) +runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { common.ptUpdateWOcert }) runner.Step("Activate App", common.activateApp) -runner.Step("StartService Secured NACK", startServiceSecured, { { - frameInfo = common.frameInfo.START_SERVICE_NACK, - encryption = false } }) - -runner.Step("PolicyTableUpdate with certificate", common.policyTableUpdate, { ptUpdate }) - -runner.Step("StartService Secured ACK", startServiceSecured, { { - frameInfo = common.frameInfo.START_SERVICE_ACK, - encryption = true } }) - +runner.Title("Test") +runner.Step("StartService Secured, PTU wo cert, NACK, no Handshake", common.startServiceSecured, + { serviceId, common.nackData, common.ptUpdateWOcert }) +runner.Step("StartService Secured, PTU with cert, ACK, Handshake", common.startServiceSecured, + { serviceId, common.ackData }) runner.Step("AddCommand Secured", sendRPCAddCommandSecured) runner.Title("Postconditions") diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_2_non-navi.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_2_non-navi.lua deleted file mode 100644 index 4f78769791..0000000000 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_2_non-navi.lua +++ /dev/null @@ -1,95 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1888 ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') -local runner = require('user_modules/script_runner') - ---[[ Test Configuration ]] -runner.testSettings.isSelfIncluded = false - ---[[ Local Variables ]] -local serviceId = 7 -local appHMIType = "DEFAULT" - ---[[ General configuration parameters ]] -config.application1.registerAppInterfaceParams.appName = "server" -config.application1.registerAppInterfaceParams.fullAppID = "SPT" -config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } - ---[[ Local Functions ]] -local function ptUpdate(pTbl) - pTbl.policy_table.module_config.certificate = nil -end - -local function startServiceSecured(pData) - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, pData) - - local handshakeOccurences = 0 - local crt = nil - if pData.encryption == true then - handshakeOccurences = 1 - crt = common.readFile("./files/Security/client_credential.pem") - end - common.getMobileSession():ExpectHandshakeMessage() - :Times(handshakeOccurences) - - local function ptUpdateCertificate(pTbl) - pTbl.policy_table.module_config.certificate = crt - pTbl.policy_table.app_policies[common.getAppID()].AppHMIType = { appHMIType } - end - - local function expNotificationFunc() - common.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }, { status = "UP_TO_DATE" }) - :Times(3) - end - - common.policyTableUpdate(ptUpdateCertificate, expNotificationFunc) - common.delayedExp() -end - -local function sendRPCAddCommandSecured() - local params = { - cmdID = 1, - menuParams = { - position = 1, - menuName = "Command_1" - } - } - local cid = common.getMobileSession():SendEncryptedRPC("AddCommand", params) - common.getHMIConnection():ExpectRequest("UI.AddCommand", params) - :Do(function(_, data) - common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", { }) - end) - common.getMobileSession():ExpectEncryptedResponse(cid, { success = true, resultCode = "SUCCESS" }) - common.getMobileSession():ExpectEncryptedNotification("OnHashChange") -end - ---[[ Scenario ]] -runner.Title("Preconditions") -runner.Step("Clean environment", common.preconditions) -runner.Step("Set ForceProtectedService OFF", common.setForceProtectedServiceParam, { "Non" }) -runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - -runner.Title("Test") - -runner.Step("Register App", common.registerApp) -runner.Step("PolicyTableUpdate wo cert", common.policyTableUpdate, { ptUpdate }) -runner.Step("Activate App", common.activateApp) - -runner.Step("StartService Secured, PTU wo cert, NACK, no Handshake", startServiceSecured, { { - frameInfo = common.frameInfo.START_SERVICE_NACK, - encryption = false - }}) - -runner.Step("StartService Secured, PTU with cert, ACK, Handshake", startServiceSecured, { { - frameInfo = common.frameInfo.START_SERVICE_ACK, - encryption = true - }}) - -runner.Step("AddCommand Secured", sendRPCAddCommandSecured) - -runner.Title("Postconditions") -runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_2_secure_video_force_off.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_2_secure_video_force_off.lua new file mode 100644 index 0000000000..da5795615e --- /dev/null +++ b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_2_secure_video_force_off.lua @@ -0,0 +1,33 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1888 +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') +local runner = require('user_modules/script_runner') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local serviceId = 11 +local appHMIType = "NAVIGATION" + +--[[ General configuration parameters ]] +config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Set ForceProtectedService OFF", common.setForceProtectedServiceParam, { "Non" }) +runner.Step("Init SDL certificates", common.initSDLCertificates, + { "./files/Security/client_credential_expired.pem", false }) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { common.ptUpdateWOcert }) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("StartService Secured ACK", common.startServiceSecured, { serviceId, common.ackData }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_3_navi_audio_force_off.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_3_navi_audio_force_off.lua deleted file mode 100644 index 470f2cc2ab..0000000000 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_3_navi_audio_force_off.lua +++ /dev/null @@ -1,57 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1888 ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') -local runner = require('user_modules/script_runner') - ---[[ Test Configuration ]] -runner.testSettings.isSelfIncluded = false - ---[[ Local Variables ]] -local serviceId = 10 -local appHMIType = "NAVIGATION" - ---[[ General configuration parameters ]] -config.application1.registerAppInterfaceParams.appName = "server" -config.application1.registerAppInterfaceParams.fullAppID = "SPT" -config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } - ---[[ Local Functions ]] -local function ptUpdate(pTbl) - local filePath = "./files/Security/client_credential.pem" - local crt = common.readFile(filePath) - pTbl.policy_table.module_config.certificate = crt -end - -local function startServiceSecured(pData) - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, pData) - - local handshakeOccurences = 0 - if pData.encryption == true then handshakeOccurences = 1 end - common.getMobileSession():ExpectHandshakeMessage() - :Times(handshakeOccurences) - - common.delayedExp() -end - ---[[ Scenario ]] -runner.Title("Preconditions") -runner.Step("Clean environment", common.preconditions) -runner.Step("Set ForceProtectedService OFF", common.setForceProtectedServiceParam, { "Non" }) -runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - -runner.Title("Test") - -runner.Step("Register App", common.registerApp) -runner.Step("Activate App", common.activateApp) - -runner.Step("PolicyTableUpdate with certificate", common.policyTableUpdate, { ptUpdate }) - -runner.Step("StartService Secured ACK", startServiceSecured, { { - frameInfo = common.frameInfo.START_SERVICE_ACK, - encryption = true } }) - -runner.Title("Postconditions") -runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_3_secure_audio_force_off.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_3_secure_audio_force_off.lua new file mode 100644 index 0000000000..2e5c39f1c2 --- /dev/null +++ b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_3_secure_audio_force_off.lua @@ -0,0 +1,33 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1888 +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') +local runner = require('user_modules/script_runner') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local serviceId = 10 +local appHMIType = "NAVIGATION" + +--[[ General configuration parameters ]] +config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Set ForceProtectedService OFF", common.setForceProtectedServiceParam, { "Non" }) +runner.Step("Init SDL certificates", common.initSDLCertificates, + { "./files/Security/client_credential_expired.pem", false }) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { common.ptUpdateWOcert }) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("StartService Secured ACK", common.startServiceSecured, { serviceId, common.ackData }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_4_navi_video_force_off.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_4_navi_video_force_off.lua deleted file mode 100644 index 5d5ff61b8a..0000000000 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_4_navi_video_force_off.lua +++ /dev/null @@ -1,57 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1888 ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') -local runner = require('user_modules/script_runner') - ---[[ Test Configuration ]] -runner.testSettings.isSelfIncluded = false - ---[[ Local Variables ]] -local serviceId = 11 -local appHMIType = "NAVIGATION" - ---[[ General configuration parameters ]] -config.application1.registerAppInterfaceParams.appName = "server" -config.application1.registerAppInterfaceParams.fullAppID = "SPT" -config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } - ---[[ Local Functions ]] -local function ptUpdate(pTbl) - local filePath = "./files/Security/client_credential.pem" - local crt = common.readFile(filePath) - pTbl.policy_table.module_config.certificate = crt -end - -local function startServiceSecured(pData) - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, pData) - - local handshakeOccurences = 0 - if pData.encryption == true then handshakeOccurences = 1 end - common.getMobileSession():ExpectHandshakeMessage() - :Times(handshakeOccurences) - - common.delayedExp() -end - ---[[ Scenario ]] -runner.Title("Preconditions") -runner.Step("Clean environment", common.preconditions) -runner.Step("Set ForceProtectedService OFF", common.setForceProtectedServiceParam, { "Non" }) -runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - -runner.Title("Test") - -runner.Step("Register App", common.registerApp) -runner.Step("Activate App", common.activateApp) - -runner.Step("PolicyTableUpdate with certificate", common.policyTableUpdate, { ptUpdate }) - -runner.Step("StartService Secured ACK", startServiceSecured, { { - frameInfo = common.frameInfo.START_SERVICE_ACK, - encryption = true } }) - -runner.Title("Postconditions") -runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_4_secure_video_force_on.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_4_secure_video_force_on.lua new file mode 100644 index 0000000000..d3d754ed82 --- /dev/null +++ b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_4_secure_video_force_on.lua @@ -0,0 +1,33 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1888 +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') +local runner = require('user_modules/script_runner') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local serviceId = 11 +local appHMIType = "NAVIGATION" + +--[[ General configuration parameters ]] +config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Set ForceProtectedService ON", common.setForceProtectedServiceParam, { "0x0B" }) +runner.Step("Init SDL certificates", common.initSDLCertificates, + { "./files/Security/client_credential_expired.pem", false }) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { common.ptUpdateWOcert }) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("StartService Secured ACK", common.startServiceSecured, { serviceId, common.ackData }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_5_navi_audio_force_on.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_5_navi_audio_force_on.lua deleted file mode 100644 index e28b7ea35b..0000000000 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_5_navi_audio_force_on.lua +++ /dev/null @@ -1,57 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1888 ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') -local runner = require('user_modules/script_runner') - ---[[ Test Configuration ]] -runner.testSettings.isSelfIncluded = false - ---[[ Local Variables ]] -local serviceId = 10 -local appHMIType = "NAVIGATION" - ---[[ General configuration parameters ]] -config.application1.registerAppInterfaceParams.appName = "server" -config.application1.registerAppInterfaceParams.fullAppID = "SPT" -config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } - ---[[ Local Functions ]] -local function ptUpdate(pTbl) - local filePath = "./files/Security/client_credential.pem" - local crt = common.readFile(filePath) - pTbl.policy_table.module_config.certificate = crt -end - -local function startServiceSecured(pData) - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, pData) - - local handshakeOccurences = 0 - if pData.encryption == true then handshakeOccurences = 1 end - common.getMobileSession():ExpectHandshakeMessage() - :Times(handshakeOccurences) - - common.delayedExp() -end - ---[[ Scenario ]] -runner.Title("Preconditions") -runner.Step("Clean environment", common.preconditions) -runner.Step("Set ForceProtectedService ON", common.setForceProtectedServiceParam, { "0x0A" }) -runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - -runner.Title("Test") - -runner.Step("Register App", common.registerApp) -runner.Step("Activate App", common.activateApp) - -runner.Step("PolicyTableUpdate with certificate", common.policyTableUpdate, { ptUpdate }) - -runner.Step("StartService Secured ACK", startServiceSecured, { { - frameInfo = common.frameInfo.START_SERVICE_ACK, - encryption = true } }) - -runner.Title("Postconditions") -runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_5_secure_audio_force_on.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_5_secure_audio_force_on.lua new file mode 100644 index 0000000000..236e1e6370 --- /dev/null +++ b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_5_secure_audio_force_on.lua @@ -0,0 +1,33 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1888 +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') +local runner = require('user_modules/script_runner') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local serviceId = 10 +local appHMIType = "NAVIGATION" + +--[[ General configuration parameters ]] +config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Set ForceProtectedService ON", common.setForceProtectedServiceParam, { "0x0A" }) +runner.Step("Init SDL certificates", common.initSDLCertificates, + { "./files/Security/client_credential_expired.pem", false }) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { common.ptUpdateWOcert }) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("StartService Secured ACK", common.startServiceSecured, { serviceId, common.ackData }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_6_navi_video_force_on.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_6_navi_video_force_on.lua deleted file mode 100644 index e05331f47d..0000000000 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_6_navi_video_force_on.lua +++ /dev/null @@ -1,57 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1888 ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') -local runner = require('user_modules/script_runner') - ---[[ Test Configuration ]] -runner.testSettings.isSelfIncluded = false - ---[[ Local Variables ]] -local serviceId = 11 -local appHMIType = "NAVIGATION" - ---[[ General configuration parameters ]] -config.application1.registerAppInterfaceParams.appName = "server" -config.application1.registerAppInterfaceParams.fullAppID = "SPT" -config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } - ---[[ Local Functions ]] -local function ptUpdate(pTbl) - local filePath = "./files/Security/client_credential.pem" - local crt = common.readFile(filePath) - pTbl.policy_table.module_config.certificate = crt -end - -local function startServiceSecured(pData) - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, pData) - - local handshakeOccurences = 0 - if pData.encryption == true then handshakeOccurences = 1 end - common.getMobileSession():ExpectHandshakeMessage() - :Times(handshakeOccurences) - - common.delayedExp() -end - ---[[ Scenario ]] -runner.Title("Preconditions") -runner.Step("Clean environment", common.preconditions) -runner.Step("Set ForceProtectedService ON", common.setForceProtectedServiceParam, { "0x0B" }) -runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - -runner.Title("Test") - -runner.Step("Register App", common.registerApp) -runner.Step("Activate App", common.activateApp) - -runner.Step("PolicyTableUpdate with certificate", common.policyTableUpdate, { ptUpdate }) - -runner.Step("StartService Secured ACK", startServiceSecured, { { - frameInfo = common.frameInfo.START_SERVICE_ACK, - encryption = true } }) - -runner.Title("Postconditions") -runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_1_RPC.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_1_RPC.lua new file mode 100644 index 0000000000..d6960c8155 --- /dev/null +++ b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_1_RPC.lua @@ -0,0 +1,31 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1891 +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') +local runner = require('user_modules/script_runner') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local serviceId = 7 +local appHMIType = "DEFAULT" + +--[[ General configuration parameters ]] +config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Set ForceProtectedService OFF", common.setForceProtectedServiceParam, { "Non" }) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { common.ptUpdateWOcert }) + +runner.Title("Test") +runner.Step("StartService Secured, PTU started and fails, NACK, no Handshake", common.startServiceSecuredUnsuccess, + { serviceId, common.nackData }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_1_navi.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_1_navi.lua deleted file mode 100644 index ebfebd71d6..0000000000 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_1_navi.lua +++ /dev/null @@ -1,52 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1891 ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') -local runner = require('user_modules/script_runner') - ---[[ Test Configuration ]] -runner.testSettings.isSelfIncluded = false - ---[[ Local Variables ]] -local serviceId = 7 -local appHMIType = "NAVIGATION" - ---[[ General configuration parameters ]] -config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } - ---[[ Local Functions ]] -local function ptUpdate(pTbl) - pTbl.policy_table.module_config.seconds_between_retries = nil -end - -local function startServiceSecured() - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, { - frameInfo = common.frameInfo.START_SERVICE_NACK, - encryption = false - }) - common.getMobileSession():ExpectHandshakeMessage() - :Times(0) - common.delayedExp() -end - -local function expNotificationFunc() - common.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }) - :Times(2) -end - ---[[ Scenario ]] -runner.Title("Preconditions") -runner.Step("Clean environment", common.preconditions) -runner.Step("Set ForceProtectedService OFF", common.setForceProtectedServiceParam, { "Non" }) -runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - -runner.Title("Test") -runner.Step("Register App", common.registerApp) -runner.Step("PolicyTableUpdate fails", common.policyTableUpdate, { ptUpdate, expNotificationFunc }) -runner.Step("StartService Secured NACK, no Handshake", startServiceSecured) - -runner.Title("Postconditions") -runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_1_navi.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_2_audio.lua similarity index 67% rename from test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_1_navi.lua rename to test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_2_audio.lua index 5659b655ef..c9f32536f5 100644 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_1_navi.lua +++ b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_2_audio.lua @@ -1,5 +1,5 @@ --------------------------------------------------------------------------------------------------- --- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1894 +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1891 --------------------------------------------------------------------------------------------------- --[[ Required Shared libraries ]] local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') @@ -9,38 +9,28 @@ local runner = require('user_modules/script_runner') runner.testSettings.isSelfIncluded = false --[[ Local Variables ]] -local serviceId = 7 +local serviceId = 10 local appHMIType = "NAVIGATION" +local startServiceData = { + frameInfo = common.frameInfo.START_SERVICE_ACK, + encryption = false +} --[[ General configuration parameters ]] config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } ---[[ Local Functions ]] -local function ptUpdate(pTbl) - pTbl.policy_table.module_config.certificate = nil -end - -local function startServiceSecured() - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, { - frameInfo = common.frameInfo.START_SERVICE_NACK, - encryption = false - }) - common.getMobileSession():ExpectHandshakeMessage() - :Times(0) - common.delayedExp() -end - --[[ Scenario ]] runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Set ForceProtectedService OFF", common.setForceProtectedServiceParam, { "Non" }) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { common.ptUpdateWOcert }) +runner.Step("Activate App", common.activateApp) runner.Title("Test") -runner.Step("Register App", common.registerApp) -runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { ptUpdate }) -runner.Step("StartService Secured NACK, no Handshake", startServiceSecured) +runner.Step("StartService Secured, PTU started and fails, NACK, no Handshake", common.startServiceSecuredUnsuccess, + { serviceId, startServiceData }) runner.Title("Postconditions") runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_2_non-navi.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_2_non-navi.lua deleted file mode 100644 index fccbf36b02..0000000000 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_2_non-navi.lua +++ /dev/null @@ -1,59 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1891 ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') -local runner = require('user_modules/script_runner') - ---[[ Test Configuration ]] -runner.testSettings.isSelfIncluded = false - ---[[ Local Variables ]] -local serviceId = 7 -local appHMIType = "DEFAULT" - ---[[ General configuration parameters ]] -config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } - ---[[ Local Functions ]] -local function ptUpdateSuccess(pTbl) - pTbl.policy_table.module_config.certificate = nil -end - -local function ptUpdateUnssucess(pTbl) - pTbl.policy_table.module_config.seconds_between_retries = nil -end - -local function startServiceSecured() - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, { - frameInfo = common.frameInfo.START_SERVICE_NACK, - encryption = false - }) - common.getMobileSession():ExpectHandshakeMessage() - :Times(0) - - local function expNotificationFunc() - common.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }, - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }) - :Times(4) - end - - common.policyTableUpdate(ptUpdateUnssucess, expNotificationFunc) - common.delayedExp() -end - ---[[ Scenario ]] -runner.Title("Preconditions") -runner.Step("Clean environment", common.preconditions) -runner.Step("Set ForceProtectedService OFF", common.setForceProtectedServiceParam, { "Non" }) -runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - -runner.Title("Test") -runner.Step("Register App", common.registerApp) -runner.Step("PolicyTableUpdate fails", common.policyTableUpdate, { ptUpdateSuccess }) -runner.Step("StartService Secured, PTU started and fails, NACK, no Handshake", startServiceSecured) - -runner.Title("Postconditions") -runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_3_navi_audio.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_3_navi_audio.lua deleted file mode 100644 index 9fb98e56b6..0000000000 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_3_navi_audio.lua +++ /dev/null @@ -1,54 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1891 ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') -local runner = require('user_modules/script_runner') - ---[[ Test Configuration ]] -runner.testSettings.isSelfIncluded = false - ---[[ Local Variables ]] -local serviceId = 10 -local appHMIType = "NAVIGATION" - ---[[ General configuration parameters ]] -config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } - ---[[ Local Functions ]] -local function ptUpdate(pTbl) - pTbl.policy_table.module_config.seconds_between_retries = nil -end - -local function expNotificationFunc() - common.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }) - :Times(2) -end - -local function startServiceSecured() - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, { - frameInfo = common.frameInfo.START_SERVICE_ACK, - encryption = false - }) - - common.getMobileSession():ExpectHandshakeMessage() - :Times(0) - common.delayedExp() -end - ---[[ Scenario ]] -runner.Title("Preconditions") -runner.Step("Clean environment", common.preconditions) -runner.Step("Set ForceProtectedService OFF", common.setForceProtectedServiceParam, { "Non" }) -runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - -runner.Title("Test") -runner.Step("Register App", common.registerApp) -runner.Step("PolicyTableUpdate fails", common.policyTableUpdate, { ptUpdate, expNotificationFunc }) -runner.Step("Activate App", common.activateApp) -runner.Step("StartService Secured ACK, no encryption, no Handshake", startServiceSecured) - -runner.Title("Postconditions") -runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_3_video.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_3_video.lua new file mode 100644 index 0000000000..702dd20eeb --- /dev/null +++ b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_3_video.lua @@ -0,0 +1,36 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1891 +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') +local runner = require('user_modules/script_runner') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local serviceId = 11 +local appHMIType = "NAVIGATION" +local startServiceData = { + frameInfo = common.frameInfo.START_SERVICE_ACK, + encryption = false +} + +--[[ General configuration parameters ]] +config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Set ForceProtectedService OFF", common.setForceProtectedServiceParam, { "Non" }) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { common.ptUpdateWOcert }) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("StartService Secured, PTU started and fails, NACK, no Handshake", common.startServiceSecuredUnsuccess, + { serviceId, startServiceData }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_4_navi_video.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_4_navi_video.lua deleted file mode 100644 index 070d6d05ae..0000000000 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_4_navi_video.lua +++ /dev/null @@ -1,54 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1891 ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') -local runner = require('user_modules/script_runner') - ---[[ Test Configuration ]] -runner.testSettings.isSelfIncluded = false - ---[[ Local Variables ]] -local serviceId = 11 -local appHMIType = "NAVIGATION" - ---[[ General configuration parameters ]] -config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } - ---[[ Local Functions ]] -local function ptUpdate(pTbl) - pTbl.policy_table.module_config.seconds_between_retries = nil -end - -local function expNotificationFunc() - common.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }) - :Times(2) -end - -local function startServiceSecured() - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, { - frameInfo = common.frameInfo.START_SERVICE_ACK, - encryption = false - }) - - common.getMobileSession():ExpectHandshakeMessage() - :Times(0) - common.delayedExp() -end - ---[[ Scenario ]] -runner.Title("Preconditions") -runner.Step("Clean environment", common.preconditions) -runner.Step("Set ForceProtectedService OFF", common.setForceProtectedServiceParam, { "Non" }) -runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - -runner.Title("Test") -runner.Step("Register App", common.registerApp) -runner.Step("PolicyTableUpdate fails", common.policyTableUpdate, { ptUpdate, expNotificationFunc }) -runner.Step("Activate App", common.activateApp) -runner.Step("StartService Secured ACK, no encryption, no Handshake", startServiceSecured) - -runner.Title("Postconditions") -runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_2_non-navi.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_1_RPC.lua similarity index 58% rename from test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_2_non-navi.lua rename to test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_1_RPC.lua index 3458f0a57c..fc8ffbec45 100644 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_2_non-navi.lua +++ b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_1_RPC.lua @@ -15,40 +15,17 @@ local appHMIType = "DEFAULT" --[[ General configuration parameters ]] config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } ---[[ Local Functions ]] -local function ptUpdate(pTbl) - pTbl.policy_table.module_config.certificate = nil -end - -local function startServiceSecured() - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, { - frameInfo = common.frameInfo.START_SERVICE_NACK, - encryption = false - }) - common.getMobileSession():ExpectHandshakeMessage() - :Times(0) - - local function expNotificationFunc() - common.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }, { status = "UP_TO_DATE" }) - :Times(3) - end - - common.policyTableUpdate(ptUpdate, expNotificationFunc) - common.delayedExp() -end - --[[ Scenario ]] runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Set ForceProtectedService OFF", common.setForceProtectedServiceParam, { "Non" }) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { common.ptUpdateWOcert }) runner.Title("Test") -runner.Step("Register App", common.registerApp) -runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { ptUpdate }) -runner.Step("StartService Secured, PTU started, NACK, no Handshake", startServiceSecured) +runner.Step("StartService Secured, PTU without certificate, NACK, no Handshake", common.startServiceSecured, + { serviceId, common.nackData, common.ptUpdateWOcert }) runner.Title("Postconditions") runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_4_navi_video.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_2_video.lua similarity index 68% rename from test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_4_navi_video.lua rename to test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_2_video.lua index ebe5c82901..de209bd11b 100644 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_4_navi_video.lua +++ b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_2_video.lua @@ -11,37 +11,26 @@ runner.testSettings.isSelfIncluded = false --[[ Local Variables ]] local serviceId = 11 local appHMIType = "NAVIGATION" +local startServiceData = { + frameInfo = common.frameInfo.START_SERVICE_ACK, + encryption = false +} --[[ General configuration parameters ]] config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } ---[[ Local Functions ]] -local function ptUpdate(pTbl) - pTbl.policy_table.module_config.certificate = nil -end - -local function startServiceSecured() - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, { - frameInfo = common.frameInfo.START_SERVICE_ACK, - encryption = false - }) - common.getMobileSession():ExpectHandshakeMessage() - :Times(0) - common.delayedExp() -end - --[[ Scenario ]] runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Set ForceProtectedService OFF", common.setForceProtectedServiceParam, { "Non" }) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - -runner.Title("Test") runner.Step("Register App", common.registerApp) -runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { ptUpdate }) +runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { common.ptUpdateWOcert }) runner.Step("Activate App", common.activateApp) -runner.Step("StartService Secured ACK, no encryption, no Handshake", startServiceSecured) + +runner.Title("Test") +runner.Step("StartService Secured, PTU without certificate, ACK, encryption=false, no Handshake", + common.startServiceSecured, { serviceId, startServiceData, common.ptUpdateWOcert }) runner.Title("Postconditions") runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_3_navi_audio.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_3_audio.lua similarity index 68% rename from test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_3_navi_audio.lua rename to test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_3_audio.lua index 0311bb8caa..13bf2ae574 100644 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_3_navi_audio.lua +++ b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_3_audio.lua @@ -11,37 +11,26 @@ runner.testSettings.isSelfIncluded = false --[[ Local Variables ]] local serviceId = 10 local appHMIType = "NAVIGATION" +local startServiceData = { + frameInfo = common.frameInfo.START_SERVICE_ACK, + encryption = false +} --[[ General configuration parameters ]] config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } ---[[ Local Functions ]] -local function ptUpdate(pTbl) - pTbl.policy_table.module_config.certificate = nil -end - -local function startServiceSecured() - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, { - frameInfo = common.frameInfo.START_SERVICE_ACK, - encryption = false - }) - common.getMobileSession():ExpectHandshakeMessage() - :Times(0) - common.delayedExp() -end - --[[ Scenario ]] runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Set ForceProtectedService OFF", common.setForceProtectedServiceParam, { "Non" }) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - -runner.Title("Test") runner.Step("Register App", common.registerApp) -runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { ptUpdate }) +runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { common.ptUpdateWOcert }) runner.Step("Activate App", common.activateApp) -runner.Step("StartService Secured ACK, no encryption, no Handshake", startServiceSecured) + +runner.Title("Test") +runner.Step("StartService Secured, PTU without certificate, ACK, encryption=false, no Handshake", + common.startServiceSecured, { serviceId, startServiceData, common.ptUpdateWOcert }) runner.Title("Postconditions") runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1922_1_navi_audio.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1922_1_audio.lua similarity index 69% rename from test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1922_1_navi_audio.lua rename to test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1922_1_audio.lua index c90960ae93..a94b219239 100644 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1922_1_navi_audio.lua +++ b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1922_1_audio.lua @@ -15,33 +15,18 @@ local appHMIType = "NAVIGATION" --[[ General configuration parameters ]] config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } ---[[ Local Functions ]] -local function ptUpdate(pTbl) - pTbl.policy_table.module_config.certificate = nil -end - -local function startServiceSecured() - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, { - frameInfo = common.frameInfo.START_SERVICE_NACK, - encryption = false - }) - common.getMobileSession():ExpectHandshakeMessage() - :Times(0) - common.delayedExp() -end - --[[ Scenario ]] runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Set ForceProtectedService ON", common.setForceProtectedServiceParam, { "0x0A" }) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - -runner.Title("Test") runner.Step("Register App", common.registerApp) -runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { ptUpdate }) +runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { common.ptUpdateWOcert }) runner.Step("Activate App", common.activateApp) -runner.Step("StartService Secured NACK, no Handshake", startServiceSecured) + +runner.Title("Test") +runner.Step("StartService Secured, PTU without certificate, NACK, no Handshake", + common.startServiceSecured, { serviceId, common.nackData, common.ptUpdateWOcert }) runner.Title("Postconditions") runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1922_2_navi_video.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1922_2_video.lua similarity index 69% rename from test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1922_2_navi_video.lua rename to test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1922_2_video.lua index 8cb9199a57..edbc9888a5 100644 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1922_2_navi_video.lua +++ b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1922_2_video.lua @@ -15,33 +15,18 @@ local appHMIType = "NAVIGATION" --[[ General configuration parameters ]] config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } ---[[ Local Functions ]] -local function ptUpdate(pTbl) - pTbl.policy_table.module_config.certificate = nil -end - -local function startServiceSecured() - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, { - frameInfo = common.frameInfo.START_SERVICE_NACK, - encryption = false - }) - common.getMobileSession():ExpectHandshakeMessage() - :Times(0) - common.delayedExp() -end - --[[ Scenario ]] runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Set ForceProtectedService ON", common.setForceProtectedServiceParam, { "0x0B" }) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - -runner.Title("Test") runner.Step("Register App", common.registerApp) -runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { ptUpdate }) +runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { common.ptUpdateWOcert }) runner.Step("Activate App", common.activateApp) -runner.Step("StartService Secured NACK, no Handshake", startServiceSecured) + +runner.Title("Test") +runner.Step("StartService Secured, PTU without certificate, NACK, no Handshake", + common.startServiceSecured, { serviceId, common.nackData, common.ptUpdateWOcert }) runner.Title("Postconditions") runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1923_1_navi_audio.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1923_1_audio.lua similarity index 59% rename from test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1923_1_navi_audio.lua rename to test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1923_1_audio.lua index f2748c30c8..928906b614 100644 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1923_1_navi_audio.lua +++ b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1923_1_audio.lua @@ -15,39 +15,18 @@ local appHMIType = "NAVIGATION" --[[ General configuration parameters ]] config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } ---[[ Local Functions ]] -local function ptUpdate(pTbl) - pTbl.policy_table.module_config.seconds_between_retries = nil -end - -local function startServiceSecured() - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, { - frameInfo = common.frameInfo.START_SERVICE_NACK, - encryption = false - }) - common.getMobileSession():ExpectHandshakeMessage() - :Times(0) - common.delayedExp() -end - -local function expNotificationFunc() - common.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }) - :Times(2) -end - --[[ Scenario ]] runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Set ForceProtectedService ON", common.setForceProtectedServiceParam, { "0x0A" }) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - -runner.Title("Test") runner.Step("Register App", common.registerApp) -runner.Step("PolicyTableUpdate fails", common.policyTableUpdate, { ptUpdate, expNotificationFunc }) +runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { common.ptUpdateWOcert }) runner.Step("Activate App", common.activateApp) -runner.Step("StartService Secured NACK, no Handshake", startServiceSecured) + +runner.Title("Test") +runner.Step("StartService Secured, PTU started and fails, NACK, no Handshake", common.startServiceSecuredUnsuccess, + { serviceId, common.nackData }) runner.Title("Postconditions") runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1923_2_navi_video.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1923_2_video.lua similarity index 59% rename from test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1923_2_navi_video.lua rename to test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1923_2_video.lua index 13c912094d..34da26c4dd 100644 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1923_2_navi_video.lua +++ b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1923_2_video.lua @@ -15,39 +15,18 @@ local appHMIType = "NAVIGATION" --[[ General configuration parameters ]] config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } ---[[ Local Functions ]] -local function ptUpdate(pTbl) - pTbl.policy_table.module_config.seconds_between_retries = nil -end - -local function startServiceSecured() - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, { - frameInfo = common.frameInfo.START_SERVICE_NACK, - encryption = false - }) - common.getMobileSession():ExpectHandshakeMessage() - :Times(0) - common.delayedExp() -end - -local function expNotificationFunc() - common.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }) - :Times(2) -end - --[[ Scenario ]] runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Set ForceProtectedService ON", common.setForceProtectedServiceParam, { "0x0B" }) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) - -runner.Title("Test") runner.Step("Register App", common.registerApp) -runner.Step("PolicyTableUpdate fails", common.policyTableUpdate, { ptUpdate, expNotificationFunc }) +runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { common.ptUpdateWOcert }) runner.Step("Activate App", common.activateApp) -runner.Step("StartService Secured NACK, no Handshake", startServiceSecured) + +runner.Title("Test") +runner.Step("StartService Secured, PTU started and fails, NACK, no Handshake", common.startServiceSecuredUnsuccess, + { serviceId, common.nackData }) runner.Title("Postconditions") runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1924_1_non-navi.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1924_1_non-navi.lua index ba410c9b22..4c7d9d1a04 100644 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1924_1_non-navi.lua +++ b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1924_1_non-navi.lua @@ -15,34 +15,16 @@ local appHMIType = "DEFAULT" --[[ General configuration parameters ]] config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } ---[[ Local Functions ]] -local function ptUpdate(pTbl) - pTbl.policy_table.module_config.certificate = nil -end - -local function startServiceSecured() - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, { }) - :Times(0) - - common.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }) - :Times(2) - common.getHMIConnection():ExpectRequest("BasicCommunication.PolicyUpdate") - - common.delayedExp() -end - --[[ Scenario ]] runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("Register App", common.registerApp) -runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { ptUpdate }) +runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { common.ptUpdateWOcert }) runner.Title("Test") - -runner.Step("StartService Secured, PTU started, No ACK/NACK", startServiceSecured) +runner.Step("StartService Secured, PTU without certificate, NACK, no Handshake", + common.startServiceSecured, { serviceId, common.nackData, common.ptUpdateWOcert }) runner.Title("Postconditions") runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1924_2_navi.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1924_2_navi.lua index ffce7517af..147bb16df5 100644 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1924_2_navi.lua +++ b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1924_2_navi.lua @@ -15,37 +15,16 @@ local appHMIType = "NAVIGATION" --[[ General configuration parameters ]] config.application1.registerAppInterfaceParams.appHMIType = { appHMIType } ---[[ Local Functions ]] -local function ptUpdate(pTbl) - pTbl.policy_table.module_config.certificate = nil -end - -local function startServiceSecured() - common.getMobileSession():StartSecureService(serviceId) - common.getMobileSession():ExpectControlMessage(serviceId, { - frameInfo = common.frameInfo.START_SERVICE_NACK, - encryption = false - }) - - common.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }) - :Times(0) - common.getHMIConnection():ExpectRequest("BasicCommunication.PolicyUpdate") - :Times(0) - - common.delayedExp() -end - --[[ Scenario ]] runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("Register App", common.registerApp) -runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { ptUpdate }) +runner.Step("PolicyTableUpdate without certificate", common.policyTableUpdate, { common.ptUpdateWOcert }) runner.Title("Test") - -runner.Step("StartService Secured, PTU not started, NACK", startServiceSecured) +runner.Step("StartService Secured, PTU without certificate, NACK, no Handshake", + common.startServiceSecured, { serviceId, common.nackData, common.ptUpdateWOcert }) runner.Title("Postconditions") runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_1_navi_no_cert_new_app.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_1_navi_no_cert_new_app.lua deleted file mode 100644 index 927335055d..0000000000 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_1_navi_no_cert_new_app.lua +++ /dev/null @@ -1,45 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1925 ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') -local runner = require('user_modules/script_runner') - ---[[ Test Configuration ]] -runner.testSettings.isSelfIncluded = false - ---[[ Local Variables ]] -local appHMIType = { - [1] = "DEFAULT", - [2] = "NAVIGATION" -} - ---[[ General configuration parameters ]] -config.application1.registerAppInterfaceParams.appHMIType = { appHMIType[1] } -config.application2.registerAppInterfaceParams.appHMIType = { appHMIType[2] } - ---[[ Local Functions ]] -local function ptUpdate(pTbl) - pTbl.policy_table.module_config.certificate = nil -end - -local function registerApp(pAppId) - common.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }) - :Times(2) - common.getHMIConnection():ExpectRequest("BasicCommunication.PolicyUpdate") - common.registerAppWOPTU(pAppId) -end - ---[[ Scenario ]] -runner.Title("Preconditions") -runner.Step("Clean environment", common.preconditions) -runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -runner.Step("Register " .. appHMIType[1] .. " App", common.registerApp, { 1 }) -runner.Step("PTU 1 finished", common.policyTableUpdate, { ptUpdate }) - -runner.Title("Test") -runner.Step("Register " .. appHMIType[2] .. " App, PTU started", registerApp, { 2 }) - -runner.Title("Postconditions") -runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_2_navi_no_cert_existing_app.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_2_navi_no_cert_existing_app.lua deleted file mode 100644 index 0304aca686..0000000000 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_2_navi_no_cert_existing_app.lua +++ /dev/null @@ -1,46 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1925 ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') -local runner = require('user_modules/script_runner') - ---[[ Test Configuration ]] -runner.testSettings.isSelfIncluded = false - ---[[ Local Variables ]] -local appHMIType = { - [1] = "DEFAULT", - [2] = "NAVIGATION" -} - ---[[ General configuration parameters ]] -config.application1.registerAppInterfaceParams.appHMIType = { appHMIType[1] } -config.application2.registerAppInterfaceParams.appHMIType = { appHMIType[2] } - ---[[ Local Functions ]] -local function ptUpdate(pTbl) - pTbl.policy_table.module_config.certificate = nil - pTbl.policy_table.app_policies[common.getAppID(2)] = common.getAppDataForPTU(2) -end - -local function registerApp(pAppId) - common.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }) - :Times(2) - common.getHMIConnection():ExpectRequest("BasicCommunication.PolicyUpdate") - common.registerAppWOPTU(pAppId) -end - ---[[ Scenario ]] -runner.Title("Preconditions") -runner.Step("Clean environment", common.preconditions) -runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -runner.Step("Register " .. appHMIType[1] .. " App", common.registerApp, { 1 }) -runner.Step("PTU 1 finished", common.policyTableUpdate, { ptUpdate }) - -runner.Title("Test") -runner.Step("Register " .. appHMIType[2] .. " App, PTU started", registerApp, { 2 }) - -runner.Title("Postconditions") -runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_3_navi_cert_new_app.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_3_navi_cert_new_app.lua deleted file mode 100644 index b1d8314317..0000000000 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_3_navi_cert_new_app.lua +++ /dev/null @@ -1,47 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1925 ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') -local runner = require('user_modules/script_runner') - ---[[ Test Configuration ]] -runner.testSettings.isSelfIncluded = false - ---[[ Local Variables ]] -local appHMIType = { - [1] = "DEFAULT", - [2] = "NAVIGATION" -} - ---[[ General configuration parameters ]] -config.application1.registerAppInterfaceParams.appHMIType = { appHMIType[1] } -config.application2.registerAppInterfaceParams.appHMIType = { appHMIType[2] } - ---[[ Local Functions ]] -local function ptUpdate(pTbl) - local filePath = "./files/Security/client_credential.pem" - local crt = common.readFile(filePath) - pTbl.policy_table.module_config.certificate = crt -end - -local function registerApp(pAppId) - common.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }) - :Times(2) - common.getHMIConnection():ExpectRequest("BasicCommunication.PolicyUpdate") - common.registerAppWOPTU(pAppId) -end - ---[[ Scenario ]] -runner.Title("Preconditions") -runner.Step("Clean environment", common.preconditions) -runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -runner.Step("Register " .. appHMIType[1] .. " App", common.registerApp, { 1 }) -runner.Step("PTU 1 finished", common.policyTableUpdate, { ptUpdate }) - -runner.Title("Test") -runner.Step("Register " .. appHMIType[2] .. " App, PTU started", registerApp, { 2 }) - -runner.Title("Postconditions") -runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_4_navi_cert_existing_app.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_4_navi_cert_existing_app.lua deleted file mode 100644 index 3beddb54b7..0000000000 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_4_navi_cert_existing_app.lua +++ /dev/null @@ -1,50 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1925 ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') -local runner = require('user_modules/script_runner') - ---[[ Test Configuration ]] -runner.testSettings.isSelfIncluded = false - ---[[ Local Variables ]] -local appHMIType = { - [1] = "DEFAULT", - [2] = "NAVIGATION" -} - ---[[ General configuration parameters ]] -config.application1.registerAppInterfaceParams.appHMIType = { appHMIType[1] } -config.application2.registerAppInterfaceParams.appHMIType = { appHMIType[2] } - ---[[ Local Functions ]] -local function ptUpdate(pTbl) - local filePath = "./files/Security/client_credential.pem" - local crt = common.readFile(filePath) - pTbl.policy_table.module_config.certificate = crt - pTbl.policy_table.app_policies[common.getAppID(2)] = common.getAppDataForPTU(2) -end - -local function registerApp(pAppId) - common.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }) - :Times(0) - common.getHMIConnection():ExpectRequest("BasicCommunication.PolicyUpdate") - :Times(0) - common.registerAppWOPTU(pAppId) - common.delayedExp() -end - ---[[ Scenario ]] -runner.Title("Preconditions") -runner.Step("Clean environment", common.preconditions) -runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -runner.Step("Register " .. appHMIType[1] .. " App", common.registerApp, { 1 }) -runner.Step("PTU 1 finished", common.policyTableUpdate, { ptUpdate }) - -runner.Title("Test") -runner.Step("Register " .. appHMIType[2] .. " App, PTU not started", registerApp, { 2 }) - -runner.Title("Postconditions") -runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_5_non-navi_no_cert_new_app.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_5_non-navi_no_cert_new_app.lua deleted file mode 100644 index ebc675c560..0000000000 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_5_non-navi_no_cert_new_app.lua +++ /dev/null @@ -1,45 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1925 ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') -local runner = require('user_modules/script_runner') - ---[[ Test Configuration ]] -runner.testSettings.isSelfIncluded = false - ---[[ Local Variables ]] -local appHMIType = { - [1] = "DEFAULT", - [2] = "DEFAULT" -} - ---[[ General configuration parameters ]] -config.application1.registerAppInterfaceParams.appHMIType = { appHMIType[1] } -config.application2.registerAppInterfaceParams.appHMIType = { appHMIType[2] } - ---[[ Local Functions ]] -local function ptUpdate(pTbl) - pTbl.policy_table.module_config.certificate = nil -end - -local function registerApp(pAppId) - common.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }) - :Times(2) - common.getHMIConnection():ExpectRequest("BasicCommunication.PolicyUpdate") - common.registerAppWOPTU(pAppId) -end - ---[[ Scenario ]] -runner.Title("Preconditions") -runner.Step("Clean environment", common.preconditions) -runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -runner.Step("Register " .. appHMIType[1] .. " App", common.registerApp, { 1 }) -runner.Step("PTU 1 finished", common.policyTableUpdate, { ptUpdate }) - -runner.Title("Test") -runner.Step("Register " .. appHMIType[2] .. " App, PTU started", registerApp, { 2 }) - -runner.Title("Postconditions") -runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_6_non-navi_no_cert_existing_app.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_6_non-navi_no_cert_existing_app.lua deleted file mode 100644 index 1677bbf65f..0000000000 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_6_non-navi_no_cert_existing_app.lua +++ /dev/null @@ -1,48 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1925 ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') -local runner = require('user_modules/script_runner') - ---[[ Test Configuration ]] -runner.testSettings.isSelfIncluded = false - ---[[ Local Variables ]] -local appHMIType = { - [1] = "DEFAULT", - [2] = "DEFAULT" -} - ---[[ General configuration parameters ]] -config.application1.registerAppInterfaceParams.appHMIType = { appHMIType[1] } -config.application2.registerAppInterfaceParams.appHMIType = { appHMIType[2] } - ---[[ Local Functions ]] -local function ptUpdate(pTbl) - pTbl.policy_table.module_config.certificate = nil - pTbl.policy_table.app_policies[common.getAppID(2)] = common.getAppDataForPTU(2) -end - -local function registerApp(pAppId) - common.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }) - :Times(0) - common.getHMIConnection():ExpectRequest("BasicCommunication.PolicyUpdate") - :Times(0) - common.registerAppWOPTU(pAppId) - common.delayedExp() -end - ---[[ Scenario ]] -runner.Title("Preconditions") -runner.Step("Clean environment", common.preconditions) -runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -runner.Step("Register " .. appHMIType[1] .. " App", common.registerApp, { 1 }) -runner.Step("PTU 1 finished", common.policyTableUpdate, { ptUpdate }) - -runner.Title("Test") -runner.Step("Register " .. appHMIType[2] .. " App, PTU not started", registerApp, { 2 }) - -runner.Title("Postconditions") -runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_7_non-navi_cert_new_app.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_7_non-navi_cert_new_app.lua deleted file mode 100644 index a4e114d4fb..0000000000 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_7_non-navi_cert_new_app.lua +++ /dev/null @@ -1,47 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1925 ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') -local runner = require('user_modules/script_runner') - ---[[ Test Configuration ]] -runner.testSettings.isSelfIncluded = false - ---[[ Local Variables ]] -local appHMIType = { - [1] = "DEFAULT", - [2] = "DEFAULT" -} - ---[[ General configuration parameters ]] -config.application1.registerAppInterfaceParams.appHMIType = { appHMIType[1] } -config.application2.registerAppInterfaceParams.appHMIType = { appHMIType[2] } - ---[[ Local Functions ]] -local function ptUpdate(pTbl) - local filePath = "./files/Security/client_credential.pem" - local crt = common.readFile(filePath) - pTbl.policy_table.module_config.certificate = crt -end - -local function registerApp(pAppId) - common.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }) - :Times(2) - common.getHMIConnection():ExpectRequest("BasicCommunication.PolicyUpdate") - common.registerAppWOPTU(pAppId) -end - ---[[ Scenario ]] -runner.Title("Preconditions") -runner.Step("Clean environment", common.preconditions) -runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -runner.Step("Register " .. appHMIType[1] .. " App", common.registerApp, { 1 }) -runner.Step("PTU 1 finished", common.policyTableUpdate, { ptUpdate }) - -runner.Title("Test") -runner.Step("Register " .. appHMIType[2] .. " App, PTU started", registerApp, { 2 }) - -runner.Title("Postconditions") -runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_8_non-navi_cert_existing_app.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_8_non-navi_cert_existing_app.lua deleted file mode 100644 index 6f6f1d9b8b..0000000000 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_8_non-navi_cert_existing_app.lua +++ /dev/null @@ -1,50 +0,0 @@ ---------------------------------------------------------------------------------------------------- --- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/1925 ---------------------------------------------------------------------------------------------------- ---[[ Required Shared libraries ]] -local common = require('test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common') -local runner = require('user_modules/script_runner') - ---[[ Test Configuration ]] -runner.testSettings.isSelfIncluded = false - ---[[ Local Variables ]] -local appHMIType = { - [1] = "DEFAULT", - [2] = "DEFAULT" -} - ---[[ General configuration parameters ]] -config.application1.registerAppInterfaceParams.appHMIType = { appHMIType[1] } -config.application2.registerAppInterfaceParams.appHMIType = { appHMIType[2] } - ---[[ Local Functions ]] -local function ptUpdate(pTbl) - local filePath = "./files/Security/client_credential.pem" - local crt = common.readFile(filePath) - pTbl.policy_table.module_config.certificate = crt - pTbl.policy_table.app_policies[common.getAppID(2)] = common.getAppDataForPTU(2) -end - -local function registerApp(pAppId) - common.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", - { status = "UPDATE_NEEDED" }, { status = "UPDATING" }) - :Times(0) - common.getHMIConnection():ExpectRequest("BasicCommunication.PolicyUpdate") - :Times(0) - common.registerAppWOPTU(pAppId) - common.delayedExp() -end - ---[[ Scenario ]] -runner.Title("Preconditions") -runner.Step("Clean environment", common.preconditions) -runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -runner.Step("Register " .. appHMIType[1] .. " App", common.registerApp, { 1 }) -runner.Step("PTU 1 finished", common.policyTableUpdate, { ptUpdate }) - -runner.Title("Test") -runner.Step("Register " .. appHMIType[2] .. " App, PTU not started", registerApp, { 2 }) - -runner.Title("Postconditions") -runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common.lua b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common.lua index ece1b7e148..99c8548a9d 100644 --- a/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common.lua +++ b/test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/common.lua @@ -6,55 +6,89 @@ config.defaultProtocolVersion = 3 --[[ Required Shared libraries ]] local actions = require("user_modules/sequences/actions") -local security = require("user_modules/sequences/security") +local sslCommon = require("test_scripts/Security/SSLHandshakeFlow/common") local utils = require("user_modules/utils") --[[ Module ]] local m = actions -m.frameInfo = security.frameInfo +--[[ Variables ]] +m.frameInfo = sslCommon.frameInfo m.delayedExp = utils.wait m.readFile = utils.readFile +m.initSDLCertificates = sslCommon.initSDLCertificates +m.policyTableUpdateSuccess = sslCommon.policyTableUpdateSuccess +m.postconditions = sslCommon.postconditions +m.preconditions = sslCommon.preconditions +m.preloadedPTUpdate = sslCommon.preloadedPTUpdate +m.cleanUpCertificates = sslCommon.cleanUpCertificates +m.start = sslCommon.start +m.ackData = { + frameInfo = m.frameInfo.START_SERVICE_ACK, + encryption = true +} +m.nackData = { + frameInfo = m.frameInfo.START_SERVICE_NACK, + encryption = false +} -local function registerGetSystemTimeNotification() - m.getHMIConnection():SendNotification("BasicCommunication.OnSystemTimeReady") - m.getHMIConnection():ExpectRequest("BasicCommunication.GetSystemTime") - :Do(function(_, d) - local function getSystemTime() - local dd = os.date("*t") - return { - millisecond = 0, - second = dd.sec, - minute = dd.min, - hour = dd.hour, - day = dd.day, - month = dd.month, - year = dd.year, - tz_hour = 2, - tz_minute = 0 - } - end - m.getHMIConnection():SendResponse(d.id, d.method, "SUCCESS", { systemTime = getSystemTime() }) - end) - :Times(AnyNumber()) - :Pin() +--[[ Functions ]] +function m.setForceProtectedServiceParam(pParamValue) + m.setSDLIniParameter("ForceProtectedService", pParamValue) end -local startOrig = m.start +function m.ptUpdateWOcert(pTbl) + pTbl.policy_table.module_config.certificate = nil +end -function m.start(pHMIParams) - startOrig(pHMIParams) - :Do(function() - registerGetSystemTimeNotification() - end) +function m.ptUpdateFuncWithCert(pTbl) + local filePath = "./files/Security/client_credential.pem" + local crt = m.readFile(filePath) + pTbl.policy_table.module_config.certificate = crt end -function m.setForceProtectedServiceParam(pParamValue) - m.setSDLIniParameter("ForceProtectedService", pParamValue) +function m.startServiceSecured(pServiceId, pData, pPTUpdateFunc) + if not pPTUpdateFunc then pPTUpdateFunc = m.ptUpdateFuncWithCert end + + m.getMobileSession():StartSecureService(pServiceId) + m.getMobileSession():ExpectControlMessage(pServiceId, pData) + + local handshakeOccurences = 0 + if pData.encryption == true then + handshakeOccurences = 1 + end + m.getMobileSession():ExpectHandshakeMessage() + :Times(handshakeOccurences) + + local function expNotificationFunc() + m.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", + { status = "UPDATE_NEEDED" }, { status = "UPDATING" }, { status = "UP_TO_DATE" }) + :Times(3) + end + + m.policyTableUpdateSuccess(pPTUpdateFunc, expNotificationFunc) + m.delayedExp() end -function m.getAppID(pAppId) - return m.getConfigAppParams(pAppId).appID +function m.startServiceSecuredUnsuccess(pServiceId, pData) + m.getMobileSession():StartSecureService(pServiceId) + m.getMobileSession():ExpectControlMessage(pServiceId, pData) + m.getMobileSession():ExpectHandshakeMessage() + :Times(0) + + local function ptUpdateFunc(pTbl) + pTbl.policy_table.module_config.seconds_between_retries = nil + end + + m.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", + { status = "UPDATE_NEEDED" }, { status = "UPDATING" }, { status = "UPDATE_NEEDED" }) + :Times(3) + + m.isPTUStarted() + :Do(function() + m.policyTableUpdate(ptUpdateFunc, function() end) + end) + m.delayedExp() end return m diff --git a/test_scripts/Defects/5_0/2447_Resumption_revoked_app_still_be_resumed_as_FULL.lua b/test_scripts/Defects/5_0/2447_Resumption_revoked_app_still_be_resumed_as_FULL.lua index 40c7196b52..1be88f85d3 100644 --- a/test_scripts/Defects/5_0/2447_Resumption_revoked_app_still_be_resumed_as_FULL.lua +++ b/test_scripts/Defects/5_0/2447_Resumption_revoked_app_still_be_resumed_as_FULL.lua @@ -19,6 +19,7 @@ local utils = require("user_modules/utils") local test = require("user_modules/dummy_connecttest") --[[ Test Configuration ]] +runner.testSettings.restrictions.sdlBuildOptions = { { extendedPolicy = { "PROPRIETARY", "EXTERNAL_PROPRIETARY" } } } runner.testSettings.isSelfIncluded = false --[[ Local Functions ]] diff --git a/test_scripts/Defects/5_0/2457_Needed_fixes_sending_of_UpdateDeviceList_notification_on_device_connect.lua b/test_scripts/Defects/5_0/2457_Needed_fixes_sending_of_UpdateDeviceList_notification_on_device_connect.lua index 7594af1232..111b779974 100644 --- a/test_scripts/Defects/5_0/2457_Needed_fixes_sending_of_UpdateDeviceList_notification_on_device_connect.lua +++ b/test_scripts/Defects/5_0/2457_Needed_fixes_sending_of_UpdateDeviceList_notification_on_device_connect.lua @@ -3,26 +3,57 @@ -- -- Description: -- Steps to reproduce: --- 1) HMI and SDL started, connect device. +-- 1) HMI and SDL started, connect device -- Expected: --- 1) SDL has to notify system with BC.UpdateDeviceList on device connect even if device does not have any SDL-enabled applications running. +-- 1) SDL has to notify system with BC.UpdateDeviceList on device connect +-- even if device does not have any SDL-enabled applications running --------------------------------------------------------------------------------------------------- -- [[ Required Shared libraries ]] local runner = require('user_modules/script_runner') local common = require('user_modules/sequences/actions') local utils = require ('user_modules/utils') +local SDL = require("SDL") +local hmi_values = require('user_modules/hmi_values') -- [[ Test Configuration ]] runner.testSettings.isSelfIncluded = false --- [[ Local function ]] +-- [[ Local Variables ]] +local hmiParams = hmi_values.getDefaultHMITable() +hmiParams.BasicCommunication.UpdateDeviceList = nil +local mobDeviceParams = { host = config.mobileHost, port = config.mobilePort } +local devices = { + web_engine = { + id = utils.buildDeviceMAC("WS"), + name = utils.buildDeviceName("WS"), + transportType = "WEBENGINE_WEBSOCKET" + }, + mobile = { + id = utils.buildDeviceMAC("TCP", mobDeviceParams), + name = utils.buildDeviceName("TCP", mobDeviceParams), + transportType = "WIFI" + } +} +-- [[ Local Functions ]] local function start () - common.start() - common.getHMIConnection():ExpectRequest("BasicCommunication.UpdateDeviceList", - { deviceList = { { id = utils.getDeviceMAC(), name = utils.getDeviceName()} } }) - common.getHMIConnection():ExpectRequest("BasicCommunication.OnDeviceAdded") - :Times(0) + local exp = {} + if SDL.buildOptions.webSocketServerSupport == "OFF" then + table.insert(exp, { deviceList = { [1] = devices.mobile } }) + else + table.insert(exp, { deviceList = { [1] = devices.web_engine } }) end + if SDL.buildOptions.webSocketServerSupport == "ON" and config.defaultMobileAdapterType == "TCP" then + table.insert(exp, { deviceList = { [1] = devices.web_engine, [2] = devices.mobile } }) + end + common.start(hmiParams) + common.getHMIConnection():ExpectRequest("BasicCommunication.UpdateDeviceList", table.unpack(exp)) + :Do(function(_,data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + :Times(#exp) + common.getHMIConnection():ExpectRequest("BasicCommunication.OnDeviceAdded") + :Times(0) +end --[[ Scenario ]] runner.Title("Preconditions") diff --git a/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_1_SDL_does_not_respond_NACK_Navi_Type.lua b/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_1_SDL_does_not_respond_NACK_Navi_Type.lua index 8fa3882313..7a1ace7c2d 100644 --- a/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_1_SDL_does_not_respond_NACK_Navi_Type.lua +++ b/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_1_SDL_does_not_respond_NACK_Navi_Type.lua @@ -1,12 +1,13 @@ --------------------------------------------------------------------------------------------------- --- User story: https://github.com/smartdevicelink/sdl_core/issues/2379 +-- User story: https://github.com/smartdevicelink/sdl_core/issues/2479 -- -- Description: --- SDL does not respond NACK to second request +-- SDL does respond NACK to second start service request +-- -- Steps to reproduce: --- 1) In case mobile side send two start VIDEO secure service requests +-- 1. In case mobile side send two start VIDEO secure service requests -- Expected: --- 1) Respond NACK to second request keep active VIDEO service that was already started +-- 1. Respond NACK to second request keep active VIDEO service that was already started --------------------------------------------------------------------------------------------------- --[[ Required Shared libraries ]] local common = require('test_scripts/Security/DTLS/common') diff --git a/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_2_SDL_does_not_respond_NACK_Audio_Type.lua b/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_2_SDL_does_not_respond_NACK_Audio_Type.lua index 56dee88791..882419a982 100644 --- a/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_2_SDL_does_not_respond_NACK_Audio_Type.lua +++ b/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_2_SDL_does_not_respond_NACK_Audio_Type.lua @@ -1,12 +1,13 @@ --------------------------------------------------------------------------------------------------- --- User story: https://github.com/smartdevicelink/sdl_core/issues/2379 +-- User story: https://github.com/smartdevicelink/sdl_core/issues/2479 -- -- Description: --- SDL does not respond NACK to second request +-- SDL does respond NACK to second start service request +-- -- Steps to reproduce: --- 1) In case mobile side send two start AUDIO secure service requests +-- 1. In case mobile side send two start AUDIO secure service requests -- Expected: --- 1) Respond NACK to second request keep active AUDIO service that was already started +-- 1. Respond NACK to second request keep active AUDIO service that was already started --------------------------------------------------------------------------------------------------- --[[ Required Shared libraries ]] local common = require('test_scripts/Security/DTLS/common') diff --git a/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_3_SDL_respond_NACK_from_protected_to_not_protected.lua b/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_3_SDL_respond_NACK_from_protected_to_not_protected.lua index 50c0b14783..247594ed37 100644 --- a/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_3_SDL_respond_NACK_from_protected_to_not_protected.lua +++ b/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_3_SDL_respond_NACK_from_protected_to_not_protected.lua @@ -1,12 +1,13 @@ --------------------------------------------------------------------------------------------------- --- User story: https://github.com/smartdevicelink/sdl_core/issues/2379 +-- User story: https://github.com/smartdevicelink/sdl_core/issues/2479 -- -- Description: --- 1. SDL does not respond NACK on second service. +-- SDL does respond NACK on second start service request (Protected => Unprotected) +-- -- Steps to reproduce: --- 1 First service started as Protected. --- 1 Start video sreaming. --- 1 Second service starting as NOT Protected. +-- 1. First service started as Protected. +-- 2. Start video sreaming. +-- 3. Second service starting as NOT Protected. -- Expected: -- 1. SDL respond NACK on second service. --------------------------------------------------------------------------------------------------- diff --git a/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_4_SDL_respond_NACK_from_protected_to_protected.lua b/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_4_SDL_respond_NACK_from_protected_to_protected.lua index dcd1a9b673..be38dbc2cd 100644 --- a/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_4_SDL_respond_NACK_from_protected_to_protected.lua +++ b/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_4_SDL_respond_NACK_from_protected_to_protected.lua @@ -1,12 +1,13 @@ --------------------------------------------------------------------------------------------------- --- User story: https://github.com/smartdevicelink/sdl_core/issues/2379 +-- User story: https://github.com/smartdevicelink/sdl_core/issues/2479 -- -- Description: --- 1. SDL does not respond NACK on second service. +-- SDL does respond NACK on second start service request (Protected => Unprotected) +-- -- Steps to reproduce: --- 1 First service started as Protected. --- 1 Start video sreaming. --- 1 Second service starting as Protected. +-- 1. First service started as Protected. +-- 2. Start video sreaming. +-- 3. Second service starting as Protected. -- Expected: -- 1. SDL respond NACK on second service. --------------------------------------------------------------------------------------------------- diff --git a/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_5_SDL_respond_NACK_from_not_protected_to_not_protected.lua b/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_5_SDL_respond_NACK_from_not_protected_to_not_protected.lua index 4503226fbb..3e5d9b86ce 100644 --- a/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_5_SDL_respond_NACK_from_not_protected_to_not_protected.lua +++ b/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_5_SDL_respond_NACK_from_not_protected_to_not_protected.lua @@ -1,8 +1,15 @@ --------------------------------------------------------------------------------------------------- --- User story: https://github.com/smartdevicelink/sdl_core/issues/2379 +-- User story: https://github.com/smartdevicelink/sdl_core/issues/2479 -- -- Description: --- 1) SDL does not respond NACK on second service: if first service NOT Protected started, second service NOT Protected too. +-- SDL does respond NACK on second start service request (Unprotected => Unprotected) +-- +-- Steps to reproduce: +-- 1. First service started as NOT Protected. +-- 2. Start video sreaming. +-- 3. Second service starting as NOT Protected. +-- Expected: +-- 1. SDL respond NACK on second service. --------------------------------------------------------------------------------------------------- --[[ Required Shared libraries ]] local common = require('test_scripts/Security/DTLS/common') diff --git a/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_6_SDL_respond_ACK_from_not_protected_to_protected.lua b/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_6_SDL_respond_ACK_from_not_protected_to_protected.lua index 024d95b5f7..3f10784caf 100644 --- a/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_6_SDL_respond_ACK_from_not_protected_to_protected.lua +++ b/test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_6_SDL_respond_ACK_from_not_protected_to_protected.lua @@ -1,14 +1,15 @@ --------------------------------------------------------------------------------------------------- --- User story: https://github.com/smartdevicelink/sdl_core/issues/2379 +-- User story: https://github.com/smartdevicelink/sdl_core/issues/2479 -- -- Description: --- 1) SDL does not respond ACK on second service. +-- SDL does respond ACK on second start service request (Unprotected => Protected) +-- -- Steps to reproduce: --- 1) First service started as NOT Protected. --- 2) Start video sreaming. --- 3) Second service starting as Protected. +-- 1. First service started as NOT Protected. +-- 2. Start video sreaming. +-- 3. Second service starting as Protected. -- Expected: --- 1) SDL respond ACK on second service and will continuous stream through the encrypted channel. +-- 1. SDL respond ACK on second service and will continuous stream through the encrypted channel. --------------------------------------------------------------------------------------------------- --[[ Required Shared libraries ]] local common = require('test_scripts/Security/DTLS/common') @@ -39,8 +40,31 @@ local function startServiceProtectedSecond(pServiceId) frameInfo = common.frameInfo.START_SERVICE_ACK, encryption = true }) + + common.getHMIConnection():ExpectNotification("Navigation.OnVideoDataStreaming", + { available = false }, { available = true }) + :Times(2) + + common.getHMIConnection():ExpectRequest("Navigation.StopStream", { appID = common.getHMIAppId() }) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + common.getHMIConnection():ExpectRequest("Navigation.StartStream", { appID = common.getHMIAppId() }) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + + common.getHMIConnection():ExpectNotification("BasicCommunication.OnServiceUpdate", + { appID = common.getHMIAppId(), serviceEvent = "REQUEST_RECEIVED", serviceType = "VIDEO" }, + { appID = common.getHMIAppId(), serviceEvent = "REQUEST_ACCEPTED", serviceType = "VIDEO" }) + :Times(2) + common.getMobileSession():ExpectNotification("OnAppInterfaceUnregistered") :Times(0) + + common.getMobileSession():ExpectNotification("OnHMIStatus") + :Times(0) + utils.wait(10000) end diff --git a/test_scripts/Defects/7_0/3164_1_OnInteriorVehicleData_empty_module_data.lua b/test_scripts/Defects/7_0/3164_1_OnInteriorVehicleData_empty_module_data.lua new file mode 100644 index 0000000000..b825cae32c --- /dev/null +++ b/test_scripts/Defects/7_0/3164_1_OnInteriorVehicleData_empty_module_data.lua @@ -0,0 +1,83 @@ +--------------------------------------------------------------------------------------------------- +-- User story: https://github.com/smartdevicelink/sdl_core/issues/3164 +-- +-- Description: Check the successful merge of empty module data with existing data in cache +-- +-- Precondition: +-- 1. SDL Core and HMI are started +-- 2. RC app is registered and activated +-- 3. PTU with permission for RC is performed +-- 4. App is subscribed to + +-- Steps: +-- 1. HMI sends OnInteriorVehicleData notification with empty control data for +-- SDL does: +-- - a. merge received data with existing data in cache +-- - b. send OnInteriorVehicleData notification with data received from HMI to mobile app +-- 2. Mobile app requests GetInteriorVehicleData() +-- SDL does: +-- - a. respond to GetInteriorVehicleData with initial data from cache +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('user_modules/sequences/actions') +local rc = require('user_modules/sequences/remote_control') + +-- [[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false +config.application1.registerAppInterfaceParams.appHMIType = { "REMOTE_CONTROL" } + +-- [[ Local Variables ]] +local appId = 1 +local isSubscriptionNotCached = false +local moduleData = { + emptyRadioData = { moduleType = "RADIO", radioControlData = {}}, + emptyAudioData = { moduleType = "AUDIO", audioControlData = {}}, + emptyHmiSettingsData = { moduleType = "HMI_SETTINGS", hmiSettingsControlData = {}}, + emptyClimateData = { moduleType = "CLIMATE", climateControlData = {}}, + emptySeatData = { moduleType = "SEAT", seatControlData = {}}, +} + +-- [[ Local Functions ]] +local function getModuleId(pModuleType) + return rc.predefined.getModuleControlData(pModuleType, 1).moduleId +end + +local function onInteriorVehicleData(pModuleData) + local rpc = "OnInteriorVehicleData" + common.hmi.getConnection():SendNotification(rc.rpc.getHMIEventName(rpc), { moduleData = pModuleData }) + common.mobile.getSession(appId):ExpectNotification(rc.rpc.getAppEventName(rpc), { moduleData = pModuleData }) +end + +local function getInteriorVehicleData(pModuleType) + local rpc = "GetInteriorVehicleData" + local mobSession = common.mobile.getSession(appId) + local moduleId = getModuleId(pModuleType) + local cid = mobSession:SendRPC(rc.rpc.getAppEventName(rpc), + rc.rpc.getAppRequestParams(rpc, pModuleType, moduleId)) + mobSession:ExpectResponse(cid, { + success = true, + resultCode = "SUCCESS", + moduleData = rc.state.getActualModuleIVData(pModuleType, moduleId) + }) +end + +--[[Scenario]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", rc.rc.start) +runner.Step("Register App", common.registerApp) +runner.Step("Activate App", common.activateApp) +runner.Step("PTU with permission for RC", rc.rc.policyTableUpdate) +for _, value in pairs (moduleData) do + runner.Step("Subscribe to moduleType " .. value.moduleType, rc.rc.subscribeToModule, + { value.moduleType, getModuleId(value.moduleType), appId, isSubscriptionNotCached }) +end + +runner.Title("Test") +for caseName, value in pairs(moduleData) do + runner.Step("OnInteriorVehicleData " .. caseName, onInteriorVehicleData, { value }) + runner.Step("GetInteriorVehicleData without changes " .. caseName, getInteriorVehicleData, { value.moduleType }) +end + +runner.Title("Postconditions") diff --git a/test_scripts/Defects/7_0/3164_2_GetInteriorVehicleData_empty_module_data_to_cache.lua b/test_scripts/Defects/7_0/3164_2_GetInteriorVehicleData_empty_module_data_to_cache.lua new file mode 100644 index 0000000000..91060d3b5d --- /dev/null +++ b/test_scripts/Defects/7_0/3164_2_GetInteriorVehicleData_empty_module_data_to_cache.lua @@ -0,0 +1,81 @@ +--------------------------------------------------------------------------------------------------- +-- User story: https://github.com/smartdevicelink/sdl_core/issues/3164 +-- +-- Description: Check the successful saving of empty module data in cache +-- +-- Precondition: +-- 1. SDL Core and HMI are started +-- 2. RC app is registered and activated +-- 3. PTU with permission for RC is performed + +-- Steps: +-- 1. Mobile app requests subscription for via GetInteriorVehicleData RPC +-- SDL does: +-- - a. send RC.GetInteriorVehicleData() to HMI +-- 2. HMI responds with empty moduleData to RC.GetInteriorVehicleData() +-- SDL does: +-- - a. save received moduleData from HMI in cache +-- - b. resend GetInteriorVehicleData response to mobile app +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('user_modules/sequences/actions') +local rc = require('user_modules/sequences/remote_control') + +-- [[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false +config.application1.registerAppInterfaceParams.appHMIType = { "REMOTE_CONTROL" } + +-- [[ Local Variables ]] +local appId = 1 +local isSubscribe = true +local withoutSubscription = nil +local isCached = true +local moduleData = { + emptyRadioData = { moduleType = "RADIO", radioControlData = {}}, + emptyAudioData = { moduleType = "AUDIO", audioControlData = {}}, + emptyHmiSettingsData = { moduleType = "HMI_SETTINGS", hmiSettingsControlData = {}}, + emptyClimateData = { moduleType = "CLIMATE", climateControlData = {}}, + emptySeatData = { moduleType = "SEAT", seatControlData = {}}, +} + +-- [[ Local Functions ]] +local function getModuleId(pModuleType) + return rc.predefined.getModuleControlData(pModuleType, 1).moduleId +end + +local function getInteriorVehicleData(pModuleData, pIsSubscribe, pIsCached) + local rpc = "GetInteriorVehicleData" + local mobSession = common.mobile.getSession(appId) + local hmi = common.hmi.getConnection() + local moduleId = getModuleId(pModuleData.moduleType) + pModuleData.moduleId = moduleId + local resData = { moduleData = pModuleData, isSubscribed = pIsSubscribe } + local cid = mobSession:SendRPC(rc.rpc.getAppEventName(rpc), + rc.rpc.getAppRequestParams(rpc, pModuleData.moduleType, moduleId, pIsSubscribe)) + if pIsCached ~= true then + hmi:ExpectRequest(rc.rpc.getHMIEventName(rpc), + rc.rpc.getHMIRequestParams(rpc, pModuleData.moduleType, moduleId, appId, pIsSubscribe)) + :Do(function(_, data) + hmi:SendResponse(data.id, data.method, "SUCCESS", resData) + end) + end + mobSession:ExpectResponse(cid, { success = true, resultCode = "SUCCESS", table.unpack(resData) }) +end + +--[[Scenario]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", rc.rc.start) +runner.Step("Register App", common.registerApp) +runner.Step("Activate App", common.activateApp) +runner.Step("PTU with permission for RC", rc.rc.policyTableUpdate) + +runner.Title("Test") +for caseName, value in pairs(moduleData) do + runner.Step("Subscribe to moduleType " .. value.moduleType, getInteriorVehicleData, { value, isSubscribe }) + runner.Step("GetInteriorVehicleData after subscription " .. caseName, getInteriorVehicleData, + { value, withoutSubscription, isCached }) +end + +runner.Title("Postconditions") diff --git a/test_scripts/Defects/7_0/3164_3_GetInteriorVehicleData_empty_module_data_from_cache.lua b/test_scripts/Defects/7_0/3164_3_GetInteriorVehicleData_empty_module_data_from_cache.lua new file mode 100644 index 0000000000..6f187e53f2 --- /dev/null +++ b/test_scripts/Defects/7_0/3164_3_GetInteriorVehicleData_empty_module_data_from_cache.lua @@ -0,0 +1,97 @@ +--------------------------------------------------------------------------------------------------- +-- User story: https://github.com/smartdevicelink/sdl_core/issues/3164 +-- +-- Description: Check the successful merge of empty module data existed in cache with new data +-- from OnInteriorVehicleData +-- +-- Precondition: +-- 1. SDL Core and HMI are started +-- 2. RC app is registered and activated +-- 3. PTU with permission for RC is performed + +-- Steps: +-- 1. Mobile app requests subscription for via GetInteriorVehicleData RPC +-- SDL does: +-- - a. send RC.GetInteriorVehicleData() to HMI +-- 2. HMI responds with empty moduleData to RC.GetInteriorVehicleData() +-- SDL does: +-- - a. save received moduleData from HMI in cache +-- - b. resend GetInteriorVehicleData response to mobile app +-- 3. HMI sends OnInteriorVehicleData with updated moduleData for +-- SDL does: +-- - a. merge empty module data from cache with new data from OnInteriorVehicleData +-- - b. resend OnInteriorVehicleData notification with received data from HMI to mobile app +--------------------------------------------------------------------------------------------------- +-- [[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('user_modules/sequences/actions') +local rc = require('user_modules/sequences/remote_control') + +-- [[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false +config.application1.registerAppInterfaceParams.appHMIType = { "REMOTE_CONTROL" } + +-- [[ Local Variables ]] +local appId = 1 +local isSubscribe = true +local withoutSubscription = nil +local isCached = true +local moduleData = { + emptyRadioData = { moduleType = "RADIO", radioControlData = {}}, + emptyAudioData = { moduleType = "AUDIO", audioControlData = {}}, + emptyHmiSettingsData = { moduleType = "HMI_SETTINGS", hmiSettingsControlData = {}}, + emptyClimateData = { moduleType = "CLIMATE", climateControlData = {}}, + emptySeatData = { moduleType = "SEAT", seatControlData = {}}, +} + +-- [[ Local Functions ]] +local function getModuleId(pModuleType) + return rc.predefined.getModuleControlData(pModuleType, 1).moduleId +end + +local function getInteriorVehicleData(pModuleData, pIsSubscribe, pIsCached) + local rpc = "GetInteriorVehicleData" + local mobSession = common.mobile.getSession(appId) + local hmi = common.hmi.getConnection() + local moduleId = getModuleId(pModuleData.moduleType) + pModuleData.moduleId = moduleId + local resData = { moduleData = pModuleData, isSubscribed = pIsSubscribe } + local cid = mobSession:SendRPC(rc.rpc.getAppEventName(rpc), + rc.rpc.getAppRequestParams(rpc, pModuleData.moduleType, moduleId, pIsSubscribe)) + if pIsCached ~= true then + hmi:ExpectRequest(rc.rpc.getHMIEventName(rpc), + rc.rpc.getHMIRequestParams(rpc, pModuleData.moduleType, moduleId, appId, pIsSubscribe)) + :Do(function(_, data) + hmi:SendResponse(data.id, data.method, "SUCCESS", resData) + end) + end + mobSession:ExpectResponse(cid, { success = true, resultCode = "SUCCESS", table.unpack(resData) }) +end + +local function getActualModuleData(pModuleType) + return rc.state.getActualModuleIVData(pModuleType, getModuleId(pModuleType)) +end + +local function onInteriorVehicleData(pModuleType) + local actualModuleData = getActualModuleData(pModuleType) + rc.rc.checkSubscription(pModuleType, getModuleId(pModuleType), appId, isCached, actualModuleData ) +end + +--[[Scenario]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", rc.rc.start) +runner.Step("Register App", common.registerApp) +runner.Step("Activate App", common.activateApp) +runner.Step("PTU with permission for RC", rc.rc.policyTableUpdate) + +runner.Title("Test") +for caseName, value in pairs(moduleData) do + runner.Step("Subscribe to moduleType " .. value.moduleType, getInteriorVehicleData, { value, isSubscribe }) + runner.Step("OnInteriorVehicleData with updated data " .. caseName, onInteriorVehicleData, + { value.moduleType }) + runner.Step("GetInteriorVehicleData after subscription " .. caseName, getInteriorVehicleData, + { getActualModuleData(value.moduleType), withoutSubscription, isCached }) +end + +runner.Title("Postconditions") diff --git a/test_scripts/Defects/7_1/1583_PerformInteraction_UNSUPPORTED_and_ABORTED_response_success.lua b/test_scripts/Defects/7_1/1583_PerformInteraction_UNSUPPORTED_and_ABORTED_response_success.lua new file mode 100644 index 0000000000..1d65436099 --- /dev/null +++ b/test_scripts/Defects/7_1/1583_PerformInteraction_UNSUPPORTED_and_ABORTED_response_success.lua @@ -0,0 +1,136 @@ +--------------------------------------------------------------------------------------------------- +-- User story: https://github.com/SmartDeviceLink/sdl_core/issues/1583 +-- +-- Description: +-- HMI responds with UNSUPPORTED_RESOURCE to UI.PerformInteraction and ABORTED to VR.PerformInteraction +-- +-- Preconditions: +-- 1) Clean environment +-- 2) SDL, HMI, Mobile session started +-- 3) Registered app +-- 4) Activated app +-- +-- Steps: +-- 1) Send PerformInteraction mobile RPC from app with type BOTH, HMI responds with UNSUPPORTED_RESOURCE +-- and choiceID for UI portion, sends ABORTED for VR portion +-- +-- Expected: +-- 1) App receives PerformInteraction response with choiceID from UI response, UNSUPPORTED_RESOURCE +-- result code, and success=true +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Functions ]] +local function sendOnSystemContext(ctx, pWindowId, pAppId) + if not pWindowId then pWindowId = 0 end + if not pAppId then pAppId = 1 end + common.getHMIConnection():SendNotification("UI.OnSystemContext", + { + appID = common.getHMIAppId(pAppId), + systemContext = ctx, + windowID = pWindowId + }) +end + +local function createInteractionChoiceSet(pAppId) + if not pAppId then pAppId = 1 end + local paramsChoiceSet = { + interactionChoiceSetID = 100, + choiceSet = { + { + choiceID = 111, + menuName = "Choice111", + vrCommands = { "Choice111" }, + choiceImage = { + value = "0x11", + imageType = "STATIC" + } + } + } + } + local cid = common.getMobileSession(pAppId):SendRPC("CreateInteractionChoiceSet", paramsChoiceSet) + common.getHMIConnection():ExpectRequest("VR.AddCommand") + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + common.getMobileSession(pAppId):ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) +end + +local function performInteraction(pAppId) + if not pAppId then pAppId = 1 end + local paramsPI = { + initialText = "StartPerformInteraction", + interactionMode = "BOTH", + interactionChoiceSetIDList = { 100 }, + initialPrompt = { + { type = "TEXT", text = "Initial Prompt" } + }, + helpPrompt = { + { text = "Help Prompt", type = "TEXT" } + }, + timeoutPrompt = { + { text = "Time out Prompt", type = "TEXT" } + }, + timeout = 5000, + vrHelp = { + { text = "New VRHelp", position = 1 } + } + } + local cid = common.getMobileSession(pAppId):SendRPC("PerformInteraction", paramsPI) + + local vrId = 0 + common.getHMIConnection():ExpectRequest("VR.PerformInteraction", { + helpPrompt = paramsPI.helpPrompt, + initialPrompt = paramsPI.initialPrompt, + timeout = paramsPI.timeout, + timeoutPrompt = paramsPI.timeoutPrompt + }) + :Do(function(_, data) + common.getHMIConnection():SendNotification("VR.Started") + common.getHMIConnection():SendNotification("TTS.Started") + sendOnSystemContext("VRSESSION") + vrId = data.id + print(vrId) + end) + + common.getHMIConnection():ExpectRequest("UI.PerformInteraction", { + timeout = paramsPI.timeout, + vrHelp = paramsPI.vrHelp, + vrHelpTitle = "StartPerformInteraction" + }) + :Do(function(_, data) + sendOnSystemContext("HMI_OBSCURED") + + local function uiResponse() + common.getHMIConnection():SendNotification("TTS.Stopped") + common.getHMIConnection():SendResponse(data.id, data.method, "UNSUPPORTED_RESOURCE", { choiceID = 111 }) + if vrId ~= 0 then + common.getHMIConnection():SendResponse(vrId, "VR.PerformInteraction", "ABORTED", {}) + common.getHMIConnection():SendNotification("VR.Stopped") + end + sendOnSystemContext("MAIN") + end + RUN_AFTER(uiResponse, 5) + end) + + common.getMobileSession(pAppId):ExpectResponse(cid, { success = true, resultCode = "UNSUPPORTED_RESOURCE", choiceID = 111 }) +end + +--[[ Scenario ]] +runner.Title("Precondition") +runner.Step("Clean environment and Back-up/update PPT", common.preconditions) +runner.Step("Start SDL, HMI", common.start) +runner.Step("App registration", common.registerAppWOPTU) +runner.Step("App activation", common.activateApp) +runner.Step("Create InteractionChoiceSet", createInteractionChoiceSet) + +runner.Title("Test") +runner.Step("Perform Interaction", performInteraction) + +runner.Title("Postconditions") +runner.Step("Stop SDL, restore SDL settings and PPT", common.postconditions) diff --git a/test_scripts/Defects/7_1/1596_1_VRPerformInteraction_UNSUPPORTED_RESOURCE_success.lua b/test_scripts/Defects/7_1/1596_1_VRPerformInteraction_UNSUPPORTED_RESOURCE_success.lua new file mode 100644 index 0000000000..6071fe4d49 --- /dev/null +++ b/test_scripts/Defects/7_1/1596_1_VRPerformInteraction_UNSUPPORTED_RESOURCE_success.lua @@ -0,0 +1,133 @@ +--------------------------------------------------------------------------------------------------- +-- User story: https://github.com/SmartDeviceLink/sdl_core/issues/1596 +-- +-- Description: +-- HMI responds with UNSUPPORTED_RESOURCE to single PerformInteraction component +-- +-- Preconditions: +-- 1) Clean environment +-- 2) SDL, HMI, Mobile session started +-- 3) Registered app +-- 4) Activated app +-- +-- Steps: +-- 1) Send PerformInteraction mobile RPC from app with type BOTH, HMI responds with UNSUPPORTED_RESOURCE +-- and choiceID for VR portion +-- +-- Expected: +-- 1) App receives PerformInteraction response with choiceID from VR response, UNSUPPORTED_RESOURCE +-- result code, and success=true +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Functions ]] +local function sendOnSystemContext(ctx, pWindowId, pAppId) + if not pWindowId then pWindowId = 0 end + if not pAppId then pAppId = 1 end + common.getHMIConnection():SendNotification("UI.OnSystemContext", + { + appID = common.getHMIAppId(pAppId), + systemContext = ctx, + windowID = pWindowId + }) +end + +local function createInteractionChoiceSet(pAppId) + if not pAppId then pAppId = 1 end + local paramsChoiceSet = { + interactionChoiceSetID = 100, + choiceSet = { + { + choiceID = 111, + menuName = "Choice111", + vrCommands = { "Choice111" }, + choiceImage = { + value = "0x11", + imageType = "STATIC" + } + } + } + } + local cid = common.getMobileSession(pAppId):SendRPC("CreateInteractionChoiceSet", paramsChoiceSet) + common.getHMIConnection():ExpectRequest("VR.AddCommand") + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + common.getMobileSession(pAppId):ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) +end + +local function performInteraction(pAppId) + if not pAppId then pAppId = 1 end + local pMainId = 0 + local paramsPI = { + initialText = "StartPerformInteraction", + interactionMode = "BOTH", + interactionChoiceSetIDList = { 100 }, + initialPrompt = { + { type = "LHPLUS_PHONEMES", text = "phoneme" } + }, + helpPrompt = { + { text = "Help Prompt", type = "TEXT" } + }, + timeoutPrompt = { + { text = "Time out Prompt", type = "TEXT" } + }, + timeout = 5000, + vrHelp = { + { text = "New VRHelp", position = 1 } + } + } + local cid = common.getMobileSession(pAppId):SendRPC("PerformInteraction", paramsPI) + + common.getHMIConnection():ExpectRequest("VR.PerformInteraction", { + helpPrompt = paramsPI.helpPrompt, + initialPrompt = paramsPI.initialPrompt, + timeout = paramsPI.timeout, + timeoutPrompt = paramsPI.timeoutPrompt + }) + :Do(function(_, data) + common.getHMIConnection():SendNotification("VR.Started") + common.getHMIConnection():SendNotification("TTS.Started") + sendOnSystemContext("VRSESSION", pMainId) + + common.getHMIConnection():SendResponse(data.id, data.method, "UNSUPPORTED_RESOURCE", { choiceID = 111 }) + common.getHMIConnection():SendNotification("VR.Stopped") + end) + + common.getHMIConnection():ExpectRequest("UI.PerformInteraction", { + timeout = paramsPI.timeout, + vrHelp = paramsPI.vrHelp, + vrHelpTitle = "StartPerformInteraction" + }) + :Do(function(_, data) + sendOnSystemContext("HMI_OBSCURED", pMainId) + + local function uiResponse() + common.getHMIConnection():SendNotification("TTS.Stopped") + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + sendOnSystemContext("MAIN", pMainId) + end + RUN_AFTER(uiResponse, 5) + end) + + common.getMobileSession(pAppId):ExpectResponse(cid, { success = true, resultCode = "UNSUPPORTED_RESOURCE", choiceID = 111 }) +end + +--[[ Scenario ]] +runner.Title("Precondition") +runner.Step("Clean environment and Back-up/update PPT", common.preconditions) +runner.Step("Start SDL, HMI", common.start) +runner.Step("App registration", common.registerAppWOPTU) +runner.Step("App activation", common.activateApp) +runner.Step("Create InteractionChoiceSet", createInteractionChoiceSet) + +runner.Title("Test") +runner.Step("Perform Interaction", performInteraction) + +runner.Title("Postconditions") +runner.Step("Stop SDL, restore SDL settings and PPT", common.postconditions) diff --git a/test_scripts/Defects/7_1/1596_2_UIPerformInteraction_UNSUPPORTED_RESOURCE_success.lua b/test_scripts/Defects/7_1/1596_2_UIPerformInteraction_UNSUPPORTED_RESOURCE_success.lua new file mode 100644 index 0000000000..c9624d55cc --- /dev/null +++ b/test_scripts/Defects/7_1/1596_2_UIPerformInteraction_UNSUPPORTED_RESOURCE_success.lua @@ -0,0 +1,133 @@ +--------------------------------------------------------------------------------------------------- +-- User story: https://github.com/SmartDeviceLink/sdl_core/issues/1596 +-- +-- Description: +-- HMI responds with UNSUPPORTED_RESOURCE to single PerformInteraction component +-- +-- Preconditions: +-- 1) Clean environment +-- 2) SDL, HMI, Mobile session started +-- 3) Registered app +-- 4) Activated app +-- +-- Steps: +-- 1) Send PerformInteraction mobile RPC from app with type BOTH, HMI responds with UNSUPPORTED_RESOURCE +-- and choiceID for UI portion +-- +-- Expected: +-- 1) App receives PerformInteraction response with choiceID from UI response, UNSUPPORTED_RESOURCE +-- result code, and success=true +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Functions ]] +local function sendOnSystemContext(ctx, pWindowId, pAppId) + if not pWindowId then pWindowId = 0 end + if not pAppId then pAppId = 1 end + common.getHMIConnection():SendNotification("UI.OnSystemContext", + { + appID = common.getHMIAppId(pAppId), + systemContext = ctx, + windowID = pWindowId + }) +end + +local function createInteractionChoiceSet(pAppId) + if not pAppId then pAppId = 1 end + local paramsChoiceSet = { + interactionChoiceSetID = 100, + choiceSet = { + { + choiceID = 111, + menuName = "Choice111", + vrCommands = { "Choice111" }, + choiceImage = { + value = "0x11", + imageType = "STATIC" + } + } + } + } + local cid = common.getMobileSession(pAppId):SendRPC("CreateInteractionChoiceSet", paramsChoiceSet) + common.getHMIConnection():ExpectRequest("VR.AddCommand") + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + common.getMobileSession(pAppId):ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) +end + +local function performInteraction(pAppId) + if not pAppId then pAppId = 1 end + local pMainId = 0 + local paramsPI = { + initialText = "StartPerformInteraction", + interactionMode = "BOTH", + interactionChoiceSetIDList = { 100 }, + initialPrompt = { + { type = "TEXT", text = "Initial Prompt" } + }, + helpPrompt = { + { text = "Help Prompt", type = "TEXT" } + }, + timeoutPrompt = { + { text = "Time out Prompt", type = "TEXT" } + }, + timeout = 5000, + vrHelp = { + { text = "New VRHelp", position = 1 } + } + } + local cid = common.getMobileSession(pAppId):SendRPC("PerformInteraction", paramsPI) + + common.getHMIConnection():ExpectRequest("VR.PerformInteraction", { + helpPrompt = paramsPI.helpPrompt, + initialPrompt = paramsPI.initialPrompt, + timeout = paramsPI.timeout, + timeoutPrompt = paramsPI.timeoutPrompt + }) + :Do(function(_, data) + common.getHMIConnection():SendNotification("VR.Started") + common.getHMIConnection():SendNotification("TTS.Started") + sendOnSystemContext("VRSESSION", pMainId) + + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + common.getHMIConnection():SendNotification("VR.Stopped") + end) + + common.getHMIConnection():ExpectRequest("UI.PerformInteraction", { + timeout = paramsPI.timeout, + vrHelp = paramsPI.vrHelp, + vrHelpTitle = "StartPerformInteraction" + }) + :Do(function(_, data) + sendOnSystemContext("HMI_OBSCURED", pMainId) + + local function uiResponse() + common.getHMIConnection():SendNotification("TTS.Stopped") + common.getHMIConnection():SendResponse(data.id, data.method, "UNSUPPORTED_RESOURCE", { choiceID = 111 }) + sendOnSystemContext("MAIN", pMainId) + end + RUN_AFTER(uiResponse, 5) + end) + + common.getMobileSession(pAppId):ExpectResponse(cid, { success = true, resultCode = "UNSUPPORTED_RESOURCE", choiceID = 111 }) +end + +--[[ Scenario ]] +runner.Title("Precondition") +runner.Step("Clean environment and Back-up/update PPT", common.preconditions) +runner.Step("Start SDL, HMI", common.start) +runner.Step("App registration", common.registerAppWOPTU) +runner.Step("App activation", common.activateApp) +runner.Step("Create InteractionChoiceSet", createInteractionChoiceSet) + +runner.Title("Test") +runner.Step("Perform Interaction", performInteraction) + +runner.Title("Postconditions") +runner.Step("Stop SDL, restore SDL settings and PPT", common.postconditions) diff --git a/test_scripts/Defects/7_1/1597_1_Alert_Unsupported_Speech_Type.lua b/test_scripts/Defects/7_1/1597_1_Alert_Unsupported_Speech_Type.lua new file mode 100644 index 0000000000..a6d599091d --- /dev/null +++ b/test_scripts/Defects/7_1/1597_1_Alert_Unsupported_Speech_Type.lua @@ -0,0 +1,75 @@ +--------------------------------------------------------------------------------------------------- +-- User story: https://github.com/SmartDeviceLink/sdl_core/issues/1597 +-- +-- Description: +-- HMI responds with UNSUPPORTED_RESOURCE to Speak component of Alert +-- +-- Preconditions: +-- 1) Clean environment +-- 2) SDL, HMI, Mobile session started +-- 3) Registered app +-- 4) Activated app +-- +-- Steps: +-- 1) Send Alert mobile RPC from app with ttsChunks, HMI responds with UNSUPPORTED_RESOURCE to +-- Speak request +-- +-- Expected: +-- 1) App receives Alert response with info from Speak response, WARNINGS result code, +-- and success=true +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Functions ]] +local function sendOnSystemContext(ctx, pWindowId, pAppId) + if not pWindowId then pWindowId = 0 end + if not pAppId then pAppId = 1 end + common.getHMIConnection():SendNotification("UI.OnSystemContext", + { + appID = common.getHMIAppId(pAppId), + systemContext = ctx, + windowID = pWindowId + }) +end + +local function sendAlert() + local cid = common.getMobileSession():SendRPC("Alert", { + alertText1 = "Message", + ttsChunks = { + { type = "LHPLUS_PHONEMES", text = "phoneme" } + } + }) + common.getHMIConnection():ExpectRequest("UI.Alert") + :Do(function(_, data) + sendOnSystemContext("ALERT") + common.run.runAfter(function() + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + sendOnSystemContext("MAIN") + end, 2000) + end) + common.getHMIConnection():ExpectRequest("TTS.Speak") + :Do(function(_, data) + common.run.runAfter(function() + common.getHMIConnection():SendError(data.id, data.method, "UNSUPPORTED_RESOURCE", "Error message from HMI") + end, 1000) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "WARNINGS", info = "Error message from HMI" }) +end + +--[[ Scenario ]] +runner.Title("Precondition") +runner.Step("Clean environment and Back-up/update PPT", common.preconditions) +runner.Step("Start SDL, HMI", common.start) +runner.Step("App registration", common.registerAppWOPTU) +runner.Step("App activation", common.activateApp) + +runner.Title("Test") +runner.Step("Alert", sendAlert) + +runner.Title("Postconditions") +runner.Step("Stop SDL, restore SDL settings and PPT", common.postconditions) diff --git a/test_scripts/Defects/7_1/1597_2_SubtleAlert_Unsupported_Speech_Type.lua b/test_scripts/Defects/7_1/1597_2_SubtleAlert_Unsupported_Speech_Type.lua new file mode 100644 index 0000000000..2fa361fb7a --- /dev/null +++ b/test_scripts/Defects/7_1/1597_2_SubtleAlert_Unsupported_Speech_Type.lua @@ -0,0 +1,75 @@ +--------------------------------------------------------------------------------------------------- +-- User story: https://github.com/SmartDeviceLink/sdl_core/issues/1597 +-- +-- Description: +-- HMI responds with UNSUPPORTED_RESOURCE to Speak component of SubtleAlert +-- +-- Preconditions: +-- 1) Clean environment +-- 2) SDL, HMI, Mobile session started +-- 3) Registered app +-- 4) Activated app +-- +-- Steps: +-- 1) Send SubtleAlert mobile RPC from app with ttsChunks, HMI responds with UNSUPPORTED_RESOURCE to +-- Speak request +-- +-- Expected: +-- 1) App receives SubtleAlert response with info from Speak response, WARNINGS result code, +-- and success=true +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Functions ]] +local function sendOnSystemContext(ctx, pWindowId, pAppId) + if not pWindowId then pWindowId = 0 end + if not pAppId then pAppId = 1 end + common.getHMIConnection():SendNotification("UI.OnSystemContext", + { + appID = common.getHMIAppId(pAppId), + systemContext = ctx, + windowID = pWindowId + }) +end + +local function sendSubtleAlert() + local cid = common.getMobileSession():SendRPC("SubtleAlert", { + alertText1 = "Message", + ttsChunks = { + { type = "LHPLUS_PHONEMES", text = "phoneme" } + } + }) + common.getHMIConnection():ExpectRequest("UI.SubtleAlert") + :Do(function(_, data) + sendOnSystemContext("ALERT") + common.run.runAfter(function() + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + sendOnSystemContext("MAIN") + end, 2000) + end) + common.getHMIConnection():ExpectRequest("TTS.Speak") + :Do(function(_, data) + common.run.runAfter(function() + common.getHMIConnection():SendError(data.id, data.method, "UNSUPPORTED_RESOURCE", "Error message from HMI") + end, 1000) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "WARNINGS", info = "Error message from HMI" }) +end + +--[[ Scenario ]] +runner.Title("Precondition") +runner.Step("Clean environment and Back-up/update PPT", common.preconditions) +runner.Step("Start SDL, HMI", common.start) +runner.Step("App registration", common.registerAppWOPTU) +runner.Step("App activation", common.activateApp) + +runner.Title("Test") +runner.Step("Subtle Alert", sendSubtleAlert) + +runner.Title("Postconditions") +runner.Step("Stop SDL, restore SDL settings and PPT", common.postconditions) diff --git a/test_scripts/Defects/7_1/1597_3_AlertManeuver_Unsupported_Speech_Type.lua b/test_scripts/Defects/7_1/1597_3_AlertManeuver_Unsupported_Speech_Type.lua new file mode 100644 index 0000000000..5d3412a5ad --- /dev/null +++ b/test_scripts/Defects/7_1/1597_3_AlertManeuver_Unsupported_Speech_Type.lua @@ -0,0 +1,85 @@ +--------------------------------------------------------------------------------------------------- +-- User story: https://github.com/SmartDeviceLink/sdl_core/issues/1597 +-- +-- Description: +-- HMI responds with UNSUPPORTED_RESOURCE to Speak component of AlertManeuver +-- +-- Preconditions: +-- 1) Clean environment +-- 2) SDL, HMI, Mobile session started +-- 3) Registered app +-- 4) Activated app +-- +-- Steps: +-- 1) Send AlertManeuver mobile RPC from app with ttsChunks, HMI responds with UNSUPPORTED_RESOURCE to +-- Speak request +-- +-- Expected: +-- 1) App receives AlertManeuver response with info from Speak response, WARNINGS result code, +-- and success=true +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Functions ]] +local function pTUpdateFunc(tbl) + local newGroup = { + rpcs = { + AlertManeuver = { + hmi_levels = {"BACKGROUND", "FULL", "LIMITED", "NONE"} + } + } + } + tbl.policy_table.functional_groupings["NewTestCaseGroup"] = newGroup + tbl.policy_table.app_policies[config.application1.registerAppInterfaceParams.fullAppID].groups = {"Base-4", "NewTestCaseGroup"} +end + +local function sendOnSystemContext(ctx, pWindowId, pAppId) + if not pWindowId then pWindowId = 0 end + if not pAppId then pAppId = 1 end + common.getHMIConnection():SendNotification("UI.OnSystemContext", + { + appID = common.getHMIAppId(pAppId), + systemContext = ctx, + windowID = pWindowId + }) +end + +local function sendAlertManeuver() + local cid = common.getMobileSession():SendRPC("AlertManeuver", { + ttsChunks = { + { type = "LHPLUS_PHONEMES", text = "phoneme" } + } + }) + common.getHMIConnection():ExpectRequest("Navigation.AlertManeuver") + :Do(function(_, data) + common.run.runAfter(function() + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end, 2000) + end) + common.getHMIConnection():ExpectRequest("TTS.Speak") + :Do(function(_, data) + common.run.runAfter(function() + common.getHMIConnection():SendError(data.id, data.method, "UNSUPPORTED_RESOURCE", "Error message from HMI") + end, 1000) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "WARNINGS", info = "Error message from HMI" }) +end + +--[[ Scenario ]] +runner.Title("Precondition") +runner.Step("Clean environment and Back-up/update PPT", common.preconditions) +runner.Step("Start SDL, HMI", common.start) +runner.Step("App registration", common.registerApp) +runner.Step("RAI, PTU", common.policyTableUpdate, { pTUpdateFunc }) +runner.Step("App activation", common.activateApp) + +runner.Title("Test") +runner.Step("Alert Maneuver", sendAlertManeuver) + +runner.Title("Postconditions") +runner.Step("Stop SDL, restore SDL settings and PPT", common.postconditions) diff --git a/test_scripts/Defects/7_1/1597_4_PerformAudioPassThru_Unsupported_Speech_Type.lua b/test_scripts/Defects/7_1/1597_4_PerformAudioPassThru_Unsupported_Speech_Type.lua new file mode 100644 index 0000000000..3e549bfa0c --- /dev/null +++ b/test_scripts/Defects/7_1/1597_4_PerformAudioPassThru_Unsupported_Speech_Type.lua @@ -0,0 +1,79 @@ +--------------------------------------------------------------------------------------------------- +-- User story: https://github.com/SmartDeviceLink/sdl_core/issues/1597 +-- +-- Description: +-- HMI responds with UNSUPPORTED_RESOURCE to Speak component of PerformAudioPassThru +-- +-- Preconditions: +-- 1) Clean environment +-- 2) SDL, HMI, Mobile session started +-- 3) Registered app +-- 4) Activated app +-- +-- Steps: +-- 1) Send PerformAudioPassThru mobile RPC from app with ttsChunks, HMI responds with UNSUPPORTED_RESOURCE to +-- Speak request +-- +-- Expected: +-- 1) App receives PerformAudioPassThru response with info from Speak response, WARNINGS result code, +-- and success=true +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Functions ]] +local function sendOnSystemContext(ctx, pWindowId, pAppId) + if not pWindowId then pWindowId = 0 end + if not pAppId then pAppId = 1 end + common.getHMIConnection():SendNotification("UI.OnSystemContext", + { + appID = common.getHMIAppId(pAppId), + systemContext = ctx, + windowID = pWindowId + }) +end + +local function sendPerformAudioPassThru() + local cid = common.getMobileSession():SendRPC("PerformAudioPassThru", { + audioPassThruDisplayText1 = "Message", + samplingRate = "8KHZ", + maxDuration = 10000, + bitsPerSample = "8_BIT", + audioType = "PCM", + initialPrompt = { + { type = "LHPLUS_PHONEMES", text = "phoneme" } + } + }) + common.getHMIConnection():ExpectRequest("UI.PerformAudioPassThru") + :Do(function(_, data) + sendOnSystemContext("HMI_OBSCURED") + common.run.runAfter(function() + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + sendOnSystemContext("MAIN") + end, 2000) + end) + common.getHMIConnection():ExpectRequest("TTS.Speak") + :Do(function(_, data) + common.run.runAfter(function() + common.getHMIConnection():SendError(data.id, data.method, "UNSUPPORTED_RESOURCE", "Error message from HMI") + end, 1000) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "WARNINGS", info = "Error message from HMI" }) +end + +--[[ Scenario ]] +runner.Title("Precondition") +runner.Step("Clean environment and Back-up/update PPT", common.preconditions) +runner.Step("Start SDL, HMI", common.start) +runner.Step("App registration", common.registerAppWOPTU) +runner.Step("App activation", common.activateApp) + +runner.Title("Test") +runner.Step("PerformAudioPassThru", sendPerformAudioPassThru) + +runner.Title("Postconditions") +runner.Step("Stop SDL, restore SDL settings and PPT", common.postconditions) diff --git a/test_scripts/API/System/OnSystemRequest/001_OnSystemRequest_send_binaryData_for_any_requestType.lua b/test_scripts/Defects/7_1/1714_OnSystemRequest_send_binaryData_for_any_requestType.lua similarity index 65% rename from test_scripts/API/System/OnSystemRequest/001_OnSystemRequest_send_binaryData_for_any_requestType.lua rename to test_scripts/Defects/7_1/1714_OnSystemRequest_send_binaryData_for_any_requestType.lua index e101b64c34..52722f2e78 100644 --- a/test_scripts/API/System/OnSystemRequest/001_OnSystemRequest_send_binaryData_for_any_requestType.lua +++ b/test_scripts/Defects/7_1/1714_OnSystemRequest_send_binaryData_for_any_requestType.lua @@ -5,8 +5,11 @@ --[[ Required Shared libraries ]] local runner = require('user_modules/script_runner') -local common = require('test_scripts/API/System/commonSystem') -local json = require("modules/json") +runner.isTestApplicable({ { extendedPolicy = { "PROPRIETARY" } } }) +local common = require("user_modules/sequences/actions") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false --[[ Local Variables ]] local request_types = { @@ -35,31 +38,31 @@ local f_name = os.tmpname() local exp_binary_data = "{ \"policy_table\": { } }" --[[ Local Functions ]] -local function onSystemRequest(request_type, self) +local function onSystemRequest(request_type) local f = io.open(f_name, "w") f:write(exp_binary_data) f:close() - self.hmiConnection:SendNotification("BasicCommunication.OnSystemRequest", - { requestType = request_type, fileName = f_name, appID = self.applications["Test Application"] }) - self.mobileSession1:ExpectNotification("OnSystemRequest", { requestType = request_type }) + common.getHMIConnection():SendNotification("BasicCommunication.OnSystemRequest", + { requestType = request_type, fileName = f_name, appID = common.getHMIAppId() }) + common.getMobileSession():ExpectNotification("OnSystemRequest", { requestType = request_type }) :ValidIf(function(_, d) - local actual_binary_data = common.convertTableToString(d.binaryData, 1) + local actual_binary_data = d.binaryData return exp_binary_data == actual_binary_data end) end -local function onSystemRequest_PROPRIETARY(self) +local function onSystemRequest_PROPRIETARY() local f = io.open(f_name, "w") f:write(exp_binary_data) f:close() - self.hmiConnection:SendNotification("BasicCommunication.OnSystemRequest", - { requestType = "PROPRIETARY", fileName = f_name, appID = self.applications["Test Application"] }) - self.mobileSession1:ExpectNotification("OnSystemRequest", { requestType = "PROPRIETARY" }) + common.getHMIConnection():SendNotification("BasicCommunication.OnSystemRequest", + { requestType = "PROPRIETARY", fileName = f_name, appID = common.getHMIAppId() }) + common.getMobileSession():ExpectNotification("OnSystemRequest", { requestType = "PROPRIETARY" }) :ValidIf(function(_, d) - local binary_data = json.decode(d.binaryData) - local actual_binary_data = common.convertTableToString(binary_data["HTTPRequest"]["body"], 1) + local binary_data = common.json.decode(d.binaryData) + local actual_binary_data = binary_data["HTTPRequest"]["body"] return exp_binary_data == actual_binary_data end) end @@ -72,7 +75,7 @@ end runner.Title("Preconditions") runner.Step("Clean environment", common.preconditions) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) -runner.Step("RAI with PTU", common.registerAppWithPTU) +runner.Step("RAI with PTU", common.registerApp) runner.Step("Activate App", common.activateApp) runner.Title("Test") diff --git a/test_scripts/Defects/7_1/2353_1_Request.lua b/test_scripts/Defects/7_1/2353_1_Request.lua new file mode 100644 index 0000000000..0317875541 --- /dev/null +++ b/test_scripts/Defects/7_1/2353_1_Request.lua @@ -0,0 +1,85 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/2353 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to proceed with request from HMI after cut off of fake parameters +-- Scenario: request that SDL should transfer to mobile app +-- +-- Steps: +-- 1. HMI sends request with fake parameter +-- SDL does: +-- - cut off fake parameters +-- - check whether request is valid +-- - proceed with request in case if it's valid and transfer it to App +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('test_scripts/AppServices/commonAppServices') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local manifest = { + serviceName = common.getConfigAppParams().appName, + serviceType = "MEDIA", + allowAppConsumers = true, + rpcSpecVersion = common.getConfigAppParams().syncMsgVersion, + mediaServiceManifest = {} +} + +--[[ Local Functions ]] +local function ptUpdate(tbl) + tbl.policy_table.app_policies[common.getConfigAppParams().fullAppID] = common.getAppServiceProducerConfig(1); +end + +local function sendPerformAppServiceInteraction() + local hmiReq = { + serviceUri = "mobile:sample.service.uri", + serviceID = common.getAppServiceID(), + fakeParam = "123" + } + local mobReq = { + originApp = common.sdl.getSDLIniParameter("HMIOriginID"), + serviceID = hmiReq.serviceID, + serviceUri = hmiReq.serviceUri + } + local mobRes = { + serviceSpecificResult = "SPECIFIC_RESULT", + success = true, + resultCode = "SUCCESS" + } + local hmiRes = { + result = { + code = 0, -- SUCCESS + method = "AppService.PerformAppServiceInteraction", + serviceSpecificResult = mobRes.serviceSpecificResult + } + } + local cid = common.getHMIConnection():SendRequest("AppService.PerformAppServiceInteraction", hmiReq) + common.getMobileSession():ExpectRequest("PerformAppServiceInteraction", mobReq) + :Do(function(_, data) + common.getMobileSession():SendResponse(data.rpcFunctionId, data.rpcCorrelationId, mobRes) + end) + :ValidIf(function(_, data) + if data.payload.fakeParam then + return false, "Unexpected 'fakeParam' is received" + end + return true + end) + common.getHMIConnection():ExpectResponse(cid, hmiRes) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect regular mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("PTU", common.policyTableUpdate, { ptUpdate }) +runner.Step("Activate App", common.activateApp) +runner.Step("Publish App Service", common.publishMobileAppService, { manifest }) + +runner.Title("Test") +runner.Step("HMI sends PerformAppServiceInteraction", sendPerformAppServiceInteraction) + +runner.Title("Postconditions") +runner.Step("Stop SDL, restore SDL settings and PPT", common.postconditions) diff --git a/test_scripts/Defects/7_1/2353_2_Response.lua b/test_scripts/Defects/7_1/2353_2_Response.lua new file mode 100644 index 0000000000..42f4a8f481 --- /dev/null +++ b/test_scripts/Defects/7_1/2353_2_Response.lua @@ -0,0 +1,74 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/2353 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to proceed with response from HMI after cut off of fake parameters +-- Scenario: response that SDL should transfer to mobile app +-- +-- Steps: +-- 1. App sends request to SDL +-- SDL does: +-- - transfer this request to HMI +-- 2. HMI responds with fake parameter +-- SDL does: +-- - cut off fake parameters +-- - check whether response is valid +-- - proceed with response in case if it's valid and transfer it to App +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") +local utils = require("user_modules/utils") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Functions ]] +local function ptUpdate(pTbl) + pTbl.policy_table.app_policies[common.app.getParams().fullAppID].groups = { "Base-4", "PropriataryData-1" } +end + +local function sendReadDID() + local params = { + ecuName = 2000, + didLocation = { + 56832 + } + } + local exp = { + didResult = { + { + resultCode = "SUCCESS", + didLocation = params.didLocation[1], + data = "some_data" + } + } + } + local dataFromHMI = utils.cloneTable(exp) + dataFromHMI.didResult[1].fakeParam = "123" + local cid = common.getMobileSession():SendRPC("ReadDID", params) + common.getHMIConnection():ExpectRequest("VehicleInfo.ReadDID") + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", dataFromHMI) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS", didResult = exp.didResult }) + :ValidIf(function(_, data) + if data.payload.didResult[1].fakeParam then + return false, "Unexpected 'fakeParam' is received" + end + return true + end) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect regular mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("PTU", common.policyTableUpdate, { ptUpdate }) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("App sends ReadDID", sendReadDID) + +runner.Title("Postconditions") +runner.Step("Stop SDL, restore SDL settings and PPT", common.postconditions) diff --git a/test_scripts/Defects/7_1/2353_3_Notification.lua b/test_scripts/Defects/7_1/2353_3_Notification.lua new file mode 100644 index 0000000000..855306c7eb --- /dev/null +++ b/test_scripts/Defects/7_1/2353_3_Notification.lua @@ -0,0 +1,63 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/2353 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to proceed with notification from HMI after cut off of fake parameters +-- Scenario: notification that SDL should transfer to mobile app +-- +-- Steps: +-- 1. HMI sends notification with fake parameter +-- SDL does: +-- - cut off fake parameters +-- - check whether notification is valid +-- - proceed with notification in case if it's valid and transfer it to App +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") +local utils = require("user_modules/utils") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Functions ]] +local function sendOnSCU() + local expDataToMobile = { + systemCapability = { + systemCapabilityType = "DISPLAYS", + displayCapabilities = { + { + displayName = "MainDisplayName", + windowCapabilities = { + { + windowID = 0, + templatesAvailable = { "Tmpl1", "Tmpl2" } + } + } + } + } + } + } + local dataFromHMI = utils.cloneTable(expDataToMobile) + dataFromHMI.appID = common.getHMIAppId() + dataFromHMI.systemCapability.fakeParam = "123" + common.getHMIConnection():SendNotification("BasicCommunication.OnSystemCapabilityUpdated", dataFromHMI) + common.getMobileSession():ExpectNotification("OnSystemCapabilityUpdated", expDataToMobile) + :ValidIf(function(_, data) + if data.payload.systemCapability.fakeParam then + return false, "Unexpected 'fakeParam' is received" + end + return true + end) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect regular mobile, start Session", common.start) +runner.Step("Register App", common.registerAppWOPTU) + +runner.Title("Test") +runner.Step("HMI sends OnSystemCapabilityUpdated", sendOnSCU) + +runner.Title("Postconditions") +runner.Step("Stop SDL, restore SDL settings and PPT", common.postconditions) diff --git a/test_scripts/Defects/7_1/2354_1_Request.lua b/test_scripts/Defects/7_1/2354_1_Request.lua new file mode 100644 index 0000000000..cf3490e099 --- /dev/null +++ b/test_scripts/Defects/7_1/2354_1_Request.lua @@ -0,0 +1,56 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/2354 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to proceed with request from HMI after cut off of fake parameters +-- Scenario: request that SDL should use internally +-- +-- Steps: +-- 1. HMI sends request with fake parameter +-- SDL does: +-- - cut off fake parameters +-- - check whether request is valid +-- - proceed with request in case if it's valid +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Functions ]] +local function sendGetUserFriendlyMessage() + local params = { + language = "EN-US", + messageCodes = { "DataConsent" }, + fakeParam = "123" + } + local exp = { + result = { + code = 0, -- SUCCESS + method = "SDL.GetUserFriendlyMessage", + messages = { + { messageCode = "DataConsent" } + } + } + } + local cid = common.getHMIConnection():SendRequest("SDL.GetUserFriendlyMessage", params) + common.getHMIConnection():ExpectResponse(cid, exp) + :ValidIf(function(_, data) + if data.result.fakeParam then + return false, "Unexpected 'fakeParam' is received" + end + return true + end) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect regular mobile, start Session", common.start) + +runner.Title("Test") +runner.Step("HMI sends GetUserFriendlyMessage", sendGetUserFriendlyMessage) + +runner.Title("Postconditions") +runner.Step("Stop SDL, restore SDL settings and PPT", common.postconditions) diff --git a/test_scripts/Defects/7_1/2354_2_Response.lua b/test_scripts/Defects/7_1/2354_2_Response.lua new file mode 100644 index 0000000000..bcb355bd30 --- /dev/null +++ b/test_scripts/Defects/7_1/2354_2_Response.lua @@ -0,0 +1,55 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/2354 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to proceed with response from HMI after cut off of fake parameters +-- Scenario: response that SDL should use internally +-- +-- Steps: +-- 1. SDL sends some request to HMI +-- 2. HMI responds with fake parameter +-- SDL does: +-- - cut off fake parameters +-- - check whether response is valid +-- - proceed with response in case if it's valid +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") +local hmi_values = require('user_modules/hmi_values') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Functions ]] +local function getHMIParams() + local params = hmi_values.getDefaultHMITable() + params.VehicleInfo.GetVehicleType.params.vehicleType.fakeParam = "123" + return params +end + +local function registerApp() + local session = common.mobile.createSession() + session:StartService(7) + :Do(function() + local cid = session:SendRPC("RegisterAppInterface", common.app.getParams()) + common.hmi.getConnection():ExpectNotification("BasicCommunication.OnAppRegistered") + session:ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) + :ValidIf(function(_, data) + if data.payload.vehicleType.fakeParam then + return false, "Unexpected 'fakeParam' is received" + end + return true + end) + end) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect regular mobile, start Session", common.start, { getHMIParams() }) + +runner.Title("Test") +runner.Step("Register App", registerApp) + +runner.Title("Postconditions") +runner.Step("Stop SDL, restore SDL settings and PPT", common.postconditions) diff --git a/test_scripts/Defects/7_1/2354_3_Notification.lua b/test_scripts/Defects/7_1/2354_3_Notification.lua new file mode 100644 index 0000000000..5fdcb122ad --- /dev/null +++ b/test_scripts/Defects/7_1/2354_3_Notification.lua @@ -0,0 +1,45 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/2354 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to proceed with notification from HMI after cut off of fake parameters +-- Scenario: notification that SDL should use internally +-- +-- Steps: +-- 1. HMI sends notification with fake parameter +-- SDL does: +-- - cut off fake parameters +-- - check whether notification is valid +-- - proceed with notification in case if it's valid +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Functions ]] +local function activateApp() + local params = { + appID = common.getHMIAppId(), + fakeParam = "123" + } + common.getHMIConnection():SendNotification("BasicCommunication.OnAppActivated", params) + common.getMobileSession():ExpectNotification("OnHMIStatus", { hmiLevel = "FULL" }) + common.getHMIConnection():ExpectRequest("BasicCommunication.ActivateApp", {}) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect regular mobile, start Session", common.start) +runner.Step("Register App", common.registerAppWOPTU) + +runner.Title("Test") +runner.Step("HMI sends OnAppActivated", activateApp) + +runner.Title("Postconditions") +runner.Step("Stop SDL, restore SDL settings and PPT", common.postconditions) diff --git a/test_scripts/Defects/7_1/2379_1_Request.lua b/test_scripts/Defects/7_1/2379_1_Request.lua new file mode 100644 index 0000000000..c463c04546 --- /dev/null +++ b/test_scripts/Defects/7_1/2379_1_Request.lua @@ -0,0 +1,56 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/2379 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to reject request from HMI after cut off of fake parameters +-- and request becomes invalid +-- Scenario: request that SDL should use internally +-- +-- Steps: +-- 1. HMI sends request with fake parameter +-- SDL does: +-- - cut off fake parameters +-- - check whether request is valid +-- - reject request in case if it's invalid +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Functions ]] +local function sendGetUserFriendlyMessage() + local params = { + language = "EN-US", + messageCodes = { 123 }, --invalid data type + fakeParam = "123" + } + local exp = { + error = { + code = 11, --INVALID_DATA + data = { + method = "SDL.GetUserFriendlyMessage", + } + } + } + local cid = common.getHMIConnection():SendRequest("SDL.GetUserFriendlyMessage", params) + common.getHMIConnection():ExpectResponse(cid, exp) + :ValidIf(function(_, data) + if data.error.data.fakeParam then + return false, "Unexpected 'fakeParam' is received" + end + return true + end) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect regular mobile, start Session", common.start) + +runner.Title("Test") +runner.Step("HMI sends GetUserFriendlyMessage", sendGetUserFriendlyMessage) + +runner.Title("Postconditions") +runner.Step("Stop SDL, restore SDL settings and PPT", common.postconditions) diff --git a/test_scripts/Defects/7_1/2379_2_Response.lua b/test_scripts/Defects/7_1/2379_2_Response.lua new file mode 100644 index 0000000000..0146d62a4a --- /dev/null +++ b/test_scripts/Defects/7_1/2379_2_Response.lua @@ -0,0 +1,61 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/2379 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to ignore response from HMI after cut off of fake parameters +-- and response becomes invalid +-- Scenario: response that SDL should use internally +-- +-- Steps: +-- 1. SDL sends some request to HMI +-- 2. HMI responds with fake parameter +-- SDL does: +-- - cut off fake parameters +-- - check whether response is valid +-- - ignore response in case if it's invalid +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") +local hmi_values = require('user_modules/hmi_values') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Functions ]] +local function getHMIParams() + local params = hmi_values.getDefaultHMITable() + params.VehicleInfo.GetVehicleType.params.vehicleType.make = 123 --invalid data type + params.VehicleInfo.GetVehicleType.params.vehicleType.fakeParam = "123" + return params +end + +local function registerApp() + local defaultVT = common.sdl.getHMICapabilitiesFromFile().VehicleInfo.vehicleType + local session = common.mobile.createSession() + session:StartService(7) + :Do(function() + local cid = session:SendRPC("RegisterAppInterface", common.app.getParams()) + common.hmi.getConnection():ExpectNotification("BasicCommunication.OnAppRegistered") + session:ExpectResponse(cid, { success = true, resultCode = "SUCCESS", vehicleType = defaultVT }) + :ValidIf(function(_, data) + if not data.payload.vehicleType then + return false, "Expected 'vehicleType' is not received" + end + if data.payload.vehicleType.fakeParam then + return false, "Unexpected 'fakeParam' is received" + end + return true + end) + end) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect regular mobile, start Session", common.start, { getHMIParams() }) + +runner.Title("Test") +runner.Step("Register App", registerApp) + +runner.Title("Postconditions") +runner.Step("Stop SDL, restore SDL settings and PPT", common.postconditions) diff --git a/test_scripts/Defects/7_1/2379_3_Notification.lua b/test_scripts/Defects/7_1/2379_3_Notification.lua new file mode 100644 index 0000000000..65d095c638 --- /dev/null +++ b/test_scripts/Defects/7_1/2379_3_Notification.lua @@ -0,0 +1,45 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/2379 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to ignore notification from HMI after cut off of fake parameters +-- and notification becomes invalid +-- Scenario: notification that SDL should use internally +-- +-- Steps: +-- 1. HMI sends notification with fake parameter +-- SDL does: +-- - cut off fake parameters +-- - check whether notification is valid +-- - ignore notification in case if it's invalid +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Functions ]] +local function activateApp() + local params = { + appID = "123", --invalid data type + fakeParam = "123" + } + common.getHMIConnection():SendNotification("BasicCommunication.OnAppActivated", params) + common.getMobileSession():ExpectNotification("OnHMIStatus") + :Times(0) + common.getHMIConnection():ExpectRequest("BasicCommunication.ActivateApp") + :Times(0) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect regular mobile, start Session", common.start) +runner.Step("Register App", common.registerAppWOPTU) + +runner.Title("Test") +runner.Step("HMI sends OnAppActivated", activateApp) + +runner.Title("Postconditions") +runner.Step("Stop SDL, restore SDL settings and PPT", common.postconditions) diff --git a/test_scripts/Defects/7_1/2604_Starting_of_protected_RPC_service_before_and_after_app_registration.lua b/test_scripts/Defects/7_1/2604_Starting_of_protected_RPC_service_before_and_after_app_registration.lua new file mode 100644 index 0000000000..221e221a3a --- /dev/null +++ b/test_scripts/Defects/7_1/2604_Starting_of_protected_RPC_service_before_and_after_app_registration.lua @@ -0,0 +1,79 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/smartdevicelink/sdl_core/issues/2604 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL rejects starting of protected RPC service before app registration +-- and accepts it after (when app id became available) +-- +-- Steps: +-- 1. App starts unprotected RPC service +-- 2. App tries to switch RPC service to protected mode +-- SDL does: +-- - respond with StartServiceNACK to App +-- - send 'BC.OnServiceUpdate' (REQUEST_REJECTED/INVALID_CERT) to HMI +-- 3. App is registered +-- 4. App tries to switch RPC service to protected mode +-- SDL does: +-- - respond with StartServiceACK to App +-- - send 'BC.OnServiceUpdate' (REQUEST_ACCEPTED) to HMI +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("test_scripts/Security/SSLHandshakeFlow/common") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] + local serviceId = 7 + +--[[ Local Functions ]] +local function startServiceUnprotectedACK() + common.getMobileSession():StartService(serviceId) + common.getHMIConnection():ExpectRequest("BasicCommunication.OnServiceUpdate", + { serviceType = "RPC", serviceEvent = "REQUEST_RECEIVED" }, + { serviceType = "RPC", serviceEvent = "REQUEST_ACCEPTED" }) + :Times(2) +end + +local function startServiceProtectedNACK() + common.getMobileSession():StartSecureService(serviceId) + common.getMobileSession():ExpectControlMessage(serviceId, { + frameInfo = common.frameInfo.START_SERVICE_NACK, + encryption = false + }) + common.getMobileSession():ExpectHandshakeMessage() + common.getHMIConnection():ExpectRequest("BasicCommunication.OnServiceUpdate", + { serviceType = "RPC", serviceEvent = "REQUEST_RECEIVED" }, + { serviceType = "RPC", serviceEvent = "REQUEST_REJECTED", reason = "INVALID_CERT" }) + :Times(2) +end + +local function startServiceProtectedACK() + common.getMobileSession():StartSecureService(serviceId) + common.getMobileSession():ExpectControlMessage(serviceId, { + frameInfo = common.frameInfo.START_SERVICE_ACK, + encryption = true + }) + common.getMobileSession():ExpectHandshakeMessage() + common.getHMIConnection():ExpectRequest("BasicCommunication.OnServiceUpdate", + { serviceType = "RPC", serviceEvent = "REQUEST_RECEIVED" }, + { serviceType = "RPC", serviceEvent = "REQUEST_ACCEPTED" }) + :Times(2) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Init SDL certificates", common.initSDLCertificates, { "./files/Security/client_credential.pem" }) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + +runner.Title("Test") +runner.Step("App starts RPC Service in Unprotected mode ACK", startServiceUnprotectedACK) +runner.Step("App tries to switch RPC Service to Protected mode NACK", startServiceProtectedNACK) +runner.Step("Register App", common.registerApp) +runner.Step("App tries to switch RPC Service to Protected mode ACK", startServiceProtectedACK) +runner.Step("Activate App", common.activateAppProtected) +runner.Step("App sends AddCommand in Protected mode", common.sendAddCommandProtected) + +runner.Title("Postconditions") +runner.Step("Stop SDL, clean-up certificates", common.postconditions) diff --git a/test_scripts/Defects/7_1/2803_Resumption_of_HMI_level_of_2nd_app.lua b/test_scripts/Defects/7_1/2803_Resumption_of_HMI_level_of_2nd_app.lua new file mode 100644 index 0000000000..f18620158d --- /dev/null +++ b/test_scripts/Defects/7_1/2803_Resumption_of_HMI_level_of_2nd_app.lua @@ -0,0 +1,97 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/2803 +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to resume HMI level of application after unexpected disconnect +-- +-- Steps: +-- 1. App_1 is registered and activated (FULL level) +-- 2. IGN_OFF/IGN_ON cycle is performed +-- 3. Wait 35 sec +-- 4. App_1 is registered +-- SDL does: +-- - not resume HMI level App_1 +-- 5. App_2 is registered and activated (FULL level) +-- 6. Unexpected disconnect and reconnect are performed +-- SDL does: +-- - resume HMI level of App_2 +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('user_modules/sequences/actions') +local utils = require("user_modules/utils") +local color = require("user_modules/consts").color +local SDL = require('SDL') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Functions ]] +local function ignitionOff() + local isOnSDLCloseSent = false + common.getHMIConnection():SendNotification("BasicCommunication.OnExitAllApplications", { reason = "SUSPEND" }) + common.getHMIConnection():ExpectNotification("BasicCommunication.OnSDLPersistenceComplete") + :Do(function() + common.getHMIConnection():SendNotification("BasicCommunication.OnExitAllApplications", { reason = "IGNITION_OFF" }) + common.getHMIConnection():ExpectNotification("BasicCommunication.OnSDLClose") + :Do(function() + isOnSDLCloseSent = true + SDL.DeleteFile() + end) + end) + utils.wait(3000) + :Do(function() + if isOnSDLCloseSent == false then utils.cprint(color.magenta, "BC.OnSDLClose was not sent") end + for i = 1, common.mobile.getAppsCount() do + common.mobile.deleteSession(i) + end + StopSDL() + end) +end + +local function unexpectedDisconnect() + common.getHMIConnection():ExpectNotification("BasicCommunication.OnAppUnregistered", { unexpectedDisconnect = true }) + :Times(common.mobile.getAppsCount()) + common.mobile.disconnect() + utils.wait(1000) +end + +local function checkAbsenceOfHMILevelResumption(pAppId) + common.getHMIConnection():ExpectRequest("BasicCommunication.ActivateApp") + :Times(0) + common.getMobileSession(pAppId):ExpectNotification("OnHMIStatus") + :Times(0) + utils.wait(5000) +end + +local function checkPresenceHMILevelResumption(pAppId) + common.getHMIConnection():ExpectRequest("BasicCommunication.ActivateApp", { appID = common.getHMIAppId(pAppId) }) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, "BasicCommunication.ActivateApp", "SUCCESS", {}) + end) + common.getMobileSession(pAppId):ExpectNotification("OnHMIStatus", { hmiLevel = "FULL" }) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App 1", common.app.registerNoPTU, { 1 }) +runner.Step("Activate App 1", common.activateApp, { 1 }) + +runner.Title("Test") +runner.Step("Ignition Off", ignitionOff) +runner.Step("Ignition On", common.start) + +runner.Step("Wait 35 s", utils.wait, { 35000 }) +runner.Step("Register App 1", common.app.registerNoPTU, { 1 }) +runner.Step("Check No HMI level resumption", checkAbsenceOfHMILevelResumption, { 1 }) + +runner.Step("Register App 2", common.app.registerNoPTU, { 2 }) +runner.Step("Activate App 2", common.activateApp, { 2 }) +runner.Step("Unexpected disconnect", unexpectedDisconnect) +runner.Step("Connect mobile", common.mobile.connect) +runner.Step("Register App 2", common.app.registerNoPTU, { 2 }) +runner.Step("Check Yes HMI level resumption", checkPresenceHMILevelResumption, { 2 }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/7_1/3163_SDL_restart_with_gear_change.lua b/test_scripts/Defects/7_1/3163_SDL_restart_with_gear_change.lua new file mode 100644 index 0000000000..6e340be8e4 --- /dev/null +++ b/test_scripts/Defects/7_1/3163_SDL_restart_with_gear_change.lua @@ -0,0 +1,82 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/3163 +--------------------------------------------------------------------------------------------------- +-- Steps: +-- 1. SDL and HMI started +-- 2. Wait 5 seconds +-- 3. Simulate gear change to R +-- 4. Wait 5 seconds +-- 5. Simulate gear change to D +-- 6. After 10 seconds, simulate gear change to P. +-- 7. Wait 5 seconds +-- 8. Perform ignition off +-- 9. Repeat 1-8 steps +-- SDL does: +-- - work without crashes +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('user_modules/sequences/actions') +local events = require('events') +local utils = require("user_modules/utils") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +-- [[ Local Functions ]] +local function ignitionOff() + local timeout = 5000 + local event = events.Event() + event.matches = function(event1, event2) return event1 == event2 end + EXPECT_EVENT(event, "SDL shutdown") + :Do(function() + StopSDL() + end) + common.getHMIConnection():SendNotification("BasicCommunication.OnExitAllApplications", { reason = "SUSPEND" }) + common.getHMIConnection():ExpectNotification("BasicCommunication.OnSDLPersistenceComplete") + :Do(function() + common.getHMIConnection():SendNotification("BasicCommunication.OnExitAllApplications",{ reason = "IGNITION_OFF" }) + end) + common.getHMIConnection():ExpectNotification("BasicCommunication.OnAppUnregistered", { unexpectedDisconnect = false }) + :Times(0) + + local isSDLShutDownSuccessfully = false + common.getHMIConnection():ExpectNotification("BasicCommunication.OnSDLClose") + :Do(function() + utils.cprint(35, "SDL was shutdown successfully") + isSDLShutDownSuccessfully = true + RAISE_EVENT(event, event) + end) + :Timeout(timeout) + local function forceStopSDL() + if isSDLShutDownSuccessfully == false then + utils.cprint(35, "SDL was shutdown forcibly") + RAISE_EVENT(event, event) + end + end + RUN_AFTER(forceStopSDL, timeout + 500) +end + +local function gearChanging(pValue) + common.getHMIConnection():SendNotification("VehicleInfo.OnVehicleData", { prndl = pValue }) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) + +runner.Title("Test") +for i = 1,10 do + runner.Title("SDL restart iteration " .. i) + runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + runner.Step("Wait 5 seconds", common.run.wait, { 5000 }) + runner.Step("Change gear to `REVERSE`", gearChanging, { "REVERSE" }) + runner.Step("Wait 5 seconds", common.run.wait, { 5000 }) + runner.Step("Change gear to `DRIVE`", gearChanging, { "DRIVE" }) + runner.Step("Wait 10 seconds", common.run.wait, { 10000 }) + runner.Step("Change gear to `PARK`", gearChanging, { "PARK" }) + runner.Step("Ignition off", ignitionOff) +end + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/7_1/3406_SetAppIcon_spec_chars_in_syncFileName.lua b/test_scripts/Defects/7_1/3406_SetAppIcon_spec_chars_in_syncFileName.lua new file mode 100644 index 0000000000..a61efdae9b --- /dev/null +++ b/test_scripts/Defects/7_1/3406_SetAppIcon_spec_chars_in_syncFileName.lua @@ -0,0 +1,70 @@ +---------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/smartdevicelink/sdl_core/issues/3406 +---------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to proceed with special characters in 'syncFileName' of 'SetAppIcon' +-- +-- Steps: +-- 1. App is registered +-- 2. App uploads some icon with special character(s) in 'syncFileName' +-- 3. App sends 'SetAppIcon' with this file +-- SDL does: +-- - Transfer request to HMI +-- - Upon receive successful response from HMI transfers it to App +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") + +--[[ General configuration parameters ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local fileName = "action !#$&'()*+,:;=?@[].png" +local putFileParams = { + requestParams = { + syncFileName = fileName, + fileType = "GRAPHIC_PNG", + persistentFile = false, + systemFile = false + }, + filePath = "files/icon.png" +} + +local setAppIconParams = { + syncFileName = fileName +} + +--[[ Local Functions ]] +local function sendPutFile(pParams) + local cid = common.getMobileSession():SendRPC("PutFile", pParams.requestParams, pParams.filePath) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) +end + +local function sendSetAppIcon(pParams) + local dataToHMI = { + syncFileName = { + value = common.sdl.getPathToFileInStorage(pParams.syncFileName), + imageType = "DYNAMIC" + }, + appID = common.getHMIAppId() + } + local cid = common.getMobileSession():SendRPC("SetAppIcon", pParams) + common.getHMIConnection():ExpectRequest("UI.SetAppIcon", dataToHMI) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("Upload icon file", sendPutFile, { putFileParams }) + +runner.Title("Test") +runner.Step("App sends SetAppIcon", sendSetAppIcon, { setAppIconParams }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/7_1/3409_1_Single_transport.lua b/test_scripts/Defects/7_1/3409_1_Single_transport.lua new file mode 100644 index 0000000000..3ab7fe93c3 --- /dev/null +++ b/test_scripts/Defects/7_1/3409_1_Single_transport.lua @@ -0,0 +1,102 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/3409 +--------------------------------------------------------------------------------------------------- +-- Description: Check appID in 'BC.OnAppUnregistered' corresponds to 'BC.OnAppRegistered' +-- Single transport scenario +-- +-- Steps: +-- 1. App is registered +-- SDL does: +-- - assign new HMI AppID and provide it in 'BC.OnAppRegistered' notification to HMI +-- 2. App unexpectedly disconnects +-- SDL does: +-- - provide the same HMI AppID in 'BC.OnAppUnregistered' notification to HMI +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('user_modules/sequences/actions') +local utils = require("user_modules/utils") +local color = require("user_modules/consts").color +local atf_logger = require("atf_logger") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local numOfApps = 5 +local numOfIterations = 10 + +--[[ Local Functions ]] +local function log(...) + local str = "[" .. atf_logger.formated_time(true) .. "]" + for i, p in pairs({...}) do + local delimiter = "\t" + if i == 1 then delimiter = " " end + str = str .. delimiter .. p + end + utils.cprint(color.magenta, str) +end + +local function unexpectedDisconnect(pNumOfApps) + if not pNumOfApps then pNumOfApps = 1 end + local exp = {} + for i = 1, pNumOfApps do + table.insert(exp, { unexpectedDisconnect = true, appID = common.app.getHMIId(i)}) + end + common.getHMIConnection():ExpectNotification("BasicCommunication.OnAppUnregistered", table.unpack(exp)) + :Do(function(_, data) + log("BC.OnAppUnreg", data.params.appID) + end) + :Times(pNumOfApps) + common.mobile.disconnect() + utils.wait(1000) +end + +local function registerApp(pAppId) + local session = common.mobile.createSession(pAppId) + session:StartService(7) + :Do(function() + local params = utils.cloneTable(common.app.getParams(pAppId)) + local cid = session:SendRPC("RegisterAppInterface", params) + common.getHMIConnection():ExpectNotification("BasicCommunication.OnAppRegistered", + { application = { appID = common.app.getHMIId(pAppId) } }) + :Do(function(_, data) + log("BC.OnAppReg", data.params.application.appID) + common.app.setHMIId(data.params.application.appID, pAppId) + end) + session:ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) + end) +end + +local function start() + local event = common.run.createEvent() + common.init.SDL() + :Do(function() + common.init.HMI() + :Do(function() + common.init.HMI_onReady() + :Do(function() + common.hmi.getConnection():RaiseEvent(event, "Start event") + end) + end) + end) + return common.hmi.getConnection():ExpectEvent(event, "Start event") +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", start) + +runner.Title("Test") +for it = 1, numOfIterations do + runner.Title("Iteration " .. it) + runner.Step("Connect mobile", common.mobile.connect) + for i = 1, numOfApps do + runner.Step("Re-register App " .. i, registerApp, { i }) + end + runner.Step("Unexpected disconnect", unexpectedDisconnect, { numOfApps }) +end + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/7_1/3409_2_Multiple_transports.lua b/test_scripts/Defects/7_1/3409_2_Multiple_transports.lua new file mode 100644 index 0000000000..cb94f7adcd --- /dev/null +++ b/test_scripts/Defects/7_1/3409_2_Multiple_transports.lua @@ -0,0 +1,131 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/3409 +--------------------------------------------------------------------------------------------------- +-- Description: Check appID in 'BC.OnAppUnregistered' corresponds to 'BC.OnAppRegistered' +-- Multiple transports scenario +-- +-- Steps: +-- 1. App is registered via WS transport +-- SDL does: +-- - assign new HMI AppID and provide it in 'BC.OnAppRegistered' notification to HMI +-- 2. App unexpectedly disconnects +-- SDL does: +-- - provide the same HMI AppID in 'BC.OnAppUnregistered' notification to HMI +-- 3. App is registered via TCP transport +-- SDL does: +-- - assign new HMI AppID and provide it in 'BC.OnAppRegistered' notification to HMI +-- 4. App unexpectedly disconnects +-- SDL does: +-- - provide the same HMI AppID in 'BC.OnAppUnregistered' notification to HMI +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('user_modules/sequences/actions') +local utils = require("user_modules/utils") +local color = require("user_modules/consts").color +local atf_logger = require("atf_logger") + +--[[ Conditions to skip test ]] +if config.defaultMobileAdapterType == "WS" or config.defaultMobileAdapterType == "WSS" then + runner.skipTest("Test is not applicable for default WS/WSS connection") +end + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false +runner.testSettings.restrictions.sdlBuildOptions = {{webSocketServerSupport = {"ON"}}} + +--[[ Local Variables ]] +local numOfApps = 5 +local numOfIterations = 10 + +--[[ Local Functions ]] +local function log(...) + local str = "[" .. atf_logger.formated_time(true) .. "]" + for i, p in pairs({...}) do + local delimiter = "\t" + if i == 1 then delimiter = " " end + str = str .. delimiter .. p + end + utils.cprint(color.magenta, str) +end + +local function unexpectedDisconnect(pNumOfApps, pMobConnId) + if not pNumOfApps then pNumOfApps = 1 end + local exp = {} + for i = 1, pNumOfApps do + table.insert(exp, { unexpectedDisconnect = true, appID = common.app.getHMIId(i) }) + end + common.getHMIConnection():ExpectNotification("BasicCommunication.OnAppUnregistered", table.unpack(exp)) + :Do(function(_, data) + log("BC.OnAppUnreg", data.params.appID) + end) + :Times(pNumOfApps) + common.mobile.disconnect(pMobConnId) + utils.wait(1000) +end + +local function registerApp(pAppId, pMobConnId) + local session = common.mobile.createSession(pAppId, pMobConnId) + session:StartService(7) + :Do(function() + local params = utils.cloneTable(common.app.getParams(pAppId)) + local cid = session:SendRPC("RegisterAppInterface", params) + common.getHMIConnection():ExpectNotification("BasicCommunication.OnAppRegistered", + { application = { appID = common.app.getHMIId(pAppId) } }) + :Do(function(_, data) + log("BC.OnAppReg", data.params.application.appID) + common.app.setHMIId(data.params.application.appID, pAppId) + end) + session:ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) + end) +end + +local function getWebEngineConParams(pConnectionType) + if pConnectionType == "TCP" then return config.mobileHost, config.mobilePort end + if pConnectionType == "WS" then return config.wsMobileURL, config.wsMobilePort end + if pConnectionType == "WSS" then return config.wssMobileURL, config.wssMobilePort end +end + +local function connectDevice(pConnectionType, pMobConnId) + local url, port = getWebEngineConParams(pConnectionType) + common.mobile.createConnection(pMobConnId, url, port, common.mobile.CONNECTION_TYPE[pConnectionType]) + common.mobile.connect(pMobConnId) +end + +local function start() + local event = common.run.createEvent() + common.init.SDL() + :Do(function() + common.init.HMI() + :Do(function() + common.init.HMI_onReady() + :Do(function() + common.hmi.getConnection():RaiseEvent(event, "Start event") + end) + end) + end) + return common.hmi.getConnection():ExpectEvent(event, "Start event") +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", start) + +runner.Title("Test") +for it = 1, numOfIterations do + runner.Title("Iteration " .. it) + runner.Step("Connect WS device", connectDevice, { "WS", 1 }) + for i = 1, numOfApps do + runner.Step("Register App " .. i .. " on WS connection", registerApp, { i, 1 }) + end + runner.Step("Disconnect", unexpectedDisconnect, { numOfApps, 1 }) + runner.Step("Connect TCP device", connectDevice, { "TCP", 2 }) + for i = 1, numOfApps do + runner.Step("Register App " .. i .. " on TCP connection", registerApp, { i, 2 }) + end + runner.Step("Disconnect", unexpectedDisconnect, { numOfApps, 2 }) +end + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/7_1/3412_Two_Streaming_apps_and_Alert_requests.lua b/test_scripts/Defects/7_1/3412_Two_Streaming_apps_and_Alert_requests.lua new file mode 100644 index 0000000000..b35681782d --- /dev/null +++ b/test_scripts/Defects/7_1/3412_Two_Streaming_apps_and_Alert_requests.lua @@ -0,0 +1,125 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/smartdevicelink/sdl_core/issues/3412 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to proceed with Alert requests for 2 streaming apps +-- +-- Steps: +-- 1. Two Navi apps are registered: App_1 and App_2 +-- 2. App_1 is activated and starts streaming +-- 3. App_1 sends a few Alert requests +-- SDL does: +-- - proceed with requests successfully +-- 4. App_2 is activated and starts streaming (App_1 stops streaming) +-- 5. App_2 sends a few Alert requests +-- SDL does: +-- - proceed with requests successfully +-- 6. Do a few iterations of steps 2-5 +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") +local utils = require("user_modules/utils") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local numOfAttempts = 10 +local numOfApps = 2 +local numOfAlerts = 5 +local filePath = "files/SampleVideo_5mb.mp4" +local videoService = 11 + +--[[ General configuration parameters ]] +config.defaultProtocolVersion = 3 +for i = 1, numOfApps do + common.app.getParams(i).appHMIType = { "NAVIGATION" } + common.app.getParams(i).isMediaApplication = false +end + +--[[ Local Functions ]] +local function startService(pAppId) + common.mobile.getSession(pAppId):StartService(videoService) + common.hmi.getConnection():ExpectRequest("Navigation.StartStream", { appID = common.app.getHMIId(pAppId) }) + :Do(function(_, data) + common.hmi.getConnection():SendResponse(data.id, data.method, "SUCCESS", { }) + utils.cprint(33, "SDL sends Navigation.StartStream to HMI") + end) +end + +local function startStreaming(pAppId) + common.mobile.getSession(pAppId):StartStreaming(videoService, filePath, 160*1024) + common.hmi.getConnection():ExpectNotification("Navigation.OnVideoDataStreaming", { available = true }) + utils.cprint(33, "Streaming...") + common.run.wait(200) +end + +local function stopStreaming(pAppId) + common.mobile.getSession(pAppId):StopStreaming(filePath) + common.run.wait(200) +end + +local function stopService(pAppId) + common.getMobileSession(pAppId):StopService(videoService) +end + +local function sendAlert(pAppId) + local params = { + alertText1 = "alertText1", + ttsChunks = { + { text = "TTSChunk", type = "TEXT" } + } + } + local cid = common.mobile.getSession(pAppId):SendRPC("Alert", params) + common.hmi.getConnection():ExpectRequest("UI.Alert") + :Do(function(_, data) + local function response() + common.hmi.getConnection():SendResponse(data.id, data.method, "SUCCESS", { }) + end + common.run.runAfter(response, 500) + end) + common.hmi.getConnection():ExpectRequest("TTS.Speak") + :Do(function(_, data) + common.getHMIConnection():SendNotification("TTS.Started") + local function response() + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", { }) + common.getHMIConnection():SendNotification("TTS.Stopped") + end + common.run.runAfter(response, 1000) + end) + + common.hmi.getConnection():ExpectRequest("TTS.StopSpeaking") + :Do(function(_, data) + common.hmi.getConnection():SendResponse(data.id, data.method, "SUCCESS", { }) + end) + common.mobile.getSession(pAppId):ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + +for n = 1, numOfApps do + runner.Step("Register App " .. n, common.app.register, { n }) + runner.Step("PolicyTableUpdate", common.ptu.policyTableUpdate) +end + +runner.Title("Test") +for a = 1, numOfAttempts do + runner.Title("Attempt " .. a) + for n = 1, numOfApps do + runner.Title("App " .. n) + runner.Step("Activate App", common.app.activate, { n }) + runner.Step("App Start video service", startService, { n }) + runner.Step("App Start video streaming", startStreaming, { n }) + for i = 1, numOfAlerts do + runner.Step("App sends Alert " .. i, sendAlert, { n }) + end + runner.Step("App stops streaming", stopStreaming, { n }) + runner.Step("App stops service", stopService, { n }) + end +end + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/7_1/3469_RC_SetGlobalProperties_during_resumption.lua b/test_scripts/Defects/7_1/3469_RC_SetGlobalProperties_during_resumption.lua new file mode 100644 index 0000000000..91c13e799e --- /dev/null +++ b/test_scripts/Defects/7_1/3469_RC_SetGlobalProperties_during_resumption.lua @@ -0,0 +1,72 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/smartdevicelink/sdl_core/issues/3469 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL sends RC.SetGlobalProperties during resumption if app defines global properties +-- with 'userLocation' parameter +-- +-- Steps: +-- 1. App is registered +-- 2. App sends SetGlobalProperties with 'userLocation' parameter +-- 3. App unexpectedly disconnects and reconnects +-- SDL does: +-- - Start resumption process +-- - Send RC.SetGlobalProperties with 'userLocation' parameter +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('user_modules/sequences/actions') +local utils = require("user_modules/utils") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local params = { + userLocation = { grid = { col = 2, colspan = 1, row = 0, rowspan = 1, level = 0, levelspan = 1 } } +} +local hashId + +--[[ Local Functions ]] +local function unexpectedDisconnect() + common.getHMIConnection():ExpectNotification("BasicCommunication.OnAppUnregistered", { unexpectedDisconnect = true }) + :Times(common.mobile.getAppsCount()) + common.mobile.disconnect() + utils.wait(1000) +end + +local function sendSetGlobalProperties() + local cid = common.getMobileSession():SendRPC("SetGlobalProperties", params) + common.getHMIConnection():ExpectRequest("RC.SetGlobalProperties", params) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) + common.getMobileSession():ExpectNotification("OnHashChange") + :Do(function(_, data) + hashId = data.payload.hashID + end) +end + +local function reRegisterApp() + common.app.getParams().hashID = hashId + common.app.registerNoPTU() + common.getHMIConnection():ExpectRequest("RC.SetGlobalProperties", params) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.app.registerNoPTU) +runner.Step("Set RC Global Properties", sendSetGlobalProperties) + +runner.Title("Test") +runner.Step("Unexpected disconnect", unexpectedDisconnect) +runner.Step("Connect mobile", common.mobile.connect) +runner.Step("Re-register App", reRegisterApp) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/7_1/3469_UI_SetGlobalProperties_during_resumption.lua b/test_scripts/Defects/7_1/3469_UI_SetGlobalProperties_during_resumption.lua new file mode 100644 index 0000000000..9e703670a2 --- /dev/null +++ b/test_scripts/Defects/7_1/3469_UI_SetGlobalProperties_during_resumption.lua @@ -0,0 +1,119 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/smartdevicelink/sdl_core/issues/3469 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL sends UI.SetGlobalProperties during resumption if app defines global properties +-- with any UI parameter +-- +-- Steps: +-- 1. App is registered +-- 2. App sends SetGlobalProperties with some parameter related to UI interface +-- 3. App unexpectedly disconnects and reconnects +-- SDL does: +-- - Start resumption process +-- - Send UI.SetGlobalProperties with defined parameter and correct value +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('user_modules/sequences/actions') +local utils = require("user_modules/utils") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local testCases = { + [01] = { + vrHelpTitle = "title", + vrHelp = { + { text = "text1", position = 1 } + } + }, + [02] = { + menuTitle = "menuTitle_1" + }, + [03] = { + menuIcon = { + value = "icon.png", + imageType = "STATIC" + } + }, + [04] = { + keyboardProperties = { + language = "EN-US", + keyboardLayout = "AZERTY", + keypressMode = "SINGLE_KEYPRESS", + limitedCharacterList = { "a" }, + autoCompleteList = { "Daemon, Freedom" } + } + } +} + +local hashId + +--[[ Local Functions ]] +local function unexpectedDisconnect() + common.getHMIConnection():ExpectNotification("BasicCommunication.OnAppUnregistered", { unexpectedDisconnect = true }) + :Times(common.mobile.getAppsCount()) + common.mobile.disconnect() + utils.wait(1000) +end + +local function sendSetGlobalProperties(pParams) + local cid = common.getMobileSession():SendRPC("SetGlobalProperties", pParams) + common.getHMIConnection():ExpectRequest("UI.SetGlobalProperties", pParams) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) + common.getMobileSession():ExpectNotification("OnHashChange") + :Do(function(_, data) + hashId = data.payload.hashID + end) +end + +local function registerApp() + common.app.getParams().hashID = nil + common.app.registerNoPTU() +end + +local function reRegisterApp(pParams) + common.app.getParams().hashID = hashId + common.app.registerNoPTU() + common.getHMIConnection():ExpectRequest("UI.SetGlobalProperties", pParams) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) +end + +local function putFile() + local params = { + requestParams = { + syncFileName = "icon.png", + fileType = "GRAPHIC_PNG", + persistentFile = false, + systemFile = false + }, + filePath = "files/action.png" + } + local cid = common.getMobileSession():SendRPC("PutFile", params.requestParams, params.filePath) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) +end + +--[[ Scenario ]] +for n, tc in utils.spairs(testCases) do + runner.Title("TC[" .. string.format("%02d", n) .. "]: " .. next(tc)) + runner.Title("Preconditions") + runner.Step("Clean environment", common.preconditions) + runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + runner.Step("Register App", registerApp) + runner.Step("Upload icon file", putFile) + runner.Step("Set RC Global Properties", sendSetGlobalProperties, { tc }) + + runner.Title("Test") + runner.Step("Unexpected disconnect", unexpectedDisconnect) + runner.Step("Connect mobile", common.mobile.connect) + runner.Step("Re-register App", reRegisterApp, { tc }) + + runner.Title("Postconditions") + runner.Step("Stop SDL", common.postconditions) +end diff --git a/test_scripts/Defects/7_1/3580_Revoked_app_activated_via_device_consent.lua b/test_scripts/Defects/7_1/3580_Revoked_app_activated_via_device_consent.lua new file mode 100644 index 0000000000..232c3a17f2 --- /dev/null +++ b/test_scripts/Defects/7_1/3580_Revoked_app_activated_via_device_consent.lua @@ -0,0 +1,85 @@ +--------------------------------------------------------------------------------------------------- +-- User story: https://github.com/SmartDeviceLink/sdl_core/issues/3580 +-- +-- Description: +-- Check that SDL does not activate revoked app after consent +-- +-- Preconditions: +-- 1) Clean environment +-- 2) SDL, HMI, Mobile session started +-- 3) Registered app +-- 4) Revoke app1 in PTU +-- 5) Disallow device +-- +-- Steps: +-- 1) Activate app with consent +-- +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local json = require("modules/json") +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") +local utils = require ('user_modules/utils') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false +runner.testSettings.restrictions.sdlBuildOptions = { { extendedPolicy = { "EXTERNAL_PROPRIETARY" } } } + +--[[ Local Functions ]] +local function disallowDevice() + common.getHMIConnection():SendNotification("SDL.OnAllowSDLFunctionality", { + allowed = false, + source = "GUI", + device = {id = utils.getDeviceMAC(), name = utils.getDeviceName()} + }) +end + +local function PTUfunc(tbl) + tbl.policy_table.app_policies[config.application1.registerAppInterfaceParams.fullAppID] = json.null +end + +local function activateApp(pAppId) + if not pAppId then pAppId = 1 end + local requestId = common.getHMIConnection():SendRequest("SDL.ActivateApp", { appID = common.getHMIAppId(pAppId) }) + common.getHMIConnection():ExpectResponse(requestId, { result = { + code = 4, + isAppRevoked = true, + isSDLAllowed = false, + method = "SDL.ActivateApp" + }}) + :Do(function(_,_) + local RequestId1 = common.getHMIConnection():SendRequest("SDL.GetUserFriendlyMessage", {language = "EN-US", messageCodes = {"DataConsent"}}) + local RequestId2 = common.getHMIConnection():SendRequest("SDL.GetUserFriendlyMessage", {language = "EN-US", messageCodes = {"AppUnsupported"}}) + + common.getHMIConnection():ExpectResponse(RequestId1, {result = {code = 0, method = "SDL.GetUserFriendlyMessage"}}) + :Do(function(_,_) + common.getHMIConnection():SendNotification("SDL.OnAllowSDLFunctionality", { + allowed = true, + source = "GUI", + device = {id = utils.getDeviceMAC(), name = utils.getDeviceName()} + }) + + common.getHMIConnection():ExpectRequest("BasicCommunication.ActivateApp") + :Times(0) + common.getMobileSession(pAppId):ExpectNotification("OnHMIStatus") + :Times(0) + end) + + common.getHMIConnection():ExpectResponse(RequestId2, {result = {code = 0, method = "SDL.GetUserFriendlyMessage"}}) + + end) +end + +--[[ Scenario ]] +runner.Title("Precondition") +runner.Step("Clean environment and Back-up/update PPT", common.preconditions) +runner.Step("Start SDL, HMI", common.start) +runner.Step("App registration", common.registerApp) +runner.Step("PTU with null entry for app1", common.policyTableUpdate, { PTUfunc }) +runner.Step("Reset Device Consent", disallowDevice) + +runner.Title("Test") +runner.Step("App activation", activateApp) + +runner.Title("Postconditions") +runner.Step("Stop SDL, restore SDL settings and PPT", common.postconditions) diff --git a/test_scripts/Defects/7_1/3610_Resumption_of_keyboard_capabilities_after_reset.lua b/test_scripts/Defects/7_1/3610_Resumption_of_keyboard_capabilities_after_reset.lua new file mode 100644 index 0000000000..cfb5960b58 --- /dev/null +++ b/test_scripts/Defects/7_1/3610_Resumption_of_keyboard_capabilities_after_reset.lua @@ -0,0 +1,126 @@ +---------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/smartdevicelink/sdl_core/issues/3610 +---------------------------------------------------------------------------------------------------- +-- Description: Check SDL doesn't not resume App's keyboard properties if they have been reset +-- +-- Steps: +-- 1. App is registered +-- 2. App sends 'SetGlobalProperties' with some non-default values for 'KeyboardProperties' +-- 3. App sends 'ResetGlobalProperties' for 'KEYBOARDPROPERTIES' +-- 4. App unexpectedly disconnects and reconnects +-- SDL does: +-- - Start data resumption process +-- - Not send 'KeyboardProperties' within 'UI.SetGlobalProperties' request to HMI +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") +local utils = require("user_modules/utils") + +--[[ General configuration parameters ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local hashId +local sgpParams = { + vrHelpTitle = "title", + vrHelp = { { text = "text1", position = 1 } }, + keyboardProperties = { + language = "EN-US", + keyboardLayout = "AZERTY", + keypressMode = "SINGLE_KEYPRESS", + limitedCharacterList = { "a" }, + autoCompleteList = { "Daemon, Freedom" } + } +} + +local defaultSGPParams = { + keyboardProperties = { + language = "EN-US", + keyboardLayout = "QWERTY", + autoCompleteList = common.json.EMPTY_ARRAY + } +} + +local resumedSGPParams = { + vrHelpTitle = sgpParams.vrHelpTitle, + vrHelp = sgpParams.vrHelp +} + +--[[ Local Functions ]] +local function reRegisterApp() + common.getMobileSession():StartService(7) + :Do(function() + local appParams = utils.cloneTable(common.app.getParams()) + appParams.hashID = hashId + local cid = common.getMobileSession():SendRPC("RegisterAppInterface", appParams) + common.getHMIConnection():ExpectNotification("BasicCommunication.OnAppRegistered") + :Do(function() + local dataToHMI = utils.cloneTable(resumedSGPParams) + common.getHMIConnection():ExpectRequest("UI.SetGlobalProperties", dataToHMI) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + :ValidIf(function(_, data) + if data.params.keyboardProperties ~= nil then + return false, "Unexpected 'keyboardProperties' parameter received" + end + return true + end) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) + end) +end + +local function sendSetGP() + common.getMobileSession():ExpectNotification("OnHashChange") + :Do(function(_, data) + hashId = data.payload.hashID + end) + local dataToHMI = utils.cloneTable(sgpParams) + dataToHMI.appID = common.getHMIAppId() + local cid = common.getMobileSession():SendRPC("SetGlobalProperties", sgpParams) + common.getHMIConnection():ExpectRequest("UI.SetGlobalProperties", dataToHMI) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) +end + +local function sendResetGP() + common.getMobileSession():ExpectNotification("OnHashChange") + :Do(function(_, data) + hashId = data.payload.hashID + end) + local params = { properties = { "KEYBOARDPROPERTIES" } } + local dataToHMI = utils.cloneTable(defaultSGPParams) + dataToHMI.appID = common.getHMIAppId() + local cid = common.getMobileSession():SendRPC("ResetGlobalProperties", params) + common.getHMIConnection():ExpectRequest("UI.SetGlobalProperties", dataToHMI) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) +end + +local function unexpectedDisconnect() + common.getHMIConnection():ExpectNotification("BasicCommunication.OnAppUnregistered", { unexpectedDisconnect = true }) + common.mobile.disconnect() + common.run.wait(1000) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) + +runner.Title("Test") +runner.Step("App sends SetGP", sendSetGP) +runner.Step("App sends ResetGP", sendResetGP) +runner.Step("Unexpected disconnect", unexpectedDisconnect) +runner.Step("Connect mobile", common.mobile.connect) +runner.Step("Re-register App", reRegisterApp) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/7_1/3620/3620_1_RPC_Service_NACK_invalid_bson.lua b/test_scripts/Defects/7_1/3620/3620_1_RPC_Service_NACK_invalid_bson.lua new file mode 100644 index 0000000000..b9e57fa9f1 --- /dev/null +++ b/test_scripts/Defects/7_1/3620/3620_1_RPC_Service_NACK_invalid_bson.lua @@ -0,0 +1,51 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/smartdevicelink/sdl_core/issues/3620 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL responds with NACK to Start RPC Service request over 5th SDL protocol +-- if it contains invalid data in bson payload +-- +-- Steps: +-- 1. Start SDL, HMI, connect mobile device +-- 2. App tries to start RPC service over 5th SDL protocol with invalid data in bson payload +-- SDL does: +-- - send 'OnServiceUpdate' notification to HMI with 'REQUEST_REJECTED' +-- - respond with NACK to start service request +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/Defects/7_1/3620/common') + +--[[ Local Variables ]] +local appId = 1 +local serviceParams = { + reqParams = { + protocolVersion = { type = common.bsonType.STRING, value = "invalid_value" } -- invalid value + }, + nackParams = { + rejectedParams = { + type = common.bsonType.ARRAY, + value = { + [1] = { type = common.bsonType.STRING, value = "protocolVersion" } + } + } + } +} + +--[[ Local Functions ]] +local function onServiceUpdateExp() + common.hmi.getConnection():ExpectNotification("BasicCommunication.OnServiceUpdate", + { serviceEvent = "REQUEST_RECEIVED", serviceType = "RPC" }, + { serviceEvent = "REQUEST_REJECTED", serviceType = "RPC" }) + :Times(2) +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + +common.Title("Test") +common.Step("Start RPC Service, NACK", common.startServiceUnprotectedNACK, + { appId, common.serviceType.RPC, serviceParams.reqParams, serviceParams.nackParams, onServiceUpdateExp }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/7_1/3620/3620_2_RPC_Service_NACK_protected_invalid_bson.lua b/test_scripts/Defects/7_1/3620/3620_2_RPC_Service_NACK_protected_invalid_bson.lua new file mode 100644 index 0000000000..64d2c2f131 --- /dev/null +++ b/test_scripts/Defects/7_1/3620/3620_2_RPC_Service_NACK_protected_invalid_bson.lua @@ -0,0 +1,45 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/smartdevicelink/sdl_core/issues/3620 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL responds with NACK to protected Start RPC Service request over 5th SDL protocol +-- if it contains invalid data in bson payload +-- +-- Steps: +-- 1. Start SDL, HMI, connect mobile device +-- 2. Unprotected RPC service has been started +-- 3. App tries to start protected RPC service over 5th SDL protocol with invalid data in bson payload +-- SDL does: +-- - send 'OnServiceUpdate' notification to HMI with 'REQUEST_REJECTED' +-- - respond with NACK to start service request +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/Defects/7_1/3620/common') + +--[[ Local Variables ]] +local serviceParams = { + serviceType = common.serviceType.RPC, + serviceName = "RPC", + reqParams = { + protocolVersion = { type = common.bsonType.STRING, value = "invalid_value" } -- invalid value + }, + nackParams = { + rejectedParams = { + type = common.bsonType.ARRAY, + value = { + [1] = { type = common.bsonType.STRING, value = "protocolVersion" } + } + } + } +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Start unprotected RPC service", common.startUnprotectedRPCservice) + +common.Title("Test") +common.Step("Start protected RPC Service, NACK", common.startProtectedServiceWithOnServiceUpdate, { serviceParams }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/7_1/3620/3620_3_RPC_Service_NACK_non_existed_session_id.lua b/test_scripts/Defects/7_1/3620/3620_3_RPC_Service_NACK_non_existed_session_id.lua new file mode 100644 index 0000000000..bb5133c136 --- /dev/null +++ b/test_scripts/Defects/7_1/3620/3620_3_RPC_Service_NACK_non_existed_session_id.lua @@ -0,0 +1,44 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/smartdevicelink/sdl_core/issues/3620 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL responds with NACK to Start RPC Service request over 5th SDL protocol +-- if it contains non existed session id +-- +-- Steps: +-- 1. Start SDL, HMI, connect mobile device +-- 2. App tries to start RPC service over 5th SDL protocol with non existed session id +-- SDL does: +-- - send 'OnServiceUpdate' notification to HMI with 'REQUEST_REJECTED' +-- - respond with NACK to start service request +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/Defects/7_1/3620/common') + +--[[ Local Variables ]] +local nonExistedSessionId = 5 +local serviceParams = { + serviceType = common.serviceType.RPC, + serviceName = "RPC", + reqParams = { + protocolVersion = { type = common.bsonType.STRING, value = "5.4.0" } + }, + nackParams = { + reason = { + type = common.bsonType.STRING, + value = "Cannot start an unprotected service of type " .. common.serviceType.RPC .. + ". Session " .. nonExistedSessionId .. " not found for connection 1" + } + } +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + +common.Title("Test") +common.Step("Start RPC Service, NACK", common.startServiceNACKwithNonExistedSessionId, + { serviceParams, nonExistedSessionId }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/7_1/3620/3620_4_RPC_Service_NACK_protected_non_existed_session_id.lua b/test_scripts/Defects/7_1/3620/3620_4_RPC_Service_NACK_protected_non_existed_session_id.lua new file mode 100644 index 0000000000..b95444e82d --- /dev/null +++ b/test_scripts/Defects/7_1/3620/3620_4_RPC_Service_NACK_protected_non_existed_session_id.lua @@ -0,0 +1,47 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/smartdevicelink/sdl_core/issues/3620 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL responds with NACK to protected Start RPC Service request over 5th SDL protocol +-- if it contains non existed session id +-- +-- Steps: +-- 1. Start SDL, HMI, connect mobile device +-- 2. Unprotected RPC service has been started +-- 3. App tries to start protected RPC service over 5th SDL protocol with non existed session id +-- SDL does: +-- - send 'OnServiceUpdate' notification to HMI with 'REQUEST_REJECTED' +-- - respond with NACK to start service request +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/Defects/7_1/3620/common') + +--[[ Local Variables ]] +local nonExistedSessionId = 5 +local isEncrypted = true +local serviceParams = { + serviceType = common.serviceType.RPC, + serviceName = "RPC", + reqParams = { + protocolVersion = { type = common.bsonType.STRING, value = "5.4.0" } + }, + nackParams = { + reason = { + type = common.bsonType.STRING, + value = "Cannot start a protected service of type " .. common.serviceType.RPC .. + ". Session " .. nonExistedSessionId .. " not found for connection 1" + } + } +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +common.Step("Start unprotected RPC service", common.startUnprotectedRPCservice) + +common.Title("Test") +common.Step("Start protected RPC Service, NACK", common.startServiceNACKwithNonExistedSessionId, + { serviceParams, nonExistedSessionId, isEncrypted }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/7_1/3620/3620_5_RPC_Service_NACK_before_OnSystemTimeReady.lua b/test_scripts/Defects/7_1/3620/3620_5_RPC_Service_NACK_before_OnSystemTimeReady.lua new file mode 100644 index 0000000000..9b562813a3 --- /dev/null +++ b/test_scripts/Defects/7_1/3620/3620_5_RPC_Service_NACK_before_OnSystemTimeReady.lua @@ -0,0 +1,44 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/smartdevicelink/sdl_core/issues/3620 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL responds with NACK to protected Start RPC Service request over 5th SDL protocol +-- if BC.OnSystemTimeReady notification has not been received by SDL +-- +-- Steps: +-- 1. Start SDL, HMI, connect mobile device +-- 2. Unprotected RPC service is started +-- 3 HMI has not sent BC.OnSystemTimeReady notification +-- 4. App tries to start protected RPC service over 5th SDL protocol with valid data +-- SDL does: +-- - send 'OnServiceUpdate' notification to HMI with 'REQUEST_REJECTED' +-- - respond with NACK to start service request +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require('test_scripts/Defects/7_1/3620/common') + +--[[ Local Variables ]] +local serviceParams = { + serviceType = common.serviceType.RPC, + serviceName = "RPC", + reqParams = { + protocolVersion = { type = common.bsonType.STRING, value = "5.4.0" } + }, + nackParams = { + reason = { + type = common.bsonType.STRING , + value = "System time provider is not ready" + } + } +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.startWithoutOnSystemTimeReady) +common.Step("Start unprotected RPC service", common.startUnprotectedRPCservice) + +common.Title("Test") +common.Step("Start protected RPC Service, NACK", common.startProtectedServiceWithOnServiceUpdate, { serviceParams }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/7_1/3620/common.lua b/test_scripts/Defects/7_1/3620/common.lua new file mode 100644 index 0000000000..9b699b882f --- /dev/null +++ b/test_scripts/Defects/7_1/3620/common.lua @@ -0,0 +1,93 @@ +--------------------------------------------------------------------------------------------------- +-- Common module +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") +local constants = require("protocol_handler/ford_protocol_constants") + +--[[ General configuration parameters ]] +common.testSettings.isSelfIncluded = false +config.defaultProtocolVersion = 5 + +--[[ Common Variables ]] +common.SERVICE_TYPE = constants.SERVICE_TYPE +common.FRAME_TYPE = constants.FRAME_TYPE +common.FRAME_INFO = constants.FRAME_INFO + +--[[ Common Functions ]] +function common.startServiceNACKwithNonExistedSessionId(pServiceParams, pNonExistedSessionId, isEncrypted) + isEncrypted = isEncrypted or false + local mobSession = common.getMobileSession() + mobSession.sessionId = pNonExistedSessionId + local msg = { + serviceType = pServiceParams.serviceType, + frameType = common.FRAME_TYPE.CONTROL_FRAME, + frameInfo = common.FRAME_INFO.START_SERVICE, + encryption = isEncrypted, + binaryData = common.bson_to_bytes(pServiceParams.reqParams) + } + mobSession:Send(msg) + mobSession:ExpectControlMessage(pServiceParams.serviceType, { + frameInfo = common.FRAME_INFO.START_SERVICE_NACK, + encryption = false + }) + :ValidIf(function(_, data) + local act = common.bson_to_table(data.binaryData) + return compareValues(pServiceParams.nackParams, act, "binaryData") + end) + :Timeout(1000) + common.hmi.getConnection():ExpectNotification("BasicCommunication.OnServiceUpdate", + { serviceEvent = "REQUEST_RECEIVED", serviceType = pServiceParams.serviceName}, + { serviceEvent = "REQUEST_REJECTED", serviceType = pServiceParams.serviceName }) + :Times(2) +end + +function common.startUnprotectedRPCservice() + local session = common.getMobileSession() + local msg = { + serviceType = common.serviceType.RPC, + frameType = constants.FRAME_TYPE.CONTROL_FRAME, + frameInfo = constants.FRAME_INFO.START_SERVICE, + encryption = false, + binaryData = common.bson_to_bytes({ protocolVersion = { type = common.bsonType.STRING, value = "5.4.0" }}) + } + session:Send(msg) + + session:ExpectControlMessage(common.serviceType.RPC, { + frameInfo = common.frameInfo.START_SERVICE_ACK, + encryption = false + }) +end + +function common.startProtectedServiceWithOnServiceUpdate(pServiceParams) + local appId = 1 + common.startServiceProtectedNACK(appId, pServiceParams.serviceType, pServiceParams.reqParams, + pServiceParams.nackParams) + common.hmi.getConnection():ExpectNotification("BasicCommunication.OnServiceUpdate", + { serviceEvent = "REQUEST_RECEIVED", serviceType = pServiceParams.serviceName }, + { serviceEvent = "REQUEST_REJECTED", serviceType = pServiceParams.serviceName }) + :Times(2) +end + +function common.startWithoutOnSystemTimeReady(pHMIParams) + local event = common.run.createEvent() + common.init.SDL() + :Do(function() + common.init.HMI() + :Do(function() + common.init.HMI_onReady(pHMIParams) + :Do(function() + common.init.connectMobile() + :Do(function() + common.init.allowSDL() + :Do(function() + common.hmi.getConnection():RaiseEvent(event, "Start event") + end) + end) + end) + end) + end) + return common.hmi.getConnection():ExpectEvent(event, "Start event") +end + +return common diff --git a/test_scripts/Defects/7_1/3628_Postponed_RAI_protocol_4.lua b/test_scripts/Defects/7_1/3628_Postponed_RAI_protocol_4.lua new file mode 100644 index 0000000000..72385b9808 --- /dev/null +++ b/test_scripts/Defects/7_1/3628_Postponed_RAI_protocol_4.lua @@ -0,0 +1,119 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/3628 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL is postpone RAI response until all IsReady responses are received from HMI +-- +-- Steps: +-- 1. Start SDL, HMI +-- SDL does: +-- - add all HMI capabilities to the cache +-- 2. Ignition Off +-- 3. Start SDL, HMI +-- SDL does: +-- - SDL sends a few .IsReady requests to HMI +-- 4. HMI doesn't respond to requests +-- 5. Connect mobile and register application +-- 6. HMI responds to IsReady requests with some delay +-- SDL does: +-- - wait for all IsReady responses from HMI and then sends RAI response to mobile +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("user_modules/sequences/actions") +local utils = require("user_modules/utils") +local hmi_values = require('user_modules/hmi_values') +local color = require("user_modules/consts").color +local SDL = require("SDL") + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false +config.defaultProtocolVersion = 4 + +--[[ Local Variables ]] +local interfaces = { "UI", "VR", "TTS", "VehicleInfo", "Navigation", "RC" } +local isReadyDelay = 3000 + +--[[ Local Functions ]] +local function ignitionOff() + local isOnSDLCloseSent = false + common.getHMIConnection():SendNotification("BasicCommunication.OnExitAllApplications", { reason = "SUSPEND" }) + common.getHMIConnection():ExpectNotification("BasicCommunication.OnSDLPersistenceComplete") + :Do(function() + common.getHMIConnection():SendNotification("BasicCommunication.OnExitAllApplications", { reason = "IGNITION_OFF" }) + common.getHMIConnection():ExpectNotification("BasicCommunication.OnSDLClose") + :Do(function() + isOnSDLCloseSent = true + SDL.DeleteFile() + end) + end) + common.run.wait(3000) + :Do(function() + if isOnSDLCloseSent == false then utils.cprint(color.magenta, "BC.OnSDLClose was not sent") end + for i = 1, common.mobile.getAppsCount() do + common.mobile.deleteSession(i) + end + StopSDL() + end) +end + +local function startWithRAI(pInterface) + local mobileConnectionDelay = 50 + local hmiParams = hmi_values.getDefaultHMITable() + hmiParams[pInterface].IsReady = nil + + local ts_rai_res + local ts_isready_res + common.init.SDL() + :Do(function() + common.init.HMI() + :Do(function() + common.hmi.getConnection():ExpectRequest(pInterface .. ".IsReady") + :Do(function(_, data) + local function response() + common.hmi.getConnection():SendResponse(data.id, data.method, "SUCCESS", { }) + ts_isready_res = timestamp() + utils.cprint(color.magenta, "IsReady response TS:", ts_isready_res) + end + common.run.runAfter(response, isReadyDelay) + end) + common.init.HMI_onReady(hmiParams) + local function connect() + common.init.connectMobile() + :Do(function() + local session = common.mobile.createSession() + session:StartService(7) + :Do(function() + local cid = session:SendRPC("RegisterAppInterface", common.app.getParams()) + common.hmi.getConnection():ExpectNotification("BasicCommunication.OnAppRegistered") + session:ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) + :ValidIf(function() + ts_rai_res = timestamp() + utils.cprint(color.magenta, "RAI response TS:", ts_rai_res) + if ts_isready_res == nil then + return false, "RAI response received before IsReady response" + end + return true + end) + end) + end) + end + common.run.runAfter(connect, mobileConnectionDelay) + end) + end) + common.run.wait(isReadyDelay+1000) +end + +--[[ Scenario ]] +for _, interface in utils.spairs(interfaces) do + runner.Title("Delay for interface: " .. interface) + runner.Title("Preconditions") + runner.Step("Clean environment", common.preconditions) + runner.Step("Start SDL, HMI", common.start) + runner.Step("Ignition off", ignitionOff) + + runner.Title("Test") + runner.Step("Start SDL, HMI, connect Mobile, RAI", startWithRAI, { interface }) + + runner.Title("Postconditions") + runner.Step("Stop SDL", common.postconditions) +end diff --git a/test_scripts/Defects/7_1/3640_PTU_all_flows_Protected_Mode_v3.lua b/test_scripts/Defects/7_1/3640_PTU_all_flows_Protected_Mode_v3.lua new file mode 100644 index 0000000000..ff0459fcec --- /dev/null +++ b/test_scripts/Defects/7_1/3640_PTU_all_flows_Protected_Mode_v3.lua @@ -0,0 +1,162 @@ +---------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/smartdevicelink/sdl_core/issues/3640 +---------------------------------------------------------------------------------------------------- +-- Description: Check SDL is able to perform PTU over secure connection using 3rd version of +-- SDL protocol +-- +-- Steps: +-- 1. New app is registered +-- 2. App establishes secure connection (start protected RPC service) +-- SDL does: +-- - Start PTU sequence (since App is a new one) +-- - Finish PTU sequence successfully +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("test_scripts/Security/SSLHandshakeFlow/common") +local utils = require("user_modules/utils") +local SDL = require('SDL') +local atf_logger = require("atf_logger") +local constants = require('protocol_handler/ford_protocol_constants') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false +config.defaultProtocolVersion = 3 +constants.FRAME_SIZE["P3"] = 16384 + +--[[ Local Variables ]] +local policyMode = SDL.buildOptions.extendedPolicy + +local policyModes = { + P = "PROPRIETARY", + EP = "EXTERNAL_PROPRIETARY", + H = "HTTP" +} + +--[[ Local Functions ]] +local function log(...) + local str = "[" .. atf_logger.formated_time(true) .. "]" + for i, p in pairs({...}) do + local delimiter = "\t" + if i == 1 then delimiter = " " end + str = str .. delimiter .. p + end + utils.cprint(35, str) +end + +local function startServiceProtectedACK() + local serviceId = 7 + common.getMobileSession():StartSecureService(serviceId) + common.getMobileSession():ExpectControlMessage(serviceId, { + frameInfo = common.frameInfo.START_SERVICE_ACK, + encryption = true + }) + common.getMobileSession():ExpectHandshakeMessage() +end + +local function getPTS(pBinData) + local pts = pBinData + if policyMode == policyModes.P then + pts = common.json.decode(pBinData).HTTPRequest.body + end + return common.json.decode(pts) +end + +local function getPTUFromPTS(pPTSTable) + local ptu = utils.cloneTable(pPTSTable) + if next(ptu) ~= nil then + local keysToRemove = { "consumer_friendly_messages", "device_data", "module_meta", "usage_and_error_counts", "vehicle_data" } + for _, k in pairs(keysToRemove) do ptu.policy_table[k] = nil end + ptu.policy_table.functional_groupings["DataConsent-2"].rpcs = common.json.null + ptu.policy_table.module_config.preloaded_pt = nil + ptu.policy_table.module_config.preloaded_date = nil + end + return ptu +end + +local function regExpFinishedMsg() + common.getHMIConnection():ExpectNotification("SDL.OnStatusUpdate", { status = "UP_TO_DATE" }) + :Do(function() log("SDL->HMI: N:", "SDL.OnStatusUpdate(UP_TO_DATE)") end) + common.getHMIConnection():ExpectRequest("VehicleInfo.GetVehicleData", { odometer = true }) + :Do(function() log("SDL->HMI: N:", "VehicleInfo.GetVehicleData(odometer)") end) +end + +local function policyTableUpdateProprietary() + log("HMI->SDL: RQ:", "SDL.GetPolicyConfigurationData") + local cid = common.getHMIConnection():SendRequest("SDL.GetPolicyConfigurationData", + { policyType = "module_config", property = "endpoints" }) + common.getHMIConnection():ExpectResponse(cid) + :Do(function() + log("SDL->HMI: RS:", "SDL.GetPolicyConfigurationData") + common.getHMIConnection():SendNotification("BasicCommunication.OnSystemRequest", + { requestType = "PROPRIETARY", fileName = common.sdl.getPTSFilePath() }) + common.getMobileSession():ExpectEncryptedNotification("OnSystemRequest", { requestType = "PROPRIETARY" }) + :Do(function(_, d1) + log("SDL->MOB: N:", "OnSystemRequest (encrypted)") + local ptuFileName = os.tmpname() + local ptsTable = getPTS(d1.binaryData) + local ptuTable = getPTUFromPTS(ptsTable) + utils.tableToJsonFile(ptuTable, ptuFileName) + common.getHMIConnection():ExpectRequest("BasicCommunication.SystemRequest") + :Do(function(_, d2) + log("SDL->HMI: RQ:", "BC.SystemRequest") + log("HMI->SDL: RS:", "BC.SystemRequest") + common.getHMIConnection():SendResponse(d2.id, d2.method, "SUCCESS", { }) + log("HMI->SDL: N:", "SDL.OnReceivedPolicyUpdate") + common.getHMIConnection():SendNotification("SDL.OnReceivedPolicyUpdate", { policyfile = d2.params.fileName }) + regExpFinishedMsg() + end) + log("MOB->SDL: RQ:", "SystemRequest (encrypted)") + local cid2 = common.getMobileSession():SendEncryptedRPC("SystemRequest", { requestType = "PROPRIETARY" }, ptuFileName) + common.getMobileSession():ExpectEncryptedResponse(cid2, { success = true, resultCode = "SUCCESS" }) + :Do(function() log("SDL->MOB: RS:", "SystemRequest (encrypted)") end) + :Do(function() os.remove(ptuFileName) end) + end) + end) +end + +local function policyTableUpdateHttp() + local ptuFileName = os.tmpname() + local ptsTable = common.sdl.getPTS() + local ptuTable = getPTUFromPTS(ptsTable) + utils.tableToJsonFile(ptuTable, ptuFileName) + regExpFinishedMsg() + log("MOB->SDL: RQ:", "SystemRequest (encrypted)") + local cid = common.getMobileSession():SendEncryptedRPC("SystemRequest", + { requestType = "HTTP", fileName = "PolicyTableUpdate" }, ptuFileName) + common.getMobileSession():ExpectEncryptedResponse(cid, { success = true, resultCode = "SUCCESS" }) + :Do(function() log("SDL->MOB: RS:", "SystemRequest (encrypted)") end) + :Do(function() os.remove(ptuFileName) end) +end + +local function policyTableUpdate() + if policyMode == policyModes.P or policyMode == policyModes.EP then + policyTableUpdateProprietary() + elseif policyMode == policyModes.H then + policyTableUpdateHttp() + end +end + +local function checkPTUStatus() + local cid = common.getHMIConnection():SendRequest("SDL.GetStatusUpdate") + log("HMI->SDL: RQ: SDL.GetStatusUpdate") + common.getHMIConnection():ExpectResponse(cid, { result = { status = "UP_TO_DATE" }}) + :Do(function(_, d) + log("HMI->SDL: RS: SDL.GetStatusUpdate", tostring(d.result.status)) + end) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Init SDL certificates", common.initSDLCertificates, { "./files/Security/client_credential.pem" }) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + +runner.Title("Test") +runner.Step("Register App", common.registerApp) +runner.Step("Switch RPC Service to Protected mode ACK", startServiceProtectedACK) +runner.Step("PTU in secure mode SUCCESS", policyTableUpdate) +runner.Step("Check Status", checkPTUStatus) + +runner.Title("Postconditions") +runner.Step("Stop SDL, clean-up certificates", common.postconditions) diff --git a/test_scripts/Defects/7_1/3659_OnSystemRequest_1st_frame_non-encrypted.lua b/test_scripts/Defects/7_1/3659_OnSystemRequest_1st_frame_non-encrypted.lua new file mode 100644 index 0000000000..0b37020639 --- /dev/null +++ b/test_scripts/Defects/7_1/3659_OnSystemRequest_1st_frame_non-encrypted.lua @@ -0,0 +1,149 @@ +---------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/smartdevicelink/sdl_core/issues/3659 +---------------------------------------------------------------------------------------------------- +-- Description: Check SDL does not encrypt payload in first frame of multi-frame message +-- +-- Steps: +-- 1. New app is registered and established secure connection for RPC service +-- 2. HMI sends BS.OnSystemRequest with binary data (size > 16384 bytes) +-- SDL does: +-- - Transfer notification to mobile +-- - Payload of first frame is not encrypted +-- - Payload of consecutive frames is encrypted +---------------------------------------------------------------------------------------------------- +--[[ Local Variables ]] +local encryptionFlagFirstFrame = nil +local encryptionFlagConsecutiveFrames = {} + +--[[ Override ATF functions ]] +local function overrideOnInputData() + local mobile = require("mobile_connection") + local ph = require('protocol_handler/protocol_handler') + local constants = require('protocol_handler/ford_protocol_constants') + local atf_logger = require("atf_logger") + function mobile.mt.__index:OnInputData(messageHandlerFunc) + local protocol_handler = ph.ProtocolHandler() + local frameHandlerFunc = + function(frameMessage) + frameMessage._technical.isFrame = true + messageHandlerFunc(self, frameMessage) + frameMessage._technical.isFrame = false + end + local f = + function(_, binary) + local function bytesToInt32(val, offset) + local res = bit32.lshift(string.byte(val, offset), 24) + + bit32.lshift(string.byte(val, offset + 1), 16) + + bit32.lshift(string.byte(val, offset + 2), 8) + + string.byte(val, offset + 3) + return res + end + local function parseProtocolHeader(buffer) + local size = bytesToInt32(buffer, 5) + if #buffer < size + constants.PROTOCOL_HEADER_SIZE then + return nil + end + local msg = {} + local firstByte = string.byte(buffer, 1) + msg.frameType = bit32.band(firstByte, 0x07) + msg.encryption = bit32.band(firstByte, 0x08) == 0x08 + msg.serviceType = string.byte(buffer, 2) + msg.size = size + return msg + end + local function parseFrames(framesData) + local buffer = framesData + while #buffer >= constants.PROTOCOL_HEADER_SIZE do + local msg = parseProtocolHeader(buffer) + if not msg then break end + buffer = string.sub(buffer, msg.size + constants.PROTOCOL_HEADER_SIZE + 1) + if msg.serviceType == constants.SERVICE_TYPE.BULK_DATA then + print("Parse:", msg.serviceType, msg.frameType, msg.encryption) + if msg.frameType == 2 then encryptionFlagFirstFrame = msg.encryption end + if msg.frameType == 3 then table.insert(encryptionFlagConsecutiveFrames, msg.encryption) end + end + end + end + parseFrames(binary) + local msgs = protocol_handler:Parse(binary, nil, frameHandlerFunc) + for _, msg in ipairs(msgs) do + atf_logger.LOG("SDLtoMOB", msg) + messageHandlerFunc(self, msg) + end + end + self.connection:OnInputData(f) + end +end + +overrideOnInputData() + +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require("test_scripts/Security/SSLHandshakeFlow/common") +local constants = require('protocol_handler/ford_protocol_constants') + +--[[ Test Restrictions ]] +runner.isTestApplicable({ { extendedPolicy = { "PROPRIETARY", "EXTERNAL_PROPRIETARY" } } }) + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false +config.checkAllValidations = true +config.defaultProtocolVersion = 3 +constants.FRAME_SIZE["P3"] = 16384 + +--[[ Local Functions ]] + +local function startServiceProtectedACK() + local serviceId = 7 + common.getMobileSession():StartSecureService(serviceId) + common.getMobileSession():ExpectControlMessage(serviceId, { + frameInfo = common.frameInfo.START_SERVICE_ACK, + encryption = true + }) + common.getMobileSession():ExpectHandshakeMessage() +end + +local function startPTU() + local cid = common.getHMIConnection():SendRequest("SDL.GetPolicyConfigurationData", + { policyType = "module_config", property = "endpoints" }) + common.getHMIConnection():ExpectResponse(cid) + :Do(function() + common.getHMIConnection():SendNotification("BasicCommunication.OnSystemRequest", + { requestType = "PROPRIETARY", fileName = common.sdl.getPTSFilePath() }) + common.getMobileSession():ExpectEncryptedNotification("OnSystemRequest") + :ValidIf(function() + if encryptionFlagFirstFrame == nil then + return false, "First frame hasn't received" + elseif encryptionFlagFirstFrame == true then + return false, "First frame is encrypted" + end + return true, "First frame is not encrypted" + end) + :ValidIf(function() + if #encryptionFlagConsecutiveFrames == 0 then + return false, "Consecutive frames haven't received" + end + for id, encryptionFlag in pairs(encryptionFlagConsecutiveFrames) do + if encryptionFlag == false then + return false, "Consecutive frame " .. id .. " is not encrypted" + end + end + return true, "All consecutive frames are encrypted" + end) + end) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Init SDL certificates", common.initSDLCertificates, { "./files/Security/client_credential.pem" }) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) + +runner.Title("Test") +runner.Step("Register App", common.registerApp) +runner.Step("Switch RPC Service to Protected mode ACK", startServiceProtectedACK) + +runner.Step("PTU, HMI sends BC.OnSystemRequest", startPTU) + +runner.Title("Postconditions") +runner.Step("Stop SDL, clean-up certificates", common.postconditions) diff --git a/test_scripts/Defects/7_1/3667_Revert_RC_SetGlobalProperties_on_failed_resumption.lua b/test_scripts/Defects/7_1/3667_Revert_RC_SetGlobalProperties_on_failed_resumption.lua new file mode 100644 index 0000000000..52f64de0da --- /dev/null +++ b/test_scripts/Defects/7_1/3667_Revert_RC_SetGlobalProperties_on_failed_resumption.lua @@ -0,0 +1,159 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/smartdevicelink/sdl_core/issues/3667 +--------------------------------------------------------------------------------------------------- +-- Description: Check SDL sends RC.SetGlobalProperties with default user location in case of a failed resumption +-- +-- Preconditions: +-- 1. Clean environment +-- 2. SDL, HMI, Mobile session started +-- 3. Registered app +-- 4. Activated app +-- +-- Steps: +-- 1. App sends SetGlobalProperties with parameters "helpPrompt", "userLocation" and "menuTitle" +-- SDL does: +-- - Send UI.SetGlobalProperties to the HMI with parameter "menuTitle" +-- - Send TTS.SetGlobalProperties to the HMI with parameter "helpPrompt" +-- - Send RC.SetGlobalProperties to the HMI with parameter "userLocation" +-- 2. App unexpectedly disconnects and reconnects +-- SDL does: +-- - Start resumption process +-- - Send UI.SetGlobalProperties to the HMI with parameter "menuTitle" and correct value +-- - Send TTS.SetGlobalProperties to the HMI with parameter "helpPrompt" and correct value +-- - Send RC.SetGlobalProperties to the HMI with parameter "userLocation" and correct value +-- 3. HMI responds to UI.SetGlobalProperties with "GENERIC_ERROR" +-- SDL does: +-- - Send TTS.SetGlobalProperties to the HMI with parameter "helpPrompt" and default value +-- - Send RC.SetGlobalProperties to the HMI with parameter "userLocation" and default value +--------------------------------------------------------------------------------------------------- + +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('test_scripts/Resumption/Handling_errors_from_HMI/commonResumptionErrorHandling') +local utils = require('user_modules/utils') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +-- [[ Local Variables ]] +local helpPrompt = { + { + text = "Some text", + type = "TEXT" + } +} + +local defaultHelpPrompt = { + { + text = "Please speak one of the following commands,", + type = "TEXT" + }, + { + text = "Please say a command,", + type = "TEXT" + } +} + +local userLocation = { + grid = { + col = 2, + colspan = 1, + level = 2, + levelspan = 1, + row = 2, + rowspan =1 + } +} + +local defaultUserLocation = { + grid = { + col = 0, + colspan = 1, + level = 0, + levelspan = 1, + row = 0, + rowspan =1 + } +} + +local menuTitle = "Menu Title" + +-- [[ Local Functions ]] +local function setGlobalProperties(pAppId) + if not pAppId then pAppId = 1 end + local hmiAppId = common.getHMIAppId(pAppId) + + local cid = common.getMobileSession(pAppId):SendRPC("SetGlobalProperties", { + helpPrompt = helpPrompt, + userLocation = userLocation, + menuTitle = menuTitle + }) + + common.getHMIConnection():ExpectRequest("UI.SetGlobalProperties", {menuTitle = menuTitle, appID = hmiAppId}) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + + common.getHMIConnection():ExpectRequest("TTS.SetGlobalProperties", {helpPrompt = helpPrompt, appID = hmiAppId}) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + + common.getHMIConnection():ExpectRequest("RC.SetGlobalProperties", {userLocation = userLocation, appID = hmiAppId}) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + + common.getMobileSession(pAppId):ExpectResponse(cid, {success = true, resultCode = "SUCCESS"}) + common.getMobileSession(pAppId):ExpectNotification("OnHashChange") + :Do(function(_, data) + common.hashId[pAppId] = data.payload.hashID + end) +end + +local function checkResumptionData(pAppId) + if not pAppId then pAppId = 1 end + local hmiAppId = common.getHMIAppId(pAppId) + + common.getHMIConnection():ExpectRequest("UI.SetGlobalProperties", {menuTitle = menuTitle, appID = hmiAppId}) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, + "GENERIC_ERROR", {message = "Erroneous response is assigned by settings"}) + end) + + common.getHMIConnection():ExpectRequest("TTS.SetGlobalProperties", + {helpPrompt = helpPrompt, appID = hmiAppId}, -- Resumption request + {helpPrompt = defaultHelpPrompt, appID = hmiAppId} -- Reset global property request + + ) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + :Times(2) + + common.getHMIConnection():ExpectRequest("RC.SetGlobalProperties", + {userLocation = userLocation, appID = common.getHMIAppId()}, -- Resumption request + {userLocation = defaultUserLocation, appID = common.getHMIAppId()} -- Reset global property request + ) + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) + :Times(2) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register app", common.registerAppWOPTU) +runner.Step("Activate app", common.activateApp) + +runner.Title("Test") +runner.Step("SetGlobalProperties SUCCESS", setGlobalProperties) +runner.Step("Unexpected disconnect", common.unexpectedDisconnect) +runner.Step("Connect mobile", common.connectMobile) +runner.Step("Reregister App resumption data", common.reRegisterAppResumeFailed, + { 1, checkResumptionData, common.resumptionFullHMILevel }) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/7_1/885_Alert.lua b/test_scripts/Defects/7_1/885_Alert.lua new file mode 100644 index 0000000000..dd2dcf79d4 --- /dev/null +++ b/test_scripts/Defects/7_1/885_Alert.lua @@ -0,0 +1,87 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/885 +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL stops processing softButton events once a response is received for the RPC. +-- 'Alert' scenario. +-- +-- Steps: +-- 1. App is registered and activated +-- 2. App sends 'Alert' RPC with soft buttons +-- SDL does: +-- - transfer request to HMI +-- 3. HMI sends 'OnButtonEvent' and 'OnButtonPress' notifications +-- SDL does: +-- - transfer notifications to the App +-- 4. HMI provides a response for 'Alert' +-- SDL does: +-- - transfer response to the App +-- 5. HMI sends 'OnButtonEvent' and 'OnButtonPress' notifications +-- SDL does: +-- - not transfer notifications to the App +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('user_modules/sequences/actions') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local expected = true +local not_expected = false + +local btn = { + id = 4, + name = "CUSTOM_BUTTON" +} +local params = { + softButtons = { + { type = "TEXT", softButtonID = 4, text = "text" } + }, + alertText1 = "alertText1" +} + +--[[ Local Functions ]] +local function sendOnButtonEvents(pIsExp) + local times = pIsExp == true and 1 or 0 + common.getHMIConnection():SendNotification("Buttons.OnButtonEvent", + { name = btn.name, mode = "BUTTONDOWN", customButtonID = btn.id, appID = common.getHMIAppId() }) + common.getHMIConnection():SendNotification("Buttons.OnButtonPress", + { name = btn.name, mode = "SHORT", customButtonID = btn.id, appID = common.getHMIAppId() }) + common.getMobileSession():ExpectNotification("OnButtonEvent", + { buttonName = btn.name, buttonEventMode = "BUTTONDOWN", customButtonID = btn.id }) + :Times(times) + common.getMobileSession():ExpectNotification("OnButtonPress", + { buttonName = btn.name, buttonPressMode = "SHORT", customButtonID = btn.id } ) + :Times(times) +end + +local function alert() + local cid = common.getMobileSession():SendRPC("Alert", params) + common.getHMIConnection():ExpectRequest("UI.Alert") + :Do(function(_, data) + common.run.runAfter(function() + sendOnButtonEvents(expected) + end, 500) + common.run.runAfter(function() + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end, 1000) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) + :Do(function() + sendOnButtonEvents(not_expected) + end) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("Alert with soft buttons", alert) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/7_1/885_AlertManeuver.lua b/test_scripts/Defects/7_1/885_AlertManeuver.lua new file mode 100644 index 0000000000..8005dbaca0 --- /dev/null +++ b/test_scripts/Defects/7_1/885_AlertManeuver.lua @@ -0,0 +1,91 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/885 +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL stops processing softButton events once a response is received for the RPC. +-- 'AlertManeuver' scenario. +-- +-- Steps: +-- 1. App is registered and activated +-- 2. App sends 'AlertManeuver' RPC with soft buttons +-- SDL does: +-- - transfer request to HMI +-- 3. HMI sends 'OnButtonEvent' and 'OnButtonPress' notifications +-- SDL does: +-- - transfer notifications to the App +-- 4. HMI provides a response for 'AlertManeuver' +-- SDL does: +-- - transfer response to the App +-- 5. HMI sends 'OnButtonEvent' and 'OnButtonPress' notifications +-- SDL does: +-- - not transfer notifications to the App +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('user_modules/sequences/actions') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local expected = true +local not_expected = false + +local btn = { + id = 4, + name = "CUSTOM_BUTTON" +} +local params = { + softButtons = { + { type = "TEXT", softButtonID = 4, text = "text" } + } +} + +--[[ Local Functions ]] +local function sendOnButtonEvents(pIsExp) + local times = pIsExp == true and 1 or 0 + common.getHMIConnection():SendNotification("Buttons.OnButtonEvent", + { name = btn.name, mode = "BUTTONDOWN", customButtonID = btn.id, appID = common.getHMIAppId() }) + common.getHMIConnection():SendNotification("Buttons.OnButtonPress", + { name = btn.name, mode = "SHORT", customButtonID = btn.id, appID = common.getHMIAppId() }) + common.getMobileSession():ExpectNotification("OnButtonEvent", + { buttonName = btn.name, buttonEventMode = "BUTTONDOWN", customButtonID = btn.id }) + :Times(times) + common.getMobileSession():ExpectNotification("OnButtonPress", + { buttonName = btn.name, buttonPressMode = "SHORT", customButtonID = btn.id } ) + :Times(times) +end + +local function alertManeuver() + local cid = common.getMobileSession():SendRPC("AlertManeuver", params) + common.getHMIConnection():ExpectRequest("Navigation.AlertManeuver") + :Do(function(_, data) + common.run.runAfter(function() + sendOnButtonEvents(expected) + end, 500) + common.run.runAfter(function() + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end, 1000) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) + :Do(function() + sendOnButtonEvents(not_expected) + end) +end + +local function pTUpdateFunc(tbl) + tbl.policy_table.app_policies[common.app.getParams().fullAppID].groups = { "Base-4", "Navigation-1" } +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("Update ptu", common.policyTableUpdate, { pTUpdateFunc }) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("AlertManeuver with soft buttons", alertManeuver) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/7_1/885_ScrollableMessage.lua b/test_scripts/Defects/7_1/885_ScrollableMessage.lua new file mode 100644 index 0000000000..2ab2f3219b --- /dev/null +++ b/test_scripts/Defects/7_1/885_ScrollableMessage.lua @@ -0,0 +1,87 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/885 +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL stops processing softButton events once a response is received for the RPC. +-- 'ScrollableMessage' scenario. +-- +-- Steps: +-- 1. App is registered and activated +-- 2. App sends 'ScrollableMessage' RPC with soft buttons +-- SDL does: +-- - transfer request to HMI +-- 3. HMI sends 'OnButtonEvent' and 'OnButtonPress' notifications +-- SDL does: +-- - transfer notifications to the App +-- 4. HMI provides a response for 'ScrollableMessage' +-- SDL does: +-- - transfer response to the App +-- 5. HMI sends 'OnButtonEvent' and 'OnButtonPress' notifications +-- SDL does: +-- - not transfer notifications to the App +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('user_modules/sequences/actions') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local expected = true +local not_expected = false + +local btn = { + id = 4, + name = "CUSTOM_BUTTON" +} +local params = { + scrollableMessageBody = "body", + softButtons = { + { type = "TEXT", softButtonID = 4, text = "text" } + } +} + +--[[ Local Functions ]] +local function sendOnButtonEvents(pIsExp) + local times = pIsExp == true and 1 or 0 + common.getHMIConnection():SendNotification("Buttons.OnButtonEvent", + { name = btn.name, mode = "BUTTONDOWN", customButtonID = btn.id, appID = common.getHMIAppId() }) + common.getHMIConnection():SendNotification("Buttons.OnButtonPress", + { name = btn.name, mode = "SHORT", customButtonID = btn.id, appID = common.getHMIAppId() }) + common.getMobileSession():ExpectNotification("OnButtonEvent", + { buttonName = btn.name, buttonEventMode = "BUTTONDOWN", customButtonID = btn.id }) + :Times(times) + common.getMobileSession():ExpectNotification("OnButtonPress", + { buttonName = btn.name, buttonPressMode = "SHORT", customButtonID = btn.id } ) + :Times(times) +end + +local function scrollableMessage() + local cid = common.getMobileSession():SendRPC("ScrollableMessage", params) + common.getHMIConnection():ExpectRequest("UI.ScrollableMessage") + :Do(function(_, data) + common.run.runAfter(function() + sendOnButtonEvents(expected) + end, 500) + common.run.runAfter(function() + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end, 1000) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) + :Do(function() + sendOnButtonEvents(not_expected) + end) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("ScrollableMessage with soft buttons", scrollableMessage) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/7_1/885_ShowConstantTBT.lua b/test_scripts/Defects/7_1/885_ShowConstantTBT.lua new file mode 100644 index 0000000000..41a6d06b75 --- /dev/null +++ b/test_scripts/Defects/7_1/885_ShowConstantTBT.lua @@ -0,0 +1,92 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/885 +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL stops processing softButton events once a response is received for the RPC. +-- 'ShowConstantTBT' scenario. +-- +-- Steps: +-- 1. App is registered and activated +-- 2. App sends 'ShowConstantTBT' RPC with soft buttons +-- SDL does: +-- - transfer request to HMI +-- 3. HMI sends 'OnButtonEvent' and 'OnButtonPress' notifications +-- SDL does: +-- - transfer notifications to the App +-- 4. HMI provides a response for 'ShowConstantTBT' +-- SDL does: +-- - transfer response to the App +-- 5. HMI sends 'OnButtonEvent' and 'OnButtonPress' notifications +-- SDL does: +-- - not transfer notifications to the App +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('user_modules/sequences/actions') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local expected = true +local not_expected = false + +local btn = { + id = 4, + name = "CUSTOM_BUTTON" +} +local params = { + navigationText1 = "navigationText1", + softButtons = { + { type = "TEXT", softButtonID = 4, text = "text" } + } +} + +--[[ Local Functions ]] +local function sendOnButtonEvents(pIsExp) + local times = pIsExp == true and 1 or 0 + common.getHMIConnection():SendNotification("Buttons.OnButtonEvent", + { name = btn.name, mode = "BUTTONDOWN", customButtonID = btn.id, appID = common.getHMIAppId() }) + common.getHMIConnection():SendNotification("Buttons.OnButtonPress", + { name = btn.name, mode = "SHORT", customButtonID = btn.id, appID = common.getHMIAppId() }) + common.getMobileSession():ExpectNotification("OnButtonEvent", + { buttonName = btn.name, buttonEventMode = "BUTTONDOWN", customButtonID = btn.id }) + :Times(times) + common.getMobileSession():ExpectNotification("OnButtonPress", + { buttonName = btn.name, buttonPressMode = "SHORT", customButtonID = btn.id } ) + :Times(times) +end + +local function showConstantTBT() + local cid = common.getMobileSession():SendRPC("ShowConstantTBT", params) + common.getHMIConnection():ExpectRequest("Navigation.ShowConstantTBT") + :Do(function(_, data) + common.run.runAfter(function() + sendOnButtonEvents(expected) + end, 500) + common.run.runAfter(function() + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end, 1000) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) + :Do(function() + sendOnButtonEvents(not_expected) + end) +end + +local function pTUpdateFunc(tbl) + tbl.policy_table.app_policies[common.app.getParams().fullAppID].groups = { "Base-4", "Navigation-1" } +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("Update ptu", common.policyTableUpdate, { pTUpdateFunc }) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("ShowConstantTBT with soft buttons", showConstantTBT) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Defects/7_1/885_UpdateTurnList.lua b/test_scripts/Defects/7_1/885_UpdateTurnList.lua new file mode 100644 index 0000000000..b1c2732177 --- /dev/null +++ b/test_scripts/Defects/7_1/885_UpdateTurnList.lua @@ -0,0 +1,91 @@ +--------------------------------------------------------------------------------------------------- +-- Issue: https://github.com/SmartDeviceLink/sdl_core/issues/885 +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL stops processing softButton events once a response is received for the RPC. +-- 'UpdateTurnList' scenario. +-- +-- Steps: +-- 1. App is registered and activated +-- 2. App sends 'UpdateTurnList' RPC with soft buttons +-- SDL does: +-- - transfer request to HMI +-- 3. HMI sends 'OnButtonEvent' and 'OnButtonPress' notifications +-- SDL does: +-- - transfer notifications to the App +-- 4. HMI provides a response for 'UpdateTurnList' +-- SDL does: +-- - transfer response to the App +-- 5. HMI sends 'OnButtonEvent' and 'OnButtonPress' notifications +-- SDL does: +-- - not transfer notifications to the App +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('user_modules/sequences/actions') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local expected = true +local not_expected = false + +local btn = { + id = 4, + name = "CUSTOM_BUTTON" +} +local params = { + softButtons = { + { type = "TEXT", softButtonID = 4, text = "text" } + } +} + +--[[ Local Functions ]] +local function sendOnButtonEvents(pIsExp) + local times = pIsExp == true and 1 or 0 + common.getHMIConnection():SendNotification("Buttons.OnButtonEvent", + { name = btn.name, mode = "BUTTONDOWN", customButtonID = btn.id, appID = common.getHMIAppId() }) + common.getHMIConnection():SendNotification("Buttons.OnButtonPress", + { name = btn.name, mode = "SHORT", customButtonID = btn.id, appID = common.getHMIAppId() }) + common.getMobileSession():ExpectNotification("OnButtonEvent", + { buttonName = btn.name, buttonEventMode = "BUTTONDOWN", customButtonID = btn.id }) + :Times(times) + common.getMobileSession():ExpectNotification("OnButtonPress", + { buttonName = btn.name, buttonPressMode = "SHORT", customButtonID = btn.id } ) + :Times(times) +end + +local function updateTurnList() + local cid = common.getMobileSession():SendRPC("UpdateTurnList", params) + common.getHMIConnection():ExpectRequest("Navigation.UpdateTurnList") + :Do(function(_, data) + common.run.runAfter(function() + sendOnButtonEvents(expected) + end, 500) + common.run.runAfter(function() + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end, 1000) + end) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) + :Do(function() + sendOnButtonEvents(not_expected) + end) +end + +local function pTUpdateFunc(tbl) + tbl.policy_table.app_policies[common.app.getParams().fullAppID].groups = { "Base-4", "Navigation-1" } +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("Register App", common.registerApp) +runner.Step("Update ptu", common.policyTableUpdate, { pTUpdateFunc }) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("UpdateTurnList with soft buttons", updateTurnList) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Policies/External_UCS/003_ATF_P_TC_LPT_Creation_PreloadedPT_without_disallowed_by_external_consent_entities_off_struct.lua b/test_scripts/Policies/External_UCS/003_ATF_P_TC_LPT_Creation_PreloadedPT_without_disallowed_by_external_consent_entities_off_struct.lua index 2db43ef3c8..77806896b5 100644 --- a/test_scripts/Policies/External_UCS/003_ATF_P_TC_LPT_Creation_PreloadedPT_without_disallowed_by_external_consent_entities_off_struct.lua +++ b/test_scripts/Policies/External_UCS/003_ATF_P_TC_LPT_Creation_PreloadedPT_without_disallowed_by_external_consent_entities_off_struct.lua @@ -99,7 +99,7 @@ function Test:InitHMI() end function Test:InitHMI_onReady() - self:initHMI_onReady() + testCasesForExternalUCS.initHMI_onReady(self) end function Test:ConnectMobile() diff --git a/test_scripts/Policies/External_UCS/004_ATF_P_TC_LPT_Creation_PreloadedPT_with_disallowed_by_external_consent_entities_off_struct.lua b/test_scripts/Policies/External_UCS/004_ATF_P_TC_LPT_Creation_PreloadedPT_with_disallowed_by_external_consent_entities_off_struct.lua index c2fa0743d0..1a9405f15e 100644 --- a/test_scripts/Policies/External_UCS/004_ATF_P_TC_LPT_Creation_PreloadedPT_with_disallowed_by_external_consent_entities_off_struct.lua +++ b/test_scripts/Policies/External_UCS/004_ATF_P_TC_LPT_Creation_PreloadedPT_with_disallowed_by_external_consent_entities_off_struct.lua @@ -102,7 +102,7 @@ function Test:InitHMI() end function Test:InitHMI_onReady() - self:initHMI_onReady() + testCasesForExternalUCS.initHMI_onReady(self) end function Test:ConnectMobile() diff --git a/test_scripts/Policies/External_UCS/005_ATF_P_TC_LPT_Creation_PreloadedPT_without_disallowed_by_external_consent_entities_on_struct.lua b/test_scripts/Policies/External_UCS/005_ATF_P_TC_LPT_Creation_PreloadedPT_without_disallowed_by_external_consent_entities_on_struct.lua index 8f72f62a55..77815f7795 100644 --- a/test_scripts/Policies/External_UCS/005_ATF_P_TC_LPT_Creation_PreloadedPT_without_disallowed_by_external_consent_entities_on_struct.lua +++ b/test_scripts/Policies/External_UCS/005_ATF_P_TC_LPT_Creation_PreloadedPT_without_disallowed_by_external_consent_entities_on_struct.lua @@ -97,7 +97,7 @@ function Test:InitHMI() end function Test:InitHMI_onReady() - self:initHMI_onReady() + testCasesForExternalUCS.initHMI_onReady(self) end function Test:ConnectMobile() diff --git a/test_scripts/Policies/External_UCS/006_ATF_P_TC_LPT_Creation_PreloadedPT_with_disallowed_by_external_consent_entities_on_struct.lua b/test_scripts/Policies/External_UCS/006_ATF_P_TC_LPT_Creation_PreloadedPT_with_disallowed_by_external_consent_entities_on_struct.lua index d5ae8905f8..f339d73402 100644 --- a/test_scripts/Policies/External_UCS/006_ATF_P_TC_LPT_Creation_PreloadedPT_with_disallowed_by_external_consent_entities_on_struct.lua +++ b/test_scripts/Policies/External_UCS/006_ATF_P_TC_LPT_Creation_PreloadedPT_with_disallowed_by_external_consent_entities_on_struct.lua @@ -102,7 +102,7 @@ function Test:InitHMI() end function Test:InitHMI_onReady() - self:initHMI_onReady() + testCasesForExternalUCS.initHMI_onReady(self) end function Test:ConnectMobile() diff --git a/test_scripts/Policies/External_UCS/021_ATF_N_TC_PTU_with_disallowed_by_external_consent_entities_off_struct_with_invalid_type_of_params.lua b/test_scripts/Policies/External_UCS/021_ATF_N_TC_PTU_with_disallowed_by_external_consent_entities_off_struct_with_invalid_type_of_params.lua index 49483b4486..33befa41aa 100644 --- a/test_scripts/Policies/External_UCS/021_ATF_N_TC_PTU_with_disallowed_by_external_consent_entities_off_struct_with_invalid_type_of_params.lua +++ b/test_scripts/Policies/External_UCS/021_ATF_N_TC_PTU_with_disallowed_by_external_consent_entities_off_struct_with_invalid_type_of_params.lua @@ -109,7 +109,7 @@ local function sequence(desc, updateFunc) end function Test:InitHMI_onReady() - self:initHMI_onReady() + testCasesForExternalUCS.initHMI_onReady(self) end function Test:ConnectMobile() diff --git a/test_scripts/Policies/External_UCS/022_ATF_N_TC_PTU_with_disallowed_by_external_consent_entities_on_struct_with_invalid_type_of_params.lua b/test_scripts/Policies/External_UCS/022_ATF_N_TC_PTU_with_disallowed_by_external_consent_entities_on_struct_with_invalid_type_of_params.lua index 0add7287d8..fc67e0367f 100644 --- a/test_scripts/Policies/External_UCS/022_ATF_N_TC_PTU_with_disallowed_by_external_consent_entities_on_struct_with_invalid_type_of_params.lua +++ b/test_scripts/Policies/External_UCS/022_ATF_N_TC_PTU_with_disallowed_by_external_consent_entities_on_struct_with_invalid_type_of_params.lua @@ -109,7 +109,7 @@ local function sequence(desc, updateFunc) end function Test:InitHMI_onReady() - self:initHMI_onReady() + testCasesForExternalUCS.initHMI_onReady(self) end function Test:ConnectMobile() diff --git a/test_scripts/Policies/External_UCS/025_ATF_P_TC_LPT_Update_PreloadedPT_without_disallowed_by_external_consent_entities_off_struct.lua b/test_scripts/Policies/External_UCS/025_ATF_P_TC_LPT_Update_PreloadedPT_without_disallowed_by_external_consent_entities_off_struct.lua index 412919e4b1..f528c0c196 100644 --- a/test_scripts/Policies/External_UCS/025_ATF_P_TC_LPT_Update_PreloadedPT_without_disallowed_by_external_consent_entities_off_struct.lua +++ b/test_scripts/Policies/External_UCS/025_ATF_P_TC_LPT_Update_PreloadedPT_without_disallowed_by_external_consent_entities_off_struct.lua @@ -105,7 +105,7 @@ function Test:InitHMI() end function Test:InitHMI_onReady() - self:initHMI_onReady() + testCasesForExternalUCS.initHMI_onReady(self) end function Test:ConnectMobile() diff --git a/test_scripts/Policies/External_UCS/026_ATF_P_TC_LPT_Update_PreloadedPT_with_disallowed_by_external_consent_entities_off_struct.lua b/test_scripts/Policies/External_UCS/026_ATF_P_TC_LPT_Update_PreloadedPT_with_disallowed_by_external_consent_entities_off_struct.lua index 0b95fb7321..aba583d3e6 100644 --- a/test_scripts/Policies/External_UCS/026_ATF_P_TC_LPT_Update_PreloadedPT_with_disallowed_by_external_consent_entities_off_struct.lua +++ b/test_scripts/Policies/External_UCS/026_ATF_P_TC_LPT_Update_PreloadedPT_with_disallowed_by_external_consent_entities_off_struct.lua @@ -119,7 +119,7 @@ function Test:InitHMI() end function Test:InitHMI_onReady() - self:initHMI_onReady() + testCasesForExternalUCS.initHMI_onReady(self) end function Test:ConnectMobile() diff --git a/test_scripts/Policies/External_UCS/027_ATF_P_TC_LPT_Update_PreloadedPT_without_disallowed_by_external_consent_entities_on_struct.lua b/test_scripts/Policies/External_UCS/027_ATF_P_TC_LPT_Update_PreloadedPT_without_disallowed_by_external_consent_entities_on_struct.lua index 952b3be4b0..259ae9ffa2 100644 --- a/test_scripts/Policies/External_UCS/027_ATF_P_TC_LPT_Update_PreloadedPT_without_disallowed_by_external_consent_entities_on_struct.lua +++ b/test_scripts/Policies/External_UCS/027_ATF_P_TC_LPT_Update_PreloadedPT_without_disallowed_by_external_consent_entities_on_struct.lua @@ -105,7 +105,7 @@ function Test:InitHMI() end function Test:InitHMI_onReady() - self:initHMI_onReady() + testCasesForExternalUCS.initHMI_onReady(self) end function Test:ConnectMobile() diff --git a/test_scripts/Policies/External_UCS/028_ATF_P_TC_LPT_Update_PreloadedPT_with_disallowed_by_external_consent_entities_on_struct.lua b/test_scripts/Policies/External_UCS/028_ATF_P_TC_LPT_Update_PreloadedPT_with_disallowed_by_external_consent_entities_on_struct.lua index c708a7049c..53ebde581d 100644 --- a/test_scripts/Policies/External_UCS/028_ATF_P_TC_LPT_Update_PreloadedPT_with_disallowed_by_external_consent_entities_on_struct.lua +++ b/test_scripts/Policies/External_UCS/028_ATF_P_TC_LPT_Update_PreloadedPT_with_disallowed_by_external_consent_entities_on_struct.lua @@ -119,7 +119,7 @@ function Test:InitHMI() end function Test:InitHMI_onReady() - self:initHMI_onReady() + testCasesForExternalUCS.initHMI_onReady(self) end function Test:ConnectMobile() diff --git a/test_scripts/Policies/HMI_PTU/022_No_App_connected_days_trigger.lua b/test_scripts/Policies/HMI_PTU/022_No_App_connected_days_trigger.lua new file mode 100644 index 0000000000..2a51b315fb --- /dev/null +++ b/test_scripts/Policies/HMI_PTU/022_No_App_connected_days_trigger.lua @@ -0,0 +1,63 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0248-hmi-ptu-support.md +-- Issue:https://github.com/smartdevicelink/sdl_core/issues/3648 + +-- Description: Check that PTU is successfully performed via HMI without mobile connection + +-- In case: +-- 1. No app is connected +-- 2. And 'Exchange after X days' PTU trigger occurs +-- SDL does: +-- a) Start new PTU sequence through HMI: +-- - Send 'BC.PolicyUpdate' request to HMI +-- - Send 'SDL.OnStatusUpdate(UPDATE_NEEDED)' notification to HMI +--------------------------------------------------------------------------------------------------- + +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('test_scripts/Policies/HMI_PTU/common_hmi_ptu') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false +runner.testSettings.restrictions.sdlBuildOptions = { { extendedPolicy = { "PROPRIETARY", "EXTERNAL_PROPRIETARY" } } } + +--[[ Local Variables ]] +local days = 30 + +--[[ Local Functions ]] +local function updFunc(pTbl) + pTbl.policy_table.module_config.exchange_after_x_days = days +end + +local function setPtExchangedXDaysAfterEpochInDB() + local daysAfterEpoch = math.floor(os.time() / 86400) - days - 1 + local dbQuery = '\"UPDATE module_meta SET pt_exchanged_x_days_after_epoch = ' + .. daysAfterEpoch .. ' WHERE rowid = 1;\"' + common.updatePolicyDB(dbQuery) +end + +local function ignitionOn() + common.startWithOutConnectMobile() + common.hmi():ExpectRequest("BasicCommunication.PolicyUpdate") + :Do(function(_, data) + common.hmi():SendResponse(data.id, data.method, "SUCCESS", { }) + end) + common.hmi():ExpectNotification("SDL.OnStatusUpdate", { status = "UPDATE_NEEDED" }, { status = "UPDATING" }) + :Times(2) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("RAI", common.registerApp) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("HMI PTU Successful", common.ptuViaHMI, { updFunc }) +runner.Step("Ignition Off", common.ignitionOff) +runner.Step("Set SystemDaysAfterEpoch in the past in policy DB", setPtExchangedXDaysAfterEpochInDB) +runner.Step("New HMI PTU on Days trigger", ignitionOn) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Policies/HMI_PTU/023_No_App_connected_ignition_cycles_trigger.lua b/test_scripts/Policies/HMI_PTU/023_No_App_connected_ignition_cycles_trigger.lua new file mode 100644 index 0000000000..5a941c3c52 --- /dev/null +++ b/test_scripts/Policies/HMI_PTU/023_No_App_connected_ignition_cycles_trigger.lua @@ -0,0 +1,67 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0248-hmi-ptu-support.md +-- Issue:https://github.com/smartdevicelink/sdl_core/issues/3648 + +-- Description: Check that PTU is successfully performed via HMI without mobile connection + +-- In case: +-- 1. No app is connected +-- 2. And 'Exchange after X ignition cycles' PTU trigger occurs +-- SDL does: +-- a) Start new PTU sequence through HMI: +-- - Send 'BC.PolicyUpdate' request to HMI +-- - Send 'SDL.OnStatusUpdate(UPDATE_NEEDED)' notification to HMI +--------------------------------------------------------------------------------------------------- + +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('test_scripts/Policies/HMI_PTU/common_hmi_ptu') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false +runner.testSettings.restrictions.sdlBuildOptions = { { extendedPolicy = { "PROPRIETARY", "EXTERNAL_PROPRIETARY" } } } + +--[[ Local Variables ]] +local cycles = 3 + +--[[ Local Functions ]] +local function updFunc(pTbl) + pTbl.policy_table.module_config.exchange_after_x_ignition_cycles = cycles +end + +local function ignitionOnNoPTU() + common.startWithOutConnectMobile() + common.hmi():ExpectRequest("BasicCommunication.PolicyUpdate") + :Times(0) + common.hmi():ExpectNotification("SDL.OnStatusUpdate") + :Times(0) +end + +local function ignitionOnWithPTU() + common.startWithOutConnectMobile() + common.hmi():ExpectRequest("BasicCommunication.PolicyUpdate") + :Do(function(_, data) + common.hmi():SendResponse(data.id, data.method, "SUCCESS", { }) + end) + common.hmi():ExpectNotification("SDL.OnStatusUpdate", { status = "UPDATE_NEEDED" }, { status = "UPDATING" }) + :Times(2) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("RAI", common.registerApp) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("HMI PTU Successful", common.ptuViaHMI, { updFunc }) +runner.Step("Ignition Off", common.ignitionOff) +runner.Step("Ignition On without PTU", ignitionOnNoPTU) +runner.Step("Ignition Off", common.ignitionOff) +runner.Step("Ignition On without PTU", ignitionOnNoPTU) +runner.Step("Ignition Off", common.ignitionOff) +runner.Step("New HMI PTU on Ignition cycles trigger", ignitionOnWithPTU) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Policies/HMI_PTU/common_hmi_ptu.lua b/test_scripts/Policies/HMI_PTU/common_hmi_ptu.lua index 6c6abb6897..3b8ae2c056 100644 --- a/test_scripts/Policies/HMI_PTU/common_hmi_ptu.lua +++ b/test_scripts/Policies/HMI_PTU/common_hmi_ptu.lua @@ -202,4 +202,23 @@ function m.updatePolicyDB(pQuery) m.wait(1000) end +--[[ @startWithOutConnectMobile: starting sequence: starting of SDL, initialization of HMI +--! @parameters: none +--! @return: Start event expectation +--]] +function m.startWithOutConnectMobile() + local event = actions.run.createEvent() + actions.init.SDL() + :Do(function() + actions.init.HMI() + :Do(function() + actions.init.HMI_onReady() + :Do(function() + actions.hmi.getConnection():RaiseEvent(event, "Start event") + end) + end) + end) + return actions.hmi.getConnection():ExpectEvent(event, "Start event") +end + return m diff --git a/test_scripts/Policies/Policy_Table_Update/149_ATF_Policy_Table_Update_Trigger_After_N_Days.lua b/test_scripts/Policies/Policy_Table_Update/149_ATF_Policy_Table_Update_Trigger_After_N_Days.lua index 548f027b60..1e4d91b253 100644 --- a/test_scripts/Policies/Policy_Table_Update/149_ATF_Policy_Table_Update_Trigger_After_N_Days.lua +++ b/test_scripts/Policies/Policy_Table_Update/149_ATF_Policy_Table_Update_Trigger_After_N_Days.lua @@ -33,6 +33,7 @@ local utils = require ('user_modules/utils') --[[ Local Variables ]] local exchangeDays = 30 local currentSystemDaysAfterEpoch +local ptuInProgress = false --[[ General Precondition before ATF start ]] commonSteps:DeleteLogsFiles() @@ -137,8 +138,17 @@ function Test:Precondition_InitHMI_FirstLifeCycle() self:initHMI() end -function Test:Precondition_InitHMI_onReady_FirstLifeCycle() +function Test:Precondition_InitOnready() self:initHMI_onReady() + EXPECT_HMICALL("BasicCommunication.PolicyUpdate") + :Do(function(exp, d) + if(exp.occurences == 1) then + EXPECT_HMINOTIFICATION("SDL.OnStatusUpdate", { status = "UPDATING" }) + self.hmiConnection:SendResponse(d.id, d.method, "SUCCESS", { }) + ptuInProgress = true + end + end) + :Times(AnyNumber()) end function Test:Precondition_ConnectMobile_FirstLifeCycle() @@ -157,8 +167,14 @@ function Test:TestStep_Register_App_And_Check_That_PTU_Triggered() EXPECT_HMINOTIFICATION("BasicCommunication.OnAppRegistered", { application = { appName = config.application1.registerAppInterfaceParams.appName}}) EXPECT_RESPONSE(CorIdRAI, { success = true, resultCode = "SUCCESS"}) - EXPECT_HMINOTIFICATION("SDL.OnStatusUpdate",{status = "UPDATE_NEEDED"}) - EXPECT_HMICALL("BasicCommunication.PolicyUpdate") + if not ptuInProgress then + EXPECT_HMINOTIFICATION("SDL.OnStatusUpdate", { status = "UPDATE_NEEDED" }, { status = "UPDATING" }):Times(2) + EXPECT_HMICALL("BasicCommunication.PolicyUpdate") + :Do(function(_,data) + self.hmiConnection:SendResponse(data.id, data.method, "SUCCESS", {}) + end) + end + end --[[ Postcondition ]] diff --git a/test_scripts/Policies/Policy_Table_Update/172_ATF_PTU_request_after_N_ignition_cycles.lua b/test_scripts/Policies/Policy_Table_Update/172_ATF_PTU_request_after_N_ignition_cycles.lua index daee928585..3ff009a0bb 100644 --- a/test_scripts/Policies/Policy_Table_Update/172_ATF_PTU_request_after_N_ignition_cycles.lua +++ b/test_scripts/Policies/Policy_Table_Update/172_ATF_PTU_request_after_N_ignition_cycles.lua @@ -31,6 +31,9 @@ local commonFunctions = require ('user_modules/shared_testcases/commonFunctions' local commonSteps = require('user_modules/shared_testcases/commonSteps') local utils = require ('user_modules/utils') +--[[ Local Variables ]] +local ptuInProgress = false + --[[ General Precondition before ATF start ]] commonSteps:DeleteLogsFiles() commonSteps:DeletePolicyTable() @@ -151,6 +154,15 @@ end function Test:TestStep_InitHMI_onReady() self:initHMI_onReady() + EXPECT_HMICALL("BasicCommunication.PolicyUpdate") + :Do(function(exp, d) + if(exp.occurences == 1) then + EXPECT_HMINOTIFICATION("SDL.OnStatusUpdate", { status = "UPDATING" }) + self.hmiConnection:SendResponse(d.id, d.method, "SUCCESS", { }) + ptuInProgress = true + end + end) + :Times(AnyNumber()) end function Test:TestStep_Register_App_And_Check_PTU_Triggered() @@ -162,8 +174,13 @@ function Test:TestStep_Register_App_And_Check_PTU_Triggered() EXPECT_HMINOTIFICATION("BasicCommunication.OnAppRegistered", { application = { appName = config.application1.registerAppInterfaceParams.appName } }) :Do( function() - EXPECT_HMINOTIFICATION("SDL.OnStatusUpdate", {status = "UPDATE_NEEDED"}) - EXPECT_HMICALL("BasicCommunication.PolicyUpdate") + if not ptuInProgress then + EXPECT_HMINOTIFICATION("SDL.OnStatusUpdate", {status = "UPDATE_NEEDED"}) + EXPECT_HMICALL("BasicCommunication.PolicyUpdate") + :Do(function(_,data) + self.hmiConnection:SendResponse(data.id, data.method, "SUCCESS", {}) + end) + end end) self.mobileSession:ExpectResponse(correlationId, { success = true, resultCode = "SUCCESS" }) end) diff --git a/test_scripts/Policies/Validation_of_PolicyTables/279_ATF_Store_vin_from_GetVehicleData_in_PT.lua b/test_scripts/Policies/Validation_of_PolicyTables/279_ATF_Store_vin_from_GetVehicleData_in_PT.lua index e03d1f6464..2d0e261b2d 100644 --- a/test_scripts/Policies/Validation_of_PolicyTables/279_ATF_Store_vin_from_GetVehicleData_in_PT.lua +++ b/test_scripts/Policies/Validation_of_PolicyTables/279_ATF_Store_vin_from_GetVehicleData_in_PT.lua @@ -228,12 +228,10 @@ function Test:Step1_SDL_requests_vin_on_InitHMI_OnReady() text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/test_scripts/Policies/Validation_of_PolicyTables/280_ATF_Reset_ignition_cycles_since_last_exchange_in_PT.lua b/test_scripts/Policies/Validation_of_PolicyTables/280_ATF_Reset_ignition_cycles_since_last_exchange_in_PT.lua index bcf122f2ca..c9d1cb9f40 100644 --- a/test_scripts/Policies/Validation_of_PolicyTables/280_ATF_Reset_ignition_cycles_since_last_exchange_in_PT.lua +++ b/test_scripts/Policies/Validation_of_PolicyTables/280_ATF_Reset_ignition_cycles_since_last_exchange_in_PT.lua @@ -34,6 +34,7 @@ local utils = require ('user_modules/utils') --[[ Local variables ]] local ignition_cycles_before_ptu +local ptuInProgress = false --[[ General Precondition before ATF start ]] commonSteps:DeleteLogsFileAndPolicyTable() @@ -87,7 +88,15 @@ end function Test:Precondition_InitOnready() self:initHMI_onReady() - commonTestCases:DelayedExp(10000) + EXPECT_HMICALL("BasicCommunication.PolicyUpdate") + :Do(function(exp, d) + if(exp.occurences == 1) then + EXPECT_HMINOTIFICATION("SDL.OnStatusUpdate", { status = "UPDATING" }) + self.hmiConnection:SendResponse(d.id, d.method, "SUCCESS", { }) + ptuInProgress = true + end + end) + :Times(AnyNumber()) end function Test:Precondition_StartNewSession() @@ -125,11 +134,13 @@ function Test:Precondition_Registering_app() self.applications[config.application1.registerAppInterfaceParams.appName] = d.params.application.appID end) self.mobileSession:ExpectResponse(correlationId, { success = true, resultCode = "SUCCESS"}) - EXPECT_HMINOTIFICATION("SDL.OnStatusUpdate", { status = "UPDATE_NEEDED" }, { status = "UPDATING" }):Times(2) - EXPECT_HMICALL("BasicCommunication.PolicyUpdate") - :Do(function(_,data) - self.hmiConnection:SendResponse(data.id, data.method, "SUCCESS", {}) - end) + if not ptuInProgress then + EXPECT_HMINOTIFICATION("SDL.OnStatusUpdate", { status = "UPDATE_NEEDED" }, { status = "UPDATING" }):Times(2) + EXPECT_HMICALL("BasicCommunication.PolicyUpdate") + :Do(function(_,data) + self.hmiConnection:SendResponse(data.id, data.method, "SUCCESS", {}) + end) + end end --[[ Test ]] diff --git a/test_scripts/Policies/Validation_of_PolicyTables/308_ATF_Check_app_registration_language_gui.lua b/test_scripts/Policies/Validation_of_PolicyTables/308_ATF_Check_app_registration_language_gui.lua index e02a990929..09964d78a7 100644 --- a/test_scripts/Policies/Validation_of_PolicyTables/308_ATF_Check_app_registration_language_gui.lua +++ b/test_scripts/Policies/Validation_of_PolicyTables/308_ATF_Check_app_registration_language_gui.lua @@ -50,6 +50,7 @@ local basic_ptu_file = "files/ptu.json" local ptu_first_app_registered = "files/ptu1app.json" local HMIAppID local language_desired = "EN-US" +local ptuInProgress -- Basic applications. Using in Register tests local application1 = { @@ -113,8 +114,17 @@ function Test:Precondition_initHMI() self:initHMI() end -function Test:Precondition_initHMI_onReady() +function Test:Precondition_InitOnready() self:initHMI_onReady() + EXPECT_HMICALL("BasicCommunication.PolicyUpdate") + :Do(function(exp, d) + if(exp.occurences == 1) then + EXPECT_HMINOTIFICATION("SDL.OnStatusUpdate", { status = "UPDATING" }) + self.hmiConnection:SendResponse(d.id, d.method, "SUCCESS", { }) + ptuInProgress = true + end + end) + :Times(AnyNumber()) end function Test:Precondition_ConnectMobile() @@ -141,11 +151,13 @@ function Test:RegisterFirstApp() EXPECT_RESPONSE(correlationId, { success = true }) EXPECT_NOTIFICATION("OnPermissionsChange") end) - EXPECT_HMINOTIFICATION("SDL.OnStatusUpdate", { status = "UPDATE_NEEDED" }, { status = "UPDATING" }):Times(2) - EXPECT_HMICALL("BasicCommunication.PolicyUpdate") - :Do(function(_,data) - self.hmiConnection:SendResponse(data.id, data.method, "SUCCESS", {}) - end) + if not ptuInProgress then + EXPECT_HMINOTIFICATION("SDL.OnStatusUpdate", { status = "UPDATE_NEEDED" }, { status = "UPDATING" }):Times(2) + EXPECT_HMICALL("BasicCommunication.PolicyUpdate") + :Do(function(_,data) + self.hmiConnection:SendResponse(data.id, data.method, "SUCCESS", {}) + end) + end end function Test:CheckDB_app_registration_language_gui() diff --git a/test_scripts/Policies/build_options/090_ATF_For_PTU_use_consented_device_only.lua b/test_scripts/Policies/build_options/090_ATF_For_PTU_use_consented_device_only.lua index 04f51a61b9..e773b89c74 100644 --- a/test_scripts/Policies/build_options/090_ATF_For_PTU_use_consented_device_only.lua +++ b/test_scripts/Policies/build_options/090_ATF_For_PTU_use_consented_device_only.lua @@ -16,167 +16,100 @@ -- PoliciesManager must initiate the PT Update through the app from consented device, -- second(non-consented) device should not be used e.i. no second query for user consent should be sent to HMI --------------------------------------------------------------------------------------------------------------------- +if config.defaultMobileAdapterType == "WS" or config.defaultMobileAdapterType == "WSS" then + require('user_modules/script_runner').skipTest("Test is not applicable for WS/WSS connection") +end require('user_modules/script_runner').isTestApplicable({ { extendedPolicy = { "EXTERNAL_PROPRIETARY" } } }) ---[[ General Settings for configuration ]] -Test = require('user_modules/connecttest_resumption') -require('cardinalities') -local mobile_session = require('mobile_session') -local mobile_adapter_controller = require("mobile_adapter/mobile_adapter_controller") -local file_connection = require('file_connection') -local mobile = require('mobile_connection') -local events = require('events') -local utils = require ('user_modules/utils') - ---[[ General configuration parameters ]] --- Create dummy connection -os.execute("ifconfig lo:1 1.0.0.1") - --[[ Required Shared libraries ]] -local commonFunctions = require ('user_modules/shared_testcases/commonFunctions') -local commonSteps = require('user_modules/shared_testcases/commonSteps') -local commonTestCases = require('user_modules/shared_testcases/commonTestCases') -require('user_modules/AppTypes') +local runner = require('user_modules/script_runner') +local common = require('test_scripts/TheSameApp/commonTheSameApp') +local SDL = require('SDL') ---[[ General Precondition before ATF start ]] -commonFunctions:SDLForceStop() -commonSteps:DeleteLogsFileAndPolicyTable() +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false ---[[ Local variables ]] -local mobileHost = "1.0.0.1" -local deviceMAC2 = "9cc72994ab9ca68c1daaf02834f7a94552e82aad3250778f2e12d14afee0a5c6" -local deviceName2 = mobileHost .. ":" .. config.mobilePort +--[[ Local Variables ]] +local devices = { + [1] = { host = "1.0.0.1", port = config.mobilePort, name = "1.0.0.1:" .. config.mobilePort }, + [2] = { host = "192.168.100.199", port = config.mobilePort, name = "192.168.100.199:" .. config.mobilePort } +} ---[[ Preconditions ]] -commonFunctions:newTestCasesGroup("Preconditions") +local appParams = { + [1] = { appName = "App1", appID = "0001", fullAppID = "0000001" }, + [2] = { appName = "App2", appID = "0002", fullAppID = "0000002" } +} -function Test:Precondition_Connect_device1() - commonTestCases:DelayedExp(2000) - self:connectMobile() - if utils.getDeviceTransportType() == "WIFI" then - EXPECT_HMICALL("BasicCommunication.UpdateDeviceList") - :Do(function(_,data) - self.hmiConnection:SendResponse(data.id, data.method, "SUCCESS", {}) - end) - end -end +--[[ Local Functions ]] +local function connectDeviceTwo() + local deviceList = { + { + name = devices[1].name, + transportType = "WIFI" + }, + { + isSDLAllowed = false, + name = devices[2].name, + transportType = "WIFI" + } + } -function Test:Precondition_Register_app_1() - commonTestCases:DelayedExp(3000) - self.mobileSession = mobile_session.MobileSession(self, self.mobileConnection) - self.mobileSession:StartService(7) - :Do(function() - local RequestIDRai1 = self.mobileSession:SendRPC("RegisterAppInterface", config.application1.registerAppInterfaceParams) - EXPECT_HMINOTIFICATION("BasicCommunication.OnAppRegistered") - :Do(function(_,data) - self.HMIAppID = data.params.application.appID - end) - self.mobileSession:ExpectResponse(RequestIDRai1, { success = true, resultCode = "SUCCESS" }) - self.mobileSession:ExpectNotification("OnHMIStatus", {hmiLevel = "NONE", audioStreamingState = "NOT_AUDIBLE", systemContext = "MAIN"}) - end) -end + if SDL.buildOptions.webSocketServerSupport == "ON" then + table.insert(deviceList, 1, { transportType = "WEBENGINE_WEBSOCKET" }) + end -function Test:Precondition_Activate_app_1() - local RequestId = self.hmiConnection:SendRequest("SDL.ActivateApp", { appID = self.HMIAppID}) - EXPECT_HMIRESPONSE(RequestId, {result = { code = 0, device = { id = utils.getDeviceMAC(), name = utils.getDeviceName() }, isSDLAllowed = false, method ="SDL.ActivateApp" }}) - :Do(function(_, _) - local RequestIdGetMes = self.hmiConnection:SendRequest("SDL.GetUserFriendlyMessage", {language = "EN-US", messageCodes = {"DataConsent"}}) - EXPECT_HMIRESPONSE(RequestIdGetMes) - :Do(function() - self.hmiConnection:SendNotification("SDL.OnAllowSDLFunctionality", - {allowed = true, source = "GUI", device = {id = utils.getDeviceMAC(), name = utils.getDeviceName()}}) - EXPECT_HMICALL("BasicCommunication.ActivateApp") - :Do(function(_, data) - self.hmiConnection:SendResponse(data.id,"BasicCommunication.ActivateApp", "SUCCESS", {}) - end) - :Times(AtLeast(1)) - end) - end) - EXPECT_NOTIFICATION("OnHMIStatus", {hmiLevel = "FULL", systemContext = "MAIN", audioStreamingState = "AUDIBLE"}) -end + common.getHMIConnection():ExpectRequest("BasicCommunication.UpdateDeviceList", + { + deviceList = deviceList + }) + :Do(function(_,data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) -function Test:Precondition_Connect_device_2() - local mobileAdapter = self.getDefaultMobileAdapter(mobileHost, config.mobilePort) - local fileConnection = file_connection.FileConnection("mobile.out", mobileAdapter) - self.connection2 = mobile.MobileConnection(fileConnection) - self.mobileSession2 = mobile_session.MobileSession(self, self.connection2) - event_dispatcher:AddConnection(self.connection2) - self.mobileSession2:ExpectEvent(events.connectedEvent, "Connection started") - self.connection2:Connect() - EXPECT_HMICALL("BasicCommunication.UpdateDeviceList", - { - deviceList = { - { - id = deviceMAC2, - name = deviceName2 , - transportType = utils.getDeviceTransportType() - }, - { - id = utils.getDeviceMAC(), - name = utils.getDeviceName(), - transportType = utils.getDeviceTransportType() - }, - { - transportType = "WEBENGINE_WEBSOCKET", - } - } - } - ):Do(function(_,data) - self.hmiConnection:SendResponse(data.id, data.method, "SUCCESS", {}) - end) - :Times(AtLeast(1)) + common.connectMobDevice(2, devices[2], false) end ---[[ Test ]] -commonFunctions:newTestCasesGroup("Test") -function Test:Test_Register_app_2() - self.mobileSession2:StartService(7) +local function activateAppTwo() + local hmiConnection = common.getHMIConnection() + local RequestId = hmiConnection:SendRequest("SDL.ActivateApp", { appID = common.getHMIAppId(2) }) + hmiConnection:ExpectResponse(RequestId, {result = { code = 0, device = { name = devices[2].name }, isSDLAllowed = false, method = "SDL.ActivateApp" }}) :Do(function() - local RaiIdSecond = self.mobileSession2:SendRPC("RegisterAppInterface", config.application2.registerAppInterfaceParams) - EXPECT_HMINOTIFICATION("BasicCommunication.OnAppRegistered") - :Do(function(_,data) - self.HMIAppID2 = data.params.application.appID - end) - self.mobileSession2:ExpectResponse(RaiIdSecond, { success = true, resultCode = "SUCCESS"}) - self.mobileSession2:ExpectNotification("OnHMIStatus", {hmiLevel = "NONE", audioStreamingState = "NOT_AUDIBLE", systemContext = "MAIN"}) + local RequestIdGetMes = hmiConnection:SendRequest("SDL.GetUserFriendlyMessage", { language = "EN-US", messageCodes = { "DataConsent" } }) + hmiConnection:ExpectResponse(RequestIdGetMes) + :Do(function() + hmiConnection:SendNotification("SDL.OnAllowSDLFunctionality", + { allowed = false, source = "GUI", device = { name = devices[2].name } }) end) + end) end -function Test:Teat_Activate_app_2() - local RequestId = self.hmiConnection:SendRequest("SDL.ActivateApp", { appID = self.HMIAppID2}) - EXPECT_HMIRESPONSE(RequestId, {result = { code = 0, device = { id = deviceMAC2, name = deviceName2 }, isSDLAllowed = false, method ="SDL.ActivateApp" }}) +local function startPTU() + local hmiConnection = common.getHMIConnection() + hmiConnection:ExpectRequest("BasicCommunication.PolicyUpdate") :Do(function() - local RequestIdGetMes = self.hmiConnection:SendRequest("SDL.GetUserFriendlyMessage", {language = "EN-US", messageCodes = {"DataConsent"}}) - EXPECT_HMIRESPONSE(RequestIdGetMes) - :Do(function() - self.hmiConnection:SendNotification("SDL.OnAllowSDLFunctionality", - {allowed = false, source = "GUI", device = {id = deviceMAC2, name = deviceName2}}) - EXPECT_HMICALL("BasicCommunication.ActivateApp") - :Do(function(_, data) - self.hmiConnection:SendResponse(data.id,"BasicCommunication.ActivateApp", "SUCCESS", {}) - end) - :Times(AtLeast(1)) - end) + hmiConnection:SendNotification("BasicCommunication.OnSystemRequest", + { requestType = "PROPRIETARY", fileName = "PolicyTableUpdate", appID = common.getHMIAppId(1) }) + common.getMobileSession(2):ExpectNotification("OnSystemRequest", {requestType = "PROPRIETARY"}) + :Times(0) + common.getMobileSession(1):ExpectNotification("OnSystemRequest", {requestType = "PROPRIETARY"}) + :Do(function(_, data) + hmiConnection:SendResponse(data.id, data.method, "SUCCESS", {}) end) + end) end -function Test:Test_Start_PTU() - EXPECT_HMICALL("BasicCommunication.PolicyUpdate") - :Do(function() - self.hmiConnection:SendNotification("BasicCommunication.OnSystemRequest", - { requestType = "PROPRIETARY", fileName = "PolicyTableUpdate", appID = self.HMIAppID }) - self.mobileSession2:ExpectNotification("OnSystemRequest", {requestType = "PROPRIETARY"}) - :Times(0) - self.mobileSession:ExpectNotification("OnSystemRequest", {requestType = "PROPRIETARY"}) - :Do(function(_, data) - self.hmiConnection:SendResponse(data.id, data.method, "SUCCESS", {}) - end) - end) -end +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Start SDL, HMI", common.start) +runner.Step("Connect device 1 to SDL", common.connectMobDevice, { 1, devices[1] }) +runner.Step("Register App1 from device 1", common.registerAppEx, { 1, appParams[1], 1 }) +runner.Step("Activate App1 from device 1", common.activateApp, { 1 }) +runner.Step("Connect device 2 to SDL", connectDeviceTwo) ---[[ Postconditions ]] -commonFunctions:newTestCasesGroup("Postconditions") +runner.Title("Test") +runner.Step("Register App2 from device 2", common.registerAppEx, { 2, appParams[2], 2 }) +runner.Step("Activate App2 from device 2", activateAppTwo) +runner.Step("Start PTU", startPTU) -function Test.Postcondition_SDLForceStop() - StopSDL() -end +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) \ No newline at end of file diff --git a/test_scripts/Policies/user_consent_of_Policies/215_ATF_User_clears_all_applications.lua b/test_scripts/Policies/user_consent_of_Policies/215_ATF_User_clears_all_applications.lua index 1fa3d2e4db..16e53a5f67 100644 --- a/test_scripts/Policies/user_consent_of_Policies/215_ATF_User_clears_all_applications.lua +++ b/test_scripts/Policies/user_consent_of_Policies/215_ATF_User_clears_all_applications.lua @@ -20,133 +20,59 @@ -- SDL->HMI: BC.UpdateDeviceList(device1, device2) -- HMI->SDL: BC.UpdateDeviceList(SUCCESS) -------------------------------------------------------------------------------------------------------- +if config.defaultMobileAdapterType == "WS" or config.defaultMobileAdapterType == "WSS" then + require('user_modules/script_runner').skipTest("Test is not applicable for WS/WSS connection") +end require('user_modules/script_runner').isTestApplicable({ { extendedPolicy = { "EXTERNAL_PROPRIETARY" } } }) --[[ Required Shared libraries ]] -local commonFunctions = require ('user_modules/shared_testcases/commonFunctions') -local commonSteps = require('user_modules/shared_testcases/commonSteps') -local commonTestCases = require('user_modules/shared_testcases/commonTestCases') -local commonPreconditions = require('user_modules/shared_testcases/commonPreconditions') -local utils = require ('user_modules/utils') - ---[[ General Precondition before ATF start ]] -commonSteps:DeleteLogsFileAndPolicyTable() -commonPreconditions:Connecttest_without_ExitBySDLDisconnect_WithoutOpenConnectionRegisterApp("connecttest_connect_device.lua") ---TODO(istoimenova): shall be removed when issue: "ATF does not stop HB timers by closing session and connection" is fixed -config.defaultProtocolVersion = 2 - ---[[ General Settings for configuration ]] -Test = require('user_modules/connecttest_connect_device') -require('cardinalities') -require('user_modules/AppTypes') - -local mobile_session = require('mobile_session') -local mobile_adapter_controller = require("mobile_adapter/mobile_adapter_controller") -local file_connection = require('file_connection') -local mobile = require('mobile_connection') -local events = require('events') - ---[[ Local variables ]] -local deviceMAC2 = "9cc72994ab9ca68c1daaf02834f7a94552e82aad3250778f2e12d14afee0a5c6" -local mobileHost = "1.0.0.1" -local deviceName2 = mobileHost .. ":" .. config.mobilePort - --- Creation dummy connection -os.execute("ifconfig lo:1 1.0.0.1") - -function Test:Precondition_Connect_device1() - commonTestCases:DelayedExp(2000) - self:connectMobile() - if utils.getDeviceTransportType() == "WIFI" then - EXPECT_HMICALL("BasicCommunication.UpdateDeviceList") - :Do(function(_,data) - self.hmiConnection:SendResponse(data.id, data.method, "SUCCESS", {}) - end) - end -end - -function Test:Precondition_Register_app1() - commonTestCases:DelayedExp(3000) - self.mobileSession = mobile_session.MobileSession(self, self.mobileConnection) - self.mobileSession:StartService(7) - :Do(function() - local RequestIDRai1 = self.mobileSession:SendRPC("RegisterAppInterface", config.application1.registerAppInterfaceParams) - EXPECT_HMINOTIFICATION("BasicCommunication.OnAppRegistered") - :Do(function(_,data) - self.HMIAppID = data.params.application.appID - end) - self.mobileSession:ExpectResponse(RequestIDRai1, { success = true, resultCode = "SUCCESS" }) - self.mobileSession:ExpectNotification("OnHMIStatus", {hmiLevel = "NONE", audioStreamingState = "NOT_AUDIBLE", systemContext = "MAIN"}) - end) -end - -function Test:Precondition_Register_app2() - commonTestCases:DelayedExp(3000) - self.mobileSession2 = mobile_session.MobileSession(self, self.mobileConnection) - self.mobileSession2:StartService(7) - :Do(function() - local RequestIDRai2 = self.mobileSession2:SendRPC("RegisterAppInterface", config.application2.registerAppInterfaceParams) - EXPECT_HMINOTIFICATION("BasicCommunication.OnAppRegistered") - :Do(function(_,data) - self.HMIAppID2 = data.params.application.appID - end) - self.mobileSession2:ExpectResponse(RequestIDRai2, { success = true, resultCode = "SUCCESS" }) - self.mobileSession2:ExpectNotification("OnHMIStatus", {hmiLevel = "NONE", audioStreamingState = "NOT_AUDIBLE", systemContext = "MAIN"}) - end) -end - -function Test:Precondition_Unregister_app1() - local cid = self.mobileSession:SendRPC("UnregisterAppInterface",{}) - self.mobileSession:ExpectResponse(cid, { success = true, resultCode = "SUCCESS"} ) - EXPECT_HMINOTIFICATION("BasicCommunication.OnAppUnregistered", {appID = self.HMIAppID, unexpectedDisconnect = false}) -end - -function Test:Precondition_Unregister_app2() - local cid = self.mobileSession2:SendRPC("UnregisterAppInterface",{}) - self.mobileSession2:ExpectResponse(cid, { success = true, resultCode = "SUCCESS"} ) - EXPECT_HMINOTIFICATION("BasicCommunication.OnAppUnregistered", {appID = self.HMIAppID2, unexpectedDisconnect = false}) -end - ---[[ Test ]] -commonFunctions:newTestCasesGroup("Test") - -function Test:TestStep_Check_two_devices_visible_on_device2_connect() - local mobileAdapter = self.getDefaultMobileAdapter(mobileHost, config.mobilePort) - local fileConnection = file_connection.FileConnection("mobile.out", mobileAdapter) - local connection = mobile.MobileConnection(fileConnection) - event_dispatcher:AddConnection(connection) - connection:Connect() - local session = mobile_session.MobileSession(self, connection) - session:ExpectEvent(events.connectedEvent, "Connection started") - - EXPECT_HMICALL("BasicCommunication.UpdateDeviceList", - { - deviceList = { +local actions = require("user_modules/sequences/actions") +local utils = require("user_modules/utils") +local common = require('test_scripts/Capabilities/PersistingHMICapabilities/common') +local SDL = require('SDL') + +--[[ Local Variables ]] +local anotherDeviceParams = { host = "1.0.0.1", port = config.mobilePort } +local anotherDeviceName = anotherDeviceParams.host .. ":" .. anotherDeviceParams.port + +--[[ Local Functions ]] +local function connectDeviceTwo() + local weDevice = { transportType = "WEBENGINE_WEBSOCKET" } + local devices = { { - id = deviceMAC2, - name = deviceName2, - transportType = utils.getDeviceTransportType(), - isSDLAllowed = false + name = anotherDeviceName, + isSDLAllowed = false, + transportType = "WIFI" }, { - id = utils.getDeviceMAC(), name = utils.getDeviceName(), - transportType = utils.getDeviceTransportType(), - isSDLAllowed = false - }, - { - transportType = "WEBENGINE_WEBSOCKET", + transportType = utils.getDeviceTransportType() } - }}) - :Do(function(_,data) - self.hmiConnection:SendResponse(data.id, data.method, "SUCCESS", {}) + } + if SDL.buildOptions.webSocketServerSupport == "ON" then + table.insert(devices, 1, weDevice) + end + EXPECT_HMICALL("BasicCommunication.UpdateDeviceList", { deviceList = devices }) + :Do(function(_,data) + actions.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) end) -end ---[[ Postconditions ]] -commonFunctions:newTestCasesGroup("Postconditions") -function Test.Postcondition_Stop() - StopSDL() + utils.addNetworkInterface(2, anotherDeviceParams.host) + actions.mobile.createConnection(2, anotherDeviceParams.host, anotherDeviceParams.port) + actions.mobile.connect(2) end -return Test +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI", actions.start) +common.Step("Register App1", actions.registerAppWOPTU, { 1 }) +common.Step("Register App2", actions.registerAppWOPTU, { 2 }) +common.Step("Unregister App1", actions.app.unRegister, { 1 }) +common.Step("Unregister App2", actions.app.unRegister, { 2 }) + +common.Title("Test") +common.Step("Connect another mobile device, verify device list", connectDeviceTwo) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Policies/user_consent_of_Policies/221_ATF_Factory_reset.lua b/test_scripts/Policies/user_consent_of_Policies/221_ATF_Factory_reset.lua index 1ed96f562e..3966d04ce9 100644 --- a/test_scripts/Policies/user_consent_of_Policies/221_ATF_Factory_reset.lua +++ b/test_scripts/Policies/user_consent_of_Policies/221_ATF_Factory_reset.lua @@ -30,6 +30,9 @@ local sdl = require('SDL') local utils = require ('user_modules/utils') local commonTestCases = require ('user_modules/shared_testcases/commonTestCases') +--[[ Local Variables ]] +local ptuInProgress = false + --[[ Local Functions ]] local function ReplacePreloadedFile() @@ -141,6 +144,15 @@ end function Test:Precondition_InitHMI_onReady() self:initHMI_onReady() + EXPECT_HMICALL("BasicCommunication.PolicyUpdate") + :Do(function(exp, d) + if(exp.occurences == 1) then + EXPECT_HMINOTIFICATION("SDL.OnStatusUpdate", { status = "UPDATING" }) + self.hmiConnection:SendResponse(d.id, d.method, "SUCCESS", { }) + ptuInProgress = true + end + end) + :Times(AnyNumber()) end function Test:Precondition_ConnectMobile() @@ -195,10 +207,12 @@ function Test:Precondition_Activate_app_To_Trigger_PTU_after_reset() end) end) - EXPECT_HMICALL("BasicCommunication.PolicyUpdate", {file = "/tmp/fs/mp/images/ivsu_cache/sdl_snapshot.json"}) - :Do(function(_,data) - self.hmiConnection:SendResponse(data.id, data.method, "SUCCESS", {}) - end) + if not ptuInProgress then + EXPECT_HMICALL("BasicCommunication.PolicyUpdate", {file = "/tmp/fs/mp/images/ivsu_cache/sdl_snapshot.json"}) + :Do(function(_,data) + self.hmiConnection:SendResponse(data.id, data.method, "SUCCESS", {}) + end) + end EXPECT_HMICALL("BasicCommunication.ActivateApp") :Do(function(_,data) self.hmiConnection:SendResponse(data.id,"BasicCommunication.ActivateApp", "SUCCESS", {}) end) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/001_All_VehicleTypeData_Ack.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/001_All_VehicleTypeData_Ack.lua new file mode 100644 index 0000000000..f1d33734f5 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/001_All_VehicleTypeData_Ack.lua @@ -0,0 +1,30 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to provide all vehicle type data in StartServiceAck right after receiving +-- BC.GetSystemInfo and VI.GetVehicleType responses with all parameters +-- +-- Steps: +-- 1. HMI provides all vehicle type data in BC.GetSystemInfo(ccpu_version, systemHardwareVersion) +-- and VI.GetVehicleType(make, model, modelYear, trim) responses +-- 2. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Provide the vehicle type info with all parameter values received from HMI in StartServiceAck to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local hmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) +local rpcServiceAckParams = common.getRpcServiceAckParams(hmiCap) + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) + +common.Title("Test") +common.Step("Start RPC Service, Vehicle type data in StartServiceAck", common.startRpcService, { rpcServiceAckParams }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/002_1_VehicleTypeData_with_one_omitted_param_Ack.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/002_1_VehicleTypeData_with_one_omitted_param_Ack.lua new file mode 100644 index 0000000000..04780942bb --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/002_1_VehicleTypeData_with_one_omitted_param_Ack.lua @@ -0,0 +1,70 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to provide some part of the vehicle type data in StartServiceAck right after +-- receiving both GetVehicleType and GetSystemInfo responses +-- +-- Steps: +-- 1. HMI provides some part of vehicle type data in BC.GetSystemInfo and VI.GetVehicleType responses: +-- - BC.GetSystemInfo(ccpu_version) and VI.GetVehicleType(make, model, modelYear, trim) +-- - BC.GetSystemInfo(ccpu_version, systemHardwareVersion) and VI.GetVehicleType(make, model, modelYear) +-- - BC.GetSystemInfo(ccpu_version, systemHardwareVersion) and VI.GetVehicleType(make, model, trim) +-- - BC.GetSystemInfo(ccpu_version, systemHardwareVersion) and VI.GetVehicleType(make, modelYear, trim) +-- - BC.GetSystemInfo(ccpu_version, systemHardwareVersion) and VI.GetVehicleType(model, modelYear, trim) +-- 2. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Provide the vehicle type info with parameter values received from HMI in StartServiceAck to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local tcs = { + [01] = "make", + [02] = "model", + [03] = "modelYear", + [04] = "trim", + [05] = "systemHardwareVersion" +} + +--[[ Local Functions ]] +local function setHMICap(pParamToExclude) + local defaultVehicleTypeInfoParam = common.cloneTable(common.vehicleTypeInfoParams.default) + defaultVehicleTypeInfoParam[pParamToExclude] = nil + local out = common.setHMIcap(defaultVehicleTypeInfoParam) + return out +end + +local function startRpcService(pAckParams, pNotExpected) + common.startRpcService(pAckParams) + :ValidIf(function(_, data) + local errorMessages = "" + local actPayload = common.bson_to_table(data.binaryData) + for Key, _ in pairs(actPayload) do + if Key == pNotExpected then + errorMessages = errorMessages .. "BinaryData contains unexpected " .. pNotExpected .. " parameter\n" + end + end + if string.len(errorMessages) > 0 then + return false, errorMessages + else + return true + end + end) +end + +--[[ Scenario ]] +for tc, data in common.spairs(tcs) do + common.Title("TC[" .. string.format("%03d", tc) .. "]") + common.Title("Preconditions") + common.Step("Clean environment", common.preconditions) + local hmiCap = setHMICap(data) + common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) + + common.Title("Test") + common.Step("Vehicle type data without " .. data .. " in StartServiceAck", startRpcService, + { common.getRpcServiceAckParams(hmiCap), data }) + + common.Title("Postconditions") + common.Step("Stop SDL", common.postconditions) +end diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/002_2_VehicleTypeData_without_not_mandatory_params_Ack.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/002_2_VehicleTypeData_without_not_mandatory_params_Ack.lua new file mode 100644 index 0000000000..c97214048b --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/002_2_VehicleTypeData_without_not_mandatory_params_Ack.lua @@ -0,0 +1,55 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to provide some part of the vehicle type data in StartServiceAck right after +-- receiving both GetVehicleType and GetSystemInfo responses only with mandatory parameters +-- +-- Steps: +-- 1. HMI provides only mandatory parameters of vehicle type data in BC.GetSystemInfo and VI.GetVehicleType responses: +-- - BC.GetSystemInfo(ccpu_version) and VI.GetVehicleType(without parameters) +-- 2. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Provide the vehicle type info with parameter values received from HMI in StartServiceAck to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local vehicleTypeData = { + ccpu_version = common.vehicleTypeInfoParams.default["ccpu_version"] +} + +--[[ Local Functions ]] +local function startRpcService(pAckParams) + local excludedParams = { "make","model", "modelYear", "trim", "systemHardwareVersion" } + common.startRpcService(pAckParams) + :ValidIf(function(_, data) + local errorMessages = "" + local actPayload = common.bson_to_table(data.binaryData) + for _, param in pairs(excludedParams) do + for Key, _ in pairs(actPayload) do + if Key == param then + errorMessages = errorMessages .. "BinaryData contains unexpected " .. param .. " parameter\n" + end + end + end + if string.len(errorMessages) > 0 then + return false, errorMessages + end + return true + end) +end + +--[[ Scenario ]] +common.Title("Test with excluding all not mandatory parameters") +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +local hmiCap = common.setHMIcap(vehicleTypeData) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) + +common.Title("Test") +common.Step("Vehicle type data without all not mandatory params in StartServiceAck", startRpcService, + { common.getRpcServiceAckParams(hmiCap) }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/003_EndService_right_after_StartServiceAck.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/003_EndService_right_after_StartServiceAck.lua new file mode 100644 index 0000000000..c87a02519d --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/003_EndService_right_after_StartServiceAck.lua @@ -0,0 +1,34 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: SDL is able to stop RPC service successfully in case the mobile app does not support +-- the vehicle type data received from SDL and requests EndService after StartServiceAck +-- +-- Steps: +-- 1. HMI provides all vehicle type data in BC.GetSystemInfo(ccpu_version, systemHardwareVersion) +-- and VI.GetVehicleType(make, model, modelYear, trim) responses +-- 2. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Provide the vehicle type info with all parameter values received from HMI in StartServiceAck to the app +-- 3. App does not support the data from received vehicle type info and requests EndService +-- SDL does: +-- - End RPC service successfully and sends EndServiceAck to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local hmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) +local rpcServiceAckParams = common.getRpcServiceAckParams(hmiCap) + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) + +common.Title("Test") +common.Step("Start RPC Service, Vehicle type data in StartServiceAck", common.startRpcService, { rpcServiceAckParams }) +common.Step("EndService", common.endRPCService) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/004_All_VehicleTypeData_RAI.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/004_All_VehicleTypeData_RAI.lua new file mode 100644 index 0000000000..aff08ab314 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/004_All_VehicleTypeData_RAI.lua @@ -0,0 +1,35 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to provide all vehicle type data RAI response after receiving +-- BC.GetSystemInfo and VI.GetVehicleType responses with parameters except systemHardwareVersion +-- +-- Steps: +-- 1. HMI provides all vehicle type data in BC.GetSystemInfo(ccpu_version, systemHardwareVersion) +-- and VI.GetVehicleType(make, model, modelYear, trim) responses +-- 2. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Provide the vehicle type info with all parameter values received from HMI in StartServiceAck to the app +-- 3. App sends RAI request via 5th protocol +-- SDL does: +-- - Provide the vehicle type info with all parameter values received from HMI except systemHardwareVersion in +-- RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local hmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) +local rpcServiceAckParams = common.getRpcServiceAckParams(hmiCap) + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) + +common.Title("Test") +common.Step("Start RPC Service, Vehicle type data in StartServiceAck", common.startRpcService, { rpcServiceAckParams }) +common.Step("Vehicle type data in RAI response", common.registerAppEx, { common.vehicleTypeInfoParams.default }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/005_1_VehicleTypeData_with_one_omitted_param_RAI.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/005_1_VehicleTypeData_with_one_omitted_param_RAI.lua new file mode 100644 index 0000000000..48c4baefd8 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/005_1_VehicleTypeData_with_one_omitted_param_RAI.lua @@ -0,0 +1,63 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to provide some part of the vehicle type data in RAI response after +-- receiving both GetVehicleType and GetSystemInfo responses +-- +-- Steps: +-- 1. HMI provides some part of vehicle type data in BC.GetSystemInfo and VI.GetVehicleType responses: +-- - BC.GetSystemInfo(ccpu_version) and VI.GetVehicleType(make, model, modelYear, trim) +-- - BC.GetSystemInfo(ccpu_version, systemHardwareVersion) and VI.GetVehicleType(make, model, modelYear) +-- - BC.GetSystemInfo(ccpu_version, systemHardwareVersion) and VI.GetVehicleType(make, model, trim) +-- - BC.GetSystemInfo(ccpu_version, systemHardwareVersion) and VI.GetVehicleType(make, modelYear, trim) +-- - BC.GetSystemInfo(ccpu_version, systemHardwareVersion) and VI.GetVehicleType(model, modelYear, trim) +-- 2. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Provide the vehicle type info with parameter values received from HMI in StartServiceAck to the app +-- 3. App sends RAI request via 5th protocol +-- SDL does: +-- - Provide the vehicle type info with parameter values received from HMI except systemHardwareVersion in RAI response +-- to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local tcs = { + [01] = "make", + [02] = "model", + [03] = "modelYear", + [04] = "trim", + [05] = "systemHardwareVersion" +} + +--[[ Local Functions ]] +local function setHMICap(pParamToExclude) + local defaultVehicleTypeInfoParam = common.cloneTable(common.vehicleTypeInfoParams.default) + defaultVehicleTypeInfoParam[pParamToExclude] = nil + local out = common.setHMIcap(defaultVehicleTypeInfoParam) + return out +end + +local function registerApp(pParamToExclude) + local defaultVehicleTypeInfoParam = common.cloneTable(common.vehicleTypeInfoParams.default) + defaultVehicleTypeInfoParam[pParamToExclude] = nil + common.registerAppEx(defaultVehicleTypeInfoParam) +end + +--[[ Scenario ]] +for tc, data in common.spairs(tcs) do + common.Title("TC[" .. string.format("%03d", tc) .. "]") + common.Title("Preconditions") + common.Step("Clean environment", common.preconditions) + local hmiCap = setHMICap(data) + common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) + + common.Title("Test") + common.Step("Vehicle type data without " .. data .. " in StartServiceAck", common.startRpcService, + { common.getRpcServiceAckParams(hmiCap) }) + common.Step("Vehicle type data without " .. data .. " in RAI response", registerApp, { data }) + + common.Title("Postconditions") + common.Step("Stop SDL", common.postconditions) +end diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/005_2_VehicleTypeData_without_not_mandatory_params_RAI.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/005_2_VehicleTypeData_without_not_mandatory_params_RAI.lua new file mode 100644 index 0000000000..d610867f53 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/005_2_VehicleTypeData_without_not_mandatory_params_RAI.lua @@ -0,0 +1,38 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to provide some part of the vehicle type data in RAI response after +-- receiving both GetVehicleType and GetSystemInfo responses only with mandatory parameters +-- +-- Steps: +-- 1. HMI provides only mandatory parameters of vehicle type data in BC.GetSystemInfo and VI.GetVehicleType responses: +-- - BC.GetSystemInfo(ccpu_version) and VI.GetVehicleType(without parameters) +-- 2. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Provide the vehicle type data received from HMI in StartServiceAck to the app +-- 3. App sends RAI request via 5th protocol +-- SDL does: +-- - Provide the vehicle type info with parameter values received from HMI in RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local vehicleData = { + ccpu_version = common.vehicleTypeInfoParams.default["ccpu_version"] +} + +--[[ Scenario ]] +common.Title("Test with excluding all not mandatory parameters") +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +local hmiCap = common.setHMIcap(vehicleData) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) + +common.Title("Test") +common.Step("Vehicle type data without all not mandatory params in StartServiceAck", common.startRpcService, + { common.getRpcServiceAckParams(hmiCap) }) +common.Step("Vehicle type data without all not mandatory params in RAI response", common.registerAppEx, { vehicleData }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/006_App_unregistration_right_after_RAI.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/006_App_unregistration_right_after_RAI.lua new file mode 100644 index 0000000000..b38d27e6fe --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/006_App_unregistration_right_after_RAI.lua @@ -0,0 +1,51 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: SDL is able to unregister an app and stop RPC service successfully in case the mobile app +-- does not support the vehicle type data received from SDL in RAI response and requests UnregisterAppInterface +-- and EndService after successful registration +-- +-- Steps: +-- 1. HMI provides all vehicle type data in BC.GetSystemInfo(ccpu_version, systemHardwareVersion) +-- and VI.GetVehicleType(make, model, modelYear, trim) responses +-- 2. RPC service is opened by app via 5th protocol +-- 3. App sends RAI request via 5th protocol +-- SDL does: +-- - Provide the vehicle type info with all parameter values received from HMI except systemHardwareVersion in +-- RAI response to the app +-- 4. App does not support the data from received vehicle type info and requests UnregisterAppInterface RPC +-- SDL does: +-- - Unregister the app successfully and sends UnregisterAppInterface(SUCCESS) response to the app +-- 5. App requests EndService +-- SDL does: +-- - End RPC service successfully and sends EndServiceAck to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local hmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) +local rpcServiceAckParams = common.getRpcServiceAckParams(hmiCap) + +--[[ Local Functions ]] +local function unregisterAppInterface() + local cid = common.getMobileSession():SendRPC("UnregisterAppInterface",{}) + common.getHMIConnection():ExpectNotification("BasicCommunication.OnAppUnregistered", { unexpectedDisconnect = false }) + common.getMobileSession():ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) + :Do(function() + common.endRPCService() + end) +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) + +common.Title("Test") +common.Step("Start RPC Service, Vehicle type data in StartServiceAck", common.startRpcService, { rpcServiceAckParams }) +common.Step("Vehicle type data in RAI response", common.registerAppEx, { common.vehicleTypeInfoParams.default }) +common.Step("UnregisterAppInterface", unregisterAppInterface) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/007_1_GetVT_error_initial_cap.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/007_1_GetVT_error_initial_cap.lua new file mode 100644 index 0000000000..8e104e720f --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/007_1_GetVT_error_initial_cap.lua @@ -0,0 +1,62 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL uses the vehicle type data from the initial SDL capabilities file for StartServiceAck and +-- RAI response after the first SDL start when a file with cached capabilities is absent in case HMI responds with +-- an erroneous result code to VI.GetVehicleType request at first SDL start +-- +-- Steps: +-- 1. HMI provides BC.GetSystemInfo(ccpu_version, systemHardwareVersion) +-- 2. HMI responds with `GENERIC_ERROR` code to VI.GetVehicleType requests +-- 3. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Provide systemSoftwareVersion and systemHardwareVersion values received from HMI in BC.GetSystemInfo response +-- via StartServiceAck to the app +-- - Provide the values for make, model, modelYear, trim parameters from the initial SDL capabilities file defined in +-- .ini file in HMICapabilities parameter via StartServiceAck to the app +-- 4. App sends RAI request via 5th protocol +-- SDL does: +-- - Provide systemSoftwareVersion value received from HMI in BC.GetSystemInfo response via RAI response to the app +-- - Provide the values for make, model, modelYear, trim parameters from the initial SDL capabilities file defined in +-- .ini file in HMICapabilities parameter via RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local defaultVTD = common.vehicleTypeInfoParams.default +local customVTD = common.vehicleTypeInfoParams.custom +local vehicleTypeInfoParams = { + make = defaultVTD.make, + model = defaultVTD.model, + modelYear = defaultVTD.modelYear, + trim = defaultVTD.trim, + ccpu_version = customVTD.ccpu_version, + systemHardwareVersion = customVTD.systemHardwareVersion +} + +--[[ Local Functions ]] +local function startErrorResponseGetVehicleType() + local hmiCap = common.setHMIcap(customVTD) + hmiCap.VehicleInfo.GetVehicleType = nil + common.start(hmiCap) + common.getHMIConnection():ExpectRequest("VehicleInfo.GetVehicleType") + :Do(function(_, data) + common.getHMIConnection():SendError(data.id, data.method, "GENERIC_ERROR", "info message") + end) +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Update HMI capabilities", common.updateHMICapabilitiesFile, { defaultVTD }) +common.Step("Start SDL, HMI sends GetSystemInfo(GENERIC_ERROR) response", startErrorResponseGetVehicleType ) + +common.Title("Test") +common.Step("Start RPC Service, Vehicle type data in StartServiceAck", + common.startRpcService, { common.getRpcServiceAckParamsFromStruct(vehicleTypeInfoParams) }) +common.Step("Vehicle type data in RAI", common.registerAppEx, { vehicleTypeInfoParams }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) + diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/007_2_GetVT_no_response_initial_cap.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/007_2_GetVT_no_response_initial_cap.lua new file mode 100644 index 0000000000..c3fc2bc0cb --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/007_2_GetVT_no_response_initial_cap.lua @@ -0,0 +1,62 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL uses the vehicle type data from the initial SDL capabilities file for StartServiceAck and +-- RAI response after the first SDL start when a file with cached capabilities is absent in case HMI does not respond +-- to VI.GetVehicleType request +-- +-- Steps: +-- 1. HMI provides BC.GetSystemInfo(ccpu_version, systemHardwareVersion) +-- 2. HMI does not respond to VI.GetVehicleType requests +-- 3. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Provide systemSoftwareVersion and systemHardwareVersion values received from HMI in BC.GetSystemInfo response +-- via StartServiceAck to the app +-- - Provide the values for make, model, modelYear, trim parameters from the initial SDL capabilities file defined in +-- .ini file in HMICapabilities parameter via StartServiceAck to the app +-- 4. App sends RAI request via 5th protocol +-- SDL does: +-- - Provide systemSoftwareVersion value received from HMI in BC.GetSystemInfo response via RAI response to the app +-- - Provide the values for make, model, modelYear, trim parameters from the initial SDL capabilities file defined in +-- .ini file in HMICapabilities parameter via RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local defaultVTD = common.vehicleTypeInfoParams.default +local customVTD = common.vehicleTypeInfoParams.custom +local vehicleTypeInfoParams = { + make = defaultVTD.make, + model = defaultVTD.model, + modelYear = defaultVTD.modelYear, + trim = defaultVTD.trim, + ccpu_version = customVTD.ccpu_version, + systemHardwareVersion = customVTD.systemHardwareVersion +} + +--[[ Local Functions ]] +local function startNoResponseGetVehicleType() + local hmiCap = common.setHMIcap(customVTD) + hmiCap.VehicleInfo.GetVehicleType = nil + common.getHMIConnection():ExpectRequest("VehicleInfo.GetVehicleType") + :Do(function() + -- do nothing + end) + common.start(hmiCap) +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Update HMI capabilities", common.updateHMICapabilitiesFile, { defaultVTD }) +common.Step("Start SDL, HMI does not send GetVehicleType response", startNoResponseGetVehicleType ) + +common.Title("Test") +common.Step("Start RPC Service, Vehicle type data in StartServiceAck", + common.startRpcService, { common.getRpcServiceAckParamsFromStruct(vehicleTypeInfoParams) }) +common.Step("Vehicle type data in RAI", common.registerAppEx, { vehicleTypeInfoParams }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) + diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/007_3_GetVT_invalid_resp_initial_cap.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/007_3_GetVT_invalid_resp_initial_cap.lua new file mode 100644 index 0000000000..546e77cbc6 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/007_3_GetVT_invalid_resp_initial_cap.lua @@ -0,0 +1,54 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL uses the vehicle type data from the initial SDL capabilities file for StartServiceAck and +-- RAI response after the first SDL start when a file with cached capabilities is absent in case HMI responds with +-- invalid data to VI.GetVehicleType request +-- +-- Steps: +-- 1. HMI provides BC.GetSystemInfo(ccpu_version, systemHardwareVersion) +-- 2. HMI responds with invalid data in vehicleType structure to VI.GetVehicleType requests +-- 3. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Provide systemSoftwareVersion and systemHardwareVersion values received from HMI in BC.GetSystemInfo response +-- via StartServiceAck to the app +-- - Provide the values for make, model, modelYear, trim parameters from the initial SDL capabilities file defined in +-- .ini file in HMICapabilities parameter via StartServiceAck to the app +-- 4. App sends RAI request via 5th protocol +-- SDL does: +-- - Provide systemSoftwareVersion value received from HMI in BC.GetSystemInfo response via RAI response to the app +-- - Provide the values for make, model, modelYear, trim parameters from the initial SDL capabilities file defined in +-- .ini file in HMICapabilities parameter via RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local defaultVTD = common.vehicleTypeInfoParams.default +local customVTD = common.vehicleTypeInfoParams.custom +local vehicleTypeInfoParams = { + make = common.vehicleTypeInfoParams.default.make, + model = common.vehicleTypeInfoParams.default.model, + modelYear = common.vehicleTypeInfoParams.default.modelYear, + trim = common.vehicleTypeInfoParams.default.trim, + ccpu_version = customVTD.ccpu_version, + systemHardwareVersion = customVTD.systemHardwareVersion +} + +local hmiCap = common.setHMIcap(customVTD) +hmiCap.VehicleInfo.GetVehicleType.params.vehicleType.make = 12345 --invalid data type + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Update HMI capabilities", common.updateHMICapabilitiesFile, { defaultVTD }) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) + +common.Title("Test") +common.Step("Start RPC Service, Vehicle type data in StartServiceAck", + common.startRpcService, { common.getRpcServiceAckParamsFromStruct(vehicleTypeInfoParams) }) +common.Step("Vehicle type data in RAI", common.registerAppEx, { vehicleTypeInfoParams }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) + diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/008_1_GetSI_delayed.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/008_1_GetSI_delayed.lua new file mode 100644 index 0000000000..b6cd0c7edf --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/008_1_GetSI_delayed.lua @@ -0,0 +1,39 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to postpone sending of StartServiceAck in case HMI responds with delay to +-- BC.GetSystemInfo request, VI.GetVehicleType is also requested and HMI responds immediately to +-- VI.GetVehicleType request +-- +-- Steps: +-- 1. SDL requests BC.GetSystemInfo and VI.GetVehicleType to HMI after start +-- 2. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Postpone the sending of StartServiceAck before receiving of BC.GetSystemInfo and VI.GetVehicleType responses +-- 3. HMI responds with delay to BC.GetSystemInfo request and immediately to VI.GetVehicleType request +-- SDL does: +-- - Send StartServiceAck after receiving VI.GetVehicleType and BC.GetSystemInfo responses +-- - Provide the vehicle type info with parameter values received from HMI in BC.GetSystemInfo and +-- VI.GetVehicleType responses via StartServiceAck to the app +-- 4. App requests RAI +-- SDL does: +-- - Provide the vehicle type info with parameter values received from HMI in BC.GetSystemInfo and +-- VI.GetVehicleType responses except systemHardwareVersion via RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local delay1 = 3000 +local delay2 = 0 + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) + +common.Title("Test") +common.Step("Start SDL, HMI, connect Mobile, start Session, send StartService", common.startWithExtension, + { delay1, delay2, common.delayedStartServiceAckNewApp }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/008_2_GetVT_delayed.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/008_2_GetVT_delayed.lua new file mode 100644 index 0000000000..caa0228da0 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/008_2_GetVT_delayed.lua @@ -0,0 +1,39 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to postpone sending of StartServiceAck in case HMI responds with delay to +-- VI.GetVehicleType request, BC.GetSystemInfo is also requested and HMI responds immediately to +-- BC.GetSystemInfo request +-- +-- Steps: +-- 1. SDL requests BC.GetSystemInfo and VI.GetVehicleType to HMI after start +-- 2. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Postpone the sending of StartServiceAck before receiving of BC.GetSystemInfo and VI.GetVehicleType responses +-- 3. HMI responds with delay to VI.GetVehicleType request and immediately to BC.GetSystemInfo request +-- SDL does: +-- - Send StartServiceAck after receiving VI.GetVehicleType and BC.GetSystemInfo responses +-- - Provide the vehicle type info with parameter values received from HMI in BC.GetSystemInfo and +-- VI.GetVehicleType responses via StartServiceAck to the app +-- 4. App requests RAI +-- SDL does: +-- - Provide the vehicle type info with parameter values received from HMI in BC.GetSystemInfo and +-- VI.GetVehicleType responses except systemHardwareVersion via RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local delay1 = 0 +local delay2 = 3000 + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) + +common.Title("Test") +common.Step("Start SDL, HMI, connect Mobile, start Session, send StartService", common.startWithExtension, + { delay1, delay2, common.delayedStartServiceAckNewApp }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/008_3_GetSI_and_GetVT_delayed.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/008_3_GetSI_and_GetVT_delayed.lua new file mode 100644 index 0000000000..3f694fbafc --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/008_3_GetSI_and_GetVT_delayed.lua @@ -0,0 +1,38 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to postpone sending of StartServiceAck in case HMI responds with delay to +-- VI.GetVehicleType and BC.GetSystemInfo requests +-- +-- Steps: +-- 1. SDL requests BC.GetSystemInfo and VI.GetVehicleType to HMI after start +-- 2. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Postpone the sending of StartServiceAck before receiving of BC.GetSystemInfo and VI.GetVehicleType responses +-- 3. HMI responds with delay to VI.GetVehicleType request and to BC.GetSystemInfo request +-- SDL does: +-- - Send StartServiceAck after receiving VI.GetVehicleType and BC.GetSystemInfo responses +-- - Provide the vehicle type info with parameter values received from HMI in BC.GetSystemInfo and +-- VI.GetVehicleType responses via StartServiceAck to the app +-- 4. App requests RAI +-- SDL does: +-- - Provide the vehicle type info with parameter values received from HMI in BC.GetSystemInfo and +-- VI.GetVehicleType responses except systemHardwareVersion via RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local delay1 = 2000 +local delay2 = 3000 + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) + +common.Title("Test") +common.Step("Start SDL, HMI, connect Mobile, start Session, send StartService", common.startWithExtension, + { delay1, delay2, common.delayedStartServiceAckNewApp }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/008_4_GetSI_delayed_new_Ign_Cycle.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/008_4_GetSI_delayed_new_Ign_Cycle.lua new file mode 100644 index 0000000000..e1d301a279 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/008_4_GetSI_delayed_new_Ign_Cycle.lua @@ -0,0 +1,44 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to postpone sending of StartServiceAck in case HMI responds with delay to +-- BC.GetSystemInfo request, VI.GetVehicleType is not requested because the data from VI.GetVehicleType have been +-- cached in the previous ignition cycle +-- +-- Steps: +-- 1. SDL requests BC.GetSystemInfo to HMI after start +-- 2. Vehicle type data is cached in the previous ignition cycle(SDL does not request VI.GetVehicleType) +-- 2. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Postpone the sending of StartServiceAck before receiving of BC.GetSystemInfo response +-- 3. HMI responds with delay to BC.GetSystemInfo request +-- SDL does: +-- - Send StartServiceAck right after receiving BC.GetSystemInfo response +-- - Provide systemSoftwareVersion and systemHardwareVersion values received from HMI in BC.GetSystemInfo response +-- via StartServiceAck to the app +-- - Provide the values for make, model, modelYear, trim parameters from the cache in StartServiceAck to the app +-- 4. App requests RAI +-- SDL does: +-- - Provide systemSoftwareVersion value received from HMI in BC.GetSystemInfo response via RAI response to the app +-- - Provide the values for make, model, modelYear, trim parameters from the cache in RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local delay1 = 3000 +local delay2 = -1 +local hmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) +common.Step("Ignition off", common.ignitionOff) + +common.Title("Test") +common.Step("Start SDL, HMI, connect Mobile, start Session, send StartService", common.startWithExtension, + { delay1, delay2, common.delayedStartServiceAckNewApp }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/009_Cached_VehicleTypeData_Ack_RAI.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/009_Cached_VehicleTypeData_Ack_RAI.lua new file mode 100644 index 0000000000..498934c4eb --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/009_Cached_VehicleTypeData_Ack_RAI.lua @@ -0,0 +1,49 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: SDL uses the vehicle type data from the file with cached capabilities for StartServiceAck and +-- RAI response at the second SDL start +-- +-- Steps: +-- 1. All vehicle type data is provided via BC.GetSystemInfo(ccpu_version, systemHardwareVersion) +-- and VI.GetVehicleType(make, model, modelYear, trim) responses and cached in previous ignition cycle +-- 2. HMI and SDL start +-- SDL does: +-- - not request VI.GetVehicleType RPC +-- - request BC.GetSystemInfo RPC +-- 3. HMI sends BC.GetSystemInfo(ccpu_version, systemHardwareVersion) response +-- 4. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Provide systemSoftwareVersion and systemHardwareVersion values received from HMI in BC.GetSystemInfo response +-- via StartServiceAck to the app +-- - Provide the values for make, model, modelYear, trim parameters from cached HMI capabilities +-- in StartServiceAck to the app +-- 5. App requests RAI +-- SDL does: +-- - Provide systemSoftwareVersion value received from HMI in BC.GetSystemInfo response via RAI response to the app +-- - Provide the values for make, model, modelYear, trim parameters from cached HMI capabilities +-- in RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local hmiCap = common.setHMIcap(common.vehicleTypeInfoParams.custom) +local rpcServiceAckParams = common.getRpcServiceAckParams(hmiCap) +local isCacheUsed = true + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Update HMI capabilities", common.updateHMICapabilitiesFile, { common.vehicleTypeInfoParams.default }) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) +common.Step("Ignition off", common.ignitionOff) + +common.Title("Test") +common.Step("Ignition on, Start SDL, HMI does not send GetSystemInfo request", + common.start, { hmiCap, isCacheUsed }) +common.Step("Start RPC Service, Vehicle type data in StartServiceAck", common.startRpcService, { rpcServiceAckParams }) +common.Step("Vehicle type data in RAI", common.registerAppEx, { common.vehicleTypeInfoParams.custom }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/010_GetSI_systemHardwareVersion_snapshot.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/010_GetSI_systemHardwareVersion_snapshot.lua new file mode 100644 index 0000000000..651be53259 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/010_GetSI_systemHardwareVersion_snapshot.lua @@ -0,0 +1,51 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: SDL is able to process successfully BC.GetSystemInfo request with systemHardwareVersion parameter and +-- provides this value in the snapshot for external_proprietary policy flow +-- +-- Steps: +-- 1. HMI sends BC.GetSystemInfo response with systemHardwareVersion parameter +-- SDL does: +-- - Process the response successful +-- - Store systemHardwareVersion in the DB +-- 2. App is registered and PTU is triggered +-- SDL does: +-- - Create snapshot file with systemHardwareVersion value in hardware_version parameter +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Test Configuration ]] +common.testSettings.restrictions.sdlBuildOptions = {{ extendedPolicy = { "EXTERNAL_PROPRIETARY" }}} + +--[[ Local Variables ]] +local hmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) +local systemHardwareVersion = hmiCap.BasicCommunication.GetSystemInfo.params.systemHardwareVersion + +--[[ Local Functions ]] +local function verifyPTSnapshot() + local ptsTable = common.ptsTable() + if not ptsTable then + common.failTestStep("Policy table snapshot was not created") + else + local hardware_version = ptsTable.policy_table.module_meta.hardware_version + if not hardware_version == systemHardwareVersion then + common.failTestStep("Incorrect systemHardwareVersion value\n" .. + " Expected: " .. systemHardwareVersion .. "\n" .. + " Actual: " .. tostring(hardware_version) .. "\n" ) + end + end +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) + +common.Title("Test") +common.Step("Register App, PTU is triggered", common.registerApp) +common.Step("Check that PTS contains systemHardwareVersion", verifyPTSnapshot) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/011_GetSI_systemHardwareVersion_valid_boundary.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/011_GetSI_systemHardwareVersion_valid_boundary.lua new file mode 100644 index 0000000000..51cbcaed92 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/011_GetSI_systemHardwareVersion_valid_boundary.lua @@ -0,0 +1,49 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to process successfully the systemHardwareVersion parameter with +-- valid boundary value in BC.GetSystemInfo response +-- +-- Steps: +-- 1. HMI sends BC.GetSystemInfo with valid boundary value of systemHardwareVersion parameter +-- SDL does: +-- - Process the response successfully +-- - Apply received systemHardwareVersion value +-- 2. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Provide systemHardwareVersion value received from HMI in StartServiceAck to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local tcs = { + [01] = string.rep("a", 500), --max value + [02] = string.rep("a", 1) -- min value +} + +--[[ Local Functions ]] +local function setHmiCap(pTC) + local hmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) + local systemInfoParams = hmiCap.BasicCommunication.GetSystemInfo.params + systemInfoParams.systemHardwareVersion = pTC + return hmiCap +end + +--[[ Scenario ]] +for tc, data in common.spairs(tcs) do + common.Title("TC[" .. string.format("%03d", tc) .. "]") + common.Title("Preconditions") + common.Step("Clean environment", common.preconditions) + local hmiCap = setHmiCap(data) + common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) + + common.Title("Test") + local rpcServiceAckParams = common.getRpcServiceAckParams(hmiCap) + common.Step("Start RPC Service, Vehicle type data in StartServiceAck", + common.startRpcService, { rpcServiceAckParams }) + + common.Title("Postconditions") + common.Step("Stop SDL", common.postconditions) +end + diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/012_1_GetSI_systemHardwareVersion_invalid_boundary_empty_values.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/012_1_GetSI_systemHardwareVersion_invalid_boundary_empty_values.lua new file mode 100644 index 0000000000..63988e6b76 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/012_1_GetSI_systemHardwareVersion_invalid_boundary_empty_values.lua @@ -0,0 +1,74 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to process correctly the systemHardwareVersion parameter with invalid value in +-- BC.GetSystemInfo response in the first ignition cycle +-- +-- Steps: +-- 1. HMI sends BC.GetSystemInfo with invalid value of systemHardwareVersion parameter in the first ignition cycle, +-- systemSoftwareVersion and systemHardwareVersion parameters are empty in the DB +-- SDL does: +-- - Process the response as invalid +-- 2. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Not provide systemHardwareVersion and systemSoftwareVersion values in StartServiceAck to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local tcs = { + [01] = string.rep("a", 501), -- out of upper bound value + [02] = "", -- out of lower bound value + [03] = 1 -- invalid type +} +local defaultHmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) +local rpcServiceAckParams = common.getRpcServiceAckParams(defaultHmiCap) +rpcServiceAckParams.systemSoftwareVersion = nil +rpcServiceAckParams.systemHardwareVersion = nil + +local notExpected = { "systemSoftwareVersion", "systemHardwareVersion" } + +--[[ Local Functions ]] +local function setHmiCap(pTC) + local hmiCap = common.cloneTable(defaultHmiCap) + local systemInfoParams = hmiCap.BasicCommunication.GetSystemInfo.params + systemInfoParams.systemHardwareVersion = pTC + return hmiCap +end + +local function startRpcService(pAckParams, pAppId) + common.startRpcService(pAckParams, pAppId) + :ValidIf(function(_, data) + local errorMessages = "" + local actPayload = common.bson_to_table(data.binaryData) + for _, param in pairs(notExpected) do + for Key, _ in pairs(actPayload) do + if Key == param then + errorMessages = errorMessages .. "BinaryData contains unexpected " .. param .. " parameter\n" + end + end + end + if string.len(errorMessages) > 0 then + return false, errorMessages + else + return true + end + end) +end + +--[[ Scenario ]] +for tc, data in common.spairs(tcs) do + common.Title("TC[" .. string.format("%03d", tc) .. "]") + common.Title("Preconditions") + common.Step("Clean environment", common.preconditions) + local hmiCap = setHmiCap(data) + + common.Title("Test") + common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) + common.Step("Start RPC Service, Vehicle type data in StartServiceAck", startRpcService, + { rpcServiceAckParams }) + + common.Title("Postconditions") + common.Step("Stop SDL", common.postconditions) +end diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/012_2_GetSI_systemSoftwareVersion_invalid_boundary_value_from_DB.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/012_2_GetSI_systemSoftwareVersion_invalid_boundary_value_from_DB.lua new file mode 100644 index 0000000000..ab4dcdda28 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/012_2_GetSI_systemSoftwareVersion_invalid_boundary_value_from_DB.lua @@ -0,0 +1,76 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to process correctly the systemHardwareVersion parameter with invalid value in +-- BC.GetSystemInfo response in the second ignition cycle +-- +-- Steps: +-- 1. HMI sends BC.GetSystemInfo with invalid value of systemHardwareVersion parameter in the second ignition cycle, +-- systemSoftwareVersion and systemHardwareVersion parameters have values in the DB +-- SDL does: +-- - Process the response as invalid +-- 2. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Provide systemHardwareVersion and systemSoftwareVersion values from the DB in StartServiceAck to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local tcs = { + [01] = string.rep("a", 501), -- out of upper bound value + [02] = "", -- out of lower bound value + [03] = 1 -- invalid type +} +local defaultHmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) +local vehicleTypeInfoParams = { + make = common.vehicleTypeInfoParams.custom.make, + model = common.vehicleTypeInfoParams.custom.model, + modelYear = common.vehicleTypeInfoParams.custom.modelYear, + trim = common.vehicleTypeInfoParams.custom.trim, + ccpu_version = common.vehicleTypeInfoParams.default.ccpu_version, + systemHardwareVersion = common.vehicleTypeInfoParams.default.systemHardwareVersion +} + +--[[ Local Functions ]] +local function getRpcServiceAckParams(pVehicleTypeInfoParams) + local ackParams = { + make = common.setStringBsonValue(pVehicleTypeInfoParams.make), + model = common.setStringBsonValue(pVehicleTypeInfoParams.model), + modelYear = common.setStringBsonValue(pVehicleTypeInfoParams.modelYear), + trim = common.setStringBsonValue(pVehicleTypeInfoParams.trim), + systemSoftwareVersion = common.setStringBsonValue(pVehicleTypeInfoParams.ccpu_version), + systemHardwareVersion = common.setStringBsonValue(pVehicleTypeInfoParams.systemHardwareVersion) + } + for key, KeyValue in pairs(ackParams) do + if not KeyValue.value then + ackParams[key] = nil + end + end + return ackParams +end + +local function setHmiCap(pTC, pVehicleTypeInfo) + local hmiCap = common.setHMIcap(pVehicleTypeInfo) + local systemInfoParams = hmiCap.BasicCommunication.GetSystemInfo.params + systemInfoParams.systemHardwareVersion = pTC + return hmiCap +end + +--[[ Scenario ]] +for tc, data in common.spairs(tcs) do + common.Title("TC[" .. string.format("%03d", tc) .. "]") + common.Title("Preconditions") + common.Step("Clean environment", common.preconditions) + common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { defaultHmiCap, common.isCacheNotUsed }) + common.Step("Ignition off", common.ignitionOff) + local customHmiCap = setHmiCap(data, common.vehicleTypeInfoParams.custom) + + common.Title("Test") + common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { customHmiCap, common.isCacheNotUsed }) + common.Step("Start RPC Service, Vehicle type data in StartServiceAck", common.startRpcService, + { getRpcServiceAckParams(vehicleTypeInfoParams) }) + + common.Title("Postconditions") + common.Step("Stop SDL", common.postconditions) +end diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/013_VehicleTypeData_RAI_4th_protocol.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/013_VehicleTypeData_RAI_4th_protocol.lua new file mode 100644 index 0000000000..36a1e14950 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/013_VehicleTypeData_RAI_4th_protocol.lua @@ -0,0 +1,42 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to provide all vehicle type data in RAI response in case the app is registered +-- via 4th protocol +-- +-- Steps: +-- 1. HMI provides all vehicle type data in BC.GetSystemInfo(ccpu_version, systemHardwareVersion) +-- and VI.GetVehicleType(make, model, modelYear, trim) responses +-- 2. App requests RAI via 4th protocol +-- SDL does: +-- - Provide the vehicle type info with all parameter values received from HMI in RAI response to the app +-- except systemHardwareVersion +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Test Configuration ]] +config.defaultProtocolVersion = 4 -- Set 4 protocol as default for script + +--[[ Local Variables ]] +local hmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) + +--[[ Local Functions ]] +local function registerApp(responseExpectedData) + local session = common.createSession() + session:StartService(7) + :Do(function() + common.registerAppEx(responseExpectedData) + end) +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) + +common.Title("Test") +common.Step("Vehicle type data in RAI", registerApp, { common.vehicleTypeInfoParams.default }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/014_1_VehicleTypeData_from_DB_and_updated_from_GetVT.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/014_1_VehicleTypeData_from_DB_and_updated_from_GetVT.lua new file mode 100644 index 0000000000..72da056645 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/014_1_VehicleTypeData_from_DB_and_updated_from_GetVT.lua @@ -0,0 +1,63 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: SDL is able to provide systemSoftwareVersion and systemHardwareVersion versions from the DB +-- and updated values from VI.GetVehicleType response in the second SDL ignition cycle +-- +-- Steps: +-- 1. HMI responds with erroneous code to BC.GetSystemInfo request in the second ignition cycle, +-- systemSoftwareVersion and systemHardwareVersion have been saved to the DB in the previous ignition cycle +-- SDL does: +-- - Remove the cache file with hmi capabilities +-- - Request obtaining of all HMI capabilities and VI.GetVehicleType RPC +-- 2. HMI responds with updated values to VI.GetVehicleType request +-- 3. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Provide systemHardwareVersion and systemSoftwareVersion values from the DB in StartServiceAck to the app +-- - Provide the values for make, model, modelYear, trim parameters received from HMI in StartServiceAck to the app +-- 4. App requests RAI +-- SDL does: +-- - Provide systemSoftwareVersion value from the DB in RAI response to the app +-- - Provide the values for make, model, modelYear, trim parameters received from HMI in RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local vehicleTypeInfoParams = { + make = common.vehicleTypeInfoParams.custom.make, + model = common.vehicleTypeInfoParams.custom.model, + modelYear = common.vehicleTypeInfoParams.custom.modelYear, + trim = common.vehicleTypeInfoParams.custom.trim, + ccpu_version = common.vehicleTypeInfoParams.default.ccpu_version, + systemHardwareVersion = common.vehicleTypeInfoParams.default.systemHardwareVersion +} + +local defaultHmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) + +--[[ Local Functions ]] +local function startErrorResponseGetSystemInfo() + local hmiCap = common.setHMIcap(common.vehicleTypeInfoParams.custom) + hmiCap.BasicCommunication.GetSystemInfo = nil + common.start(hmiCap, common.isCacheNotUsed) + common.getHMIConnection():ExpectRequest("BasicCommunication.GetSystemInfo") + :Do(function(_, data) + common.getHMIConnection():SendError(data.id, data.method, "GENERIC_ERROR", "info message") + end) +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { defaultHmiCap, common.isCacheNotUsed }) +common.Step("Ignition off", common.ignitionOff) + +common.Title("Test") +common.Step("Start SDL, HMI sends GetSystemInfo(GENERIC_ERROR) response", startErrorResponseGetSystemInfo ) +common.Step("Start RPC Service, Vehicle type data in StartServiceAck", + common.startRpcService, { common.getRpcServiceAckParamsFromStruct(vehicleTypeInfoParams) }) +common.Step("Vehicle type data in RAI", common.registerAppEx, { vehicleTypeInfoParams }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) + diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/014_2_VehicleTypeData_from_DB_and_from_initial_cap.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/014_2_VehicleTypeData_from_DB_and_from_initial_cap.lua new file mode 100644 index 0000000000..28aaf0cb3b --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/014_2_VehicleTypeData_from_DB_and_from_initial_cap.lua @@ -0,0 +1,77 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: SDL is able to provide systemSoftwareVersion and systemHardwareVersion versions from the DB +-- and values for make, model, modelYear, trim parameters from the initial SDL capabilities file +-- in the second SDL ignition cycle +-- +-- Steps: +-- 1. HMI responds with erroneous code to BC.GetSystemInfo request in the second ignition cycle, +-- systemSoftwareVersion and systemHardwareVersion have been saved to the DB in the previous ignition cycle +-- SDL does: +-- - Remove the cache file with hmi capabilities +-- - Request obtaining of all HMI capabilities and VI.GetVehicleType RPC +-- 2. HMI does not respond to VI.GetVehicleType request +-- 3. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Provide systemHardwareVersion and systemSoftwareVersion values from the DB in StartServiceAck to the app +-- - Provide the values for make, model, modelYear, trim parameters from the initial SDL capabilities file defined in +-- .ini file in HMICapabilities parameter via StartServiceAck to the app +-- 4. App requests RAI +-- SDL does: +-- - Provide systemSoftwareVersion value from the DB in RAI response to the app +-- - Provide the values for make, model, modelYear, trim parameters from the initial SDL capabilities file defined in +-- .ini file in HMICapabilities parameter via RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local initialVehicleTypeParams = { + make = "OEM2", + model = "Ranger", + modelYear = "2021", + trim = "Base" +} + +local vehicleTypeInfoParams = { + make = initialVehicleTypeParams.make, + model = initialVehicleTypeParams.model, + modelYear = initialVehicleTypeParams.modelYear, + trim = initialVehicleTypeParams.trim, + ccpu_version = common.vehicleTypeInfoParams.default.ccpu_version, + systemHardwareVersion = common.vehicleTypeInfoParams.default.systemHardwareVersion +} + +local defaultHmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) + +--[[ Local Functions ]] +local function startErrorResponseGetSystemInfo() + local hmiCap = common.setHMIcap(common.vehicleTypeInfoParams.custom) + hmiCap.BasicCommunication.GetSystemInfo = nil + hmiCap.VehicleInfo.GetVehicleType = nil + common.start(hmiCap, common.isCacheNotUsed) + common.getHMIConnection():ExpectRequest("BasicCommunication.GetSystemInfo") + :Do(function(_, data) + common.getHMIConnection():SendError(data.id, data.method, "GENERIC_ERROR", "info message") + end) + common.getHMIConnection():ExpectRequest("VehicleInfo.GetVehicleType") + common.wait(15000) + end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Update HMI capabilities", common.updateHMICapabilitiesFile, { initialVehicleTypeParams }) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { defaultHmiCap, common.isCacheNotUsed }) +common.Step("Ignition off", common.ignitionOff) + +common.Title("Test") +common.Step("Start SDL, HMI sends GetSystemInfo(GENERIC_ERROR) response", startErrorResponseGetSystemInfo ) +common.Step("Start RPC Service, Vehicle type data in StartServiceAck", + common.startRpcService, { common.getRpcServiceAckParamsFromStruct(vehicleTypeInfoParams) }) +common.Step("Vehicle type data in RAI", common.registerAppEx, { vehicleTypeInfoParams }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) + diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/015_1_GetSI_ccpu_updated_and_updated_from_GetVT.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/015_1_GetSI_ccpu_updated_and_updated_from_GetVT.lua new file mode 100644 index 0000000000..5578cd1c6c --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/015_1_GetSI_ccpu_updated_and_updated_from_GetVT.lua @@ -0,0 +1,42 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: SDL is able to provide the updated vehicle type data to the mobile app in case ccpu version is updated +-- in the second SDL ignition cycle and HMI responds with updated data in VI.GetVehicleType response +-- +-- Steps: +-- 1. HMI responds with new value of ccpu_version to BC.GetSystemInfo request in the second ignition cycle +-- SDL does: +-- - Remove the cache file with hmi capabilities +-- - Request obtaining of all HMI capabilities and VI.GetVehicleType RPC +-- 2. HMI responds with updated values to VI.GetVehicleType request +-- 3. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Provide the vehicle type info with parameter values received from HMI in StartServiceAck to the app +-- 4. App requests RAI +-- SDL does: +-- - Provide the vehicle type info with parameter values received from HMI except systemHardwareVersion in RAI response +-- to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local defaultHmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) +local customHmiCap = common.setHMIcap(common.vehicleTypeInfoParams.custom) +local rpcServiceAckParams = common.getRpcServiceAckParams(customHmiCap) + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { defaultHmiCap, common.isCacheNotUsed }) +common.Step("Ignition off", common.ignitionOff) + +common.Title("Test") +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { customHmiCap, common.isCacheNotUsed }) +common.Step("Start RPC Service, Vehicle type data in StartServiceAck", + common.startRpcService, { rpcServiceAckParams }) +common.Step("Vehicle type data in RAI", common.registerAppEx, { common.vehicleTypeInfoParams.custom }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/015_2_GetSI_ccpu_version_updated_and_from_initial_cap.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/015_2_GetSI_ccpu_version_updated_and_from_initial_cap.lua new file mode 100644 index 0000000000..67a8dc03d1 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/015_2_GetSI_ccpu_version_updated_and_from_initial_cap.lua @@ -0,0 +1,72 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: SDL is able to provide the updated vehicle type data to the mobile app in case ccpu version is updated +-- in the second SDL ignition cycle and HMI does not respond to VI.GetVehicleType request +-- +-- Steps: +-- 1. HMI responds with new value of ccpu_version to BC.GetSystemInfo request in the second ignition cycle +-- SDL does: +-- - Remove the cache file with hmi capabilities +-- - Request obtaining of all HMI capabilities and VI.GetVehicleType RPC +-- 2. HMI does not respond to VI.GetVehicleType request +-- 3. App requests StartService(RPC) via 5th protocol +-- SDL does: +-- - Provide systemHardwareVersion and systemSoftwareVersion values received from HMI in StartServiceAck to the app +-- - Provide the values for make, model, modelYear, trim parameters from the initial SDL capabilities file defined in +-- .ini file in HMICapabilities parameter via StartServiceAck to the app +-- 4. App requests RAI +-- SDL does: +-- - Provide systemSoftwareVersion value received from HMI in RAI response to the app +-- - Provide the values for make, model, modelYear, trim parameters from the initial SDL capabilities file defined in +-- .ini file in HMICapabilities parameter via RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local initialVehicleTypeParams = { + make = "OEM2", + model = "Ranger", + modelYear = "2021", + trim = "Base" +} + +local vehicleTypeInfoParams = { + make = initialVehicleTypeParams.make, + model = initialVehicleTypeParams.model, + modelYear = initialVehicleTypeParams.modelYear, + trim = initialVehicleTypeParams.trim, + ccpu_version = common.vehicleTypeInfoParams.custom.ccpu_version, + systemHardwareVersion = common.vehicleTypeInfoParams.custom.systemHardwareVersion +} + +local defaultHmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) + +--[[ Local Functions ]] +local function startNoResponseGetVehicleType(pHmiCap) + local hmiCap = common.setHMIcap(pHmiCap) + hmiCap.VehicleInfo.GetVehicleType = nil + common.getHMIConnection():ExpectRequest("VehicleInfo.GetVehicleType") + :Do(function() + -- do nothing + end) + common.start(hmiCap) +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Update HMI capabilities", common.updateHMICapabilitiesFile, { initialVehicleTypeParams }) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { defaultHmiCap }) +common.Step("Ignition off", common.ignitionOff) + +common.Title("Test") +common.Step("Start SDL, HMI, connect Mobile, start Session", + startNoResponseGetVehicleType, { common.vehicleTypeInfoParams.custom }) +common.Step("Start RPC Service, Vehicle type data in StartServiceAck", + common.startRpcService, { common.getRpcServiceAckParamsFromStruct(vehicleTypeInfoParams) }) +common.Step("Vehicle type data in RAI", common.registerAppEx, { vehicleTypeInfoParams }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/016_Audio_video_services.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/016_Audio_video_services.lua new file mode 100644 index 0000000000..5f1c83a71f --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/016_Audio_video_services.lua @@ -0,0 +1,71 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: SDL does not provide vehicle type data in StartServiceAck for video and audio services +-- +-- Steps: +-- 1. HMI provides all vehicle type data in BC.GetSystemInfo(ccpu_version, systemHardwareVersion) +-- and VI.GetVehicleType(make, model, modelYear, trim) responses +-- 2. App is registered via 5th protocol and activated +-- 3. App requests StartService(VIDEO) and StartService(PCM) via 5th protocol +-- SDL does: +-- - Not provide the vehicle type info in StartServiceAck for audio and video services to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local hmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) + +local videoServiceParams = { + reqParams = { + height = { type = common.bsonType.INT32, value = 350 }, + width = { type = common.bsonType.INT32, value = 800 }, + videoProtocol = { type = common.bsonType.STRING, value = "RAW" }, + videoCodec = { type = common.bsonType.STRING, value = "H264" }, + mtu = { type = common.bsonType.INT64, value = 131072 } + } +} + +local audioServiceParams = { + reqParams = { + mtu = { type = common.bsonType.INT64, value = 131072 } + } +} + +--[[ Local Functions ]] +local function setVideoConfig() + common.getHMIConnection():ExpectRequest("Navigation.SetVideoConfig") + :Do(function(_, data) + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) + end) +end + +local function startServiceUnprotectedACK(pAppId, pServiceId, pRequestPayload, pResponsePayload, pExtensionFunc) + common.startServiceUnprotectedACK( pAppId, pServiceId, pRequestPayload, pResponsePayload, pExtensionFunc ) + :ValidIf(function(_, data) + local actPayload = common.bson_to_table(data.binaryData) + if false == common.isTableEqual(actPayload, pResponsePayload) then + return false, "BinaryData are not match to expected result.\n" .. + "Actual result:" .. common.tableToString(actPayload) .. "\n" .. + "Expected result:" ..common.tableToString(pResponsePayload) .."\n" + end + return true + end) +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) + +common.Title("Test") +common.Step("Register App", common.registerAppUpdatedProtocolVersion) +common.Step("Activate App", common.activateApp) +common.Step("Start unprotected Video Service, ACK", startServiceUnprotectedACK, + { 1, common.serviceType.VIDEO, videoServiceParams.reqParams, videoServiceParams.reqParams, setVideoConfig }) +common.Step("Start unprotected Audio Service, ACK", startServiceUnprotectedACK, + { 1, common.serviceType.PCM, audioServiceParams.reqParams, audioServiceParams.reqParams }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/017_All_VehicleTypeData_pretected_Ack.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/017_All_VehicleTypeData_pretected_Ack.lua new file mode 100644 index 0000000000..be142ecc77 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/017_All_VehicleTypeData_pretected_Ack.lua @@ -0,0 +1,40 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to provide vehicle type data in the encrypted StartServiceAck +-- +-- Steps: +-- 1. HMI provides all vehicle type data in BC.GetSystemInfo(ccpu_version, systemHardwareVersion) +-- and VI.GetVehicleType(make, model, modelYear, trim) responses +-- 2. Unprotected RPC service is started +-- 3. App requests protected StartService(RPC) via 5th protocol +-- SDL does: +-- - Provide the vehicle type info with all parameter values received from HMI in protected StartServiceAck to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local hmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) +local rpcServiceAckParams = common.getRpcServiceAckParams(hmiCap) + +local rpcServiceParams = { + reqParams = { + protocolVersion = { type = common.bsonType.STRING, value = "5.4.0" } + } +} + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Init SDL certificates", common.initSDLCertificates, { "./files/Security/client_credential.pem" }) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) +common.Step("Register App", common.registerApp) +common.Step("Activate App", common.activateApp) + +common.Title("Test") +common.Step("Switch RPC Service to Protected mode ACK", + common.startServiceProtectedACK, { 1, common.serviceType.RPC, rpcServiceParams.reqParams, rpcServiceAckParams }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/018_1_VehicleTypeData_multiple_apps.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/018_1_VehicleTypeData_multiple_apps.lua new file mode 100644 index 0000000000..e142cfcb20 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/018_1_VehicleTypeData_multiple_apps.lua @@ -0,0 +1,44 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to provide vehicle type data for each app that requests StartService and +-- RAI via 5 protocol after all vehicle type data have been received +-- +-- Steps: +-- 1. HMI provides all vehicle type data in BC.GetSystemInfo(ccpu_version, systemHardwareVersion) +-- and VI.GetVehicleType(make, model, modelYear, trim) responses +-- 2. App1 requests StartService(RPC) via 5th protocol and then RAI +-- SDL does: +-- - Provide the vehicle type info with all parameter values received from HMI in StartServiceAck and +-- RAI response(except systemHardwareVersion) to the app1 +-- 3. App2 requests StartService(RPC) via 5th protocol and then RAI +-- SDL does: +-- - Provide the vehicle type info with all parameter values received from HMI in StartServiceAck and +-- RAI response(except systemHardwareVersion) to the app2 +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local appSessionId1 = 1 +local appSessionId2 = 2 +local hmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) +local rpcServiceAckParams = common.getRpcServiceAckParams(hmiCap) + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) + +common.Title("Test") +common.Step("Start RPC Service, Vehicle type data in StartServiceAck for App1", common.startRpcService, + { rpcServiceAckParams, appSessionId1 }) +common.Step("Vehicle type data in RAI App1", common.registerAppEx, + { common.vehicleTypeInfoParams.default, appSessionId1 }) +common.Step("Start RPC Service, Vehicle type data in StartServiceAck for App2", common.startRpcService, + { rpcServiceAckParams, appSessionId2 }) +common.Step("Vehicle type data in RAI App2", common.registerAppEx, + { common.vehicleTypeInfoParams.default, appSessionId2 }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/018_2_GetSI_and_GetVT_delayed_multiple_Apps.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/018_2_GetSI_and_GetVT_delayed_multiple_Apps.lua new file mode 100644 index 0000000000..fbec1438b3 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/018_2_GetSI_and_GetVT_delayed_multiple_Apps.lua @@ -0,0 +1,92 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to provide vehicle type data for each app that requests StartService and +-- RAI via 5 protocol after all vehicle type data have been received in case StartService is requested before receiving +-- BC.GetSystemInfo and VI.GetVehicleType responses +-- +-- Steps: +-- 1. SDL requests BC.GetSystemInfo and VI.GetVehicleType to HMI after start +-- 2. App1 and App2 request StartService(RPC) via 5th protocol +-- SDL does: +-- - Postpone the sending of StartServiceAcks before receiving of BC.GetSystemInfo and VI.GetVehicleType responses +-- 3. HMI responds with delay to BC.GetSystemInfo and to VI.GetVehicleType requests +-- SDL does: +-- - Send StartServiceAcks after receiving VI.GetVehicleType and BC.GetSystemInfo responses with the vehicle type info +-- with all parameter values received from HMI to app1 and app2 +-- 4. App1 and App2 request RAI after receiving StartServiceAck +-- SDL does: +-- - Provide the vehicle type info with all parameter values received from HMI except systemHardwareVersion in +-- RAI response to the app1 and app2 +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local appSessionId1 = 1 +local appSessionId2 = 2 +local delay1 = 2000 +local delay2 = 3000 + +--[[ Local Functions ]] +local function delayedStartServiceAckMultipleApps(_, pTS, pRpcServiceAckParams) + local reqParams = { protocolVersion = common.setStringBsonValue("5.4.0") } + local mobSession1 = common.createSession(1) + local mobSession2 = common.createSession(2) + local msg = { + serviceType = common.serviceType.RPC, + frameType = common.frameType.CONTROL_FRAME, + frameInfo = common.frameInfo.START_SERVICE, + encryption = false, + binaryData = common.bson_to_bytes(reqParams) + } + + mobSession1:Send(msg) + common.log("MOB->SDL: App1".." StartService(7)", reqParams) + + mobSession2:Send(msg) + common.log("MOB->SDL: App2" .." StartService(7)", reqParams) + + local function validateResponse(pData) + local actPayload = common.bson_to_table(pData.binaryData) + common.log("SDL->MOB: App" ..pData.sessionId.." StartServiceAck(7)", actPayload) + if pTS.ts_get_si == nil then + return false, "StartServiceAck received before receiving of GetSystemInfo from HMI" + end + if pTS.ts_get_vt == nil then + return false, "StartServiceAck received before receiving of GetVehicleType from HMI" + end + return compareValues(pRpcServiceAckParams, actPayload, "binaryData") + end + + common.getMobileSession():ExpectControlMessage(common.serviceType.RPC, { + frameInfo = common.frameInfo.START_SERVICE_ACK, + encryption = false + }) + :ValidIf(function(exp, data) + if exp.occurences == 1 and data.frameInfo == common.frameInfo.START_SERVICE_ACK then + mobSession1.sessionId = data.sessionId + return validateResponse(data) + elseif exp.occurences == 2 and data.frameInfo == common.frameInfo.START_SERVICE_ACK then + mobSession2.sessionId = data.sessionId + return validateResponse(data) + end + return false, "Unexpected message have been received" + end) + :Times(2) +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) + +common.Title("Test") +common.Step("Start SDL, HMI, connect Mobile, start Session, send StartService", common.startWithExtension, + { delay1, delay2, delayedStartServiceAckMultipleApps }) +common.Step("Vehicle type data in RAI App1", common.registerAppEx, + { common.vehicleTypeInfoParams.default, appSessionId1 }) +common.Step("Vehicle type data in RAI App2", common.registerAppEx, + { common.vehicleTypeInfoParams.default, appSessionId2 }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/019_1_GetSI_delayed_RAI_on_4th_protocol.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/019_1_GetSI_delayed_RAI_on_4th_protocol.lua new file mode 100644 index 0000000000..7f729d0420 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/019_1_GetSI_delayed_RAI_on_4th_protocol.lua @@ -0,0 +1,41 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to postpone sending of RAI response for app registered via 4th protocol +-- in case HMI responds with delay to BC.GetSystemInfo request, VI.GetVehicleType is also requested and HMI responds +-- immediately to VI.GetVehicleType request +-- +-- Steps: +-- 1. SDL requests BC.GetSystemInfo and VI.GetVehicleType to HMI after start +-- 2. App requests StartService(RPC) via 4th protocol +-- SDL does: +-- - Send StartServiceAck to mobile app right after receiving StartService request +-- 3. App requests RAI +-- SDL does: +-- - Postpone the sending of RAI response before receiving of BC.GetSystemInfo and VI.GetVehicleType responses +-- 4. HMI responds with delay to BC.GetSystemInfo request and immediately to VI.GetVehicleType request +-- SDL does: +-- - Send RAI response after receiving VI.GetVehicleType and BC.GetSystemInfo responses +-- - Provide the vehicle type info with parameter values received from HMI in BC.GetSystemInfo and +-- VI.GetVehicleType responses except systemHardwareVersion via RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +-- [[ App Configuration ]] +config.defaultProtocolVersion = 4 + +--[[ Local Variables ]] +local delay1 = 3000 +local delay2 = 0 + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) + +common.Title("Test") +common.Step("Start SDL, HMI, connect Mobile, start Session, send StartService", common.startWithExtension, + { delay1, delay2, common.delayedStartServiceAckOldApp }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/019_2_GetVT_delayed_RAI_on_4th_protocol.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/019_2_GetVT_delayed_RAI_on_4th_protocol.lua new file mode 100644 index 0000000000..eeaca36a2b --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/019_2_GetVT_delayed_RAI_on_4th_protocol.lua @@ -0,0 +1,41 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to postpone sending of RAI response for app registered via 4th protocol +-- in case HMI responds with delay to VI.GetVehicleType request, HMI responds immediately to BC.GetSystemInfo request +-- +-- Steps: +-- 1. SDL requests BC.GetSystemInfo and VI.GetVehicleType to HMI after start +-- 2. App requests StartService(RPC) via 4th protocol +-- SDL does: +-- - Send StartServiceAck to mobile app right after receiving StartService request +-- 3. App requests RAI +-- SDL does: +-- - Postpone the sending of RAI response before receiving of BC.GetSystemInfo and VI.GetVehicleType responses +-- 4. HMI responds with delay to VI.GetVehicleType request and immediately to BC.GetSystemInfo request +-- SDL does: +-- - Send RAI response after receiving VI.GetVehicleType and BC.GetSystemInfo responses +-- - Provide the vehicle type info with parameter values received from HMI in BC.GetSystemInfo and +-- VI.GetVehicleType responses except systemHardwareVersion via RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +-- [[ App Configuration ]] +config.defaultProtocolVersion = 4 + +--[[ Local Variables ]] +local delay1 = 0 +local delay2 = 3000 + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) + +common.Title("Test") +common.Step("Start SDL, HMI, connect Mobile, start Session, send StartService", common.startWithExtension, + { delay1, delay2, common.delayedStartServiceAckOldApp }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) + diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/019_3_GetVT_GetSI_delayed_RAI_on_4th_protocol.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/019_3_GetVT_GetSI_delayed_RAI_on_4th_protocol.lua new file mode 100644 index 0000000000..893415699c --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/019_3_GetVT_GetSI_delayed_RAI_on_4th_protocol.lua @@ -0,0 +1,40 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to postpone sending of RAI response for app registered via 4th protocol +-- in case HMI responds with delay to VI.GetVehicleType and to BC.GetSystemInfo requests +-- +-- Steps: +-- 1. SDL requests BC.GetSystemInfo and VI.GetVehicleType to HMI after start +-- 2. App requests StartService(RPC) via 4th protocol +-- SDL does: +-- - Send StartServiceAck to mobile app right after receiving StartService request +-- 3. App requests RAI +-- SDL does: +-- - Postpone the sending of RAI response before receiving of BC.GetSystemInfo and VI.GetVehicleType responses +-- 4. HMI responds with delay to VI.GetVehicleType request and to BC.GetSystemInfo request +-- SDL does: +-- - Send RAI response after receiving VI.GetVehicleType and BC.GetSystemInfo responses +-- - Provide the vehicle type info with parameter values received from HMI in BC.GetSystemInfo and +-- VI.GetVehicleType responses except systemHardwareVersion via RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +-- [[ App Configuration ]] +config.defaultProtocolVersion = 4 + +--[[ Local Variables ]] +local delay1 = 2000 +local delay2 = 3000 + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) + +common.Title("Test") +common.Step("Start SDL, HMI, connect Mobile, start Session, send StartService", common.startWithExtension, + { delay1, delay2, common.delayedStartServiceAckOldApp }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/019_4_GetSI_new_ign_cycle_delayed_RAI_on_4th_protocol.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/019_4_GetSI_new_ign_cycle_delayed_RAI_on_4th_protocol.lua new file mode 100644 index 0000000000..8265b4e128 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/019_4_GetSI_new_ign_cycle_delayed_RAI_on_4th_protocol.lua @@ -0,0 +1,44 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to postpone sending of RAI response for app registered via 4th protocol +-- in case HMI responds with delay to BC.GetSystemInfo request, VI.GetVehicleType is not requested because +-- the data from VI.GetVehicleType have been cached in the previous ignition cycle +-- +-- Steps: +-- 1. SDL requests BC.GetSystemInfo to HMI after start +-- 2. App requests StartService(RPC) via 4th protocol +-- SDL does: +-- - Send StartServiceAck to mobile app right after receiving StartService request +-- 3. App requests RAI +-- SDL does: +-- - Postpone the sending of RAI response before receiving of BC.GetSystemInfo response +-- 4. HMI responds with delay to BC.GetSystemInfo request +-- SDL does: +-- - Send RAI response after receiving BC.GetSystemInfo response +-- - Provide systemSoftwareVersion value received from HMI in BC.GetSystemInfo response via RAI response to the app +-- - Provide the values for make, model, modelYear, trim parameters from the cache in RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +-- [[ App Configuration ]] +config.defaultProtocolVersion = 4 + +--[[ Local Variables ]] +local delay1 = 3000 +local delay2 = -1 +local hmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) +common.Step("Ignition off", common.ignitionOff) + +common.Title("Test") +common.Step("Start SDL, HMI, connect Mobile, start Session, send StartService", common.startWithExtension, + { delay1, delay2, common.delayedStartServiceAckOldApp }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/020_1_GetSI_delayed_RAI_on_5_3_protocol.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/020_1_GetSI_delayed_RAI_on_5_3_protocol.lua new file mode 100644 index 0000000000..cc4dd1608c --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/020_1_GetSI_delayed_RAI_on_5_3_protocol.lua @@ -0,0 +1,38 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to postpone sending of RAI response for app registered with +-- '5.3' protocol version in case HMI responds with delay to BC.GetSystemInfo request, +-- VI.GetVehicleType is also requested and HMI responds immediately to VI.GetVehicleType request +-- +-- Steps: +-- 1. SDL requests BC.GetSystemInfo and VI.GetVehicleType to HMI after start +-- 2. App requests StartService(RPC) with '5.3.0' protocol version +-- SDL does: +-- - Send StartServiceAck to mobile app right after receiving StartService request +-- 3. App requests RAI +-- SDL does: +-- - Postpone the sending of RAI response before receiving of BC.GetSystemInfo and VI.GetVehicleType responses +-- 4. HMI responds with delay to BC.GetSystemInfo request and immediately to VI.GetVehicleType request +-- SDL does: +-- - Send RAI response after receiving VI.GetVehicleType and BC.GetSystemInfo responses +-- - Provide the vehicle type info with parameter values received from HMI in BC.GetSystemInfo and +-- VI.GetVehicleType responses except systemHardwareVersion via RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local delay1 = 3000 +local delay2 = 0 + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) + +common.Title("Test") +common.Step("Start SDL, HMI, connect Mobile, start Session, send StartService", common.startWithExtension, + { delay1, delay2, common.delayedStartServiceAckOldApp }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/020_2_GetVT_delayed_RAI_on_5_3_protocol.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/020_2_GetVT_delayed_RAI_on_5_3_protocol.lua new file mode 100644 index 0000000000..d8f0e9419d --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/020_2_GetVT_delayed_RAI_on_5_3_protocol.lua @@ -0,0 +1,39 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to postpone sending of RAI response for app registered with +-- '5.3' protocol version in case HMI responds with delay to VI.GetVehicleType request, +-- HMI responds immediately to BC.GetSystemInfo request +-- +-- Steps: +-- 1. SDL requests BC.GetSystemInfo and VI.GetVehicleType to HMI after start +-- 2. App requests StartService(RPC) with '5.3.0' protocol version +-- SDL does: +-- - Send StartServiceAck to mobile app right after receiving StartService request +-- 3. App requests RAI +-- SDL does: +-- - Postpone the sending of RAI response before receiving of BC.GetSystemInfo and VI.GetVehicleType responses +-- 4. HMI responds with delay to VI.GetVehicleType request and immediately to BC.GetSystemInfo request +-- SDL does: +-- - Send RAI response after receiving VI.GetVehicleType and BC.GetSystemInfo responses +-- - Provide the vehicle type info with parameter values received from HMI in BC.GetSystemInfo and +-- VI.GetVehicleType responses except systemHardwareVersion via RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local delay1 = 0 +local delay2 = 3000 + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) + +common.Title("Test") +common.Step("Start SDL, HMI, connect Mobile, start Session, send StartService", common.startWithExtension, + { delay1, delay2, common.delayedStartServiceAckOldApp }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) + diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/020_3_GetVT_GetSI_delayed_RAI_on_5_3_protocol.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/020_3_GetVT_GetSI_delayed_RAI_on_5_3_protocol.lua new file mode 100644 index 0000000000..b89cea56c1 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/020_3_GetVT_GetSI_delayed_RAI_on_5_3_protocol.lua @@ -0,0 +1,37 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to postpone sending of RAI response for app registered with +-- '5.3' protocol version in case HMI responds with delay to VI.GetVehicleType and to BC.GetSystemInfo requests +-- +-- Steps: +-- 1. SDL requests BC.GetSystemInfo and VI.GetVehicleType to HMI after start +-- 2. App requests StartService(RPC) with '5.3.0' protocol version +-- SDL does: +-- - Send StartServiceAck to mobile app right after receiving StartService request +-- 3. App requests RAI +-- SDL does: +-- - Postpone the sending of RAI response before receiving of BC.GetSystemInfo and VI.GetVehicleType responses +-- 4. HMI responds with delay to VI.GetVehicleType request and to BC.GetSystemInfo request +-- SDL does: +-- - Send RAI response after receiving VI.GetVehicleType and BC.GetSystemInfo responses +-- - Provide the vehicle type info with parameter values received from HMI in BC.GetSystemInfo and +-- VI.GetVehicleType responses except systemHardwareVersion via RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local delay1 = 2000 +local delay2 = 3000 + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) + +common.Title("Test") +common.Step("Start SDL, HMI, connect Mobile, start Session, send StartService", common.startWithExtension, + { delay1, delay2, common.delayedStartServiceAckOldApp }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/020_4_GetSI_new_ign_cycle_delayed_RAI_on_5_3_protocol.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/020_4_GetSI_new_ign_cycle_delayed_RAI_on_5_3_protocol.lua new file mode 100644 index 0000000000..23049a9570 --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/020_4_GetSI_new_ign_cycle_delayed_RAI_on_5_3_protocol.lua @@ -0,0 +1,42 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL is able to postpone sending of RAI response for app registered with +-- '5.3' protocol version in case HMI responds with delay to BC.GetSystemInfo request, +-- VI.GetVehicleType is not requested because the data from VI.GetVehicleType have been cached +-- in the previous ignition cycle +-- +-- Steps: +-- 1. SDL requests BC.GetSystemInfo to HMI after start +-- 2. App requests StartService(RPC) with '5.3.0' protocol version +-- SDL does: +-- - Send StartServiceAck to mobile app right after receiving StartService request +-- 3. App requests RAI +-- SDL does: +-- - Postpone the sending of RAI response before receiving of BC.GetSystemInfo response +-- 4. HMI responds with delay to BC.GetSystemInfo request +-- SDL does: +-- - Send RAI response after receiving BC.GetSystemInfo response +-- - Provide systemSoftwareVersion value received from HMI in BC.GetSystemInfo response via RAI response to the app +-- - Provide the values for make, model, modelYear, trim parameters from the cache in RAI response to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local delay1 = 3000 +local delay2 = -1 +local hmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) +common.Step("Ignition off", common.ignitionOff) + +common.Title("Test") +common.Step("Start SDL, HMI, connect Mobile, start Session, send StartService", common.startWithExtension, + { delay1, delay2, common.delayedStartServiceAckOldApp }) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/021_No_VehicleTypeData_Ack_5.3_protocol.lua b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/021_No_VehicleTypeData_Ack_5.3_protocol.lua new file mode 100644 index 0000000000..6fc035df4d --- /dev/null +++ b/test_scripts/Protocol/Enable_OEM_exclusive_apps_support/021_No_VehicleTypeData_Ack_5.3_protocol.lua @@ -0,0 +1,46 @@ +--------------------------------------------------------------------------------------------------- +-- Proposal: https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0293-vehicle-type-filter.md +--------------------------------------------------------------------------------------------------- +-- Description: Check that SDL doesn't provide vehicle type data in StartServiceAck in case app is +-- registered with '5.3' protocol version +-- +-- Steps: +-- 1. HMI provides all vehicle type data in BC.GetSystemInfo(ccpu_version) +-- and VI.GetVehicleType(make, model, modelYear, trim) responses +-- 2. App requests StartService(RPC) via 5th protocol with '5.3.0' version +-- SDL does: +-- - Not provide vehicle type data parameters in StartServiceAck to the app +--------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]] +local common = require("test_scripts/Protocol/commonProtocol") + +--[[ Local Variables ]] +local hmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) + +--[[ Local Functions ]] +local function startRpcService() + local vehicleTypeData = common.getRpcServiceAckParams(hmiCap) + local reqParams = { protocolVersion = common.setStringBsonValue("5.3.0") } + local ackParams = {} + common.startServiceUnprotectedACK(1, common.serviceType.RPC, reqParams, ackParams) + :ValidIf(function(_, data) + local actPayload = common.bson_to_table(data.binaryData) + for param in pairs(vehicleTypeData) do + if actPayload[param] then + return false, "StartServiceAck contains unexpected '" .. param .. "' parameter" + end + end + return true + end) +end + +--[[ Scenario ]] +common.Title("Preconditions") +common.Step("Clean environment", common.preconditions) +common.Step("Start SDL, HMI, connect Mobile, start Session", common.start, { hmiCap }) + +common.Title("Test") +common.Step("Start RPC Service, No vehicle type data in StartServiceAck", startRpcService) + +common.Title("Postconditions") +common.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Protocol/commonProtocol.lua b/test_scripts/Protocol/commonProtocol.lua index 8e0cf5a719..5667d69979 100644 --- a/test_scripts/Protocol/commonProtocol.lua +++ b/test_scripts/Protocol/commonProtocol.lua @@ -9,6 +9,9 @@ local runner = require('user_modules/script_runner') local utils = require('user_modules/utils') local events = require("events") local bson = require('bson4lua') +local SDL = require('SDL') +local hmi_values = require("user_modules/hmi_values") +local atf_logger = require("atf_logger") --[[ General configuration parameters ]] config.defaultProtocolVersion = 5 @@ -27,6 +30,22 @@ common.cloneTable = utils.cloneTable common.testSettings = runner.testSettings common.Title = runner.Title common.Step = runner.Step +common.getDefaultHMITable = hmi_values.getDefaultHMITable +common.spairs = utils.spairs +common.ptsTable = actions.sdl.getPTS +common.getParams = actions.app.getParams +common.isTableEqual = utils.isTableEqual +common.failTestStep = actions.run.fail +common.getHMICapabilitiesFromFile = actions.sdl.getHMICapabilitiesFromFile +common.setHMICapabilitiesToFile = actions.sdl.setHMICapabilitiesToFile +common.createSession = actions.mobile.createSession +common.getHMIConnection = actions.hmi.getConnection +common.toString = utils.toString +common.wait = utils.wait +common.getMobileSession = actions.getMobileSession +common.tableToString = utils.tableToString +common.bson_to_table = bson.to_table +common.bson_to_bytes = bson.to_bytes common.bsonType = { DOUBLE = 0x01, @@ -38,19 +57,78 @@ common.bsonType = { INT64 = 0x12 } +local hmiDefaultCapabilities = common.getDefaultHMITable() +common.isCacheNotUsed = false + +common.vehicleTypeInfoParams = { + default = { + make = "Ford", + model = "Focus", + modelYear = "2015", + trim = "SEL", + ccpu_version = "12345_TV", + systemHardwareVersion = "V4567_GJK" + }, + custom = { + make = "OEM1", + model = "Mustang", + modelYear = "2020", + trim = "LES", + ccpu_version = "2020_TV", + systemHardwareVersion = "2020_GJK" + } +} + --[[ Tests Configuration ]] runner.testSettings.isSelfIncluded = false --[[ Functions ]] +function common.log(...) + local strBinaryData = "" + local function getTableSize(T) + local count = 0 + for _ in pairs(T) do count = count + 1 end + return count + end + local str = "[" .. atf_logger.formated_time(true) .. "]" + for _, a in pairs({...}) do + if type(a) == 'table' then + local i = 0 + for p, v in pairs(a) do + i = i + 1 + local endDelimiter = ",\n " + if i == getTableSize(a) then endDelimiter = "\n " end + local vv = v.value + if type(v.value) == 'table' then + local val = "" + local subEndDelimiter = ", " + for key, subv in pairs(v.value) do + if key == getTableSize(v.value) then subEndDelimiter = "" end + val = val .. subv.value .. subEndDelimiter + end + vv = "{ ".. val .." }" + end + strBinaryData = strBinaryData .. p .." : " .. vv .. endDelimiter + end + str = str .. " " .. "{\n " .. strBinaryData .. "}" + else + str = str .. " " .. a + end + end + utils.cprint(35, str) +end + function common.startServiceProtectedACK(pAppId, pServiceId, pRequestPayload, pResponsePayload) local mobSession = common.getMobileSession(pAppId) mobSession:StartSecureService(pServiceId, bson.to_bytes(pRequestPayload)) + common.log("MOB->SDL: App" ..pAppId.." StartSecureService(" ..pServiceId.. ")", pRequestPayload) mobSession:ExpectControlMessage(pServiceId, { frameInfo = common.frameInfo.START_SERVICE_ACK, encryption = true }) :ValidIf(function(_, data) local actPayload = bson.to_table(data.binaryData) + common.log("SDL->MOB: App" ..pAppId.." StartServiceAck(" ..pServiceId.. ")", actPayload) return compareValues(pResponsePayload, actPayload, "binaryData") end) @@ -67,7 +145,7 @@ end function common.startServiceProtectedNACK(pAppId, pServiceId, pRequestPayload, pResponsePayload) local mobSession = common.getMobileSession(pAppId) mobSession:StartSecureService(pServiceId, bson.to_bytes(pRequestPayload)) - mobSession:ExpectControlMessage(pServiceId, { + local ret = mobSession:ExpectControlMessage(pServiceId, { frameInfo = common.frameInfo.START_SERVICE_NACK, encryption = false }) @@ -75,6 +153,7 @@ function common.startServiceProtectedNACK(pAppId, pServiceId, pRequestPayload, p local actPayload = bson.to_table(data.binaryData) return compareValues(pResponsePayload, actPayload, "binaryData") end) + return ret end function common.startServiceUnprotectedACK(pAppId, pServiceId, pRequestPayload, pResponsePayload, pExtensionFunc) @@ -89,14 +168,19 @@ function common.startServiceUnprotectedACK(pAppId, pServiceId, pRequestPayload, binaryData = bson.to_bytes(pRequestPayload) } mobSession:Send(msg) - mobSession:ExpectControlMessage(pServiceId, { + common.log("MOB->SDL: App" ..pAppId.." StartService(" ..pServiceId.. ")", pRequestPayload) + local ret = mobSession:ExpectControlMessage(pServiceId, { frameInfo = common.frameInfo.START_SERVICE_ACK, encryption = false }) :ValidIf(function(_, data) + mobSession.hashCode = data.binaryData + mobSession.sessionId = data.sessionId local actPayload = bson.to_table(data.binaryData) + common.log("SDL->MOB: App" ..pAppId.." StartServiceAck(" ..pServiceId.. ")", actPayload) return compareValues(pResponsePayload, actPayload, "binaryData") end) + return ret end function common.startServiceUnprotectedNACK(pAppId, pServiceId, pRequestPayload, pResponsePayload, pExtensionFunc) @@ -111,7 +195,7 @@ function common.startServiceUnprotectedNACK(pAppId, pServiceId, pRequestPayload, binaryData = bson.to_bytes(pRequestPayload) } mobSession:Send(msg) - mobSession:ExpectControlMessage(pServiceId, { + local ret = mobSession:ExpectControlMessage(pServiceId, { frameInfo = common.frameInfo.START_SERVICE_NACK, encryption = false }) @@ -119,6 +203,7 @@ function common.startServiceUnprotectedNACK(pAppId, pServiceId, pRequestPayload, local actPayload = bson.to_table(data.binaryData) return compareValues(pResponsePayload, actPayload, "binaryData") end) + return ret end function common.registerAppUpdatedProtocolVersion(hasPTU) @@ -130,7 +215,7 @@ function common.registerAppUpdatedProtocolVersion(hasPTU) frameInfo = constants.FRAME_INFO.START_SERVICE, sessionId = session.sessionId, encryption = false, - binaryData = bson.to_bytes({ protocolVersion = { type = common.bsonType.STRING, value = "5.3.0" }}) + binaryData = bson.to_bytes({ protocolVersion = { type = common.bsonType.STRING, value = "5.4.0" }}) } session:Send(msg) @@ -198,4 +283,329 @@ function common.setProtectedServicesInIni() common.sdl.setSDLIniParameter("ForceProtectedService", "0x0A, 0x0B") end +function common.getVehicleTypeDataFromInitialCap() + local initialCap = SDL.HMICap.get() + return initialCap.VehicleInfo.vehicleType +end + +function common.getVehicleTypeDataFromCachedCap() + local initialCap = SDL.HMICapCache.get() + return initialCap.VehicleInfo.vehicleType +end + +function common.getCapWithMandatoryExp() + local initialCap = common.cloneTable(hmiDefaultCapabilities) + initialCap.VehicleInfo.GetVehicleType.mandatory = true + initialCap.BasicCommunication.GetSystemInfo.mandatory = true + return initialCap +end + +function common.setStringBsonValue(pValue) + return { type = common.bsonType.STRING, value = pValue } +end + +function common.getRpcServiceAckParamsFromStruct(pVehicleTypeInfoParams) + local ackParams = { + make = common.setStringBsonValue(pVehicleTypeInfoParams.make), + model = common.setStringBsonValue(pVehicleTypeInfoParams.model), + modelYear = common.setStringBsonValue(pVehicleTypeInfoParams.modelYear), + trim = common.setStringBsonValue(pVehicleTypeInfoParams.trim), + systemSoftwareVersion = common.setStringBsonValue(pVehicleTypeInfoParams.ccpu_version), + systemHardwareVersion = common.setStringBsonValue(pVehicleTypeInfoParams.systemHardwareVersion) + } + for key, KeyValue in pairs(ackParams) do + if not KeyValue.value then + ackParams[key] = nil + end + end + return ackParams +end + +function common.getRpcServiceAckParams(pHMIcap) + local vehicleTypeInfoParams = {} + for k, v in pairs(pHMIcap.VehicleInfo.GetVehicleType.params.vehicleType) do + vehicleTypeInfoParams[k] = v + end + for k, v in pairs(pHMIcap.BasicCommunication.GetSystemInfo.params) do + vehicleTypeInfoParams[k] = v + end + return common.getRpcServiceAckParamsFromStruct(vehicleTypeInfoParams) +end + +function common.endRPCService() + local mobSession = common.getMobileSession(1) + local msg = { + serviceType = common.serviceType.RPC, + frameType = constants.FRAME_TYPE.CONTROL_FRAME, + frameInfo = constants.FRAME_INFO.END_SERVICE, + binaryData = mobSession.hashCode, + encryption = false + } + mobSession:Send(msg) + + local event = actions.run.createEvent() + -- prepare event to expect + event.matches = function(_, data) + return data.frameType == constants.FRAME_TYPE.CONTROL_FRAME and + data.serviceType == common.serviceType.RPC and + (data.frameInfo == constants.FRAME_INFO.END_SERVICE_ACK or + data.frameInfo == constants.FRAME_INFO.END_SERVICE_NACK) + end + + mobSession:ExpectEvent(event, "EndService ACK") + :ValidIf(function(_, data) + if data.frameInfo == constants.FRAME_INFO.END_SERVICE_ACK then return true + else return false, "EndService NACK received" end + end) +end + +function common.registerAppEx(responseExpectedData, pAppId) + pAppId = pAppId or 1 + local session = common.getMobileSession(pAppId) + local corId = session:SendRPC("RegisterAppInterface", common.app.getParams(pAppId)) + + common.hmi.getConnection():ExpectNotification("BasicCommunication.OnAppRegistered", + { application = { appName = common.app.getParams(pAppId).appName } }) + :Do(function(_, d1) + common.app.setHMIId(d1.params.application.appID, pAppId) + end) + + local responseData = { success = true, resultCode = "SUCCESS" } + responseData.systemSoftwareVersion = responseExpectedData.ccpu_version + local vehicleType = { + make = responseExpectedData.make, + model = responseExpectedData.model, + modelYear = responseExpectedData.modelYear, + trim = responseExpectedData.trim + } + + local ret = session:ExpectResponse(corId, responseData) + :Do(function() + session:ExpectNotification("OnHMIStatus", + { hmiLevel = "NONE", audioStreamingState = "NOT_AUDIBLE", systemContext = "MAIN" }) + end) + :ValidIf(function(_, data) + local isResult = true + local errorMsg = "" + if data.systemHardwareVersion then + errorMsg = errorMsg .. "\n RAI response contains unexpected systemHardwareVersion parameter" + isResult = false + end + if not responseExpectedData.systemSoftwareVersion and data.systemSoftwareVersion then + errorMsg = errorMsg .. "\n RAI response contains unexpected systemSoftwareVersion parameter" + isResult = false + end + if utils.isTableEqual(data.payload.vehicleType, vehicleType) == false then + errorMsg = "\nData from vehicleType structure in RAI response does not correspond to expected one" .. + "\nExpected result:\n" .. utils.tableToString(vehicleType) .. + "\nActual result:\n" .. utils.tableToString(data.payload.vehicleType) + isResult = false + end + return isResult, errorMsg + end) + return ret +end + +function common.setHMIcap(pVehicleTypeData) + local hmicap = common.getCapWithMandatoryExp() + local getVehicleTypeParams = hmicap.VehicleInfo.GetVehicleType.params.vehicleType + getVehicleTypeParams.make = pVehicleTypeData.make + getVehicleTypeParams.model = pVehicleTypeData.model + getVehicleTypeParams.modelYear = pVehicleTypeData.modelYear + getVehicleTypeParams.trim = pVehicleTypeData.trim + + local getSystemInfoParams = hmicap.BasicCommunication.GetSystemInfo.params + getSystemInfoParams.ccpu_version = pVehicleTypeData.ccpu_version + getSystemInfoParams.systemHardwareVersion = pVehicleTypeData.systemHardwareVersion + + return hmicap +end + +function common.ignitionOff() + local hmiConnection = actions.hmi.getConnection() + local mobileConnection = actions.mobile.getConnection() + config.ExitOnCrash = false + local timeout = 5000 + local function removeSessions() + for i = 1, actions.mobile.getAppsCount() do + actions.mobile.deleteSession(i) + end + end + local event = events.Event() + event.matches = function(event1, event2) return event1 == event2 end + mobileConnection:ExpectEvent(event, "SDL shutdown") + :Do(function() + removeSessions() + StopSDL() + config.ExitOnCrash = true + end) + hmiConnection:SendNotification("BasicCommunication.OnExitAllApplications", { reason = "SUSPEND" }) + hmiConnection:ExpectNotification("BasicCommunication.OnSDLPersistenceComplete") + :Do(function() + hmiConnection:SendNotification("BasicCommunication.OnExitAllApplications",{ reason = "IGNITION_OFF" }) + for i = 1, actions.mobile.getAppsCount() do + actions.mobile.getSession(i):ExpectNotification("OnAppInterfaceUnregistered", { reason = "IGNITION_OFF" }) + end + end) + hmiConnection:ExpectNotification("BasicCommunication.OnAppUnregistered", { unexpectedDisconnect = false }) + :Times(actions.mobile.getAppsCount()) + local isSDLShutDownSuccessfully = false + hmiConnection:ExpectNotification("BasicCommunication.OnSDLClose") + :Do(function() + utils.cprint(35, "SDL was shutdown successfully") + isSDLShutDownSuccessfully = true + mobileConnection:RaiseEvent(event, event) + end) + :Timeout(timeout) + local function forceStopSDL() + if isSDLShutDownSuccessfully == false then + utils.cprint(35, "SDL was shutdown forcibly") + mobileConnection:RaiseEvent(event, event) + end + end + actions.run.runAfter(forceStopSDL, timeout + 500) +end + +local postconditionsOrig = ssl.postconditions +function common.postconditions() + postconditionsOrig() + actions.mobile.deleteSession() +end + +function common.startRpcService(pAckParams, pAppId) + pAppId = pAppId or 1 + local reqParams = { protocolVersion = common.setStringBsonValue("5.4.0") } + return common.startServiceUnprotectedACK(pAppId, common.serviceType.RPC, reqParams, pAckParams) +end + +local function registerExpFor_GetSI_and_GetVT(pGetSIparams, pGetVTparams, pDelayGetSI, pDelayGetVT, pTSs) + common.hmi.getConnection():ExpectRequest("BasicCommunication.GetSystemInfo") + :Do(function(_, data) + local function response() + pTSs.ts_get_si = timestamp() + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", pGetSIparams) + end + common.run.runAfter(response, pDelayGetSI) + end) + + local times_GetVT = 1 + if pDelayGetVT == -1 then times_GetVT = 0 end + common.hmi.getConnection():ExpectRequest("VehicleInfo.GetVehicleType") + :Do(function(_, data) + local function response() + pTSs.ts_get_vt = timestamp() + common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", pGetVTparams) + end + if pDelayGetVT ~= -1 then common.run.runAfter(response, pDelayGetVT) end + end) + :Times(times_GetVT) +end + +function common.startWithExtension(pDelayGetSI, pDelayGetVT, pExtensionFunc) + local hmiCap = common.setHMIcap(common.vehicleTypeInfoParams.default) + local rpcServiceAckParams = common.getRpcServiceAckParams(hmiCap) + local mobileConnectionDelay = 50 + common.init.SDL() + :Do(function() + common.init.HMI() + :Do(function() + local ts = {} + local getSIparams = hmiCap.BasicCommunication.GetSystemInfo.params + local getVTparams = hmiCap.VehicleInfo.GetVehicleType.params + hmiCap.VehicleInfo.GetVehicleType = nil + hmiCap.BasicCommunication.GetSystemInfo = nil + registerExpFor_GetSI_and_GetVT(getSIparams, getVTparams, pDelayGetSI, pDelayGetVT, ts) + common.init.HMI_onReady(hmiCap) + common.run.runAfter(function() + common.init.connectMobile() + :Do(function() + pExtensionFunc(pDelayGetVT, ts, rpcServiceAckParams) + end) + end, mobileConnectionDelay) + end) + end) +end + +function common.delayedStartServiceAckNewApp(pDelayGetVT, pTS, pRpcServiceAckParams) + config.defaultProtocolVersion = 5 + + common.log("StartService") + common.startRpcService(pRpcServiceAckParams) + :ValidIf(function() + common.log("StartServiceAck") + if pTS.ts_get_si == nil then + return false, "StartServiceAck received before receiving of GetSystemInfo from HMI" + end + if pTS.ts_get_vt == nil and pDelayGetVT ~= -1 then + return false, "StartServiceAck received before receiving of GetVehicleType from HMI" + end + return true + end) + :Do(function() + common.log("RAI") + local ts_req = timestamp() + common.registerAppEx(common.vehicleTypeInfoParams.default) + :ValidIf(function() + local tolerance = 750 + local ts_res = timestamp() + local act_delay = ts_res - ts_req + common.log("RAIResponse", act_delay) + if act_delay > tolerance then + return false, "RAI response is expected right after RAI request, actual delay: " + .. act_delay .. "ms" + end + return true + end) + end) +end + +function common.delayedStartServiceAckOldApp(pDelayGetVT, pTS) + local startServiceFunc = function() + if config.defaultProtocolVersion == 4 then + return common.getMobileSession():StartService(common.serviceType.RPC) + elseif config.defaultProtocolVersion == 5 then + local params = { protocolVersion = common.setStringBsonValue("5.3.0") } + return common.startServiceUnprotectedACK(1, common.serviceType.RPC, params, params) + end + end + + local ts_req = timestamp() + common.log("StartService") + startServiceFunc() + :Do(function() + common.log("RAI") + common.registerAppEx(common.vehicleTypeInfoParams.default) + :ValidIf(function() + common.log("RAIResponse") + if pTS.ts_get_si == nil then + return false, "RAI response received before receiving of GetSystemInfo from HMI" + end + if pTS.ts_get_vt == nil and pDelayGetVT ~= -1 then + return false, "RAI response received before receiving of GetVehicleType from HMI" + end + return true + end) + end) + :ValidIf(function() + local tolerance = 750 + local ts_res = timestamp() + local act_delay = ts_res - ts_req + common.log("StartServiceAck", act_delay) + if act_delay > tolerance then + return false, "StartServiceAck is expected right after StartService request, actual delay: " + .. act_delay .. "ms" + end + return true + end) +end + +function common.updateHMICapabilitiesFile(pVehicleTypeData) + local hmiCapTbl = common.getHMICapabilitiesFromFile() + hmiCapTbl.VehicleInfo.vehicleType.make = pVehicleTypeData.make + hmiCapTbl.VehicleInfo.vehicleType.model = pVehicleTypeData.model + hmiCapTbl.VehicleInfo.vehicleType.modelYear = pVehicleTypeData.modelYear + hmiCapTbl.VehicleInfo.vehicleType.trim = pVehicleTypeData.trim + common.setHMICapabilitiesToFile(hmiCapTbl) +end + return common diff --git a/test_scripts/Resumption/Handling_errors_from_HMI/002_successful_resumption_other_successful_result_codes.lua b/test_scripts/Resumption/Handling_errors_from_HMI/002_successful_resumption_other_successful_result_codes.lua index 76004ecd5b..cf79631f05 100644 --- a/test_scripts/Resumption/Handling_errors_from_HMI/002_successful_resumption_other_successful_result_codes.lua +++ b/test_scripts/Resumption/Handling_errors_from_HMI/002_successful_resumption_other_successful_result_codes.lua @@ -13,7 +13,7 @@ -- - start resumption process -- - send set of requests to HMI -- 4. HMI responds with any resultCode to each request: --- "WARNINGS", "RETRY", "SAVED", "WRONG_LANGUAGE", "UNSUPPORTED_RESOURCE" +-- "WARNINGS", "RETRY", "SAVED", "WRONG_LANGUAGE", "UNSUPPORTED_RESOURCE", "TRUNCATED_DATA" -- SDL does: -- - process responses from HMI -- - restore all persistent data @@ -29,7 +29,7 @@ runner.testSettings.isSelfIncluded = false -- [[ Local Variables ]] local successCodes = { - "WARNINGS", "RETRY", "SAVED", "WRONG_LANGUAGE", "UNSUPPORTED_RESOURCE" + "WARNINGS", "RETRY", "SAVED", "WRONG_LANGUAGE", "UNSUPPORTED_RESOURCE", "TRUNCATED_DATA" } -- [[ Local Function ]] local function setResponseCode(pCode) diff --git a/test_scripts/Resumption/Handling_errors_from_HMI/027_resume_all_data_with_one_error_rpc_unexpected_disconnect_different_resultCodes.lua b/test_scripts/Resumption/Handling_errors_from_HMI/027_resume_all_data_with_one_error_rpc_unexpected_disconnect_different_resultCodes.lua index 56891c5650..98f0f7172e 100644 --- a/test_scripts/Resumption/Handling_errors_from_HMI/027_resume_all_data_with_one_error_rpc_unexpected_disconnect_different_resultCodes.lua +++ b/test_scripts/Resumption/Handling_errors_from_HMI/027_resume_all_data_with_one_error_rpc_unexpected_disconnect_different_resultCodes.lua @@ -44,7 +44,6 @@ local resultCodes = { "NO_APPS_REGISTERED", "NO_DEVICES_CONNECTED", "USER_DISALLOWED", - "TRUNCATED_DATA", "READ_ONLY" } @@ -66,7 +65,7 @@ local function reRegisterApp(pAppId, pErrorCode) end) common.getHMIConnection():ExpectRequest("UI.AddSubMenu",common.resumptionData[pAppId].addSubMenu.UI) :Do(function(_, data) - common.getHMIConnection():SendError(data.id, data.method, pErrorCode, "info message") + common.getHMIConnection():SendError(data.id, data.method, pErrorCode) end) common.resumptionFullHMILevel(pAppId) diff --git a/test_scripts/Security/SSLHandshakeFlow/common.lua b/test_scripts/Security/SSLHandshakeFlow/common.lua index f55b6b88f6..a56ccfb1f3 100644 --- a/test_scripts/Security/SSLHandshakeFlow/common.lua +++ b/test_scripts/Security/SSLHandshakeFlow/common.lua @@ -62,7 +62,7 @@ function m.allowSDL() return m.getHMIConnection():ExpectEvent(event, "Allow SDL event") end -function m.start() +function m.start(pHMIParams, isCacheUsed) test:runSDL() SDL.WaitForSDLStart(test) :Do(function() @@ -73,7 +73,7 @@ function m.start() actions.getHMIConnection():ExpectResponse(rid) :Do(function() utils.cprint(35, "HMI initialized") - test:initHMI_onReady() + test:initHMI_onReady(pHMIParams, isCacheUsed) :Do(function() utils.cprint(35, "HMI is ready") actions.getHMIConnection():SendNotification("BasicCommunication.OnSystemTimeReady") diff --git a/test_scripts/Smoke/API/003_AddCommand_PositiveCase_SUCCESS.lua b/test_scripts/Smoke/API/003_AddCommand_PositiveCase_SUCCESS.lua index c73d110c7e..43a2e42b27 100644 --- a/test_scripts/Smoke/API/003_AddCommand_PositiveCase_SUCCESS.lua +++ b/test_scripts/Smoke/API/003_AddCommand_PositiveCase_SUCCESS.lua @@ -53,7 +53,9 @@ local requestParams = { cmdID = 11, menuParams = { position = 0, - menuName ="Commandpositive" + menuName = "Commandpositive", + secondaryText = "Secondary", + tertiaryText = "Tertiary" }, vrCommands = { "VRCommandonepositive", @@ -61,15 +63,20 @@ local requestParams = { }, grammarID = 1, cmdIcon = { - value ="icon.png", - imageType ="DYNAMIC" + value = "icon.png", + imageType = "DYNAMIC" + }, + secondaryImage = { + value = "icon.png", + imageType = "DYNAMIC" } } local responseUiParams = { cmdID = requestParams.cmdID, cmdIcon = requestParams.cmdIcon, - menuParams = requestParams.menuParams + menuParams = requestParams.menuParams, + secondaryImage = requestParams.secondaryImage } local responseVrParams = { @@ -90,6 +97,7 @@ local function addCommand(pParams) pParams.responseUiParams.appID = common.getHMIAppId() pParams.responseUiParams.cmdIcon.value = common.getPathToFileInAppStorage("icon.png") + pParams.responseUiParams.secondaryImage.value = common.getPathToFileInAppStorage("icon.png") common.getHMIConnection():ExpectRequest("UI.AddCommand", pParams.responseUiParams) :Do(function(_, data) common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) diff --git a/test_scripts/Smoke/API/005_AddSubMenu_PositiveCase_SUCCESS.lua b/test_scripts/Smoke/API/005_AddSubMenu_PositiveCase_SUCCESS.lua index a01ebe44fe..d76199663b 100644 --- a/test_scripts/Smoke/API/005_AddSubMenu_PositiveCase_SUCCESS.lua +++ b/test_scripts/Smoke/API/005_AddSubMenu_PositiveCase_SUCCESS.lua @@ -35,17 +35,39 @@ local common = require('test_scripts/Smoke/commonSmoke') runner.testSettings.isSelfIncluded = false --[[ Local Variables ]] +local putFileParams = { + requestParams = { + syncFileName = 'icon.png', + fileType = "GRAPHIC_PNG", + persistentFile = false, + systemFile = false + }, + filePath = "files/icon.png" +} + local requestParams = { menuID = 1000, position = 500, - menuName ="SubMenupositive" + menuName ="SubMenupositive", + secondaryText = "Secondary", + tertiaryText = "Tertiary", + secondaryImage = { + value = "icon.png", + imageType = "DYNAMIC" + } } local responseUiParams = { menuID = requestParams.menuID, menuParams = { position = requestParams.position, - menuName = requestParams.menuName + menuName = requestParams.menuName, + secondaryText = requestParams.secondaryText, + tertiaryText = requestParams.tertiaryText + }, + secondaryImage = { + value = "icon.png", + imageType = "DYNAMIC" } } @@ -59,6 +81,7 @@ local function addSubMenu(pParams) local cid = common.getMobileSession():SendRPC("AddSubMenu", pParams.requestParams) pParams.responseUiParams.appID = common.getHMIAppId() + pParams.responseUiParams.secondaryImage.value = common.getPathToFileInAppStorage("icon.png") common.getHMIConnection():ExpectRequest("UI.AddSubMenu", pParams.responseUiParams) :Do(function(_, data) common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) @@ -75,6 +98,7 @@ runner.Step("Update Preloaded PT", common.updatePreloadedPT) runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) runner.Step("Register App", common.registerApp) runner.Step("Activate App", common.activateApp) +runner.Step("Upload icon file", common.putFile, { putFileParams }) runner.Title("Test") runner.Step("AddSubMenu Positive Case", addSubMenu, { allParams }) diff --git a/test_scripts/Smoke/API/014_SetMediaClockTimer_PositiveCase_SUCCESS.lua b/test_scripts/Smoke/API/014_SetMediaClockTimer_PositiveCase_SUCCESS.lua index 2e797207d1..9d3b4bf06e 100644 --- a/test_scripts/Smoke/API/014_SetMediaClockTimer_PositiveCase_SUCCESS.lua +++ b/test_scripts/Smoke/API/014_SetMediaClockTimer_PositiveCase_SUCCESS.lua @@ -47,7 +47,7 @@ local requestParams = { }, endTime = { hours = 0, - minutes = 1 , + minutes = 1, seconds = 35 } } @@ -62,6 +62,7 @@ local function setMediaClockTimer(pParams, pMode, pIndicator) end local cid = common.getMobileSession():SendRPC("SetMediaClockTimer", params) params.appID = common.getHMIAppId() + params.countRate = 1.0 common.getHMIConnection():ExpectRequest("UI.SetMediaClockTimer", params) :Do(function(_, data) common.getHMIConnection():SendResponse(data.id, data.method, "SUCCESS", {}) @@ -80,8 +81,8 @@ runner.Step("Activate App", common.activateApp) runner.Title("Test") for _, value in pairs (updateMode) do for _, value2 in pairs (indicator) do - runner.Step("SetMediaClockTimer Positive Case with udate mode " .. value - .. " " .. value2, setMediaClockTimer, { requestParams,value,value2 }) + runner.Step("SetMediaClockTimer Positive Case with update mode " .. value + .. " " .. value2, setMediaClockTimer, { requestParams, value, value2 }) end end diff --git a/test_scripts/Smoke/API/020_SetDisplayLayout_PositiveCase_SUCCESS.lua b/test_scripts/Smoke/API/020_SetDisplayLayout_PositiveCase_SUCCESS.lua index c18d4382f5..650e294656 100644 --- a/test_scripts/Smoke/API/020_SetDisplayLayout_PositiveCase_SUCCESS.lua +++ b/test_scripts/Smoke/API/020_SetDisplayLayout_PositiveCase_SUCCESS.lua @@ -145,10 +145,8 @@ local function getDisplayCapTextFieldsValues() "statusBar", "tertiaryText", "totalDistance", - -- "notificationText", - -- "navigationText", - -- "timeToDestination", - -- "turnText" + "timeToDestination", + "turnText" } local values = { } for _, v in pairs(names) do diff --git a/test_scripts/Smoke/API/028_AlertManeuver_PositiveCase_SUCCESS.lua b/test_scripts/Smoke/API/028_AlertManeuver_PositiveCase_SUCCESS.lua index 9d5f5138f1..c89b23021b 100644 --- a/test_scripts/Smoke/API/028_AlertManeuver_PositiveCase_SUCCESS.lua +++ b/test_scripts/Smoke/API/028_AlertManeuver_PositiveCase_SUCCESS.lua @@ -111,6 +111,7 @@ local allParams = { --[[ Local Functions ]] local function alertManeuver(pParams) local cid = common.getMobileSession():SendRPC("AlertManeuver", pParams.requestParams) + pParams.responseNaviParams.appID = common.getHMIAppId() common.getHMIConnection():ExpectRequest("Navigation.AlertManeuver", pParams.responseNaviParams) :Do(function(_, data) local function alertResp() @@ -118,6 +119,7 @@ local function alertManeuver(pParams) end common.runAfter(alertResp, 2000) end) + pParams.responseTtsParams.appID = common.getHMIAppId() common.getHMIConnection():ExpectRequest("TTS.Speak", pParams.responseTtsParams) :Do(function(_, data) common.getHMIConnection():SendNotification("TTS.Started") diff --git a/test_scripts/Smoke/API/040_SetMediaClockTimer_Non_Media_PositiveCase_SUCCESS.lua b/test_scripts/Smoke/API/040_SetMediaClockTimer_Non_Media_PositiveCase_SUCCESS.lua index 791830db55..7b57f21e29 100644 --- a/test_scripts/Smoke/API/040_SetMediaClockTimer_Non_Media_PositiveCase_SUCCESS.lua +++ b/test_scripts/Smoke/API/040_SetMediaClockTimer_Non_Media_PositiveCase_SUCCESS.lua @@ -49,7 +49,7 @@ local requestParams = { }, endTime = { hours = 0, - minutes = 1 , + minutes = 1, seconds = 35 } } @@ -79,8 +79,8 @@ runner.Step("Activate App", common.activateApp) runner.Title("Test") for _, value in pairs (updateMode) do for _, value2 in pairs (indicator) do - runner.Step("SetMediaClockTimer Non Media Positive Case with udate mode " .. value - .. " " .. value2, SetMediaClockTimer, { requestParams,value,value2 }) + runner.Step("SetMediaClockTimer Non Media Positive Case with update mode " .. value + .. " " .. value2, SetMediaClockTimer, { requestParams, value, value2 }) end end diff --git a/test_scripts/Smoke/API/044_AlertManeuver_Non_Media_PositiveCase_SUCCESS.lua b/test_scripts/Smoke/API/044_AlertManeuver_Non_Media_PositiveCase_SUCCESS.lua index 1d5387cc7d..b735db3cf8 100644 --- a/test_scripts/Smoke/API/044_AlertManeuver_Non_Media_PositiveCase_SUCCESS.lua +++ b/test_scripts/Smoke/API/044_AlertManeuver_Non_Media_PositiveCase_SUCCESS.lua @@ -113,6 +113,7 @@ local allParams = { --[[ Local Functions ]] local function alertManeuver(pParams) local cid = common.getMobileSession():SendRPC("AlertManeuver", pParams.requestParams) + pParams.responseNaviParams.appID = common.getHMIAppId() common.getHMIConnection():ExpectRequest("Navigation.AlertManeuver", pParams.responseNaviParams) :Do(function(_, data) local function alertResp() @@ -120,6 +121,7 @@ local function alertManeuver(pParams) end common.runAfter(alertResp, 2000) end) + pParams.responseTtsParams.appID = common.getHMIAppId() common.getHMIConnection():ExpectRequest("TTS.Speak", pParams.responseTtsParams) :Do(function(_, data) common.getHMIConnection():SendNotification("TTS.Started") diff --git a/test_scripts/Smoke/API/048_GetSystemCapabilityRequest_SUCCESS.lua b/test_scripts/Smoke/API/048_GetSystemCapabilityRequest_SUCCESS.lua index 734fb74f54..4e4e6fb705 100644 --- a/test_scripts/Smoke/API/048_GetSystemCapabilityRequest_SUCCESS.lua +++ b/test_scripts/Smoke/API/048_GetSystemCapabilityRequest_SUCCESS.lua @@ -54,7 +54,8 @@ local videoCapabilities = { protocol="RAW", codec="H264" }}, - hapticSpatialDataSupported= false + hapticSpatialDataSupported= false, + preferredFPS = 15 }, systemCapabilityType="VIDEO_STREAMING" } diff --git a/test_scripts/Smoke/API/056_SendHapticData_PositiveCase_SUCCESS.lua b/test_scripts/Smoke/API/056_SendHapticData_PositiveCase_SUCCESS.lua new file mode 100644 index 0000000000..710d9a1819 --- /dev/null +++ b/test_scripts/Smoke/API/056_SendHapticData_PositiveCase_SUCCESS.lua @@ -0,0 +1,65 @@ +--------------------------------------------------------------------------------------------------- +-- User story: Smoke +-- Use case: SendHapticData +-- Item: Happy path +-- +-- Requirement summary: +-- [SendHapticData] SUCCESS: getting SUCCESS:UI.SendHapticData() +-- +-- Description: +-- Mobile application sends valid SendHapticData request with valid parameters to SDL + +-- Pre-conditions: +-- a. HMI and SDL are started +-- b. Mobile app is registered and activated on SDL +-- c. Mobile app is currently Full HMI level + +-- Steps: +-- 1. Mobile app requests SendHapticData with valid parameters +-- 2. HMI receives UI.SendHapticData request and responds with SUCCESS + +-- Expected: +-- SDL responds with (resultCode: SUCCESS, success:true) to mobile application +--------------------------------------------------------------------------------------------------- + +--[[ Required Shared libraries ]] +local runner = require('user_modules/script_runner') +local common = require('test_scripts/Smoke/commonSmoke') + +--[[ Test Configuration ]] +runner.testSettings.isSelfIncluded = false + +--[[ Local Variables ]] +local hapticData = { + hapticRectData = { + { id = 1, rect = { x = 1, y = 1.5, width = 1, height = 1.5 } } + } +} + +--[[ Local Functions ]] +local function sendHapticData() + local mobSession = common.getMobileSession() + local hmi = common.getHMIConnection() + local cid = mobSession:SendRPC("SendHapticData", hapticData) + local hmiData = common.cloneTable(hapticData) + hmiData.appID = common.getHMIAppId() + hmi:ExpectRequest("UI.SendHapticData", hmiData) + :Do(function(_, data) + hmi:SendResponse(data.id, data.method, "SUCCESS") + end) + mobSession:ExpectResponse(cid, { success = true, resultCode = "SUCCESS" }) +end + +--[[ Scenario ]] +runner.Title("Preconditions") +runner.Step("Clean environment", common.preconditions) +runner.Step("Update Preloaded PT", common.updatePreloadedPT) +runner.Step("Start SDL, HMI, connect Mobile, start Session", common.start) +runner.Step("RAI", common.registerApp) +runner.Step("Activate App", common.activateApp) + +runner.Title("Test") +runner.Step("SendHapticData Positive Case", sendHapticData) + +runner.Title("Postconditions") +runner.Step("Stop SDL", common.postconditions) diff --git a/test_scripts/Smoke/HeartBeat/001_HeartBeat_App_does_not_send_HB_and_does_not_respond.lua b/test_scripts/Smoke/HeartBeat/001_HeartBeat_App_does_not_send_HB_and_does_not_respond.lua index 51326017a3..7e6866046c 100644 --- a/test_scripts/Smoke/HeartBeat/001_HeartBeat_App_does_not_send_HB_and_does_not_respond.lua +++ b/test_scripts/Smoke/HeartBeat/001_HeartBeat_App_does_not_send_HB_and_does_not_respond.lua @@ -32,10 +32,10 @@ config.defaultProtocolVersion = 3 --[[ Local Variables ]] local HBParams_1 = { - activateHeartbeat = false, + activateHeartbeat = true, sendHeartbeatToSDL = false, answerHeartbeatFromSDL = false, - ignoreSDLHeartBeatACK = false, + ignoreSDLHeartBeatACK = true, } local HBParams_2 = { diff --git a/test_scripts/Smoke/commonSmoke.lua b/test_scripts/Smoke/commonSmoke.lua index 3bacb0aeeb..b61b26be12 100644 --- a/test_scripts/Smoke/commonSmoke.lua +++ b/test_scripts/Smoke/commonSmoke.lua @@ -77,8 +77,8 @@ function common.updatePreloadedPT() pt.policy_table.functional_groupings["DataConsent-2"].rpcs = json.null local additionalRPCs = { "SendLocation", "SubscribeVehicleData", "UnsubscribeVehicleData", "GetVehicleData", "UpdateTurnList", - "AlertManeuver", "DialNumber", "ReadDID", "GetDTCs", "ShowConstantTBT", "Alert", "SubtleAlert", - "OnSubtleAlertPressed" + "AlertManeuver", "DialNumber", "ReadDID", "GetDTCs", "ShowConstantTBT", "Alert", "SubtleAlert", + "OnSubtleAlertPressed", "SendHapticData" } pt.policy_table.functional_groupings.NewTestCaseGroup = { rpcs = { } } for _, v in pairs(additionalRPCs) do diff --git a/test_scripts/TheSameApp/Protocol/003_Protocol_GetSystemCapability_from_2_apps_with_same_appName_diff_appID_DIFF_devices.lua b/test_scripts/TheSameApp/Protocol/003_Protocol_ShowAppMenu_from_2_apps_with_same_appName_diff_appID_DIFF_devices.lua similarity index 91% rename from test_scripts/TheSameApp/Protocol/003_Protocol_GetSystemCapability_from_2_apps_with_same_appName_diff_appID_DIFF_devices.lua rename to test_scripts/TheSameApp/Protocol/003_Protocol_ShowAppMenu_from_2_apps_with_same_appName_diff_appID_DIFF_devices.lua index d0a095ab04..c2bebd3c87 100644 --- a/test_scripts/TheSameApp/Protocol/003_Protocol_GetSystemCapability_from_2_apps_with_same_appName_diff_appID_DIFF_devices.lua +++ b/test_scripts/TheSameApp/Protocol/003_Protocol_ShowAppMenu_from_2_apps_with_same_appName_diff_appID_DIFF_devices.lua @@ -46,7 +46,7 @@ local appParams = { appID = "0001", fullAppID = "0000001" }, - [2] = { syncMsgVersion = { majorVersion = 5, minorVersion = 0 }, + [2] = { syncMsgVersion = { majorVersion = 6, minorVersion = 0 }, appName = "Test Application", appID = "00022", fullAppID = "00000022" @@ -64,9 +64,9 @@ runner.Step("Register App2 from device 2", common.registerAppEx, { 2, appParams[ runner.Title("Test") runner.Step("Activate App 1", common.app.activate, { 1 }) -runner.Step("App1 from Mobile 1 requests GetSystemCapability", common.getSystemCapability, { 1, "DISALLOWED"} ) +runner.Step("App1 from Mobile 1 requests ShowAppMenu", common.showAppMenu, { 1, "INVALID_DATA" } ) runner.Step("Activate App 2", common.app.activate, { 2 }) -runner.Step("App2 from Mobile 2 requests GetSystemCapability", common.getSystemCapability, { 2, "SUCCESS"} ) +runner.Step("App2 from Mobile 2 requests ShowAppMenu", common.showAppMenu, { 2, "SUCCESS" } ) runner.Title("Postconditions") runner.Step("Remove mobile devices", common.clearMobDevices, {devices}) diff --git a/test_scripts/TheSameApp/Protocol/004_Protocol_GetSystemCapability_from_2_apps_with_same_appName_same_appID_DIFF_devices.lua b/test_scripts/TheSameApp/Protocol/004_Protocol_ShowAppMenu_from_2_apps_with_same_appName_same_appID_DIFF_devices.lua similarity index 91% rename from test_scripts/TheSameApp/Protocol/004_Protocol_GetSystemCapability_from_2_apps_with_same_appName_same_appID_DIFF_devices.lua rename to test_scripts/TheSameApp/Protocol/004_Protocol_ShowAppMenu_from_2_apps_with_same_appName_same_appID_DIFF_devices.lua index 64058320b9..b8bee7ec08 100644 --- a/test_scripts/TheSameApp/Protocol/004_Protocol_GetSystemCapability_from_2_apps_with_same_appName_same_appID_DIFF_devices.lua +++ b/test_scripts/TheSameApp/Protocol/004_Protocol_ShowAppMenu_from_2_apps_with_same_appName_same_appID_DIFF_devices.lua @@ -46,7 +46,7 @@ local appParams = { appID = "0001", fullAppID = "0000001" }, - [2] = { syncMsgVersion = { majorVersion = 5, minorVersion = 0 }, + [2] = { syncMsgVersion = { majorVersion = 6, minorVersion = 0 }, appName = "Test Application", appID = "0001", fullAppID = "0000001" @@ -64,9 +64,9 @@ runner.Step("Register App2 from device 2", common.registerAppEx, { 2, appParams[ runner.Title("Test") runner.Step("Activate App 1", common.app.activate, { 1 }) -runner.Step("App1 from Mobile 1 requests GetSystemCapability", common.getSystemCapability, { 1, "DISALLOWED"} ) +runner.Step("App1 from Mobile 1 requests ShowAppMenu", common.showAppMenu, { 1, "INVALID_DATA" } ) runner.Step("Activate App 2", common.app.activate, { 2 }) -runner.Step("App2 from Mobile 2 requests GetSystemCapability", common.getSystemCapability, { 2, "SUCCESS"} ) +runner.Step("App2 from Mobile 2 requests ShowAppMenu", common.showAppMenu, { 2, "SUCCESS" } ) runner.Title("Postconditions") runner.Step("Remove mobile devices", common.clearMobDevices, {devices}) diff --git a/test_scripts/TheSameApp/commonTheSameApp.lua b/test_scripts/TheSameApp/commonTheSameApp.lua index 3fb42fae98..73b10d2cb8 100644 --- a/test_scripts/TheSameApp/commonTheSameApp.lua +++ b/test_scripts/TheSameApp/commonTheSameApp.lua @@ -291,6 +291,23 @@ function common.getSystemCapability(pAppId, pResultCode) mobileSession:ExpectResponse(cid, {success = isSuccess, resultCode = pResultCode}) end +function common.showAppMenu(pAppId, pResultCode) + local isSuccess = false + if pResultCode == "SUCCESS" then + isSuccess = true + local hmiConnection = common.getHMIConnection() + hmiConnection:ExpectRequest("UI.ShowAppMenu") + :Times(1) + :Do(function(_, data) + hmiConnection:SendResponse(data.id, data.method, "SUCCESS", { }) + end) + end + + local mobileSession = common.mobile.getSession(pAppId) + local cid = mobileSession:SendRPC("ShowAppMenu", {}) + mobileSession:ExpectResponse(cid, {success = isSuccess, resultCode = pResultCode}) +end + function common.setProtocolVersion(pProtocolVersion) config.defaultProtocolVersion = pProtocolVersion end diff --git a/test_scripts/smoke_api.lua b/test_scripts/smoke_api.lua index 53881632bd..af059e6adb 100644 --- a/test_scripts/smoke_api.lua +++ b/test_scripts/smoke_api.lua @@ -2711,12 +2711,6 @@ local function displayCap_textFields_Value() rows = 1, width = 500 }, - { - characterSet = "UTF_8", - name = "navigationText", --Error - rows = 1, - width = 500 - }, { characterSet = "UTF_8", name = "audioPassThruDisplayText1", @@ -2741,12 +2735,6 @@ local function displayCap_textFields_Value() rows = 1, width = 500 }, - { - characterSet = "UTF_8", - name = "notificationText", - rows = 1, - width = 500 - }, { characterSet = "UTF_8", name = "menuName", diff --git a/test_sets/API/API_Tests.txt b/test_sets/API/API_Tests.txt new file mode 100644 index 0000000000..2182ab7bf5 --- /dev/null +++ b/test_sets/API/API_Tests.txt @@ -0,0 +1,74 @@ +./test_scripts/API/CancelInteraction/001_SendCancelInteraction_PerformInteraction_HMIReceivesRequest.lua +./test_scripts/API/CancelInteraction/002_SendCancelInteraction_Alert_HMIReceivesRequest.lua +./test_scripts/API/CancelInteraction/003_SendCancelInteraction_ScrollableMessage_HMIReceivesRequest.lua +./test_scripts/API/CancelInteraction/004_SendCancelInteraction_Slider_HMIReceivesRequest.lua +./test_scripts/API/CancelInteraction/005_SendCancelInteraction_Other_HMIReceivesNoRequest.lua +./test_scripts/API/CancelInteraction/006_SendCancelInteraction_WrongCancelID_HMIRespondsIgnored.lua +./test_scripts/API/CancelInteraction/007_SendCancelInteraction_NoCancelID_AlertCancelled.lua +./test_scripts/API/CancelInteraction/008_SendCancelInteraction_SubtleAlert_HMIReceivesRequest.lua +./test_scripts/API/CloseApplication/001_Success_flow.lua +./test_scripts/API/CloseApplication/002_HMI_error_response.lua +./test_scripts/API/CloseApplication/003_App_is_registered_with_lower_version_than_the_RPC_required.lua +./test_scripts/API/SetMediaClockTimer/001_PositiveCase_default_countRate_SUCCESS.lua +./test_scripts/API/SetMediaClockTimer/002_PositiveCase_custom_countRate_SUCCESS.lua +./test_scripts/API/SetMediaClockTimer/003_Non_media_app_REJECTED.lua +./test_scripts/API/SetMediaClockTimer/004_COUNTUP_no_startTime_INVALID_DATA.lua +./test_scripts/API/SetMediaClockTimer/005_COUNTUP_endTime_before_startTime_INVALID_DATA.lua +./test_scripts/API/SetMediaClockTimer/006_COUNTDOWN_startTime_before_endTime_INVALID_DATA.lua +./test_scripts/API/SetMediaClockTimer/007_PositiveCase_media_skip_indicators.lua +./test_scripts/API/SetMediaClockTimer/008_TRACK_Indicator_type_with_seektime_INVALID_DATA.lua +./test_scripts/API/ShowAppMenu/001_Show_App_Menu_RPC_with_Sub_MenuID_SUCCESS.lua +./test_scripts/API/ShowAppMenu/002_Show_App_Menu_RPC_without_Sub_MenuID_SUCCESS.lua +./test_scripts/API/ShowAppMenu/003_Show_App_Menu_RPC_with_invalid_MenuID_INVALID_ID.lua +./test_scripts/API/ShowAppMenu/004_Show_App_Menu_RPC_without_policy_SystemContext_MAIN_DISALLOWED.lua +./test_scripts/API/ShowAppMenu/005_Show_App_Menu_RPC_without_policy_SystemContext_VRSESSION_DISALLOWED.lua +./test_scripts/API/ShowAppMenu/006_Show_App_Menu_RPC_without_policy_SystemContext_MENU_DISALLOWED.lua +./test_scripts/API/ShowAppMenu/007_Show_App_Menu_RPC_without_policy_SystemContext_HMI_OBSCURED_DISALLOWED.lua +./test_scripts/API/ShowAppMenu/008_Show_App_Menu_RPC_without_policy_SystemContext_ALERT_DISALLOWED.lua +./test_scripts/API/ShowAppMenu/009_Show_App_Menu_RPC_without_HMI_response_GENERIC_ERROR.lua +./test_scripts/API/ShowAppMenu/010_Show_App_Menu_RPC_different_MenuID_with_Sub_Menu_ID_INVALID_ID.lua +./test_scripts/API/ShowAppMenu/011_Show_App_Menu_RPC_with_invalid_data_type_MenuID_INVALID_DATA.lua +./test_scripts/API/SubtleAlertStyle/SubtleAlert/001_PositiveCase_With_SoftButtons_SUCCESS.lua +./test_scripts/API/SubtleAlertStyle/SubtleAlert/002_PositiveCase_Without_SoftButtons_SUCCESS.lua +./test_scripts/API/SubtleAlertStyle/SubtleAlert/003_PositiveCase_UI_Only_SUCCESS.lua +./test_scripts/API/SubtleAlertStyle/SubtleAlert/004_PositiveCase_TTS_Interrupted_SUCCESS.lua +./test_scripts/API/SubtleAlertStyle/SubtleAlert/005_PositiveCase_TwoApps_DEFAULT_ACTION_SUCCESS.lua +./test_scripts/API/SubtleAlertStyle/SubtleAlert/006_PositiveCase_TwoApps_STEAL_FOCUS_SUCCESS.lua +./test_scripts/API/SubtleAlertStyle/SubtleAlert/007_Interrupted_By_VR_ABORTED.lua +./test_scripts/API/SubtleAlertStyle/SubtleAlert/008_Phone_Call_Active_REJECTED.lua +./test_scripts/API/SubtleAlertStyle/OnSubtleAlertPressed/001_PositiveCase_Subtle_Alert_Pressed.lua +./test_scripts/API/ShowAppMenu/012_Show_App_Menu_RPC_hmi_Level_FULL_SC_VRSESSION_HMI_OBSCURED_ALERT_REJECTED.lua +./test_scripts/API/VehicleData/GetVehicleData/001_GetVD_Success_flow.lua +./test_scripts/API/VehicleData/GetVehicleData/002_GetVD_disallowed.lua +./test_scripts/API/VehicleData/GetVehicleData/003_GetVD_disallowed_after_PTU.lua +./test_scripts/API/VehicleData/GetVehicleData/004_GetVD_HMI_responds_with_invalid_data.lua +./test_scripts/API/VehicleData/GetVehicleData/005_GetVD_App_sends_invalid_request.lua +./test_scripts/API/VehicleData/GetVehicleData/006_GetVD_mandatory_parameters.lua +./test_scripts/API/VehicleData/GetVehicleData/007_GetVD_app_version_is_greater_than_parameter_version.lua +./test_scripts/API/VehicleData/GetVehicleData/008_GetVD_app_version_is_less_than_parameter_version.lua +./test_scripts/API/VehicleData/OnVehicleData/001_OnVD_Success.lua +./test_scripts/API/VehicleData/OnVehicleData/002_OnVD_disallowed.lua +./test_scripts/API/VehicleData/OnVehicleData/003_OnVD_disallowed_after_PTU.lua +./test_scripts/API/VehicleData/OnVehicleData/004_OnVD_with_invalid_data.lua +./test_scripts/API/VehicleData/OnVehicleData/005_OnVD_App_is_not_subscribed.lua +./test_scripts/API/VehicleData/OnVehicleData/006_OnVD_mandatory_parameters.lua +./test_scripts/API/VehicleData/SubscribeVehicleData/001_SubscribeVD_Success.lua +./test_scripts/API/VehicleData/SubscribeVehicleData/002_SubscribeVD_disallowed.lua +./test_scripts/API/VehicleData/SubscribeVehicleData/003_SubscribeVD_disallowed_after_PTU.lua +./test_scripts/API/VehicleData/SubscribeVehicleData/004_SubscribeVD_HMI_responds_with_invalid_data.lua +./test_scripts/API/VehicleData/SubscribeVehicleData/005_SubscribeVD_App_sends_invalid_request.lua +./test_scripts/API/VehicleData/SubscribeVehicleData/006_SubscribeVD_2nd_request_IGNORED.lua +./test_scripts/API/VehicleData/SubscribeVehicleData/007_SubscribeVD_for_2_apps.lua +./test_scripts/API/VehicleData/SubscribeVehicleData/008_SubscribeVD_HMI_responds_with_not_success_codes.lua +./test_scripts/API/VehicleData/SubscribeVehicleData/009_SubscribeVD_Resumption_of_subscription_Unexpected_Disconnect.lua +./test_scripts/API/VehicleData/SubscribeVehicleData/010_SubscribeVD_Resumption_of_subscription_Ignition_Cycle.lua +./test_scripts/API/VehicleData/SubscribeVehicleData/011_SubscribeVD_Resumption_of_subscription_for_2_apps_Unexpected_Disconnect.lua +./test_scripts/API/VehicleData/SubscribeVehicleData/012_SubscribeVD_Resumption_of_subscription_for_2_apps_Ignition_Cycle.lua +./test_scripts/API/VehicleData/UnsubscribeVehicleData/001_UnsubscribeVD_Success.lua +./test_scripts/API/VehicleData/UnsubscribeVehicleData/002_UnsubscribeVD_disallowed.lua +./test_scripts/API/VehicleData/UnsubscribeVehicleData/003_UnsubscribeVD_disallowed_after_PTU.lua +./test_scripts/API/VehicleData/UnsubscribeVehicleData/004_UnsubscribeVD_HMI_responds_with_invalid_data.lua +./test_scripts/API/VehicleData/UnsubscribeVehicleData/005_UnsubscribeVD_App_sends_invalid_request.lua +./test_scripts/API/VehicleData/UnsubscribeVehicleData/006_UnsubscribeVD_2nd_request_IGNORED.lua +./test_scripts/API/VehicleData/UnsubscribeVehicleData/007_UnsubscribeVD_for_2_apps.lua +./test_scripts/API/VehicleData/UnsubscribeVehicleData/008_UnsubscribeVD_HMI_responds_with_not_success_codes.lua diff --git a/test_sets/cancel_interation.txt b/test_sets/API/CancelInteraction_RPC.txt similarity index 100% rename from test_sets/cancel_interation.txt rename to test_sets/API/CancelInteraction_RPC.txt diff --git a/test_sets/CloseApplication_RPC.txt b/test_sets/API/CloseApplication_RPC.txt similarity index 53% rename from test_sets/CloseApplication_RPC.txt rename to test_sets/API/CloseApplication_RPC.txt index f54af08a6d..ae13871bfb 100644 --- a/test_sets/CloseApplication_RPC.txt +++ b/test_sets/API/CloseApplication_RPC.txt @@ -1,2 +1,3 @@ ./test_scripts/API/CloseApplication/001_Success_flow.lua ./test_scripts/API/CloseApplication/002_HMI_error_response.lua +./test_scripts/API/CloseApplication/003_App_is_registered_with_lower_version_than_the_RPC_required.lua diff --git a/test_sets/API/SetMediaClockTimer_RPC.txt b/test_sets/API/SetMediaClockTimer_RPC.txt new file mode 100644 index 0000000000..a21ee5cfe4 --- /dev/null +++ b/test_sets/API/SetMediaClockTimer_RPC.txt @@ -0,0 +1,8 @@ +./test_scripts/API/SetMediaClockTimer/001_PositiveCase_default_countRate_SUCCESS.lua +./test_scripts/API/SetMediaClockTimer/002_PositiveCase_custom_countRate_SUCCESS.lua +./test_scripts/API/SetMediaClockTimer/003_Non_media_app_REJECTED.lua +./test_scripts/API/SetMediaClockTimer/004_COUNTUP_no_startTime_INVALID_DATA.lua +./test_scripts/API/SetMediaClockTimer/005_COUNTUP_endTime_before_startTime_INVALID_DATA.lua +./test_scripts/API/SetMediaClockTimer/006_COUNTDOWN_startTime_before_endTime_INVALID_DATA.lua +./test_scripts/API/SetMediaClockTimer/007_PositiveCase_media_skip_indicators.lua +./test_scripts/API/SetMediaClockTimer/008_TRACK_Indicator_type_with_seektime_INVALID_DATA.lua diff --git a/test_sets/show_app_menu_rpc.txt b/test_sets/API/ShowAppMenu_RPC.txt similarity index 100% rename from test_sets/show_app_menu_rpc.txt rename to test_sets/API/ShowAppMenu_RPC.txt diff --git a/test_sets/subtle_alert_style.txt b/test_sets/API/SubtleAlert_RPC.txt similarity index 100% rename from test_sets/subtle_alert_style.txt rename to test_sets/API/SubtleAlert_RPC.txt diff --git a/test_sets/vehicle_data.txt b/test_sets/API/vehicle_data.txt similarity index 68% rename from test_sets/vehicle_data.txt rename to test_sets/API/vehicle_data.txt index 1af8f3f7c4..447999cb1e 100644 --- a/test_sets/vehicle_data.txt +++ b/test_sets/API/vehicle_data.txt @@ -1,5 +1,3 @@ -./test_scripts/API/VehicleData/AudioSource/001_Success_deviceStatus_primaryAudioSource.lua -./test_scripts/API/VehicleData/AudioSource/002_Success_flow_deviceStatus_primaryAudioSource.lua ./test_scripts/API/VehicleData/GetVehicleData/001_GetVD_Success_flow.lua ./test_scripts/API/VehicleData/GetVehicleData/002_GetVD_disallowed.lua ./test_scripts/API/VehicleData/GetVehicleData/003_GetVD_disallowed_after_PTU.lua @@ -8,12 +6,16 @@ ./test_scripts/API/VehicleData/GetVehicleData/006_GetVD_mandatory_parameters.lua ./test_scripts/API/VehicleData/GetVehicleData/007_GetVD_app_version_is_greater_than_parameter_version.lua ./test_scripts/API/VehicleData/GetVehicleData/008_GetVD_app_version_is_less_than_parameter_version.lua +./test_scripts/API/VehicleData/GetVehicleData/009_GetVD_min_max_boundary_values.lua +./test_scripts/API/VehicleData/GetVehicleData/010_GetVD_enum_and_bool_values.lua ./test_scripts/API/VehicleData/OnVehicleData/001_OnVD_Success.lua -;./test_scripts/API/VehicleData/OnVehicleData/002_OnVD_disallowed.lua https://github.com/smartdevicelink/sdl_core/issues/3365 -;./test_scripts/API/VehicleData/OnVehicleData/003_OnVD_disallowed_after_PTU.lua https://github.com/smartdevicelink/sdl_core/issues/3365 +./test_scripts/API/VehicleData/OnVehicleData/002_OnVD_disallowed.lua +./test_scripts/API/VehicleData/OnVehicleData/003_OnVD_disallowed_after_PTU.lua ./test_scripts/API/VehicleData/OnVehicleData/004_OnVD_with_invalid_data.lua ./test_scripts/API/VehicleData/OnVehicleData/005_OnVD_App_is_not_subscribed.lua ./test_scripts/API/VehicleData/OnVehicleData/006_OnVD_mandatory_parameters.lua +./test_scripts/API/VehicleData/OnVehicleData/007_OnVD_min_max_boundary_values.lua +./test_scripts/API/VehicleData/OnVehicleData/008_OnVD_enum_and_bool_values.lua ./test_scripts/API/VehicleData/SubscribeVehicleData/001_SubscribeVD_Success.lua ./test_scripts/API/VehicleData/SubscribeVehicleData/002_SubscribeVD_disallowed.lua ./test_scripts/API/VehicleData/SubscribeVehicleData/003_SubscribeVD_disallowed_after_PTU.lua @@ -34,11 +36,3 @@ ./test_scripts/API/VehicleData/UnsubscribeVehicleData/006_UnsubscribeVD_2nd_request_IGNORED.lua ./test_scripts/API/VehicleData/UnsubscribeVehicleData/007_UnsubscribeVD_for_2_apps.lua ./test_scripts/API/VehicleData/UnsubscribeVehicleData/008_UnsubscribeVD_HMI_responds_with_not_success_codes.lua -./test_scripts/API/VehicleData/RefactorFuelInformation/001_GetVehicleData_with_one_param_in_fuelRange_structure.lua -./test_scripts/API/VehicleData/RefactorFuelInformation/002_OnVehicleData_with_only_one_param_in_fuelRange_structure.lua -./test_scripts/API/VehicleData/StabilityControlsStatus/001_GetVehicleData_with_one_param_in_stabilityControlsStatus_structure.lua -./test_scripts/API/VehicleData/StabilityControlsStatus/002_OnVehicleData_with_only_one_param_in_stabilityControlsStatus_structure.lua -./test_scripts/API/VehicleData/GearStatus/001_GetVehicleData_with_one_param_in_gearStatus_structure.lua -./test_scripts/API/VehicleData/GearStatus/002_OnVehicleData_with_only_one_param_in_gearStatus_structure.lua -./test_scripts/API/VehicleData/WindowStatus/001_GetVehicleData_boundary_values_windowStatus_structure.lua -./test_scripts/API/VehicleData/WindowStatus/002_OnVehicleData_boundary_values_windowStatus_structure.lua diff --git a/test_sets/Defects/4_5/1206.txt b/test_sets/Defects/4_5/1206.txt deleted file mode 100644 index 0856370c86..0000000000 --- a/test_sets/Defects/4_5/1206.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/4_5/1206_REQUEST_PTU_Trigger_PTU_failed_previous_IGN_ON.lua diff --git a/test_sets/Defects/4_5/1211.txt b/test_sets/Defects/4_5/1211.txt deleted file mode 100644 index 863be6622a..0000000000 --- a/test_sets/Defects/4_5/1211.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/4_5/1211_ATF_Check_count_of_removals_for_bad_behavior_REQUEST_WHILE_IN_NONE_HMI_LEVEL.lua diff --git a/test_sets/Defects/4_5/1225.txt b/test_sets/Defects/4_5/1225.txt deleted file mode 100644 index 93dcf47269..0000000000 --- a/test_sets/Defects/4_5/1225.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/4_5/1225_FACTORY_DEFAULTS.lua diff --git a/test_sets/Defects/4_5/1376.txt b/test_sets/Defects/4_5/1376.txt deleted file mode 100644 index 223dc60ed4..0000000000 --- a/test_sets/Defects/4_5/1376.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/4_5/1376_PTU_all_flows.lua diff --git a/test_sets/Defects/4_5/1395.txt b/test_sets/Defects/4_5/1395.txt deleted file mode 100644 index 1cc644ccab..0000000000 --- a/test_sets/Defects/4_5/1395.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/4_5/1395_Resumption_data_IGN_OFF.lua diff --git a/test_sets/Defects/4_5/1772.txt b/test_sets/Defects/4_5/1772.txt deleted file mode 100644 index 61200271c7..0000000000 --- a/test_sets/Defects/4_5/1772.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/4_5/1772_update_default_section.lua diff --git a/test_sets/Defects/4_5/1873.txt b/test_sets/Defects/4_5/1873.txt deleted file mode 100644 index 86ab6b61eb..0000000000 --- a/test_sets/Defects/4_5/1873.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/4_5/1873_Parameters_empty_in_policy_table.lua diff --git a/test_sets/Defects/4_5/1881.txt b/test_sets/Defects/4_5/1881.txt deleted file mode 100644 index 699188cfb9..0000000000 --- a/test_sets/Defects/4_5/1881.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/4_5/1881_OnDriverDistraction_After_changing_HMIlevel_from_NONE.lua diff --git a/test_sets/Defects/4_5/1888.txt b/test_sets/Defects/4_5/1888.txt deleted file mode 100644 index 29e7a8d790..0000000000 --- a/test_sets/Defects/4_5/1888.txt +++ /dev/null @@ -1,6 +0,0 @@ -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_1_navi.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_2_non-navi.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_3_navi_audio_force_off.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_4_navi_video_force_off.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_5_navi_audio_force_on.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_6_navi_video_force_on.lua diff --git a/test_sets/Defects/4_5/1891.txt b/test_sets/Defects/4_5/1891.txt deleted file mode 100644 index 8e3ed29a89..0000000000 --- a/test_sets/Defects/4_5/1891.txt +++ /dev/null @@ -1,4 +0,0 @@ -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_1_navi.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_2_non-navi.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_3_navi_audio.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_4_navi_video.lua diff --git a/test_sets/Defects/4_5/1892.txt b/test_sets/Defects/4_5/1892.txt deleted file mode 100644 index 8972d7a1be..0000000000 --- a/test_sets/Defects/4_5/1892.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/4_5/1892_HB_from_SDL_after_receiving_HB_from_mobile.lua diff --git a/test_sets/Defects/4_5/1893.txt b/test_sets/Defects/4_5/1893.txt deleted file mode 100644 index ec150d4cca..0000000000 --- a/test_sets/Defects/4_5/1893.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/4_5/1893_ATF_HeartBeat_App_does_not_send_HB_and_does_not_respond.lua diff --git a/test_sets/Defects/4_5/1894.txt b/test_sets/Defects/4_5/1894.txt deleted file mode 100644 index e3816b8435..0000000000 --- a/test_sets/Defects/4_5/1894.txt +++ /dev/null @@ -1,4 +0,0 @@ -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_1_navi.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_2_non-navi.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_3_navi_audio.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_4_navi_video.lua diff --git a/test_sets/Defects/4_5/1912.txt b/test_sets/Defects/4_5/1912.txt deleted file mode 100644 index 54baf1ab3e..0000000000 --- a/test_sets/Defects/4_5/1912.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/4_5/1912_Video_service_start_via_2_protocol.lua diff --git a/test_sets/Defects/4_5/1921.txt b/test_sets/Defects/4_5/1921.txt deleted file mode 100644 index 465c1d44ee..0000000000 --- a/test_sets/Defects/4_5/1921.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/4_5/1921_Invalid_PT_after_cutting_unknow_values.lua diff --git a/test_sets/Defects/4_5/1922.txt b/test_sets/Defects/4_5/1922.txt deleted file mode 100644 index 1bd6ca1e47..0000000000 --- a/test_sets/Defects/4_5/1922.txt +++ /dev/null @@ -1,2 +0,0 @@ -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1922_1_navi_audio.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1922_2_navi_video.lua diff --git a/test_sets/Defects/4_5/1923.txt b/test_sets/Defects/4_5/1923.txt deleted file mode 100644 index 0f719177aa..0000000000 --- a/test_sets/Defects/4_5/1923.txt +++ /dev/null @@ -1,2 +0,0 @@ -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1923_1_navi_audio.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1923_2_navi_video.lua diff --git a/test_sets/Defects/4_5/1924.txt b/test_sets/Defects/4_5/1924.txt deleted file mode 100644 index 6121278f51..0000000000 --- a/test_sets/Defects/4_5/1924.txt +++ /dev/null @@ -1,2 +0,0 @@ -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1924_1_non-navi.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1924_2_navi.lua diff --git a/test_sets/Defects/4_5/1925.txt b/test_sets/Defects/4_5/1925.txt deleted file mode 100644 index 2012dcba5d..0000000000 --- a/test_sets/Defects/4_5/1925.txt +++ /dev/null @@ -1,7 +0,0 @@ -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_1_navi_no_cert_new_app.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_2_navi_no_cert_existing_app.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_3_navi_cert_new_app.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_4_navi_cert_existing_app.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_5_non-navi_no_cert_new_app.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_6_non-navi_no_cert_existing_app.lua -./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_7_non-navi_cert_new_app.lua diff --git a/test_sets/Defects/6_1/1399.txt b/test_sets/Defects/6_1/1399.txt deleted file mode 100644 index 3e6bb9ef83..0000000000 --- a/test_sets/Defects/6_1/1399.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/6_1/1399_ReadDID_TRUNCATED_DATA.lua diff --git a/test_sets/Defects/6_1/1865.txt b/test_sets/Defects/6_1/1865.txt deleted file mode 100644 index 43a8abc6e6..0000000000 --- a/test_sets/Defects/6_1/1865.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/6_1/1865_Invalid_request_from_HMI.lua diff --git a/test_sets/Defects/6_1/1878.txt b/test_sets/Defects/6_1/1878.txt deleted file mode 100644 index eaebcdb526..0000000000 --- a/test_sets/Defects/6_1/1878.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/6_1/1878_AddCommand_resumption_order.lua diff --git a/test_sets/Defects/6_1/2442.txt b/test_sets/Defects/6_1/2442.txt deleted file mode 100644 index 014b6792eb..0000000000 --- a/test_sets/Defects/6_1/2442.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/6_1/2442_Fix_mem_seg_fault_error_in_jsoncpp.lua diff --git a/test_sets/Defects/6_1/2966.txt b/test_sets/Defects/6_1/2966.txt deleted file mode 100644 index 8071dc01d5..0000000000 --- a/test_sets/Defects/6_1/2966.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/6_1/2966_SDL_incorrectly_assigned_default_permissions.lua diff --git a/test_sets/Defects/6_1/2990.txt b/test_sets/Defects/6_1/2990.txt deleted file mode 100644 index cf2e0902e3..0000000000 --- a/test_sets/Defects/6_1/2990.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/6_1/2990_PerfomInteraction_with_choiceID.lua diff --git a/test_sets/Defects/6_1/2997.txt b/test_sets/Defects/6_1/2997.txt deleted file mode 100644 index 8cb36f06b2..0000000000 --- a/test_sets/Defects/6_1/2997.txt +++ /dev/null @@ -1,12 +0,0 @@ -./test_scripts/API/VehicleData/VehicleDataVersioning/001_VD_parameter_in_API_DB_app_version_more_then_parameter_version.lua -./test_scripts/API/VehicleData/VehicleDataVersioning/002_VD_parameter_in_API_DB_app_version_equal_parameter_version.lua -./test_scripts/API/VehicleData/VehicleDataVersioning/003_VD_parameter_in_API_DB_app_version_less_then_parameter_version.lua -./test_scripts/API/VehicleData/VehicleDataVersioning/004_VD_parameter_in_API_DB_different_values_app_version_more_then_parameter_version.lua -./test_scripts/API/VehicleData/VehicleDataVersioning/005_VD_parameter_in_API_DB_different_values_version_in_DB_more_then_version_of_API_app_version_more_then_parameter_version.lua -./test_scripts/API/VehicleData/VehicleDataVersioning/006_VD_parameter_DB_app_version_more_then_parameter_version.lua -./test_scripts/API/VehicleData/VehicleDataVersioning/007_VD_parameter_DB_app_version_equal_to_parameter_version.lua -./test_scripts/API/VehicleData/VehicleDataVersioning/008_VD_parameter_DB_app_version_less_then_parameter_version.lua -./test_scripts/API/VehicleData/VehicleDataVersioning/009_VD_parameter_DB_version_more_then_API_app_version_more_then_parameter_version.lua -./test_scripts/API/VehicleData/VehicleDataVersioning/010_VD_parameter_in_API_app_version_more_then_parameter_version.lua -./test_scripts/API/VehicleData/VehicleDataVersioning/011_VD_parameter_in_API_app_version_equal_parameter_version.lua -./test_scripts/API/VehicleData/VehicleDataVersioning/012_VD_parameter_in_API_app_version_less_then_parameter_version.lua diff --git a/test_sets/Defects/6_1/3113.txt b/test_sets/Defects/6_1/3113.txt deleted file mode 100644 index 4ff2045f54..0000000000 --- a/test_sets/Defects/6_1/3113.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/6_1/3113_Deprecated_parameters_are_present_in_RAI_response.lua diff --git a/test_sets/Defects/6_1/3136.txt b/test_sets/Defects/6_1/3136.txt deleted file mode 100644 index 2d6cffed18..0000000000 --- a/test_sets/Defects/6_1/3136.txt +++ /dev/null @@ -1,11 +0,0 @@ -./test_scripts/Defects/6_1/3136_01_Proprietary.lua -./test_scripts/Defects/6_1/3136_02_External_Proprietary.lua -./test_scripts/Defects/6_1/3136_03_Http.lua -./test_scripts/Defects/6_1/3136_04_Proprietary_3apps.lua -./test_scripts/Defects/6_1/3136_05_External_Proprietary_3apps.lua -./test_scripts/Defects/6_1/3136_06_Http_3apps.lua -./test_scripts/TheSameApp/Policies/AppId/001_PTU_is_not_triggered_after_registration_app_with_the_same_id.lua -./test_scripts/TheSameApp/Policies/AppId/002_PTU_is_triggered_after_registration_app_with_different_app_id.lua -./test_scripts/TheSameApp/Policies/AppId/003_PTU_is_not_triggered_after_registration_app_with_the_same_id_after_PTU.lua -./test_scripts/TheSameApp/Policies/AppId/004_PTU_is_triggered_after_registration_app_with_different_app_id_after_PTU.lua -./test_scripts/TheSameApp/Policies/AppId/005_PTU_is_not_triggered_after_registration_app_with_different_app_id_during_timeout.lua diff --git a/test_sets/Defects/6_1/3139.txt b/test_sets/Defects/6_1/3139.txt deleted file mode 100644 index f7c3bc3950..0000000000 --- a/test_sets/Defects/6_1/3139.txt +++ /dev/null @@ -1,4 +0,0 @@ -./test_scripts/Defects/6_1/3139_01_Stop_streaming_gracefully_1st_timer.lua -./test_scripts/Defects/6_1/3139_02_Stop_streaming_gracefully_2nd_timer.lua -./test_scripts/Defects/6_1/3139_03_Stop_streaming_forcibly_app_continue_streaming.lua -./test_scripts/Defects/6_1/3139_04_Stop_streaming_forcibly_app_does_not_send_EndServiceAck.lua diff --git a/test_sets/Defects/6_1/3140.txt b/test_sets/Defects/6_1/3140.txt deleted file mode 100644 index d93989f7ed..0000000000 --- a/test_sets/Defects/6_1/3140.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/6_1/3140_01_1st_app_is_able_to_continue_streaming_after_activate_deactivate_2nd_app.lua diff --git a/test_sets/Defects/6_1/3142.txt b/test_sets/Defects/6_1/3142.txt deleted file mode 100644 index f566e4c792..0000000000 --- a/test_sets/Defects/6_1/3142.txt +++ /dev/null @@ -1,2 +0,0 @@ -./test_scripts/Defects/6_1/3142_01_Absence_of_misplaced_OnVideoDataStreaming.lua -./test_scripts/Defects/6_1/3142_02_Absence_of_misplaced_OnAudioDataStreaming.lua diff --git a/test_sets/Defects/6_1/3148.txt b/test_sets/Defects/6_1/3148.txt deleted file mode 100644 index d4efa039e1..0000000000 --- a/test_sets/Defects/6_1/3148.txt +++ /dev/null @@ -1,10 +0,0 @@ -./test_scripts/Defects/6_1/3148_1_video_streaming.lua -./test_scripts/Defects/6_1/3148_1_video_streaming.lua -./test_scripts/Defects/6_1/3148_1_video_streaming.lua -./test_scripts/Defects/6_1/3148_1_video_streaming.lua -./test_scripts/Defects/6_1/3148_1_video_streaming.lua -./test_scripts/Defects/6_1/3148_2_audio_streaming.lua -./test_scripts/Defects/6_1/3148_2_audio_streaming.lua -./test_scripts/Defects/6_1/3148_2_audio_streaming.lua -./test_scripts/Defects/6_1/3148_2_audio_streaming.lua -./test_scripts/Defects/6_1/3148_2_audio_streaming.lua diff --git a/test_sets/Defects/6_1/3196.txt b/test_sets/Defects/6_1/3196.txt deleted file mode 100644 index f5f2e39105..0000000000 --- a/test_sets/Defects/6_1/3196.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/6_1/3196_SDL_responds_resultCode_GENERIC_ERROR_while_dataType_VEHICLEDATA_EXTERNTEMP_is_VEHICLE_DATA_NOT_AVAILABLE_and_not_in_subscribed_list_store.lua diff --git a/test_sets/Defects/6_1/3267.txt b/test_sets/Defects/6_1/3267.txt deleted file mode 100644 index 5ebaf49b42..0000000000 --- a/test_sets/Defects/6_1/3267.txt +++ /dev/null @@ -1,11 +0,0 @@ -./test_scripts/Defects/6_1/3267_1_RAI_OnSystemRequest_LOCK_SCREEN_ICON_URL.lua -./test_scripts/Defects/6_1/3267_1_RAI_OnSystemRequest_LOCK_SCREEN_ICON_URL.lua -./test_scripts/Defects/6_1/3267_1_RAI_OnSystemRequest_LOCK_SCREEN_ICON_URL.lua -./test_scripts/Defects/6_1/3267_1_RAI_OnSystemRequest_LOCK_SCREEN_ICON_URL.lua -./test_scripts/Defects/6_1/3267_1_RAI_OnSystemRequest_LOCK_SCREEN_ICON_URL.lua -./test_scripts/Defects/6_1/3267_1_RAI_OnSystemRequest_LOCK_SCREEN_ICON_URL.lua -./test_scripts/Defects/6_1/3267_1_RAI_OnSystemRequest_LOCK_SCREEN_ICON_URL.lua -./test_scripts/Defects/6_1/3267_1_RAI_OnSystemRequest_LOCK_SCREEN_ICON_URL.lua -./test_scripts/Defects/6_1/3267_1_RAI_OnSystemRequest_LOCK_SCREEN_ICON_URL.lua -./test_scripts/Defects/6_1/3267_1_RAI_OnSystemRequest_LOCK_SCREEN_ICON_URL.lua -./test_scripts/Defects/6_1/3267_2_RAI_OnSystemRequest_LOCK_SCREEN_ICON_URL_app_specific.lua diff --git a/test_sets/Defects/6_1/3278.txt b/test_sets/Defects/6_1/3278.txt deleted file mode 100644 index c75bb08b99..0000000000 --- a/test_sets/Defects/6_1/3278.txt +++ /dev/null @@ -1,10 +0,0 @@ -./test_scripts/Defects/6_1/3278_Start_A-V_services_protected_at_the_same_time.lua -./test_scripts/Defects/6_1/3278_Start_A-V_services_protected_at_the_same_time.lua -./test_scripts/Defects/6_1/3278_Start_A-V_services_protected_at_the_same_time.lua -./test_scripts/Defects/6_1/3278_Start_A-V_services_protected_at_the_same_time.lua -./test_scripts/Defects/6_1/3278_Start_A-V_services_protected_at_the_same_time.lua -./test_scripts/Defects/6_1/3278_Start_A-V_services_protected_at_the_same_time.lua -./test_scripts/Defects/6_1/3278_Start_A-V_services_protected_at_the_same_time.lua -./test_scripts/Defects/6_1/3278_Start_A-V_services_protected_at_the_same_time.lua -./test_scripts/Defects/6_1/3278_Start_A-V_services_protected_at_the_same_time.lua -./test_scripts/Defects/6_1/3278_Start_A-V_services_protected_at_the_same_time.lua diff --git a/test_sets/Defects/6_1/3302.txt b/test_sets/Defects/6_1/3302.txt deleted file mode 100644 index d06d25afcd..0000000000 --- a/test_sets/Defects/6_1/3302.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/6_1/3302_BC_GetSystemInfo_once.lua diff --git a/test_sets/Defects/6_1/3321.txt b/test_sets/Defects/6_1/3321.txt deleted file mode 100644 index 0e5f92236a..0000000000 --- a/test_sets/Defects/6_1/3321.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/6_1/3321_OnAppPropertiesChange_remove_nickname.lua diff --git a/test_sets/Defects/6_1/3327.txt b/test_sets/Defects/6_1/3327.txt deleted file mode 100644 index aae7a769dc..0000000000 --- a/test_sets/Defects/6_1/3327.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/6_1/3327_GetVehicleData_VEHICLE_DATA_NOT_AVAILABLE.lua diff --git a/test_sets/Defects/6_1/967.txt b/test_sets/Defects/6_1/967.txt deleted file mode 100644 index 8f5fe2e6f4..0000000000 --- a/test_sets/Defects/6_1/967.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/6_1/967_OnButtonPress_OnButtonEvent_in_background.lua diff --git a/test_sets/Defects/6_1/974.txt b/test_sets/Defects/6_1/974.txt deleted file mode 100644 index fe7a3579f7..0000000000 --- a/test_sets/Defects/6_1/974.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/6_1/974_updateDeviceList_after_closingConnection.lua diff --git a/test_sets/Defects/6_1/995.txt b/test_sets/Defects/6_1/995.txt deleted file mode 100644 index e60ed01a91..0000000000 --- a/test_sets/Defects/6_1/995.txt +++ /dev/null @@ -1 +0,0 @@ -./test_scripts/Defects/6_1/995_OnSystemrequest_query_apps_after_unsuccessful_attempt.lua diff --git a/test_sets/Defects/Defects_release_6_1.txt b/test_sets/Defects/Defects_release_6_1.txt new file mode 100644 index 0000000000..86ade5373e --- /dev/null +++ b/test_sets/Defects/Defects_release_6_1.txt @@ -0,0 +1,44 @@ +./test_scripts/API/VehicleData/VehicleDataVersioning/001_VD_parameter_in_API_DB_app_version_more_then_parameter_version.lua +./test_scripts/API/VehicleData/VehicleDataVersioning/002_VD_parameter_in_API_DB_app_version_equal_parameter_version.lua +./test_scripts/API/VehicleData/VehicleDataVersioning/003_VD_parameter_in_API_DB_app_version_less_then_parameter_version.lua +./test_scripts/API/VehicleData/VehicleDataVersioning/004_VD_parameter_in_API_DB_different_values_app_version_more_then_parameter_version.lua +./test_scripts/API/VehicleData/VehicleDataVersioning/005_VD_parameter_in_API_DB_different_values_version_in_DB_more_then_version_of_API_app_version_more_then_parameter_version.lua +./test_scripts/API/VehicleData/VehicleDataVersioning/006_VD_parameter_DB_app_version_more_then_parameter_version.lua +./test_scripts/API/VehicleData/VehicleDataVersioning/007_VD_parameter_DB_app_version_equal_to_parameter_version.lua +./test_scripts/API/VehicleData/VehicleDataVersioning/008_VD_parameter_DB_app_version_less_then_parameter_version.lua +./test_scripts/API/VehicleData/VehicleDataVersioning/009_VD_parameter_DB_version_more_then_API_app_version_more_then_parameter_version.lua +./test_scripts/API/VehicleData/VehicleDataVersioning/010_VD_parameter_in_API_app_version_more_then_parameter_version.lua +./test_scripts/API/VehicleData/VehicleDataVersioning/011_VD_parameter_in_API_app_version_equal_parameter_version.lua +./test_scripts/API/VehicleData/VehicleDataVersioning/012_VD_parameter_in_API_app_version_less_then_parameter_version.lua +./test_scripts/Defects/6_1/1399_ReadDID_TRUNCATED_DATA.lua +./test_scripts/Defects/6_1/1865_Invalid_request_from_HMI.lua +./test_scripts/Defects/6_1/1878_AddCommand_resumption_order.lua +./test_scripts/Defects/6_1/2442_Fix_mem_seg_fault_error_in_jsoncpp.lua +./test_scripts/Defects/6_1/2966_SDL_incorrectly_assigned_default_permissions.lua +./test_scripts/Defects/6_1/2990_PerfomInteraction_with_choiceID.lua +./test_scripts/Defects/6_1/3113_Deprecated_parameters_are_present_in_RAI_response.lua +./test_scripts/Defects/6_1/3136_01_Proprietary.lua +./test_scripts/Defects/6_1/3136_02_External_Proprietary.lua +./test_scripts/Defects/6_1/3136_03_Http.lua +./test_scripts/Defects/6_1/3136_04_Proprietary_3apps.lua +./test_scripts/Defects/6_1/3136_05_External_Proprietary_3apps.lua +./test_scripts/Defects/6_1/3136_06_Http_3apps.lua +./test_scripts/Defects/6_1/3139_01_Stop_streaming_gracefully_1st_timer.lua +./test_scripts/Defects/6_1/3139_02_Stop_streaming_gracefully_2nd_timer.lua +./test_scripts/Defects/6_1/3139_03_Stop_streaming_forcibly_app_continue_streaming.lua +./test_scripts/Defects/6_1/3139_04_Stop_streaming_forcibly_app_does_not_send_EndServiceAck.lua +./test_scripts/Defects/6_1/3140_01_1st_app_is_able_to_continue_streaming_after_activate_deactivate_2nd_app.lua +./test_scripts/Defects/6_1/3142_01_Absence_of_misplaced_OnVideoDataStreaming.lua +./test_scripts/Defects/6_1/3142_02_Absence_of_misplaced_OnAudioDataStreaming.lua +./test_scripts/Defects/6_1/3148_1_video_streaming.lua +./test_scripts/Defects/6_1/3148_2_audio_streaming.lua +./test_scripts/Defects/6_1/3196_SDL_responds_resultCode_GENERIC_ERROR_while_dataType_VEHICLEDATA_EXTERNTEMP_is_VEHICLE_DATA_NOT_AVAILABLE_and_not_in_subscribed_list_store.lua +./test_scripts/Defects/6_1/3267_1_RAI_OnSystemRequest_LOCK_SCREEN_ICON_URL.lua +./test_scripts/Defects/6_1/3267_2_RAI_OnSystemRequest_LOCK_SCREEN_ICON_URL_app_specific.lua +./test_scripts/Defects/6_1/3278_Start_A-V_services_protected_at_the_same_time.lua +./test_scripts/Defects/6_1/3302_BC_GetSystemInfo_once.lua +./test_scripts/Defects/6_1/3321_OnAppPropertiesChange_remove_nickname.lua +./test_scripts/Defects/6_1/3327_GetVehicleData_VEHICLE_DATA_NOT_AVAILABLE.lua +./test_scripts/Defects/6_1/967_OnButtonPress_OnButtonEvent_in_background.lua +./test_scripts/Defects/6_1/974_updateDeviceList_after_closingConnection.lua +./test_scripts/Defects/6_1/995_OnSystemrequest_query_apps_after_unsuccessful_attempt.lua diff --git a/test_sets/Defects/Defects_release_7_0.txt b/test_sets/Defects/Defects_release_7_0.txt index f583f386d7..5779a89260 100644 --- a/test_sets/Defects/Defects_release_7_0.txt +++ b/test_sets/Defects/Defects_release_7_0.txt @@ -56,3 +56,6 @@ ./test_scripts/Defects/7_0/3175/3175_6_VR.OnLanguageChange_during_PTU_after_responding_to_BC_SystemRequest.lua ./test_scripts/Defects/7_0/3175/3175_7_VR.OnLanguageChange_during_PTU_after_sending_of_SDL_OnReceivedPolicyUpdate.lua ./test_scripts/Defects/7_0/3175/3175_8_VR.OnLanguageChange_during_PTU_after_receiving_of_SystemRequest.lua +./test_scripts/Defects/7_0/3164_1_OnInteriorVehicleData_empty_module_data.lua +./test_scripts/Defects/7_0/3164_2_GetInteriorVehicleData_empty_module_data_to_cache.lua +./test_scripts/Defects/7_0/3164_3_GetInteriorVehicleData_empty_module_data_from_cache.lua diff --git a/test_sets/Defects/Defects_release_7_1.txt b/test_sets/Defects/Defects_release_7_1.txt new file mode 100644 index 0000000000..c8a11f6597 --- /dev/null +++ b/test_sets/Defects/Defects_release_7_1.txt @@ -0,0 +1,42 @@ +./test_scripts/Defects/7_1/1583_PerformInteraction_UNSUPPORTED_and_ABORTED_response_success.lua +./test_scripts/Defects/7_1/1596_1_VRPerformInteraction_UNSUPPORTED_RESOURCE_success.lua +./test_scripts/Defects/7_1/1596_2_UIPerformInteraction_UNSUPPORTED_RESOURCE_success.lua +./test_scripts/Defects/7_1/1597_1_Alert_Unsupported_Speech_Type.lua +./test_scripts/Defects/7_1/1597_2_SubtleAlert_Unsupported_Speech_Type.lua +./test_scripts/Defects/7_1/1597_3_AlertManeuver_Unsupported_Speech_Type.lua +./test_scripts/Defects/7_1/1597_4_PerformAudioPassThru_Unsupported_Speech_Type.lua +./test_scripts/Defects/7_1/2803_Resumption_of_HMI_level_of_2nd_app.lua +./test_scripts/Defects/7_1/3406_SetAppIcon_spec_chars_in_syncFileName.lua +./test_scripts/Defects/7_1/2353_1_Request.lua +./test_scripts/Defects/7_1/2353_2_Response.lua +./test_scripts/Defects/7_1/2353_3_Notification.lua +./test_scripts/Defects/7_1/2354_1_Request.lua +./test_scripts/Defects/7_1/2354_2_Response.lua +./test_scripts/Defects/7_1/2354_3_Notification.lua +./test_scripts/Defects/7_1/2379_1_Request.lua +./test_scripts/Defects/7_1/2379_2_Response.lua +./test_scripts/Defects/7_1/2379_3_Notification.lua +./test_scripts/Defects/7_1/885_Alert.lua +./test_scripts/Defects/7_1/885_AlertManeuver.lua +./test_scripts/Defects/7_1/885_ScrollableMessage.lua +./test_scripts/Defects/7_1/885_ShowConstantTBT.lua +./test_scripts/Defects/7_1/885_UpdateTurnList.lua +./test_scripts/Defects/7_1/3469_RC_SetGlobalProperties_during_resumption.lua +./test_scripts/Defects/7_1/3469_UI_SetGlobalProperties_during_resumption.lua +./test_scripts/Defects/7_1/3409_1_Single_transport.lua +./test_scripts/Defects/7_1/3409_2_Multiple_transports.lua +./test_scripts/Defects/7_1/3580_Revoked_app_activated_via_device_consent.lua +./test_scripts/Defects/7_1/3610_Resumption_of_keyboard_capabilities_after_reset.lua +./test_scripts/Defects/7_1/3628_Postponed_RAI_protocol_4.lua +./test_scripts/Defects/7_1/3640_PTU_all_flows_Protected_Mode_v3.lua +./test_scripts/Defects/7_1/3659_OnSystemRequest_1st_frame_non-encrypted.lua +./test_scripts/Defects/7_1/3667_Revert_RC_SetGlobalProperties_on_failed_resumption.lua +./test_scripts/Defects/7_1/2604_Starting_of_protected_RPC_service_before_and_after_app_registration.lua +./test_scripts/Defects/7_1/1714_OnSystemRequest_send_binaryData_for_any_requestType.lua +./test_scripts/Defects/7_1/3412_Two_Streaming_apps_and_Alert_requests.lua +./test_scripts/Defects/7_1/3163_SDL_restart_with_gear_change.lua +./test_scripts/Defects/7_1/3620/3620_1_RPC_Service_NACK_invalid_bson.lua +./test_scripts/Defects/7_1/3620/3620_2_RPC_Service_NACK_protected_invalid_bson.lua +./test_scripts/Defects/7_1/3620/3620_3_RPC_Service_NACK_non_existed_session_id.lua +./test_scripts/Defects/7_1/3620/3620_4_RPC_Service_NACK_protected_non_existed_session_id.lua +./test_scripts/Defects/7_1/3620/3620_5_RPC_Service_NACK_before_OnSystemTimeReady.lua diff --git a/test_sets/Defects/Defects_releases_4_x_and_5_x.txt b/test_sets/Defects/Defects_releases_4_x_and_5_x.txt index 659e5a672d..19a8692f58 100644 --- a/test_sets/Defects/Defects_releases_4_x_and_5_x.txt +++ b/test_sets/Defects/Defects_releases_4_x_and_5_x.txt @@ -5,7 +5,7 @@ ./test_scripts/Defects/4_5/1873_UnsubscribeVD_OnVD_Parameters_empty_in_policy_table.lua ./test_scripts/Defects/4_5/1873_Parameters_empty_in_policy_table.lua ./test_scripts/Defects/4_5/1921_Invalid_PT_after_cutting_unknow_values.lua -;./test_scripts/Defects/4_6/842_App_does_not_activate_when_policies_are_disabled.lua https://github.com/smartdevicelink/sdl_core/issues/3285 +./test_scripts/Defects/4_6/842_App_does_not_activate_when_policies_are_disabled.lua ./test_scripts/Defects/5_0/1887_PoliciesManager_allows_all_requested_params_in_case_parameters_field_is_empty.lua ./test_scripts/Defects/5_0/2427_policy_db_consistency_after_ignition_cycle.lua ./test_scripts/Defects/5_0/2405/001_omitted_omitted_SUCCESS.lua @@ -18,45 +18,34 @@ ./test_scripts/Defects/5_0/2405/008_param_empty_SUCCESS_DISALLOWED.lua ./test_scripts/Defects/5_0/2405/009_param_param_SUCCESS.lua ;Security -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_1_navi.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_2_non-navi.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_3_navi_audio_force_off.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_4_navi_video_force_off.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_5_navi_audio_force_on.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_6_navi_video_force_on.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_1_navi.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_2_non-navi.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_3_navi_audio.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_4_navi_video.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_1_navi.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_2_non-navi.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_3_navi_audio.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_4_navi_video.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1922_1_navi_audio.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1922_2_navi_video.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1923_1_navi_audio.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1923_2_navi_video.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1924_1_non-navi.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1924_2_navi.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_1_navi_no_cert_new_app.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_2_navi_no_cert_existing_app.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_3_navi_cert_new_app.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_4_navi_cert_existing_app.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_5_non-navi_no_cert_new_app.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_6_non-navi_no_cert_existing_app.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_7_non-navi_cert_new_app.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 -;./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1925_8_non-navi_cert_existing_app.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2331 +./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_1_secure_service_RPC.lua +./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_2_secure_video_force_off.lua +./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_3_secure_audio_force_off.lua +./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_4_secure_video_force_on.lua +./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1888_5_secure_audio_force_on.lua +./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_1_RPC.lua +./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_2_audio.lua +./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1891_3_video.lua +./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_1_RPC.lua +./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_2_video.lua +./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1894_3_audio.lua +./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1922_1_audio.lua +./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1922_2_video.lua +./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1923_1_audio.lua +./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1923_2_video.lua +./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1924_1_non-navi.lua +./test_scripts/Defects/4_5/Trigger_PTU_NO_Certificate/1924_2_navi.lua ;Resumption ./test_scripts/Defects/4_5/1395_Resumption_data_IGN_OFF.lua ./test_scripts/Defects/5_0/959_resumption_limited_non_media.lua ./test_scripts/Defects/5_0/1898_Canceling_HMILevel_resumption_of_media_app_after_unexpectedDisconnect.lua ./test_scripts/Defects/5_0/2446_SDL_doesn_t_resume_HMILevel_when_DEACTIVATE_HMI_with_isActive_is_true_then_false.lua -;./test_scripts/Defects/5_0/2447_Resumption_revoked_app_still_be_resumed_as_FULL.lua https://github.com/smartdevicelink/sdl_core/issues/2447 +./test_scripts/Defects/5_0/2447_Resumption_revoked_app_still_be_resumed_as_FULL.lua ;RPC ./test_scripts/Defects/4_5/1211_ATF_Check_count_of_removals_for_bad_behavior_REQUEST_WHILE_IN_NONE_HMI_LEVEL.lua ./test_scripts/Defects/4_5/1880_DefaultAndRPCTimeoutGENERIC_ERROR.lua ./test_scripts/Defects/4_5/1881_OnDriverDistraction_After_changing_HMIlevel_from_NONE.lua -;./test_scripts/Defects/5_0/2457_Needed_fixes_sending_of_UpdateDeviceList_notification_on_device_connect.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2365 +./test_scripts/Defects/5_0/2457_Needed_fixes_sending_of_UpdateDeviceList_notification_on_device_connect.lua ./test_scripts/Defects/5_0/1031_SDL_transfer_OnKeyboardInput_notification_to_not_active_App_when_there_is_no_active_PerformInteraction_KEYBOARD.lua ./test_scripts/Defects/5_0/2480_Vefiry_that_SDL_sends_OnDD_notification_once_upon_registration.lua ./test_scripts/Defects/5_0/1035_SDL_doesnt_send_REJECTED_code_to_mobile_app_when_activating_app_from_HMI_with_activate.lua @@ -77,15 +66,15 @@ ./test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_3_SDL_respond_NACK_from_protected_to_not_protected.lua ./test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_4_SDL_respond_NACK_from_protected_to_protected.lua ./test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_5_SDL_respond_NACK_from_not_protected_to_not_protected.lua -;./test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_6_SDL_respond_ACK_from_not_protected_to_protected.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2366 +./test_scripts/Defects/5_0/2479_SDL_does_not_respond_NACK_to_second_request/2479_6_SDL_respond_ACK_from_not_protected_to_protected.lua ;HeartBeat -;./test_scripts/Defects/4_5/1893_ATF_HeartBeat_App_does_not_send_HB_and_does_not_respond.lua https://github.com/smartdevicelink/sdl_atf_test_scripts/issues/2374 -;./test_scripts/Defects/4_5/1892_HB_from_SDL_after_receiving_HB_from_mobile.lua https://github.com/smartdevicelink/sdl_core/issues/1892 +./test_scripts/Defects/4_5/1893_ATF_HeartBeat_App_does_not_send_HB_and_does_not_respond.lua +./test_scripts/Defects/4_5/1892_HB_from_SDL_after_receiving_HB_from_mobile.lua ;Remote Controol ./test_scripts/Defects/5_0/2670_GetInteriorVD_after_ignition_off.lua ./test_scripts/Defects/5_0/2670_2_GetInteriorVD_after_ignition_off.lua ./test_scripts/Defects/5_0/2670_3_GetInteriorVD_after_ignition_off.lua ./test_scripts/Defects/5_0/2670_4_GetInteriorVD_after_ignition_off.lua ;IGNITION OFF -;./test_scripts/Defects/4_5/1225_FACTORY_DEFAULTS.lua https://github.com/smartdevicelink/sdl_core/issues/3204 +./test_scripts/Defects/4_5/1225_FACTORY_DEFAULTS.lua ./test_scripts/Defects/5_0/2464_SDL_does_not_send_OnSDLClose_notification_by_switching_off_with_reason_IGNITION_OFF.lua diff --git a/test_sets/additional_submenus_and_driver_distraction.txt b/test_sets/additional_submenus_and_driver_distraction.txt index 0eb8b4535f..5a807c98dd 100644 --- a/test_sets/additional_submenus_and_driver_distraction.txt +++ b/test_sets/additional_submenus_and_driver_distraction.txt @@ -3,6 +3,6 @@ ./test_scripts/API/Additional_Submenus/003_delete_nested_submenu_with_nested_submenu_and_commands.lua ./test_scripts/API/Additional_Submenus/004_delete_top_level_submenu_with_nested_submenus_and_commands.lua ./test_scripts/API/Additional_Submenus/005_duplicate_name_different_level_success.lua -./test_scripts/API/Additional_Submenus/006_duplicate_name_same_level_fail.lua +./test_scripts/API/Additional_Submenus/006_duplicate_name_same_level.lua ./test_scripts/API/Additional_Submenus/007_non-existent_parentID.lua ./test_scripts/API/DriverDistractionCapability/001_get_driver_distraction_capability.lua diff --git a/test_sets/app_services.txt b/test_sets/app_services.txt index 35359efa84..69478cf5ff 100644 --- a/test_sets/app_services.txt +++ b/test_sets/app_services.txt @@ -81,6 +81,13 @@ ./test_scripts/AppServices/RPCPassThrough/011_UnknownRpc_Unsupported_Request.lua ./test_scripts/AppServices/RPCPassThrough/012_UnknownRpc_Request_Timeout.lua ./test_scripts/AppServices/RPCPassThrough/013_UnknownRpc_MultipleAS.lua +./test_scripts/AppServices/RPCPassThrough/WayPoints/001_GetWayPoints_Handled_Request.lua +./test_scripts/AppServices/RPCPassThrough/WayPoints/002_WayPointsSubscription_App_Provider.lua +./test_scripts/AppServices/RPCPassThrough/WayPoints/003_WayPointsSubscription_Not_Supported_by_HMI.lua +./test_scripts/AppServices/RPCPassThrough/WayPoints/004_WayPointsSubscription_Not_Handled_Request.lua +./test_scripts/AppServices/RPCPassThrough/WayPoints/005_WayPointsSubscription_Service_Unpublished_While_Subscribed.lua +./test_scripts/AppServices/RPCPassThrough/WayPoints/006_WayPointsSubscription_Service_Deactivated_While_Subscribed.lua +./test_scripts/AppServices/RPCPassThrough/WayPoints/007_WayPointsSubscription_HMI_Error.lua ./test_scripts/AppServices/SystemCapabilities/001_GetSystemCapability_success.lua ./test_scripts/AppServices/SystemCapabilities/002_GetSystemCapabilitySubscribe_OnSystemCapability_on_unregister.lua ./test_scripts/AppServices/SystemCapabilities/003_OnSystemCapability_on_deactivate_service.lua diff --git a/test_sets/hmi_ptu.txt b/test_sets/hmi_ptu.txt index dbb3052d16..465eb914ef 100644 --- a/test_sets/hmi_ptu.txt +++ b/test_sets/hmi_ptu.txt @@ -19,3 +19,5 @@ ./test_scripts/Policies/HMI_PTU/019_No_App_days_trigger.lua ./test_scripts/Policies/HMI_PTU/020_No_App_ignition_cycles_trigger.lua ./test_scripts/Policies/HMI_PTU/021_No_App_manual_trigger.lua +./test_scripts/Policies/HMI_PTU/022_No_App_connected_days_trigger.lua +./test_scripts/Policies/HMI_PTU/023_No_App_connected_ignition_cycles_trigger.lua diff --git a/test_sets/keyboard_enhancements.txt b/test_sets/keyboard_enhancements.txt new file mode 100644 index 0000000000..888fea787c --- /dev/null +++ b/test_sets/keyboard_enhancements.txt @@ -0,0 +1,24 @@ +./test_scripts/API/KeyboardEnhancements/Capabilities/001_HMI_provides_valid_values_for_all_parameters_in_KeyboardCapabilities.lua +./test_scripts/API/KeyboardEnhancements/Capabilities/002_HMI_provides_valid_value_for_one_parameter_in_KeyboardCapabilities.lua +./test_scripts/API/KeyboardEnhancements/Capabilities/003_HMI_doesnt_provide_KeyboardCapabilities.lua +./test_scripts/API/KeyboardEnhancements/Capabilities/004_HMI_doesnt_send_OnSCU.lua +./test_scripts/API/KeyboardEnhancements/Capabilities/005_HMI_provides_invalid_value_for_one_parameter_in_KeyboardCapabilities.lua +./test_scripts/API/KeyboardEnhancements/OnKeyboardInput/001_App_receives_OnKeyboardInput.lua +./test_scripts/API/KeyboardEnhancements/ResetGlobalProperties/001_App_resets_KeyboardProperties.lua +./test_scripts/API/KeyboardEnhancements/Resumption/001_SDL_resumes_KeyboardProperties_all_params.lua +./test_scripts/API/KeyboardEnhancements/Resumption/002_SDL_resumes_cached_KeyboardProperties.lua +./test_scripts/API/KeyboardEnhancements/Resumption/003_SDL_resumes_cached_KeyboardProperties_with_removed_autoCompleteList.lua +./test_scripts/API/KeyboardEnhancements/Resumption/004_SDL_resumes_cached_KeyboardProperties_single_parameter.lua +./test_scripts/API/KeyboardEnhancements/Resumption/005_SDL_resumes_KeyboardProperties_single_parameter.lua +./test_scripts/API/KeyboardEnhancements/SetGlobalProperties/001_App_sets_NUMERIC_keyboard.lua +./test_scripts/API/KeyboardEnhancements/SetGlobalProperties/002_App_masks_input_characters.lua +./test_scripts/API/KeyboardEnhancements/SetGlobalProperties/003_App_defines_invalid_value_for_maskInputCharacters.lua +./test_scripts/API/KeyboardEnhancements/SetGlobalProperties/004_App_defines_customKeys.lua +./test_scripts/API/KeyboardEnhancements/SetGlobalProperties/005_App_defines_customKeys_edge_cases.lua +./test_scripts/API/KeyboardEnhancements/SetGlobalProperties/006_App_defines_invalid_value_in_customKeys.lua +./test_scripts/API/KeyboardEnhancements/SetGlobalProperties/007_App_defines_excessive_value_in_customKeys.lua +./test_scripts/API/KeyboardEnhancements/SetGlobalProperties/008_App_defines_not_supported_special_character_in_customKeys.lua +./test_scripts/API/KeyboardEnhancements/SetGlobalProperties/009_Multiple_apps_set_KeyboardProperties.lua +./test_scripts/API/KeyboardEnhancements/SetGlobalProperties/010_App_sets_masking_if_its_not_supported.lua +./test_scripts/API/KeyboardEnhancements/SetGlobalProperties/011_App_sets_layout_if_its_not_supported.lua +./test_scripts/API/KeyboardEnhancements/SetGlobalProperties/012_App_defines_excessive_value_in_customKeys_a_few_requests.lua diff --git a/test_sets/oem_exclusive.txt b/test_sets/oem_exclusive.txt new file mode 100644 index 0000000000..e95ac15c65 --- /dev/null +++ b/test_sets/oem_exclusive.txt @@ -0,0 +1,34 @@ +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/001_All_VehicleTypeData_Ack.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/002_1_VehicleTypeData_with_one_omitted_param_Ack.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/002_2_VehicleTypeData_without_not_mandatory_params_Ack.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/003_EndService_right_after_StartServiceAck.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/004_All_VehicleTypeData_RAI.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/005_1_VehicleTypeData_with_one_omitted_param_RAI.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/005_2_VehicleTypeData_without_not_mandatory_params_RAI.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/006_App_unregistration_right_after_RAI.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/007_1_GetVT_error_initial_cap.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/007_2_GetVT_no_response_initial_cap.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/007_3_GetVT_invalid_resp_initial_cap.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/009_Cached_VehicleTypeData_Ack_RAI.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/010_GetSI_systemHardwareVersion_snapshot.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/011_GetSI_systemHardwareVersion_valid_boundary.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/012_1_GetSI_systemHardwareVersion_invalid_boundary_empty_values.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/012_2_GetSI_systemSoftwareVersion_invalid_boundary_value_from_DB.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/013_VehicleTypeData_RAI_4th_protocol.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/014_1_VehicleTypeData_from_DB_and_updated_from_GetVT.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/014_2_VehicleTypeData_from_DB_and_from_initial_cap.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/015_1_GetSI_ccpu_updated_and_updated_from_GetVT.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/015_2_GetSI_ccpu_version_updated_and_from_initial_cap.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/016_Audio_video_services.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/017_All_VehicleTypeData_pretected_Ack.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/018_1_VehicleTypeData_multiple_apps.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/018_2_GetSI_and_GetVT_delayed_multiple_Apps.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/019_1_GetSI_delayed_RAI_on_4th_protocol.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/019_2_GetVT_delayed_RAI_on_4th_protocol.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/019_3_GetVT_GetSI_delayed_RAI_on_4th_protocol.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/019_4_GetSI_new_ign_cycle_delayed_RAI_on_4th_protocol.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/020_1_GetSI_delayed_RAI_on_5_3_protocol.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/020_2_GetVT_delayed_RAI_on_5_3_protocol.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/020_3_GetVT_GetSI_delayed_RAI_on_5_3_protocol.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/020_4_GetSI_new_ign_cycle_delayed_RAI_on_5_3_protocol.lua +./test_scripts/Protocol/Enable_OEM_exclusive_apps_support/021_No_VehicleTypeData_Ack_5.3_protocol.lua diff --git a/test_sets/policies_all_flows.txt b/test_sets/policies_all_flows.txt index 7427a2447f..bae21eb15e 100644 --- a/test_sets/policies_all_flows.txt +++ b/test_sets/policies_all_flows.txt @@ -42,7 +42,7 @@ ./test_scripts/Policies/build_options/087_ATF_New_PTU_Sequence_AppRegistered_PTU_Progress_HTTP.lua ./test_scripts/Policies/build_options/088_ATF_Apply_UpdatedPT_after_OnReceivedPolicyUpdate_from_HMI_PROPRIETARY.lua ./test_scripts/Policies/build_options/089_ATF_Check_SDL_respond_GetURLs_Request_fromHMI_PROPRIETARY.lua -;./test_scripts/Policies/build_options/090_ATF_For_PTU_use_consented_device_only.lua +./test_scripts/Policies/build_options/090_ATF_For_PTU_use_consented_device_only.lua ./test_scripts/Policies/build_options/091_ATF_Check_STATUS_UPDATE_NEEDED_PROPRIETARY.lua ./test_scripts/Policies/build_options/093_ATF_OnStatusUpdate_Trigger_PROPRIETARY.lua ./test_scripts/Policies/build_options/094_ATF_PTS_creation_rule_PROPRIETARY.lua @@ -322,7 +322,7 @@ ./test_scripts/Policies/user_consent_of_Policies/212_ATF_Data_consent_device_not_in_LPT.lua ./test_scripts/Policies/user_consent_of_Policies/213_ATF_No_user_consent_prompt_in_group.lua ./test_scripts/Policies/user_consent_of_Policies/214_ATF_User_consent_prompt_persists.lua -;./test_scripts/Policies/user_consent_of_Policies/215_ATF_User_clears_all_applications.lua +./test_scripts/Policies/user_consent_of_Policies/215_ATF_User_clears_all_applications.lua ./test_scripts/Policies/user_consent_of_Policies/216_ATF_User_consent_storage_in_LPT.lua ./test_scripts/Policies/user_consent_of_Policies/217_ATF_Consent_status_allowed_on_device_connect.lua ./test_scripts/Policies/user_consent_of_Policies/218_ATF_Consent_status_not_allowed_on_device_connect.lua @@ -405,7 +405,7 @@ ./test_scripts/Policies/Validation_of_PolicyTables/299_ATF_Memory_Kb_Constraints_Ignoring.lua ./test_scripts/Policies/Validation_of_PolicyTables/300_ATF_HP_Applying_Heart_Beat_Timeout_Ms_From_PT.lua ./test_scripts/Policies/Validation_of_PolicyTables/301_ATF_usage_and_error_counts_update_app_registration_language_vui.lua -;./test_scripts/Policies/Validation_of_PolicyTables/302_ATF_HP_Applying_Heart_Beat_Timeout_Ms_After_PTU.lua 2550 +./test_scripts/Policies/Validation_of_PolicyTables/302_ATF_HP_Applying_Heart_Beat_Timeout_Ms_After_PTU.lua ./test_scripts/Policies/Validation_of_PolicyTables/303_ATF_HP_Usage_And_Error_Counts_For_AppID.lua ./test_scripts/Policies/Validation_of_PolicyTables/304_ATF_HP_Validation_Count_Of_User_Selections.lua ./test_scripts/Policies/Validation_of_PolicyTables/306_ATF_Update_count_of_run_attempts_while_revoked_in_PT.lua diff --git a/test_sets/policies_happy_paths_EXTERNAL_PROPRIETARY.txt b/test_sets/policies_happy_paths_EXTERNAL_PROPRIETARY.txt index 5d626256b2..c05345ad18 100644 --- a/test_sets/policies_happy_paths_EXTERNAL_PROPRIETARY.txt +++ b/test_sets/policies_happy_paths_EXTERNAL_PROPRIETARY.txt @@ -45,6 +45,7 @@ ./test_scripts/Policies/appID_Management/045_ATF_Register_App_Interface_Assign_Default_Policies_To_Application_Which_Appid_Does_Not_Exist_In_LPT.lua ./test_scripts/Policies/appID_Management/046_ATF_Register_App_Interface_Assign_Existing_Policies_To_Application_Which_Appid_Exists_In_LPT.lua ./test_scripts/Policies/build_options/047_ATF_SDL_Build_DEXTENDED_POLICY_EXTERNAL_PROPRIETARY.lua +./test_scripts/Policies/build_options/090_ATF_For_PTU_use_consented_device_only.lua ./test_scripts/Policies/Policies_Security/119_ATF_P_Policies_Performance_Requirement.lua ./test_scripts/Policies/Policies_Security/120_ATF_PolicyTable_Certificate_EMPTY_value.lua ./test_scripts/Policies/Policy_Table_Update/121_ATF_PTU_AppID_NotListed_PT_DeviceConsented_SecondApp.lua @@ -137,6 +138,7 @@ ./test_scripts/Policies/user_consent_of_Policies/212_ATF_Data_consent_device_not_in_LPT.lua ./test_scripts/Policies/user_consent_of_Policies/213_ATF_No_user_consent_prompt_in_group.lua ./test_scripts/Policies/user_consent_of_Policies/214_ATF_User_consent_prompt_persists.lua +./test_scripts/Policies/user_consent_of_Policies/215_ATF_User_clears_all_applications.lua ./test_scripts/Policies/user_consent_of_Policies/216_ATF_User_consent_storage_in_LPT.lua ./test_scripts/Policies/user_consent_of_Policies/217_ATF_Consent_status_allowed_on_device_connect.lua ./test_scripts/Policies/user_consent_of_Policies/218_ATF_Consent_status_not_allowed_on_device_connect.lua @@ -223,7 +225,7 @@ ./test_scripts/Policies/Validation_of_PolicyTables/299_ATF_Memory_Kb_Constraints_Ignoring.lua ./test_scripts/Policies/Validation_of_PolicyTables/300_ATF_HP_Applying_Heart_Beat_Timeout_Ms_From_PT.lua ./test_scripts/Policies/Validation_of_PolicyTables/301_ATF_usage_and_error_counts_update_app_registration_language_vui.lua -;./test_scripts/Policies/Validation_of_PolicyTables/302_ATF_HP_Applying_Heart_Beat_Timeout_Ms_After_PTU.lua 2550 +./test_scripts/Policies/Validation_of_PolicyTables/302_ATF_HP_Applying_Heart_Beat_Timeout_Ms_After_PTU.lua ./test_scripts/Policies/Validation_of_PolicyTables/303_ATF_HP_Usage_And_Error_Counts_For_AppID.lua ./test_scripts/Policies/Validation_of_PolicyTables/304_ATF_HP_Validation_Count_Of_User_Selections.lua ./test_scripts/Policies/Validation_of_PolicyTables/306_ATF_Update_count_of_run_attempts_while_revoked_in_PT.lua diff --git a/test_sets/same_app_from_multiple_devices.txt b/test_sets/same_app_from_multiple_devices.txt index d2168e90d9..3c5e931552 100644 --- a/test_sets/same_app_from_multiple_devices.txt +++ b/test_sets/same_app_from_multiple_devices.txt @@ -42,8 +42,8 @@ ./test_scripts/TheSameApp/Subscriptions/010_Two_apps_with_same_appName_DIFF_devices_perform_AudioPassThru.lua ./test_scripts/TheSameApp/Protocol/001_Protocol_SubscribeButton_from_2_apps_with_same_appName_diff_appID_DIFF_devices.lua ./test_scripts/TheSameApp/Protocol/002_Protocol_SubscribeButton_from_2_apps_with_same_appName_same_appID_DIFF_devices.lua -;./test_scripts/TheSameApp/Protocol/003_Protocol_GetSystemCapability_from_2_apps_with_same_appName_diff_appID_DIFF_devices.lua -;./test_scripts/TheSameApp/Protocol/004_Protocol_GetSystemCapability_from_2_apps_with_same_appName_same_appID_DIFF_devices.lua +./test_scripts/TheSameApp/Protocol/003_Protocol_ShowAppMenu_from_2_apps_with_same_appName_diff_appID_DIFF_devices.lua +./test_scripts/TheSameApp/Protocol/004_Protocol_ShowAppMenu_from_2_apps_with_same_appName_same_appID_DIFF_devices.lua ./test_scripts/TheSameApp/Protocol/005_Protocol_StartService_from_2_apps_with_same_appName_diff_appID_DIFF_devices.lua ./test_scripts/TheSameApp/Protocol/006_Protocol_StartService_from_2_apps_with_same_appName_same_appID_DIFF_devices.lua ./test_scripts/TheSameApp/Security/001_Send_RPC_or_encrypted_RPC_in_protected_unprotected_mode_apps_with_same_appName_appID_from_2_devices.lua diff --git a/test_sets/sdl_6_0.txt b/test_sets/sdl_6_0.txt index 5b077e74f2..432dfe2c4f 100644 --- a/test_sets/sdl_6_0.txt +++ b/test_sets/sdl_6_0.txt @@ -448,8 +448,8 @@ ./test_scripts/TheSameApp/Subscriptions/010_Two_apps_with_same_appName_DIFF_devices_perform_AudioPassThru.lua ./test_scripts/TheSameApp/Protocol/001_Protocol_SubscribeButton_from_2_apps_with_same_appName_diff_appID_DIFF_devices.lua ./test_scripts/TheSameApp/Protocol/002_Protocol_SubscribeButton_from_2_apps_with_same_appName_same_appID_DIFF_devices.lua -;./test_scripts/TheSameApp/Protocol/003_Protocol_GetSystemCapability_from_2_apps_with_same_appName_diff_appID_DIFF_devices.lua -;./test_scripts/TheSameApp/Protocol/004_Protocol_GetSystemCapability_from_2_apps_with_same_appName_same_appID_DIFF_devices.lua +./test_scripts/TheSameApp/Protocol/003_Protocol_ShowAppMenu_from_2_apps_with_same_appName_diff_appID_DIFF_devices.lua +./test_scripts/TheSameApp/Protocol/004_Protocol_ShowAppMenu_from_2_apps_with_same_appName_same_appID_DIFF_devices.lua ./test_scripts/TheSameApp/Protocol/005_Protocol_StartService_from_2_apps_with_same_appName_diff_appID_DIFF_devices.lua ./test_scripts/TheSameApp/Protocol/006_Protocol_StartService_from_2_apps_with_same_appName_same_appID_DIFF_devices.lua ./test_scripts/TheSameApp/Security/001_Send_RPC_or_encrypted_RPC_in_protected_unprotected_mode_apps_with_same_appName_appID_from_2_devices.lua diff --git a/test_sets/smoke_tests.txt b/test_sets/smoke_tests.txt index 565afab1ad..e75df31fbc 100644 --- a/test_sets/smoke_tests.txt +++ b/test_sets/smoke_tests.txt @@ -54,6 +54,7 @@ ./test_scripts/Smoke/API/053_GetInteriorVehicleDataConsent_PositiveCase_SUCCESS.lua ./test_scripts/Smoke/API/054_ReleaseInteriorVehicleDataModule_PositiveCase_SUCCESS.lua ./test_scripts/Smoke/API/055_GetInteriorVehicleData_PositiveCase_SUCCESS.lua +./test_scripts/Smoke/API/056_SendHapticData_PositiveCase_SUCCESS.lua ./test_scripts/API/SubtleAlertStyle/SubtleAlert/001_PositiveCase_With_SoftButtons_SUCCESS.lua ./test_scripts/AppServices/PublishAppService/001_Mobile_success_flow.lua ./test_scripts/AppServices/PublishAppService/002_HMI_success_flow.lua @@ -96,3 +97,5 @@ ./test_scripts/Smoke/Resumption/011_Resumption_unexpected_disconnect.lua ./test_scripts/Smoke/ShutDown/001_ShutDown_IGNITION_OFF.lua ./test_scripts/Smoke/ShutDown/002_ShutDown_MASTER_RESET.lua +./test_scripts/API/SameMenuName/001_MenuName.lua +./test_scripts/API/SameMenuName/002_CreateInteractionChoiceSet.lua diff --git a/test_sets/update_VideoStreamingCapabilities.txt b/test_sets/update_VideoStreamingCapabilities.txt new file mode 100644 index 0000000000..91126b6c7e --- /dev/null +++ b/test_sets/update_VideoStreamingCapabilities.txt @@ -0,0 +1,44 @@ +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/001_GetCapabilities_with_addVSC.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/002_GetCapabilities_without_AddVSC.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/003_GetCapabilities_AddVSC_part_of_params.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/004_GetCapabilities_AddVSC_missing_all_params.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/005_GetCapabilities_with_addVSC_only.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/006_GetCapabilities_with_addVSC_nested.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/007_GetCapabilities_with_addVSC_deep_nested.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/008_GetCapabilities_in_range_minsize_maxsize_array.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/009_GetCapabilities_out_of_range_minsize_maxsize_array.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/010_GetCapabilities_invalid_AddVSC.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/011_GetCapabilities_caching_of_addVSC_no_nesting.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/012_GetCapabilities_caching_of_addVSC_nesting.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetCapabilities/013_GetCapabilities_caching_of_addVSC_invalid.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/001_GetSystemCapability_with_addVSC.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/002_GetSystemCapability_subscribe.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/003_GetSystemCapability_unsubscribe.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/004_GetSystemCapability_after_OnSystemCapabilityUpdated_same_app.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/GetSystemCapability/005_GetSystemCapability_after_OnSystemCapabilityUpdated_other_app.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/001_OnAppCapabilityUpdated_from_mobile_to_HMI_happy_path.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/002_OnAppCapabilityUpdated_from_mobile_to_HMI_capability_parameter_non_mandatory_parameter_is_missed.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/003_OnAppCapabilityUpdated_from_mobile_to_HMI_mandatory_parameter_is_missed.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/004_OnAppCapabilityUpdated_capability_parameter_has_additionalVideoStreamingCapabilities_only.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/005_OnAppCapabilityUpdated_additionalVideoStreamingCapabilities_has_nesting_level.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/006_OnAppCapabilityUpdated_from_mobile_to_HMI_not_allowed_by_Policy_after_PTU.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/007_OnAppCapabilityUpdated_from_mobile_to_HMI_capability_parameter_has_no_parameters.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/008_OnAppCapabilityUpdated_from_mobile_to_HMI_count_of_items_of_array_in_range.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/009_OnAppCapabilityUpdated_from_mobile_to_HMI_count_of_items_of_array_out_of_range.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/010_OnAppCapabilityUpdated_VCS_is_mismatched_with_additional_VCS_received_from_HMI_on_start.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/011_OnAppCapabilityUpdated_app_is_registered_with_lower_version_than_the_notification_required.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnAppCapabilityUpdated/012_OnAppCapabilityUpdated_from_mobile_to_HMI_capability_parameter_has_incorrect_parameters.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/001_OnSystemCapabilityUpdated_without_AddVSC.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/002_OnSystemCapabilityUpdated_with_addVSC.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/003_OnSystemCapabilityUpdated_missing_some_params.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/004_OnSystemCapabilityUpdated_missing_all_params.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/005_OnSystemCapabilityUpdated_in_range_minsize_maxsize_array.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/006_OnSystemCapabilityUpdated_out_of_range_minsize_maxsize_array.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/007_OnSystemCapabilityUpdated_invalid.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/008_OnSystemCapabilityUpdated_not_existing_appid.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/009_OnSystemCapabilityUpdated_no_appid.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/010_OnSystemCapabilityUpdated_mismatched_initial.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/011_OnSystemCapabilityUpdated_multiple_apps.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/OnSystemCapabilityUpdated/012_OnSystemCapabilityUpdated_caching.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/001_resolution_switching.lua +./test_scripts/Capabilities/UpdateVideoStreamingCapabilities/002_resolution_switching_secure_streaming.lua diff --git a/user_modules/IsReady_Template/ATF_Interface_IsReady_available_false_RAI_Template.lua b/user_modules/IsReady_Template/ATF_Interface_IsReady_available_false_RAI_Template.lua index 1a4c0aa20d..a70b37d2eb 100644 --- a/user_modules/IsReady_Template/ATF_Interface_IsReady_available_false_RAI_Template.lua +++ b/user_modules/IsReady_Template/ATF_Interface_IsReady_available_false_RAI_Template.lua @@ -253,12 +253,10 @@ function StopStartSDL_HMI_MOBILE_VR_TTS(self) text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/user_modules/IsReady_Template/Interfaces_RPC.lua b/user_modules/IsReady_Template/Interfaces_RPC.lua index d4e9d7022b..a79b9739aa 100644 --- a/user_modules/IsReady_Template/Interfaces_RPC.lua +++ b/user_modules/IsReady_Template/Interfaces_RPC.lua @@ -84,7 +84,6 @@ interfaces.RAI = { --{ name = "audioPassThruDisplayText2", characterSet = "UTF_8", width = 500, rows = 1}, --{ name = "sliderHeader", characterSet = "UTF_8", width = 500, rows = 1}, --{ name = "sliderFooter", characterSet = "UTF_8", width = 500, rows = 1}, - --{ name = "notificationText", characterSet = "UTF_8", width = 500, rows = 1}, --{ name = "menuName", characterSet = "UTF_8", width = 500, rows = 1}, --{ name = "secondaryText", characterSet = "UTF_8", width = 500, rows = 1}, --{ name = "tertiaryText", characterSet = "UTF_8", width = 500, rows = 1}, diff --git a/user_modules/IsReady_Template/isReady.lua b/user_modules/IsReady_Template/isReady.lua index ab5917b7a2..da5e0f0fa1 100644 --- a/user_modules/IsReady_Template/isReady.lua +++ b/user_modules/IsReady_Template/isReady.lua @@ -781,12 +781,10 @@ end text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), @@ -1144,12 +1142,10 @@ end text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/user_modules/IsReady_Template/testCasesForNavi_IsReady.lua b/user_modules/IsReady_Template/testCasesForNavi_IsReady.lua index 392d9505ef..0cd0dd55b9 100644 --- a/user_modules/IsReady_Template/testCasesForNavi_IsReady.lua +++ b/user_modules/IsReady_Template/testCasesForNavi_IsReady.lua @@ -171,12 +171,10 @@ function testCasesForNavi_IsReady.InitHMI_onReady_without_Navi_IsReady(self, exp text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/user_modules/IsReady_Template/testCasesForTTS_IsReady.lua b/user_modules/IsReady_Template/testCasesForTTS_IsReady.lua index c033c7a63f..e6ac0953a1 100644 --- a/user_modules/IsReady_Template/testCasesForTTS_IsReady.lua +++ b/user_modules/IsReady_Template/testCasesForTTS_IsReady.lua @@ -176,12 +176,10 @@ function testCasesForTTS_IsReady.InitHMI_onReady_without_TTS_IsReady(self, exp_o text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/user_modules/IsReady_Template/testCasesForUI_IsReady.lua b/user_modules/IsReady_Template/testCasesForUI_IsReady.lua index 212b27d404..3ef94f1562 100644 --- a/user_modules/IsReady_Template/testCasesForUI_IsReady.lua +++ b/user_modules/IsReady_Template/testCasesForUI_IsReady.lua @@ -176,12 +176,10 @@ function testCasesForUI_IsReady.InitHMI_onReady_without_UI_IsReady(self, exp_occ text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/user_modules/IsReady_Template/testCasesForVR_IsReady.lua b/user_modules/IsReady_Template/testCasesForVR_IsReady.lua index f5a870152c..72f63b6f28 100644 --- a/user_modules/IsReady_Template/testCasesForVR_IsReady.lua +++ b/user_modules/IsReady_Template/testCasesForVR_IsReady.lua @@ -175,12 +175,10 @@ function testCasesForVR_IsReady.InitHMI_onReady_without_VR_IsReady(self, exp_occ text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/user_modules/api/APIHelper.lua b/user_modules/api/APIHelper.lua new file mode 100644 index 0000000000..f7bbb36fcd --- /dev/null +++ b/user_modules/api/APIHelper.lua @@ -0,0 +1,195 @@ +---------------------------------------------------------------------------------------------------- +-- API Helper module +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]]------------------------------------------------------------------- +local utils = require("user_modules/utils") +local apiLoader = require("modules/api_loader") + +--[[ Module ]]-------------------------------------------------------------------------------------- +local m = {} + +--[[ Constants ]]----------------------------------------------------------------------------------- +m.apiType = { + MOBILE = "mobile", + HMI = "hmi" +} + +m.eventType = { + REQUEST = "request", + RESPONSE = "response", + NOTIFICATION = "notification" +} + +m.dataType = { + INTEGER = { type = "Integer", min = -2147483647, max = 2147483647 }, + FLOAT = { type = "Float", min = -1000000, max = 1000000 }, + DOUBLE = { type = "Double", min = -1000000000, max = 1000000000 }, + STRING = { type = "String", min = 1, max = 100 }, + BOOLEAN = { type = "Boolean" }, + ENUM = { type = "Enum" }, + STRUCT = { type = "Struct" } +} + +--[[ Variables ]]----------------------------------------------------------------------------------- +local api = { + mobile = apiLoader.init("data/MOBILE_API.xml"), + hmi = apiLoader.init("data/HMI_API.xml") +} + +local schema = { + mobile = api.mobile.interface[next(api.mobile.interface)], + hmi = api.hmi.interface["Common"] +} + +--[[ Functions ]]----------------------------------------------------------------------------------- + +--[[ @getType: Provide type of the parameter without interface +--! @parameters: +--! pType: type of the parameter (possibly with interface) +--! @return: type of the parameter +--]] +local function getType(pType) + if string.find(pType, "%.") then + return utils.splitString(pType, ".")[2] + end + return pType +end + +--[[ @getParamsData: Provide hierarchy of parameters and sub-parameters for the defined API function +--! @parameters: +--! pAPIType: type of the API, e.g. 'mobile' or 'hmi' +--! pEventType: type of the event, e.g. 'request', 'response' or 'notification' +--! pFuncName: name of the API function, e.g. 'GetVehicleData' +--! @return: structure with hierarchy of parameters +--]] +local function getParamsData(pAPIType, pEventType, pFuncName) + + local function buildParams(pTbl, pParams) + for k, v in pairs(pParams) do + pTbl[k] = utils.cloneTable(v) + if schema[pAPIType].struct[getType(v.type)] then + pTbl[k].data = {} + buildParams(pTbl[k].data, schema[pAPIType].struct[getType(v.type)].param) + pTbl[k].type = m.dataType.STRUCT.type + elseif schema[pAPIType].enum[getType(v.type)] then + pTbl[k].data = {} + for kk in utils.spairs(schema[pAPIType].enum[getType(v.type)]) do + table.insert(pTbl[k].data, kk) + end + pTbl[k].type = m.dataType.ENUM.type + end + end + end + + local function getAPIParams() + if pAPIType == m.apiType.MOBILE then + return schema.mobile.type[pEventType].functions[pFuncName].param + elseif pAPIType == m.apiType.HMI then + local iName = utils.splitString(pFuncName, ".")[1] + local fName = utils.splitString(pFuncName, ".")[2] + return api.hmi.interface[iName].type[pEventType].functions[fName].param + end + end + + local params = getAPIParams(pAPIType) + + local out = {} + buildParams(out, params) + + local function updateBooleanValue(pValue) + local o = pValue + if type(pValue) == "string" then + if pValue == "true" then o = true + elseif pValue == "false" then o = false + end + end + return o + end + + local function updateValues(pTbl) + for k, v in pairs(pTbl) do + if type(v) == "table" then + updateValues(v) + else + pTbl[k] = updateBooleanValue(v) + end + end + end + updateValues(out) + + return out +end + +--[[ @getGraph: Provide graph of all parameters for defined API function +--! @parameters: +--! pAPIType: type of the API, e.g. 'mobile' or 'hmi' +--! pEventType: type of the event, e.g. 'request', 'response' or 'notification' +--! pFuncName: name of the API function, e.g. 'GetVehicleData' +--! @return: graph of all parameters (incl. sub-parameters) for the API function +--]] +function m.getGraph(pAPIType, pEventType, pFuncName) + + local function getGraph(pParams, pGraph, pParentId) + for k, v in utils.spairs(pParams) do + local item = utils.cloneTable(v) + item.parentId = pParentId + item.name = k + if v.type ~= m.dataType.ENUM.type then + item.data = nil + end + table.insert(pGraph, item) + v.id = #pGraph + if v.type == m.dataType.STRUCT.type then + getGraph(v.data, pGraph, #pGraph) + end + end + return pGraph + end + + local apiParamsData = getParamsData(pAPIType, pEventType, pFuncName) + return getGraph(apiParamsData, {}) +end + +--[[ @getFullParamName: Provide full parameter name created based on hierarchy. +--! E.g. for the `pressure` sub-parameter it returns `tirePressure.innerLeftRear.pressure` +--! @parameters: +--! pGraph: graph which includes defined parameter +--! pId: id of the parameter in graph +--! @return: full name of the parameter +--]] +function m.getFullParamName(pGraph, pId) + local out = pGraph[pId].name + pId = pGraph[pId].parentId + while pId do + out = pGraph[pId].name .. "." .. out + pId = pGraph[pId].parentId + end + return out +end + +--[[ @getBranch: Provide branch (part of the initial graph) related to defined parameter +--! @parameters: +--! pGraph: graph which includes defined parameter +--! pId: id of the parameter in graph +--! @return: reduced graph with defined parameter and all it's sub-parameters +--]] +function m.getBranch(pGraph, pId) + local function getChildren(pGraph, pId, pTbl) + pTbl[pId] = true + for k, v in pairs(pGraph) do + if v.parentId == pId then + pTbl[k] = true + getChildren(pGraph, k, pTbl) + end + end + return pTbl + end + local children = getChildren(pGraph, pId, {}) + local branch = utils.cloneTable(pGraph) + for k in pairs(branch) do + if not children[k] then branch[k] = nil end + end + return branch +end + +return m diff --git a/user_modules/api/APITestDataGenerator.lua b/user_modules/api/APITestDataGenerator.lua new file mode 100644 index 0000000000..df30a5ea5d --- /dev/null +++ b/user_modules/api/APITestDataGenerator.lua @@ -0,0 +1,309 @@ +---------------------------------------------------------------------------------------------------- +-- API Test Data Generator module +---------------------------------------------------------------------------------------------------- +--[[ Required Shared libraries ]]------------------------------------------------------------------- +local api = require("user_modules/api/APIHelper") +local json = require("modules/json") + +--[[ Module ]]-------------------------------------------------------------------------------------- +local m = {} + +--[[ Constants ]]----------------------------------------------------------------------------------- +m.valueType = { + VALID_RANDOM = 1, + LOWER_IN_BOUND = 2, + UPPER_IN_BOUND = 3, + LOWER_OUT_OF_BOUND = 4, + UPPER_OUT_OF_BOUND = 5, + INVALID_TYPE = 6 +} + +--[[ Value generators ]]---------------------------------------------------------------------------- +math.randomseed(tonumber(tostring(os.time()):reverse():sub(1,6))) + +--[[ @getStringValue: Return value for 'string' data type +--! @parameters: +--! pTypeData: table with data type restrictions +--! @return: value for the parameter +--]] +local function getStringValue(pTypeData) + local length + if pTypeData.valueType == m.valueType.LOWER_IN_BOUND then + length = pTypeData.minlength + if not length then length = api.dataType.STRING.min end + elseif pTypeData.valueType == m.valueType.UPPER_IN_BOUND then + length = pTypeData.maxlength + if not length or length == 0 then length = api.dataType.STRING.max end + elseif pTypeData.valueType == m.valueType.LOWER_OUT_OF_BOUND then + length = pTypeData.minlength + if not length or length == 0 then length = api.dataType.STRING.min end + length = length - 1 + elseif pTypeData.valueType == m.valueType.UPPER_OUT_OF_BOUND then + length = pTypeData.maxlength + if not length or length == 0 then length = api.dataType.STRING.max end + length = length + 1 + elseif pTypeData.valueType == m.valueType.VALID_RANDOM then + local min = pTypeData.minlength + local max = pTypeData.maxlength + if not min or min == 0 then min = api.dataType.STRING.min end + if not max or max == 0 then max = api.dataType.STRING.max end + length = math.random(min, max) + elseif pTypeData.valueType == m.valueType.INVALID_TYPE then + return false + end + return string.rep("a", length) +end + +--[[ @getIntegerValue: Return value for 'integer' data type +--! @parameters: +--! pTypeData: table with data type restrictions +--! @return: value for the parameter +--]] +local function getIntegerValue(pTypeData) + local value + if pTypeData.valueType == m.valueType.LOWER_IN_BOUND then + value = pTypeData.minvalue + if not value then value = api.dataType.INTEGER.min end + elseif pTypeData.valueType == m.valueType.UPPER_IN_BOUND then + value = pTypeData.maxvalue + if not value then value = api.dataType.INTEGER.max end + elseif pTypeData.valueType == m.valueType.LOWER_OUT_OF_BOUND then + value = pTypeData.minvalue + if not value then value = api.dataType.INTEGER.min end + value = value - 1 + elseif pTypeData.valueType == m.valueType.UPPER_OUT_OF_BOUND then + value = pTypeData.maxvalue + if not value then value = api.dataType.INTEGER.max end + value = value + 1 + elseif pTypeData.valueType == m.valueType.VALID_RANDOM then + local min = pTypeData.minvalue + local max = pTypeData.maxvalue + if not min then min = api.dataType.INTEGER.min end + if not max then max = api.dataType.INTEGER.max end + value = math.random(min, max) + elseif pTypeData.valueType == m.valueType.INVALID_TYPE then + return true + end + return value +end + +--[[ @getFloatValue: Return value for 'float' data type +--! @parameters: +--! pTypeData: table with data type restrictions +--! @return: value for the parameter +--]] +local function getFloatValue(pTypeData) + local value + if pTypeData.valueType == m.valueType.LOWER_IN_BOUND then + value = pTypeData.minvalue + if not value then value = api.dataType.FLOAT.min end + elseif pTypeData.valueType == m.valueType.UPPER_IN_BOUND then + value = pTypeData.maxvalue + if not value then value = api.dataType.FLOAT.max end + elseif pTypeData.valueType == m.valueType.LOWER_OUT_OF_BOUND then + value = pTypeData.minvalue + if not value then value = api.dataType.FLOAT.min end + value = value - 0.1 + elseif pTypeData.valueType == m.valueType.UPPER_OUT_OF_BOUND then + value = pTypeData.maxvalue + if not value then value = api.dataType.FLOAT.max end + value = value + 0.1 + elseif pTypeData.valueType == m.valueType.VALID_RANDOM then + local min = pTypeData.minvalue + local max = pTypeData.maxvalue + if not min then min = api.dataType.FLOAT.min end + if not max then max = api.dataType.FLOAT.max end + value = tonumber(string.format('%.02f', math.random() + math.random(min, max-1))) + elseif pTypeData.valueType == m.valueType.INVALID_TYPE then + return true + end + return value +end + +--[[ @getDoubleValue: Return value for 'double' data type +--! @parameters: +--! pTypeData: table with data type restrictions +--! @return: value for the parameter +--]] +local function getDoubleValue(pTypeData) + local value + if pTypeData.valueType == m.valueType.LOWER_IN_BOUND then + value = pTypeData.minvalue + if not value then value = api.dataType.DOUBLE.min end + elseif pTypeData.valueType == m.valueType.UPPER_IN_BOUND then + value = pTypeData.maxvalue + if not value then value = api.dataType.DOUBLE.max end + elseif pTypeData.valueType == m.valueType.LOWER_OUT_OF_BOUND then + value = pTypeData.minvalue + if not value then value = api.dataType.DOUBLE.min end + value = value - 0.1 + elseif pTypeData.valueType == m.valueType.UPPER_OUT_OF_BOUND then + value = pTypeData.maxvalue + if not value then value = api.dataType.DOUBLE.max end + value = value + 0.1 + elseif pTypeData.valueType == m.valueType.VALID_RANDOM then + local min = pTypeData.minvalue + local max = pTypeData.maxvalue + if not min then min = api.dataType.DOUBLE.min end + if not max then max = api.dataType.DOUBLE.max end + value = tonumber(string.format('%.02f', math.random() + math.random(min, max-1))) + elseif pTypeData.valueType == m.valueType.INVALID_TYPE then + return true + end + return value +end + +--[[ @getBooleanValue: Return value for 'boolean' data type +--! @parameters: +--! pTypeData: table with data type restrictions +--! @return: value for the parameter +--]] +local function getBooleanValue(pTypeData) + if pTypeData.data and #pTypeData.data == 1 then + return pTypeData.data[1] + end + if pTypeData.valueType == m.valueType.VALID_RANDOM then + return math.random(0, 1) == 1 + elseif pTypeData.valueType == m.valueType.INVALID_TYPE then + return 123 + end + return true +end + +--[[ @getEnumTypeValue: Return value for 'enum' data type +--! @parameters: +--! pTypeData: table with data type restrictions +--! @return: value for the parameter +--]] +local function getEnumTypeValue(pTypeData) + if pTypeData.valueType == m.valueType.UPPER_OUT_OF_BOUND then + return #pTypeData.data + 1 + elseif pTypeData.valueType == m.valueType.VALID_RANDOM then + return pTypeData.data[math.random(1, #pTypeData.data)] + elseif pTypeData.valueType == m.valueType.INVALID_TYPE then + return false + end + return pTypeData.data[1] +end + +--[[ @getStructTypeValue: Return value for 'struct' data type +--! @parameters: +--! pGraph: graph with structure of parameters +--! pId: id of the parameter in graph +--! @return: value for the parameter +--]] +local function getStructTypeValue(_, pGraph, pId) + local childrenIds = {} + for k, v in pairs(pGraph) do + if v.parentId == pId then table.insert(childrenIds, k) end + end + if #childrenIds == 0 then + return {} + else + local out = {} + for _, id in pairs(childrenIds) do + m.buildParams(pGraph, id, out) + end + return out + end +end + +--[[ @getTypeValue: Return value for defined data type +--! Returned value depends on 'pTypeData.valueType' value +--! Could be any of 'm.valueType', default is VALID_RANDOM +--! @parameters: +--! pTypeData: table with data type restrictions +--! pGraph: graph with structure of parameters +--! pId: id of the parameter in graph +--! @return: value for the parameter +--]] +local function getTypeValue(pTypeData, pGraph, pId) + if not pTypeData.valueType then pTypeData.valueType = m.valueType.VALID_RANDOM end + local getValueFuncMap = { + [api.dataType.INTEGER.type] = getIntegerValue, + [api.dataType.FLOAT.type] = getFloatValue, + [api.dataType.DOUBLE.type] = getDoubleValue, + [api.dataType.STRING.type] = getStringValue, + [api.dataType.BOOLEAN.type] = getBooleanValue, + [api.dataType.ENUM.type] = getEnumTypeValue, + [api.dataType.STRUCT.type] = getStructTypeValue + } + return getValueFuncMap[pTypeData.type](pTypeData, pGraph, pId) +end + +--[[ @getNumOfItems: Return number of items for the parameter +--! For the array number of items depends on 'pTypeData.valueTypeArray' value +--! Could be any of 'm.valueType', default is VALID_RANDOM +--! For non-array '-1' will be returned +--! @parameters: +--! pTypeData: table with data type restrictions +--! @return: number of items for the parameter +--]] +local function getNumOfItems(pTypeData) + local arrayValueType = m.valueType.VALID_RANDOM + if pTypeData.valueTypeArray then arrayValueType = pTypeData.valueTypeArray end + local numOfItems = -1 + if pTypeData.array == true then + if arrayValueType == m.valueType.LOWER_IN_BOUND then + numOfItems = pTypeData.minsize + if not numOfItems then numOfItems = 0 end + elseif arrayValueType == m.valueType.UPPER_IN_BOUND then + numOfItems = pTypeData.maxsize + if not numOfItems or numOfItems == 0 then numOfItems = 100 end + elseif arrayValueType == m.valueType.LOWER_OUT_OF_BOUND then + numOfItems = pTypeData.minsize + elseif arrayValueType == m.valueType.UPPER_OUT_OF_BOUND then + numOfItems = pTypeData.maxsize + if not numOfItems or numOfItems == 0 then numOfItems = 100 end + numOfItems = numOfItems + 1 + elseif arrayValueType == m.valueType.VALID_RANDOM then + local min = 1 + local max = 5 + if pTypeData.minsize ~= nil and pTypeData.minsize > min then min = pTypeData.minsize end + if pTypeData.maxsize ~= nil and pTypeData.maxsize < max then max = pTypeData.maxsize end + numOfItems = math.random(min, max) + end + end + return numOfItems +end + +--[[ @buildParams: Provide value for defined parameter and it's sub-parameters +--! @parameters: +--! pGraph: graph with structure of parameters +--! pId: id of the parameter in graph +--! pParams: table with result (used for recursion) +--! @return: table with parameter and it's value +--]] +function m.buildParams(pGraph, pId, pParams) + local name = pGraph[pId].name + local data = pGraph[pId] + local numOfItems = getNumOfItems(data) + if numOfItems == -1 then + pParams[name] = getTypeValue(data, pGraph, pId) + elseif numOfItems == 0 then + pParams[name] = json.EMPTY_ARRAY + else + pParams[name] = {} + for i = 1, numOfItems do + pParams[name][i] = getTypeValue(data, pGraph, pId) + end + end + return pParams +end + +--[[ @getParamValues: Provide values for parameter(s) and it's sub-parameters +--! @parameters: +--! pGraph: graph with structure of parameters +--! @return: table with parameters and it's values +--]] +function m.getParamValues(pGraph) + local out = {} + for id in pairs(pGraph) do + if pGraph[id].parentId == nil then + m.buildParams(pGraph, id, out) + end + end + return out +end + +return m diff --git a/user_modules/connecttest_TTS_Isready.lua b/user_modules/connecttest_TTS_Isready.lua index 635bbc2657..a32a513a53 100644 --- a/user_modules/connecttest_TTS_Isready.lua +++ b/user_modules/connecttest_TTS_Isready.lua @@ -568,12 +568,10 @@ function module:initHMI_onReady() text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/user_modules/connecttest_VR_Isready.lua b/user_modules/connecttest_VR_Isready.lua index 712c9556e6..f5e0b00112 100644 --- a/user_modules/connecttest_VR_Isready.lua +++ b/user_modules/connecttest_VR_Isready.lua @@ -567,12 +567,10 @@ function module:initHMI_onReady() text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/user_modules/connecttest_initHMI.lua b/user_modules/connecttest_initHMI.lua index 670c45dd70..0a69fb33aa 100644 --- a/user_modules/connecttest_initHMI.lua +++ b/user_modules/connecttest_initHMI.lua @@ -549,12 +549,10 @@ function module:initHMI_onReady() text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/user_modules/connecttest_resumption.lua b/user_modules/connecttest_resumption.lua index 27903e56c0..2bf47bc0cb 100644 --- a/user_modules/connecttest_resumption.lua +++ b/user_modules/connecttest_resumption.lua @@ -551,12 +551,10 @@ function module:initHMI_onReady() text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/user_modules/dummy_connecttest.lua b/user_modules/dummy_connecttest.lua index 45c776f2d2..b2f65f1731 100644 --- a/user_modules/dummy_connecttest.lua +++ b/user_modules/dummy_connecttest.lua @@ -23,6 +23,7 @@ local Event = events.Event local Expectation = expectations.Expectation local SUCCESS = expectations.SUCCESS local FAILED = expectations.FAILED +local utils = require("user_modules/utils") --- HMI connection module.hmiConnection = hmi_connection.Connection(hmi_adapter_controller.getHmiAdapter({connection = ATF.remoteConnection})) @@ -345,7 +346,8 @@ function module:initHMI() "BasicCommunication.OnSystemTimeReady", "BasicCommunication.OnSystemCapabilityUpdated", "BasicCommunication.OnServiceUpdate", - "BasicCommunication.OnAppPropertiesChange" + "BasicCommunication.OnAppPropertiesChange", + "BasicCommunication.OnAppCapabilityUpdated" }) registerComponent("UI", { @@ -428,7 +430,7 @@ function module:initHMI_onReady(hmi_table, is_cache_used) local hmi_table_internal if type(hmi_table) == "table" then - hmi_table_internal = commonFunctions:cloneTable(hmi_table) + hmi_table_internal = utils.cloneTable(hmi_table) else hmi_table_internal = hmi_values.getDefaultHMITable() end diff --git a/user_modules/hmi_values.lua b/user_modules/hmi_values.lua index 9af94d9c1a..94d2a3f4bf 100644 --- a/user_modules/hmi_values.lua +++ b/user_modules/hmi_values.lua @@ -198,7 +198,8 @@ function module.getDefaultHMITable() params = { ccpu_version = "ccpu_version", language = "EN-US", - wersCountryCode = "wersCountryCode" + wersCountryCode = "wersCountryCode", + systemHardwareVersion = "systemHardwareVersion" }, mandatory = false, pinned = false @@ -318,8 +319,8 @@ function module.getDefaultHMITable() local fields = { "mainField1", "mainField2", "mainField3", "mainField4", "statusBar", "mediaClock", "mediaTrack", "alertText1", "alertText2", "alertText3", "scrollableMessageBody", "initialInteractionText", - "navigationText1", "navigationText2", "ETA", "totalDistance", "navigationText", "audioPassThruDisplayText1", - "audioPassThruDisplayText2", "sliderHeader", "sliderFooter", "notificationText", "menuName", + "navigationText1", "navigationText2", "ETA", "totalDistance", "audioPassThruDisplayText1", + "audioPassThruDisplayText2", "sliderHeader", "sliderFooter", "menuName", "secondaryText", "tertiaryText", "timeToDestination", "menuTitle", "locationName", "locationDescription", "addressLines", "phoneNumber", "subtleAlertText1", "subtleAlertText2", "subtleAlertSoftButtonText" @@ -405,7 +406,76 @@ function module.getDefaultHMITable() hapticSpatialDataSupported = false, diagonalScreenSize = 10, pixelPerInch = 150, - scale = 2.5 + scale = 2.5, + preferredFPS = 15, + additionalVideoStreamingCapabilities = { + { + preferredResolution = + { + resolutionWidth = 800, + resolutionHeight = 350 + }, + hapticSpatialDataSupported = true, + diagonalScreenSize = 10, + scale = 1 + }, + { + preferredResolution = + { + resolutionWidth = 320, + resolutionHeight = 240 + }, + diagonalScreenSize = 4, + hapticSpatialDataSupported = false + }, + { + preferredResolution = + { + resolutionWidth = 400, + resolutionHeight = 480 + }, + diagonalScreenSize = 5, + hapticSpatialDataSupported = true + }, + { + preferredResolution = + { + resolutionWidth = 640, + resolutionHeight = 480 + }, + diagonalScreenSize = 7, + hapticSpatialDataSupported = true + }, + { + preferredResolution = + { + resolutionWidth = 800, + resolutionHeight = 240 + }, + hapticSpatialDataSupported = true, + diagonalScreenSize = 8 + }, + { + preferredResolution = + { + resolutionWidth = 800, + resolutionHeight = 350 + }, + hapticSpatialDataSupported = false, + diagonalScreenSize = 4, + scale = 2.5 + }, + { + preferredResolution = + { + resolutionWidth = 800, + resolutionHeight = 350 + }, + hapticSpatialDataSupported = true, + diagonalScreenSize = 2, + scale = 5 + } + } }, driverDistractionCapability = { subMenuDepth = 3, diff --git a/user_modules/sequences/remote_control.lua b/user_modules/sequences/remote_control.lua index acbedddd9f..400aa19c28 100644 --- a/user_modules/sequences/remote_control.lua +++ b/user_modules/sequences/remote_control.lua @@ -1231,7 +1231,7 @@ function m.rc.policyTableUpdate(pPTUpdateFunc, pExpNotificationFunc) appPolicies.moduleType = m.data.getRcModuleTypes() end end - pPTUpdateFunc(ptuTable) + if pPTUpdateFunc then pPTUpdateFunc(ptuTable) end end actions.ptu.policyTableUpdate(ptuUpdateFunc, pExpNotificationFunc) end diff --git a/user_modules/shared_testcases/connecttest_TTS_Isready.lua b/user_modules/shared_testcases/connecttest_TTS_Isready.lua index 32a95ef62f..095320032f 100644 --- a/user_modules/shared_testcases/connecttest_TTS_Isready.lua +++ b/user_modules/shared_testcases/connecttest_TTS_Isready.lua @@ -552,12 +552,10 @@ function module:initHMI_onReady() text_field("navigationText2"), text_field("ETA"), text_field("totalDistance"), - text_field("navigationText"), text_field("audioPassThruDisplayText1"), text_field("audioPassThruDisplayText2"), text_field("sliderHeader"), text_field("sliderFooter"), - text_field("notificationText"), text_field("menuName"), text_field("secondaryText"), text_field("tertiaryText"), diff --git a/user_modules/shared_testcases/testCasesForExternalUCS.lua b/user_modules/shared_testcases/testCasesForExternalUCS.lua index f91f992b53..90d161cb77 100644 --- a/user_modules/shared_testcases/testCasesForExternalUCS.lua +++ b/user_modules/shared_testcases/testCasesForExternalUCS.lua @@ -16,6 +16,7 @@ local m = { } m.HMIAppIds = { } m.pts = nil + m.ptuInProgress = false -- [[ Functions ]] @@ -122,6 +123,7 @@ local m = { } test.hmiConnection:SendResponse(d.id, "BasicCommunication.SystemRequest", "SUCCESS", { }) test.hmiConnection:SendNotification("SDL.OnReceivedPolicyUpdate", { policyfile = policy_file_path .. "/" .. policy_file_name }) + m.ptuInProgress = false end) test.mobileSession1:ExpectResponse(corIdSystemRequest, { success = true, resultCode = "SUCCESS"}) end) @@ -129,6 +131,21 @@ local m = { } os.remove(ptu_file_name) end +--[[@initHMI_onReady: Init HMI +--]] + function m.initHMI_onReady(test) + test:initHMI_onReady() + EXPECT_HMICALL("BasicCommunication.PolicyUpdate") + :Do(function(exp, d) + if(exp.occurences == 1) then + test.hmiConnection:SendResponse(d.id, d.method, "SUCCESS", { }) + m.pts = m.createTableFromJsonFile(d.params.file) + m.ptuInProgress = true + end + end) + :Times(AnyNumber()) + end + --[[@startSession: Start mobile session --! @parameters: --! id - session number (1, 2 etc.) (mandatory) @@ -189,22 +206,30 @@ local m = { } end) end end) - EXPECT_HMICALL("BasicCommunication.PolicyUpdate") - :Do(function(exp, d) - if(exp.occurences == 1) then - test.hmiConnection:SendResponse(d.id, d.method, "SUCCESS", { }) - m.pts = m.createTableFromJsonFile(d.params.file) - if status then - updatePTU() - if updateFunc then - updateFunc(m.pts) - end - ptu(test, status) + if m.ptuInProgress then + if status then + updatePTU() + if updateFunc then + updateFunc(m.pts) end + ptu(test, status) end - end) - --TODO: Remove when issue "[GENIVI] SDL restarts PTU sequence with sending redundant BC.PolicyUpdate" is resolved - :Times(AtLeast(1)) + else + EXPECT_HMICALL("BasicCommunication.PolicyUpdate") + :Do(function(exp, d) + if(exp.occurences == 1) then + test.hmiConnection:SendResponse(d.id, d.method, "SUCCESS", { }) + m.pts = m.createTableFromJsonFile(d.params.file) + if status then + updatePTU() + if updateFunc then + updateFunc(m.pts) + end + ptu(test, status) + end + end + end) + end end --[[@updatePreloadedPT: Update PreloadedPT file diff --git a/user_modules/utils.lua b/user_modules/utils.lua index 3d98b5d66c..134f2df6a1 100644 --- a/user_modules/utils.lua +++ b/user_modules/utils.lua @@ -428,4 +428,18 @@ function m.getDeviceTransportType() end end +--[[ @splitString: split string by defined delimiter +--! @parameters: +--! pStr - string to be split +--! pDelimiter - delimiter +--! @return: table with string parts +--]] +function m.splitString(pStr, pDelimiter) + local result = {} + for match in (pStr .. pDelimiter):gmatch("(.-)%" .. pDelimiter) do + if string.len(match) > 0 then table.insert(result, match) end + end + return result +end + return m