implement Milestone 11: Camera interface with permission and user gesture requirements
This commit is contained in:
@@ -2,8 +2,8 @@
|
||||
"name": "Lua Sandbox Security Tests",
|
||||
"summary": {
|
||||
"failed": 0,
|
||||
"passed": 42,
|
||||
"total": 42
|
||||
"passed": 82,
|
||||
"total": 82
|
||||
},
|
||||
"tests": [
|
||||
{
|
||||
@@ -77,7 +77,7 @@
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 111,
|
||||
"duration_ms": 106,
|
||||
"name": "UserGestureTracking",
|
||||
"status": "passed"
|
||||
},
|
||||
@@ -107,7 +107,7 @@
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 14,
|
||||
"duration_ms": 13,
|
||||
"name": "AuditLogThreadSafe",
|
||||
"status": "passed"
|
||||
},
|
||||
@@ -122,7 +122,7 @@
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 16,
|
||||
"duration_ms": 17,
|
||||
"name": "RateLimiterRefill",
|
||||
"status": "passed"
|
||||
},
|
||||
@@ -182,17 +182,17 @@
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 107,
|
||||
"duration_ms": 108,
|
||||
"name": "SetTimeoutFires",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 237,
|
||||
"duration_ms": 234,
|
||||
"name": "SetIntervalFires",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 155,
|
||||
"duration_ms": 158,
|
||||
"name": "ClearTimeoutCancels",
|
||||
"status": "passed"
|
||||
},
|
||||
@@ -212,10 +212,210 @@
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 62,
|
||||
"duration_ms": 63,
|
||||
"name": "MinIntervalEnforced",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "JsonDecodeValid",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "JsonDecodeRejectsDeep",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "JsonEncodeValid",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "JsonEncodeDetectsCycles",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "JsonRejectsTooLarge",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "CryptoRandomBytes",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "CryptoHashSHA256",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "CryptoHMAC",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "SecureMathRandom",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 1,
|
||||
"name": "VirtualFSReadWrite",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "VirtualFSBlocksTraversal",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "VirtualFSEnforcesQuota",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "VirtualFSCleansUpTemp",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 1,
|
||||
"name": "VirtualFSList",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 4,
|
||||
"name": "VirtualFSStat",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 1,
|
||||
"name": "VirtualFSLuaIntegration",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 1,
|
||||
"name": "VirtualFSMaxFileSize",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 16,
|
||||
"name": "DatabaseCreatesTables",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 13,
|
||||
"name": "DatabasePreparedStatements",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 1,
|
||||
"name": "DatabaseBlocksAttach",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 1,
|
||||
"name": "DatabaseBlocksDangerousPragma",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 16,
|
||||
"name": "DatabaseMultiple",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "DatabaseLuaIntegration",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "DatabaseInvalidNames",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 25,
|
||||
"name": "DatabaseLastInsertAndChanges",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "NetworkBlocksPrivateIP",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "NetworkBlocksPlainHttp",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "NetworkRequiresHttps",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "NetworkEnforcesDomainWhitelist",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "NetworkUrlParsing",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "NetworkBlocksMetadata",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "NetworkRequestLimits",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "NetworkLuaIntegration",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "WebSocketUrlValidation",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "WebSocketConnectionLimits",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "WebSocketBlocksPrivateIP",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "WebSocketDomainWhitelist",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "WebSocketMessageLimits",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "WebSocketCloseAll",
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"duration_ms": 0,
|
||||
"name": "WebSocketLuaIntegration",
|
||||
"status": "passed"
|
||||
}
|
||||
],
|
||||
"timestamp": "2026-01-18T13:19:38Z"
|
||||
"timestamp": "2026-01-18T14:29:44Z"
|
||||
}
|
||||
Reference in New Issue
Block a user