import assert from 'node:assert/strict' import test from 'node:test' import { allowedWebPermissionResources, webPermissionKind } from '../src/permissionPolicy' test('WebView camera and microphone resource names use one canonical mapping', () => { assert.equal(webPermissionKind('android.webkit.resource.VIDEO_CAPTURE'), 'camera') assert.equal(webPermissionKind('android.webkit.resource.AUDIO_CAPTURE'), 'microphone') assert.equal(webPermissionKind('camera'), 'camera') assert.equal(webPermissionKind('microphone'), 'microphone') assert.equal(webPermissionKind('protected-media-id'), null) }) test('only system-authorized camera or microphone resources are granted', () => { const resources = [ 'android.webkit.resource.VIDEO_CAPTURE', 'android.webkit.resource.AUDIO_CAPTURE', 'protected-media-id', ] assert.deepEqual(allowedWebPermissionResources(resources, new Set(['camera'])), [resources[0]]) assert.deepEqual(allowedWebPermissionResources(resources, new Set(['microphone'])), [ resources[1], ]) assert.deepEqual(allowedWebPermissionResources([resources[2]], new Set()), []) })