8 lines
8.4 KiB
PHP
8 lines
8.4 KiB
PHP
<?php
|
|
header("Content-Type: application/json");
|
|
$base = "/var/www/html/api/ambre-pw-tests/tests";
|
|
$spec = base64_decode("Y29uc3QgeyB0ZXN0IH0gPSByZXF1aXJlKCJAcGxheXdyaWdodC90ZXN0Iik7CmNvbnN0IGZzID0gcmVxdWlyZSgiZnMiKTsKCnRlc3QoIlYyNSDCtyBGSU5BTCDCtyBhZnRlciBtZXJtYWlkIGZpeCDCtyAxMCB0dXJucyBpbmNsIFBERiBQcmVtaXVtIMK3IHZpZGVvIGxvbmd1ZSIsIGFzeW5jICh7IHBhZ2UgfSkgPT4gewogIHRlc3Quc2V0VGltZW91dCg5MDAwMDApOwogIAogIGNvbnN0IGVycm9ycyA9IFtdOwogIHBhZ2Uub24oInBhZ2VlcnJvciIsIGUgPT4gZXJyb3JzLnB1c2goIlBFOiAiICsgZS5tZXNzYWdlLnN1YnN0cmluZygwLDIwMCkpKTsKICBwYWdlLm9uKCJjb25zb2xlIiwgbXNnID0+IHsKICAgIGlmIChtc2cudHlwZSgpID09PSAiZXJyb3IiIHx8IG1zZy50eXBlKCkgPT09ICJ3YXJuaW5nIikgewogICAgICBlcnJvcnMucHVzaChtc2cudHlwZSgpICsgIjogIiArIG1zZy50ZXh0KCkuc3Vic3RyaW5nKDAsMjAwKSk7CiAgICB9CiAgfSk7CiAgCiAgYXdhaXQgcGFnZS5nb3RvKCIvd2V2aWEuaHRtbCIpOwogIGF3YWl0IHBhZ2UuZXZhbHVhdGUoKCkgPT4geyB0cnkgeyBzZXNzaW9uU3RvcmFnZS5jbGVhcigpOyB9IGNhdGNoKGUpe30gfSk7CiAgYXdhaXQgcGFnZS53YWl0Rm9yTG9hZFN0YXRlKCJuZXR3b3JraWRsZSIpOwogIGF3YWl0IHBhZ2Uud2FpdEZvclRpbWVvdXQoMzAwMCk7CiAgCiAgY29uc29sZS5sb2coIj09PSBFcnJvcnMgb24gbG9hZCA9PT0iKTsKICBlcnJvcnMuZm9yRWFjaChlID0+IGNvbnNvbGUubG9nKCIgIiwgZSkpOwogIAogIGF3YWl0IHBhZ2Uuc2NyZWVuc2hvdCh7IHBhdGg6ICJvdXRwdXQvdjI1LTAwLWxhbmRpbmcucG5nIiB9KTsKICAKICAvLyBDaGVjayBnbG9iYWwgZnVuY3Rpb25zCiAgY29uc3QgZnVuY3MgPSBhd2FpdCBwYWdlLmV2YWx1YXRlKCgpID0+ICh7CiAgICBzZW5kTXNnOiB0eXBlb2Ygd2luZG93LnNlbmRNc2csCiAgICBzZW5kOiB0eXBlb2Ygd2luZG93LnNlbmQsCiAgICBhZGRNc2c6IHR5cGVvZiB3aW5kb3cuYWRkTXNnLAogIH0pKTsKICBjb25zb2xlLmxvZygiXG49PT0gR2xvYmFsIGZ1bmN0aW9ucyA9PT0iLCBKU09OLnN0cmluZ2lmeShmdW5jcykpOwogIAogIGNvbnN0IHR1cm5zID0gWwogICAgeyBsYWJlbDogIjAxLWludHJvIiwgICAgICAgIG1zZzogIkJvbmpvdXIiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZGxlOiAvYWlkZXJ8cmF2aXxiaWVudmVudWUvaSB9LAogICAgeyBsYWJlbDogIjAyLWlkZW50aXR5IiwgICAgIG1zZzogImplIG0nYXBwZWxsZSBDbGFpcmUsIGRpcmVjdHJpY2UgaW5ub3ZhdGlvbiBjaGV6IEJOUCBQYXJpYmFzIiwgICAgICAgICAgICAgbmVlZGxlOiAvQ2xhaXJlL2kgfSwKICAgIHsgbGFiZWw6ICIwMy1jYWxjIiwgICAgICAgICBtc2c6ICJjYWxjdWxlICg3ODkgKiAxLjE1ICsgMjUwKSAvIDQiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRsZTogL1xkezMsfS8gfSwKICAgIHsgbGFiZWw6ICIwNC1xciIsICAgICAgICAgICBtc2c6ICJRUiBjb2RlIHBvdXIgaHR0cHM6Ly9ibnBwYXJpYmFzLmNvbSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRsZTogL3dldmlhLXFyLXzwn5OxL2kgfSwKICAgIHsgbGFiZWw6ICIwNS1wZGYtcHJlbWl1bSIsICBtc2c6ICJjcmVlIHVuIHBkZiBwcmVtaXVtIHN1cjogc3RyYXRlZ2llIElBIGJhbnF1ZSAyMDI2IGF2ZWMgZ3JhcGhpcXVlcyIsICAgICAgIG5lZWRsZTogL3BkZi1wcmVtaXVtfENoYXJ0XC5qc3xUw6lsw6ljaGFyZ2VyL2kgfSwKICAgIHsgbGFiZWw6ICIwNi1zZWFyY2giLCAgICAgICBtc2c6ICJhY3R1YWxpdMOpcyBmaW50ZWNoIDIwMjYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkbGU6IC/wn5SNfHNvdXJjZXxmaW50ZWNoL2kgfSwKICAgIHsgbGFiZWw6ICIwNy1yZWNhbGwiLCAgICAgICBtc2c6ICJjb21tZW50IGplIG0nYXBwZWxsZSBldCBvw7kgamUgdHJhdmFpbGxlPyIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkbGU6IC9DbGFpcmUuKkJOUHxCTlAuKkNsYWlyZS9pIH0sCiAgICB7IGxhYmVsOiAiMDgtZW1vdGlvbiIsICAgICAgbXNnOiAiamUgc3VpcyB1biBwZXUgZMOpYm9yZMOpZSBhdmVjIHRvdXMgbWVzIHByb2pldHMiLCAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRsZTogL2NvbXByZW5kc3xwcmVzc2lvbnxnw6lyZXJ8cGF1c2UvaSB9LAogICAgeyBsYWJlbDogIjA5LXN1YmplY3QiLCAgICAgIG1zZzogImNoYW5nZSBkZSBzdWpldCwgcGFybGUgbW9pIGRlcyBkYXVwaGlucyIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZGxlOiAvZGF1cGhpbnxjw6l0YWPDqXxtYW1taWbDqHJlfGludGVsbGlnZW50fG9jw6lhbi9pIH0sCiAgICB7IGxhYmVsOiAiMTAtYmlsYW4iLCAgICAgICAgbXNnOiAiZmFpcyBsZSBiaWxhbiBkZSBub3RyZSDDqWNoYW5nZSBhdWpvdXJkJ2h1aSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZGxlOiAvQ2xhaXJlfEJOUHxQREZ8SUF8ZGF1cGhpbnxjYWxjfFFSL2kgfSwKICBdOwogIAogIGNvbnN0IHJlc3VsdHMgPSBbXTsKICAKICBmb3IgKGxldCBpID0gMDsgaSA8IHR1cm5zLmxlbmd0aDsgaSsrKSB7CiAgICBjb25zdCB0ID0gdHVybnNbaV07CiAgICBjb25zdCBudW0gPSBTdHJpbmcoaSArIDEpLnBhZFN0YXJ0KDIsICIwIik7CiAgICBjb25zb2xlLmxvZyhgXG7ilZDilZDilZAgWyR7bnVtfS8ke3R1cm5zLmxlbmd0aH1dICR7dC5sYWJlbH0g4pWQ4pWQ4pWQYCk7CiAgICBjb25zb2xlLmxvZyhgICDihpIgJHt0Lm1zZy5zdWJzdHJpbmcoMCwgMTAwKX1gKTsKICAgIAogICAgY29uc3QgYmVmb3JlQ291bnQgPSBhd2FpdCBwYWdlLmV2YWx1YXRlKCgpID0+IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tc2cuYXNzaXN0YW50JykubGVuZ3RoKTsKICAgIAogICAgdHJ5IHsKICAgICAgY29uc3QgaW5wdXQgPSBwYWdlLmxvY2F0b3IoIiNtc2dJbnB1dCIpOwogICAgICBhd2FpdCBpbnB1dC5jbGljayh7IGZvcmNlOiB0cnVlIH0pOwogICAgICBhd2FpdCBwYWdlLmtleWJvYXJkLnByZXNzKCJDb250cm9sK0EiKTsKICAgICAgYXdhaXQgcGFnZS5rZXlib2FyZC5wcmVzcygiRGVsZXRlIik7CiAgICAgIGF3YWl0IGlucHV0LmZpbGwodC5tc2cpOwogICAgICBhd2FpdCBwYWdlLndhaXRGb3JUaW1lb3V0KDUwMCk7CiAgICAgIGF3YWl0IGlucHV0LnByZXNzKCJFbnRlciIpOwogICAgICAKICAgICAgY29uc3QgdGltZW91dCA9IHQubGFiZWwuaW5jbHVkZXMoInBkZi1wcmVtaXVtIikgPyA5MDAwMCA6IDUwMDAwOwogICAgICBjb25zdCB3YWl0U3RhcnQgPSBEYXRlLm5vdygpOwogICAgICBsZXQgZm91bmQgPSBmYWxzZTsKICAgICAgbGV0IGFzc2lzdGFudFJlcGx5ID0gIiI7CiAgICAgIAogICAgICB3aGlsZSAoRGF0ZS5ub3coKSAtIHdhaXRTdGFydCA8IHRpbWVvdXQpIHsKICAgICAgICBjb25zdCBzdGF0ZSA9IGF3YWl0IHBhZ2UuZXZhbHVhdGUoKCkgPT4gewogICAgICAgICAgY29uc3QgYSA9IEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLm1zZy5hc3Npc3RhbnQgLmJ1YmJsZSIpKTsKICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIGNvdW50OiBhLmxlbmd0aCwKICAgICAgICAgICAgbGFzdDogYS5sZW5ndGggPiAwID8gYVthLmxlbmd0aC0xXS5pbm5lclRleHQgOiAiIiwKICAgICAgICAgIH07CiAgICAgICAgfSk7CiAgICAgICAgCiAgICAgICAgaWYgKHN0YXRlLmNvdW50ID4gYmVmb3JlQ291bnQpIHsKICAgICAgICAgIGFzc2lzdGFudFJlcGx5ID0gc3RhdGUubGFzdDsKICAgICAgICAgIC8vIFNraXAgaWYgc3RpbGwgc2hvd2luZyBlcnJvciAobWF5IHJldHJ5KQogICAgICAgICAgaWYgKC9lcnJldXIgZXN0IHN1cnZlbnVlL2kudGVzdChhc3Npc3RhbnRSZXBseSkgJiYgKERhdGUubm93KCkgLSB3YWl0U3RhcnQpIDwgMTUwMDApIHsKICAgICAgICAgICAgYXdhaXQgcGFnZS53YWl0Rm9yVGltZW91dCgyNTAwKTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAodC5uZWVkbGUudGVzdChhc3Npc3RhbnRSZXBseSkpIHsgZm91bmQgPSB0cnVlOyBicmVhazsgfQogICAgICAgICAgaWYgKGFzc2lzdGFudFJlcGx5Lmxlbmd0aCA+IDQwICYmICFhc3Npc3RhbnRSZXBseS5pbmNsdWRlcygiZXJyZXVyIGVzdCIpKSB7CiAgICAgICAgICAgIC8vIGdvdCByZWFsIHJlcGx5LCBjaGVjayBuZWVkbGUKICAgICAgICAgICAgaWYgKHQubmVlZGxlLnRlc3QoYXNzaXN0YW50UmVwbHkpKSB7IGZvdW5kID0gdHJ1ZTsgYnJlYWs7IH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgYXdhaXQgcGFnZS53YWl0Rm9yVGltZW91dCgyMDAwKTsKICAgICAgfQogICAgICAKICAgICAgY29uc3QgZWxhcHNlZCA9ICgoRGF0ZS5ub3coKSAtIHdhaXRTdGFydCkgLyAxMDAwKS50b0ZpeGVkKDEpOwogICAgICBjb25zdCBpc0Vycm9yID0gL2VycmV1ciBlc3Qgc3VydmVudWUvaS50ZXN0KGFzc2lzdGFudFJlcGx5KTsKICAgICAgCiAgICAgIGlmIChmb3VuZCkgY29uc29sZS5sb2coYCAg4pyFIFBBU1MgJHtlbGFwc2VkfXMgwrcgJHthc3Npc3RhbnRSZXBseS5zdWJzdHJpbmcoMCwxMDApfWApOwogICAgICBlbHNlIGlmIChpc0Vycm9yKSBjb25zb2xlLmxvZyhgICDinYwgRVJST1IgJHtlbGFwc2VkfXNgKTsKICAgICAgZWxzZSBjb25zb2xlLmxvZyhgICDimqDvuI8gTk8gTUFUQ0ggJHtlbGFwc2VkfXMgwrcgcmVwbHk6ICR7YXNzaXN0YW50UmVwbHkuc3Vic3RyaW5nKDAsMTUwKX1gKTsKICAgICAgCiAgICAgIGF3YWl0IHBhZ2UuZXZhbHVhdGUoKCkgPT4geyBjb25zdCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lc3NhZ2VzIik7IGlmIChtKSBtLnNjcm9sbFRvcCA9IG0uc2Nyb2xsSGVpZ2h0OyB9KTsKICAgICAgYXdhaXQgcGFnZS53YWl0Rm9yVGltZW91dCgyNTAwKTsKICAgICAgYXdhaXQgcGFnZS5zY3JlZW5zaG90KHsgcGF0aDogYG91dHB1dC92MjUtJHtudW19LSR7dC5sYWJlbH0ucG5nYCwgZnVsbFBhZ2U6IGZhbHNlIH0pOwogICAgICAKICAgICAgcmVzdWx0cy5wdXNoKHsgdHVybjogaSsxLCBsYWJlbDogdC5sYWJlbCwgcGFzczogZm91bmQsIGVycm9yOiBpc0Vycm9yLCBlbGFwc2VkLCByZXBseV9wcmV2aWV3OiBhc3Npc3RhbnRSZXBseS5zdWJzdHJpbmcoMCwxODApIH0pOwogICAgICBhd2FpdCBwYWdlLndhaXRGb3JUaW1lb3V0KDE1MDApOwogICAgfSBjYXRjaCAoZSkgewogICAgICBjb25zb2xlLmxvZyhgICDinYwgRVhDRVBUSU9OOiAke2UubWVzc2FnZS5zdWJzdHJpbmcoMCwgMTIwKX1gKTsKICAgICAgcmVzdWx0cy5wdXNoKHsgdHVybjogaSsxLCBsYWJlbDogdC5sYWJlbCwgcGFzczogZmFsc2UsIGVycm9yOiB0cnVlIH0pOwogICAgfQogIH0KICAKICBhd2FpdCBwYWdlLmV2YWx1YXRlKCgpID0+IHdpbmRvdy5zY3JvbGxUbygwLCBkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCkpOwogIGF3YWl0IHBhZ2Uud2FpdEZvclRpbWVvdXQoMzAwMCk7CiAgYXdhaXQgcGFnZS5zY3JlZW5zaG90KHsgcGF0aDogIm91dHB1dC92MjUtOTktZmluYWwucG5nIiwgZnVsbFBhZ2U6IHRydWUgfSk7CiAgCiAgY29uc3QgcGFzcyA9IHJlc3VsdHMuZmlsdGVyKHI9PnIucGFzcykubGVuZ3RoOwogIGNvbnN0IGVycm9yczIgPSByZXN1bHRzLmZpbHRlcihyPT5yLmVycm9yKS5sZW5ndGg7CiAgY29uc29sZS5sb2coYFxu4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIFYyNSBCSUxBTiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBgKTsKICBjb25zb2xlLmxvZyhgJHtwYXNzfS8ke3Jlc3VsdHMubGVuZ3RofSBQQVNTIMK3ICR7ZXJyb3JzMn0gZXJyb3JzYCk7CiAgcmVzdWx0cy5mb3JFYWNoKHIgPT4gY29uc29sZS5sb2coYCAgJHtyLnBhc3M/IuKchSI6KHIuZXJyb3I/IuKdjCI6IuKaoO+4jyIpfSBUJHtyLnR1cm59IMK3ICR7ci5sYWJlbH0gwrcgJHtyLmVsYXBzZWR8fCI/In1zYCkpOwogIAogIGZzLndyaXRlRmlsZVN5bmMoIm91dHB1dC92MjUtcmVzdWx0cy5qc29uIiwgSlNPTi5zdHJpbmdpZnkoeyByZXN1bHRzLCBwYXNzLCB0b3RhbDogcmVzdWx0cy5sZW5ndGgsIGxvYWRfZXJyb3JzOiBlcnJvcnMgfSwgbnVsbCwgMikpOwp9KTsK");
|
|
foreach (glob("$base/*.spec.js") as $old) @unlink($old);
|
|
$written = @file_put_contents("$base/v25-final.spec.js", $spec);
|
|
echo json_encode(["written" => $written]);
|