Files
sousa-gecko/testing/web-platform/tests/ai/semantic_embedder/semantic-embedder-create.tentative.https.window.js
T
Ian Zhao 33d15c16c8 Bug 2050999 [wpt PR 60938] - `Connect AISemanticEmbedder to Browser process, a=testonly
Automatic update from web-platform-tests
`Connect AISemanticEmbedder to Browser process

Connects the AIManager to the SemanticEmbedder, validates the
Finch-controlled safety limits, and wires the final Mojo calls from Blink.

NO_IFTTT=rebase

Bug: 428233906
Change-Id: I9cc140ec85cff13606f7ccbaeee0def23df747f0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7870710
Reviewed-by: Mike Wasserman <msw@chromium.org>
Reviewed-by: Jingyun Liu <jingyun@google.com>
Commit-Queue: Ian Zhao <yinguang@google.com>
Cr-Commit-Position: refs/heads/main@{#1654875}

--

wpt-commits: 87a432f7972dac9c230e22390714189b15d27df6
wpt-pr: 60938
2026-07-10 09:22:35 +00:00

66 lines
2.4 KiB
JavaScript

// META: title=Embedder Create
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=../resources/util.js
// META: timeout=long
'use strict';
promise_test(async t => {
await ensureEmbedder();
let embedder = await createEmbedder();
assert_true(embedder instanceof SemanticEmbedder);
}, 'SemanticEmbedder.create() returns a valid object with default options');
promise_test(async t => {
await ensureEmbedder();
let embedder = await createEmbedder();
let result = await embedder.embed("hello");
assert_true(typeof result === 'object');
assert_true(Array.isArray(result.embeddings));
assert_equals(result.embeddings.length, 1);
let embedding = result.embeddings[0];
assert_true(embedding.values instanceof Float32Array);
assert_true(embedding.values.length > 0);
assert_equals(typeof embedding.values[0], 'number');
}, 'SemanticEmbedder.embed() returns SemanticEmbedderResult for single string');
promise_test(async t => {
await ensureEmbedder();
let embedder = await createEmbedder();
let result = await embedder.embed(["hello", "world"]);
assert_true(typeof result === 'object');
assert_true(Array.isArray(result.embeddings));
assert_equals(result.embeddings.length, 2);
let embedding = result.embeddings[0];
assert_true(embedding.values instanceof Float32Array);
assert_true(embedding.values.length > 0);
assert_equals(typeof embedding.values[0], 'number');
}, 'SemanticEmbedder.embed() returns SemanticEmbedderResult for batch strings');
promise_test(async t => {
await ensureEmbedder();
let embedder = await createEmbedder();
let result = await embedder.embed("hello", { taskType: "classification" });
assert_true(typeof result === 'object');
assert_true(Array.isArray(result.embeddings));
assert_equals(result.embeddings.length, 1);
}, 'SemanticEmbedder.embed() accepts taskType option');
promise_test(async t => {
await ensureEmbedder();
let embedder = await createEmbedder();
let result = await embedder.embed([]);
assert_true(typeof result === 'object');
// It should gracefully resolve, potentially with undefined or empty embeddings.
if (result.embeddings) {
assert_equals(result.embeddings.length, 0);
}
}, 'SemanticEmbedder.embed() handles empty array without crashing');
promise_test(async t => {
await ensureEmbedder();
await testAbortPromise(t, signal => createEmbedder({ signal }));
}, 'SemanticEmbedder.create() can be aborted');