Release Vulpes OS 2.7-preview.24
This commit is contained in:
parent
49572b6b45
commit
97ef99f827
135 changed files with 7717 additions and 2524 deletions
|
|
@ -13,9 +13,11 @@ sys.stdout.buffer.write(b.getvalue())`,JSON.stringify({extra,manifest})]));
|
|||
}
|
||||
assert.equal(packageURL(source+'&lang=fr'),source);
|
||||
for(const url of ['http://vulpes-os.org/marketplace/index.php?download=42','https://evil.test/marketplace/index.php?download=42','https://vulpes-os.org/x?download=42','https://vulpes-os.org/marketplace/index.php?download=../42'])assert.throws(()=>packageURL(url));
|
||||
const bytes=zip({}, {type:'certified',permissions:{settings:{access:'readwrite'},'webapps-manage':{}}});
|
||||
const bytes=zip({}, {permissions:{settings:{access:'readwrite'},'webapps-manage':{}}});
|
||||
const item=await unpackPackage(bytes,source);
|
||||
assert.equal(item.manifest.type,'web');assert.deepEqual(item.manifest.permissions,{});assert.match(item.id,/^user-[a-f0-9]{24}$/);
|
||||
for (const type of ['privileged','certified'])
|
||||
await assert.rejects(unpackPackage(zip({}, {type}), source), /PRIVILEGED_APP_UNSUPPORTED/);
|
||||
for(const name of ['../escape','/absolute','dir/../../escape','dir\\escape','a:b'])await assert.rejects(unpackPackage(zip({[name]:'bad'}),source));
|
||||
await assert.rejects(unpackPackage(bytes.slice(0,-2),source));
|
||||
const corrupt=bytes.slice();corrupt[100]^=255;await assert.rejects(unpackPackage(corrupt,source));
|
||||
|
|
@ -24,7 +26,7 @@ const service=new Packages({save:async value=>saved=value,changed:async()=>chang
|
|||
const prepared=await service.prepare(source);assert.equal(saved,null);assert.equal(prepared.name,'Test');
|
||||
assert.equal(await service.install(prepared.token),item.id);assert.equal(changes,1);assert.equal(saved.id,item.id);
|
||||
await assert.rejects(service.install(prepared.token),/INSTALL_EXPIRED/);
|
||||
console.log('Package URL policy, ZIP boundaries/CRC, permission stripping and one-use confirmation: OK');
|
||||
console.log('Package URL policy, ZIP boundaries/CRC, permission stripping, privileged-app rejection and one-use confirmation: OK');
|
||||
|
||||
// Cancellation during download must not produce a confirmation token.
|
||||
let finishDownload;
|
||||
|
|
|
|||
Loading…
Reference in a new issue