Release Preview 20 shared desktop, Android and Sargo updates
Restore Gaia settings and media workflows, extend native network adapters, and align the APK payload. Generate French/English changelogs and website entries from the simplified JSON source. Validation: shared JS and Tundra unit tests; desktop workflows and persistence; signed APK payload parity; Sargo RAM and installed startup with boot readback. Android runtime qualification is recorded separately.
This commit is contained in:
parent
be2cdce823
commit
1311bed5e9
170 changed files with 19698 additions and 2495 deletions
|
|
@ -1,6 +1,6 @@
|
|||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import {Input} from '../host/Input.sys.mjs';
|
||||
import {Input} from '../services/input.mjs';
|
||||
function setup() {
|
||||
const events=[];
|
||||
const input=new Input({identity:actor=>actor.app,broadcast:(...args)=>events.push(args)});
|
||||
|
|
@ -30,3 +30,20 @@ test('current edit updates the focused field; keyboard focus does not replace it
|
|||
input.changed(field,{text:''});input.changed(keyboard,{text:'unrelated'});
|
||||
assert.equal((await input.request(keyboard,{operation:'key',id:1})).text,'123');
|
||||
});
|
||||
|
||||
test('a composer button retains input and other buttons dismiss only after click',async()=>{
|
||||
const {readFile}=await import('node:fs/promises');
|
||||
const {runInNewContext}=await import('node:vm');
|
||||
const source=await readFile(new URL('../host/actors/VulpesChild.sys.mjs',import.meta.url),'utf8');
|
||||
const events=[];
|
||||
const Actor=runInNewContext(source.replace(/^import .*;\n/, '').replace('export class','class')+';VulpesChild',{
|
||||
JSWindowActorChild:class{},Services:{cpmm:{sharedData:{get:()=>true}}}
|
||||
});
|
||||
const actor=new Actor();actor.sendAsyncMessage=(...args)=>events.push(args);
|
||||
const button={localName:'button',closest:()=>null};
|
||||
actor.handleEvent({type:'pointerdown',target:button});assert.equal(events.length,0);
|
||||
actor.handleEvent({type:'click',target:button});assert.equal(events.length,1);assert.equal(events[0][1],null);
|
||||
button.closest=()=>button;
|
||||
actor.handleEvent({type:'pointerdown',target:button});actor.handleEvent({type:'click',target:button});
|
||||
assert.equal(events.length,1,'send keeps the composer focused');
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue