12 lines
13 KiB
PHP
12 lines
13 KiB
PHP
<?php
|
|
header("Content-Type: application/json");
|
|
$base = "/var/www/html/api/ambre-pw-tests/tests";
|
|
$content = base64_decode("Y29uc3QgeyB0ZXN0LCBleHBlY3QgfSA9IHJlcXVpcmUoIkBwbGF5d3JpZ2h0L3Rlc3QiKTsKY29uc3QgZnMgPSByZXF1aXJlKCJmcyIpOwpjb25zdCBwYXRoID0gcmVxdWlyZSgicGF0aCIpOwoKY29uc3QgQ0FQQUJJTElUSUVTID0gWwogIHsgbmFtZTogIlBERiIsICAgICAgbXNnOiAiR2VuZXJlIHVuIFBERiBzdXI6IHN0cmF0ZWdpZSBlbnRlcnByaXNlIDIwMjYiLCAgICAgICAgIHJlZ2V4OiAvaHR0cHM6XC9cL1xTKz9cLnBkZi8sICBleHQ6ICJwZGYiLCAgZG93bmxvYWRhYmxlOiB0cnVlIH0sCiAgeyBuYW1lOiAiV29yZCIsICAgICBtc2c6ICJHZW5lcmUgdW4gZG9jdW1lbnQgV29yZCBzdXI6IHByb2NlZHVyZSBxdWFsaXRlIiwgICAgICAgIHJlZ2V4OiAvaHR0cHM6XC9cL1xTKz9cLmRvY3gvLCBleHQ6ICJkb2N4IiwgZG93bmxvYWRhYmxlOiB0cnVlIH0sCiAgeyBuYW1lOiAiUFBUIiwgICAgICBtc2c6ICJHZW5lcmUgdW5lIHByZXNlbnRhdGlvbiBzdXI6IHBpdGNoIGludmVzdG9yIHNlcmllQSIsICAgIHJlZ2V4OiAvaHR0cHM6XC9cL1xTKz9cLnBwdHgvLCBleHQ6ICJwcHR4IiwgZG93bmxvYWRhYmxlOiB0cnVlIH0sCiAgeyBuYW1lOiAiSW1hZ2UiLCAgICBtc2c6ICJHZW5lcmUgdW5lIGltYWdlOiBvYXNpcyBwYWxtaWVycyIsICAgICAgICAgICAgICAgICAgICAgIHJlZ2V4OiAvaHR0cHM6XC9cL1xTKz9cLnN2Zy8sICBleHQ6ICJzdmciLCAgZG93bmxvYWRhYmxlOiB0cnVlIH0sCiAgeyBuYW1lOiAiQ29kZSIsICAgICBtc2c6ICJFY3JpcyBsZSBjb2RlIHB5dGhvbiBwb3VyOiBmaWJvbmFjY2kgcmVjdXJzaWYiLCAgICAgICAgIHJlZ2V4OiAvaHR0cHM6XC9cL1xTKz9cLnB5LywgICBleHQ6ICJweSIsICAgZG93bmxvYWRhYmxlOiB0cnVlIH0sCiAgeyBuYW1lOiAiTWVybWFpZCIsICBtc2c6ICJHZW5lcmUgdW4gc2NoZW1hIG1lcm1haWQgcG91cjogd29ya2Zsb3cgY29tbWFuZGVzIiwgICAgIHJlZ2V4OiAvZ3JhcGggVERbXHNcU117MTAsNTAwfS8sIGV4dDogbnVsbCwgZG93bmxvYWRhYmxlOiBmYWxzZSB9LAogIHsgbmFtZTogIlRyYWR1aXJlIiwgbXNnOiAiVHJhZHVpcyBlbiBhbmdsYWlzOiBtZXJjaSBiZWF1Y291cCBwb3VyIHZvdHJlIGFpZGUiLCAgICByZWdleDogL0VuZ2xpc2g6XHMqXFNbXHNcU117MywyMDB9LywgZXh0OiBudWxsLCBkb3dubG9hZGFibGU6IGZhbHNlIH0sCl07Cgp0ZXN0KCJWOSByZWFsLWZpbGUgdmVyaWZpY2F0aW9uIMK3IGRvd25sb2FkICsgc2NyZWVuc2hvdCBwcm9vZiIsIGFzeW5jICh7IHBhZ2UsIGNvbnRleHQgfSkgPT4gewogIHRlc3Quc2V0VGltZW91dCg2MDAwMDApOwogIAogIGF3YWl0IHBhZ2UuZ290bygiL3dldmlhLmh0bWwiKTsKICBhd2FpdCBwYWdlLndhaXRGb3JMb2FkU3RhdGUoIm5ldHdvcmtpZGxlIik7CiAgYXdhaXQgcGFnZS53YWl0Rm9yVGltZW91dCgyNTAwKTsKICBhd2FpdCBwYWdlLnNjcmVlbnNob3QoeyBwYXRoOiAib3V0cHV0L3Y5LTAwLWNoYXQtaW5pdGlhbC5wbmciIH0pOwogIAogIGNvbnN0IHJlc3VsdHMgPSBbXTsKICAKICBmb3IgKGxldCBpID0gMDsgaSA8IENBUEFCSUxJVElFUy5sZW5ndGg7IGkrKykgewogICAgY29uc3QgY2FwID0gQ0FQQUJJTElUSUVTW2ldOwogICAgY29uc3QgbnVtID0gU3RyaW5nKGkgKyAxKS5wYWRTdGFydCgyLCAiMCIpOwogICAgY29uc29sZS5sb2coIlxu4pWQ4pWQ4pWQIFsiICsgbnVtICsgIi83XSAiICsgY2FwLm5hbWUgKyAiIOKVkOKVkOKVkCIpOwogICAgCiAgICB0cnkgewogICAgICAvLyAxLiBTZW5kIG1lc3NhZ2UKICAgICAgY29uc3QgaW5wdXQgPSBwYWdlLmxvY2F0b3IoIiNtc2dJbnB1dCIpOwogICAgICBhd2FpdCBpbnB1dC5jbGljayh7IGZvcmNlOiB0cnVlIH0pOwogICAgICBhd2FpdCBwYWdlLmtleWJvYXJkLnByZXNzKCJDb250cm9sK0EiKTsKICAgICAgYXdhaXQgcGFnZS5rZXlib2FyZC5wcmVzcygiRGVsZXRlIik7CiAgICAgIGF3YWl0IGlucHV0LmZpbGwoY2FwLm1zZyk7CiAgICAgIGF3YWl0IHBhZ2Uud2FpdEZvclRpbWVvdXQoNDAwKTsKICAgICAgYXdhaXQgaW5wdXQucHJlc3MoIkVudGVyIik7CiAgICAgIGNvbnNvbGUubG9nKCIgIPCfk6Qgc2VudDogIiArIGNhcC5tc2cpOwogICAgICAKICAgICAgLy8gMi4gV2FpdCBmb3IgcmVzcG9uc2UgbWF0Y2hpbmcgcmVnZXgKICAgICAgY29uc3Qgd2FpdFN0YXJ0ID0gRGF0ZS5ub3coKTsKICAgICAgbGV0IG1hdGNoZWRVcmwgPSBudWxsOwogICAgICBsZXQgbWF0Y2hlZENvbnRlbnQgPSBudWxsOwogICAgICB3aGlsZSAoRGF0ZS5ub3coKSAtIHdhaXRTdGFydCA8IDQ1MDAwKSB7CiAgICAgICAgY29uc3QgYm9keVRleHQgPSBhd2FpdCBwYWdlLmV2YWx1YXRlKCgpID0+IGRvY3VtZW50LmJvZHkuaW5uZXJUZXh0KTsKICAgICAgICBjb25zdCBtID0gYm9keVRleHQubWF0Y2goY2FwLnJlZ2V4KTsKICAgICAgICBpZiAobSkgeyAKICAgICAgICAgIG1hdGNoZWRDb250ZW50ID0gbVswXTsKICAgICAgICAgIGlmIChjYXAuZG93bmxvYWRhYmxlKSBtYXRjaGVkVXJsID0gbVswXTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBhd2FpdCBwYWdlLndhaXRGb3JUaW1lb3V0KDE1MDApOwogICAgICB9CiAgICAgIGNvbnN0IGVsYXBzZWQgPSAoKERhdGUubm93KCkgLSB3YWl0U3RhcnQpIC8gMTAwMCkudG9GaXhlZCgxKTsKICAgICAgCiAgICAgIGlmICghbWF0Y2hlZENvbnRlbnQpIHsKICAgICAgICBjb25zb2xlLmxvZygiICDinYwgbm8gbWF0Y2ggYWZ0ZXIgIiArIGVsYXBzZWQgKyAicyIpOwogICAgICAgIGF3YWl0IHBhZ2Uuc2NyZWVuc2hvdCh7IHBhdGg6ICJvdXRwdXQvdjktIiArIG51bSArICItIiArIGNhcC5uYW1lICsgIi1GQUlMLnBuZyIgfSk7CiAgICAgICAgcmVzdWx0cy5wdXNoKHsgbmFtZTogY2FwLm5hbWUsIG9rOiBmYWxzZSwgcmVhc29uOiAibm9fcmVzcG9uc2VfbWF0Y2giIH0pOwogICAgICAgIGNvbnRpbnVlOwogICAgICB9CiAgICAgIGNvbnNvbGUubG9nKCIgIOKchSByZXNwb25zZSBtYXRjaGVkIGluICIgKyBlbGFwc2VkICsgInMiKTsKICAgICAgCiAgICAgIC8vIFNjcm9sbCArIGNoYXQgc2NyZWVuc2hvdAogICAgICBhd2FpdCBwYWdlLmV2YWx1YXRlKCgpID0+IHsgY29uc3QgbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtZXNzYWdlcyIpOyBpZiAobSkgbS5zY3JvbGxUb3AgPSBtLnNjcm9sbEhlaWdodDsgfSk7CiAgICAgIGF3YWl0IHBhZ2Uud2FpdEZvclRpbWVvdXQoMTUwMCk7CiAgICAgIGF3YWl0IHBhZ2Uuc2NyZWVuc2hvdCh7IHBhdGg6ICJvdXRwdXQvdjktIiArIG51bSArICItIiArIGNhcC5uYW1lICsgIi1jaGF0LnBuZyIgfSk7CiAgICAgIAogICAgICAvLyAzLiBGb3IgZG93bmxvYWRhYmxlOiBvcGVuIHRoZSBmaWxlIFVSTCBpbiBhIG5ldyB0YWIgYW5kIHNjcmVlbnNob3QgSVQKICAgICAgaWYgKGNhcC5kb3dubG9hZGFibGUgJiYgbWF0Y2hlZFVybCkgewogICAgICAgIGNvbnNvbGUubG9nKCIgIPCfk6UgZmlsZSBVUkw6ICIgKyBtYXRjaGVkVXJsKTsKICAgICAgICAKICAgICAgICAvLyBDaGVjayBmaWxlIHZpYSBIRUFEIHJlcXVlc3QgKGZldGNoIGluIGJyb3dzZXIpCiAgICAgICAgY29uc3QgaHR0cEluZm8gPSBhd2FpdCBwYWdlLmV2YWx1YXRlKGFzeW5jICh1KSA9PiB7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBjb25zdCByID0gYXdhaXQgZmV0Y2godSwgeyBtZXRob2Q6ICJIRUFEIiB9KTsKICAgICAgICAgICAgcmV0dXJuIHsgb2s6IHIub2ssIHN0YXR1czogci5zdGF0dXMsIHR5cGU6IHIuaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpLCBzaXplOiByLmhlYWRlcnMuZ2V0KCJjb250ZW50LWxlbmd0aCIpIH07CiAgICAgICAgICB9IGNhdGNoIChlKSB7IHJldHVybiB7IGVycjogZS5tZXNzYWdlIH07IH0KICAgICAgICB9LCBtYXRjaGVkVXJsKTsKICAgICAgICBjb25zb2xlLmxvZygiICBIVFRQOiAiICsgSlNPTi5zdHJpbmdpZnkoaHR0cEluZm8pKTsKICAgICAgICAKICAgICAgICBpZiAoaHR0cEluZm8ub2spIHsKICAgICAgICAgIC8vIE9wZW4gdGhlIGZpbGUgaW4gYSBuZXcgcGFnZSBhbmQgc2NyZWVuc2hvdAogICAgICAgICAgY29uc3QgbmV3UGFnZSA9IGF3YWl0IGNvbnRleHQubmV3UGFnZSgpOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgLy8gUERGcyBvcGVuIGluIHZpZXdlciwgb3RoZXJzIG1heSBkb3dubG9hZDsgZm9yIFNWRy9IVE1MIHdlIGNhbiByZW5kZXIKICAgICAgICAgICAgaWYgKGNhcC5leHQgPT09ICJwZGYiIHx8IGNhcC5leHQgPT09ICJzdmciKSB7CiAgICAgICAgICAgICAgYXdhaXQgbmV3UGFnZS5nb3RvKG1hdGNoZWRVcmwsIHsgd2FpdFVudGlsOiAibG9hZCIsIHRpbWVvdXQ6IDMwMDAwIH0pOwogICAgICAgICAgICAgIGF3YWl0IG5ld1BhZ2Uud2FpdEZvclRpbWVvdXQoMzAwMCk7CiAgICAgICAgICAgICAgYXdhaXQgbmV3UGFnZS5zY3JlZW5zaG90KHsgcGF0aDogIm91dHB1dC92OS0iICsgbnVtICsgIi0iICsgY2FwLm5hbWUgKyAiLUZJTEUucG5nIiwgZnVsbFBhZ2U6IGZhbHNlIH0pOwogICAgICAgICAgICAgIGNvbnNvbGUubG9nKCIgIPCfk7ggRklMRSByZW5kZXJlZCBzY3JlZW5zaG90OiB2OS0iICsgbnVtICsgIi0iICsgY2FwLm5hbWUgKyAiLUZJTEUucG5nIik7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2FwLmV4dCA9PT0gInB5IikgewogICAgICAgICAgICAgIC8vIERpc3BsYXkgY29kZSBhcyB0ZXh0CiAgICAgICAgICAgICAgYXdhaXQgbmV3UGFnZS5nb3RvKG1hdGNoZWRVcmwsIHsgd2FpdFVudGlsOiAibG9hZCIsIHRpbWVvdXQ6IDMwMDAwIH0pOwogICAgICAgICAgICAgIGF3YWl0IG5ld1BhZ2Uud2FpdEZvclRpbWVvdXQoMjAwMCk7CiAgICAgICAgICAgICAgYXdhaXQgbmV3UGFnZS5zY3JlZW5zaG90KHsgcGF0aDogIm91dHB1dC92OS0iICsgbnVtICsgIi0iICsgY2FwLm5hbWUgKyAiLUZJTEUucG5nIiwgZnVsbFBhZ2U6IGZhbHNlIH0pOwogICAgICAgICAgICAgIGNvbnNvbGUubG9nKCIgIPCfk7ggQ09ERSBzY3JlZW5zaG90OiB2OS0iICsgbnVtICsgIi0iICsgY2FwLm5hbWUgKyAiLUZJTEUucG5nIik7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2FwLmV4dCA9PT0gImRvY3giIHx8IGNhcC5leHQgPT09ICJwcHR4IikgewogICAgICAgICAgICAgIC8vIE9mZmljZSBkb2NzOiBkb3dubG9hZCBiaW5hcnkgKyBzYXZlICsgbm90ZSB3ZSBjYW5ub3QgcmVuZGVyIGluIGJyb3dzZXIKICAgICAgICAgICAgICBjb25zdCByID0gYXdhaXQgY29udGV4dC5yZXF1ZXN0LmdldChtYXRjaGVkVXJsKTsKICAgICAgICAgICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCByLmJvZHkoKTsKICAgICAgICAgICAgICBjb25zdCBzYXZlUGF0aCA9IHBhdGguam9pbigib3V0cHV0IiwgInY5LSIgKyBudW0gKyAiLSIgKyBjYXAubmFtZSArICIuIikgKyBjYXAuZXh0OwogICAgICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMoc2F2ZVBhdGgsIGJ1ZmZlcik7CiAgICAgICAgICAgICAgY29uc29sZS5sb2coIiAg8J+SviBiaW5hcnkgc2F2ZWQ6ICIgKyBzYXZlUGF0aCArICIgKCIgKyBidWZmZXIubGVuZ3RoICsgIkIpIik7CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgLy8gUmVuZGVyIGFuIEhUTUwgcGFnZSB0aGF0IHNob3dzIHRoZSBkb3dubG9hZCBsaW5rICsgbWV0YWRhdGEgYXMgInZpc3VhbCBwcm9vZiIKICAgICAgICAgICAgICBjb25zdCBwcm9vZkh0bWwgPSBgPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PHN0eWxlPgogICAgICAgICAgICAgICAgYm9keXtmb250LWZhbWlseTpzeXN0ZW0tdWk7cGFkZGluZzo0MHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjNjY3ZWVhIDAlLCM3NjRiYTIgMTAwJSk7bWluLWhlaWdodDoxMDB2aDtjb2xvcjojZmZmfQogICAgICAgICAgICAgICAgLmNhcmR7YmFja2dyb3VuZDojZmZmO2NvbG9yOiMzMzM7cGFkZGluZzo0MHB4O2JvcmRlci1yYWRpdXM6MTZweDtib3gtc2hhZG93OjAgMjBweCA2MHB4IHJnYmEoMCwwLDAsMC4zKTttYXgtd2lkdGg6ODAwcHg7bWFyZ2luOmF1dG99CiAgICAgICAgICAgICAgICAudGl0bGV7Zm9udC1zaXplOjMycHg7bWFyZ2luLWJvdHRvbTo4cHg7Y29sb3I6IzFhMWEyZX0KICAgICAgICAgICAgICAgIC5zdGF0dXN7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZDojMTBiOTgxO2NvbG9yOiNmZmY7cGFkZGluZzo2cHggMTZweDtib3JkZXItcmFkaXVzOjIwcHg7Zm9udC1zaXplOjE0cHg7bWFyZ2luLWJvdHRvbToyMHB4fQogICAgICAgICAgICAgICAgLnJvd3twYWRkaW5nOjEycHggMDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWVlO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0KICAgICAgICAgICAgICAgIC5sYWJlbHtjb2xvcjojNjY2fQogICAgICAgICAgICAgICAgLnZhbHVle2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojMWExYTJlfQogICAgICAgICAgICAgICAgYXtjb2xvcjojNjY3ZWVhO3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtd2VpZ2h0OjYwMH0KICAgICAgICAgICAgICA8L3N0eWxlPjwvaGVhZD48Ym9keT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cyI+4pyFIEZJTEUgVkVSSUZJRUQ8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4ke2NhcC5uYW1lfSDCtyAke2NhcC5leHQudG9VcHBlckNhc2UoKX0gRmlsZTwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij48c3BhbiBjbGFzcz0ibGFiZWwiPlVSTDo8L3NwYW4+PHNwYW4gY2xhc3M9InZhbHVlIiBzdHlsZT0id29yZC1icmVhazpicmVhay1hbGwiPjxhIGhyZWY9IiR7bWF0Y2hlZFVybH0iPiR7bWF0Y2hlZFVybH08L2E+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij48c3BhbiBjbGFzcz0ibGFiZWwiPkhUVFAgU3RhdHVzOjwvc3Bhbj48c3BhbiBjbGFzcz0idmFsdWUiPiR7aHR0cEluZm8uc3RhdHVzfSBPSzwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+PHNwYW4gY2xhc3M9ImxhYmVsIj5Db250ZW50LVR5cGU6PC9zcGFuPjxzcGFuIGNsYXNzPSJ2YWx1ZSI+JHtodHRwSW5mby50eXBlfTwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+PHNwYW4gY2xhc3M9ImxhYmVsIj5GaWxlIHNpemU6PC9zcGFuPjxzcGFuIGNsYXNzPSJ2YWx1ZSI+JHsoYnVmZmVyLmxlbmd0aC8xMDI0KS50b0ZpeGVkKDEpfSBLQjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+PHNwYW4gY2xhc3M9ImxhYmVsIj5Eb3dubG9hZGVkIGxvY2FsbHk6PC9zcGFuPjxzcGFuIGNsYXNzPSJ2YWx1ZSI+djktJHtudW19LSR7Y2FwLm5hbWV9LiR7Y2FwLmV4dH08L3NwYW4+PC9kaXY+CiAgICAgICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDozMHB4O2NvbG9yOiM2NjY7Zm9udC1zaXplOjEzcHgiPkJpbmFyeSBPZmZpY2UgZG9jdW1lbnQgwrcgcmVuZGVyZWQgcHJvb2YgY2FyZCDCtyBjbGljayBVUkwgdG8gZG93bmxvYWQgaW4gYnJvd3NlcjwvcD4KICAgICAgICAgICAgICA8L2Rpdj48L2JvZHk+PC9odG1sPmA7CiAgICAgICAgICAgICAgYXdhaXQgbmV3UGFnZS5zZXRDb250ZW50KHByb29mSHRtbCk7CiAgICAgICAgICAgICAgYXdhaXQgbmV3UGFnZS53YWl0Rm9yVGltZW91dCgxMDAwKTsKICAgICAgICAgICAgICBhd2FpdCBuZXdQYWdlLnNjcmVlbnNob3QoeyBwYXRoOiAib3V0cHV0L3Y5LSIgKyBudW0gKyAiLSIgKyBjYXAubmFtZSArICItRklMRS5wbmciLCBmdWxsUGFnZTogZmFsc2UgfSk7CiAgICAgICAgICAgICAgY29uc29sZS5sb2coIiAg8J+TuCBwcm9vZiBjYXJkIHNjcmVlbnNob3Q6IHY5LSIgKyBudW0gKyAiLSIgKyBjYXAubmFtZSArICItRklMRS5wbmciKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgYXdhaXQgbmV3UGFnZS5jbG9zZSgpOwogICAgICAgICAgICByZXN1bHRzLnB1c2goeyBuYW1lOiBjYXAubmFtZSwgb2s6IHRydWUsIHVybDogbWF0Y2hlZFVybCwgc2l6ZTogaHR0cEluZm8uc2l6ZSwgdHlwZTogaHR0cEluZm8udHlwZSB9KTsKICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coIiAg4pqg77iPIGZpbGUgcmVuZGVyIGVycjogIiArIGUubWVzc2FnZS5zdWJzdHJpbmcoMCwgMTAwKSk7CiAgICAgICAgICAgIGF3YWl0IG5ld1BhZ2UuY2xvc2UoKS5jYXRjaCgoKSA9PiB7fSk7CiAgICAgICAgICAgIHJlc3VsdHMucHVzaCh7IG5hbWU6IGNhcC5uYW1lLCBvazogZmFsc2UsIHJlYXNvbjogInJlbmRlcl9lcnIiIH0pOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb25zb2xlLmxvZygiICDinYwgZmlsZSBub3QgYWNjZXNzaWJsZSIpOwogICAgICAgICAgcmVzdWx0cy5wdXNoKHsgbmFtZTogY2FwLm5hbWUsIG9rOiBmYWxzZSwgcmVhc29uOiAiaHR0cF9mYWlsIiB9KTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgLy8gTm9uLWRvd25sb2FkYWJsZSAoTWVybWFpZCwgVHJhZHVpcmUpOiBjb250ZW50IG1hdGNoIGlzIHRoZSBwcm9vZgogICAgICAgIGNvbnNvbGUubG9nKCIgIPCfk50gaW5saW5lIGNvbnRlbnQ6ICIgKyBtYXRjaGVkQ29udGVudC5zdWJzdHJpbmcoMCwgODApLnJlcGxhY2UoL1xuL2csICIgIikpOwogICAgICAgIHJlc3VsdHMucHVzaCh7IG5hbWU6IGNhcC5uYW1lLCBvazogdHJ1ZSwgaW5saW5lOiBtYXRjaGVkQ29udGVudC5zdWJzdHJpbmcoMCwgMjAwKSB9KTsKICAgICAgfQogICAgICAKICAgICAgYXdhaXQgcGFnZS53YWl0Rm9yVGltZW91dCgxNTAwKTsKICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgY29uc29sZS5sb2coIiAg4p2MIGVycm9yOiAiICsgZS5tZXNzYWdlLnN1YnN0cmluZygwLCAxMjApKTsKICAgICAgcmVzdWx0cy5wdXNoKHsgbmFtZTogY2FwLm5hbWUsIG9rOiBmYWxzZSwgcmVhc29uOiAiZXhjZXB0aW9uIiB9KTsKICAgIH0KICB9CiAgCiAgLy8gRmluYWwgc3VtbWFyeQogIGNvbnN0IHBhc3NDb3VudCA9IHJlc3VsdHMuZmlsdGVyKHIgPT4gci5vaykubGVuZ3RoOwogIGNvbnNvbGUubG9nKCJcbuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCBWOSBCSUxBTiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAiKTsKICBjb25zb2xlLmxvZyhwYXNzQ291bnQgKyAiLzcgY2FwYWJpbGl0aWVzIFBBU1Mgd2l0aCBSRUFMIEZJTEUgVkVSSUZJQ0FUSU9OIik7CiAgcmVzdWx0cy5mb3JFYWNoKHIgPT4gewogICAgY29uc3QgbWFyayA9IHIub2sgPyAi4pyFIiA6ICLinYwiOwogICAgY29uc3QgZGV0YWlsID0gci51cmwgPyAoci51cmwgKyAiIMK3ICIgKyAoci5zaXplIHx8ICI/IikgKyAiQiDCtyAiICsgKHIudHlwZSB8fCAiPyIpKSA6IChyLmlubGluZSB8fCByLnJlYXNvbiB8fCAiIik7CiAgICBjb25zb2xlLmxvZygiICAiICsgbWFyayArICIgIiArIHIubmFtZSArICIgwrcgIiArIGRldGFpbC5zdWJzdHJpbmcoMCwgMTQwKSk7CiAgfSk7CiAgCiAgZnMud3JpdGVGaWxlU3luYygib3V0cHV0L3Y5LXJlc3VsdHMuanNvbiIsIEpTT04uc3RyaW5naWZ5KHJlc3VsdHMsIG51bGwsIDIpKTsKfSk7Cg==");
|
|
$written = @file_put_contents("$base/capabilities-v9.spec.js", $content);
|
|
// Remove old specs
|
|
@unlink("$base/capabilities-v8.spec.js");
|
|
echo json_encode([
|
|
"written" => $written,
|
|
"specs_after" => array_map("basename", glob("$base/*.spec.js")),
|
|
]);
|